/* FourToOne.ai shared styles, Direction A (Night shift). Ported from reference/prototype-v3/prototype.css.
   Palette and rules: STYLE.md. Every color and font family goes through a variable below. */

/* Archivo variable, trimmed to what Direction A uses: weights 400 to 600, widths 66% to 100%.
   The full file (weights 100 to 900, widths 62% to 125%) stays in fonts/archivo-var-latin.woff2 for Direction B. */
@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-trim.woff2") format("woff2");font-weight:400 600;font-stretch:66% 100%;font-style:normal;font-display:swap}
/* Light weights (the hero headline's second sentence) come from the full variable file; it loads only where a weight under 400 is used */
@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-latin.woff2") format("woff2");font-weight:100 399;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../fonts/jetbrainsmono-latin.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap} /* taste-skill-ignore: STYLE.md allows JetBrains Mono for figures */

:root{
  /* shared tokens */
  --ink:#0f1012; --ink-2:#5d6067; --amber:#d69a2d; --red:#c7372c; --gray:#dfe1e6; --navy:#0E2641; --approved:#0E2641; --teal:#08A299; --white:#fff;
  /* Night shift grounds and text */
  --g0:#06142a; --g1:#081a33; --g-close:#f3f5f7;
  --g-hero:#061023; --g-hero-0:rgba(6,16,35,0); /* the hero video's own navy */
  --nav-bg:rgba(6,16,35,.7); --nav-line:rgba(255,255,255,.07); --menu-bg:rgba(6,16,35,.96);
  --bezel:#11284a; --bezel-edge:rgba(255,255,255,.12);
  --on-dark:#f3f5f7; --on-dark-2:#9fb0c5; --on-dark-3:#cfd7e2; --on-dark-cap:#e8edf4; --on-dark-mute:#7f93ad;
  --hot:#E0A43A; --word-dim:#25395a;
  --line-dark:#132a4c; --line-light:#d9dbe0; --line-dark-2:#1d3a63; --line-btn:#34507a; --panel:#11284a; --stream-panel:#0b2242;
  --legend-gray:#9aa0a8; --line-light-draw:rgba(15,16,18,.22); --backdrop:rgba(5,10,20,.82); --shadow:rgba(0,0,0,.7); --frame-edge:rgba(255,255,255,.1);
  /* color field fallback blobs */
  --bl-teal:#08A299; --bl-blue:#1f5aa6; --bl-deep:#123a6e; --bl-amber:#d69a2d; --bl-red:#c7372c;
  /* type */
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-text:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
  --bar:0px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-padding-top:var(--bar);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--g0);color:var(--on-dark);font-family:var(--f-text);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
::selection{background:var(--amber);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p{margin:0}
h1,h2{text-wrap:balance}
p{text-wrap:pretty}
.wrap{max-width:1328px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
@media (max-width:600px){.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums} /* taste-skill-ignore: numbers only */
.cap{font-size:13px;color:var(--on-dark-mute)}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border:0;border-radius:8px;padding:15px 22px;font-weight:600;font-size:16px;line-height:1}
section h2{font-family:var(--f-display);font-weight:400;font-size:clamp(34px,4.4vw,64px);line-height:1;letter-spacing:-.035em;color:var(--white)}

/* Nav: a thin fixed bar on blurred navy, so "Book a briefing" stays reachable through the pinned pile */
.nav{position:fixed;top:0;left:0;right:0;z-index:45;background:var(--nav-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--nav-line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:60px}
.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:19px;text-decoration:none;color:var(--white)}
.brand img,.brand .mark{height:30px;width:auto;overflow:visible}
.nav .links{margin-left:auto;display:flex;align-items:center;gap:24px;font-size:15px;font-weight:500;color:var(--on-dark)}
.nav .links a:not(.btn){text-decoration:none;white-space:nowrap}
.nav .links a:not(.btn):hover{text-decoration:underline}
.nav .links a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:2px}
.soon{color:var(--on-dark-mute)} /* a page not built yet, shown as plain text */
/* Nav logo turn: the teal slash makes one full turn around its own center on hover or keyboard focus.
   Mouse only (never on touch), and off for reduced motion. */
.brand .slash{transform-box:fill-box;transform-origin:center}
@keyframes turn{to{transform:rotate(360deg)}}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .nav .brand:hover .slash,.nav .brand:focus-visible .slash{animation:turn .6s ease-in-out}
}
.btn-nav{background:transparent;color:var(--white);border:1px solid var(--line-btn);padding:9px 14px;font-size:15px;font-weight:500}
.menu{display:none;align-items:center;gap:8px;background:transparent;border:0;color:var(--white);font-size:15px;font-weight:500;padding:10px 0 10px 4px}
.menu-bars,.menu-bars::before{display:block;width:16px;height:1.5px;background:currentColor;transition:transform .3s var(--ease)}
.menu-bars{position:relative;transform:translateY(-3px)}
.menu-bars::before{content:"";position:absolute;left:0;top:6px}
.nav.open .menu-bars{transform:translateY(0) rotate(45deg)}
.nav.open .menu-bars::before{transform:translateY(-6px) rotate(-90deg)}
/* Below 1120px the seven links don't fit: logo, Book a briefing and a menu button that opens the links full screen */
@media (max-width:1120px){
  .nav .wrap{gap:16px}
  .nav .btn-nav{margin-left:auto}
  .menu{display:inline-flex}
  .nav .links{display:none;position:fixed;top:var(--bar,60px);left:0;right:0;bottom:0;margin:0;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto;overscroll-behavior:contain;
    padding:12px max(16px,env(safe-area-inset-left,0px)) max(32px,env(safe-area-inset-bottom,0px));background:var(--g0)}
  .nav.open .links{display:flex}
  .nav.open{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--g0)} /* a blurred bar would trap the fixed menu inside it */
  .nav .links a:not(.btn){padding:18px 0;font-family:var(--f-display);font-size:clamp(28px,7vw,40px);line-height:1.05;letter-spacing:-.025em;border-top:1px solid var(--nav-line)}
  .nav .links a:not(.btn):first-child{border-top:0}
  .menu-open,.menu-open body{overflow:hidden}
}
@media (max-width:420px){.nav .wrap{height:56px}.brand{font-size:17px;gap:10px}.brand img,.brand .mark{height:26px}.btn-nav{padding:8px 11px;font-size:14px}}

