:root{--bg:#fffcff;--pane:#faecf8;--line:#e0cede;--ink:#241422;--mute:#645562;--acc:#7b285d;--onacc:#ffffff;--hi:#8fe6c1;--term:#341d32;--onterm:#f3ecf2;--termmute:#c5b5c3}
/* Look AC "Stack": IT services, software studios, startups (any trade can use it). The business shown like a
   well-made software product: a floating side rail instead of a top nav (an app tab bar on phones), content in
   panes with a mono title strip, consoles for the log and the closing prompt, keycap buttons, mono numbers.
   Dark-first in coloured darks (design.ts). Faces are self-hosted from @fontsource-variable 5.3.0 (OFL 1.1, licences
   in public/fonts): Unbounded (AC's headline face), Geologica (text) and JetBrains Mono (facts), from the approved font list. Every class
   starts with ac- (stylesheets are global; g- belongs to the gallery library). */
@font-face{font-family:"Unbounded AC";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/unbounded-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Unbounded AC";font-style:normal;font-weight:200 900;font-display:swap;src:url(fonts/unbounded-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geologica AC";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/geologica-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geologica AC";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/geologica-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"JetBrains AC";font-style:normal;font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains AC";font-style:normal;font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* per pairing: headline face (--hf, width --hs, weight --hw, tracking --ht, leading --hl, size factor --hz), text face (--tf), mono face (--mf, --ms) */
body{--hf:"Unbounded AC",system-ui,sans-serif;--hs:100%;--hw:600;--ht:-.02em;--hl:1.1;--tf:"Geologica AC",system-ui,sans-serif;--mf:"JetBrains AC",ui-monospace,monospace;--ms:100%;--hz:.94}
body.ac-f-thin{--hw:300;--ht:-.01em;--hl:1.12;--hz:1.02}
:root{--r:calc(16px*var(--tune-radius,1));--gut:clamp(20px,4vw,40px);--sec:clamp(72px,9vw,128px);--m-accent:var(--acc);--lip:color-mix(in oklab,var(--acc) 62%,#000)}

/* ---------- base ---------- */
*{box-sizing:border-box;margin:0}
html{scroll-padding-top:24px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 calc(17px*var(--tune-size,1))/1.6 var(--tf);-webkit-font-smoothing:antialiased}
a{color:inherit}img{display:block;max-width:100%}
h1,h2,h3{font-family:var(--hf);font-stretch:var(--hs);font-weight:var(--hw);letter-spacing:var(--ht);line-height:var(--hl);text-wrap:balance}
h1,h2,h3,h4,p,li,dd,dt,b,a,summary,blockquote,figcaption,th,td,.ac-name{overflow-wrap:anywhere;hyphens:auto}
h1{font-size:calc(calc(clamp(34px,4.6vw,68px) * var(--hz))*var(--tune-size,1))}
h2{font-size:calc(calc(clamp(28px,3vw,42px) * var(--hz))*var(--tune-size,1))}
h3{font-size:calc(calc(clamp(19px,1.5vw,22px) * var(--hz))*var(--tune-size,1));letter-spacing:calc(var(--ht) / 2);line-height:1.2}
:where(main) p{text-wrap:pretty}
.ac-i{flex:none;display:block}
.ac-skip{position:absolute;left:12px;top:-60px;z-index:99;padding:10px 16px;border-radius:calc(10px*var(--tune-radius,1));background:var(--term);color:var(--onterm)}
.ac-skip:focus{top:12px}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}

/* ---------- frame: rail + page ---------- */
.ac-app{display:grid;grid-template-columns:minmax(0,1fr)}
.ac-main{min-width:0;width:100%;max-width:1168px;margin:0 auto;padding:0 var(--gut)}
.ac-rail{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:12px var(--gut);border-bottom:1px solid var(--line)}
.ac-brand{display:inline-flex;align-items:center;gap:12px;min-width:0;text-decoration:none}
.ac-mark{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:calc(10px*var(--tune-radius,1));background:var(--term);color:var(--hi);font:600 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);letter-spacing:.02em}
.ac-name{font:650 calc(16px*var(--tune-size,1))/1.2 var(--tf);letter-spacing:-.01em}
.ac-menu{display:none}
.ac-rail-end{display:flex;align-items:center;gap:20px}
.ac-rail-end .langs{font:500 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms)}
@media (max-width:599px){.ac-rail .ac-key{display:none}}
/* the rail's key is the quiet one: the page itself carries the one coloured action */
.ac-rail .ac-key{background:var(--bg);color:var(--ink);box-shadow:0 0 0 1px var(--line),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 3px 6px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 6px 12px -3px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}
.ac-rail .ac-key .ac-i{background:var(--pane);color:var(--ink)}
@media (hover:hover){.ac-rail .ac-key:hover{box-shadow:0 0 0 1px var(--line),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 2px 4px -1px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}}
.ac-rail .ac-key:active{box-shadow:0 0 0 1px var(--line)}
@media (min-width:1100px){
  .ac-app{grid-template-columns:240px minmax(0,1fr);gap:clamp(32px,3.4vw,56px);padding:16px 16px 0}
  .ac-main{padding:0 clamp(0px,1.6vw,24px) 0 0;margin:0}
  .ac-app{max-width:1536px;margin-inline:auto}
  .ac-rail{position:sticky;top:16px;align-self:start;flex-direction:column;align-items:stretch;justify-content:flex-start;height:calc(100vh - 32px);min-height:0;max-height:880px;padding:18px 14px 14px;border:1px solid var(--line);border-radius:calc(20px*var(--tune-radius,1));background:var(--pane)}
  .ac-brand{padding:0 6px}
  .ac-menu{display:block;margin-top:30px}
  .ac-menu ul{list-style:none;padding:0;display:grid;gap:4px}
  .ac-menu a{display:flex;align-items:center;gap:12px;height:42px;padding:0 12px;border-radius:calc(11px*var(--tune-radius,1));font:500 calc(15px*var(--tune-size,1))/1 var(--tf);color:var(--mute);text-decoration:none;transition:background-color .2s,color .2s}
  .ac-menu a:hover{color:var(--ink);background:color-mix(in oklab,var(--ink) 6%,transparent)}
  .ac-menu a[aria-current]{color:var(--ink);font-weight:600;background:var(--bg);box-shadow:0 0 0 1px var(--line)}
  .ac-menu a[aria-current] .ac-i{color:var(--acc)}
  .ac-rail-end{margin-top:auto;flex-direction:column;align-items:stretch;gap:14px}
  .ac-rail-end .langs{justify-content:center}
  .ac-rail .ac-key{justify-content:space-between;width:100%}
}
@media (min-width:1800px){.ac-app{max-width:1696px}.ac-main{max-width:1320px}}
/* phones and tablets: the pages as an app tab bar fixed to the bottom */
.ac-tabs{position:fixed;z-index:40;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:6px;border-radius:calc(20px*var(--tune-radius,1));background:var(--term);color:var(--termmute);box-shadow:0 10px 30px -10px rgba(0,0,0,.45)}
.ac-tabs ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.ac-tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:54px;padding:0 4px;border-radius:calc(14px*var(--tune-radius,1));font:500 calc(11.5px*var(--tune-size,1))/1.1 var(--tf);text-align:center;text-decoration:none;color:inherit}
.ac-tabs a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-tabs a[aria-current]{color:var(--onterm);background:color-mix(in oklab,var(--onterm) 12%,var(--term))}
.ac-tabs a[aria-current] .ac-i{color:var(--hi)}
@media (max-width:1099px){body{padding-bottom:calc(96px*var(--tune-space,1))}}
@media (min-width:1100px){.ac-tabs{display:none}}
@media (min-width:600px) and (max-width:1099px){.ac-tabs{left:50%;right:auto;width:480px;transform:translateX(-50%)}}

