/* GWRN Studio — site stylesheet. Tokens mirror the GWRN design system (tokens/*.css). */

/* Self-hosted webfonts (SIL Open Font License 1.1). Subsets: latin, latin-ext, symbols, math. */
/* Bodoni Moda 400 italic — math */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-italic-math.woff2') format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF}
/* Bodoni Moda 400 italic — symbols */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-italic-symbols.woff2') format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF}
/* Bodoni Moda 400 italic — latin-ext */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* Bodoni Moda 400 italic — latin */
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Bodoni Moda 400 normal — math */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-math.woff2') format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-209F, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF}
/* Bodoni Moda 400 normal — symbols */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-symbols.woff2') format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AE, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F8D0-1F8D8, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FAC6, U+1FAC8, U+1FACC-1FADD, U+1FADF-1FAEB, U+1FAEF-1FAFA, U+1FB00-1FBFF}
/* Bodoni Moda 400 normal — latin-ext */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* Bodoni Moda 400 normal — latin */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/bodoni-moda-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* IBM Plex Mono 400 normal — latin-ext */
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/ibm-plex-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* IBM Plex Mono 400 normal — latin */
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/ibm-plex-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Schibsted Grotesk 400 normal — latin-ext */
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/schibsted-grotesk-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* Schibsted Grotesk 400 normal — latin */
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/schibsted-grotesk-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* Schibsted Grotesk 500 normal — latin-ext */
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/schibsted-grotesk-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* Schibsted Grotesk 500 normal — latin */
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/schibsted-grotesk-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

:root{
--paper-0:#FAF6F1;--paper-1:#F1EAE2;--paper-2:#E7DED3;--paper-3:#D8CDBF;
--taupe-300:#B7AE9B;--taupe-500:#8A806C;--taupe-700:#5F5747;
--ink-900:#1C1A16;--ink-700:#3A362F;--ink-500:#6A6458;
--signal-500:#E2401C;--signal-600:#C4330F;--signal-100:#F7D9CE;
--error-600:#B3261E;--border-inverse:#4A453C;
--font-display:'Bodoni Moda','Bodoni 72',Didot,Georgia,serif;
--font-sans:'Schibsted Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;
--font-mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
--type-d1:clamp(52px,9vw,144px);--type-d2:clamp(40px,6vw,96px);--type-d3:clamp(32px,4vw,64px);
--type-h1:clamp(26px,2.8vw,44px);--type-h2:clamp(21px,2vw,30px);--type-lead:clamp(19px,1.6vw,24px);
--gutter:clamp(16px,2vw,28px);--margin:clamp(20px,4vw,64px);--max:1600px;--section:clamp(96px,12vw,208px);
--ease:cubic-bezier(.16,1,.3,1);--ease-out:cubic-bezier(.2,.7,.1,1);
--dur:240ms;--dur-slow:520ms;--dur-reveal:900ms;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--paper-1);color:var(--ink-900);font-family:var(--font-sans);font-size:17px;line-height:1.55;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--signal-500);color:var(--paper-0)}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--signal-600)}
:focus-visible{outline:2px solid var(--signal-500);outline-offset:3px}
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance}
p{margin:0;text-wrap:pretty}
img{display:block;max-width:100%}
ul,ol{margin:0;padding:0;list-style:none}
em,i{font-style:italic}

/* Utilities */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--margin)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
.section{padding-top:var(--section)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:var(--margin);top:-60px;z-index:100;background:var(--ink-900);color:var(--paper-1);padding:10px 16px;text-decoration:none}
.skip:focus{top:12px}
.mono,.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;line-height:1.3}
.idx{font-family:var(--font-mono);font-size:13px;letter-spacing:0}
.eyebrow{display:flex;align-items:center;gap:12px}
.eyebrow--rule::after{content:"";flex:1;height:1px;background:currentColor}
.muted{color:var(--ink-500)}
.ital{font-style:italic;color:var(--taupe-700)}
.ph-text{color:var(--ink-500)}
.ph-note{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-600)}
.inverse .ph-note{color:var(--signal-500)}

