/* Additions for the multi-page version. Builds on styles.css (same paper / ink / cobalt system). */
:root{--wa:#25D366;--wa-deep:#1DA851}

/* ---------- header: page nav, WhatsApp, mobile menu ---------- */
.nav{gap:clamp(16px,2vw,28px)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a[aria-current="page"]::after{transform:scaleX(1);background:var(--cobalt)}
.top-right{gap:10px}
.btn svg{width:18px;height:18px;flex:none}
.btn-wa{background:var(--wa);color:#08260f}
.btn-wa:hover{background:var(--wa-deep);color:#fff}
.top .btn-wa{padding:0 14px;gap:8px}
.menu-btn{display:none;width:40px;height:40px;position:relative;box-shadow:inset 0 0 0 1px var(--ink);border-radius:2px}
.menu-btn span:not(.sr){position:absolute;left:11px;right:11px;height:1.5px;background:var(--ink);transition:transform .3s var(--ease)}
.menu-btn span:nth-child(1){top:15px}.menu-btn span:nth-child(2){top:23px}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mnav{border-top:1px solid var(--rule);background:var(--paper);max-height:calc(100dvh - 68px);overflow:auto}
.top .mnav .wrap{height:auto;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding-block:8px 20px}
.mnav a:not(.btn){display:flex;align-items:baseline;gap:14px;padding:14px 0;border-bottom:1px solid var(--rule);font-family:var(--f-display);font-weight:700;font-size:28px;letter-spacing:-.035em}
.mnav a .mono{color:var(--ink-2);font-size:11px}
.mnav a[aria-current="page"]{color:var(--cobalt)}
.mnav .btn{margin-top:18px;justify-content:center}
@media (max-width:1180px){
  .nav{display:none}
  .menu-btn{display:block}
}
@media (max-width:560px){
  .top-right .btn-wa,.top-right .top-up{display:none}
}

/* ---------- floating WhatsApp ---------- */
.wa-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;display:flex;align-items:center;gap:0;height:58px;padding:0 17px;border-radius:999px;background:var(--wa);color:#fff;box-shadow:0 12px 30px -8px rgba(16,90,40,.55);transition:gap .35s var(--ease),padding .35s var(--ease),background .25s;animation:fadeUp .5s var(--ease) .6s both}
.wa-fab svg{width:24px;height:24px;flex:none}
.wa-fab span{max-width:0;overflow:hidden;white-space:nowrap;font-weight:600;font-size:15px;transition:max-width .4s var(--ease)}
.wa-fab:hover,.wa-fab:focus-visible{gap:10px;padding:0 22px 0 17px;background:var(--wa-deep)}
.wa-fab:hover span,.wa-fab:focus-visible span{max-width:180px}
.wa-fab::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(37,211,102,.5);animation:waPulse 2.6s ease-out 1.5s infinite}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.45)}70%,100%{box-shadow:0 0 0 14px rgba(37,211,102,0)}}
body.menu-open .wa-fab{visibility:hidden}
@media (prefers-reduced-motion:reduce){.wa-fab::before{animation:none}}

/* ---------- footer additions ---------- */
.cta-btns{display:flex;flex-wrap:wrap;gap:10px}
.foot-pages{display:flex;flex-wrap:wrap;gap:6px 28px;font-family:var(--f-display);font-weight:500;font-size:clamp(18px,1.8vw,24px);letter-spacing:-.02em}
.foot-pages a{color:rgba(255,255,255,.75);transition:color .2s}
.foot-pages a:hover,.foot-pages a[aria-current="page"]{color:#fff}
.foot-pages a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media (max-width:560px){.cta-btns{flex-direction:column;width:100%}.cta-btns .btn{justify-content:space-between}}

/* ---------- page hero (inner pages) ---------- */
.ph-hero{padding-block:clamp(28px,4vw,56px) clamp(40px,5vw,72px)}
.ph-hero .hb-top{display:flex;justify-content:space-between;gap:16px;color:var(--ink-2);flex-wrap:wrap}
.ph-hero h1{font-size:clamp(52px,10.4vw,168px);font-weight:800;letter-spacing:-.06em;line-height:.84;margin:clamp(16px,2vw,28px) 0 clamp(24px,3vw,40px);padding-bottom:.04em}
.ph-hero h1 em{color:var(--cobalt);font-weight:400;letter-spacing:-.04em}
.ph-hero h1 .hb-line{display:block}
.ph-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;border-top:1px solid var(--ink);padding-top:20px}
.ph-row .lede{font-size:clamp(18px,1.6vw,22px);line-height:1.4;max-width:40ch}
.ph-row .lede span{color:var(--ink-2)}
@media (max-width:1080px){.ph-row{grid-template-columns:minmax(0,1fr)}}

/* section heading variant */
.sec-tight{padding-block:clamp(56px,7vw,110px)}
.sec-head h2 em{color:var(--cobalt)}
.kicker{font-family:var(--f-display);font-weight:500;font-size:clamp(22px,2.4vw,34px);letter-spacing:-.03em;line-height:1.15;max-width:34ch;text-wrap:pretty}
.kicker em{color:var(--cobalt)}