/* ---------- shared parts ---------- */
.ac-pane{background:var(--pane);border:1px solid var(--line);border-radius:var(--r)}
.ac-term{background:var(--term);color:var(--onterm);border-color:var(--term)}
.ac-bar{display:flex;align-items:center;gap:10px;min-width:0;height:40px;padding:0 16px;border-bottom:1px solid var(--line);font:500 12.5px/1 var(--mf);font-stretch:var(--ms);color:var(--mute);white-space:nowrap}
.ac-bar>:not(.ac-sq):not(.ac-status){overflow:hidden;text-overflow:ellipsis}
.ac-term .ac-bar{border-color:color-mix(in oklab,var(--onterm) 14%,var(--term));color:var(--termmute)}
.ac-sq{flex:none;width:8px;height:8px;border-radius:calc(2px*var(--tune-radius,1));background:var(--acc)}
.ac-term .ac-sq{background:var(--hi)}
figure.ac-shot{overflow:hidden}
figcaption.ac-bar{display:block;line-height:40px;overflow:hidden;text-overflow:ellipsis}
figcaption.ac-bar .ac-sq{display:inline-block;margin-right:10px;vertical-align:1px}
.ac-shot img{width:100%;height:auto;object-fit:cover}
.ac-status{display:inline-flex;align-items:center;gap:10px;height:34px;padding:0 15px 0 12px;border:1px solid var(--line);border-radius:99px;background:var(--pane);font:500 13px/1 var(--mf);font-stretch:var(--ms);color:var(--ink);white-space:nowrap}
.ac-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--hi);box-shadow:0 0 0 2px var(--term)}
.ac-key{display:inline-flex;align-items:center;justify-content:center;gap:14px;height:52px;padding:0 10px 0 22px;border:0;border-radius:calc(12px*var(--tune-radius,1));background:var(--acc);color:var(--onacc);font:600 16px/1 var(--tf);text-decoration:none;white-space:nowrap;cursor:pointer;box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 3px 6px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 6px 12px -3px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent);transition:transform .15s,box-shadow .15s}
.ac-hpane .ac-key{background:var(--hi);color:var(--term)}
.ac-hpane .ac-key .ac-i{background:color-mix(in oklab,var(--term) 14%,var(--hi))}
.ac-key .ac-i{width:32px;height:32px;padding:6px;border-radius:calc(8px*var(--tune-radius,1));background:color-mix(in oklab,var(--onacc) 16%,var(--acc))}
.ac-key-s{height:46px;padding:0 8px 0 16px;font-size:calc(15px*var(--tune-size,1))}
.ac-key-s .ac-i{width:30px;height:30px}
@media (hover:hover){.ac-key:hover{transform:translateY(1px);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 2px 4px -1px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}}
.ac-key:active{transform:translateY(3px);box-shadow:0 0 0 var(--lip)}
.ac-link{display:inline-flex;align-items:center;gap:8px;height:52px;font:600 16px/1 var(--tf);text-decoration:none;white-space:nowrap}
.ac-link span,.ac-link{text-underline-offset:6px}
@media (hover:hover){.ac-link:hover{text-decoration:underline;text-decoration-thickness:2px}.ac-link:hover .ac-i{transform:translateX(3px)}}
.ac-link .ac-i{transition:transform .2s;color:var(--acc)}
.ac-acts{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap}
.ac-lede{font-size:calc(clamp(17px,1.35vw,20px)*var(--tune-size,1));line-height:1.5;color:var(--mute);max-width:42ch}
.ac-sec{margin-top:var(--sec)}
.ac-head{display:grid;gap:14px;margin-bottom:calc(clamp(28px,3vw,40px)*var(--tune-space,1));max-width:760px}
.ac-head p{color:var(--mute);max-width:58ch}
.ac-head-c{margin-inline:auto;text-align:center;justify-items:center}
.ac-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:0 18px;border-bottom:1px solid var(--line);font:500 calc(13px*var(--tune-size,1))/1.2 var(--mf);font-stretch:var(--ms);color:var(--mute);font-variant-numeric:tabular-nums}
.ac-strip span:first-child{color:var(--ink);font-weight:650}
.ac-for{font-size:calc(15px*var(--tune-size,1));color:var(--mute)}
.ac-for span{font-weight:600;color:var(--ink)}

/* ---------- hero: the pane is the photo (stack, the reference, and console) ---------- */
/* The hero pane is the look's device at full size: a rounded pane the height of the screen beside the floating rail
   (on phones: the screen between the top bar and the tab bar), the photo filling it, graded towards the console
   colour at the bottom and the left, the headline set big over that. stack: the log floats as a small window under
   the status in the top corner (the photo's subject keeps the other side) and the key figure sits on the photo's
   lower right. console: the pane is a window with a title bar,
   the log docked along its foot like a status bar. */
