/* KWIP LLC — straightforward enterprise interface */
:root {
    --ink: #111111;
    --ink-2: #60646c;
    --bg: #ffffff;
    --surface: #ffffff;
    --surface-muted: #f4f4f5;
    --primary: rgb(219 39 119);
    --primary-dark: #be185d;
    --primary-soft: rgba(219, 39, 119, .09);
    --border: rgba(17, 17, 17, .13);
    --border-strong: rgba(17, 17, 17, .24);
    --radius-sm: 2px;
    --radius: 2px;
    --radius-lg: 2px;
    --container: 1180px;
    --gutter: 2rem;
}

*, *::before, *::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

[id] { scroll-margin-top: 9rem; }

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

img { display: block; height: auto; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
p { margin: 0; }
p + p { margin-top: 1rem; }

h1, h2, h3, h4 {
    color: var(--ink);
    font-family: inherit;
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.14;
    margin: 0;
    text-wrap: balance;
}

.muted { color: var(--ink-2); }

:focus-visible {
    outline: 3px solid rgba(219, 39, 119, .42);
    outline-offset: 3px;
}

.skip-link {
    background: var(--ink);
    border-radius: var(--radius-sm);
    color: #fff;
    font-size: .875rem;
    font-weight: 600;
    left: .75rem;
    padding: .65rem 1rem;
    position: fixed;
    text-decoration: none;
    top: -5rem;
    z-index: 100;
}

.skip-link:focus { top: .75rem; }

.ed-container {
    margin: 0 auto;
    max-width: var(--container);
    padding: 0 var(--gutter);
}

.ed-small,
.ed-eyebrow,
.ed-card-top,
.ed-product-label {
    color: var(--primary);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .02em;
}

/* Header */
.ed-top {
    background: rgba(255, 255, 255, .96);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 30;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

.ed-header-inner {
    align-items: center;
    display: flex;
    gap: 3rem;
    justify-content: space-between;
    margin: 0 auto;
    max-width: var(--container);
    min-height: 4.5rem;
    padding: .75rem var(--gutter);
}

.ed-logo {
    align-items: center;
    display: inline-flex;
    font-size: 1.15rem;
    font-weight: 600;
    gap: .7rem;
    letter-spacing: -.03em;
    line-height: 1;
    text-decoration: none;
}

.ed-logo img { height: 2rem; width: 2rem; }

.ed-logo .amp {
    color: var(--primary);
    font-size: .72em;
    font-weight: 600;
    letter-spacing: .03em;
}

.ed-nav { margin-left: auto; }

.ed-nav-list {
    align-items: center;
    display: flex;
    gap: .25rem;
}

.ed-nav-list a {
    border-radius: var(--radius-sm);
    color: var(--ink-2);
    font-size: .8125rem;
    font-weight: 500;
    padding: .55rem .7rem;
    text-decoration: none;
    transition: background .15s, color .15s;
}

.ed-nav-list a:hover,
.ed-nav-list a:focus-visible {
    background: var(--primary-soft);
    color: var(--primary-dark);
    outline: 0;
}

.ed-nav-list .ed-nav-external {
    background: var(--ink);
    color: #fff;
    margin-left: .5rem;
    padding-inline: .9rem;
}

.ed-nav-list .ed-nav-external:hover,
.ed-nav-list .ed-nav-external:focus-visible {
    background: var(--primary-dark);
    color: #fff;
}

.ed-nav-toggle {
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    display: none;
    flex-direction: column;
    gap: 4px;
    height: 2.65rem;
    justify-content: center;
    width: 2.65rem;
}

.ed-nav-toggle span {
    background: var(--ink);
    display: block;
    height: 2px;
    width: 18px;
}

/* Hero */
.ed-hero {
    border-bottom: 1px solid var(--border);
    padding: 6rem 0;
}

.ed-hero-grid {
    align-items: center;
    display: grid;
    gap: clamp(3rem, 7vw, 6rem);
    grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .75fr);
}

.ed-kicker {
    align-items: center;
    display: inline-flex;
    margin-bottom: 1.5rem;
}

.ed-headline {
    font-size: clamp(3rem, 6vw, 4.5rem);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.02;
    max-width: 12ch;
}

.ed-headline em {
    color: var(--primary);
    font-style: normal;
}

.ed-deck {
    color: var(--ink-2);
    font-size: clamp(1.1rem, 2vw, 1.3rem);
    line-height: 1.55;
    margin-top: 1.75rem;
    max-width: 39rem;
}

.ed-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2rem;
}

.ed-btn {
    align-items: center;
    background: var(--primary);
    border: 1px solid var(--primary);
    border-radius: var(--radius-sm);
    color: #fff;
    display: inline-flex;
    font-size: .875rem;
    font-weight: 600;
    gap: .55rem;
    justify-content: center;
    min-height: 2.75rem;
    padding: .7rem 1.1rem;
    text-decoration: none;
    transition: background .15s, border-color .15s;
}

.ed-btn:hover,
.ed-btn:focus-visible {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    outline: 0;
}