/* Color field */
.bloom{position:absolute;inset:-12%;filter:blur(80px);pointer-events:none;z-index:0;transform:translate(var(--mx,0px),var(--my,0px));transition:transform 1.2s var(--ease)}
.bloom b{position:absolute;border-radius:42% 58% 55% 45%;animation:drift 14s ease-in-out infinite alternate,morph 9s ease-in-out infinite alternate}
.bloom b:nth-child(2){animation-duration:17s,11s;animation-delay:-5s,-2s}
.bloom b:nth-child(3){animation-duration:20s,13s;animation-delay:-9s,-6s}
.bloom b:nth-child(4){animation-duration:12s,8s;animation-delay:-3s,-4s}
@keyframes drift{0%{transform:translate(-10%,6%) scale(.92)}50%{transform:translate(14%,-12%) scale(1.18)}100%{transform:translate(-4%,14%) scale(1)}}
@keyframes morph{0%{border-radius:42% 58% 55% 45%}100%{border-radius:60% 40% 38% 62%}}
canvas.ribbons{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.mesh{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block}
.has-mesh > .bloom{display:none}

/* Hero entrance */
.rise{display:inline-block;animation:rise .9s var(--ease) both}
@keyframes rise{from{transform:translateY(28px);opacity:.15}to{transform:none;opacity:1}}
.mw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.mi{display:inline-block;animation:up 1.05s cubic-bezier(.16,.84,.24,1) both;animation-delay:var(--d)}
@keyframes up{from{transform:translateY(108%)}to{transform:none}}

/* 1. Hero */
.hero{position:relative;overflow:hidden;background:var(--g-hero);min-height:min(880px,100vh);
  /* Content capped at 1280px and centered. The headline column is 11 headline-widths of 1em (Prompt 12d: the longer
     two-sentence headline), which keeps it to 4 lines; the video takes everything to its right, out to the screen edge. */
  --h1:clamp(44px,5vw,76px); --cw:min(1280px, 100% - 48px); --side:calc((100% - var(--cw)) / 2); --copy:calc(var(--h1) * 11);
  --tip:clamp(48px,6vw,140px)} /* gap from the headline column to the video's white tip */
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:min(30%,240px);z-index:1;pointer-events:none;
  background:linear-gradient(to bottom,var(--g-hero-0),var(--g0))} /* no seam into the statement */
/* The video box runs from the headline column's right edge to the screen's right edge, full hero height.
   The frame's white tip sits 36% across and 49% down. The video covers the box and is anchored on that tip,
   so the tip always lands --tip to the right of the headline column, at any width. Left and bottom edges feather out. */
.hero-video{position:absolute;top:0;bottom:0;right:0;left:calc(var(--side) + var(--copy));z-index:0;overflow:hidden;container-type:size;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 calc(var(--tip) * .75)),linear-gradient(to bottom,#000 62%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 calc(var(--tip) * .75)),linear-gradient(to bottom,#000 62%,transparent 100%);
  mask-composite:intersect}
.hero-video video{--W:max(177.78cqh, (100cqw - var(--tip)) / .64);position:absolute;top:51%;left:calc(var(--tip) - var(--W) * .36);width:var(--W);height:calc(var(--W) * .5625);transform:translateY(-50%);object-fit:cover;display:block;background:var(--g-hero)}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(104px,14vh,150px) 64px;display:grid;gap:28px;min-height:inherit;align-content:center}
@media (min-width:861px){.hero .wrap{grid-template-columns:minmax(0,var(--copy))}}
.hero h1{font-family:var(--f-display);font-weight:400;font-size:var(--h1);line-height:.93;letter-spacing:-.045em;color:var(--white)}
/* The second sentence sits on its own line, lighter, with the same word-by-word entrance */
.hero h1 .h1-2{display:block;font-weight:250;margin-top:.06em}
.hero .lede{font-size:clamp(17px,1.5vw,20px);max-width:62ch;color:var(--on-dark-2)}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}
.btn-main{background:var(--white);color:var(--g0)}
.btn-ghost{background:transparent;color:var(--white);padding-inline:0;font-weight:500}
.hero .under{margin-top:18px;font-size:14px;color:var(--on-dark-2)}
.hero .under a{color:var(--on-dark)}

