/* Layout: a mixing session. Wide content column with a narrow mono "track label" column on the left; everything stacks on phones. */
@font-face{font-family:"Archivo";src:url(fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(fonts/ibm-plex-sans-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Plex Sans";src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --ink:#0c121c;        /* room in the dark */
  --panel:#131d2c;      /* acoustic panel blue */
  --panel-2:#1a2739;
  --line:#2a3a52;
  --paper:#ece6da;      /* warm text */
  --muted:#9ba8ba;
  --tungsten:#f0a24a;   /* desk lamp */
  --tungsten-ink:#1b1206;
  --display:"Archivo","Arial Narrow",Arial,sans-serif;
  --body:"Plex Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --s-1:.8125rem; --s0:1.0625rem; --s1:1.3rem; --s2:1.75rem; --s3:2.5rem; --s4:clamp(2.6rem,6.2vw,4.9rem);
  --gutter:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
  --wrap:1180px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--ink);color:var(--paper);font:400 var(--s0)/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--tungsten);outline-offset:3px;border-radius:2px}
h1,h2,h3{font-family:var(--display);font-stretch:112%;font-weight:680;line-height:1.05;letter-spacing:-.01em;text-wrap:balance;margin:0}
h1{font-size:var(--s4)}
h2{font-size:var(--s3)}
h3{font-size:var(--s1);font-stretch:105%;font-weight:650;line-height:1.2}
p{margin:0;max-width:66ch}
em,i{font-style:italic}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
.label{font:500 var(--s-1)/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.label b{color:var(--tungsten);font-weight:500}
.lede{font-size:var(--s1);line-height:1.5;color:var(--paper)}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px}
.skip:focus{left:16px;top:16px;z-index:50;background:var(--tungsten);color:var(--tungsten-ink);padding:8px 12px}

/* header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--ink)}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--ink) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:24px;min-height:64px}
.brand{text-decoration:none;display:flex;align-items:baseline;gap:10px;margin-right:auto}
.brand span:first-child{font:700 1.15rem/1 var(--display);font-stretch:118%;letter-spacing:-.01em}
.brand span:last-child{font:500 .72rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tungsten)}
.nav{display:flex;gap:22px;align-items:center}
.nav a{text-decoration:none;font-size:.95rem;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--paper)}
.nav a[aria-current=page]{color:var(--paper);border-bottom-color:var(--tungsten)}
.lang{font:500 .78rem/1 var(--mono);letter-spacing:.08em;text-decoration:none;border:1px solid var(--line);padding:7px 9px;border-radius:3px;color:var(--muted)}
.lang:hover{color:var(--paper);border-color:var(--muted)}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--paper);font:500 .8rem/1 var(--mono);letter-spacing:.08em;padding:9px 11px;border-radius:3px;cursor:pointer}
@media (max-width:880px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--ink);border-bottom:1px solid var(--line);padding:8px var(--gutter-r) 16px var(--gutter)}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav a[aria-current=page]{border-bottom-color:var(--line);color:var(--tungsten)}
  .top.open .nav{display:flex}
}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font:500 .98rem/1 var(--body);padding:14px 18px;border-radius:3px;border:1px solid var(--line);color:var(--paper);background:transparent;cursor:pointer}
.btn:hover{border-color:var(--paper)}
.btn.primary{background:var(--tungsten);border-color:var(--tungsten);color:var(--tungsten-ink)}
.btn.primary:hover{background:#f6b46a}
.btn .play{width:0;height:0;border-left:9px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent}

/* sections */
.sec{padding-block:clamp(56px,9vw,112px);border-top:1px solid var(--line)}
.sec.tight{padding-block:clamp(40px,6vw,72px)}
.row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px}
@media (max-width:800px){.row{grid-template-columns:minmax(0,1fr);gap:14px}}
.stack{display:grid;gap:20px;min-width:0;align-content:start}
.stack.lg{gap:36px}