/* Display type */
.d1{font-family:var(--font-display);font-size:var(--type-d1);line-height:.9;letter-spacing:-.035em}
.d2{font-family:var(--font-display);font-size:var(--type-d2);line-height:.92;letter-spacing:-.035em}
.d3{font-family:var(--font-display);font-size:var(--type-d3);line-height:.98;letter-spacing:-.03em}
.h1{font-family:var(--font-display);font-size:var(--type-h1);line-height:1.05;letter-spacing:-.02em}
.h2{font-family:var(--font-display);font-size:var(--type-h2);line-height:1.1;letter-spacing:-.02em}
.lead{font-size:var(--type-lead);line-height:1.35;letter-spacing:-.01em}
.body-2{color:var(--ink-700)}

/* Buttons + links */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;height:48px;padding:0 20px;font:500 15px/1 var(--font-sans);letter-spacing:-.005em;text-decoration:none;border:1px solid var(--ink-900);background:var(--ink-900);color:var(--paper-1);border-radius:0;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}
.btn:hover{background:var(--signal-500);border-color:var(--signal-500);color:var(--paper-0)}
.btn--lg{height:64px;padding:0 28px;font-size:17px}
.btn--sm{height:40px;padding:0 16px;font-size:14px}
.btn--accent{background:var(--signal-500);border-color:var(--signal-500);color:var(--paper-0)}
.btn--accent:hover{background:var(--ink-900);border-color:var(--ink-900);color:var(--paper-1)}
.btn--outline{background:transparent;color:var(--ink-900)}
.btn--outline:hover{background:var(--ink-900);border-color:var(--ink-900);color:var(--paper-1)}
.arrow{display:inline-block;transition:transform var(--dur) var(--ease)}
.btn:hover .arrow,.tlink:hover .arrow{transform:translateX(4px)}
.tlink{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap;font-weight:500;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:2px;transition:background-size var(--dur-slow) var(--ease),color var(--dur) var(--ease-out)}
.tlink:hover{background-size:100% 1px;color:var(--signal-600)}

/* Media placeholders — replace the label span with <img src alt> when photos arrive */
.media{position:relative;aspect-ratio:var(--ratio,4/5);overflow:hidden;background:var(--paper-2);margin:0}
.media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-reveal) var(--ease)}
.media--taupe{background:var(--taupe-300)}
.media--ink{background:var(--ink-900)}
.media:not(:has(img))::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 12px,var(--paper-3) 12px 13px)}
.media--taupe:not(:has(img))::before{background:repeating-linear-gradient(135deg,transparent 0 12px,var(--taupe-500) 12px 13px)}
.media--ink:not(:has(img))::before{background:repeating-linear-gradient(135deg,transparent 0 12px,var(--ink-700) 12px 13px)}
.media__label{position:absolute;left:12px;bottom:12px;right:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500)}
.media--taupe .media__label{color:var(--ink-900)}
.media--ink .media__label{color:var(--paper-3)}
a:hover .media img,.project:hover .media img{transform:scale(1.03)}
.caption>span{flex:1 1 auto}.caption{display:flex;justify-content:space-between;gap:16px;margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-500)}

/* Header */
.header{position:sticky;top:0;z-index:50;background:var(--paper-1);border-bottom:1px solid var(--ink-900)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap}
.brand:hover{color:inherit}
.brand img{height:34px;width:auto}
.brand__name{font-family:var(--font-display);font-size:26px;letter-spacing:-.02em;line-height:1}
.brand__sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe-700)}
.nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px)}
.nav__link{display:flex;gap:6px;align-items:baseline;font-size:15px;text-decoration:none;white-space:nowrap}
.nav__link span{font-family:var(--font-mono);font-size:11px;color:var(--ink-500)}
.nav__link[aria-current="true"]{color:var(--signal-600)}
.menu-btn{display:none;background:none;border:0;padding:8px 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-900);cursor:pointer}
@media (max-width:760px){
  .brand__sub{display:none}
  .menu-btn{display:block}
  .nav{position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper-1);border-bottom:1px solid var(--ink-900);padding:8px var(--margin) 24px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),visibility 0s linear var(--dur)}
  .nav.is-open{opacity:1;transform:none;visibility:visible;transition-delay:0s}
  .nav__link{font-family:var(--font-display);font-size:32px;padding:14px 0;border-bottom:1px solid var(--paper-3)}
  .nav .btn{margin-top:20px}
}

