/* v9 additions — everything else is inherited from the v8 stylesheets */
.v9-quad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--ink);background:var(--off)}
.v9-quad-cell{display:flex;flex-direction:column;gap:11px;padding:clamp(18px,2vw,28px) clamp(15px,1.7vw,24px) clamp(22px,2.4vw,30px);border-right:1px solid var(--rule);background:#fff;transition:background .2s}
.v9-quad-cell:last-child{border-right:0}
.v9-quad-cell:hover{background:rgba(255,145,77,.07)}
.v9-quad-n{font-family:var(--font-heading);font-weight:700;font-size:clamp(30px,2.6vw,44px);line-height:.85;letter-spacing:-.04em;color:var(--acc-mid)}
.v9-quad-cell h4{font-family:var(--font-heading);font-weight:700;font-size:clamp(16px,1.25vw,20px);line-height:1.18;letter-spacing:-.018em;color:var(--ink);margin:0}
.v9-quad-cell p{font-family:var(--font-body);font-weight:400;font-size:14.5px;line-height:1.55;color:rgba(73,68,75,.86);margin:0}
@media(max-width:980px){.v9-quad{grid-template-columns:1fr 1fr}.v9-quad-cell{border-bottom:1px solid var(--rule)}.v9-quad-cell:nth-child(2n){border-right:0}.v9-quad-cell:nth-child(n+3){border-bottom:0}}
@media(max-width:560px){.v9-quad{grid-template-columns:1fr}.v9-quad-cell{border-right:0;border-bottom:1px solid var(--rule)}.v9-quad-cell:last-child{border-bottom:0}}

/* first engagement / build-and-run panels */
.v9-panel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);border:1px solid var(--ink);background:var(--off)}
.v9-panel-a{padding:clamp(20px,2.2vw,32px);display:flex;flex-direction:column;gap:14px;border-right:1px solid var(--ink)}
.v9-panel-b{padding:clamp(20px,2.2vw,32px);display:flex;flex-direction:column;gap:14px;background:#fff}
.v9-panel h3{font-family:var(--font-heading);font-weight:700;font-size:clamp(22px,2.1vw,32px);line-height:1.02;letter-spacing:-.028em;color:var(--ink);margin:0}
.v9-panel h4{font-family:var(--font-heading);font-weight:700;font-size:clamp(17px,1.35vw,21px);line-height:1.15;letter-spacing:-.02em;color:var(--ink);margin:0}
.v9-panel .v8-leave{border-top:1px solid var(--rule-strong)}
.v9-panel-cta{margin-top:auto;padding-top:6px}
@media(max-width:900px){.v9-panel{grid-template-columns:1fr}.v9-panel-a{border-right:0;border-bottom:1px solid var(--ink)}}

/* client work */
.v9-case-copy{display:flex;flex-direction:column;gap:13px;border-top:1px solid var(--rule);padding-top:16px;margin-top:16px}
.v9-case-title{font-family:var(--font-heading);font-weight:700;font-size:clamp(19px,1.7vw,27px);line-height:1.1;letter-spacing:-.024em;color:var(--ink);margin:10px 0 0}
.v9-case-copy p{max-width:54ch}

/* five jobs, numbered */
.v9-jobs{counter-reset:v9j}
.v9-jobs li b{font-variant-numeric:tabular-nums}

/* ---- review pass: Kaan, july ---- */

/* 09 — the two engagements read as offerings, each with its own way in */
.v9-panel-eyebrow{display:block;margin-bottom:12px;color:rgba(73,68,75,.55)}
.v9-panel-a,.v9-panel-b{gap:13px}
.v9-panel .v8-leave{margin-top:4px}
.v9-panel-cta{display:flex}
.v9-panel-b{box-shadow:inset 0 3px 0 var(--acc)}

/* 01 — the recognition list is quoted, and said by someone */
.v8-rec-col{display:flex;flex-direction:column;gap:11px}
.v8-rec-head{color:rgba(73,68,75,.5)}
.v8-rec-col .v8-rec-item>div{border-left:2px solid rgba(255,145,77,.6);padding-left:15px}
.v8-rec-col .v8-rec-item strong{font-style:italic}
.v8-rec-foot{font-family:var(--font-body);font-weight:400;font-size:13.5px;line-height:1.5;color:rgba(73,68,75,.62);max-width:44ch}

/* 01 — the pile stage clears the nav instead of sitting flush with the top */
.v8-pile-stage{top:clamp(56px,8vh,88px);height:calc(100vh - clamp(76px,11vh,116px));max-height:790px}
@media(max-width:820px){.v8-pile-stage{top:clamp(46px,7vh,70px);height:calc(78vh - 24px)}}
@media(prefers-reduced-motion:reduce){.v8-pile-stage{top:0;height:70vh}}

/* hero stack — the tiles ride above the hint and the wiring */
.v8-stack-tile{z-index:6}
.v8-stack-hint{left:0;right:0;bottom:10px;z-index:3;text-align:center;pointer-events:none}
.v8-stack-hint button{pointer-events:auto}

/* 02 — console: run the whole thing again */
.v8-cx-bar-r{display:inline-flex;align-items:center;gap:12px}
.v8-cx-bar-r em{font-style:normal}
.v8-cx-reset{display:inline-flex;align-items:center;gap:6px;padding:2px 8px 2px 6px;background:none;border:1px solid rgba(245,247,253,.28);font:inherit;letter-spacing:inherit;text-transform:inherit;color:rgba(245,247,253,.72);cursor:pointer;transition:color .18s,border-color .18s,background .18s}
.v8-cx-reset svg{width:11px;height:11px;display:block}
.v8-cx-reset:hover{color:#fff;border-color:var(--acc);background:rgba(255,145,77,.16)}
.v8-cx-agains{display:flex;gap:18px;flex-wrap:wrap}

/* 07 — the review CTA, with the face of the person you meet.
   Rests in its raised state; hover pushes it further, same as the hero button. */
.v9-face-cta{box-shadow:3px 3px 0 var(--acc)}
.v9-face-cta:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--acc)}
/* the hero and section buttons also rest raised */
.v8 .v8-btn{box-shadow:-7px 7px 0 var(--acc)}
.v8 .v8-btn:hover{transform:translate(4px,-4px);box-shadow:-11px 11px 0 var(--acc)}
.v9-face-cta{display:inline-flex;align-items:center;gap:13px;padding:7px 16px 7px 7px;background:var(--ink);border:1px solid var(--ink);text-decoration:none;transition:transform .16s var(--ease-swift),box-shadow .16s,background .16s}
.v9-face-cta img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;border:1.5px solid var(--acc)}
.v9-face-cta span{display:flex;flex-direction:column;gap:2px}
.v9-face-cta b{font-family:var(--font-heading);font-weight:700;font-size:15px;letter-spacing:-.014em;color:var(--off)}
.v9-face-cta i{font-style:normal;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,247,253,.55)}
.v9-face-cta:hover i{color:var(--acc)}