/* hero */
.hero{position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.hero .bg{position:absolute;inset:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;opacity:.6}
.hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,color-mix(in srgb,var(--ink) 75%,transparent) 45%,transparent 100%),linear-gradient(0deg,var(--ink) 0%,transparent 40%)}
.hero .wrap{position:relative;padding-block:clamp(72px,12vw,150px) clamp(48px,7vw,88px);display:grid;gap:26px}
.hero h1{max-width:13ch}
.hero p{max-width:52ch;font-size:var(--s1);line-height:1.5}
.hero p.label{font-size:var(--s-1);max-width:none}
.page-head{padding-block:clamp(56px,9vw,110px) clamp(32px,5vw,56px)}
.page-head .wrap{display:grid;gap:22px}
.page-head h1{max-width:18ch}

/* credits strip: one line, slow ticker */
.strip{border-bottom:1px solid var(--line);background:var(--panel)}
.strip .wrap{display:flex;align-items:center;gap:22px;padding-block:18px;font:500 .82rem/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.strip-l{color:var(--tungsten);flex:none}
.ticker{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 92%,transparent)}
.track{display:flex;width:max-content;animation:tick 60s linear infinite}
.track span{white-space:nowrap;padding-right:28px}
.track .dup{display:flex;padding:0}
.ticker:hover .track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker{overflow-x:auto}.track{animation:none}.track .dup{display:none}}

/* facts */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-block:1px solid var(--line)}
.facts div{padding:28px 24px 28px 0;display:grid;gap:8px;align-content:start}
.facts div+div{padding-left:24px;border-left:1px solid var(--line)}
.facts strong{font:700 var(--s3)/1 var(--display);font-stretch:112%;color:var(--tungsten);font-variant-numeric:tabular-nums}
@media (max-width:760px){.facts{grid-template-columns:minmax(0,1fr)}.facts div,.facts div+div{padding:20px 0;border-left:0}.facts div+div{border-top:1px solid var(--line)}}

/* listening tiers */
.tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line)}
.tiers>div{padding:26px 24px 28px 0;display:grid;gap:10px;align-content:start}
.tiers>div+div{padding-left:24px;border-left:1px solid var(--line)}
.tiers .label{color:var(--tungsten)}
.tiers p.muted{font-size:.96rem}
@media (max-width:760px){.tiers{grid-template-columns:minmax(0,1fr)}.tiers>div,.tiers>div+div{padding:20px 0;border-left:0}.tiers>div+div{border-top:1px solid var(--line)}}

/* due percorsi */
.paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.path{display:grid;gap:12px;align-content:start;padding:28px;background:var(--panel);border:1px solid var(--line)}
.path h3{font-size:1.9rem}
.path .label{color:var(--tungsten)}
.path p.muted{font-size:.92rem}
@media (max-width:760px){.paths{grid-template-columns:minmax(0,1fr)}}

/* service lines */
.lines{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lines li{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:20px;border-bottom:1px solid var(--line)}
.lines li>span:first-child{font:600 1.05rem/1.4 var(--display);font-stretch:108%}
@media (max-width:800px){.lines li{grid-template-columns:minmax(0,1fr);gap:4px}}

/* phases (real sequence) */
.phase{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:40px;border-top:1px solid var(--line)}
.phase .tc{font:500 .85rem/1.4 var(--mono);color:var(--tungsten);letter-spacing:.04em}
.phase .tc span{display:block;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}
.phase ul{margin:0;padding-left:1.1em;display:grid;gap:10px;max-width:66ch}
.phase .rel{font-size:.92rem;color:var(--muted)}
.phase figure{margin:0}
.phase .ph-photos{display:grid;grid-template-columns:repeat(2,minmax(0,330px));gap:12px}
.phase .ph-photo{max-width:100%;aspect-ratio:3/4;overflow:hidden;background:var(--panel-2)}
.phase .ph-photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:800px){.phase{grid-template-columns:minmax(0,1fr);gap:12px}}