/* Header additions */
.header__right{display:flex;align-items:center;gap:20px}
.header__contact{display:none}
.nav__link{font-size:15px}

/* Hero */
.hero{padding-top:clamp(28px,5vw,80px);padding-bottom:clamp(56px,7vw,112px)}
.hero .grid{row-gap:clamp(32px,4.5vw,64px)}
.hero__top{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap}
.hero__title{grid-column:1/-1;font-size:clamp(46px,10vw,164px);line-height:.88}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.07em}
.hero__title .line>span{display:block}
.hero__title .indent{padding-left:calc((100% + var(--gutter))/6)}
.hero__copy{grid-column:1/span 5;display:flex;flex-direction:column;gap:32px}
.hero__copy .lead{max-width:34ch}
.hero__ctas{display:flex;gap:16px 28px;align-items:center;flex-wrap:wrap}
.hero__does{grid-column:8/-1;align-self:end;border-top:1px solid var(--ink-900)}
.hero__does li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--paper-3)}
.hero__does .mono{color:var(--ink-500);text-align:right}

/* Section header */
.shead{row-gap:24px}
.shead>.eyebrow{grid-column:1/-1}
.shead__title{grid-column:1/span 8}
.shead__aside{grid-column:9/-1;align-self:end;font-size:15px;color:var(--ink-700);max-width:42ch}
.section>.grid>.eyebrow{grid-column:1/-1}

/* Brands */
.brands{padding-top:clamp(24px,3vw,48px)}
.brands__head{display:flex;justify-content:space-between;align-items:end;gap:16px 48px;flex-wrap:wrap;padding-bottom:clamp(16px,2vw,28px)}
.brands__title{font-family:var(--font-display);font-size:var(--type-h1);line-height:1.05;letter-spacing:-.02em}
.brands__note{font-size:14px;color:var(--ink-700);max-width:46ch}
.brands__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--ink-900);border-top:1px solid var(--ink-900);border-bottom:1px solid var(--ink-900)}
.bcell{background:var(--paper-1);display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:14px 20px 22px;min-height:clamp(150px,14vw,220px);color:inherit;text-decoration:none;transition:background var(--dur) var(--ease-out)}
.bcell--lead{grid-column:span 2;min-height:clamp(220px,25vw,400px)}
.bcell:nth-child(1),.bcell:nth-child(3){padding-left:0}
.bcell__top{display:flex;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500)}
.bcell__tag{color:var(--ink-900)}
.bcell__name{font-family:var(--font-display);font-size:clamp(30px,3.2vw,52px);line-height:.95;letter-spacing:-.025em;text-wrap:balance}
.bcell--lead .bcell__name{font-size:clamp(58px,8.4vw,140px);letter-spacing:-.045em;line-height:.85}
.bcell__name--caps,.caps{letter-spacing:.02em}
a.bcell:hover{background:var(--paper-0);color:inherit}
a.bcell:hover .bcell__tag{color:var(--signal-600)}
a.bcell:hover .arrow{transform:translateY(3px)}

