/* Layout: charcoal hero built around the brand mark (the eye watches the visitor),
   then off-white editorial sections on a 12-col grid, gold used sparingly. */
:root{
  --charcoal:#2B2B2E; --gold:#C9A24D; --deep-gold:#8F6F27; --light-gold:#D4B061; --off-white:#F5F4F2;
  --bg:#F5F4F2; --surface:#ECEAE6; --fg:#2B2B2E; --muted:#5E5D61; --line:#D9D6D0;
  --accent-text:#8F6F27;
  --logo-ink:#2B2B2E; --logo-gold:#8F6F27;
  --font:"Jost","Futura","Century Gothic",Arial,sans-serif;
  --step--1:clamp(.84rem,.8rem + .15vw,.92rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.125rem);
  --step-1:clamp(1.25rem,1.1rem + .6vw,1.6rem);
  --step-2:clamp(1.6rem,1.3rem + 1.3vw,2.4rem);
  --step-3:clamp(2.3rem,1.6rem + 3vw,4.4rem);
  --gold-wash:#F1E8D4; --warm-charcoal:#34302A;
  --gutter:clamp(16px,4vw,48px);
  --max:1180px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1F1F22; --surface:#2B2B2E; --fg:#F5F4F2; --muted:#B4B2AE; --line:#3B3B3F;
  --accent-text:#D4B061; --logo-ink:#F5F4F2; --logo-gold:#D4B061; --gold-wash:#332D22; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1F1F22; --surface:#2B2B2E; --fg:#F5F4F2; --muted:#B4B2AE; --line:#3B3B3F;
  --accent-text:#D4B061; --logo-ink:#F5F4F2; --logo-gold:#D4B061; --gold-wash:#332D22; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-weight:400;font-size:var(--step-0);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:500;line-height:1.12;margin:0;text-wrap:balance;letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.label{font-weight:300;text-transform:uppercase;letter-spacing:.28em;font-size:var(--step--1);color:var(--accent-text)}
.on-dark{--band-bg:var(--charcoal);--band-fg:var(--off-white);--band-muted:#C9C7C2;--band-line:#4A4A4F;--band-label:var(--light-gold);--band-accent:var(--gold);--stem:var(--off-white);--dim:#4A4A4F;--logo-ink:#F5F4F2;--logo-gold:#D4B061;background:var(--band-bg);color:var(--band-fg)}
.on-dark .label{color:var(--band-label)}
.band-light{--band-bg:var(--bg);--band-fg:var(--fg);--band-muted:var(--muted);--band-line:var(--line);--band-label:var(--accent-text);--band-accent:var(--accent-text);--stem:var(--fg);--dim:var(--line);--logo-ink:var(--fg);--logo-gold:var(--accent-text)}

/* Header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:14px}
.logo{display:block;height:64px;width:auto}
.brand{display:block;text-decoration:none;flex-shrink:0}
.nav{display:flex;gap:clamp(14px,2.4vw,32px);align-items:center;flex-wrap:wrap;justify-content:flex-end}
.nav a{text-decoration:none;font-size:var(--step--1);letter-spacing:.04em}
.nav a:hover{color:var(--accent-text)}
.nav .cta{border:1px solid var(--fg);padding:8px 16px;border-radius:999px}
.nav .cta:hover{background:var(--fg);color:var(--bg)}
@media (max-width:720px){.nav a:not(.cta){display:none}.logo{height:52px}}

/* Hero */
.hero .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,80px);align-items:center;padding-block:clamp(64px,10vw,128px)}
.hero h1{font-size:var(--step-3);max-width:13ch}
.hero h1 em{font-style:normal;color:var(--band-accent)}
.hero p.lede{margin-top:28px;max-width:44ch;font-size:var(--step-1);font-weight:300;line-height:1.5;color:var(--band-muted)}
.hero .actions{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:40px}
.btn{display:inline-block;background:var(--gold);color:var(--charcoal);text-decoration:none;font-weight:500;padding:14px 26px;border-radius:999px;transition:background .2s}
.btn:hover{background:var(--light-gold)}
.link-arrow{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.watcher{justify-self:center;width:min(100%,300px)}
.watcher svg{display:block;width:100%;height:auto;overflow:visible}
.watcher figcaption{margin-top:18px;text-align:center}
@media (max-width:820px){.hero .wrap{grid-template-columns:1fr}.watcher{order:-1;width:140px;justify-self:start}.watcher figcaption{display:none}}

/* Sections */
section{padding-block:clamp(64px,9vw,120px)}
.section-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px 48px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.section-head h2{font-size:var(--step-2)}
.section-head p{color:var(--muted);max-width:56ch}
@media (max-width:820px){.section-head{grid-template-columns:1fr}}


/* Services: bento grid, each card with its own drawing */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,22px)}
.svc{--ill-line:color-mix(in srgb,var(--fg) 22%,transparent);--ill-soft:color-mix(in srgb,var(--fg) 8%,transparent);
  position:relative;display:grid;gap:14px;align-content:start;padding:clamp(24px,3vw,36px);border-radius:18px;background:var(--surface);border:1px solid transparent;transition:border-color .3s,background .3s,transform .3s}