/* 1b. What we do: four offerings in one consistent row (2 by 2 on tablets, stacked on phones). Quiet reveal only. */
/* 1c. Proof row: plain facts under the hero, one line on desktop, stacked on phones. No items, no row. */
.proof{background:var(--g0)}
.proof ul{list-style:none;margin:0;padding-inline:0;display:flex;flex-wrap:wrap;gap:10px 0;padding-block:22px;font-size:15px;color:var(--on-dark-2);border-bottom:1px solid var(--line-dark-2)}
.proof li + li{margin-left:28px;padding-left:28px;border-left:1px solid var(--line-dark-2)}
.proof:not(:has(li)){display:none}
@media (max-width:600px){
  .proof ul{flex-direction:column;gap:8px;padding-block:20px}
  .proof li + li{margin-left:0;padding-left:0;border-left:0}
}
.offer{background:var(--g0);padding-block:clamp(88px,9vw,128px)}
.offer h2{margin-bottom:56px}
.offer-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 32px}
.offer-item{display:grid;align-content:start;gap:14px;padding-top:24px;border-top:1px solid var(--line-dark-2)}
.offer-item h3{font-family:var(--f-display);font-weight:400;font-size:clamp(24px,2.1vw,32px);line-height:1.05;letter-spacing:-.025em;color:var(--white)}
.offer-item p{color:var(--on-dark-2);max-width:34ch}
.offer-item .inc{font-size:15px;color:var(--on-dark-mute)}
.offer-item .inc span{color:var(--on-dark)}
@media (max-width:1100px){.offer-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.offer-row{grid-template-columns:1fr;gap:32px}}

/* Four streams in, one out: a short band above the work table, text left and the animation right */
.streams-band{background:var(--g0);padding-block:clamp(72px,8vw,112px)}
.streams-band .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center}
.streams-copy{display:grid;gap:20px}
.streams-copy p{color:var(--on-dark-2);max-width:38ch}
.streams-copy .small{font-size:15px;color:var(--on-dark-mute)}
.streams-band canvas.streams{display:block;width:100%;height:clamp(300px,28vw,400px)}

.sq{width:.3em;height:.3em;border-radius:3px;display:inline-block;flex:none}
.sq.a{background:var(--amber)}.sq.r{background:var(--red)}.sq.k{background:var(--on-dark)}

/* 3. Statement: words light up and widen as you scroll */
.statement{position:relative;padding-block:clamp(110px,16vh,180px);background:var(--g0);overflow:hidden}
.statement .wrap{position:relative;z-index:1}
.statement p{font-family:var(--f-display);font-weight:400;font-size:clamp(36px,5.4vw,84px);line-height:1.02;letter-spacing:-.04em;max-width:15em;color:var(--word-dim)}
.statement .w{font-stretch:66%;transition:color .35s,font-stretch .8s var(--ease)}
.statement .w.on{color:var(--white);font-stretch:100%}
.statement .w.on.hot-word{color:var(--hot)}

/* 4. The pile, pinned (sticky, driven by scroll position in site.js) */
.scene{position:relative;height:200vh;background:var(--g1)}
.scene .stick{position:sticky;top:var(--bar);height:calc(100vh - var(--bar));display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center}
.scene canvas{width:100%;height:min(68vh,620px);display:block}
.steps{position:relative;min-height:15em;list-style:none;margin:0;padding:0}
.step{position:absolute;inset:0 0 auto 0;transition:opacity .45s ease,transform .45s ease;opacity:0;transform:translateY(14px)}
.step.on{opacity:1;transform:none}
.step h3{font-family:var(--f-display);font-weight:400;font-size:clamp(30px,3.6vw,52px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
.step p{margin-top:16px;font-size:18px;max-width:34ch;color:var(--on-dark-2)}
.counters{display:flex;gap:28px;margin-top:28px;flex-wrap:wrap}
.counters div{display:grid;gap:2px}
.counters .num{font-size:28px;letter-spacing:-.02em}
.counters span:last-child{font-size:13px;color:var(--on-dark-2)}
.progress{display:flex;gap:6px;margin-bottom:28px}
.progress i{height:3px;width:36px;border-radius:2px;transition:background .3s}
.audit{margin-top:24px;display:grid;gap:6px;font-size:13.5px;min-height:5em;color:var(--on-dark-3)}
.audit div{display:flex;gap:12px;transition:opacity .4s}
.audit .num{color:var(--on-dark-mute)}
.scene .cap{margin-top:20px}

/* 5. The work we take on */
.work-band{background:var(--g1);padding-block:120px 136px}
.work-band h2{max-width:14em;margin-bottom:24px}
.work-lede{font-size:clamp(18px,1.5vw,21px);line-height:1.45;max-width:40em;margin-bottom:56px;color:var(--ink-2)}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;vertical-align:top;padding:22px 32px 22px 0;border-top:1px solid var(--line-dark-2)}
th{font-weight:500;font-size:14px;color:var(--on-dark-2);border-top:0;padding-top:0}
th .sq{font-size:14px;width:10px;height:10px;border-radius:2px;margin-right:10px;vertical-align:0}
.work td{color:var(--on-dark-2)}
.nw{white-space:nowrap}
.work td:first-child{width:30%;font-family:var(--f-display);font-size:clamp(20px,1.7vw,26px);line-height:1.15;letter-spacing:-.02em;color:var(--white)}
.work .ex{display:block;margin-top:8px;font-family:var(--f-text);font-size:14.5px;line-height:1.45;letter-spacing:0;color:var(--ink-2);max-width:30ch}
.work td:nth-child(2){width:42%}
.work td:nth-child(3){color:var(--on-dark)}
.work tbody[hidden]{display:none}
.work-more{margin-top:28px;appearance:none;background:none;border:1px solid var(--line-light);border-radius:8px;padding:12px 18px;font-weight:600;color:var(--ink);transition:border-color .3s}
@media (hover:hover){.work-more:hover{border-color:var(--ink)}}
.work-more[hidden]{display:none}
.afterlines{display:grid;gap:14px;margin-top:48px}
.afterline{font-size:clamp(19px,1.6vw,23px);line-height:1.4;max-width:36em;color:var(--on-dark)}
.light .afterline.buy{color:var(--ink-2)}

/* 2b. Samples from our demo set: one large, stable screen and labeled tabs (js/showcase.js) */
.showcase{position:relative;overflow:hidden;padding-block:clamp(96px,9vw,136px);background:var(--g0)}
.showcase .bloom b:nth-child(1){width:40vw;height:40vw;left:40%;top:10%;background:var(--bl-blue);opacity:.38}
.showcase .bloom b:nth-child(2){width:30vw;height:30vw;left:58%;top:34%;background:var(--bl-teal);opacity:.22}
.showcase .bloom b:nth-child(3),.showcase .bloom b:nth-child(4){display:none}
.showcase .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:16px clamp(40px,4.5vw,72px);align-items:start}
.sc-head{grid-row:span 2;display:grid;gap:14px;align-content:start}
.sc-head > p{color:var(--on-dark-2);max-width:32ch}
.sc-tabs{display:grid;margin-top:28px;border-top:1px solid var(--line-dark-2)}
.sc-tabs button{position:relative;appearance:none;background:none;border:0;border-bottom:1px solid var(--line-dark-2);border-radius:0;padding:16px 0 16px 20px;text-align:left;
  font-family:var(--f-display);font-size:clamp(19px,1.5vw,23px);line-height:1.15;letter-spacing:-.02em;color:var(--on-dark-2);transition:color .3s}