/* Work */
.work{padding-top:var(--section)}
.case{padding-top:clamp(72px,9vw,144px)}
.case__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;border-top:1px solid currentColor;padding-top:12px}
.case__name{font-family:var(--font-display);font-size:clamp(68px,16vw,256px);line-height:.82;letter-spacing:-.05em;margin-top:clamp(28px,4vw,64px);margin-left:-.04em}
.case--flip .case__name{text-align:right;margin-left:0;margin-right:-.02em}
.case__intro{margin-top:clamp(32px,4.5vw,72px);row-gap:40px}
.case__stand{grid-column:1/span 7}
.case--flip .case__stand{grid-column:6/-1;grid-row:1}
.case--flip .credits{grid-column:1/span 4;grid-row:1}
.case__project{font-family:var(--font-display);font-style:italic;font-size:var(--type-h1);color:var(--taupe-700);line-height:1.05;letter-spacing:-.02em}
.case__stand .lead{margin-top:20px;max-width:38ch}
.credits{grid-column:9/-1;margin:0;border-top:1px solid currentColor}
.credits div{display:grid;grid-template-columns:minmax(0,11ch) minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px solid var(--paper-3)}
.credits dt{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);padding-top:3px}
.credits dd{margin:0;font-size:15px;line-height:1.45}
.case__rows{margin-top:clamp(64px,8vw,128px)}
.crow{padding:16px 0 clamp(44px,5.5vw,80px);border-top:1px solid currentColor;row-gap:24px}
.crow__label{grid-column:1/span 3;display:flex;gap:16px;align-items:baseline}
.crow__label span{color:var(--ink-500)}
.crow__body{grid-column:4/-1}
.objectives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px var(--gutter)}
.objectives li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:baseline}
.objectives p{font-family:var(--font-display);font-size:var(--type-h2);line-height:1.12;letter-spacing:-.02em;max-width:22ch}
.objectives .idx{font-style:italic;font-family:var(--font-display);font-size:18px;color:var(--taupe-700)}
.approach li{font-size:var(--type-lead);line-height:1.35;letter-spacing:-.01em;padding:14px 0;border-bottom:1px solid var(--paper-3)}
.approach li:first-child{padding-top:0}
.strands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px var(--gutter)}
.strand h4{font-family:var(--font-display);font-weight:400;font-size:var(--type-h1);letter-spacing:-.02em;line-height:1.05;margin:12px 0 16px}
.strand p{color:var(--ink-700);max-width:44ch}
.strand ul{margin-top:20px;border-top:1px solid var(--paper-3)}
.strand li{padding:9px 0;border-bottom:1px solid var(--paper-3);font-size:15px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px var(--gutter)}
.stat__num{font-family:var(--font-display);font-size:clamp(56px,7vw,120px);line-height:.9;letter-spacing:-.04em;font-variant-numeric:lining-nums}
.stat__label{margin-top:12px;font-size:15px;color:var(--ink-700);max-width:22ch}
.stats-note{margin-top:28px;color:var(--ink-500)}
.ledger-wrap{margin-top:40px;overflow-x:auto}
.ledger{width:100%;border-collapse:collapse;font-size:15px;min-width:480px}
.ledger th,.ledger td{text-align:right;padding:11px 0 11px 16px;border-bottom:1px solid var(--paper-3);font-weight:400;font-variant-numeric:tabular-nums}
.ledger th:first-child{text-align:left;padding-left:0}
.ledger thead th{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);border-bottom:1px solid var(--ink-900)}
.reach{margin-top:clamp(56px,7vw,96px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:40px var(--gutter);align-items:start}
.reach__col ul{margin-top:12px;border-top:1px solid var(--ink-900)}
.reach__col li{padding:9px 0;border-bottom:1px solid var(--paper-3);font-size:15px}

/* Inverse band (Womanizer) */
.inverse{background:var(--ink-900);color:var(--paper-1)}
.inverse a:hover{color:var(--signal-500)}
.band{margin-top:clamp(72px,9vw,144px);padding:clamp(56px,7vw,112px) 0 clamp(72px,9vw,144px)}
.band .case{padding-top:0}
.inverse .crow{border-color:var(--border-inverse)}
.inverse .case__project{color:var(--taupe-300)}
.inverse .credits dt,.inverse .crow__label span{color:var(--taupe-300)}
.inverse .credits div,.inverse .strand li,.inverse .approach li{border-color:var(--border-inverse)}
.ph-text-inv{color:var(--taupe-300)}
.crow__ph{font-family:var(--font-display);font-size:var(--type-h2);line-height:1.15;letter-spacing:-.02em;max-width:34ch}

/* LUSH brief */
.brief{margin-top:clamp(72px,9vw,144px);border-top:1px solid var(--ink-900);padding-top:16px;row-gap:24px}
.brief__label{grid-column:1/span 3;display:flex;flex-direction:column;gap:6px}
.brief__name{grid-column:4/span 4;font-family:var(--font-display);font-size:var(--type-d3);line-height:.98;letter-spacing:-.03em}
.brief__name i{display:block}
.brief__text{grid-column:9/-1;display:flex;flex-direction:column;gap:16px}
.brief__text .body-2{font-size:15px}

/* Point of view */
.pov .grid{row-gap:48px}
.pov__title{grid-column:1/span 11}
.pov__text{grid-column:7/-1;display:flex;flex-direction:column;gap:24px}
.pov__text .body-2{max-width:54ch}

/* Capabilities */
.caps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gutter);row-gap:40px;margin-top:clamp(48px,6vw,88px)}
.cap{border-top:1px solid var(--ink-900);padding-top:16px}
.cap h3{margin:clamp(32px,4vw,56px) 0 16px}
.cap__list{color:var(--ink-700);font-size:15px;line-height:1.65;max-width:36ch}
.process{margin-top:clamp(72px,9vw,128px);row-gap:24px}
.process__label{grid-column:1/span 3;padding-top:20px}
.process__list{grid-column:4/-1;border-top:1px solid var(--ink-900)}
.process__list li{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,1.6fr);gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--paper-3)}
.process__list p{color:var(--ink-700);font-size:15px;max-width:52ch}