/* case studies */
.cases{display:grid;gap:0}
.case{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:44px;border-top:1px solid var(--line)}
.case:first-child{border-top:0;padding-top:0}
.case .meta{font:400 .82rem/1.55 var(--mono);color:var(--muted);display:grid;gap:6px;align-content:start}
.case .meta b{color:var(--paper);font-weight:500}
.case h3{font-size:var(--s2);font-stretch:110%}
.case h3 em{font-style:normal}
@media (max-width:800px){.case{grid-template-columns:minmax(0,1fr);gap:14px}.case .meta{order:2}}
.cue{display:flex;flex-wrap:wrap;gap:6px 14px;font:400 .8rem/1.5 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.cue span{white-space:nowrap}
.cue span::before{content:"▸ ";color:var(--tungsten)}

/* home case cards */
.trio{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media (max-width:1100px){.trio{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.trio{grid-template-columns:minmax(0,1fr)}}
.card{display:grid;gap:12px;align-content:start;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:4px;text-decoration:none}
.card:hover{border-color:var(--muted)}
.card h3 em{font-style:normal}
.card p{font-size:.96rem;color:var(--muted)}

.still{margin:0;aspect-ratio:16/9;max-width:100%;overflow:hidden;border-radius:3px;background:var(--panel-2)}
.still img{width:100%;height:100%;object-fit:cover}
.card .still{margin:-24px -24px 6px;border-radius:4px 4px 0 0;max-width:none}
.case .still{max-width:880px}

.posters{display:grid;grid-template-columns:repeat(2,minmax(0,340px));gap:12px}
.posters figure{margin:0}
.posters img{width:100%;height:auto;aspect-ratio:5/7;object-fit:cover;object-position:50% 50%}

/* work grid */
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters button{font:500 .8rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;border-radius:3px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}
.filters button[aria-pressed=true]{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.work{position:relative;display:grid;grid-template-rows:auto 1fr;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden;text-decoration:none;min-width:0}
.work:hover{border-color:var(--muted)}
.work .slate{aspect-ratio:16/9;max-width:100%;position:relative;background:var(--panel-2);display:flex;align-items:flex-end;padding:14px;overflow:hidden}
.work .slate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.work .slate .wave{position:absolute;inset:auto 0 38% 0;height:34%;opacity:.5}
.work .slate .kind{position:relative;font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);padding:6px 8px;border-radius:2px;color:var(--muted)}
.work .slate .go{position:absolute;right:14px;bottom:14px;font:500 .72rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--tungsten-ink);background:var(--tungsten);padding:7px 9px;border-radius:2px;display:flex;gap:7px;align-items:center}
.work .slate .go.out{background:var(--paper)}
.work .slate .go .play{width:0;height:0;border-left:7px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
.work .body{padding:16px 16px 18px;display:grid;gap:8px;align-content:start}
.work h3{font-size:1.15rem}
.work h3 em{font-style:normal}
.work .who{font-size:.88rem;color:var(--muted)}
.work .role{font:400 .78rem/1.45 var(--mono);color:var(--paper);letter-spacing:.02em}
.work[hidden]{display:none}

/* archive */
details.archive{border-top:1px solid var(--line);padding-top:28px}
details.archive summary{list-style:none;cursor:pointer;display:inline-flex}
details.archive summary::-webkit-details-marker{display:none}
details.archive[open] summary .btn{border-color:var(--paper)}
.arch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:32px}
@media (max-width:800px){.arch{grid-template-columns:minmax(0,1fr)}}
.arch h3{font:500 var(--s-1)/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--tungsten);margin-bottom:10px}
.arch ul{list-style:none;margin:0;padding:0}
.arch li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem;display:flex;flex-wrap:wrap;gap:2px 10px}
.arch li em{font-style:italic}
.arch li .y{font:400 .8rem/1.6 var(--mono);color:var(--muted)}
.arch li a{color:var(--tungsten);font-size:.85rem}
.intl{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:28px;display:grid;gap:14px}
.intl p.list{font-size:.95rem;color:var(--muted);max-width:none}
.intl p.list em{color:var(--paper);font-style:italic}