/* The chosen tab: white text and a white edge that draws in */
.sc-tabs button::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;background:var(--white);transform:scaleY(0);transition:transform .45s var(--ease)}
.sc-tabs button[aria-selected="true"]{color:var(--white)}
.sc-tabs button[aria-selected="true"]::before{transform:none}
@media (hover:hover){.sc-tabs button:hover{color:var(--on-dark)}}
.sc-stage{display:grid}
.sc-panel{grid-area:1/1;margin:0;transition:opacity .45s var(--ease),visibility .45s}
/* Unchosen screens stay in place (so the height never jumps) but are invisible and out of the reading order */
.sc-panel[hidden]{display:block;opacity:0;visibility:hidden}
.sc-panel .shot{display:block;width:100%;padding:8px;border-radius:16px;border:1px solid var(--bezel-edge);background:var(--bezel);box-shadow:0 40px 90px -30px var(--shadow);cursor:zoom-in}
.sc-panel .crop{border-radius:10px}
.sc-panel figcaption{margin-top:20px;font-size:18px;color:var(--on-dark-cap);max-width:40em}
.sc-cap{grid-column:2}
/* A crop window onto the full-size screen: --ar is the window's shape, --cw/--cx/--cy place the screen inside it */
.crop{display:block;position:relative;overflow:hidden;aspect-ratio:var(--ar,16/10);background:var(--white)}
.crop img{position:absolute;left:var(--cx,0);top:var(--cy,0);width:var(--cw,100%);max-width:none;height:auto}

/* Lightbox */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;overflow:visible;color:var(--on-dark)}
dialog.lb::backdrop{background:var(--backdrop)}
dialog.lb .crop{width:min(1100px,94vw,calc(78vh * var(--ar)));border-radius:12px;box-shadow:0 40px 90px -30px var(--shadow)}
dialog.lb p{color:var(--on-dark);margin-top:14px;font-size:16px;max-width:60ch}
dialog.lb p small{display:block;color:var(--on-dark-2);font-size:13px;margin-top:2px}
dialog.lb button{position:absolute;top:-44px;right:0;background:var(--on-dark);color:var(--ink);border:0;border-radius:8px;padding:8px 14px;font-weight:600}