.ac-hero{position:relative;padding-top:calc(clamp(28px,4.4vw,64px)*var(--tune-space,1))}
.ac-hero h1{margin-top:24px;max-width:18ch}
.ac-hero-row{display:flex;align-items:center;justify-content:space-between;gap:20px 48px;flex-wrap:wrap;margin-top:28px}
.ac-hero-stack,.ac-hero-console{padding-top:12px}
.ac-hpane{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;height:calc(100vh - 68px - 12px - 102px);height:calc(100svh - 68px - 12px - 102px);min-height:500px;max-height:900px;padding:clamp(20px,3.4vw,52px);border-radius:calc(22px*var(--tune-radius,1));overflow:hidden;background:var(--term);color:var(--onterm)}
.ac-hpic{position:absolute;inset:0;z-index:-1;margin:0}
.ac-hpic img{width:100%;height:100%;object-fit:cover}
.ac-hpic::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,color-mix(in oklab,var(--term) 94%,transparent) 0%,color-mix(in oklab,var(--term) 78%,transparent) 34%,color-mix(in oklab,var(--term) 20%,transparent) 62%,transparent 80%)}
.ac-hcopy{display:grid;justify-items:start;gap:clamp(16px,1.8vw,24px)}
.ac-hpane h1{margin:0;max-width:none;color:var(--onterm);font-size:calc(calc(clamp(49px,7.6vw,118px) * var(--hz))*var(--tune-size,1));line-height:1.04}
.ac-hpane .ac-lede{color:color-mix(in oklab,var(--onterm) 88%,var(--term));max-width:40ch}
.ac-hpane .ac-acts{margin-top:clamp(4px,.8vw,12px)}
.ac-hpane .ac-key{--lip:color-mix(in oklab,var(--acc) 50%,#000);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 3px 6px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 6px 12px -3px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent),0 0 0 1px color-mix(in oklab,var(--onterm) 22%,transparent)}
.ac-status-o{position:absolute;top:clamp(16px,2.2vw,28px);left:clamp(16px,2.2vw,28px);border-color:color-mix(in oklab,var(--onterm) 22%,transparent);background:color-mix(in oklab,var(--term) 72%,transparent);color:var(--onterm);max-width:calc(100% - 32px)}
.ac-status-o{height:auto;min-height:34px;padding-block:8px;line-height:1.3;white-space:normal}
.ac-log{width:100%}
.ac-log ul{list-style:none;padding:16px 18px 4px;display:grid;gap:11px;font:500 calc(13.5px*var(--tune-size,1))/1.3 var(--mf);font-stretch:var(--ms)}
.ac-log li{display:flex;align-items:center;gap:10px}
.ac-log li .ac-i{width:18px;height:18px}
.ac-done .ac-i{color:var(--hi)}
.ac-run{color:var(--termmute)}
.ac-prog{position:relative;height:6px;margin:12px 18px 18px;border-radius:99px;background:color-mix(in oklab,var(--onterm) 14%,var(--term));overflow:hidden}
.ac-prog i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p) * 100%);border-radius:inherit;background:var(--hi)}
.ac-hero>.ac-log,.ac-fig{margin-top:12px}
.ac-fig{display:flex;align-items:baseline;gap:14px;padding:16px 20px}
.ac-fig b{font:var(--hw) calc(calc(34px * var(--hz))*var(--tune-size,1))/1 var(--hf);font-stretch:var(--hs);letter-spacing:var(--ht);font-variant-numeric:tabular-nums}
.ac-fig span{font-size:calc(14px*var(--tune-size,1));line-height:1.35;color:var(--mute)}
@media (min-width:760px){
  .ac-hpic::after{background:linear-gradient(to top,color-mix(in oklab,var(--term) 92%,transparent) 0%,color-mix(in oklab,var(--term) 60%,transparent) 38%,transparent 72%),linear-gradient(to right,color-mix(in oklab,var(--term) 55%,transparent),transparent 62%)}
  .ac-corner{position:absolute;z-index:2;top:calc(12px + clamp(16px,2.2vw,28px) + 46px);left:clamp(16px,2.2vw,28px);width:min(330px,40%);margin:0;box-shadow:0 18px 40px -18px rgba(0,0,0,.55)}
  .ac-corner ul{padding:14px 16px 2px;gap:9px;font-size:calc(13px*var(--tune-size,1))}
  .ac-corner .ac-prog{margin:10px 16px 16px}
  .ac-fig{position:absolute;z-index:2;right:clamp(16px,2.2vw,28px);bottom:clamp(16px,2.2vw,28px);display:grid;gap:6px;min-width:170px;max-width:240px;margin:0;padding:16px 20px 18px;box-shadow:0 18px 40px -18px rgba(0,0,0,.45)}
  .ac-fig b{font-size:calc(calc(40px * var(--hz))*var(--tune-size,1))}
  .ac-fig span{max-width:22ch}
}
@media (min-width:1100px){
  .ac-hero-stack,.ac-hero-console{padding-top:0}
  .ac-hpane{height:calc(100vh - 32px);min-height:600px;max-height:880px;border-radius:calc(20px*var(--tune-radius,1))}
  .ac-corner{top:calc(clamp(16px,2.2vw,28px) + 46px)}
}
/* a short window: the headline needs the height, the log steps aside */
@media (min-width:760px) and (max-height:759px){
  .ac-corner{display:none}
}
/* console: a window with a title bar; at 1100 px and up the log is docked along its foot */
.ac-win{padding-top:0}
.ac-wbar{position:absolute;top:0;left:0;right:0;height:48px;padding:0 20px;background:color-mix(in oklab,var(--term) 86%,transparent);border-bottom:1px solid color-mix(in oklab,var(--onterm) 14%,var(--term));color:var(--termmute)}
.ac-wbar .ac-bar-t{flex:1}
.ac-wbar .ac-sq{background:var(--hi)}
.ac-status-s{height:28px;padding:0 12px 0 10px;border-color:color-mix(in oklab,var(--onterm) 18%,var(--term));background:transparent;color:var(--onterm);font-size:calc(12px*var(--tune-size,1))}
.ac-win .ac-hcopy{padding-bottom:calc(clamp(20px,3.4vw,52px)*var(--tune-space,1))}
.ac-term{background:var(--term);color:var(--onterm);border-color:color-mix(in oklab,var(--onterm) 10%,var(--term))}
@media (max-width:599px){.ac-status-s{display:none}}
@media (min-width:1100px){
  .ac-win .ac-hcopy{padding-bottom:calc(calc(64px + clamp(20px,3vw,44px))*var(--tune-space,1))}
  .ac-dock{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;align-items:center;width:auto;margin:0;height:64px;border:0;border-top:1px solid color-mix(in oklab,var(--onterm) 14%,var(--term));border-radius:0 0 calc(20px*var(--tune-radius,1)) calc(20px*var(--tune-radius,1))}
  .ac-dock .ac-bar{flex:none;height:100%;padding:0 24px;border:0;border-right:1px solid color-mix(in oklab,var(--onterm) 14%,var(--term))}
  .ac-dock ul{flex:1;min-width:0;display:flex;gap:28px;padding:0 24px;overflow:hidden}
  .ac-dock li{flex:none;white-space:nowrap}
  .ac-dock .ac-prog{flex:none;width:clamp(80px,12%,160px);margin:0 24px}
}