.ed-btn.alt {
    background: var(--surface);
    border-color: var(--border-strong);
    color: var(--ink);
}

.ed-btn.alt:hover,
.ed-btn.alt:focus-visible {
    background: var(--surface-muted);
    border-color: var(--border-strong);
    color: var(--ink);
}

.ed-btn .arrow { transition: transform .15s; }
.ed-btn:hover .arrow { transform: translateX(3px); }

.ed-byline {
    align-items: center;
    color: var(--ink-2);
    display: flex;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .65rem;
    margin-top: 2rem;
}

.ed-hero-note {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 2rem;
}

.ed-hero-note > p {
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.35;
    margin: 1rem 0 1.75rem;
}

.ed-hero-note dl { display: grid; gap: .75rem; margin: 0; }

.ed-hero-note dl div {
    align-items: center;
    border-top: 1px solid var(--border);
    display: grid;
    font-size: .875rem;
    gap: .75rem;
    grid-template-columns: 2rem 1fr;
    padding: .75rem 0;
}

.ed-hero-note dt {
    align-items: center;
    background: var(--primary-soft);
    border-radius: var(--radius-sm);
    color: var(--primary);
    display: flex;
    font-size: .7rem;
    font-weight: 600;
    height: 2rem;
    justify-content: center;
}

.ed-hero-note dd { font-weight: 600; margin: 0; }

/* Shared sections */
.ed-section { padding: 5.5rem 0; }
.ed-section + .ed-section { border-top: 1px solid var(--border); }

.ed-section-head {
    display: grid;
    gap: 3rem;
    grid-template-columns: 11rem 1fr;
    margin-bottom: 3rem;
}

.ed-section-head h2 {
    font-size: clamp(2.2rem, 4.5vw, 3.25rem);
    max-width: 19ch;
}

.ed-section-meta { margin-top: 1.25rem; }

.ed-section-meta strong {
    display: block;
    font-size: .95rem;
    font-weight: 600;
    margin-bottom: .35rem;
}

.ed-section-meta p { color: var(--ink-2); max-width: 45rem; }

/* Company directory */
.ed-directory {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(3, 1fr);
}

.ed-directory.four-up { grid-template-columns: repeat(2, 1fr); }

.ed-directory-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    min-height: 25rem;
    padding: 1.75rem;
    transition: border-color .15s;
}

.ed-directory-card:hover {
    border-color: var(--primary);
}

.ed-directory-card.featured {
    border-color: rgba(219, 39, 119, .32);
}

.ed-card-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.ed-card-top span:last-child {
    color: var(--ink-2);
}

.ed-directory-card h3 {
    font-size: 1.5rem;
    margin: 1.5rem 0 .9rem;
}

.ed-directory-card > p:not(.ed-rate) {
    color: var(--ink-2);
    font-size: .9375rem;
}

.ed-inline-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    list-style: none;
    margin: 1.4rem 0 1.75rem;
    padding: 0;
}

.ed-inline-list li {
    color: var(--ink-2);
    font-size: .8rem;
    font-weight: 500;
    padding: 0;
}

.ed-inline-list li:not(:last-child)::after {
    color: var(--border-strong);
    content: "·";
    margin-left: .5rem;
}

.ed-rate {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: grid;
    margin: 1.4rem 0 1.75rem;
    padding: 1rem;
}

.ed-rate span,
.ed-rate small { color: var(--ink-2); font-size: .75rem; }

.ed-rate strong {
    font-size: 1.4rem;
    margin: .15rem 0;
}

.ed-text-link {
    align-items: center;
    color: var(--primary);
    display: inline-flex;
    font-size: .875rem;
    font-weight: 600;
    gap: .35rem;
    margin-top: auto;
    text-decoration: none;
    width: fit-content;
}

.ed-text-link:hover { color: var(--primary-dark); text-decoration: underline; }

/* Products */
.ed-applications { background: #fbfbfc; }

.ed-app-spotlight {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 7vw, 6rem);
    grid-template-columns: minmax(12rem, .45fr) minmax(0, 1.55fr);
}

.ed-app-mark {
    align-items: center;
    aspect-ratio: 1;
    background: #f4f5f7;
    border: 1px solid var(--border);
    display: flex;
    justify-content: center;
    padding: 2rem;
}

.ed-app-mark img {
    aspect-ratio: 1 / 1;
    border-radius: 22%;
    flex: 0 0 auto;
    object-fit: contain;
    width: min(100%, 12rem);
}
.ed-app-spotlight h2 { font-size: clamp(2.5rem, 5vw, 4rem); margin: .75rem 0 1rem; }
.ed-app-spotlight p { color: var(--ink-2); font-size: 1.08rem; max-width: 47rem; }
.ed-app-price { align-self: center; color: var(--ink-2); font-size: .82rem; font-weight: 600; }