/* 7. What it won't do: the request plays itself, then the table */
.ask-band{position:relative;overflow:hidden;padding-block:140px;background:var(--g1)}
.ask-band .bloom b:nth-child(1){width:30vw;height:30vw;left:60%;top:10%;background:var(--bl-red);opacity:.14}
.ask-band .bloom b:nth-child(2){width:30vw;height:30vw;left:75%;top:30%;background:var(--bl-teal);opacity:.16}
.ask-band .bloom b:nth-child(3),.ask-band .bloom b:nth-child(4){display:none}
.ask-band .wrap{position:relative;z-index:1}
.ask{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:56px;align-items:center}
.ask-head{grid-column:1/-1;display:grid;gap:18px;margin-bottom:-8px}
.ask-lede{font-size:clamp(19px,1.6vw,23px);line-height:1.4;max-width:30em;color:var(--on-dark-2)}
.ask .card-slot{position:relative;min-height:540px}
.ask .request{border-radius:14px;padding:16px 18px;font-size:17px;max-width:30ch;min-height:3.4em;position:relative;z-index:1;background:var(--panel);color:var(--on-dark-cap);border:1px solid var(--line-dark-2)}
.ask .request .caret{display:inline-block;width:2px;height:1.1em;vertical-align:-3px;margin-left:2px;background:var(--on-dark-cap);animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.ask .checking{margin-top:12px;font-size:13px;display:inline-flex;gap:8px;align-items:center;opacity:0;transition:opacity .3s;color:var(--on-dark-2)}
.ask .checking i{width:8px;height:8px;border-radius:50%;background:var(--hot);animation:pulse 1s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.ask.s2 .checking{opacity:1}
.ask .refusal{position:absolute;right:0;bottom:0;width:min(520px,100%);border-radius:14px;overflow:hidden;transform:translateY(30px) scale(.95) rotate(-1.5deg);opacity:0;transition:transform .6s var(--ease),opacity .4s;box-shadow:0 40px 90px -30px var(--shadow)}
.ask.s3 .refusal{opacity:1;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.ask.s3 .checking{opacity:0}
.ask .did{margin-top:24px;font-size:18px;max-width:36ch;opacity:0;transition:opacity .4s .3s;color:var(--on-dark-cap)}
.ask.s3 .did{opacity:1}
/* Replaying: the finished card and line stay on screen, dimmed, while the request types over them */
.ask.run .refusal{opacity:.4;transform:translateY(16px) scale(.97)}
.ask.run .did{opacity:.4;transition-delay:0s}
.ask.run.s2 .checking{opacity:1}
.ask .btn{background:transparent;color:var(--white);border:1px solid var(--line-btn);margin-top:28px;padding:12px 16px;font-weight:500}
.ask .cap{margin-top:14px;text-align:right}
.refuse{margin-top:112px}
.refuse td{color:var(--on-dark-2)}
.refuse td:first-child{width:42%;color:var(--white);font-size:clamp(18px,1.4vw,21px);line-height:1.35}

/* 8. How an engagement runs: three stages down a line, each with its demo card beside it
   (text left and card right, then swapped, on desktop; stacked on phones) */
.stages{background:var(--g0);padding-block:136px}
.stages h2{margin-bottom:72px}
.stages ol{list-style:none;margin:0;padding:0 0 0 40px;display:grid;gap:clamp(72px,8vw,128px);position:relative}
.stages ol::before{content:"";position:absolute;left:4px;top:0;bottom:0;width:1px;background:var(--on-dark-mute)}
.stages li{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,88px);align-items:center}
.stages li:nth-child(even){grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.stages li:nth-child(even) .st-text{order:2}
.stages li::before{content:"";position:absolute;left:-40px;top:0;width:9px;height:9px;border-radius:2px;background:var(--teal)}
.stages .n{display:block;font-family:var(--f-display);font-stretch:70%;font-size:clamp(56px,6vw,96px);line-height:.9;letter-spacing:-.04em;color:var(--white);margin-bottom:28px}
.stages h3{font-family:var(--f-display);font-weight:400;font-size:clamp(26px,2.4vw,36px);line-height:1.05;letter-spacing:-.025em;color:var(--white)}
.stages .meta{margin:10px 0 16px;font-weight:600;color:var(--hot)}
.stages li p:last-child{color:var(--on-dark-2);max-width:34ch}
/* One line after the three steps, then the section's one sample label */
.stages-after{margin-top:clamp(72px,8vw,128px);font-size:clamp(19px,1.6vw,23px);line-height:1.4;max-width:36em;color:var(--on-dark)}
.stages-cap{margin-top:20px}

/* 9. Where it runs and who decides: audit-log lines */
.runs{background:var(--g1);padding-block:136px}
.runs h2{max-width:16em;margin-bottom:56px}
.runs .log{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark-2)}
.runs .log li{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line-dark-2)}
.runs .log .num{font-size:14px;color:var(--on-dark-mute)}
.runs .log p{font-size:clamp(19px,1.7vw,24px);line-height:1.35;letter-spacing:-.01em;color:var(--on-dark);max-width:44em}

/* 10. Who we work with: one editorial list, the same row style as the work table (name, what you get first, a quiet link) */
.aud-band{background:var(--g0);padding-block:136px}
.aud-band h2{margin-bottom:24px}
.aud-lede{font-size:clamp(18px,1.5vw,21px);line-height:1.45;max-width:36em;margin-bottom:56px;color:var(--on-dark-2)}
.aud{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark-2)}
.aud li{position:relative;display:grid;grid-template-columns:minmax(0,30%) minmax(0,1fr) minmax(0,auto);gap:24px 32px;align-items:baseline;padding:28px 0 28px 21px;border-bottom:1px solid var(--line-dark-2)}
.aud li::before{content:"";position:absolute;left:0;top:-1px;bottom:-1px;width:2px;background:var(--amber);transform:scaleY(0);transform-origin:50% 0;transition:transform .35s var(--ease)}
.aud h3{font-family:var(--f-display);font-weight:400;font-size:clamp(20px,1.7vw,26px);line-height:1.15;letter-spacing:-.02em;color:var(--white)}
.aud p{color:var(--on-dark-2);max-width:44ch}
.aud a{justify-self:end;display:inline-flex;gap:8px;align-items:baseline;font-size:15px;font-weight:500;color:var(--on-dark);text-decoration:none;white-space:nowrap}
.aud a:hover{text-decoration:underline}
.aud .arr{display:inline-block;transition:transform .35s var(--ease)}
.aud-note{margin-top:28px;max-width:44em;color:var(--on-dark-2)}
.aud-note + .aud-note{margin-top:12px}
.aud-note a{color:var(--on-dark);font-weight:500}
@media (hover:hover) and (pointer:fine){
  .aud li:hover::before{transform:scaleY(1)}
  .aud li:hover .arr{transform:translateX(4px)}
}

/* 11. Who we are */
.who{background:var(--g1);padding-block:136px}
.who h2{margin-bottom:40px}
.who p{font-size:clamp(20px,1.9vw,28px);line-height:1.4;letter-spacing:-.01em;max-width:36em;color:var(--on-dark)}