/* 01 — the pile cards name the tools they stand for */
.v8-pile-card .x{font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;line-height:1.35;color:var(--acc-ink);opacity:.85}
.v8-pile-card .b{display:flex;align-items:center;gap:5px;margin-top:1px;min-height:12px}
.v8-pile-card .b img{width:12px;height:12px;opacity:.72;object-fit:contain}
.v8-pile-card .b .ic{width:12px;height:12px;opacity:.55}

/* nav — past the hero the header stands up as a full-height rail beside the page */
.v8-tabrow-slot{position:relative}
.v8-rail-info{display:none}
.v8-menu-cta-rail{display:none}
@media(min-width:1240px){.v8{padding-left:max(clamp(34px,4.8vw,88px),min(198px,13vw));padding-right:max(clamp(34px,4.8vw,88px),min(198px,13vw))}}
@media(min-width:1240px){
.v8-tabrow.is-docked{position:fixed;top:0;bottom:0;right:0;left:auto;z-index:95;width:var(--gw,180px);flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:clamp(18px,2.4vh,30px);padding:clamp(20px,3vh,38px) clamp(14px,1.1vw,22px) 12px clamp(16px,1.3vw,26px);flex-wrap:nowrap;background:none;border:0;box-shadow:none;animation:v8rail .5s var(--ease-swift) both}
.v8-tabrow.is-docked.is-out{animation:v8railout .38s var(--ease-swift) both}
.v8-tabrow.is-docked .v8-brandmark{display:block;flex:none}
.v8-tabrow.is-docked .v8-brandmark img{display:block;width:100%;max-width:132px;height:auto}
.v8-tabrow.is-docked .v8-menu{flex-direction:column;align-items:flex-start;margin:0;gap:clamp(10px,1.3vh,16px);flex-wrap:nowrap;width:100%}
.v8-tabrow.is-docked .v8-menu a{writing-mode:horizontal-tb;transform:none;padding:0;width:100%}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta{margin-top:4px;padding:10px 12px;justify-content:center;font-family:var(--font-heading);font-weight:700;font-size:13.5px;background:var(--acc);border:1px solid #0a0a0a;box-shadow:-4px 4px 0 rgba(10,10,10,.85);transition:transform .12s var(--ease-snap),box-shadow .12s var(--ease-snap)}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta::before{display:none}
.v8 .v8-tabrow.is-docked a.v8-menu-cta,.v8 .v8-tabrow.is-docked a.v8-menu-cta:hover{color:#0a0a0a}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta:hover{transform:translate(3px,-3px);box-shadow:-7px 7px 0 rgba(10,10,10,.85)}
/* the rail CTA wears the same face button used in 07 */
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta.v9-face-cta--rail{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:10px;margin-top:8px;padding:6px 12px 6px 6px;background:var(--ink);border:1px solid var(--ink);box-shadow:3px 3px 0 var(--acc);font-weight:400;font-size:inherit}
.v8-tabrow.is-docked .v8-menu-cta-default{display:none}
.v8-tabrow.is-docked .v8-menu-cta-rail{display:flex;align-items:center;gap:10px}
.v8-tabrow.is-docked .v8-menu-cta-rail>span{display:flex;flex-direction:column;gap:2px}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta.v9-face-cta--rail img{width:36px;height:36px}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta.v9-face-cta--rail b{font-size:12.5px;line-height:1.15}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta.v9-face-cta--rail i{font-size:8px;letter-spacing:.12em}
.v8 .v8-tabrow.is-docked a.v8-menu-cta.v9-face-cta--rail,.v8 .v8-tabrow.is-docked a.v8-menu-cta.v9-face-cta--rail:hover{color:var(--off)}
.v8-tabrow.is-docked .v8-menu a.v8-menu-cta.v9-face-cta--rail:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--acc)}
.v8-tabrow.is-docked .v8-rail-info{display:flex;flex-direction:column;gap:7px;margin-top:auto;padding-top:16px;border-top:1px solid rgba(245,247,253,.18);width:100%;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;line-height:1.55;color:rgba(245,247,253,.5)}
.v8 .v8-tabrow.is-docked .v8-rail-info a{color:rgba(245,247,253,.62);text-decoration:none}
.v8 .v8-tabrow.is-docked .v8-rail-info a:hover{color:var(--acc)}
}
@keyframes v8rail{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes v8railout{from{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}
/* back at the top: the horizontal header rises out from under the page edge */
.v8-tabrow.is-rising{animation:v8navrise .52s var(--ease-swift) both}
@keyframes v8navrise{from{opacity:0;transform:translateY(118%)}to{opacity:1;transform:translateY(0)}}

/* 05 — the worked example runs as a four-example sequence */
.v9-turn{font-size:clamp(23px,2.1vw,32px);border-top:1px solid var(--rule);padding-top:clamp(14px,1.8vw,24px)}
.v9-worked-jump{align-self:flex-start}
.v9-pin-seq{height:172vh}
.v9-ex-body.is-stepped .v8-doc-row{animation:v9exin .38s var(--ease-swift) both;animation-delay:calc(var(--i,0) * 70ms)}
.v9-ex-h{font-size:clamp(28px,3vw,44px);margin:14px 0 0}
.v9-ex-lead{margin:12px 0 0;max-width:52ch}
/* 05·c continues 05·b: no chapter rule, the ledger docks right under the doc */
.v9-cont{border-top:0}
@media(min-width:941px){.v9-cont{padding-top:20px;margin-top:0}}
.v9-calc-link{position:relative;height:58px;margin:-20px 0 4px}
.v9-calc-link::before{content:"";position:absolute;left:50%;top:-8px;bottom:13px;width:2px;background:repeating-linear-gradient(180deg,rgba(196,85,26,.62) 0 5px,transparent 5px 10px);background-size:2px 20px;animation:v9calcmarch .9s linear infinite}
.v9-calc-link::after{content:"";position:absolute;left:calc(50% - 3px);bottom:10px;width:7px;height:7px;border-right:1.6px solid var(--acc-mid);border-bottom:1.6px solid var(--acc-mid);transform:rotate(45deg)}
.v9-counted{display:flex;flex-direction:column}
.v9-counted .v8-sum{margin:0}
.v9-count-tab{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--ink);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:rgba(245,247,253,.85)}
.v9-count-tab b{color:var(--acc);font-weight:500;white-space:nowrap}
.v9-count-tab em{font-style:normal;margin-left:auto;color:var(--acc)}
.v9-ex-tabs{display:flex;flex-wrap:nowrap;gap:6px;margin-top:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
@media(min-width:941px){.v9-ex-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;overflow:visible}.v9-ex-tab{flex:none;width:100%;min-width:0;justify-content:flex-start;padding:10px 12px;gap:8px}.v9-ex-tab span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v9-ex-tab b{flex:none}}
.v9-ex-tabs::-webkit-scrollbar{display:none}
.v9-ex-tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:7px 12px;background:#fff;border:1px solid var(--rule-strong);font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(73,68,75,.62);cursor:pointer;transition:color .22s var(--ease-swift),border-color .22s var(--ease-swift),background .22s var(--ease-swift)}
.v9-ex-tab b{font-weight:500;color:var(--acc-ink)}
.v9-ex-tab:hover{border-color:var(--ink);color:var(--ink)}
.v9-ex-tab.on{background:var(--ink);border-color:var(--ink);color:var(--off)}
.v9-ex-tab.on b{color:var(--acc)}
.v9-ex-body{animation:v9exin .36s var(--ease-swift) both}
@keyframes v9exin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes v9calcmarch{to{background-position:0 -20px}}
.v9-ex-count{font-variant-numeric:tabular-nums}
@media(max-width:940px){.v9-pin-seq{height:auto}.v9-ex-tabs{flex-wrap:nowrap}.v9-ex-tab{min-height:44px;padding:11px 14px}.v9-ex-count{display:none}}
@media(prefers-reduced-motion:reduce){.v9-pin-seq{height:auto}.v9-ex-body{animation:none}.v9-calc-link::before{animation:none}}
@media(prefers-reduced-motion:reduce){.v8-tabrow.is-docked{animation:none;transform:none}.v8-tabrow.is-docked.is-out{display:none}.v8-tabrow.is-rising{animation:none}}


/* client work: the client identifies itself by its mark, not a typed name */
.v9-case-id{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.v9-case-id img{width:auto;max-width:min(100%,230px);object-fit:contain;object-position:left center}
.v13-case .v9-case-id img{max-width:min(100%,190px)}