.ed-ios-development { background: var(--ink); color: #fff; }
.ed-ios-development h2,
.ed-ios-development h3 { color: #fff; }
.ed-ios-development .ed-section-meta p { color: rgba(255, 255, 255, .66); }
.ed-ios-development .ed-section-meta strong { color: #fff; }

.ed-ios-grid {
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .16);
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(3, 1fr);
}

.ed-ios-grid article {
    background: var(--ink);
    min-height: 19rem;
    padding: 2rem;
}

.ed-ios-grid .ed-product-label { color: var(--primary-on-dark); }
.ed-ios-grid h3 { font-size: 1.45rem; margin: 4rem 0 .85rem; }
.ed-ios-grid p { color: rgba(255, 255, 255, .64); font-size: .94rem; }

.ed-ios-action {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    padding: 2rem 0 0;
}

.ed-ios-action > div { padding-bottom: 2rem; }
.ed-ios-action strong { display: block; font-size: 1.1rem; }
.ed-ios-action p { color: rgba(255, 255, 255, .64); margin-top: .35rem; max-width: 42rem; }
.ed-ios-action .ed-btn { flex: 0 0 auto; margin-bottom: 2rem; }

.ed-tech { background: var(--surface-muted); }

.ed-products {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr 1fr;
}

.ed-products article {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    display: flex;
    flex-direction: column;
    min-height: 22rem;
    padding: 2rem;
}

.ed-product-label {
    color: var(--primary);
    padding: 0;
    width: fit-content;
}

.ed-products h3 { font-size: 1.75rem; margin: 1.25rem 0 .75rem; }
.ed-products p { color: var(--ink-2); max-width: 34rem; }

.ed-products code {
    background: var(--ink);
    border-radius: var(--radius);
    color: #fff;
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .75rem;
    margin: 1.5rem 0;
    overflow-wrap: anywhere;
    padding: .8rem 1rem;
    width: fit-content;
}

/* Leadership */
.ed-profile-grid {
    align-items: center;
    display: grid;
    gap: clamp(3rem, 8vw, 7rem);
    grid-template-columns: minmax(16rem, .7fr) minmax(0, 1.35fr);
}

.ed-profile-photo {
    aspect-ratio: 1;
    background: var(--surface-muted);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    margin: 1rem 0 0;
    overflow: hidden;
}

.ed-profile-photo::after { display: none; }

.ed-profile-photo img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.ed-profile-copy h2 {
    font-size: clamp(2.75rem, 6vw, 4rem);
    margin: .65rem 0 1.5rem;
}

.ed-profile-copy > p:not(.ed-eyebrow) {
    color: var(--ink-2);
    font-size: 1rem;
    max-width: 44rem;
}

.ed-profile-copy .ed-profile-lead {
    color: var(--ink);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    font-weight: 600;
    line-height: 1.5;
}

/* Journal preview */
.ed-blog-preview {
    background: var(--surface-muted);
}

.ed-blog-preview-grid {
    align-items: end;
    display: grid;
    gap: clamp(2rem, 8vw, 7rem);
    grid-template-columns: 1fr 1fr;
}

.ed-blog-preview h2 {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    margin-top: .75rem;
}

.ed-blog-preview-grid > div:last-child > p {
    color: var(--ink-2);
    font-size: 1.05rem;
    max-width: 38rem;
}

.ed-blog-preview .ed-text-link {
    margin-top: 1.5rem;
}

/* Journal index */
.blog-hero {
    border-bottom: 1px solid var(--border);
    padding: 6rem 0 4.5rem;
}

.blog-hero-inner {
    max-width: 52rem;
}

.blog-hero h1 {
    font-size: clamp(3rem, 7vw, 5rem);
    letter-spacing: -.04em;
    margin: .8rem 0 1.4rem;
}

.blog-hero p {
    color: var(--ink-2);
    font-size: clamp(1.1rem, 2vw, 1.3rem);
    max-width: 42rem;
}

.blog-index {
    padding: 5rem 0 6rem;
}

.blog-index-head {
    align-items: baseline;
    border-bottom: 1px solid var(--border-strong);
    display: flex;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
}

.blog-index-head h2 {
    font-size: 1.5rem;
}

.blog-index-head p {
    color: var(--ink-2);
    font-size: .875rem;
}

.blog-empty {
    max-width: 40rem;
    padding: 2rem 0 4rem;
}

.blog-empty h3 {
    font-size: 1.5rem;
    margin-bottom: .65rem;
}

.blog-empty p { color: var(--ink-2); }

.blog-topics {
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 1rem;
}

.blog-topic {
    border-right: 1px solid var(--border);
    padding: 2rem;
}

.blog-topic:first-child { padding-left: 0; }
.blog-topic:last-child { border-right: 0; padding-right: 0; }
.blog-topic h3 { font-size: 1rem; margin-bottom: .5rem; }
.blog-topic p { color: var(--ink-2); font-size: .9rem; }

.blog-list {
    display: grid;
}

.blog-card {
    align-items: start;
    border-bottom: 1px solid var(--border);
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(12rem, .6fr) minmax(0, 1.4fr);
    padding: 2rem 0;
}

.blog-card:first-child { padding-top: 0; }

.blog-card-image {
    aspect-ratio: 16 / 10;
    background: var(--surface-muted);
    overflow: hidden;
}

.blog-card-image img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.blog-card-meta,
.article-meta {
    color: var(--ink-2);
    display: flex;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .55rem;
}

.blog-card h2 {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    margin: .55rem 0 .7rem;
}

.blog-card h2 a { text-decoration: none; }
.blog-card h2 a:hover { color: var(--primary); }
.blog-card-summary { color: var(--ink-2); max-width: 44rem; }
.blog-card .ed-text-link { margin-top: 1.2rem; }

/* Journal articles */
.article-header {
    border-bottom: 1px solid var(--border);
    padding: 5.5rem 0 3rem;
}

.article-header-inner,
.article-body {
    margin: 0 auto;
    max-width: 48rem;
}

.article-breadcrumb {
    color: var(--ink-2);
    display: inline-block;
    font-size: .82rem;
    margin-bottom: 2.25rem;
    text-decoration: none;
}

.article-breadcrumb:hover { color: var(--primary); }

.article-header h1 {
    font-size: clamp(2.8rem, 7vw, 4.75rem);
    letter-spacing: -.04em;
    margin: .8rem 0 1.3rem;
}

.article-deck {
    color: var(--ink-2);
    font-size: clamp(1.1rem, 2vw, 1.3rem);
    line-height: 1.55;
    margin-bottom: 1.5rem;
    max-width: 44rem;
}

.article-hero {
    margin: 0 auto;
    max-width: 72rem;
    padding: 2.5rem var(--gutter) 0;
}

.article-hero img {
    height: auto;
    width: 100%;
}

.article-hero figcaption,
.article-body figcaption {
    color: var(--ink-2);
    font-size: .78rem;
    margin-top: .65rem;
}

.article {
    padding: 4rem 0 6rem;
}

.article-body {
    color: #27272a;
    font-size: 1.05rem;
    line-height: 1.75;
}

.article-body > * + * { margin-top: 1.5rem; }

.article-body h2 {
    font-size: 1.8rem;
    margin-top: 3.25rem;
}

.article-body h3 {
    font-size: 1.3rem;
    margin-top: 2.5rem;
}

.article-body a {
    color: var(--primary-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.article-body ul,
.article-body ol {
    padding-left: 1.4rem;
}

.article-body li + li { margin-top: .55rem; }

.article-body blockquote {
    border-left: 3px solid var(--primary);
    color: var(--ink);
    font-size: 1.2rem;
    font-weight: 500;
    margin-left: 0;
    padding-left: 1.25rem;
}

.article-body figure {
    margin: 2.5rem 0;
}

.article-body figure.wide {
    margin-left: min(-8vw, -5rem);
    margin-right: min(-8vw, -5rem);
}

.article-body code {
    background: var(--surface-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: .88em;
    padding: .12em .3em;
}

.article-body pre {
    background: var(--ink);
    color: #f4f4f5;
    overflow-x: auto;
    padding: 1.25rem;
}

.article-body pre code {
    background: transparent;
    color: inherit;
    padding: 0;
}

.article-callout {
    background: var(--surface-muted);
    border-left: 3px solid var(--primary);
    padding: 1.25rem;
}

.article-callout strong {
    display: block;
    margin-bottom: .35rem;
}

.article-footer {
    border-top: 1px solid var(--border);
    margin-top: 4rem;
    padding-top: 1.5rem;
}

.article-footer p {
    color: var(--ink-2);
    font-size: .9rem;
}

/* Contact form */
.ed-contact { padding: 2rem 0 6rem; }

.ed-contact-panel {
    background: var(--ink);
    border-radius: var(--radius-lg);
    color: #fff;
    padding: clamp(2rem, 5vw, 4rem);
}

.ed-contact-grid {
    align-items: start;
    display: grid;
    gap: clamp(2.5rem, 7vw, 5rem);
    grid-template-columns: minmax(0, .9fr) minmax(27rem, 1.1fr);
}

.ed-contact-panel .ed-small { color: #f9a8d4; }

.ed-contact-copy h2 {
    color: #fff;
    font-size: clamp(2.25rem, 5vw, 3.25rem);
    margin: 1rem 0 1.25rem;
}

.ed-contact-copy > p { color: rgba(255, 255, 255, .7); }

.ed-contact-copy .ed-contact-direct {
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-size: .875rem;
    margin-top: 2rem;
    padding-top: 1.25rem;
}

.ed-contact-form {
    background: var(--surface);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--radius);
    color: var(--ink);
    padding: clamp(1.5rem, 4vw, 2.25rem);
}

.ed-field-row {
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr 1fr;
}

.ed-field { display: grid; gap: .4rem; margin-bottom: 1rem; }

.ed-field label {
    color: var(--ink);
    font-size: .8125rem;
    font-weight: 600;
}

.ed-field label span { color: var(--ink-2); font-weight: 400; }

.ed-field input,
.ed-field select,
.ed-field textarea {
    appearance: none;
    background: #fff;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    color: var(--ink);
    padding: .7rem .8rem;
    width: 100%;
}

.ed-field select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--ink-2) 50%),
        linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);
    background-position: calc(100% - 1rem) 50%, calc(100% - .7rem) 50%;
    background-repeat: no-repeat;
    background-size: 4px 4px, 4px 4px;
    padding-right: 2rem;
}

.ed-field textarea { min-height: 8rem; resize: vertical; }

.ed-field input:focus,
.ed-field select:focus,
.ed-field textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-soft);
    outline: 0;
}