/* 11b. FAQ: six questions, one open at a time */
.faq{background:var(--g0);padding-block:136px}
.faq .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:40px 64px;align-items:start}
.faq h2{max-width:8em}.faq-list{border-top:1px solid var(--line-dark-2)}
.faq details{border-bottom:1px solid var(--line-dark-2)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary h3{font-family:var(--f-display);font-weight:400;font-size:clamp(20px,1.7vw,26px);line-height:1.2;letter-spacing:-.02em;color:var(--white)}
.faq summary:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}
.faq .pm{position:relative;flex:0 0 14px;height:14px}
.faq .pm::before,.faq .pm::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1.5px;background:var(--on-dark);transition:transform .35s var(--ease)}
.faq .pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0deg)}
.faq-a p{padding:0 48px 28px 0;max-width:40em;font-size:18px;line-height:1.5;color:var(--on-dark-2)}
/* An opening answer fades and rises into place (a height glide via ::details-content stalled Chrome's rendering) */
@keyframes faq-in{from{opacity:0;transform:translateY(-8px)}}
.faq details[open] .faq-a{animation:faq-in .45s var(--ease)}
@media (max-width:860px){
  .faq{padding-block:88px}
  .faq .wrap{grid-template-columns:1fr}
  .faq-a p{padding-right:0;font-size:16.5px}
}
@media (prefers-reduced-motion:reduce){
  .faq .pm::before,.faq .pm::after{transition:none}
  .faq details[open] .faq-a{animation:none}
}

/* 12. Closing band: light, opens to full width as you arrive */
.close{position:relative;overflow:hidden;padding-block:140px 120px;background:var(--g-close);color:var(--ink);clip-path:inset(0 var(--cx,0px) round var(--cr,0px))}
.close .wrap{position:relative;z-index:1}
.close .bloom b:nth-child(1){width:40vw;height:40vw;left:55%;top:0%;background:var(--bl-teal);opacity:.18}
.close .bloom b:nth-child(2){width:30vw;height:30vw;left:20%;top:50%;background:var(--bl-amber);opacity:.15}
.close .bloom b:nth-child(3),.close .bloom b:nth-child(4){display:none}
/* Left edge of the drawn mark lines up with the headline: the 4 starts 15 units into the 376-unit viewBox */
.close-mark{--mw:280px;width:var(--mw);margin:0 0 64px calc(var(--mw) * -15 / 376)}
.close-mark svg,.close-mark img{display:block;width:100%;height:auto;overflow:visible}
@media (max-width:860px){.close-mark{--mw:180px;margin-bottom:44px}}
.close h2{font-family:var(--f-display);font-weight:400;font-size:clamp(44px,7vw,112px);line-height:.94;letter-spacing:-.045em;max-width:10em;color:var(--ink)}
.close .lead{margin-top:28px;font-size:clamp(18px,1.6vw,22px);line-height:1.4;max-width:32em;color:var(--ink-2)}
.close-act{display:flex;flex-wrap:wrap;gap:32px 64px;align-items:flex-start;margin-top:40px}
.close .row{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:40px}
.close-act .row{margin-top:0}
/* What you get from the 30 minutes: beside the button, a short ruled list */
.close .get{padding-left:32px;border-left:1px solid var(--line-light);font-size:16px;color:var(--ink-2)}
.close .get ul{list-style:none;margin:8px 0 0;padding:0}
.close .get li{padding:8px 0;color:var(--ink);border-top:1px solid var(--line-light)}
.close .get li:first-child{border-top:0}
@media (max-width:860px){.close .get{padding-left:0;border-left:0;width:100%}}
.close .btn{background:var(--g0);color:var(--white)}
.close .mail{color:var(--ink);text-decoration:none}
.close .mail:hover{text-decoration:underline}
.close canvas.ledger{display:block;width:100%;height:120px;margin-top:72px}
.close .legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;margin-top:12px;color:var(--ink-2)}
.close .legend span{display:inline-flex;gap:7px;align-items:center}
.close .legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
.lg-g{background:var(--legend-gray)}.lg-a{background:var(--amber)}.lg-r{background:var(--red)}.lg-k{background:var(--approved)}
.btn-main,.close .btn{transition:transform .35s var(--ease)}
/* Briefing request form (js/contact.js): two columns of plain ruled fields on the light ground, one on phones */
.close{color-scheme:light}
.brief{flex:1 1 560px;max-width:720px}
.brief-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}
.brief [hidden]{display:none!important}
.brief .wide{grid-column:1/-1}
.brief .fld label{display:block;font-size:14px;font-weight:500;color:var(--ink-2);margin-bottom:6px}
.brief .opt{font-weight:400}
.brief input,.brief select,.brief textarea{display:block;width:100%;font:inherit;font-size:17px;color:var(--ink);background:var(--white);border:1px solid var(--line-light);border-radius:8px;padding:12px 14px;line-height:1.3}
.brief textarea{resize:vertical;min-height:4.4em}
.brief input:focus-visible,.brief select:focus-visible,.brief textarea:focus-visible{outline:2px solid var(--teal);outline-offset:1px;border-color:transparent}
.brief [aria-invalid="true"]{border-color:var(--red)}
.brief .err{min-height:0;margin-top:6px;font-size:14px;color:var(--red)}
.brief .err:empty{display:none}
.brief .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.brief .send{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-top:4px}
.brief .send p,.brief .form-fail{font-size:16px;color:var(--ink-2)}
.brief .form-fail{color:var(--red)}
.brief .btn[disabled]{opacity:.6;cursor:progress}
.brief-done:focus{outline:none}
.brief-done .thanks{font-size:clamp(20px,1.8vw,26px);line-height:1.35;color:var(--ink);max-width:24em}
.brief-done .pick{margin-top:12px;color:var(--ink-2)}
.brief-done iframe{display:block;width:100%;height:640px;border:0;margin-top:20px;border-radius:12px;background:var(--white)}
@media (max-width:860px){.brief{flex-basis:100%}.brief-form{grid-template-columns:1fr;gap:16px}}