/* Studio */
.studio .grid{row-gap:48px}
.studio__intro{grid-column:1/span 5}
.studio__intro .body-2{margin-top:28px;max-width:44ch}
.founders{grid-column:7/-1;border-top:1px solid var(--ink-900)}
.founder{padding:16px 0 36px;border-bottom:1px solid var(--paper-3)}
.founder__name{font-family:var(--font-display);font-size:var(--type-h1);line-height:1.05;letter-spacing:-.02em}
.founder p{margin-top:10px;font-size:15px;color:var(--ink-700);max-width:44ch}
.og{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:16px;margin-top:clamp(32px,5vw,72px);border-top:1px solid var(--ink-900);padding-top:16px}
.og__label{grid-column:1/span 3}
.og__text{grid-column:4/-1;font-family:var(--font-display);font-size:clamp(26px,3.4vw,54px);line-height:1.08;letter-spacing:-.025em;max-width:28ch}

/* Contact */
.contact{padding-bottom:clamp(96px,10vw,144px)}
.contact .grid{row-gap:32px}
.contact__title{grid-column:1/span 10}
.contact__direct{grid-column:1/-1;display:flex;flex-direction:column;gap:20px;margin-top:clamp(16px,3vw,40px)}
.contact__mail{display:flex;justify-content:space-between;align-items:baseline;gap:24px;font-family:var(--font-display);font-size:clamp(30px,6vw,104px);line-height:1;letter-spacing:-.035em;text-decoration:none;border-bottom:1px solid var(--ink-900);padding-bottom:clamp(12px,1.6vw,24px);overflow-wrap:anywhere}
.contact__mail:hover{color:var(--signal-600);border-color:var(--signal-600)}
.contact__mail:hover .arrow{transform:translateX(8px)}
.contact__aside{font-size:15px;color:var(--ink-700);max-width:48ch}
.form{margin-top:clamp(64px,8vw,112px);row-gap:36px}
.form__label{grid-column:1/-1;color:var(--ink-500)}
.f-half{grid-column:span 6}
.f-full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);transition:color var(--dur) var(--ease-out)}
.field:focus-within label{color:var(--ink-900)}
.field .req{color:var(--signal-600)}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--taupe-500);border-radius:0;padding:0 0 1px;height:52px;font:20px/1.3 var(--font-sans);letter-spacing:-.01em;color:var(--ink-900);outline:none;transition:border-color var(--dur) var(--ease-out)}
.field textarea{height:auto;min-height:96px;padding:12px 0;resize:vertical}
.field input:focus,.field textarea:focus{border-bottom:2px solid var(--ink-900);padding-bottom:0}
.field textarea:focus{padding-bottom:11px}
.field.has-error input,.field.has-error textarea{border-bottom-color:var(--error-600)}
.field__error{font-size:13px;color:var(--error-600);display:none}
.field.has-error .field__error{display:block}
.form__foot{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-top:8px}
.form__foot p{font-size:13px;color:var(--ink-500);max-width:56ch}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Footer */
.footer{overflow:hidden}
.footer__top{padding-top:72px;row-gap:32px}
.footer__col{font-size:15px;line-height:1.8;color:var(--paper-3)}
.footer__c1 .lead{line-height:1.2}
.footer__col a{text-decoration:none}
.footer__c1{grid-column:1/span 5}
.footer__c2{grid-column:7/span 3}
.footer__c3{grid-column:10/span 3}
.footer__mark{font-family:var(--font-display);font-size:clamp(110px,31vw,520px);line-height:.78;letter-spacing:-.05em;text-align:center;margin-top:56px;transform:translateY(.1em);user-select:none}
.footer__bar{position:relative;z-index:1;background:var(--ink-900);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:16px;padding-bottom:16px;border-top:1px solid var(--border-inverse);color:var(--taupe-300)}
.footer__bar a{text-decoration:none}
.footer__bar nav{display:flex;gap:20px}