/* ---------- hero: board ---------- */
.ac-board{display:grid;gap:12px;margin-top:calc(clamp(36px,4.4vw,56px)*var(--tune-space,1));padding:12px;border-radius:calc(22px*var(--tune-radius,1))}
.ac-lane{display:grid;align-content:start;gap:10px;min-width:0}
.ac-lane-h{display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;border-radius:calc(10px*var(--tune-radius,1));background:var(--term);color:var(--onterm);font:500 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms)}
.ac-lane ul{list-style:none;padding:0;display:grid;gap:10px}
.ac-card{border:1px solid var(--line);border-radius:calc(12px*var(--tune-radius,1));background:var(--bg);overflow:hidden}
.ac-card a{display:grid;gap:6px;padding:16px 16px 18px;text-decoration:none}
.ac-card b{font:var(--hw) calc(calc(18px * var(--hz))*var(--tune-size,1))/1.2 var(--hf);font-stretch:var(--hs);letter-spacing:calc(var(--ht) / 2)}
.ac-card span{font-size:calc(15px*var(--tune-size,1));line-height:1.45;color:var(--mute)}
.ac-card small{justify-self:start;margin-top:6px;padding:5px 9px;border-radius:calc(7px*var(--tune-radius,1));background:var(--pane);font:600 calc(12.5px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);font-variant-numeric:tabular-nums}
.ac-card-pic img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.ac-card-pic span{display:block;padding:12px 16px 14px;font:500 calc(12.5px*var(--tune-size,1))/1.35 var(--mf);font-stretch:var(--ms)}
@media (hover:hover){.ac-card a{transition:background-color .2s}.ac-card a:hover{background:color-mix(in oklab,var(--acc) 6%,var(--bg))}}
@media (min-width:860px){.ac-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}

/* ---------- key figures ---------- */
.ac-dash{list-style:none;padding:0;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.ac-dash{gap:28px 24px}
.ac-dash li{display:grid;align-content:start;gap:10px;padding-top:20px;border-top:1px solid var(--line)}
.ac-dash b{font:var(--hw) calc(calc(clamp(36px,4.4vw,64px) * var(--hz))*var(--tune-size,1))/1 var(--hf);font-stretch:var(--hs);letter-spacing:var(--ht);font-variant-numeric:tabular-nums}
.ac-dash span{font-size:calc(15px*var(--tune-size,1));line-height:1.4;color:var(--mute)}
.ac-dash.ac-n1{grid-template-columns:minmax(0,1fr)}
.ac-dash.ac-n3 li:last-child{grid-column:1/-1}
@media (min-width:760px){.ac-dash.ac-n3{grid-template-columns:repeat(3,minmax(0,1fr))}.ac-dash.ac-n3 li:last-child{grid-column:auto}.ac-dash.ac-n4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- services: one inverted surface (the page's ink as the background), rows (reference) or a table ---------- */
/* The surface swaps the page's light and dark: plum text on a pale band on the dark palettes, white text on the
   ink colour on the light ones. Its tokens are taken on body, where they still hold the page's own values. */
body{--inv-bg:var(--ink);--inv-ink:var(--bg);--inv-mute:color-mix(in oklab,var(--bg) 74%,var(--ink));--inv-line:color-mix(in oklab,var(--bg) 18%,var(--ink))}
.ac-inv{--bg:var(--inv-bg);--ink:var(--inv-ink);--mute:var(--inv-mute);--line:var(--inv-line);--pane:var(--inv-bg);--acc:var(--inv-ink);margin-inline:calc(var(--gut) * -1);padding:calc(clamp(48px,6vw,88px)*var(--tune-space,1)) var(--gut);background:var(--bg);color:var(--ink)}
@media (min-width:760px){.ac-inv{margin-inline:0;padding-inline:clamp(28px,4.4vw,64px);border-radius:calc(20px*var(--tune-radius,1))}}
.ac-sec+.ac-inv,.ac-inv+.ac-sec{margin-top:calc(clamp(56px,7vw,104px)*var(--tune-space,1))}
.ac-rows{list-style:none;padding:0;border-top:1px solid var(--line)}
.ac-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px 16px;padding:26px 0 28px;border-bottom:1px solid var(--line)}
.ac-row-n{padding-top:.55em;font:500 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);color:var(--mute);font-variant-numeric:tabular-nums}
.ac-row h3{font-size:calc(calc(clamp(22px,2.2vw,32px) * var(--hz))*var(--tune-size,1));line-height:1.12}
.ac-row h3 a{display:inline-flex;align-items:baseline;gap:12px;text-decoration:none}
.ac-row h3 .ac-i{width:20px;height:20px;align-self:center;transition:transform .2s}
@media (hover:hover){.ac-row h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}.ac-row h3 a:hover .ac-i{transform:translateX(3px)}}
.ac-row-b,.ac-row-m{grid-column:2}
.ac-row-b{display:grid;gap:8px;color:var(--mute)}
.ac-row-m{display:flex;flex-wrap:wrap;gap:6px 18px;font:600 calc(14px*var(--tune-size,1))/1.3 var(--mf);font-stretch:var(--ms);font-variant-numeric:tabular-nums}
.ac-row-m span+span{color:var(--mute);font-weight:500}
@media (min-width:960px){
  .ac-row{grid-template-columns:48px minmax(0,6fr) minmax(0,5fr) minmax(110px,2fr);gap:24px;padding:calc(46px*var(--tune-space,1)) 0 calc(48px*var(--tune-space,1))}
  .ac-row-b,.ac-row-m{grid-column:auto}
  .ac-row-b{padding-top:.3em}
  .ac-row-m{flex-direction:column;align-items:flex-end;padding-top:.5em;text-align:right}
}
.ac-spec{width:100%;border-collapse:collapse;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.ac-spec thead th{height:44px;padding:0 22px 0 0;border-bottom:1px solid var(--line);font:500 calc(12.5px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);color:var(--mute);text-align:left}
.ac-spec tbody th,.ac-spec td{padding:24px 22px 26px 0;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
.ac-spec tbody th{font-weight:400}
.ac-spec tbody th a{display:block;font:var(--hw) calc(calc(clamp(21px,2vw,28px) * var(--hz))*var(--tune-size,1))/1.2 var(--hf);font-stretch:var(--hs);letter-spacing:calc(var(--ht) / 2);text-decoration:none}
.ac-spec tbody th span{display:block;margin-top:6px;font-size:calc(15px*var(--tune-size,1));color:var(--mute);max-width:52ch}
.ac-spec td{font:600 15px/1.4 var(--mf);font-stretch:var(--ms);white-space:nowrap;width:1%}
.ac-spec td:last-child,.ac-spec thead th:last-child{padding-right:0;text-align:right}
@media (hover:hover){.ac-spec tbody th a:hover{text-decoration:underline;text-underline-offset:5px}}
@media (max-width:699px){
  .ac-spec thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .ac-spec,.ac-spec tbody,.ac-spec tr,.ac-spec tbody th,.ac-spec td{display:block;width:auto}
  .ac-spec tr{padding:22px 0;border-bottom:1px solid var(--line)}
  .ac-spec tbody th,.ac-spec td{padding:0;border:0}
  .ac-spec td{display:flex;justify-content:space-between;margin-top:10px;white-space:normal;text-align:left}
  .ac-spec td:last-child{text-align:left}
  .ac-spec td::before{content:attr(data-k);font-weight:400;color:var(--mute)}
}

/* ---------- how we work: the log on one line, beside the title and the tools ---------- */
.ac-how{display:grid;gap:36px}
.ac-tools{margin-top:28px}
.ac-tools h3{font:500 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);letter-spacing:0;color:var(--mute)}
.ac-tools ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px 8px;margin-top:14px}
.ac-tools li{display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:calc(8px*var(--tune-radius,1));background:var(--pane);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 2px 4px -1px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent);font:500 calc(13px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms)}
.ac-graph{list-style:none;padding:0}
.ac-graph li{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:20px;padding-bottom:16px}
.ac-graph li:last-child{padding-bottom:0}
.ac-graph li:not(:last-child)::before{content:"";position:absolute;left:11px;top:44px;bottom:-14px;width:2px;border-radius:calc(2px*var(--tune-radius,1));background:var(--line)}
.ac-node{width:24px;height:24px;margin-top:16px;border-radius:50%;background:var(--bg);border:2px solid var(--acc);box-shadow:inset 0 0 0 4px var(--bg),inset 0 0 0 12px var(--acc)}
.ac-graph li:last-child .ac-node{box-shadow:inset 0 0 0 4px var(--bg)}
.ac-step{padding:16px 0 18px}
.ac-step .ac-strip{display:inline-flex;min-height:26px;margin-bottom:12px;padding:0 10px;border:0;border-radius:calc(7px*var(--tune-radius,1));background:var(--term);color:var(--hi)}
.ac-step .ac-strip span:first-child{color:inherit;font-weight:600}
.ac-step p:not(.ac-strip){margin-top:8px;color:var(--mute)}
@media (min-width:960px){.ac-how{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,80px);align-items:start}.ac-how-side{position:sticky;top:32px}}
@media (min-width:960px){.ac-inv+.ac-sec{margin-top:calc(clamp(84px,10.5vw,152px)*var(--tune-space,1))}.ac-graph li{padding-bottom:30px}.ac-step{padding:24px 0 26px}.ac-node{margin-top:24px}.ac-graph li:not(:last-child)::before{top:52px}}