/* Inner pages (page-template.html): a shorter hero, plain bands, the system/team split and a demo card */
.page-hero{position:relative;background:var(--g-hero);padding-block:clamp(150px,20vh,220px) clamp(88px,10vw,136px)}
.page-hero h1{font-family:var(--f-display);font-weight:400;font-size:clamp(44px,6vw,92px);line-height:.95;letter-spacing:-.045em;max-width:12em;color:var(--white)}
.page-hero .lede{margin-top:28px;font-size:clamp(18px,1.6vw,22px);line-height:1.45;max-width:36em;color:var(--on-dark-2)}
.band{background:var(--g1);padding-block:clamp(88px,9vw,136px)}
.band h2{max-width:16em}
.band-text p{margin-top:28px;font-size:clamp(19px,1.7vw,24px);line-height:1.4;max-width:36em;color:var(--on-dark)}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 64px;margin-top:56px;border-top:1px solid var(--line-light)}
.split > div{padding-top:28px}
.split h3{display:flex;gap:10px;align-items:center;font-size:14px;font-weight:500;color:var(--ink-2)}
.split h3 .sq{width:10px;height:10px;border-radius:2px}
.split p{margin-top:14px;font-size:clamp(19px,1.6vw,23px);line-height:1.4;max-width:30em;color:var(--ink)}
.demo-band{background:var(--g0)}
.demo{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.demo-text p{margin-top:24px;font-size:18px;max-width:34ch;color:var(--on-dark-2)}
.demo-card{margin:0}
.demo-card .frame{padding:6px;border-radius:16px;border:1px solid var(--bezel-edge);background:var(--bezel);box-shadow:0 40px 90px -30px var(--shadow)}
.demo-card img{border-radius:10px}
.demo-card figcaption{margin-top:14px;font-size:15px;color:var(--on-dark-cap)}
.demo-card figcaption span{display:block;margin-top:2px;font-size:13px;color:var(--on-dark-mute)}
@media (max-width:860px){
  .page-hero{padding-block:120px 72px}
  .split,.demo{grid-template-columns:1fr}
  .split{gap:0}
  .demo{gap:32px}
}

/* 13. Footer */
.foot{background:var(--g0);color:var(--on-dark-2);padding:72px 0 40px}
.foot-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:32px 48px;margin-bottom:56px}
.foot .brand{font-size:22px}
.foot-id{display:grid;gap:14px}
.foot-id p{font-size:15px;color:var(--on-dark-2)}
.foot .brand img{height:36px}
.foot-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:15px}
.foot-links a{text-decoration:none}
.foot-links a:hover{text-decoration:underline}
.foot .line{display:flex;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;font-size:15px;padding-top:28px;border-top:1px solid var(--line-dark)}
.foot a{color:var(--on-dark)}
@media (max-width:600px){.foot-top{flex-direction:column;align-items:flex-start;gap:28px;margin-bottom:40px}.foot-links{gap:12px 22px}.foot .line{flex-direction:column}}

/* Grain, scroll progress */
main::after{content:"";position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.scrollbar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:2px;transform-origin:0 50%;transform:scaleX(var(--sp,0));background:var(--teal);z-index:49;pointer-events:none}

/* Simple reveal for the sections whose motion comes in Prompt 8: fade and rise, once */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}