/* Simple pages (thank-you, legal) */
.page{min-height:calc(100vh - 73px);padding-top:clamp(48px,8vw,128px);padding-bottom:clamp(64px,8vw,128px)}
.page .grid{row-gap:32px}
.page__head{grid-column:1/-1}
.page__body{grid-column:4/span 7}
.legal h2{font-family:var(--font-display);font-size:var(--type-h2);letter-spacing:-.02em;margin:48px 0 12px}
.legal p,.legal li{color:var(--ink-700);max-width:68ch}
.legal p+p{margin-top:12px}
.legal ul{list-style:disc;padding-left:1.2em;margin-top:8px}
.legal-note{border-top:1px solid var(--ink-900);border-bottom:1px solid var(--ink-900);padding:16px 0}

/* Motion: hero only */
.js .hero__title .line>span{transform:translateY(105%);transition:transform 1100ms var(--ease);transition-delay:var(--d,0ms)}
.js .hero__title.is-in .line>span{transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:0ms!important;animation-duration:0ms!important}
  .js .hero__title .line>span{transform:none}
}

/* Responsive */
@media (max-width:1024px){
  .hero__copy{grid-column:1/span 7}
  .hero__does{grid-column:1/-1}
  .shead__title{grid-column:1/-1}
  .shead__aside{grid-column:1/span 8}
  .case__stand,.case--flip .case__stand{grid-column:1/span 7;grid-row:auto}
  .credits,.case--flip .credits{grid-column:8/-1;grid-row:auto}
  .crow__label{grid-column:1/-1}
  .crow__body{grid-column:1/-1}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reach{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reach__big{grid-column:1/-1}
  .brief__name{grid-column:4/-1}
  .brief__text{grid-column:4/-1}
  .caps{grid-template-columns:1fr}
  .cap{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:baseline}
  .cap h3{margin:0}
  .process__label{grid-column:1/-1;padding-top:0}
  .process__list{grid-column:1/-1}
  .studio__intro,.founders{grid-column:1/-1}
  .page__body{grid-column:1/span 10}
}
@media (max-width:760px){
  body{font-size:16px}
  .brand__sub{display:none}
  .header__contact{display:inline-flex}
  .nav .btn{display:none}
  .header__right{gap:16px}
  .hero__copy{grid-column:1/-1}
  .hero__does li{grid-template-columns:32px minmax(0,1fr)}
  .hero__does .mono{grid-column:2;text-align:left;margin-top:-6px}
  .shead__aside{grid-column:1/-1}
  .brands__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bcell{padding:12px 14px 18px;min-height:136px}
  .bcell:nth-child(1),.bcell:nth-child(2),.bcell:nth-child(3),.bcell:nth-child(5){padding-left:0}
  .bcell--lead{min-height:200px}
  .bcell--lead .bcell__name{font-size:clamp(58px,17vw,96px)}
  .bcell__name{font-size:clamp(26px,7.4vw,34px)}
  .case__stand,.case--flip .case__stand,.credits,.case--flip .credits{grid-column:1/-1}
  .case--flip .case__name{text-align:left;margin-left:-.04em}
  .objectives,.strands{grid-template-columns:1fr}
  .stats{gap:28px 16px}
  .stat__num{font-size:clamp(52px,15vw,72px)}
  .reach{grid-template-columns:1fr}
  .ledger{font-size:14px}
  .brief__label,.brief__name,.brief__text{grid-column:1/-1}
  .brief__label{flex-direction:row;justify-content:space-between}
  .pov__text{grid-column:1/-1}
  .cap{grid-template-columns:32px minmax(0,1fr)}
  .cap__list{grid-column:2}
  .process__list li{grid-template-columns:32px minmax(0,1fr)}
  .process__list p{grid-column:2}
  .og__label,.og__text{grid-column:1/-1}
  .contact__title{grid-column:1/-1}
  .contact__mail{font-size:clamp(26px,8.2vw,40px)}
  .f-half{grid-column:1/-1}
  .footer__c1,.footer__c2,.footer__c3{grid-column:1/-1}
  .page__body{grid-column:1/-1}
}

/* ===== Dark theme + readable display type =====
   Site-only remap: "paper" tokens now hold the dark grounds, "ink" tokens the light text.
   Schibsted Grotesk is a variable font, so the local files cover 400–800. Bodoni Moda is kept for the wordmark only. */
:root{
--paper-1:#1A1814;--paper-2:#24211C;--paper-3:#38342D;
--ink-900:#F1EAE2;--ink-700:#D8CDBF;--ink-500:#A79E8C;
--taupe-700:#C2B8A3;--taupe-500:#8F8572;
--signal-600:#F26A45;--error-600:#FF7A6B;--border-inverse:#3A362F;
--bg-deep:#11100D;--bg-hover:#221F1A;
--font-serif:'Bodoni Moda','Bodoni 72',Didot,Georgia,serif;
--font-display:'Schibsted Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;
}
body{font-size:18px;line-height:1.6;letter-spacing:0}
.d1,.d2,.d3,.h1,.h2,.brands__title,.bcell__name,.founder__name,.og__text,.contact__mail,.process__list h3,.cap h3{font-weight:500}
.d1{letter-spacing:-.045em;line-height:.92}
.d2{letter-spacing:-.04em;line-height:.96}
.d3{letter-spacing:-.035em;line-height:1}
.h1,.h2,.brands__title,.founder__name{letter-spacing:-.025em}
.ital{font-style:normal;color:var(--taupe-700)}
.hero__title{font-weight:500;line-height:.92}
.bcell--lead .bcell__name{letter-spacing:-.05em}
.bcell__name--caps,.caps{letter-spacing:0}
.og__text{line-height:1.12}
.contact__mail{letter-spacing:-.04em}
.lead{line-height:1.45}
.brand__name{font-family:var(--font-serif);font-weight:400}
.footer__mark{font-family:var(--font-serif);color:var(--paper-3)}
.header{border-bottom-color:var(--paper-3)}
a.bcell:hover{background:var(--bg-hover)}
.inverse{background:var(--bg-deep);color:var(--ink-900)}
.footer__col{color:var(--ink-700)}
.footer__bar{background:var(--bg-deep);color:var(--ink-500)}
.footer{border-top:1px solid var(--paper-3)}
.field input,.field textarea{color:var(--ink-900)}
@media (max-width:760px){body{font-size:17px}}

/* ===== Layout rhythm: one spacing system for every homepage section ===== */
:root{--sec-gap:clamp(64px,7vw,120px);--head-gap:clamp(40px,4.5vw,72px)}
.hero{padding-top:0;padding-bottom:var(--sec-gap);display:flex;flex-direction:column}
.hero .header__in{margin-bottom:clamp(48px,7vw,112px)}
.hero__title{margin:0}
.hero__ctas{margin-top:clamp(32px,4vw,56px)}
main>.section{padding-top:var(--sec-gap);padding-bottom:var(--sec-gap);border-top:1px solid var(--paper-3)}
.sec-title{text-align:center;max-width:20ch;margin:0 auto var(--head-gap)}
.sec-title.d2{max-width:16ch}
.pov__title{max-width:18ch}
.pov__statement{margin:var(--head-gap) 0 0 auto;max-width:34ch;font-size:var(--type-h1);line-height:1.2;letter-spacing:-.02em;font-weight:400;color:var(--ink-700);text-wrap:pretty}
.brands__grid{margin:0}
.bcell{justify-content:flex-end}
.bcell:nth-child(n){padding-left:20px}
.bcell:nth-child(1),.bcell:nth-child(3){padding-left:0}
.caps{margin-top:0}
.process__list{max-width:960px;margin:0 auto}
.process__list li{padding:22px 0}
.process__list p{font-size:16px;line-height:1.6}
.contact .sec-title{margin-bottom:0}
@media (max-width:1024px){.cap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;align-items:baseline;padding:22px 0}.cap h3{margin:0}.cap__list{max-width:52ch;grid-column:auto}}
@media (max-width:760px){.cap{display:block}.cap h3{margin:0 0 12px}}
@media (max-width:760px){
  .bcell:nth-child(1),.bcell:nth-child(2),.bcell:nth-child(3),.bcell:nth-child(5){padding-left:0}
  .bcell:nth-child(4),.bcell:nth-child(6){padding-left:14px}
  .pov__statement{margin-left:0}
  .sec-title{text-align:left;margin-left:0}
}