/* ---------- work: the site's gallery (its own section padding), or two photo panes ---------- */
.ac-sec.ac-gal{margin-top:0}
.ac-film{display:grid;gap:4px;margin-inline:calc(var(--gut) * -1)}
.ac-film figure{position:relative;margin:0;overflow:hidden}
.ac-film img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.ac-film figcaption{position:absolute;left:0;right:0;bottom:0;padding:calc(40px*var(--tune-space,1)) var(--gut) 16px;background:linear-gradient(to top,color-mix(in oklab,var(--term) 82%,transparent),transparent);color:var(--onterm);font:500 calc(12.5px*var(--tune-size,1))/1.35 var(--mf);font-stretch:var(--ms)}
@media (min-width:760px){.ac-film{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.ac-film img{aspect-ratio:auto;min-height:clamp(360px,38vw,560px)}.ac-film figcaption{padding-inline:20px}}
@media (min-width:1100px){.ac-film{margin-inline:0}}

/* ---------- reviews: thread (reference) and one ---------- */
.ac-thread{list-style:none;padding:0;display:grid;gap:16px}
.ac-thread li{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
.ac-thread li:not(:last-child)::before{content:"";position:absolute;left:21px;top:52px;bottom:-8px;width:2px;border-radius:calc(2px*var(--tune-radius,1));background:var(--line)}
.ac-av{display:grid;place-items:center;width:44px;height:44px;border-radius:calc(12px*var(--tune-radius,1));background:var(--term);color:var(--hi);font:600 calc(14px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms)}
.ac-thread figure{min-width:0}
.ac-thread figcaption{display:flex;align-items:center;gap:10px;min-height:44px;font:600 calc(14px*var(--tune-size,1))/1.3 var(--tf)}
.ac-thread figcaption small,.ac-quote figcaption small{padding:4px 8px;border-radius:calc(6px*var(--tune-radius,1));background:var(--pane);font:500 11.5px/1 var(--mf);font-stretch:var(--ms);color:var(--mute);white-space:nowrap;flex:none}
.ac-thread blockquote{padding:4px 0 12px;font-size:calc(clamp(17px,1.4vw,19px)*var(--tune-size,1));line-height:1.55;max-width:62ch}
.ac-thread li:first-child blockquote{font:500 calc(calc(clamp(22px,2.3vw,32px) * var(--hz))*var(--tune-size,1))/1.35 var(--tf);letter-spacing:-.015em;max-width:36ch}
.ac-thread li{padding-bottom:12px}
blockquote em{font-style:normal;background:linear-gradient(transparent 62%,color-mix(in oklab,var(--hi) 55%,transparent) 0)}
.ac-quote{padding:calc(clamp(36px,5vw,72px)*var(--tune-space,1)) 0;border-block:1px solid var(--line)}
.ac-quote blockquote,.ac-quote figcaption{max-width:860px}
.ac-quote blockquote{font:500 calc(calc(clamp(26px,3.2vw,46px) * var(--hz))*var(--tune-size,1))/1.3 var(--tf);letter-spacing:-.015em;text-wrap:balance}
.ac-quote figcaption{display:flex;align-items:center;gap:14px;margin-top:28px;font-weight:600}

/* ---------- closing: prompt (reference) and keys ---------- */
.ac-prompt{display:grid;justify-items:center;gap:16px;padding:calc(clamp(40px,6vw,88px)*var(--tune-space,1)) clamp(22px,5vw,64px);border-radius:calc(24px*var(--tune-radius,1));text-align:center}
.ac-prompt h2{color:var(--onterm);max-width:20ch}
.ac-prompt p{color:var(--termmute);max-width:50ch}
.ac-pbar{display:flex;align-items:center;gap:14px;width:min(100%,560px);height:64px;margin-top:16px;padding:0 10px 0 22px;border:1px solid color-mix(in oklab,var(--onterm) 22%,var(--term));border-radius:calc(16px*var(--tune-radius,1));background:color-mix(in oklab,var(--onterm) 7%,var(--term));color:var(--onterm);font:500 calc(17px*var(--tune-size,1))/1 var(--mf);font-stretch:var(--ms);text-decoration:none;transition:border-color .2s,background-color .2s}
.ac-caret{flex:none;width:10px;height:24px;border-radius:calc(2px*var(--tune-radius,1));background:var(--hi)}
.ac-pbar-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.ac-pbar kbd{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:calc(11px*var(--tune-radius,1));background:var(--acc);color:var(--onacc);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 3px 6px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 6px 12px -3px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}
.ac-pbar kbd .ac-i{width:20px;height:20px}
@media (hover:hover){.ac-pbar:hover{border-color:var(--hi);background:color-mix(in oklab,var(--onterm) 11%,var(--term))}}
.ac-bigkeys{list-style:none;padding:0;display:grid;gap:14px}
.ac-bigkey{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:6px;align-items:center;height:100%;padding:22px 24px 24px;border:1px solid var(--line);border-radius:calc(18px*var(--tune-radius,1));background:var(--pane);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 8px 16px -4px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent);text-decoration:none;transition:transform .15s,box-shadow .15s}
.ac-bigkey .ac-i{grid-row:1/3;width:44px;height:44px;padding:11px;border-radius:calc(12px*var(--tune-radius,1));background:var(--term);color:var(--hi)}
.ac-bigkey span{font:500 calc(13px*var(--tune-size,1))/1.2 var(--mf);font-stretch:var(--ms);color:var(--mute)}
.ac-bigkey b{font:600 calc(17px*var(--tune-size,1))/1.3 var(--tf);overflow-wrap:anywhere}
.ac-bigkey-go{background:var(--acc);border-color:var(--acc);color:var(--onacc);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 8px 16px -4px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}
.ac-bigkey-go span{color:color-mix(in oklab,var(--onacc) 80%,var(--acc))}
@media (hover:hover){.ac-bigkey:hover{transform:translateY(2px);box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 2px 4px -1px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}.ac-bigkey-go:hover{box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 2px 4px -1px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 4px 8px -2px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}}
@media (min-width:860px){.ac-bigkeys{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}}

/* ---------- inner pages ---------- */
.ac-ph{padding-top:calc(clamp(28px,5vw,72px)*var(--tune-space,1));display:grid;gap:20px}
.ac-ph h1{max-width:20ch}
.ac-band{margin-top:calc(clamp(32px,4vw,56px)*var(--tune-space,1))}
.ac-band img{aspect-ratio:16/6}
@media (max-width:759px){.ac-band img{aspect-ratio:4/3}}
.ac-detail{display:grid;gap:14px}
.ac-dt{display:grid;scroll-margin-top:24px}
.ac-dt-h{padding:22px 22px 0}
.ac-dt-h h2{font-size:calc(calc(clamp(22px,2vw,28px) * var(--hz))*var(--tune-size,1))}
.ac-dt .ac-strip{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;min-height:0;margin-top:14px;padding:0;border:0}
.ac-dt .ac-strip span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:calc(7px*var(--tune-radius,1));background:var(--term);color:var(--onterm);font-weight:600}
.ac-dt .ac-strip span:first-child{color:var(--hi)}
.ac-dt-b{padding:18px 22px 24px;display:grid;gap:14px;align-content:start}
.ac-dt-b p:not(.ac-for){color:var(--ink)}
.ac-rates dl{gap:0}
.ac-rates dl div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.ac-rates dl div:last-child{border-bottom:0}
.ac-rates dd{font:600 15px/1.4 var(--mf);font-stretch:var(--ms);white-space:nowrap}
@media (min-width:860px){.ac-dt{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.ac-dt-h{padding:26px;border-right:1px solid var(--line)}.ac-dt-b{padding:26px}}
.ac-fq details{border-top:1px solid var(--line)}
.ac-fq details:first-child{border-top:0}
.ac-fq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:16px 22px;font:600 calc(17px*var(--tune-size,1))/1.35 var(--tf);cursor:pointer;list-style:none}
.ac-fq summary::-webkit-details-marker{display:none}
.ac-pm{position:relative;flex:none;width:28px;height:28px;border-radius:calc(8px*var(--tune-radius,1));background:var(--term)}
.ac-pm::before,.ac-pm::after{content:"";position:absolute;left:8px;right:8px;top:13px;height:2px;border-radius:calc(1px*var(--tune-radius,1));background:var(--hi);transition:transform .25s}
.ac-pm::after{transform:rotate(90deg)}
.ac-fq details[open] .ac-pm::after{transform:rotate(0deg)}
.ac-fq details p{padding:0 22px 22px;color:var(--mute);max-width:70ch}
.ac-fq-open{display:grid;gap:14px}
.ac-fq-open>div{padding:22px 24px 24px}
.ac-fq-open dt{font:600 calc(17px*var(--tune-size,1))/1.35 var(--tf)}
.ac-fq-open dd{margin-top:10px;color:var(--mute)}
@media (min-width:860px){.ac-fq-open{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ac-people ul{list-style:none;padding:0;display:grid;gap:14px}
.ac-people li{display:grid;align-content:start;gap:8px;padding:24px 24px 26px}
.ac-tile{display:grid;place-items:center;width:64px;height:64px;margin-bottom:12px;border-radius:calc(18px*var(--tune-radius,1));background:var(--term);color:var(--hi);font:var(--hw) calc(calc(26px * var(--hz))*var(--tune-size,1))/1 var(--hf);font-stretch:var(--hs)}
.ac-people h2,.ac-people-list h2{font-size:calc(calc(21px * var(--hz))*var(--tune-size,1));letter-spacing:calc(var(--ht) / 2)}
.ac-role{font:500 calc(13px*var(--tune-size,1))/1.3 var(--mf);font-stretch:var(--ms);color:var(--mute)}
.ac-people li>p:last-child{margin-top:6px;color:var(--mute)}
@media (min-width:760px){.ac-people .ac-n2,.ac-people .ac-n4{grid-template-columns:repeat(2,minmax(0,1fr))}.ac-people .ac-n3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ac-people-list ul{list-style:none;padding:0}
.ac-people-list li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px 20px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}
.ac-people-list li:last-child{border-bottom:0}
.ac-people-list .ac-tile{margin:0}
.ac-people-list li>p{grid-column:1/-1;color:var(--mute)}
@media (min-width:860px){.ac-people-list li{grid-template-columns:64px minmax(0,4fr) minmax(0,7fr);gap:28px}.ac-people-list li>p{grid-column:auto}}
.ac-contact{scroll-margin-top:24px}
.ac-cgrid{display:grid;gap:14px}
@media (min-width:960px){.ac-cgrid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}}
.ac-details{padding:8px 24px 24px}
.ac-dl div{padding:14px 0;border-bottom:1px solid var(--line)}
.ac-dl dt,.ac-hours h3{font:500 calc(12.5px*var(--tune-size,1))/1.2 var(--mf);font-stretch:var(--ms);letter-spacing:0;color:var(--mute)}
.ac-dl dd{margin-top:6px;font-weight:550}
.ac-dl a{text-decoration-thickness:1px;text-underline-offset:4px}
.ac-hours{margin-top:22px}
.ac-hours h3{margin-bottom:10px}
.ac-hl div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.ac-hl div:last-child{border-bottom:0}
.ac-hl dd{font:500 calc(15px*var(--tune-size,1))/1.5 var(--mf);font-stretch:var(--ms)}
.ac-form{display:grid;align-content:start}
.ac-form label{display:grid;gap:8px;padding:16px 22px;border-bottom:1px solid var(--line)}
.ac-form label span{font:600 calc(15px*var(--tune-size,1))/1.3 var(--tf)}
.ac-form input,.ac-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:calc(10px*var(--tune-radius,1));background:var(--bg);color:var(--ink);font:400 calc(16px*var(--tune-size,1))/1.4 var(--tf)}
.ac-form textarea{resize:vertical}
.ac-form input:focus-visible,.ac-form textarea:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.ac-form-end{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;padding:20px 22px 22px}
.ac-form-end p{flex:1 1 220px;font-size:calc(14px*var(--tune-size,1));color:var(--mute)}
@media (min-width:700px){.ac-form label{grid-template-columns:minmax(0,180px) minmax(0,1fr);align-items:center;gap:20px}.ac-form label.ac-form-w{align-items:start}.ac-form label.ac-form-w span{padding-top:13px}}
.ac-ccard{max-width:760px}
.ac-cc{list-style:none;padding:8px 22px}
.ac-cc li{display:grid;grid-template-columns:20px minmax(0,110px) minmax(0,1fr);gap:14px;align-items:center;min-height:56px;padding:10px 0;border-bottom:1px solid color-mix(in oklab,var(--onterm) 12%,var(--term))}
.ac-cc li:last-child{border-bottom:0}
.ac-cc .ac-i{color:var(--hi)}
.ac-cc span{font:500 calc(12.5px*var(--tune-size,1))/1.2 var(--mf);font-stretch:var(--ms);color:var(--termmute)}
.ac-cc a,.ac-cc b{font-weight:600;overflow-wrap:anywhere;text-underline-offset:4px}
.ac-ccard .ac-hours{margin:0;padding:16px 22px 22px;border-top:1px solid color-mix(in oklab,var(--onterm) 12%,var(--term))}
.ac-ccard .ac-hours h3,.ac-ccard .ac-hl dt{color:var(--termmute)}
.ac-ccard .ac-hl div{border-color:color-mix(in oklab,var(--onterm) 12%,var(--term))}
@media (max-width:519px){.ac-cc li{grid-template-columns:20px minmax(0,1fr);row-gap:4px}.ac-cc a,.ac-cc b{grid-column:2}}
.ac-reg{margin-top:28px;font:500 calc(13px*var(--tune-size,1))/1.5 var(--mf);font-stretch:var(--ms);color:var(--mute)}
/* the week chart (shared/Week.astro) */
.wk{display:grid;grid-template-columns:3em minmax(0,1fr) auto;column-gap:14px}
.wk ol{grid-column:1/-1;display:grid;grid-template-columns:subgrid;list-style:none;margin:0;padding:0}
.wk li{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center;min-height:40px;border-bottom:1px solid var(--line);font:500 calc(14px*var(--tune-size,1))/1.3 var(--mf);font-stretch:var(--ms)}
.ac-ccard .wk li{border-color:color-mix(in oklab,var(--onterm) 12%,var(--term))}
.wk-bar{position:relative;height:10px;border-radius:99px;background:color-mix(in oklab,var(--ink) 7%,transparent)}
.ac-ccard .wk-bar{background:color-mix(in oklab,var(--onterm) 10%,var(--term))}
.wk-bar i{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--acc)}
.ac-ccard .wk-bar i{background:var(--hi)}
.wk-t{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.wk li.off{color:var(--mute)}
.ac-ccard .wk li.off{color:var(--termmute)}
.wk-scale{grid-column:2;display:flex;justify-content:space-between;margin-top:8px;font:500 calc(12px*var(--tune-size,1))/1 var(--mf);color:var(--mute)}
.ac-ccard .wk-scale{color:var(--termmute)}

/* ---------- footer ---------- */
.ac-foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:var(--sec);padding:28px 0 calc(40px*var(--tune-space,1));border-top:1px solid var(--line);font:500 calc(13px*var(--tune-size,1))/1.5 var(--mf);font-stretch:var(--ms);color:var(--mute)}
.ac-foot-n{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;flex:1 1 420px}
.ac-foot-n b{color:var(--ink);font-weight:650}
.ac-foot a{text-underline-offset:4px}
.ac-legal{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.ac-foot .langs{font:inherit;margin:0}
.ac-fict{flex-basis:100%;font-size:calc(12px*var(--tune-size,1))}
/* legal pages and 404 */
.ac-wrap{max-width:780px}
.legal-page{padding:calc(clamp(40px,6vw,88px)*var(--tune-space,1)) 0 0}
.legal-page h1{margin-bottom:28px}.legal-page h2{font-size:calc(calc(24px * var(--hz))*var(--tune-size,1));margin:calc(40px*var(--tune-space,1)) 0 12px}.legal-page h3{font-size:calc(19px*var(--tune-size,1));margin:28px 0 8px}
.legal-page p,.legal-page li{margin-bottom:10px}.legal-page ul{padding-left:20px}
.legal-page table{border-collapse:collapse;margin:12px 0}.legal-page td,.legal-page th{padding:8px 16px 8px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.legal-lang,.legal-page .draft{padding:14px 18px;border:1px solid var(--line);border-radius:calc(12px*var(--tune-radius,1));background:var(--pane);margin-bottom:24px}
.nf{padding:calc(clamp(56px,9vw,128px)*var(--tune-space,1)) 0 0;max-width:720px}.nf p{margin-top:20px;font-size:calc(19px*var(--tune-size,1));color:var(--mute)}
.nf ul{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;list-style:none;padding:0;margin-top:36px}
.nf ul a:not(.btn){font-weight:600}
.nf .btn{display:inline-flex;align-items:center;height:52px;padding:0 22px;border-radius:calc(12px*var(--tune-radius,1));background:var(--acc);color:var(--onacc);font-weight:600;text-decoration:none;box-shadow:0 1px 2px color-mix(in srgb,var(--tone-sh,#000) 7%,transparent),0 2px 4px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 3px 6px -2px color-mix(in srgb,var(--tone-sh,#000) 6%,transparent),0 6px 12px -3px color-mix(in srgb,var(--tone-sh,#000) 5%,transparent)}

/* ---------- gallery (factory/sections/gallery): its --g-* tokens mapped to the look ---------- */
body{--g-max:1168px;--g-pad:0px;--g-bg:var(--bg);--g-paper:var(--bg);--g-surface:var(--pane);--g-ink:var(--ink);--g-muted:var(--mute);--g-line:var(--line);--g-accent:var(--acc);--g-fd:var(--hf);--g-ft:var(--tf);--g-radius:var(--r);--g-top:16px}
.ac-gal .g-title{font-family:var(--hf);font-stretch:var(--hs);font-weight:var(--hw);letter-spacing:var(--ht);line-height:var(--hl);font-size:calc(calc(clamp(28px,3vw,42px) * var(--hz))*var(--tune-size,1))}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:no-preference){
  /* Advanced hero moment, "the build" (the hero root has data-wow; engine/shared/wow.js adds the pointer part).
     The panes assemble like windows opening, the log lines arrive one by one, their ticks land, the progress bar
     runs to its share, the figure pane drops in last. The headline and the photo are visible from the first frame:
     the photo only settles (transform), and the headline keeps still (the library's word rise is switched off here,
     so AC does not open like every other look). Transform and opacity only; ends exactly at the still page. */
  .m-js .ac-hero .m-words .m-w>span{animation:none}
  .m-js [data-wow] .ac-hpic img{animation:ac-settle 1.4s .05s cubic-bezier(.2,.75,.2,1) backwards}
  .m-js [data-wow] .ac-corner{animation:ac-open .7s .4s cubic-bezier(.2,.8,.2,1) backwards}
  .m-js [data-wow] .ac-log li{animation:ac-line .4s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(.75s + var(--i,0) * 120ms)}
  .m-js [data-wow] .ac-log .ac-done .ac-i{animation:ac-tick .35s cubic-bezier(.3,1,.5,1) backwards;animation-delay:calc(.9s + var(--i,0) * 120ms)}
  .m-js [data-wow] .ac-prog i{transform-origin:0 50%;animation:ac-run .9s .85s cubic-bezier(.6,0,.2,1) backwards}
  .m-js [data-wow] .ac-fig{animation:ac-drop .6s 1.05s cubic-bezier(.2,.9,.25,1) backwards}
  .m-js [data-wow] .ac-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--hi);opacity:0;animation:ac-ping 1.2s .3s cubic-bezier(.2,.6,.3,1) 3}
  .ac-dot{position:relative}
  /* console: the window opens a touch, the actions follow, the docked log slides up */
  .m-js [data-wow] .ac-win{animation:ac-window .8s cubic-bezier(.2,.8,.2,1) backwards}
  .m-js [data-wow] .ac-win .ac-acts{animation:ac-line .5s .35s cubic-bezier(.2,.8,.2,1) backwards}
  .m-js [data-wow] .ac-dock{animation:ac-rise .6s .5s cubic-bezier(.2,.8,.2,1) backwards}
  /* board: each card slides in from the lane before it, as if it just moved along */
  .m-js [data-wow] .ac-card{animation:ac-move .7s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(.25s + var(--i,0) * 110ms)}
  .m-js [data-wow] .ac-lane-h{animation:ac-line .45s .1s cubic-bezier(.2,.8,.2,1) backwards}
  .m-js [data-wow] [data-depth]{transition:translate 1.1s cubic-bezier(.2,.7,.2,1)}
  .m-js [data-wow].wow-live [data-depth]{transition-duration:.6s}
  /* beyond the hero: the log line draws itself between the steps as they arrive, the prompt's caret blinks four times */
  .m-js .ac-graph li:not(:last-child)::before{transform-origin:50% 0}
  .m-js .ac-graph.m-stagger:not(.m-in) li::before{transform:scaleY(0)}
  .m-js .ac-graph.m-in li:not(:last-child)::before{animation:ac-grow .6s cubic-bezier(.6,0,.2,1) backwards;animation-delay:calc(.3s + var(--n,0) * 120ms)}
  .ac-graph li:nth-child(2){--n:1}.ac-graph li:nth-child(3){--n:2}.ac-graph li:nth-child(4){--n:3}
  .m-js .ac-caret{animation:ac-blink 1s steps(2,jump-none) 4}
}
@keyframes ac-settle{from{transform:scale(1.07)}}
@keyframes ac-rise{from{opacity:0;transform:translateY(16px)}}
@keyframes ac-open{from{opacity:0;transform:translate(-18px,26px) scale(.96)}}
@keyframes ac-line{from{opacity:0;transform:translateX(-10px)}}
@keyframes ac-tick{from{transform:scale(0)}}
@keyframes ac-run{from{transform:scaleX(0)}}
@keyframes ac-drop{from{opacity:0;transform:translateY(-18px) scale(.94)}}
@keyframes ac-ping{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
@keyframes ac-window{from{transform:translateY(14px) scale(.985)}}
@keyframes ac-move{from{opacity:0;transform:translateX(-56px)}}
@keyframes ac-grow{from{transform:scaleY(0)}}
@keyframes ac-blink{50%{opacity:0}}

/* sales step 4 (photo-slice): on phones the first photo keeps more of the picture; the main button and the phone bar stay on the first screen */
@media (max-width:760px){.ac-hpane{height:auto;min-height:max(500px,calc(70svh - 100px))}}
@media (min-width:1100px){.ac-ccard{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.ac-ccard .ac-bar{grid-column:1/-1}.ac-ccard .ac-cc{padding:8px 28px}.ac-ccard .ac-hours{border-top:0;border-left:1px solid color-mix(in oklab,var(--onterm) 12%,var(--term));padding:20px 28px 24px;height:100%}}