.svc:hover{border-color:color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold-wash) 70%,var(--surface))}
.svc.wide{grid-column:span 2;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:clamp(20px,3vw,40px)}
.svc.wide .svc-text{display:grid;gap:14px;align-content:start}
.svc .ill{width:100%;max-width:300px;height:auto;display:block}
.svc.wide .ill{justify-self:end;max-width:340px}
.svc.wide{align-content:center}
.svc:not(.wide) .ill{height:92px;width:auto;max-width:100%;margin-bottom:6px}
.svc .kicker{font-weight:300;text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;color:var(--accent-text)}
.svc h3{font-size:var(--step-2)}
.svc p{color:var(--muted);max-width:44ch}
.svc ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.svc li{font-size:var(--step--1);background:var(--bg);border-radius:999px;padding:4px 12px;color:var(--fg)}
@media (max-width:900px){.svc-grid{grid-template-columns:1fr 1fr}.svc.wide{grid-column:span 2}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr}.svc.wide{grid-column:auto;grid-template-columns:1fr}.svc.wide .ill{justify-self:start;order:-1}}
.ill .ln{fill:none;stroke:var(--ill-line);stroke-width:2;stroke-linecap:round}
.ill .soft{fill:var(--ill-soft)}
.ill .ink{fill:var(--fg)}
.ill .au{fill:var(--gold)}
.ill .au-ln{fill:none;stroke:var(--gold);stroke-width:2.5;stroke-linecap:round}
@media (prefers-reduced-motion:no-preference){
  .ill *{transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .4s}
  .svc:hover .ill .grow{transform:scaleX(1.18)}
  .svc:hover .ill .slide{transform:translateX(14px)}
  .svc:hover .ill .slide2{transform:translateX(-10px)}
  .svc:hover .ill .look{transform:translate(9px,-2px)}
  .svc:hover .ill .rise{transform:translateY(-8px)}
  .ill .pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-in-out infinite}
  @keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.9);opacity:.25}}
}
.ill .grow{transform-box:fill-box;transform-origin:left center}