/* Brand grid hover */
.bcell{position:relative;cursor:default;transition:background var(--dur-slow) var(--ease)}
.bcell__name{display:inline-block;transition:transform var(--dur-slow) var(--ease),color var(--dur) var(--ease-out)}
.bcell::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--taupe-700);transition:width var(--dur-slow) var(--ease)}
.bcell:nth-child(n+2)::after{left:0}
.bcell:hover{background:var(--bg-hover)}
.bcell:hover .bcell__name{transform:translateX(14px);color:var(--taupe-700)}
.bcell:hover::after{width:100%}
.bcell--link{cursor:pointer;color:inherit;text-decoration:none}
.bcell--link:hover{color:inherit}
.bcell--link:hover .bcell__name{color:var(--signal-600)}
.bcell--link::after{background:var(--signal-600)}
.bcell__tag{position:absolute;top:14px;right:20px;font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500);transition:color var(--dur) var(--ease-out)}
.bcell--link:hover .bcell__tag,.bcell--link:focus-visible .bcell__tag{color:var(--signal-600)}
.bcell--link:hover .arrow{transform:translate(3px,-3px)}
.bcell--link:focus-visible{outline:2px solid var(--signal-500);outline-offset:-2px}
@media (hover:none){.bcell:hover .bcell__name{transform:none}}