.ed-contact-form .ed-btn { width: 100%; }

/* Footer */
.ed-foot {
    background: var(--surface);
    border-top: 1px solid var(--border);
    padding: 4rem 0 2rem;
}

.ed-foot-grid {
    display: grid;
    gap: 2.5rem;
    grid-template-columns: 1.7fr 1fr 1fr 1fr 1.15fr;
}

.ed-foot h2 { font-size: 2rem; margin-bottom: .75rem; }
.ed-foot-grid > div:first-child p { max-width: 30rem; }
.ed-foot-h { color: var(--ink); margin-bottom: .75rem; }
.ed-foot ul { list-style: none; margin: 0; padding: 0; }

.ed-foot li {
    color: var(--ink-2);
    font-size: .875rem;
    padding: .3rem 0;
}

.ed-foot li a { text-decoration: none; }
.ed-foot li a:hover { color: var(--primary); }

.ed-colophon {
    border-top: 1px solid var(--border);
    color: var(--ink-2);
    display: flex;
    flex-wrap: wrap;
    font-size: .7rem;
    gap: 1rem;
    justify-content: space-between;
    margin-top: 3rem;
    padding-top: 1.5rem;
}

.ed-floating-cta {
    background: var(--primary);
    border-radius: var(--radius-sm);
    bottom: 1rem;
    color: #fff;
    font-size: .8125rem;
    font-weight: 600;
    padding: .75rem 1rem;
    position: fixed;
    right: 1rem;
    text-decoration: none;
    z-index: 25;
}