/* Work */
.project{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,64px);align-items:center}
.frame{border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 28px 60px -30px rgba(14,40,61,.55);border:1px solid var(--line)}
.frame-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#E9E7E3;border-bottom:1px solid #D9D6D0}
.frame-bar i{width:9px;height:9px;border-radius:50%;background:#C9C6C0;display:block}
.frame-bar span{margin-left:10px;flex:1;min-width:0;font-size:.74rem;color:#5E5D61;background:#F5F4F2;border-radius:999px;padding:3px 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.frame img{display:block;width:100%;height:auto;background:#fff}
.project-info{display:grid;gap:16px;align-content:start}
.project-info h3{font-size:var(--step-2)}
.project-info .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pill{font-size:var(--step--1);border:1px solid var(--line);border-radius:999px;padding:3px 12px;color:var(--muted)}
.pill.soon{border-color:var(--accent-text);color:var(--accent-text)}
.project-info p{color:var(--muted);max-width:48ch}
.project-info dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 20px;margin:4px 0 0;font-size:var(--step--1)}
.project-info dt{color:var(--accent-text);font-weight:300;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;padding-top:3px}
.project-info dd{margin:0}
@media (max-width:860px){.project{grid-template-columns:1fr}}

.approach{background:var(--surface)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,40px);counter-reset:step}
.steps li{counter-increment:step;display:grid;gap:12px;align-content:start;padding-top:20px;border-top:2px solid var(--fg)}
.steps li::before{content:"0" counter(step);font-weight:300;letter-spacing:.2em;font-size:var(--step--1);color:var(--accent-text)}
.steps h3{font-size:var(--step-1)}
.steps p{color:var(--muted);font-size:var(--step--1);line-height:1.7}
@media (max-width:960px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

.mark-story .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:center}
.mark-story h2{font-size:var(--step-2);margin-top:16px}
.ideas{display:grid;gap:0;border-top:1px solid var(--band-line)}
.idea{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:center;padding-block:22px;border-bottom:1px solid var(--band-line)}
.idea svg{width:56px;height:56px}
.idea h3{font-size:var(--step-1)}
.idea p{color:var(--band-muted);font-size:var(--step--1);margin-top:4px}
@media (max-width:820px){.mark-story .wrap{grid-template-columns:1fr}}

.studio .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:24px 48px}
.studio h2{font-size:var(--step-2)}
.studio .copy{display:grid;gap:20px;max-width:62ch}
.studio .copy p:first-child{font-size:var(--step-1);font-weight:300;line-height:1.5}
.studio .copy p{color:var(--fg)}
.studio .copy p+p{color:var(--muted)}
@media (max-width:820px){.studio .wrap{grid-template-columns:1fr}}

.contact{border-top:1px solid var(--line)}
.contact .wrap{display:grid;gap:28px;justify-items:start}
.contact h2{font-size:var(--step-3);max-width:16ch}
.contact p:not(.label){color:var(--muted);max-width:52ch;font-size:var(--step-1);font-weight:300;line-height:1.5}
.email-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:8px}
.email{font-size:var(--step-2);font-weight:500;text-decoration:none;border-bottom:2px solid var(--gold);padding-bottom:4px;overflow-wrap:anywhere;user-select:all}
.copy-btn{font:inherit;font-size:var(--step--1);letter-spacing:.04em;background:transparent;color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer}
.copy-btn:hover{border-color:var(--fg)}

.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding-block:40px}
.site-footer .logo{height:56px}
.site-footer small{font-size:var(--step--1);color:var(--band-muted);letter-spacing:.02em}


/* Warm treatment */
/* 2 · Warm: warm charcoal hero fading into the page, pale gold wash band */
[data-look="2"] .hero{background:linear-gradient(to bottom,var(--warm-charcoal) 0%,#2E2C2A 70%,var(--bg) 100%)}
[data-look="2"] .hero .wrap{padding-bottom:clamp(140px,16vw,220px)}
[data-look="2"] .mark-story{--band-bg:var(--gold-wash);--band-fg:var(--fg);--band-muted:var(--muted);--band-line:color-mix(in srgb,var(--accent-text) 30%,transparent);--band-label:var(--accent-text);--band-accent:var(--accent-text);--stem:var(--fg);--dim:color-mix(in srgb,var(--accent-text) 35%,transparent)}
[data-look="2"] .site-footer{--band-bg:var(--warm-charcoal)}


/* Load sequence: the eye opens once */
@media (prefers-reduced-motion:no-preference){
  .eye-lid{transform-origin:50px 35px;animation:blink 1.1s .4s ease-in-out both}
  @keyframes blink{0%{transform:scaleY(1)}35%{transform:scaleY(.08)}70%{transform:scaleY(1)}100%{transform:scaleY(1)}}
  #pupil{transition:transform .25s ease-out}
}