/* ---------- placeholder slot (space reserved for missing work) ---------- */
.slot{position:relative;aspect-ratio:var(--ar,4/3);background:repeating-linear-gradient(135deg,transparent 0 11px,rgba(17,18,21,.045) 11px 12px),var(--paper-2);box-shadow:inset 0 0 0 1px var(--rule);display:flex;flex-direction:column;justify-content:space-between;padding:14px;color:var(--ink-2);min-width:0;overflow:hidden}
.slot::before,.slot::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--ink);opacity:.5}
.slot::before{top:8px;left:8px;border-right:0;border-bottom:0}
.slot::after{bottom:8px;right:8px;border-left:0;border-top:0}
.slot .mono{font-size:10.5px;padding-left:12px}
.slot b{font-family:var(--f-display);font-weight:500;font-size:clamp(16px,1.5vw,20px);letter-spacing:-.02em;color:var(--ink);max-width:24ch;line-height:1.15}
.slot .slot-c{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.slot .slot-c i{font-style:normal;font-size:13px}
.slot svg.slot-ic{width:28px;height:28px;color:var(--ink-2);opacity:.6}
.night .slot{background:repeating-linear-gradient(135deg,transparent 0 11px,rgba(255,255,255,.04) 11px 12px),var(--night-2);box-shadow:inset 0 0 0 1px var(--night-rule);color:var(--on-night-2)}
.night .slot::before,.night .slot::after{border-color:var(--on-night)}
.night .slot b{color:var(--on-night)}
.night .slot svg.slot-ic{color:var(--on-night-2)}

/* ---------- chips on dark ---------- */
.night .chips span{box-shadow:inset 0 0 0 1px var(--night-rule);color:var(--on-night-2)}

/* ---------- "what you get" deliverables ---------- */
.gets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.get{padding:22px 22px 28px 0;display:flex;flex-direction:column;gap:12px;min-width:0;border-bottom:1px solid var(--rule)}
.get:not(:nth-child(3n+1)){padding-left:22px;border-left:1px solid var(--rule)}
.get .n{font:500 11px/1 var(--f-mono);letter-spacing:.06em;color:var(--cobalt)}
.get h3{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.035em}
.get p{color:var(--ink-2);font-size:15px}
.get ul{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:14.5px}
.get li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:6px}
.get li::before{content:"→";color:var(--cobalt);font-size:13px}
.get .fmt{margin-top:auto;padding-top:10px;color:var(--ink-2);font-size:10.5px}
.get a.more{font-size:14px;font-weight:500;display:inline-flex;gap:8px;color:var(--cobalt)}
.night .gets{border-top-color:var(--on-night)}
.night .get{border-bottom-color:var(--night-rule)}
.night .get:not(:nth-child(3n+1)){border-left-color:var(--night-rule)}
.night .get p,.night .get .fmt{color:var(--on-night-2)}
.night .get .n,.night .get li::before{color:#8C98FF}
@media (max-width:1080px){
  .gets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .get:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .get:nth-child(2n){padding-left:22px;border-left:1px solid var(--rule)}
  .night .get:nth-child(2n){border-left-color:var(--night-rule)}
}
@media (max-width:640px){
  .gets{grid-template-columns:minmax(0,1fr)}
  .get:nth-child(2n){padding-left:0;border-left:0}
}

/* ---------- small "included in every project" band ---------- */
.always{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-block:1px solid var(--ink)}
.always div{padding:18px 18px 18px 0;display:flex;flex-direction:column;gap:6px}
.always div+div{padding-left:18px;border-left:1px solid var(--rule)}
.always b{font-family:var(--f-display);font-size:20px;letter-spacing:-.03em;font-weight:700}
.always span{color:var(--ink-2);font-size:14px}
.night .always{border-color:var(--on-night)}
.night .always div+div{border-left-color:var(--night-rule)}
.night .always span{color:var(--on-night-2)}
@media (max-width:820px){.always{grid-template-columns:repeat(2,minmax(0,1fr))}.always div:nth-child(3){padding-left:0;border-left:0}.always div:nth-child(n+3){border-top:1px solid var(--rule)}}
@media (max-width:480px){.always{grid-template-columns:minmax(0,1fr)}.always div,.always div+div{padding-left:0;border-left:0;border-top:1px solid var(--rule)}.always div:first-child{border-top:0}}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 0;font-family:var(--f-display);font-weight:500;font-size:clamp(19px,1.8vw,24px);letter-spacing:-.025em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono);font-size:20px;color:var(--cobalt);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;max-width:70ch;color:var(--ink-2)}
.night .faq{border-top-color:var(--on-night)}
.night .faq details{border-bottom-color:var(--night-rule)}
.night .faq details p{color:var(--on-night-2)}
.night .faq summary::after{color:#8C98FF}
.split{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(24px,5vw,80px);align-items:start}
.split > :first-child{position:sticky;top:100px}
@media (max-width:900px){.split{grid-template-columns:minmax(0,1fr)}.split > :first-child{position:static}}

/* ---------- inline contact band ---------- */
.ask{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;padding:clamp(22px,2.8vw,40px);background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--rule)}
.ask .kicker{max-width:32ch}
.ask-btns{display:flex;flex-wrap:wrap;gap:10px}
.night .ask{background:var(--night-2);box-shadow:inset 0 0 0 1px var(--night-rule)}
@media (max-width:560px){.ask-btns{flex-direction:column;width:100%}.ask-btns .btn{justify-content:space-between}}

/* =========================================================
   HOME
   ========================================================= */
.dirs{border-top:1px solid var(--ink)}
.dir{display:grid;grid-template-columns:72px minmax(0,1.1fr) minmax(0,1.3fr);gap:20px clamp(24px,3vw,48px);padding-block:clamp(28px,3.4vw,48px);border-bottom:1px solid var(--rule);align-items:start;position:relative}
.dir .n{font-family:var(--f-display);font-weight:800;font-size:clamp(40px,4vw,64px);letter-spacing:-.06em;line-height:.85;color:transparent;-webkit-text-stroke:1.2px var(--ink);transition:color .35s,-webkit-text-stroke-color .35s}
.dir:hover .n{color:var(--cobalt);-webkit-text-stroke-color:var(--cobalt)}
.dir-copy{display:flex;flex-direction:column;gap:14px;min-width:0}
.dir-copy h3{font-size:clamp(34px,4vw,60px);letter-spacing:-.05em;font-weight:800}
.dir-copy h3 a{transition:color .25s}
.dir-copy h3 a:hover{color:var(--cobalt)}
.dir-copy p{color:var(--ink-2);font-size:16px;max-width:46ch}
.dir-copy .btn{align-self:flex-start;margin-top:6px}
.dir-get{font-size:14px;display:flex;flex-direction:column;gap:6px;margin-top:2px}
.dir-get b{font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:4px}
.dir-get span{display:grid;grid-template-columns:16px minmax(0,1fr);gap:6px}
.dir-get span::before{content:"→";color:var(--cobalt)}
.dir-vis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0}
.dir-vis.wide{grid-template-columns:repeat(2,minmax(0,1fr))}
.dir-vis figure{margin:0;aspect-ratio:1;overflow:hidden;background:var(--paper-2);cursor:zoom-in}
.dir-vis.wide figure{aspect-ratio:16/9}
.dir-vis figure img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.dir-vis figure:hover img{transform:scale(1.05)}
.dir-vis .slot{--ar:1}
.dir-vis.wide .slot{--ar:16/9}
.dir-vis .big{grid-column:span 2;grid-row:span 2}
.dir-vis .vid{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--night);grid-column:span 2;grid-row:span 2}
.dir-vis .vid img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:transform .9s var(--ease),opacity .3s}
.dir-vis .vid:hover img{transform:scale(1.04);opacity:1}
.play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--cobalt);color:#fff;display:grid;place-items:center;transition:transform .35s var(--ease)}
.play svg{width:22px;height:22px;margin-left:3px}
.vid:hover .play{transform:scale(1.08)}
@media (max-width:1080px){.dir{grid-template-columns:56px minmax(0,1fr)}.dir-vis{grid-column:1/-1}}
@media (max-width:560px){.dir{grid-template-columns:minmax(0,1fr)}.dir .n{font-size:40px}}

.mini-about{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:clamp(28px,5vw,80px);align-items:start}
.mini-about .portrait{max-width:380px}
@media (max-width:900px){.mini-about{grid-template-columns:minmax(0,1fr)}.mini-about .portrait{max-width:320px}}

/* =========================================================
   GRAPHIC DESIGN
   ========================================================= */
.disc-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.disc{display:flex;flex-direction:column;gap:10px;min-width:0;text-align:left}
.disc .ph{aspect-ratio:4/5;overflow:hidden;background:var(--paper-2);position:relative}
.disc .ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.disc:hover .ph img{transform:scale(1.05)}
.disc .ph .cnt{position:absolute;left:10px;top:10px;background:var(--paper);padding:4px 6px;font:500 10.5px/1 var(--f-mono);letter-spacing:.05em}
.disc b{font-family:var(--f-display);font-size:clamp(20px,1.9vw,26px);letter-spacing:-.035em;font-weight:700;display:flex;justify-content:space-between;align-items:baseline}
.disc b span{color:var(--cobalt);font-size:.8em;transition:transform .3s var(--ease)}
.disc:hover b span{transform:translate(3px,3px)}
@media (max-width:900px){.disc-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.disc-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}