/* Case-study embed dialog */
.embed{width:min(1280px,calc(100vw - 2*var(--margin)));max-width:none;max-height:none;padding:0;border:1px solid var(--paper-3);background:var(--bg-deep);color:var(--ink-900)}
.embed::backdrop{background:rgba(10,9,7,.82)}
.embed__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--paper-3)}
.embed__actions{display:flex;gap:20px;align-items:center}
.embed__open{color:var(--ink-500);text-decoration:none}
.embed__open:hover{color:var(--signal-600)}
.embed__close{background:none;border:0;padding:8px 0;color:var(--ink-900);cursor:pointer}
.embed__close:hover{color:var(--signal-600)}
.embed__frame{position:relative;aspect-ratio:16/9;max-height:calc(100vh - 140px);width:100%}
.embed__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:760px){.embed{width:100vw;margin:auto 0}.embed__title{display:none}}

/* Footer: contact and links on one baseline */
.footer__c1,.footer__c3{grid-row:1;display:flex;flex-direction:column;gap:16px}
.footer__mail{font-size:var(--type-lead);line-height:1.2}
.footer__mail a{white-space:normal;overflow-wrap:anywhere}
.footer__links li{font-size:var(--type-lead);line-height:1.2}
.footer__links li+li{margin-top:8px}
.footer__links a,.footer__legal a{text-decoration:none}
.footer__legal{display:flex;gap:20px;margin-top:12px;color:var(--ink-500)}
.footer__legal a:hover,.footer__links a:hover{color:var(--signal-600)}
@media (max-width:760px){.footer__c1,.footer__c3{grid-row:auto}}