/* steps */
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding-block:24px;border-top:1px solid var(--line)}
.steps li::before{content:"0" counter(s);font:500 .9rem/1.5 var(--mono);color:var(--tungsten)}
.steps li b{display:block;font:650 1.15rem/1.3 var(--display);font-stretch:108%;margin-bottom:6px}
@media (max-width:800px){.steps li{grid-template-columns:minmax(0,1fr);gap:4px}}
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding-block:18px}
.faq summary{cursor:pointer;font:600 1.05rem/1.4 var(--display);font-stretch:106%;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--tungsten)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:10px;color:var(--muted)}

/* studio */
.photos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}
.photos figure{margin:0;overflow:hidden;border-radius:3px;background:var(--panel)}
.photos img{width:100%;height:100%;object-fit:cover}
.photos .w8{grid-column:span 8;aspect-ratio:3/2}
.photos .w4{grid-column:span 4;aspect-ratio:3/4}
.photos .w6{grid-column:span 6;aspect-ratio:3/2}
.photos .w4.tall{aspect-ratio:auto}
@media (max-width:760px){.photos .w8,.photos .w4,.photos .w6{grid-column:span 12;aspect-ratio:3/2}}
.kit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
@media (max-width:760px){.kit{grid-template-columns:minmax(0,1fr)}}
.kit ul{list-style:none;margin:0;padding:0}
.kit li{padding:11px 0;border-bottom:1px solid var(--line)}
.bio{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.bio figure{margin:0;border-radius:3px;overflow:hidden}
@media (max-width:800px){.bio{grid-template-columns:minmax(0,1fr);gap:24px}}
.badge{display:inline-flex;align-items:center;gap:10px;font:500 .78rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--tungsten);color:var(--tungsten);padding:8px 10px;border-radius:3px;width:max-content;max-width:100%}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:56px;align-items:start}
@media (max-width:860px){.contact{grid-template-columns:minmax(0,1fr)}}
form{display:grid;gap:18px}
.field{display:grid;gap:7px}
.field label,.field legend{font:500 .8rem/1.3 var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.field label small{text-transform:none;letter-spacing:0;color:var(--muted);opacity:.8}
input,textarea,select{font:400 1rem/1.4 var(--body);color:var(--paper);background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:12px 14px;width:100%}
input:focus,textarea:focus{border-color:var(--tungsten);outline:none}
textarea{min-height:150px;resize:vertical}
fieldset{border:0;padding:0;margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.chips label{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:3px;padding:9px 12px;cursor:pointer;font:400 .95rem/1 var(--body);color:var(--paper);text-transform:none;letter-spacing:0}
.chips input{width:auto;accent-color:var(--tungsten);margin:0}
.chips label:has(input:checked){border-color:var(--tungsten)}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:560px){.two{grid-template-columns:minmax(0,1fr)}}
.hp{position:absolute;left:-5000px}
.note{font-size:.88rem;color:var(--muted)}
.sent{border:1px solid var(--tungsten);border-radius:4px;padding:20px;color:var(--paper)}
.side{display:grid;gap:22px;padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:4px}
.side .item{display:grid;gap:4px}
.side .v{font-size:1.05rem;word-break:break-word}

/* cta band */
.cta .wrap{display:grid;gap:22px}
.cta h2{max-width:20ch}

/* footer */
.foot{border-top:1px solid var(--line);padding-block:36px 48px;font-size:.88rem;color:var(--muted)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
.foot .wrap>span:first-child{margin-right:auto;color:var(--paper)}
.foot a{text-decoration:none}
.foot a:hover{color:var(--paper)}

/* video dialog */
dialog.player{padding:0;border:0;background:#000;width:min(1100px,94vw);max-width:94vw;border-radius:4px}
dialog.player::backdrop{background:rgba(5,8,12,.88)}
dialog.player .frame{aspect-ratio:16/9;width:100%}
dialog.player iframe{width:100%;height:100%;border:0;display:block}
dialog.player button{position:absolute;top:-44px;right:0;background:none;border:1px solid #555;color:#eee;font:500 .8rem/1 var(--mono);padding:9px 11px;border-radius:3px;cursor:pointer}
dialog.player{overflow:visible}
