@font-face{font-family:"Geist Mono"; src:url('/assets/fonts/GeistMono-Regular.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap;}
:root{--font-ui:"Geist Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace; --ink:#151515; --muted:#595959; --paper:#fff; --surface:#f3f3f3; --green:#518b62; --interactive:#3c704b; --yellow:#f5d451; --line:#dfdfdf; --gutter:24px; --nav-height:58px; --work-band-min-height:320px; --ease-out:cubic-bezier(.22,1,.36,1); color-scheme:light; font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:var(--paper);}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:var(--nav-height);}
body{margin:0;}
::selection{background:var(--yellow); color:var(--ink);}
body,button,a{-webkit-tap-highlight-color:transparent;}
button,a{touch-action:manipulation;}
a{color:inherit; text-decoration:none;}
.contact-email{display:inline-flex; align-items:center; gap:12px; min-width:0; max-width:100%; min-height:44px; padding:6px 0; font-family:var(--font-ui); font-size:clamp(18px,1.45vw,24px); line-height:1.4; letter-spacing:0;}
.contact-email > span{min-width:0; overflow-wrap:anywhere; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em;}
.contact-email svg{flex:none; width:18px; height:18px;}
button{font:inherit; color:inherit;}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green); outline-offset:5px;}
main:focus{outline:none;}
h1,h2,p{margin:0;}
h2{text-wrap:balance; letter-spacing:-.035em; font-weight:500;}
svg{display:block; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5;}
img{display:block; max-width:100%; height:auto;}
.skip-link{position:fixed; z-index:20; top:10px; left:20px; min-height:44px; padding:12px; font-family:var(--font-ui); background:var(--yellow); transform:translateY(-160%);}
.skip-link:focus{transform:none;}
.site-header{position:sticky; top:0; z-index:10; background:rgb(250 250 250 / .94); backdrop-filter:blur(16px);}
.navigation{height:var(--nav-height); padding:0 var(--gutter); display:grid; grid-template-columns:repeat(4,1fr) auto; align-items:center; gap:24px;}
.navigation a,.menu-toggle,.mobile-menu,.primary-button{font-family:var(--font-ui); font-size:12px; line-height:1.2; font-weight:400; text-transform:uppercase; letter-spacing:.015em;}
.navigation a{width:fit-content; min-height:44px; display:flex; align-items:center; gap:8px;}
.nav-pointer{width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:6px solid var(--green);}
.contact-link{gap:12px!important;}
.contact-link svg{width:15px; height:15px;}
.menu-toggle{border:0; padding:0; background:none; cursor:pointer; min-width:44px; min-height:44px; align-items:center; gap:9px; display:none;}
.mobile-menu{padding:12px var(--gutter) 28px; max-height:calc(100svh - var(--nav-height)); overflow-y:auto; overscroll-behavior:contain;}
.mobile-menu a{display:block; padding:16px 0; font-family:var(--font-ui); font-size:30px; letter-spacing:0; text-transform:none; border-bottom:1px solid var(--line);}
.home-intro{display:flex; flex-direction:column; min-height:calc(100svh - var(--nav-height));}
.hero{flex:none; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; padding:52px var(--gutter); align-items:start;}
.hero-logo{grid-column:1 / span 7; min-width:0; display:flex; align-items:flex-start; font-size:0;}
.hero-logo img{width:100%;}
.hero-intro{grid-column:9 / span 3; min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:52px;}
.hero-lines{position:relative; isolation:isolate; font-size:clamp(16px,calc(12.8px + 1vw),32px); line-height:1; letter-spacing:-.035em; font-weight:600;}
.hero-line-mask,.hero-line{display:block;}
.hero-line-mask{position:relative; z-index:1;}
.hero-line-mask:nth-child(2){z-index:0;}
.page-entrance{display:none; position:fixed; inset:0; z-index:100; pointer-events:none; background-color:#f5f5f5; background-image:linear-gradient(to right,#dfdfdf 1px,transparent 1px),linear-gradient(to bottom,#dfdfdf 1px,transparent 1px); background-size:32px 32px;}
[data-page-entrance] .page-entrance{display:block; animation:page-enter-wipe 500ms linear 500ms both;}
[data-page-entrance] .home-intro{overflow:clip;}
[data-page-entrance] .hero-logo{--page-entry-lift:134px; --page-entry-mid-y:calc(100svh - 100% * var(--page-entry-scale,1) - var(--page-entry-lift));}
[data-page-entrance] .hero-logo img{transform-origin:top left; animation:page-enter-logo 1500ms linear 500ms both;}
[data-page-entrance] .work-stage{animation:page-enter-stage 800ms linear 1200ms both;}
[data-page-entrance] .hero-line-mask{clip-path:inset(-.12em -.25em);}
[data-page-entrance] .hero-line{animation:page-enter-line 500ms var(--ease-out) calc(1600ms + var(--copy-entry-offset,0ms)) both;}
[data-page-entrance] .hero-line-mask:nth-child(2) .hero-line{animation-delay:calc(1650ms + var(--copy-entry-offset,0ms));}
[data-page-entrance] .hero-word::before{animation:page-enter-word-grid 500ms var(--ease-out) calc(1650ms + var(--copy-entry-offset,0ms)) both;}
[data-page-entrance] .hero-line-mask:nth-child(3) .hero-line{animation-delay:calc(1700ms + var(--copy-entry-offset,0ms));}
[data-page-entrance] .primary-button{animation:page-enter-action 500ms cubic-bezier(.333333,.666667,.666667,1) calc(1700ms + var(--copy-entry-offset,0ms)) both;}
@media (max-width:991px){[data-page-entrance] .hero-logo{--page-entry-lift:104px;}
[data-page-entrance] .hero-intro{--copy-entry-offset:400ms;}
}
@media (max-height:730px){[data-page-entrance] .hero-logo{--page-entry-lift:68px;}
}
@keyframes page-enter-wipe{0% { clip-path:inset(0); visibility:visible; animation-timing-function:cubic-bezier(.333333,0,.666667,0); }
  50% { clip-path:inset(0 0 50% 0); animation-timing-function:cubic-bezier(.333333,1,.666667,1); }
  100% { clip-path:inset(0 0 100% 0); visibility:hidden; }}
@keyframes page-enter-logo{0% { transform:translateY(100svh) scale(var(--page-entry-scale,1)); animation-timing-function:cubic-bezier(.333333,0,.666667,0); }
  23.333333% { transform:translateY(calc((100svh + var(--page-entry-mid-y)) / 2)) scale(var(--page-entry-scale,1)); animation-timing-function:cubic-bezier(.333333,1,.666667,1); }
  46.666667% { transform:translateY(var(--page-entry-mid-y)) scale(var(--page-entry-scale,1)); animation-timing-function:cubic-bezier(.333333,0,.666667,0); }
  73.333333% { transform:translateY(calc(var(--page-entry-mid-y) / 2)) scale(calc((var(--page-entry-scale,1) + 1) / 2)); animation-timing-function:cubic-bezier(.333333,1,.666667,1); }
  100% { transform:translateY(0) scale(1); }}
@keyframes page-enter-stage{0% { transform:translateY(100svh); animation-timing-function:cubic-bezier(.333333,0,.666667,0); }
  50% { transform:translateY(50svh); animation-timing-function:cubic-bezier(.333333,1,.666667,1); }
  100% { transform:translateY(0); }}
@keyframes page-enter-line{from { transform:translateY(110%); } to { transform:translateY(0); }}
@keyframes page-enter-word-grid{from { opacity:0; clip-path:inset(0 100% 0 0); } to { opacity:1; clip-path:inset(0); }}
@keyframes page-enter-action{from { opacity:0; translate:0 10px; } to { opacity:1; translate:0 0; }}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap;}
.hero-rotator{display:inline-grid; vertical-align:baseline; --letter-ease:cubic-bezier(.333333,.666667,.666667,1);}
.hero-word{position:relative; grid-area:1 / 1; justify-self:start; visibility:hidden; white-space:pre;}
.hero-word[data-active="true"]{visibility:visible;}
.hero-word::before{content:""; position:absolute; inset:-.25em; z-index:-1; pointer-events:none; background-color:#f5f5f5; background-image:linear-gradient(0deg,rgb(20 20 20 / .1) 1px,transparent 1px),linear-gradient(90deg,rgb(20 20 20 / .1) 1px,transparent 1px); background-size:100% 32px,32px 100%;}
.hero-letter{display:inline-block;}
.hero-rotator[data-phase="out"] .hero-word[data-active="true"] .hero-letter{animation:hero-letter-out var(--letter-fade) var(--letter-ease) both; animation-delay:calc(var(--letter-index) * var(--letter-step));}
.hero-rotator[data-phase="in"] .hero-word[data-active="true"] .hero-letter{animation:hero-letter-in var(--letter-fade) var(--letter-ease) both; animation-delay:calc(var(--letter-index) * var(--letter-step));}
.hero-rotator[data-phase="out"] .hero-word[data-active="true"]::before{animation:hero-letter-out var(--word-fade) var(--letter-ease) both;}
.hero-rotator[data-phase="in"] .hero-word[data-active="true"]::before{animation:hero-letter-in var(--word-fade) var(--letter-ease) both;}
@keyframes hero-letter-out{from { opacity:1; } to { opacity:0; }}
@keyframes hero-letter-in{from { opacity:0; } to { opacity:1; }}
.primary-button{min-height:96px; padding:10px 20px 10px 10px; display:inline-flex; align-items:center; gap:16px; background:#141414; color:white; border-radius:8px; font-family:var(--font-ui); font-size:12px; line-height:1; font-weight:400; letter-spacing:.06em; transition:background-color 150ms,transform 150ms var(--ease-out);}
.primary-button > span:last-child{white-space:nowrap;}
.button-art{display:grid; place-items:center; width:76px; height:76px; flex:none; background:#015c3d; border-radius:4px; overflow:hidden;}
.button-medallion{position:relative; display:grid; place-items:center; width:64px; aspect-ratio:1; border-radius:50%; background:#000;}
.button-orbit{position:absolute; inset:0; width:100%; height:100%; fill:currentColor; stroke:none; transform-origin:50% 50%; transform-box:view-box;}
.button-orbit text{font-family:var(--font-ui); font-size:12px; font-weight:400; letter-spacing:0;}
.button-icon{position:relative; top:-2.6px; width:26px; height:26px; object-fit:contain;}
.primary-button:active{transform:scale(.98); background:#323232;}
.work-sequence{position:relative; display:grid; flex:1 0 auto;}
.work-stage{position:relative; display:grid; place-items:center; min-width:0; min-height:var(--work-band-min-height); overflow:hidden; background:var(--surface); isolation:isolate;}
.stage-grid{position:absolute; inset:0; z-index:-1; background-color:var(--surface); background-image:linear-gradient(to right,#dfdfdf 1px,transparent 1px),linear-gradient(to bottom,#dfdfdf 1px,transparent 1px); background-size:32px 32px;}
.logo-marquee{--logo-gap:clamp(48px,4vw,80px); --logo-slot-width:240px; position:relative; width:100%; min-width:0;}
.logo-viewport{width:100%; overflow-x:auto; overscroll-behavior-x:contain;}
.logo-viewport:focus-visible{outline:2px solid var(--green); outline-offset:-4px;}
.logo-track{display:flex; width:max-content;}
.logo-row{display:flex; flex:none; align-items:center; justify-content:space-around; gap:var(--logo-gap); min-width:100vw; width:calc((var(--logo-slot-width) + var(--logo-gap)) * 8); margin:0; padding:0 calc(var(--logo-gap) / 2); list-style:none; overflow:hidden;}
.logo-slot{flex:0 0 var(--logo-slot-width); width:var(--logo-slot-width); min-width:var(--logo-slot-width); height:96px; display:flex; align-items:center; justify-content:center; overflow:hidden;}
.logo-slot img{width:80%; height:80%; object-fit:contain; transform:translateY(var(--logo-shift-y,0%)) scale(var(--logo-scale,1));}
.logo-marquee[data-enhanced="true"] .logo-viewport{overflow:hidden;}
.logo-marquee[data-enhanced="true"] .logo-track{animation:logo-marquee 80s linear infinite; animation-play-state:paused;}
.logo-marquee[data-running="true"] .logo-track{animation-play-state:running;}
.logo-marquee[data-reduced="true"] .logo-track{animation:none; transform:none;}
.logo-marquee[data-reduced="true"] .logo-viewport{overflow-x:auto;}
.logo-marquee[data-reduced="true"] [data-logo-copy]{display:none;}
@keyframes logo-marquee{to { transform:translateX(-50%); }}
@keyframes logo-marquee-mobile{to { transform:translateX(-50%); }}
.media-tile{position:absolute; left:0; top:0; overflow:hidden;}
.media-tile[data-tone="sage"]{background:#a9bba1; color:#16251b;}
.media-tile[data-tone="cream"]{background:#e4dfd4; color:#24211b;}
.media-tile[data-tone="green"]{background:#4d7155; color:#fff;}
.media-tile[data-tone="yellow"]{background:var(--yellow); color:var(--ink);}
.media-tile[data-tone="dark"]{background:#252525; color:#fff;}
.media-tile[data-tone="grey"]{background:#c8ced0; color:#232c30;}
.media-tile[data-tone="clay"]{background:#c5a392; color:#35231c;}
.media-tile[data-tone="light"]{background:#e5e8dd; color:#242a1b;}
.navigation a:active,.mobile-menu a:active,.menu-toggle:active,.contact-email:active,.studio-disciplines a:active,.footer-columns a:active{color:var(--interactive);}
.menu-toggle[aria-expanded="true"]{color:var(--interactive);}
@media (hover: hover) and (pointer: fine){.navigation a:hover,.mobile-menu a:hover,.contact-email:hover{color:var(--interactive);}
.primary-button:hover{background:#323232;}
}
@media (max-width:900px){:root{--gutter:20px;}
.hero{padding-top:46px; padding-bottom:46px; gap:24px; grid-template-columns:1.5fr 1fr;}
.hero-logo img{width:100%;}
.hero-intro{gap:32px;}
}
@media (max-width:991px){:root{--gutter:12px; --nav-height:80px;}
.navigation{display:flex; justify-content:space-between; gap:16px;}
.navigation .home-link,.desktop-link{display:none!important;}
.menu-toggle{display:flex; order:-1;}
.hero{grid-template-columns:1fr; gap:24px; padding:12px var(--gutter) 24px;}
.hero-logo{grid-column:auto; min-height:0; align-items:flex-start;}
.hero-logo img{width:100%;}
.hero-intro{grid-column:auto; flex-direction:row; justify-content:space-between; align-items:center; gap:12px;}
.hero-lines{font-size:clamp(16px,calc(12.8px + 1vw),32px); line-height:1; letter-spacing:-.035em;}
.primary-button{min-height:80px; padding:8px; gap:8px; font-size:12px; border-radius:7px;}
.button-art{width:64px; height:64px;}
.button-medallion{width:54px;}
.button-icon{top:-2.2px; width:22px; height:22px;}
}
@media (max-width:767px){:root{--work-band-min-height:240px;}
.stage-grid{background-size:32px 32px;}
.logo-marquee{--logo-gap:20px; --logo-slot-width:148px;}
.logo-row{justify-content:flex-start; min-width:0;}
.logo-slot{height:64px;}
.logo-slot img{display:block; flex:none; width:136px; max-width:100%; height:auto; max-height:56px; transform:none;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-viewport{display:block; -webkit-mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent); mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent);}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-track{animation-name:logo-marquee-mobile; animation-duration:32s; animation-delay:-2s;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(1){order:0;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(2){order:3;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(3){order:2;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(4){order:1;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(5){order:4;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(6){order:7;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(7){order:6;}
.logo-marquee[data-enhanced="true"][data-reduced="false"] .logo-slot:nth-child(8){order:5;}
}
@media (prefers-reduced-motion:reduce){[data-page-entrance] .page-entrance{display:none;}
html{scroll-behavior:auto;}
*,*::before,*::after{animation:none!important; transition:none!important;}
}
@media (max-width:360px){.hero-intro{flex-direction:column; align-items:flex-start; gap:20px;}
.hero-intro .primary-button{gap:6px; padding-inline:4px; letter-spacing:.04em;}
}
@media (prefers-reduced-transparency:reduce), (prefers-contrast:more){.site-header{background:#fafafa; backdrop-filter:none;}
}