.mx{width:100%;border-collapse:collapse;font-size:15px}
.mx th,.mx td{text-align:left;vertical-align:top;padding:16px 16px 16px 0;border-bottom:1px solid var(--rule)}
.mx thead th{font:500 11px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--ink);padding-bottom:12px}
.mx tbody th{font-family:var(--f-display);font-weight:700;font-size:clamp(19px,1.7vw,23px);letter-spacing:-.03em;width:22%}
.mx tbody th small{display:block;font:400 13px/1.4 var(--f-body);letter-spacing:0;color:var(--ink-2);margin-top:4px}
.mx td.f{font:500 11.5px/1.5 var(--f-mono);letter-spacing:.04em;color:var(--ink-2);width:18%}
.mx td.t{white-space:nowrap;font:500 12px/1.5 var(--f-mono);color:var(--cobalt);width:10%}
.mx tbody tr{transition:background .2s}
.mx tbody tr:hover{background:var(--paper-2)}
.mx-wrap{overflow-x:auto}
@media (max-width:820px){
  .mx thead{display:none}
  .mx,.mx tbody,.mx tr,.mx th,.mx td{display:block;width:auto!important}
  .mx tr{padding:16px 0;border-bottom:1px solid var(--rule)}
  .mx th,.mx td{border:0;padding:4px 0}
}

.gal-tools{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

/* =========================================================
   MOTION (dark page)
   ========================================================= */
body.dark{background:var(--night);color:var(--on-night)}
body.dark .top{background:color-mix(in srgb,var(--night) 82%,transparent)}
body.dark .top.scrolled{border-bottom-color:var(--night-rule)}
body.dark .logo{color:var(--on-night)}
body.dark .nav a{color:var(--on-night-2)}
body.dark .nav a:hover,body.dark .nav a[aria-current="page"]{color:var(--on-night)}
body.dark .nav a::after{background:var(--on-night)}
body.dark .menu-btn{box-shadow:inset 0 0 0 1px var(--on-night)}
body.dark .menu-btn span:not(.sr){background:var(--on-night)}
body.dark .mnav{background:var(--night);border-top-color:var(--night-rule)}
body.dark .mnav a:not(.btn){border-bottom-color:var(--night-rule)}
body.dark .mnav a[aria-current="page"]{color:#8C98FF}
body.dark .ph-hero .hb-top,body.dark .eyebrow{color:var(--on-night-2)}
body.dark .ph-row{border-top-color:var(--on-night)}
body.dark .ph-row .lede span{color:var(--on-night-2)}
body.dark .ph-hero h1 em,body.dark .sec-head h2 em,body.dark .kicker em{color:#8C98FF}
body.dark .sec-head p{color:var(--on-night-2)}
body.dark .btn-ghost{box-shadow:inset 0 0 0 1px var(--on-night)}
body.dark .btn-ghost:hover{background:var(--on-night);color:var(--night)}
body.dark .reg-mark{color:var(--on-night)}
.reel{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.reel iframe,.reel .reel-poster{position:absolute;inset:0;width:100%;height:100%;border:0}
.reel .reel-poster{display:block;cursor:pointer}
.reel .reel-poster img{width:100%;height:100%;object-fit:cover;opacity:.75;filter:saturate(1.1)}
.reel .play{width:96px;height:96px;margin:-48px 0 0 -48px}
.reel .play svg{width:30px;height:30px}
.reel-poster:hover .play{transform:scale(1.08)}
.reel-cap{display:flex;justify-content:space-between;gap:16px;padding-top:12px;color:var(--on-night-2);flex-wrap:wrap}
.tl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--on-night);position:relative}
.tl div{padding:18px 16px 0 0;display:flex;flex-direction:column;gap:8px;position:relative}
.tl div+div{padding-left:16px;border-left:1px solid var(--night-rule)}
.tl div::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:#8C98FF}
.tl div+div::before{left:-5px}
.tl .mono{color:#8C98FF;font-size:11px}
.tl b{font-family:var(--f-display);font-size:20px;letter-spacing:-.03em}
.tl p{color:var(--on-night-2);font-size:14px}
@media (max-width:1080px){.tl{grid-template-columns:repeat(3,minmax(0,1fr))}.tl div:nth-child(4){padding-left:0;border-left:0}.tl div:nth-child(n+4){margin-top:28px}.tl div:nth-child(4)::before{left:0}}
@media (max-width:560px){.tl{grid-template-columns:minmax(0,1fr)}.tl div,.tl div+div{padding-left:0;border-left:0;margin-top:22px}.tl div:first-child{margin-top:0}.tl div::before,.tl div+div::before{left:0}}
.ratios{display:flex;align-items:flex-end;gap:clamp(12px,2vw,28px);flex-wrap:wrap}
.ratios figure{margin:0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ratios .r{box-shadow:inset 0 0 0 1.5px var(--on-night-2);display:grid;place-items:center;font:500 12px/1 var(--f-mono);color:var(--on-night);transition:box-shadow .3s,background .3s}
.ratios figure:hover .r{box-shadow:inset 0 0 0 1.5px #8C98FF;background:rgba(140,152,255,.08)}
.ratios figcaption{font:500 10.5px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--on-night-2)}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.4vw,20px)}
.vgrid .slot{--ar:16/9}
.vgrid .tall{--ar:9/16}
.vgrid .cap{display:flex;justify-content:space-between;gap:10px;padding-top:9px;color:var(--on-night-2)}
.vgrid .cap b{font-weight:500;color:var(--on-night);font-size:14px}
.vgroup{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,20px)}
.vgroup + .vgroup{margin-top:clamp(40px,5vw,72px)}
.vgroup-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-top:1px solid var(--night-rule);padding-top:14px}
.vgroup-h h3{font-size:clamp(26px,2.6vw,38px);letter-spacing:-.04em}
.vgroup-h .mono{color:var(--on-night-2)}
.vrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,20px);align-items:end}
.vrow.r3{grid-template-columns:repeat(3,minmax(0,1fr))}
.vrow.mix{grid-template-columns:3fr 1fr 1fr}
.vrow.vert{max-width:900px}
.vrow.mix .slot:not(:first-child){--ar:9/16}
.vrow.mix .slot:first-child{--ar:16/9}
@media (max-width:900px){.vgrid,.vrow,.vrow.r3{grid-template-columns:repeat(2,minmax(0,1fr))}.vrow.mix{grid-template-columns:1fr 1fr}.vrow.mix .slot:first-child{grid-column:1/-1}}
@media (max-width:480px){.vgrid{grid-template-columns:minmax(0,1fr)}}
.tools2{display:flex;flex-wrap:wrap;gap:8px}
.tools2 span{padding:9px 12px;box-shadow:inset 0 0 0 1px var(--night-rule);font-size:14px;color:var(--on-night)}
.tools2 span small{color:var(--on-night-2);font:400 10.5px var(--f-mono);letter-spacing:.05em;text-transform:uppercase;margin-left:6px}
body:not(.dark) .tools2 span{box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink)}
body:not(.dark) .tools2 span small{color:var(--ink-2)}

/* =========================================================
   WEB
   ========================================================= */