/* Phone: clean stacking */
@media (max-width:860px){
  .hero{display:flex;flex-direction:column;min-height:0}
  .hero .wrap{order:1;padding-block:96px 28px;gap:22px}
  /* The video sits under the headline block at 16:9, full width, the same feathering (plus a soft top edge) */
  .hero-video{order:2;position:relative;inset:auto;width:100%;aspect-ratio:16/9;margin-bottom:24px;container-type:normal;
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 18%),linear-gradient(to bottom,transparent 0,#000 14%,#000 66%,transparent 100%);
    mask-image:linear-gradient(to right,transparent 0,#000 18%),linear-gradient(to bottom,transparent 0,#000 14%,#000 66%,transparent 100%)}
  .hero-video video{position:static;width:100%;height:100%;transform:none;object-fit:cover;object-position:left center}
  .hero::after{display:none}
  .streams-band{padding-block:72px}
  .streams-band .wrap{grid-template-columns:1fr;gap:28px}
  .streams-band canvas.streams{height:260px;border-radius:14px;background:var(--stream-panel);border:1px solid var(--line-dark-2)}
  .hero h1{font-size:clamp(40px,11vw,56px)}
  .scene .stick{grid-template-columns:1fr;gap:12px;align-content:center;padding-block:12px}
  .steps{min-height:9.5em}.step h3{font-size:28px}.step p{font-size:15.5px;margin-top:8px}
  .counters{margin-top:10px;gap:18px}.counters .num{font-size:20px}.progress{margin-bottom:12px}
  .scene canvas{height:44vh}.audit{display:none}.scene .cap{margin-top:10px}
  .statement{padding-block:88px}
  .statement p{font-size:clamp(30px,8.4vw,40px)}
  .showcase{padding-block:88px 64px}
  .showcase .wrap{grid-template-columns:1fr;gap:0}
  .sc-head{grid-row:auto}
  /* Tabs scroll sideways under the heading; the page itself never does */
  .sc-tabs{display:flex;gap:0 24px;overflow-x:auto;margin:24px -16px 20px;padding-inline:16px;border-top:0;border-bottom:1px solid var(--line-dark-2);scrollbar-width:none}
  .sc-tabs::-webkit-scrollbar{display:none}
  .sc-tabs button{flex:none;white-space:nowrap;padding:12px 0;border-bottom:0;font-size:17px}
  .sc-tabs button::before{top:auto;bottom:0;left:0;right:0;width:auto;height:2px;transform:scaleX(0);transform-origin:0 50%}
  .sc-panel .shot{padding:5px;border-radius:12px}
  .sc-panel figcaption{font-size:16px;margin-top:16px}
  .sc-cap{grid-column:auto;margin-top:6px}
  .ask-band{padding-block:88px}
  .ask{grid-template-columns:1fr;gap:28px}
  .ask .card-slot{min-height:0;display:grid;gap:14px}
  .ask .refusal{position:relative;right:auto;bottom:auto;width:100%}
  .ask .cap{text-align:left}
  .refuse{margin-top:64px}
  .close{padding-block:96px 72px}
  .close canvas.ledger{height:88px;margin-top:48px}
  .work-band,.stages,.runs,.aud-band,.who,.offer{padding-block:88px}
  .aud li{grid-template-columns:1fr;gap:10px;padding:24px 0 24px 16px}
  .aud a{justify-self:start;white-space:normal}
  .work,.work thead,.work tbody,.work tr,.work td,.refuse,.refuse thead,.refuse tbody,.refuse tr,.refuse td{display:block}
  .work thead,.refuse thead{display:none}
  .work td,.refuse td{border:0;padding:4px 0;width:auto!important}
  .work td:first-child,.refuse td:first-child{padding:24px 0 8px;border-top:1px solid var(--line-dark-2)}
  /* Each row stacks: area and examples, then "What the system does", then "What your team keeps", each with a small label */
  .work td[data-label]{padding:6px 0 6px 21px}
  .work td[data-label]::before{content:attr(data-label);display:block;margin:0 0 2px -21px;padding-left:21px;font-size:13px;font-weight:500;color:var(--ink-2);
    background:linear-gradient(var(--sqc,var(--amber)),var(--sqc,var(--amber))) no-repeat 0 .3em/9px 9px}
  .work td:nth-child(3){--sqc:var(--on-dark)}
  .work td:first-child{padding-bottom:10px}
  .work .ex{font-size:14px;margin-top:6px}
  .stages ol{gap:56px;padding-left:28px}
  .stages li,.stages li:nth-child(even){grid-template-columns:1fr;gap:28px}
  .stages li:nth-child(even) .st-text{order:0}
  .stages li::before{left:-28px;top:6px}
  .stages .n{margin-bottom:12px}
  .runs .log li{grid-template-columns:1fr;gap:4px;padding:16px 0}
}

/* The pile on phones (under 768px) and with reduced motion: no pinning. The finished state, the four steps as a
   plain list (js/site.js holds the scene at its end). */
@media (max-width:767px),(prefers-reduced-motion:reduce){
  .scene{height:auto;padding-block:clamp(88px,9vw,128px)}
  .scene .stick{position:static;height:auto}
  .steps{min-height:0;display:grid;gap:24px}
  .step{position:static;opacity:1;transform:none;transition:none}
  .progress{display:none}
}

/* Light bands inside the dark page: the work table and "Where it runs". Same ground as the closing band,
   ink text, the four color meanings unchanged (a person approved it = ink on light). */
.light{background:var(--g-close);color:var(--ink)}
.light h2,.light .work td:first-child,.light .work td:nth-child(3),.light .afterline,.light .log p{color:var(--ink)}
.light th,.light .work td,.light .log .num{color:var(--ink-2)}
.light th,.light td,.light .log,.light .log li{border-color:var(--line-light)}
.light .sq.k{background:var(--approved)}
.light .work td:first-child{border-color:var(--line-light)}
.light .work td:nth-child(3){--sqc:var(--approved)}
/* Reduced motion: every scene shows its finished state, nothing loops */
@media (prefers-reduced-motion:reduce){
  .bloom b,.rise,.mi,.ask .checking i,.ask .request .caret{animation:none}
  .statement .w,.step,.audit div,.ask .refusal,.ask .did,.bloom,.sc-panel,.sc-tabs button::before{transition:none}
  .js [data-reveal]{opacity:1;transform:none;transition:none}
}

/* Section motion (js/motion.js). The rules here are the final state, so reduced motion and no-JS show it as is. */
.ln-mask{display:block;padding-bottom:.1em;margin-bottom:-.1em}
.ln{display:block}
/* The work table: a status mark per row and a hairline under it */
.work td{border-top:0}
.work thead th{border-bottom:1px solid var(--line-light);padding-bottom:16px}
.work tbody tr{position:relative}
.work .hl{position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line-light);transform-origin:0 50%}
.light .work .hl{background:var(--line-light-draw)}
.work td:first-child{padding-left:21px}
.work .mk{position:absolute;width:9px;height:9px;border-radius:2px;margin:.42em 0 0 -21px;background:var(--approved)}
/* The engagement line: a dim track and the drawn line (--line is 0 to 1; 1 without motion) */
.stages ol::before{background:var(--line-dark-2)}
.stages ol::after{content:"";position:absolute;left:4px;top:0;bottom:0;width:1px;background:var(--on-dark);transform-origin:50% 0;transform:scaleY(var(--line,1))}
.stages li::before{z-index:1}
@media (max-width:860px){
  .work tbody{border-top:1px solid var(--line-light)}
  .work tbody + tbody{border-top:0}
  .work tbody tr{padding-bottom:20px}
  .work td:first-child{border-top:0}
}
@media (prefers-reduced-motion:reduce){.aud li::before,.aud .arr{transition:none}}