.ed-floating-cta:hover { background: var(--primary-dark); }

@media (max-width: 980px) {
    :root { --gutter: 1.5rem; }

    .ed-hero { padding: 4.5rem 0; }
    .ed-hero-grid { align-items: start; grid-template-columns: 1fr; }
    .ed-hero-note { max-width: 34rem; }

    .ed-section { padding: 4.5rem 0; }
    .ed-section-head { gap: 1.5rem; grid-template-columns: 1fr; }
    .ed-directory { grid-template-columns: 1fr; }
    .ed-directory-card { min-height: 0; }
    .ed-ios-grid { grid-template-columns: 1fr; }
    .ed-ios-grid article { min-height: 0; }
    .ed-ios-grid h3 { margin-top: 2rem; }

    .ed-profile-grid { gap: 3.5rem; }
    .ed-app-spotlight { grid-template-columns: minmax(10rem, .5fr) 1.5fr; }
    .ed-blog-preview-grid { grid-template-columns: 1fr; }
    .ed-contact-grid { grid-template-columns: 1fr; }

    .ed-foot-grid { grid-template-columns: 1fr 1fr; }
    .ed-foot-grid > div:first-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
    :root { --gutter: 1.25rem; }
    [id] { scroll-margin-top: 7rem; }

    .ed-header-inner { min-height: 4rem; padding-block: .65rem; }

    .ed-nav-toggle { display: inline-flex; }
    .ed-nav { margin-left: auto; }
    .ed-nav-list {
        align-items: stretch;
        background: var(--bg);
        border-top: 1px solid var(--border);
        display: none;
        flex-direction: column;
        gap: .15rem;
        left: 0;
        padding: .65rem var(--gutter) 1rem;
        position: absolute;
        right: 0;
        top: 100%;
    }
    .ed-nav-list.is-open { display: flex; }
    .ed-nav-list a { padding: .7rem .75rem; width: 100%; }
    .ed-nav-list .ed-nav-external { margin-left: 0; }

    .ed-hero { padding: 3.5rem 0; }
    .ed-headline { font-size: clamp(2.8rem, 13vw, 4.25rem); }
    .ed-cta-row { align-items: stretch; flex-direction: column; }

    .ed-section { padding: 3.75rem 0; }
    .ed-products { grid-template-columns: 1fr; }
    .ed-directory.four-up { grid-template-columns: 1fr; }
    .ed-app-spotlight { grid-template-columns: 1fr; }
    .ed-app-mark { max-width: 18rem; }
    .ed-products article { min-height: 0; padding: 1.5rem; }
    .ed-ios-action { align-items: stretch; flex-direction: column; gap: 0; }
    .ed-ios-action .ed-btn { width: 100%; }

    .ed-profile-grid { grid-template-columns: 1fr; gap: 2rem; }
    .ed-profile-photo { max-width: 18rem; }

    .blog-hero { padding: 4rem 0 3rem; }
    .blog-index { padding: 3.5rem 0 4rem; }
    .blog-index-head { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .blog-topics { grid-template-columns: 1fr; }
    .blog-topic { border-bottom: 1px solid var(--border); border-right: 0; padding: 1.5rem 0; }
    .blog-topic:last-child { border-bottom: 0; }
    .blog-card { grid-template-columns: 1fr; }
    .article-header { padding: 4rem 0 2.5rem; }
    .article { padding: 3rem 0 4rem; }
    .article-body figure.wide { margin-left: 0; margin-right: 0; }

    .ed-contact { padding: 1rem 0 3.75rem; }
    .ed-contact-panel { border-radius: 0; margin: 0 calc(var(--gutter) * -1); padding: 2rem var(--gutter); }
    .ed-field-row { grid-template-columns: 1fr; gap: 0; }

    .ed-foot { padding-top: 3rem; }
    .ed-foot-grid { grid-template-columns: 1fr; gap: 2rem; }
    .ed-foot-grid > div:first-child { grid-column: auto; }
    .ed-colophon { flex-direction: column; gap: .45rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}

/* 2026 studio library */
.studio-site { --studio-paper:#fbfaf7;--studio-ink:#151515;--studio-muted:#696966;--studio-line:rgba(21,21,21,.14);--studio-pink:#e62b78;background:var(--studio-paper);color:var(--studio-ink); }
.studio-shell { margin:0 auto;max-width:1240px;padding-inline:clamp(1.25rem,4vw,3.5rem); }
.studio-header { align-items:center;background:rgba(251,250,247,.9);border-bottom:1px solid var(--studio-line);display:flex;justify-content:space-between;min-height:5rem;padding:1rem clamp(1.25rem,4vw,3.5rem);position:sticky;top:0;z-index:50;backdrop-filter:blur(18px); }
.studio-wordmark { align-items:center;display:inline-flex;font-size:1.05rem;font-weight:750;gap:.65rem;letter-spacing:-.04em;text-decoration:none; }
.studio-wordmark img { height:2rem;width:2rem; }
.studio-header nav { display:flex;gap:clamp(.5rem,2vw,1.75rem); }
.studio-header nav a { color:var(--studio-muted);font-size:.82rem;font-weight:600;text-decoration:none; }
.studio-header nav a:hover { color:var(--studio-pink); }
.studio-eyebrow { color:var(--studio-pink);font-size:.72rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase; }
.studio-hero { overflow:hidden;padding:clamp(5rem,10vw,9rem) 0 clamp(4rem,8vw,7rem); }
.studio-hero-grid { align-items:center;display:grid;gap:clamp(3rem,8vw,8rem);grid-template-columns:minmax(0,1.1fr) minmax(22rem,.9fr); }
.studio-hero h1 { font-size:clamp(3.6rem,8vw,7.4rem);font-weight:650;letter-spacing:-.065em;line-height:.88;margin-top:1.5rem;max-width:9ch; }
.studio-hero h1 em { color:var(--studio-pink);font-style:normal; }
.studio-lead { color:var(--studio-muted);font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.55;margin-top:2rem;max-width:39rem; }
.studio-actions { align-items:center;display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:2rem; }
.studio-button { align-items:center;background:var(--studio-ink);border:1px solid var(--studio-ink);border-radius:999px;color:#fff;display:inline-flex;font-size:.86rem;font-weight:700;gap:.7rem;justify-content:center;min-height:3rem;padding:.75rem 1.25rem;text-decoration:none;transition:transform .2s,background .2s; }
.studio-button:hover { background:var(--studio-pink);border-color:var(--studio-pink);transform:translateY(-2px); }
.studio-link { font-size:.86rem;font-weight:700;text-decoration:none;text-underline-offset:4px; }
.studio-link:hover { text-decoration:underline; }
.app-orbit { aspect-ratio:1;background:radial-gradient(circle,rgba(230,43,120,.1) 0 1px,transparent 1px);background-size:22px 22px;border:1px solid var(--studio-line);border-radius:50%;max-width:31rem;position:relative;width:100%; }
.app-orbit::before,.app-orbit::after { border:1px solid var(--studio-line);border-radius:50%;content:"";inset:16%;position:absolute; }
.app-orbit::after { inset:33%; }
.orbit-app { aspect-ratio:1;border-radius:24%;box-shadow:0 18px 45px rgba(20,20,20,.18);display:block;overflow:hidden;position:absolute;width:22%;z-index:2;transition:transform .2s; }
a.orbit-app:hover { transform:translateY(-5px) rotate(-2deg); }
.orbit-app img { height:100%;object-fit:cover;width:100%; }
.orbit-golf { left:39%;top:8%; }.orbit-contacts { right:4%;top:40%; }
.orbit-atlas { left:4%;top:40%; }
.orbit-caption { color:var(--studio-muted);font-size:.68rem;left:50%;letter-spacing:.06em;line-height:1.5;position:absolute;text-align:center;text-transform:uppercase;top:50%;transform:translate(-50%,-50%); }
.release-strip { background:var(--studio-ink);color:#fff; }.release-strip-inner { align-items:center;display:flex;flex-wrap:wrap;font-size:.78rem;gap:.75rem 1.25rem;min-height:4.75rem; }.release-strip-inner span { color:#a8a8a3; }.release-strip-inner a { color:#fff;font-weight:700;margin-left:auto;text-decoration:none; }.release-strip-inner .mac-app-store-badge,.release-strip-inner .app-store-badge { line-height:0; }.release-strip-inner .mac-app-store-badge img,.release-strip-inner .app-store-badge img { display:block;height:40px;width:auto; }.release-dot { background:#4dd788;border-radius:50%;height:.5rem;width:.5rem; }
.featured-release { background:#f0eee8;padding:clamp(5rem,10vw,9rem) 0; }
.studio-section-head { display:grid;gap:1rem;grid-template-columns:13rem 1fr;margin-bottom:clamp(3rem,6vw,5rem); }
.studio-section-head h2,.library-heading h2,.story-grid h2,.consulting-grid h2 { font-size:clamp(2.8rem,6vw,5.8rem);letter-spacing:-.055em;line-height:.95; }
.featured-grid { align-items:center;display:grid;gap:clamp(3rem,8vw,7rem);grid-template-columns:minmax(18rem,.7fr) minmax(0,1.3fr); }
.featured-icon { border-radius:24%;box-shadow:0 20px 45px rgba(20,20,20,.18); }.featured-copy h3 { font-size:clamp(2rem,4vw,3rem);margin:1.5rem 0 1rem; }.featured-copy>p { color:var(--studio-muted);font-size:1.05rem;max-width:36rem; }.featured-copy ul { color:var(--studio-muted);font-size:.85rem;list-style:none;margin:1.5rem 0 0;padding:0; }.featured-copy li { border-top:1px solid var(--studio-line);padding:.55rem 0; }
.screen-gallery { align-items:center;display:grid;gap:clamp(.5rem,2vw,1.5rem);grid-template-columns:repeat(3,1fr); }.screen-gallery img { border-radius:clamp(1rem,2vw,2rem);box-shadow:0 25px 55px rgba(20,20,20,.16);width:100%; }.screen-gallery .screen-center { transform:translateY(-1.5rem); }
.library-section { padding:clamp(5rem,10vw,9rem) 0; }.library-heading { align-items:end;display:grid;gap:3rem;grid-template-columns:1fr .6fr;margin-bottom:4rem; }.library-heading .studio-eyebrow { margin-bottom:1rem; }.library-heading>p { color:var(--studio-muted);font-size:1rem;max-width:31rem; }
.library-grid { border-top:1px solid var(--studio-line);display:grid;grid-template-columns:repeat(2,1fr); }.library-card { align-items:center;border-bottom:1px solid var(--studio-line);color:inherit;display:grid;gap:1.5rem;grid-template-columns:5.5rem 1fr auto;min-height:13rem;padding:2rem;position:relative;text-decoration:none;transition:background .2s; }.library-card:nth-child(odd) { border-right:1px solid var(--studio-line); }a.library-card:hover { background:#f1efe9; }
.library-card img { aspect-ratio:1;border-radius:23%;box-shadow:0 10px 25px rgba(20,20,20,.13);width:5.5rem; }.library-card p { color:var(--studio-pink);font-size:.65rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase; }.library-card h3 { font-size:1.45rem;margin:.25rem 0 .3rem; }.library-card div>span { color:var(--studio-muted);font-size:.82rem; }.library-card b { font-size:1.25rem; }.library-status { color:var(--studio-muted);font-size:.64rem;font-weight:700;letter-spacing:.05em;position:absolute;right:2rem;text-transform:uppercase;top:1.25rem; }.library-card.live .library-status { color:#18804b; }.library-all { display:inline-block;font-size:.84rem;font-weight:750;margin-top:2rem;text-decoration:none; }
.studio-story { border-top:1px solid var(--studio-line);padding:clamp(5rem,10vw,9rem) 0; }.story-grid { display:grid;gap:clamp(3rem,10vw,9rem);grid-template-columns:1fr 1fr; }.story-grid .studio-eyebrow { margin-bottom:1rem; }.story-copy>p { color:var(--studio-muted);font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.6; }.story-principles { display:grid;grid-template-columns:1fr 1fr;margin-top:3rem; }.story-principles span { border-top:1px solid var(--studio-line);font-size:.8rem;padding:1rem 0; }.story-principles span:nth-child(odd) { margin-right:2rem; }.story-principles b { color:var(--studio-pink);display:inline-block;font-family:ui-monospace,monospace;font-size:.65rem;width:2rem; }
.updates-section { background:#f5dce7;border-top:1px solid var(--studio-line);padding:clamp(5rem,9vw,8rem) 0; }
.updates-grid { align-items:start;display:grid;gap:clamp(3rem,8vw,7rem);grid-template-columns:minmax(18rem,.8fr) minmax(28rem,1.2fr); }
.updates-copy h2 { font-size:clamp(2.8rem,6vw,5.4rem);letter-spacing:-.055em;line-height:.95;margin:1rem 0 1.5rem; }
.updates-copy>p:not(.studio-eyebrow) { color:var(--studio-muted);max-width:35rem; }
.updates-copy ul { border-top:1px solid var(--studio-line);list-style:none;margin:2rem 0 0;padding:0; }
.updates-copy li { border-bottom:1px solid var(--studio-line);font-size:.82rem;font-weight:650;padding:.8rem 0; }
.updates-copy .updates-fine-print { font-size:.72rem;margin-top:1.25rem; }
.updates-fine-print a { color:var(--studio-ink);font-weight:700;text-underline-offset:3px; }
.updates-form-shell { background:#fff;border:1px solid var(--studio-line);min-height:30rem;padding:clamp(.5rem,2vw,1rem); }
.mailjet-signup { display:block;min-height:30rem;width:100%; }
.journal-signup { background:var(--surface-muted);border:1px solid var(--border);margin-top:3rem;padding:1.5rem; }
.journal-signup h2 { font-size:1.35rem;margin:0 0 .6rem; }
.journal-signup p { color:var(--ink-2);font-size:.92rem;margin:0; }
.journal-signup a { color:var(--primary-dark);font-weight:650; }
.consulting-section { background:var(--studio-ink);color:#fff;padding:clamp(5rem,10vw,9rem) 0; }.consulting-section h2 { color:#fff; }.consulting-grid { display:grid;gap:clamp(3rem,8vw,8rem);grid-template-columns:13rem 1fr; }.consulting-grid>div>p { color:#aaa9a4;font-size:1.1rem;margin-top:2rem;max-width:45rem; }.consulting-details { border-bottom:1px solid rgba(255,255,255,.16);border-top:1px solid rgba(255,255,255,.16);display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:2rem;padding:1rem 0; }.consulting-details span { color:#aaa9a4;font-size:.74rem; }.consulting-grid .studio-button { border-radius:0;margin-top:2rem; }.studio-button.light { background:#fff;border-color:#fff;color:var(--studio-ink); }.studio-button.light:hover { background:var(--studio-pink);border-color:var(--studio-pink);color:#fff; }
.contact-section { padding:5rem 0; }.contact-inner { align-items:center;display:flex;justify-content:space-between; }.contact-inner>a { font-size:clamp(1.7rem,5vw,4rem);font-weight:650;letter-spacing:-.05em;text-decoration:none; }
.contact-form-section { background:#f0eee8;border-top:1px solid var(--studio-line);padding:clamp(5rem,9vw,8rem) 0; }
.contact-form-grid { align-items:start;display:grid;gap:clamp(3rem,8vw,7rem);grid-template-columns:minmax(16rem,.75fr) minmax(28rem,1.25fr); }
.contact-form-copy h2 { font-size:clamp(2.8rem,6vw,5.4rem);letter-spacing:-.055em;line-height:.95;margin:1rem 0 1.5rem; }
.contact-form-copy>p:not(.studio-eyebrow) { color:var(--studio-muted);font-size:1rem;line-height:1.65;max-width:32rem; }
.contact-form-direct { border-top:1px solid var(--studio-line);margin-top:2rem;padding-top:1.25rem; }
.contact-form-direct a { color:var(--studio-ink);font-weight:700;text-underline-offset:3px; }
.studio-contact-form { background:#fff;border:1px solid var(--studio-line);padding:clamp(1.5rem,4vw,2.5rem); }
.studio-contact-form .ed-field input,.studio-contact-form .ed-field select,.studio-contact-form .ed-field textarea { border-radius:0; }
.studio-contact-form .studio-button { margin-top:.5rem;width:100%; }
.studio-footer { align-items:end;border-top:1px solid var(--studio-line);display:grid;gap:3rem;grid-template-columns:1fr auto auto;padding:3rem clamp(1.25rem,4vw,3.5rem); }.studio-footer p,.studio-footer small { color:var(--studio-muted);font-size:.72rem;margin-top:.7rem; }.studio-footer nav { display:grid;gap:.4rem;grid-template-columns:1fr 1fr; }.studio-footer nav a { color:var(--studio-muted);font-size:.75rem;text-decoration:none; }
@media (max-width:820px) { .studio-hero-grid,.featured-grid,.story-grid,.updates-grid,.consulting-grid,.contact-form-grid { grid-template-columns:1fr; }.app-orbit { margin-inline:auto;max-width:27rem; }.studio-section-head { grid-template-columns:1fr; }.library-heading { align-items:start;grid-template-columns:1fr; }.library-grid { grid-template-columns:1fr; }.library-card:nth-child(odd) { border-right:0; }.studio-footer { align-items:start;grid-template-columns:1fr; } }
@media (max-width:560px) { .studio-header nav a:nth-child(2),.studio-header nav a:nth-child(3) { display:none; }.studio-hero h1 { font-size:clamp(3.4rem,17vw,5.4rem); }.release-strip-inner a { margin-left:0; }.screen-gallery { gap:.35rem; }.library-card { gap:1rem;grid-template-columns:4rem 1fr;padding:2.5rem 0 1.5rem; }.library-card img { width:4rem; }.library-card>b { display:none; }.library-status { right:0;top:1rem; }.contact-inner { align-items:start;flex-direction:column;gap:1.5rem; } }