.browser{background:#fff;box-shadow:0 0 0 1px var(--rule),0 30px 60px -30px rgba(17,18,21,.35);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.browser-bar{display:flex;align-items:center;gap:12px;height:38px;padding:0 12px;background:var(--paper-2);border-bottom:1px solid var(--rule)}
.browser-bar .dots{display:flex;gap:6px}
.browser-bar .dots i{width:10px;height:10px;border-radius:50%;background:var(--paper-3)}
.browser-bar .url{flex:1;min-width:0;height:24px;border-radius:12px;background:var(--paper);display:flex;align-items:center;padding:0 12px;font:400 12px var(--f-mono);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser-bar .url b{color:var(--ink);font-weight:500}
.browser .slot{--ar:16/10;box-shadow:none}
.site-case{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;padding-block:clamp(36px,4vw,56px);border-top:1px solid var(--ink)}
.site-case + .site-case{border-top-color:var(--rule)}
.site-case .copy-col{display:flex;flex-direction:column;gap:16px;align-items:flex-start;min-width:0}
.site-case h3{font-size:clamp(36px,4.4vw,64px);letter-spacing:-.05em;font-weight:800}
.site-case p{color:var(--ink-2);max-width:42ch}
.site-case .related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;width:100%}
.site-case .related figure{margin:0;aspect-ratio:1;overflow:hidden;background:var(--paper-2);cursor:zoom-in}
.site-case .related img{width:100%;height:100%;object-fit:cover}
.site-case .related-l{color:var(--ink-2);font-size:10.5px}
.site-case.alt{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.site-case.alt .browser{order:2}
@media (max-width:900px){.site-case,.site-case.alt{grid-template-columns:minmax(0,1fr)}.site-case.alt .browser{order:0}}
.ve-mosaic{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;aspect-ratio:16/10;background:var(--paper);padding:6px}
.ve-mosaic figure{margin:0;overflow:hidden;background:var(--paper-2);cursor:zoom-in;position:relative}
.ve-mosaic figure:first-child{grid-row:span 2}
.ve-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.ve-mosaic figure:hover img{transform:scale(1.05)}
.ve-note{position:absolute;left:10px;bottom:10px;background:var(--paper);padding:5px 7px;font:500 10px/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}

.tiers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.tier{padding:clamp(22px,2.8vw,40px);display:flex;flex-direction:column;gap:16px;box-shadow:inset 0 0 0 1px var(--ink);min-width:0}
.tier.hi{background:var(--ink);color:var(--paper);box-shadow:none}
.tier .mono{color:var(--cobalt)}
.tier.hi .mono{color:#8C98FF}
.tier h3{font-size:clamp(30px,3.2vw,46px);letter-spacing:-.045em;font-weight:800}
.tier > p{color:var(--ink-2);max-width:44ch}
.tier.hi > p{color:var(--on-night-2)}
.tier ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.tier.hi ul{border-top-color:var(--night-rule)}
.tier li{padding:11px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;font-size:15px}
.tier.hi li{border-bottom-color:var(--night-rule)}
.tier li::before{content:"✓";color:var(--cobalt);font-weight:600}
.tier.hi li::before{color:#8C98FF}
.tier li.no{color:var(--ink-2)}
.tier li.no::before{content:"—";color:var(--ink-2)}
.tier .btn{align-self:flex-start;margin-top:auto}
.tier.hi .btn-ghost{box-shadow:inset 0 0 0 1px var(--paper);color:var(--paper)}
.tier.hi .btn-ghost:hover{background:var(--paper);color:var(--ink)}
@media (max-width:820px){.tiers{grid-template-columns:minmax(0,1fr)}}
.plat{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--ink)}
.plat span{flex:1 1 160px;padding:18px 16px 18px 0;font-family:var(--f-display);font-weight:700;font-size:clamp(20px,2vw,28px);letter-spacing:-.035em;border-bottom:1px solid var(--rule)}
.plat span small{display:block;font:400 11px/1.4 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-top:6px}
.wgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,18px)}
.wgrid figure{margin:0;display:flex;flex-direction:column;gap:8px;cursor:zoom-in;min-width:0}
.wgrid .ph{aspect-ratio:4/3;overflow:hidden;background:var(--paper-2)}
.wgrid img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.wgrid figure:hover img{transform:scale(1.05)}
.wgrid figcaption{font-size:13.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){.wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* =========================================================
   INTERIOR & EXTERIOR (drawing-sheet look)
   ========================================================= */
.bp{background:
  linear-gradient(var(--rule) 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(90deg,var(--rule) 1px,transparent 1px) 0 0/40px 40px,
  var(--paper)}
.bp-hero{position:relative}
.bp-hero .wrap{position:relative}
.sheet-tb{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--ink);background:var(--paper);margin-top:clamp(28px,3vw,40px)}
.sheet-tb div{padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.sheet-tb div+div{border-left:1px solid var(--ink)}
.sheet-tb .mono{font-size:10px;color:var(--ink-2)}
.sheet-tb b{font-weight:500;font-size:14px}
@media (max-width:720px){.sheet-tb{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet-tb div:nth-child(3){border-left:0}.sheet-tb div:nth-child(n+3){border-top:1px solid var(--ink)}}
.stages{counter-reset:st;display:flex;flex-direction:column;border-top:1px solid var(--ink)}
.stage{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(0,1.1fr);gap:20px clamp(20px,3vw,48px);padding-block:clamp(24px,3vw,40px);border-bottom:1px solid var(--rule);align-items:start}
.stage .code{font:500 12px/1 var(--f-mono);letter-spacing:.06em;display:flex;flex-direction:column;gap:10px}
.stage .code b{font-family:var(--f-display);font-weight:800;font-size:44px;letter-spacing:-.05em;line-height:.85;color:transparent;-webkit-text-stroke:1.2px var(--ink)}
.stage:hover .code b{color:var(--cobalt);-webkit-text-stroke-color:var(--cobalt)}
.stage .code span{color:var(--cobalt)}
.stage h3{font-size:clamp(26px,2.6vw,38px);letter-spacing:-.04em;margin-bottom:10px}
.stage p{color:var(--ink-2);max-width:46ch}
.stage ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule)}
.stage li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed var(--rule);font-size:15px}
.stage li small{font:400 10.5px/1.6 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}
@media (max-width:980px){.stage{grid-template-columns:80px minmax(0,1fr)}.stage ul{grid-column:2}}
@media (max-width:560px){.stage{grid-template-columns:minmax(0,1fr)}.stage ul{grid-column:auto}}
.ie-tabs{display:inline-flex;padding:5px;border-radius:999px;background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--rule);gap:2px;flex-wrap:wrap}
.ie-tabs button{height:42px;padding:0 18px;border-radius:999px;font-size:15px;color:var(--ink-2);transition:background .25s,color .25s}
.ie-tabs button[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.ie-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(10px,1.2vw,18px);margin-top:24px}
.ie-grid .slot{grid-column:span 4}
.ie-grid .slot.w8{grid-column:span 8;--ar:16/9}
.ie-grid .slot.w6{grid-column:span 6}
.ie-grid .slot.w4t{grid-column:span 4;--ar:4/5}
.ie-grid .slot{background:
  linear-gradient(rgba(35,53,230,.07) 1px,transparent 1px) 0 0/20px 20px,
  linear-gradient(90deg,rgba(35,53,230,.07) 1px,transparent 1px) 0 0/20px 20px,
  #F6F7F3}
.ie-grid .slot .tb{position:absolute;right:0;bottom:0;display:grid;grid-template-columns:auto auto;border-top:1px solid var(--ink);border-left:1px solid var(--ink);background:var(--paper);font:500 9.5px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.ie-grid .slot .tb span{padding:6px 8px}
.ie-grid .slot .tb span+span{border-left:1px solid var(--ink);color:var(--cobalt)}
.ie-grid .slot::after{display:none}
.ie-grid [hidden]{display:none!important}
@media (max-width:900px){.ie-grid .slot,.ie-grid .slot.w4t{grid-column:span 6}.ie-grid .slot.w8,.ie-grid .slot.w6{grid-column:span 12}}
@media (max-width:520px){.ie-grid .slot,.ie-grid .slot.w4t{grid-column:span 12}}
.scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.scope > div{padding:clamp(20px,2.6vw,36px);background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink);display:flex;flex-direction:column;gap:12px}
.scope h3{font-size:clamp(28px,3vw,42px);letter-spacing:-.045em;font-weight:800}
.scope p{color:var(--ink-2)}
.scope .chips{margin-top:auto}
@media (max-width:820px){.scope{grid-template-columns:minmax(0,1fr)}}

/* =========================================================
   PRESENTATIONS
   ========================================================= */
.deck-pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.deck-pick a{display:flex;flex-direction:column;gap:12px;min-width:0}
.deck-pick .ph{aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);box-shadow:0 0 0 1px var(--rule)}
.deck-pick img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.deck-pick a:hover img{transform:scale(1.04)}
.deck-pick b{font-family:var(--f-display);font-size:clamp(26px,2.6vw,38px);letter-spacing:-.045em;display:flex;justify-content:space-between;align-items:baseline}
.deck-pick b span{color:var(--cobalt);font-size:.7em}
.deck-pick .mono{color:var(--ink-2)}
@media (max-width:820px){.deck-pick{grid-template-columns:minmax(0,1fr)}}
.story{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.2vw,18px);counter-reset:s}
.story figure{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0;cursor:zoom-in}
.story .ph{aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);box-shadow:0 0 0 1px var(--rule)}
.story img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.story figure:hover img{transform:scale(1.04)}
.story figcaption{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--ink);padding-top:9px}
.story figcaption .mono{color:var(--cobalt);font-size:10.5px}
.story figcaption b{font-family:var(--f-display);font-size:19px;letter-spacing:-.03em;font-weight:700}
.story figcaption span{color:var(--ink-2);font-size:13.5px}
@media (max-width:1000px){.story{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.story{grid-template-columns:minmax(0,1fr)}}
.deck{padding-block:clamp(40px,5vw,72px);border-top:1px solid var(--ink);scroll-margin-top:80px}
.deck-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 40px;align-items:end;margin-bottom:24px}
.deck-head h3{font-size:clamp(48px,7vw,110px);font-weight:800;letter-spacing:-.06em}
.deck-head h3 i{color:var(--cobalt);font-style:normal}
.deck-head p{color:var(--ink-2);max-width:50ch;margin-top:12px}
.deck-head .side{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.deck-head .facts{display:flex;gap:8px;flex-wrap:wrap}
.deck-head .facts span{padding:6px 9px;box-shadow:inset 0 0 0 1px var(--rule);font-size:11px}
.deck-head .disc-note{font-size:12.5px;color:var(--ink-2);max-width:34ch}
@media (max-width:820px){.deck-head{grid-template-columns:minmax(0,1fr)}}
.strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:var(--ink-2) transparent}
.strip figure{margin:0;flex:0 0 clamp(260px,34vw,520px);scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;cursor:zoom-in}
.strip .ph{aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);box-shadow:0 0 0 1px var(--rule)}
.strip img{width:100%;height:100%;object-fit:cover}
.strip figcaption{display:flex;gap:10px;font-size:13.5px;color:var(--ink-2)}
.strip figcaption .mono{color:var(--ink);font-size:11px;padding-top:2px}
.strip-nav{display:flex;gap:8px}
.strip-nav button{width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--ink);display:grid;place-items:center;transition:.2s}
.strip-nav button:hover{background:var(--ink);color:var(--paper)}
.types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.types div{padding:20px 18px 0 0;display:flex;flex-direction:column;gap:8px}
.types div+div{padding-left:18px;border-left:1px solid var(--rule)}
.types b{font-family:var(--f-display);font-size:24px;letter-spacing:-.035em}
.types p{color:var(--ink-2);font-size:14.5px}
.types .mono{color:var(--cobalt);font-size:11px}
@media (max-width:900px){.types{grid-template-columns:repeat(2,minmax(0,1fr))}.types div:nth-child(3){padding-left:0;border-left:0}.types div:nth-child(n+3){padding-top:28px}}
@media (max-width:480px){.types{grid-template-columns:minmax(0,1fr)}.types div,.types div+div{padding-left:0;border-left:0;padding-top:22px}}

/* =========================================================
   NEW WORK (shared)
   ========================================================= */
.newrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(10px,1.2vw,18px)}
.np{display:flex;flex-direction:column;gap:12px;text-align:left;min-width:0}
.np .ph{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--paper-2)}
.np .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.np:hover .ph img{transform:scale(1.05)}
.tag{position:absolute;left:10px;top:10px;background:var(--paper);color:var(--ink);padding:5px 8px;font-size:10.5px}
.np-t{display:flex;flex-direction:column;gap:4px}
.np-t b{font-family:var(--f-display);font-weight:700;font-size:clamp(22px,1.9vw,28px);letter-spacing:-.035em;line-height:1}
.np-t .mono{font-size:10.5px;color:var(--ink-2)}
.np-l{font-size:14.5px;color:var(--ink-2);line-height:1.45}
.newnote{margin-top:22px;color:var(--ink-2);font-size:10.5px}
.newsub{font-size:10.5px;color:var(--ink-2);margin:0 0 14px;padding-top:14px;border-top:1px solid var(--rule)}
.newrow+.newsub{margin-top:clamp(36px,4vw,56px)}
.newrow-3{grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
.newrow-3 .np-t b{font-size:clamp(26px,2.3vw,34px)}
.tile .k.is-new{color:var(--cobalt)}
@media (max-width:1080px){.newrow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.newrow.newrow-3{grid-template-columns:minmax(0,1fr)}.newrow-3 .np .ph{aspect-ratio:5/4}}
@media (max-width:640px){.newrow{grid-template-columns:repeat(2,minmax(0,1fr))}}
.night .newnote{color:var(--on-night-2)}

/* motion portfolio: product films */
.vrow2{display:grid;grid-template-columns:1.7778fr .5625fr;gap:clamp(12px,1.5vw,22px);align-items:start}
.vrow2 .vw .vbox{aspect-ratio:16/9}.vrow2 .vv .vbox{aspect-ratio:9/16}
.vrow3e{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.5vw,22px);margin-top:clamp(18px,2vw,30px)}
.vrowx{display:grid;grid-template-columns:2fr 1fr;gap:clamp(12px,1.5vw,22px);margin-top:clamp(18px,2vw,30px);align-items:center}
.vrowx .vbox{aspect-ratio:16/9}
.vnote{display:flex;flex-direction:column;gap:14px;padding:clamp(8px,2vw,28px)}
.vnote h3{font-size:clamp(26px,2.4vw,38px);letter-spacing:-.04em;line-height:1.05}
.vnote p:not(.mono){color:var(--on-night-2);font-size:15.5px;line-height:1.55}
.vnote .mono{font-size:10.5px;color:var(--on-night-2)}
.vrow2 figcaption,.vrow3e figcaption{flex-direction:column;align-items:flex-start;gap:4px}
@media (max-width:900px){.vrow3e{grid-template-columns:1fr 1fr}.vrowx{grid-template-columns:1fr}}
@media (max-width:560px){.vrow2,.vrow3e{grid-template-columns:1fr}.vrow2 .vv{max-width:320px}}

/* motion portfolio: series 02 justified row (widths follow 16:9, 1:1, 4:5 so heights match) */
.vrow3{display:grid;grid-template-columns:1.7778fr 1fr .8fr;gap:clamp(12px,1.5vw,22px);align-items:start}
.vrow3 figcaption{flex-direction:column;align-items:flex-start;gap:4px}
.vrow3 .vw .vbox{aspect-ratio:16/9}.vrow3 .vs .vbox{aspect-ratio:1/1}.vrow3 .vp .vbox{aspect-ratio:4/5}
@media (max-width:900px){.vrow3{grid-template-columns:1fr 1fr}.vrow3 .vw{grid-column:1/-1}}
@media (max-width:560px){.vrow3{grid-template-columns:1fr}}
.night .newsub{color:var(--on-night-2);border-color:var(--night-rule)}

/* motion portfolio: video grid */
.vgrid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"a a b" "d d b" "e e f";gap:clamp(12px,1.5vw,22px)}
.vt{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.va{grid-area:a}.vb{grid-area:b}.vc{grid-area:c}.vd{grid-area:d}.ve{grid-area:e}.vf{grid-area:f;align-self:start}
.vbox{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:#000;border-radius:4px;cursor:pointer}
.vb .vbox{aspect-ratio:auto;flex:1}
.vbox video,.vbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vplay{position:absolute;right:14px;bottom:14px;width:46px;height:46px;border-radius:50%;background:rgba(13,14,18,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;display:grid;place-items:center;transition:transform .3s var(--ease),background .3s}
.vplay svg{width:18px;height:18px;margin-left:2px}
.vbox:hover .vplay{transform:scale(1.1);background:var(--cobalt)}
.vt figcaption{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.vt figcaption b{font-weight:500;font-size:15px}
.vt figcaption .mono{font-size:10.5px;color:var(--on-night-2);white-space:nowrap}
body:not(.dark) .vt figcaption .mono{color:var(--ink-2)}
@media (max-width:900px){.vgrid2{grid-template-columns:1fr 1fr;grid-template-areas:"a a" "b d" "e e" "f f"}}
@media (max-width:560px){.vgrid2{grid-template-columns:1fr;grid-template-areas:"a" "b" "d" "e" "f"}.vb .vbox{aspect-ratio:9/16}}
/* video lightbox */
dialog.vlb{border:0;padding:0;max-width:none;max-height:none;width:100%;height:100%;background:rgba(8,9,12,.94);color:var(--on-night)}
dialog.vlb::backdrop{background:transparent}
.vlb-in{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);padding:max(16px,env(safe-area-inset-top)) var(--gutter) max(24px,env(safe-area-inset-bottom))}
.vlb-top{display:flex;justify-content:space-between;align-items:center;min-height:56px}
.vlb-top .lb-title{font-family:var(--f-display);font-size:clamp(18px,2vw,24px);letter-spacing:-.03em}
.vlb-stage{display:grid;place-items:center;min-height:0}
.vlb-stage video{max-width:100%;max-height:100%;border-radius:4px;background:#000}

/* web page: new website cards */
.wgrid2{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(28px,3.4vw,48px) clamp(16px,2vw,28px)}
.wcase{display:flex;flex-direction:column;gap:16px;min-width:0}
.wcase.big{grid-column:span 3}.wcase.small{grid-column:span 2}.wcase.full{grid-column:1/-1}
.wcase.full .wframe{padding-right:4%;padding-bottom:4%}.wcase.full .scrollshot{aspect-ratio:16/8}.wcase.full .phone-mini{width:14%}
.wframe{position:relative;padding:0 6% 6% 0}
.wframe .browser{border-radius:10px}
.scrollshot{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2);cursor:pointer}
.scrollshot img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:object-position 7s cubic-bezier(.45,.05,.55,.95)}
.scrollshot:hover img,.scrollshot:focus-visible img{object-position:50% 100%}
.phone-mini{position:absolute;right:0;bottom:0;width:21%;aspect-ratio:390/844;border-radius:16px;overflow:hidden;background:#111;border:4px solid #111;box-shadow:0 24px 40px -18px rgba(17,18,21,.55)}
.phone-mini img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.wmeta{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.wmeta h3{font-size:clamp(28px,2.6vw,40px);letter-spacing:-.045em;font-weight:800}
.wmeta .mono{display:block;margin-top:6px;color:var(--ink-2);font-size:10.5px}
.wmeta .btn{height:44px;font-size:14px}
.wcase>p{color:var(--ink-2);font-size:15.5px;max-width:52ch}
.chips .c-new{box-shadow:inset 0 0 0 1px var(--cobalt);color:var(--cobalt)}
@media (max-width:980px){.wcase.big,.wcase.small{grid-column:span 6}.wcase.full .scrollshot{aspect-ratio:16/10}.wcase.full .phone-mini{width:21%}}
@media (prefers-reduced-motion:reduce){.scrollshot img{transition:none}}

/* interior grid: real renders */
.ie-item{margin:0;display:flex;flex-direction:column;gap:10px;min-width:0;grid-column:span 4;cursor:zoom-in}
.ie-item.w8{grid-column:span 8}.ie-item.w6{grid-column:span 6}.ie-item.w4t{grid-column:span 4}.ie-item.w12{grid-column:1/-1}
.ie-ph{position:relative;display:block;overflow:hidden;background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--rule)}
.ie-item.w8 .ie-ph{aspect-ratio:16/9}.ie-item.w12 .ie-ph{aspect-ratio:21/9}.ie-item.w4t .ie-ph{aspect-ratio:8/9}.ie-item.w6 .ie-ph{aspect-ratio:3/2}
.ie-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.ie-item:hover .ie-ph img{transform:scale(1.03)}
.ie-ph.plan{background:#fff}.ie-ph.plan img{object-fit:contain}
.ie-ph .tb{position:absolute;right:0;bottom:0;display:grid;grid-template-columns:auto auto;border-top:1px solid var(--ink);border-left:1px solid var(--ink);background:var(--paper);font:500 9.5px/1 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.ie-ph .tb span{padding:6px 8px}
.ie-ph .tb span+span{border-left:1px solid var(--ink);color:var(--cobalt)}
.ie-item figcaption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.ie-item figcaption b{font-weight:500;font-size:15px}
.ie-item figcaption .mono{font-size:10.5px;color:var(--ink-2)}
.ie-grid [hidden]{display:none!important}
@media (max-width:900px){.ie-item,.ie-item.w4t{grid-column:span 6}.ie-item.w8,.ie-item.w6{grid-column:span 12}}
@media (max-width:520px){.ie-item,.ie-item.w4t{grid-column:span 12}.ie-item.w12 .ie-ph{aspect-ratio:16/10}}

/* presentations: eight-deck picker */
.deck-pick-8{grid-template-columns:repeat(4,minmax(0,1fr))}
.deck-pick-8 b{font-size:clamp(22px,2vw,30px)}
.deck-pick .ph{position:relative}
@media (max-width:1080px){.deck-pick-8{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.deck-pick-8{grid-template-columns:minmax(0,1fr)}}

/* home previews: video posters, site heroes, plan */
.dir-vis .vid video{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.dir-vis .vtile{display:block;aspect-ratio:1;overflow:hidden;background:#0d0e12}
.dir-vis .vtile img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.dir-vis .vtile:hover img{transform:scale(1.05)}
.dir-vis .wt{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--paper-2);box-shadow:0 0 0 1px var(--rule)}
.dir-vis .wt img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:transform .9s var(--ease)}
.dir-vis .wt:hover img{transform:scale(1.04)}
.dir-vis .wt .mono{position:absolute;left:8px;bottom:8px;background:var(--paper);padding:4px 6px;font-size:10px}
.dir-vis figure.plan{background:#fff}
.dir-vis figure.plan img{object-fit:contain}

/* pastry houses: one block per brand */
.pb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:clamp(20px,3vw,48px);padding:clamp(28px,3.4vw,48px) 0;border-top:1px solid var(--rule)}
.pb:last-child{border-bottom:1px solid var(--rule)}
.pb-h{display:flex;flex-direction:column;gap:10px;align-items:flex-start;position:sticky;top:96px;align-self:start}
.pb-h>.mono{font-size:10.5px;color:var(--ink-2)}
.pb-logo{height:clamp(34px,3.4vw,52px);width:auto;max-width:100%;margin:12px 0 10px}
.pb-h b{font-family:var(--f-display);font-size:clamp(30px,3vw,46px);letter-spacing:-.04em;line-height:1}
.pb-h p{color:var(--ink-2);font-size:15px;line-height:1.5;max-width:34ch}
.pb-pal{display:flex;gap:6px;margin-top:6px}.pb-pal i{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pb-n{font-size:10.5px;color:var(--ink-2);margin-top:4px}
.pb-g{display:flex;flex-direction:column;gap:clamp(8px,1vw,14px)}
.pb-row{display:flex;gap:clamp(8px,1vw,14px);align-items:flex-start}
.pb-i{position:relative;padding:0;border:0;overflow:hidden;background:var(--paper-2);cursor:zoom-in;flex:var(--ar) 1 0;min-width:0;aspect-ratio:var(--ar)}
.pb-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(17,18,21,.55);color:#fff;font-size:12px;letter-spacing:.08em}
.pb-i img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .9s var(--ease)}
.pb-i:hover img{transform:scale(1.04)}
@media (max-width:900px){.pb{grid-template-columns:1fr}.pb-h{position:static}}
@media (max-width:640px){.pb-row.sheets{flex-direction:column}.pb-row.sheets .pb-i{flex:none;width:100%}}

/* organize gallery (graphic design page) */
.org-bar{display:none;align-items:center;gap:14px;flex-wrap:wrap;margin:6px 0 18px}
body.can-org .org-bar{display:flex}
.org-bar .btn{height:40px;font-size:13.5px}
.org-toggle[aria-pressed="true"],.org-toggle[aria-pressed="true"]:hover{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important}
.org-hint{display:none;font-size:10.5px;color:var(--ink-2)}
body.org .org-hint{display:inline}
.org-removed b{font-weight:600;margin-left:6px;background:var(--cobalt);color:#fff;border-radius:999px;padding:1px 8px;font-size:12px}
.rm{display:none;position:absolute;top:8px;right:8px;z-index:4;width:32px;height:32px;border-radius:50%;border:0;background:#E5484D;color:#fff;font:600 20px/32px var(--f-body);text-align:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.25);transition:transform .2s}
.rm:hover{transform:scale(1.12)}
body.org .rm{display:block}
.tile{position:relative}
body.org .tile .tile-open,body.org .pb-i{outline:2px dashed rgba(229,72,77,.5);outline-offset:-2px}
.rm-out{opacity:0;transform:scale(.92);transition:opacity .2s,transform .2s}
.org-dlg{border:0;padding:0;width:min(1100px,94vw);max-height:86vh;background:var(--paper);color:var(--ink)}
.org-dlg::backdrop{background:rgba(13,14,18,.6)}
.org-dlg-in{padding:24px 26px 30px;display:flex;flex-direction:column;gap:18px;max-height:86vh}
.org-dlg-h{display:flex;align-items:center;gap:14px}
.org-dlg-h b{font-family:var(--f-display);font-size:26px;letter-spacing:-.03em}
.org-dlg-h .mono{color:var(--ink-2);font-size:11px;margin-right:auto}
.org-dlg-h .btn{height:38px;font-size:13px}
.org-dlg .lb-close{position:static}
.org-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;overflow:auto}
.org-list figure{margin:0;display:flex;flex-direction:column;gap:6px}
.org-list img{width:100%;aspect-ratio:1;object-fit:cover;background:var(--paper-2)}
.org-list figcaption{font-size:12px;color:var(--ink-2);line-height:1.3;min-height:2.6em}
.org-list .btn{height:34px;font-size:12.5px;justify-content:center}

/* clickable service rows (graphic design) */
.mx tr.mx-go{cursor:pointer}
.mx tr.mx-go:focus-visible{outline:2px solid var(--cobalt);outline-offset:-2px}
.mx td.go{white-space:nowrap;width:1%;padding-right:0;font:500 12px/1.5 var(--f-mono);color:var(--cobalt);text-align:right}
.mx td.go span{margin-right:8px;opacity:0;transition:opacity .2s}
.mx tr.mx-go:hover td.go span,.mx tr.mx-go:focus-visible td.go span{opacity:1}
.mx tr.mx-go:hover th{color:var(--cobalt)}
@media (hover:none){.mx td.go span{opacity:1}}


/* =========================================================
   HOME POLISH (redesign-existing-projects + design-taste pass)
   ========================================================= */
p{text-wrap:pretty}
.btn:active{transform:translateY(1px) scale(.98)}
.proof2 strong,.rv-score strong{font-variant-numeric:tabular-nums}
body[data-page="home"] h2{padding-bottom:.06em}

/* section heads: headline, then the note underneath (no floating side paragraph) */
body[data-page="home"] .sec-head{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px}
body[data-page="home"] .sec-head>p{max-width:56ch;font-size:clamp(16px,1.25vw,18px)}

/* directions: a 4-cell bento instead of four identical rows */
body[data-page="home"] .dirs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);border-top:0}
body[data-page="home"] .dir{grid-column:span 7;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"vis vis" "n copy";gap:20px 18px;padding:0 0 clamp(26px,3vw,40px);border-bottom:1px solid var(--rule)}
body[data-page="home"] .dir:nth-child(odd){grid-column:span 5}
body[data-page="home"] .dir .n{grid-area:n;font-size:clamp(34px,3vw,46px)}
body[data-page="home"] .dir-copy{grid-area:copy;height:100%}
body[data-page="home"] .dir-copy h3{font-size:clamp(30px,3vw,46px)}
body[data-page="home"] .dir-copy .btn{margin-top:auto}
body[data-page="home"] .dir-vis{grid-area:vis;height:clamp(260px,27vw,400px);grid-template-rows:repeat(2,minmax(0,1fr))}
body[data-page="home"] .dir-vis>*{aspect-ratio:auto!important;height:100%;min-height:0}
body[data-page="home"] .dir-vis .vid{grid-column:span 2;grid-row:span 2}
@media (max-width:900px){
  body[data-page="home"] .dir,body[data-page="home"] .dir:nth-child(2),body[data-page="home"] .dir:nth-child(3){grid-column:1/-1}
  body[data-page="home"] .dir-vis{height:clamp(220px,58vw,360px)}
}

/* clients: one still, wrapped line of names (the hero ribbons stay the only moving strip) */
.clients{border-block:1px solid var(--ink);padding-block:clamp(22px,2.6vw,34px);display:flex;flex-wrap:wrap;align-items:baseline;gap:10px clamp(18px,2.4vw,36px);margin-block:clamp(8px,1vw,16px)}
.clients-lead{font-size:15px;color:var(--ink-2);margin-right:6px}
.clients-list{list-style:none;margin:0;padding:0;display:contents}
.clients-list li{font-family:var(--f-display);font-weight:500;font-size:clamp(20px,2vw,28px);letter-spacing:-.03em;line-height:1.1;white-space:nowrap}

/* reviews: one lead quote and four short ones */
.rv-score{display:flex;align-items:flex-end;gap:clamp(18px,3vw,40px);flex-wrap:wrap}
.rv-score strong{display:block;font-family:var(--f-display);font-size:clamp(40px,4.4vw,60px);letter-spacing:-.05em;line-height:1}
.rv-score strong small{font-size:.42em;color:var(--cobalt);margin-left:2px}
.rv-score .mono{font-size:11px;color:var(--ink-2)}
.rv-score .btn{height:44px;font-size:14px}
.rv-wall{display:grid;grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:clamp(12px,1.4vw,20px)}
.rv-wall figure{margin:0;display:flex;flex-direction:column;gap:18px}
.rv-wall blockquote{margin:0;font-family:var(--f-serif);font-style:italic;letter-spacing:-.01em}
.rv-wall figcaption{display:flex;flex-direction:column;gap:3px;margin-top:auto;padding-top:14px;border-top:1px solid var(--rule)}
.rv-wall figcaption b{font-weight:600;font-size:14.5px}
.rv-wall figcaption span{font:500 11px var(--f-mono);color:var(--ink-2)}
.rv-lead{grid-row:span 2;background:var(--ink);color:var(--paper);padding:clamp(26px,3vw,44px);border-radius:2px}
.rv-lead .stars{color:#8C98FF;letter-spacing:3px;font-size:14px}
.rv-lead blockquote{font-size:clamp(28px,2.7vw,42px);line-height:1.14}
.rv-lead figcaption{border-top-color:#2A2D35}.rv-lead figcaption span{color:#9A9DA6}
.rv-q{padding:clamp(20px,2vw,28px);background:var(--paper-2);border-radius:2px}
.rv-q blockquote{font-size:clamp(19px,1.5vw,22px);line-height:1.32}
@media (max-width:980px){.rv-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.rv-lead{grid-column:1/-1;grid-row:auto}}
@media (max-width:560px){.rv-wall{grid-template-columns:minmax(0,1fr)}}

/* polish fixes: quote as a tertiary link, motion gets the wide cell, mobile alignment */
.quote-link{font-size:15px;color:var(--ink-2);text-decoration:none;align-self:flex-start}
.quote-link b{font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:var(--cobalt);text-underline-offset:4px;text-decoration-thickness:1.5px;transition:color .2s}
.quote-link:hover b{color:var(--cobalt)}
body[data-page="home"] .step-ico{align-self:flex-start}
@media (max-width:560px){
  .cta-row2 .btn-wa{flex-direction:row-reverse}
  body[data-page="home"] .dir{grid-template-columns:minmax(0,1fr);grid-template-areas:"vis" "n" "copy";gap:12px}
}

/* presentations: deck type filter */
.dkf{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(18px,2vw,28px)}
.dkf button{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--ink);font-size:14px;transition:background .2s,color .2s}
.dkf button .mono{font-size:11px;opacity:.6}
.dkf button:hover{background:var(--paper-2)}
.dkf button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.deck-pick a[hidden],.deck[hidden]{display:none}

/* ---- tighter vertical rhythm across the site (2026-10-07): no oversized gaps between sections ---- */
.sec{padding-block:clamp(44px,5vw,84px)}
.sec-head{margin-bottom:clamp(22px,2.6vw,40px)}
.sb{padding-top:clamp(40px,4.4vw,72px);padding-bottom:clamp(48px,5vw,84px)}
.ph-hero{padding-bottom:clamp(28px,3vw,48px)}
.cs-group{padding-top:clamp(32px,3.6vw,56px)}
.cs-next,.cs-sell{margin-top:clamp(40px,4.4vw,72px)}
.gallery{margin-top:clamp(36px,4vw,64px)}
.cta .wrap{padding-block:clamp(48px,5.5vw,88px) 40px}

/* ---- rhythm v2: tighter still ---- */
.sec{padding-block:clamp(32px,3.6vw,60px)}
.ph-hero{padding-bottom:clamp(16px,2vw,28px)}
.ph-hero + .sec,.ph-hero + section{padding-top:clamp(20px,2.4vw,36px)}
.sb{padding-top:clamp(24px,2.6vw,44px);padding-bottom:clamp(36px,4vw,64px)}
.sec-head{margin-bottom:clamp(18px,2.2vw,32px)}

/* Tool logo strips (tool-icons.js) */
.tl-strip{margin-top:28px;display:flex;align-items:center;gap:14px 22px;flex-wrap:wrap}
.tl-lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:0;flex:none}
.tl-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tl-item{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 10px;box-shadow:inset 0 0 0 1px var(--rule);color:var(--ink);font-size:13.5px;line-height:1}
.tl-ic{width:18px;height:18px;display:grid;place-items:center;flex:none}
.tl-ic svg{width:18px;height:18px;display:block}
.tl-mono{width:18px;height:18px;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px currentColor;font:700 8.5px/1 var(--f-mono);letter-spacing:-.02em}
.tl-tag{padding-left:12px;color:var(--ink-2);box-shadow:none;border:1px dashed var(--rule)}
body.dark .tl-lbl{color:var(--on-night-2)}
body.dark .tl-item{box-shadow:inset 0 0 0 1px var(--night-rule);color:var(--on-night)}
body.dark .tl-tag{color:var(--on-night-2);border-color:var(--night-rule);box-shadow:none}
@media (max-width:600px){.tl-strip{flex-direction:column;align-items:flex-start}.tl-item{font-size:12.5px;padding:7px 10px 7px 8px}}
