/* Kolm Shield — kolmshield.com
   Type: Instrument Serif (display) · Instrument Sans (text) · IBM Plex Mono (labels). All SIL OFL 1.1, self-hosted.
   Palette follows the house estate: teal #073C40, accent #1A9090, gold #D4AF37. */

@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/fonts/InstrumentSerif-Italic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('/fonts/InstrumentSans-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('/fonts/InstrumentSans-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/IBMPlexMono-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}

:root{
  --teal:#073C40; --teal2:#0A474C; --accent:#1A9090;
  --gold:#D4AF37; --goldt:#86661A; --goldsoft:rgba(212,175,55,.55);
  --paper:#FAF8F3; --paper2:#F1EEE6; --ink:#12201F; --body:#48524F; --gray:#64635C;
  --faint:#7A8783; --rule:#E0DCD1;
  --disp:'Instrument Serif',Georgia,'Times New Roman',serif;
  --text:'Instrument Sans',Arial,Helvetica,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --gut:clamp(18px,5vw,76px); --max:1260px; --mh:72px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--text);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit}
::selection{background:rgba(212,175,55,.28)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--teal);color:#fff;padding:10px 14px;font-family:var(--mono);font-size:12px;text-decoration:none}
.skip:focus{top:12px}
.w{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
section{scroll-margin-top:var(--mh);position:relative}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* labels */
.mono{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray);font-weight:400}
.eyebrow{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--goldt)}
.eyebrow::before{content:attr(data-n);color:var(--gray);letter-spacing:.14em}
.eyebrow::after{content:'';flex:0 0 44px;height:1px;background:currentColor;opacity:.55}
.band .eyebrow,.poster .eyebrow{color:var(--gold)}
.band .eyebrow::before{color:rgba(255,255,255,.45)}

/* type */
.say{font-family:var(--disp);font-weight:400;letter-spacing:-.018em;color:var(--teal);
  font-size:clamp(40px,6.3vw,96px);line-height:.98;max-width:15ch}
.say.m{font-size:clamp(36px,5vw,76px);max-width:20ch}
.say.faint{color:var(--faint)}
.say em{font-style:italic;color:var(--goldt)}
.note{max-width:56ch;font-size:17px;line-height:1.72;color:var(--body)}
.note a{color:var(--teal);text-decoration-color:var(--goldsoft);text-underline-offset:3px}
.note a:hover{text-decoration-color:var(--teal)}
.lede{margin-top:clamp(22px,3vh,30px)}

/* masthead */
.mast{position:sticky;top:0;z-index:50;background:rgba(250,248,243,.9);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid transparent;transition:border-color .3s}
.mast.stuck{border-bottom-color:var(--rule)}
.mast .w{display:flex;align-items:center;justify-content:space-between;height:var(--mh);gap:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--teal)}
.brand img{height:30px;width:auto}
.brand span{font-family:var(--mono);font-size:12.5px;letter-spacing:.26em}
.brand b{font-weight:400;color:var(--goldt)}
.mnav{display:flex;gap:clamp(16px,2.2vw,32px);align-items:center}
.mnav a{position:relative;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);text-decoration:none;transition:color .2s;white-space:nowrap}
.mnav a:not(.acc)::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.mnav a:hover,.mnav a.on{color:var(--teal)}
.mnav a.on::after{transform:scaleX(1)}
.mnav a.acc{color:var(--teal);border:1px solid var(--goldsoft);padding:10px 15px}
.mnav a.acc:hover{background:rgba(212,175,55,.12);border-color:var(--gold)}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;pointer-events:none}
.burger{display:none;background:none;border:0;padding:12px;cursor:pointer;width:46px;height:46px;position:relative;z-index:60;-webkit-tap-highlight-color:transparent}
.burger span{display:block;width:20px;height:2px;background:var(--teal);margin:5px auto;transition:transform .28s,opacity .2s}
.mtoggle{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.mmenu{position:fixed;inset:0;background:var(--teal);z-index:40;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(28px,8vw,64px);opacity:0;pointer-events:none;transition:opacity .3s}
.mmnav{display:flex;flex-direction:column}
.mmnav a{font-family:var(--disp);font-size:clamp(30px,8vw,40px);color:var(--paper);text-decoration:none;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.mmnav a.macc{color:var(--gold);border-bottom:0;margin-top:12px}
.mmfoot{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));left:clamp(28px,8vw,64px);color:rgba(255,255,255,.4)}
#mt:checked~.mmenu,.menu-open .mmenu{opacity:1;pointer-events:auto}
#mt:checked~.mast .burger span,.menu-open .burger span{background:var(--gold)}
#mt:checked~.mast .burger span:nth-child(1),.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#mt:checked~.mast .burger span:nth-child(2),.menu-open .burger span:nth-child(2){opacity:0}
#mt:checked~.mast .burger span:nth-child(3),.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
#mt:checked~.mast,.menu-open .mast{position:fixed;top:0;left:0;right:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}
#mt:checked~.mast .brand,#mt:checked~.mast .acc,.menu-open .mast .brand,.menu-open .mast .acc,.menu-open .progress{opacity:0;pointer-events:none}
html:has(#mt:checked){overflow:hidden}
.menu-open body{overflow:hidden;position:fixed;width:100%}
@media(max-width:900px){.mnav a:not(.acc){display:none}.burger{display:block}}
@media(max-width:430px){.mnav a.acc{display:none}}

/* 01 · thesis */
.hero{min-height:calc(100svh - var(--mh));display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:clamp(40px,7vh,88px) 0 0}
.hero .w{position:relative;z-index:2;width:100%}
.ghost{position:absolute;right:-10%;top:48%;width:min(760px,66vw);transform:translateY(-50%);pointer-events:none;z-index:0;color:var(--gold)}
.ghost .spin{transform-box:fill-box;transform-origin:center;animation:spin 240s linear infinite}
.ghost path{fill:none;stroke:currentColor;stroke-width:.45;opacity:.3}
.ghost circle{fill:none;stroke:currentColor;stroke-width:.55;opacity:.55}
.hero .ghost path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 7s cubic-bezier(.45,.1,.25,1) .2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.ghost{right:-44%;width:140vw;opacity:.55}}
.hero .eyebrow{margin-bottom:clamp(26px,4vh,44px)}
.claims{display:grid;gap:clamp(22px,3.4vh,38px)}
.claims .lab{margin-bottom:10px}
.lab.pos{color:var(--teal)}
.lab.neg{color:var(--goldt)}
.gapnote{margin-top:clamp(28px,4vh,46px);padding-top:22px;border-top:2px solid var(--teal);max-width:60ch}
.gapnote b{font-family:var(--disp);font-weight:400;font-size:24px;line-height:1.2;color:var(--teal);display:block;margin-bottom:8px}
.idline{margin-top:24px;max-width:60ch;font-size:15.5px;line-height:1.7;color:var(--gray)}
.idline strong{color:var(--teal);font-weight:700}
.spec{margin-top:clamp(36px,6vh,72px);border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:2;background:rgba(250,248,243,.72)}
.spec div{padding:16px 18px 18px 0}
.spec div+div{padding-left:18px;border-left:1px solid var(--rule)}
.spec dt{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gray)}
.spec dd{margin-top:6px;font-size:14px;color:var(--teal)}
@media(max-width:860px){.spec{grid-template-columns:1fr 1fr}.spec div:nth-child(3){padding-left:0;border-left:0}.spec div:nth-child(n+3){border-top:1px solid var(--rule)}}
.cue{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(26px,4vh,44px);font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gray);text-decoration:none;padding:8px 0}
.cue:hover{color:var(--teal)}
.cue i{font-style:normal;display:inline-block;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(5px)}}

/* 02 · economics */
.band{background:var(--teal);color:#fff;overflow:hidden}
.band::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 85% 0%,rgba(26,144,144,.22),transparent 70%);pointer-events:none}
.band .w{position:relative;padding-top:clamp(72px,12vh,128px);padding-bottom:clamp(72px,12vh,128px)}
.band .say{color:#fff}
.band .note{color:rgba(255,255,255,.66)}
.band .eyebrow{margin-bottom:22px}
.forge{margin-top:clamp(30px,4vh,44px);display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:860px}
.instr{border:1px solid rgba(255,255,255,.16);padding:22px 24px 20px;position:relative;background:rgba(255,255,255,.025);overflow:hidden}
.instr::before{content:'';position:absolute;left:0;right:0;top:-45%;height:42%;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(255,255,255,.06),rgba(212,175,55,.05),transparent);animation:sweep 7s infinite}
@keyframes sweep{0%{transform:translateY(0);opacity:0}2%{opacity:1}20%{transform:translateY(340%);opacity:1}26%,100%{transform:translateY(340%);opacity:0}}
.ihead{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:11px;display:flex;justify-content:space-between}
.ichk{display:flex;flex-direction:column;gap:9px;margin-top:15px;min-height:74px}
.ichk .c{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);opacity:0;animation:chk 7s infinite}
.ichk .c::before{content:'\2713\00a0\00a0';color:var(--gold)}
.ichk .c2{animation-delay:.45s}.ichk .c3{animation-delay:.9s}
@keyframes chk{0%{opacity:0;transform:translateY(5px)}5%{opacity:1;transform:none}88%{opacity:1;transform:none}96%,100%{opacity:0;transform:translateY(5px)}}
.istamp{margin-top:15px;display:block;width:max-content;font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);padding:6px 12px;opacity:0;animation:stamp 7s 1.7s infinite}
@keyframes stamp{0%{opacity:0;transform:scale(1.14)}4%{opacity:1;transform:scale(.985)}6.5%{transform:scale(1)}88%{opacity:1;transform:scale(1)}96%,100%{opacity:0;transform:scale(1.14)}}
.iwho{display:block;margin-top:15px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);opacity:0;animation:chk 7s 2.6s infinite}
.iwho.gold{color:var(--gold);display:inline-block;padding-bottom:4px;background:linear-gradient(var(--goldsoft),var(--goldsoft)) no-repeat left bottom/0% 1px;animation:chk 7s 2.6s infinite,whodraw 7s 2.6s infinite}
@keyframes whodraw{0%,8%{background-size:0% 1px}22%,88%{background-size:100% 1px}96%,100%{background-size:0% 1px}}
@media(max-width:680px){.forge{grid-template-columns:1fr}}
.after{margin-top:26px}
.say.second{margin-top:clamp(72px,12vh,120px)}
.doors{display:grid;grid-template-columns:1fr 1fr;margin-top:clamp(36px,5vh,52px);max-width:900px;border:1px solid rgba(255,255,255,.16)}
.door{padding:28px 26px 24px}
.door+.door{border-left:1px solid rgba(255,255,255,.16)}
@media(max-width:800px){.doors{grid-template-columns:1fr}.door+.door{border-left:0;border-top:1px solid rgba(255,255,255,.16)}}
.door h3{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:18px}
.door.k h3{color:var(--gold)}
.try{width:100%;min-height:52px;background:transparent;border:1px solid rgba(212,175,55,.6);color:var(--gold);font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding:16px 0;cursor:pointer;transition:background .18s;font-variant-numeric:tabular-nums}
.try:hover{background:rgba(212,175,55,.09)}
.try[disabled]{cursor:not-allowed;opacity:.85}
.bot{width:100%;min-height:52px;border:1px solid rgba(255,255,255,.22);padding:15px 16px;display:flex;align-items:center;gap:11px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.bot .dot{width:6px;height:6px;background:#fff;opacity:.3;flex:0 0 auto;transition:opacity .12s}
.bot .dot.hit{opacity:1}
.hint{margin-top:11px;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(212,175,55,.7)}
.dcv{width:100%;height:172px;display:block;margin-top:16px;background:rgba(255,255,255,.015);border:1px solid rgba(255,255,255,.07)}
.door.k .dcv{border-color:rgba(212,175,55,.16)}
.stat{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.door.k .stat{border-top-color:rgba(212,175,55,.24);color:rgba(212,175,55,.8)}
.quit{margin-top:30px;font-family:var(--disp);font-size:clamp(26px,3vw,42px);line-height:1.2;color:var(--gold);opacity:0;transform:translateY(10px);transition:opacity .9s,transform .9s;pointer-events:none}
.quit.on{opacity:1;transform:none}
.verdict{margin-top:clamp(44px,6vh,64px);padding-top:26px;border-top:1px solid rgba(255,255,255,.16);font-family:var(--disp);font-size:clamp(26px,2.8vw,42px);line-height:1.2;color:#fff;max-width:26ch}
.verdict em{font-style:italic;color:var(--gold)}

/* 03 · two acts */
.acts{background:var(--paper2)}
.acts .w,.layer .w,.whynow .w,.bench .w{padding-top:clamp(72px,11vh,124px);padding-bottom:clamp(72px,11vh,124px)}
.acts .say,.layer .say,.whynow .say,.bench .say{margin-top:18px}
.actpair{margin-top:clamp(34px,5vh,52px);display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--teal)}
.act{padding:28px 30px 32px 0;border-bottom:1px solid var(--rule)}
.act+.act{padding-left:30px;border-left:1px solid var(--rule)}
.actlab{color:var(--goldt)}
.actline{margin-top:12px;font-family:var(--disp);font-size:clamp(22px,2vw,27px);line-height:1.3;color:var(--teal);max-width:30ch}
@media(max-width:720px){.actpair{grid-template-columns:1fr}.act+.act{padding-left:0;border-left:0}}
.avz{margin-top:24px;position:relative}
.a1{display:flex;align-items:center;gap:10px;height:54px;max-width:360px}
.an{width:8px;height:8px;background:var(--teal);flex:0 0 auto}
.an.ang{background:var(--gold)}
.atrack{flex:1;height:1px;background:#CFCABD;position:relative}
.apkt{position:absolute;top:-11px;left:0;font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);background:var(--gold);padding:4px 8px;white-space:nowrap;animation:atravel 9s cubic-bezier(.3,.7,.2,1) infinite}
@keyframes atravel{0%{left:0;transform:translateX(0);opacity:0}4%{opacity:1}24%,86%{left:100%;transform:translateX(-100%);opacity:1}93%,100%{left:100%;transform:translateX(-100%);opacity:0}}
.aset{position:absolute;right:0;bottom:-8px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--goldt);opacity:0;animation:alate 9s infinite}
@keyframes alate{0%,24%{opacity:0}32%,86%{opacity:1}94%,100%{opacity:0}}
.a2{display:flex;align-items:flex-start;gap:20px}
.dstack{position:relative;display:flex;flex-direction:column;gap:6px;width:min(240px,62%);padding:2px 0}
.dstack>i,.dcopy i{height:7px;display:block}
.dstack>i{background:rgba(7,60,64,.5)}
.dstack>i:nth-child(1),.dcopy i:nth-child(1){width:84%}
.dstack>i:nth-child(2),.dcopy i:nth-child(2){width:63%}
.dstack>i:nth-child(3),.dcopy i:nth-child(3){width:92%}
.dstack>i:nth-child(4),.dcopy i:nth-child(4){width:55%}
.dstack>i:nth-child(5),.dcopy i:nth-child(5){width:74%}
.scan{position:absolute;left:-8px;right:-8px;top:-4px;height:2px;background:linear-gradient(90deg,var(--gold),rgba(212,175,55,.1));animation:ascan 9s infinite}
@keyframes ascan{0%{top:-4px;opacity:0}3%{opacity:1}22%{top:calc(100% + 2px);opacity:1}26%,100%{top:calc(100% + 2px);opacity:0}}
.dcopy{position:absolute;inset:2px 0;display:flex;flex-direction:column;gap:6px;pointer-events:none;opacity:0;animation:aleave 9s ease-in infinite}
.dcopy i{background:rgba(184,145,42,.6)}
@keyframes aleave{0%,21%{opacity:0;transform:translateX(0)}27%{opacity:.85;transform:translateX(8px)}58%,100%{opacity:0;transform:translateX(130px)}}
.acap{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--goldt);align-self:center;opacity:0;animation:alate2 9s infinite;white-space:nowrap}
@keyframes alate2{0%,55%{opacity:0}63%,88%{opacity:1}96%,100%{opacity:0}}
@media(max-width:720px){.a2{flex-direction:column;gap:12px}.acap{align-self:flex-start}}
.actsnote{margin-top:38px;max-width:64ch}
.counted{margin-top:26px;max-width:64ch;padding-left:22px;border-left:2px solid var(--gold);font-family:var(--disp);font-size:clamp(22px,2.1vw,28px);line-height:1.3;color:var(--teal)}
.counted a{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--goldt);text-decoration:none;display:inline-block;margin-top:12px;border-bottom:1px solid var(--goldsoft);padding-bottom:3px}
.counted a:hover{color:var(--teal)}

/* 04 · layer */
.lines{margin-top:clamp(34px,5vh,52px);max-width:66ch;counter-reset:ln}
.lines li{list-style:none;padding:22px 0 22px 52px;border-top:1px solid var(--rule);font-size:16px;line-height:1.7;color:var(--body);position:relative;counter-increment:ln}
.lines li::before{content:counter(ln,decimal-leading-zero);position:absolute;left:0;top:25px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--goldt)}
.lines li:last-child{border-bottom:1px solid var(--rule)}
.lines b{display:block;font-family:var(--disp);font-weight:400;font-size:23px;line-height:1.25;color:var(--teal);margin-bottom:4px}

/* 05 · why now */
.whynow{background:var(--paper2)}
.tl{margin-top:clamp(34px,5vh,52px);border-top:2px solid var(--teal);max-width:900px}
.tlrow{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--rule);font-size:15.5px;line-height:1.7;color:var(--body)}
.tlrow b{color:var(--teal);font-weight:700}
.tly{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);padding-top:3px}
.tld{display:block;margin-top:8px;font-size:10px;letter-spacing:.12em;color:var(--goldt);line-height:1.8}
.tlrow.za .tly{color:var(--teal)}
.tlrow.now{border-left:2px solid var(--gold);padding-left:20px;margin-left:-22px}
.tlrow.now .tly{color:var(--goldt)}
@media(max-width:640px){.tlrow{grid-template-columns:1fr;gap:8px}.tlrow.now{margin-left:0;padding-left:14px}}
.wnote{margin-top:36px;max-width:60ch}

/* 06 · team */
.bench{border-top:1px solid var(--rule)}
.teamgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,6vw,88px);margin-top:clamp(30px,4vh,46px);align-items:start}
.teamgrid .note+.note{margin-top:18px}
@media(max-width:860px){.teamgrid{grid-template-columns:1fr;gap:36px}}
.roster{border-top:2px solid var(--teal);counter-reset:rr}
.rhead{color:var(--goldt);padding:14px 0 10px}
.rrow{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:15px 0 15px 36px;border-top:1px solid var(--rule);position:relative;counter-increment:rr;transition:padding-left .22s}
.rrow::before{content:counter(rr,decimal-leading-zero);position:absolute;left:0;top:18px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--goldt)}
.rrow:last-child{border-bottom:1px solid var(--rule)}
.rrow:hover{padding-left:44px}
.rd{font-family:var(--disp);font-size:21px;line-height:1.2;color:var(--teal)}
.rp{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);white-space:nowrap}
@media(max-width:400px){.rrow{flex-direction:column;gap:4px}.rp{white-space:normal}}
.hire{margin-top:40px;padding-top:22px;border-top:1px solid var(--rule);max-width:60ch}

/* 07 · writing */
.writing{background:var(--paper);border-top:2px solid var(--teal)}
.writing .w,.briefing .w{padding-top:clamp(64px,10vh,112px);padding-bottom:clamp(64px,10vh,112px)}
.phead{padding-bottom:clamp(30px,4vh,46px)}
.phead .say{margin-top:18px}
.phead .note{margin-top:22px}
.series{border-top:2px solid var(--teal);border-bottom:1px solid var(--rule);background:var(--paper2)}
.shead{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(28px,5vw,72px);align-items:end;padding:clamp(28px,4vw,52px) clamp(22px,4vw,52px) clamp(26px,3.4vw,40px);border-bottom:1px solid var(--rule)}
.sintro .mono{color:var(--goldt)}
.sintro h3{font-family:var(--disp);font-weight:400;font-size:clamp(56px,7vw,108px);line-height:.9;letter-spacing:-.015em;margin:16px 0 20px;color:var(--teal)}
.sintro h3 em{color:var(--goldt)}
.sintro p{font-size:16.5px;line-height:1.7;color:var(--body);max-width:44ch}
.sside{padding-bottom:6px}
.gapfig{width:100%;max-width:340px}
.gapfig text{font-family:var(--mono);font-size:9px;letter-spacing:.14em;fill:var(--gray)}
.gapfig .gt{fill:var(--goldt)}
.gapfig .gc{fill:none;stroke:var(--teal);stroke-opacity:.45}
.gapfig .gg{fill:rgba(212,175,55,.12);stroke:var(--gold);stroke-dasharray:3 3}
.pips{display:flex;gap:8px;margin-top:22px;align-items:center}
.pips i{width:9px;height:9px;border:1px solid var(--goldt);display:block}
.pips i.on{background:var(--gold);border-color:var(--gold)}
.pips span{margin-left:8px;color:var(--gray)}
.parts{list-style:none;display:grid;grid-template-columns:repeat(4,1fr)}
.parts li+li{border-left:1px solid var(--rule)}
.part{display:flex;flex-direction:column;height:100%;padding:26px clamp(18px,2.2vw,30px) 24px;color:var(--ink);text-decoration:none;transition:background .2s}
a.part:hover{background:rgba(7,60,64,.045)}
a.part:hover .ptitle{color:var(--goldt)}
.pn{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--goldt)}
.ptitle{display:block;margin-top:14px;font-family:var(--disp);font-size:clamp(24px,2.1vw,29px);line-height:1.1;color:var(--teal);transition:color .2s}
.pdesc{display:block;margin-top:10px;font-size:14.5px;line-height:1.6;color:var(--body)}
.pst{margin-top:auto;padding-top:22px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);white-space:nowrap}
a.part .pst{color:var(--goldt)}
@media(max-width:1000px){.parts{grid-template-columns:1fr 1fr}.parts li:nth-child(3){border-left:0}.parts li:nth-child(n+3){border-top:1px solid var(--rule)}}
@media(max-width:760px){.shead{grid-template-columns:1fr;align-items:start}}
@media(max-width:560px){.parts{grid-template-columns:1fr}.parts li+li{border-left:0;border-top:1px solid var(--rule)}}
.archive{margin-top:clamp(40px,6vh,64px)}
.archive>.mono{display:block;padding-bottom:14px;border-bottom:2px solid var(--teal);color:var(--goldt)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);padding:clamp(28px,4vh,40px) 0;border-bottom:1px solid var(--rule);align-items:end}
.feat h4{font-family:var(--disp);font-weight:400;font-size:clamp(32px,3.4vw,50px);line-height:1.02;color:var(--teal);margin-top:10px}
.feat p+p{margin-top:16px}
.feat p{font-size:15.5px;line-height:1.7;color:var(--body);max-width:52ch}
@media(max-width:840px){.feat{grid-template-columns:1fr}}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(32px,4vw,56px)}
@media(max-width:840px){.grid{grid-template-columns:1fr}}
.card{display:block;padding:24px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding-left .22s}
.card:hover{padding-left:8px}
.card:hover h5{color:var(--goldt)}
.cm{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);display:flex;justify-content:space-between;gap:12px}
.cm em{font-style:normal;color:#8F8D84}
.card h5{font-family:var(--disp);font-weight:400;font-size:25px;line-height:1.15;color:var(--teal);margin:10px 0 6px;transition:color .2s}
.card p{font-size:14.5px;line-height:1.62;color:var(--body);max-width:44ch}
.cta{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);text-decoration:none;border-bottom:2px solid var(--gold);padding:0 0 7px;transition:color .25s,padding .25s}
.cta:hover{color:var(--goldt);padding-bottom:11px}
.also{margin-top:28px;font-size:15px;color:var(--body)}
.also a{color:var(--teal);text-decoration-color:var(--goldsoft);text-underline-offset:3px}

/* 08 · briefing */
.briefing{background:var(--paper2);border-top:1px solid var(--rule)}
.routes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);padding-top:clamp(20px,3vh,32px)}
@media(max-width:840px){.routes{grid-template-columns:1fr;gap:48px}}
.route{border-top:2px solid var(--teal);padding-top:22px}
.route h3{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3vw,40px);line-height:1.05;color:var(--teal);margin:10px 0 12px}
.route>p{font-size:15.5px;line-height:1.7;color:var(--body);max-width:46ch}
.fields{margin:22px 0 26px;list-style:none}
.fields li{padding:13px 0;border-top:1px solid var(--rule);font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--gray)}
.fields li:last-child{border-bottom:1px solid var(--rule)}
.fields li::before{content:'';display:inline-block;width:5px;height:5px;background:var(--gold);margin-right:12px;vertical-align:2px}
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;background:var(--teal);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:15px 22px;text-decoration:none;transition:background .2s}
.btn:hover{background:var(--teal2)}
.btn.ghostb{background:transparent;color:var(--teal);border:1px solid var(--teal)}
.btn.ghostb:hover{background:rgba(7,60,64,.06)}
.nda{margin-top:34px;color:var(--gray)}

/* poster */
.poster{background:var(--teal);color:#fff;overflow:hidden}
.poster .ghost{left:-14%;right:auto;top:auto;bottom:-38%;transform:none;opacity:.75}
.poster .w{position:relative;z-index:2;padding-top:clamp(84px,14vh,150px);padding-bottom:clamp(84px,14vh,150px)}
.poster h2{font-family:var(--disp);font-weight:400;font-size:clamp(46px,7.4vw,118px);line-height:.94;letter-spacing:-.02em;color:var(--gold);max-width:15ch;margin-top:22px}
.poster h2 em{color:#fff}
.poster .go{display:inline-flex;align-items:center;min-height:52px;margin-top:clamp(34px,5vh,52px);background:var(--gold);color:var(--teal);font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;padding:18px 26px;text-decoration:none;transition:background .2s}
.poster .go:hover{background:#fff}

/* footer */
footer{background:#06343A;color:rgba(255,255,255,.62)}
footer .w{padding-top:clamp(44px,7vh,68px);padding-bottom:28px}
.ftop{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.1)}
@media(max-width:760px){.ftop{grid-template-columns:1fr 1fr}.ftop>div:first-child{grid-column:1/-1}}
.fbrand{display:flex;align-items:center;gap:12px;color:#fff;font-family:var(--mono);font-size:12px;letter-spacing:.26em}
.fbrand b{font-weight:400;color:var(--gold)}
.fbrand img{height:28px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.fabout{margin-top:18px;font-size:14px;line-height:1.7;max-width:44ch}
.fcol .mono{color:var(--gold);display:block;margin-bottom:12px}
.fcol a{display:block;font-size:14px;color:rgba(255,255,255,.75);text-decoration:none;padding:4px 0}
.fcol a:hover{color:#fff}
.fbot{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-top:22px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.fbot b{font-weight:400;color:var(--gold)}

/* reveal */
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .9s cubic-bezier(.2,.6,.2,1),transform .9s cubic-bezier(.2,.6,.2,1)}
.js .rv.in{opacity:1;transform:none}

/* small screens */
@media(max-width:380px){
  :root{--gut:16px;--mh:64px}
  .brand span{font-size:11px;letter-spacing:.2em}.brand img{height:26px}
  .say{font-size:clamp(34px,10.4vw,40px)}
  .say.m{font-size:clamp(30px,9vw,36px)}
  .note{font-size:15.5px}
  .door{padding:20px 16px}.instr{padding:18px 16px}
}
@media(max-height:500px) and (orientation:landscape){.hero{min-height:auto}.ghost{display:none}.mmenu{justify-content:flex-start;padding-top:70px}.mmnav a{font-size:24px;padding:7px 0}}
@supports(padding:max(0px)){.mast .w{padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hero .ghost path{stroke-dashoffset:0}
  .ichk .c,.istamp,.iwho,.aset,.acap{opacity:1;transform:none}
  .iwho.gold{background-size:100% 1px}
  .apkt{left:100%;transform:translateX(-100%);opacity:1}
  .scan,.dcopy,.instr::before{display:none}
  .js .rv{opacity:1;transform:none}
}

/* print: institutional readers save pages and circulate them */
@media print{
  :root{--paper:#fff;--paper2:#fff}
  body{background:#fff;color:#000;font-size:10.5pt}
  .mast,.mmenu,.cue,.ghost,.doors,.quit,.hint,.go,.progress,.skip,.btn,.series::after{display:none!important}
  section{break-inside:avoid}
  .band,.poster,.series,footer{background:#fff!important;color:#000!important}
  .band .say,.poster h2,.say,.sintro h3,.ptitle,.verdict,.actline,.counted,.rd,.feat h4,.card h5,.route h3{color:#000!important}
  .note,.band .note,.sintro p,.pdesc,.lines li,.tlrow,.card p,.route>p,footer,footer a{color:#222!important}
  .ichk .c,.istamp,.iwho,.aset,.acap{animation:none!important;opacity:1!important;transform:none!important}
  .apkt{animation:none!important;left:100%!important;transform:translateX(-100%)!important;background:#fff!important;border:1px solid #000}
  .scan,.dcopy,.instr::before{display:none!important}
  .js .rv{opacity:1!important;transform:none!important}
  .fbot::after{content:"kolmshield.com — retrieved from the public site";display:block;width:100%}
}

/* latest + writing index */
.latesthead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--teal)}
.latesthead .mono{color:var(--goldt)}
.latest,.wlist{list-style:none}
.lrow{display:grid;grid-template-columns:120px 1fr auto;gap:12px 28px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding-left .22s}
.lrow:hover{padding-left:8px}
.lrow:hover .lt{color:var(--goldt)}
.ld{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray)}
.lt{font-family:var(--disp);font-size:clamp(24px,2.4vw,32px);line-height:1.12;color:var(--teal);transition:color .2s}
.ls{display:block;margin-top:6px;font-family:var(--text);font-size:14.5px;line-height:1.6;color:var(--body);max-width:62ch}
.lk{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--goldt);white-space:nowrap}
@media(max-width:640px){.lrow{grid-template-columns:1fr;gap:6px}}
.whead{padding-top:clamp(56px,10vh,110px);padding-bottom:clamp(36px,6vh,64px)}
.whead .say{margin-top:18px;max-width:14ch}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(28px,4vh,40px)}
.filters button{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);background:transparent;border:1px solid var(--rule);padding:11px 16px;cursor:pointer;min-height:42px;transition:.2s}
.filters button:hover{color:var(--teal);border-color:var(--teal)}
.filters button[aria-pressed="true"]{background:var(--teal);color:#fff;border-color:var(--teal)}
.wgroup{margin-top:clamp(48px,7vh,80px)}
.wgroup>.mono{display:block;padding-bottom:14px;border-bottom:2px solid var(--teal);color:var(--goldt)}
.wlist li[hidden]{display:none}
.wpage .series{margin-top:0}
.sub{padding-bottom:clamp(64px,10vh,112px)}
[data-group][hidden]{display:none!important}
.follow{display:inline-block;margin-top:18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);text-decoration:none;border-bottom:1px solid var(--goldsoft);padding-bottom:3px}
.follow:hover{color:var(--goldt);border-color:var(--goldt)}
.hero .eyebrow{color:var(--teal)}

/* primer + prose pages */
.pgrid{display:grid;grid-template-columns:260px 1fr;gap:clamp(32px,6vw,96px);align-items:start;padding-bottom:clamp(64px,10vh,112px)}
.ptoc{position:sticky;top:calc(var(--mh) + 28px);border-top:2px solid var(--teal);padding-top:14px}
.ptoc .mono{color:var(--goldt);display:block;margin-bottom:10px}
.ptoc ol{list-style:none;counter-reset:q}
.ptoc li{counter-increment:q;border-bottom:1px solid var(--rule)}
.ptoc a{display:grid;grid-template-columns:28px 1fr;padding:10px 0;font-size:14px;line-height:1.45;color:var(--body);text-decoration:none}
.ptoc a::before{content:counter(q,decimal-leading-zero);font-family:var(--mono);font-size:10px;color:var(--goldt);padding-top:3px}
.ptoc a:hover{color:var(--teal)}
@media(max-width:900px){.pgrid{grid-template-columns:1fr}.ptoc{position:static}}
.qa{border-top:2px solid var(--teal);padding:26px 0 40px;scroll-margin-top:calc(var(--mh) + 12px)}
.qa+.qa{border-top-width:1px;border-top-color:var(--rule)}
.qa .mono{color:var(--goldt)}
.qa h2{font-family:var(--disp);font-weight:400;font-size:clamp(30px,3.2vw,44px);line-height:1.08;color:var(--teal);margin:10px 0 16px;max-width:24ch;text-wrap:balance}
.qa p{font-size:17px;line-height:1.75;color:var(--body);max-width:64ch}
.qa p+p{margin-top:14px}
.qa .src{margin-top:16px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;line-height:1.8;color:var(--gray)}
.qa .src a{color:var(--gray)}
.dl{margin-top:18px;border-top:1px solid var(--rule);max-width:720px}
.dl div{display:grid;grid-template-columns:70px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.6;color:var(--body)}
.dl dt{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--teal);padding-top:2px}
.dl dd b{color:var(--teal)}
.prose{max-width:68ch;padding-bottom:clamp(64px,10vh,112px)}
.prose h2{font-family:var(--disp);font-weight:400;font-size:28px;color:var(--teal);margin:34px 0 10px}
.prose p,.prose li{font-size:16.5px;line-height:1.75;color:var(--body)}
.prose ul{margin:10px 0 0 20px}
.prose a{color:var(--teal)}

.addr{margin-top:14px;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--gray)}
.addr-t{user-select:all}
.copy{display:none;font:inherit;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--goldt);background:none;border:0;border-bottom:1px solid var(--goldsoft);padding:2px 0;cursor:pointer}
.js .copy{display:inline-block}
.copy:hover{color:var(--teal);border-color:var(--teal)}
.addr.light{color:rgba(255,255,255,.5)}
.addr.light .copy{color:var(--gold)}
.addr.light .copy:hover{color:#fff;border-color:#fff}

/* featured slot: a single piece when no series is running */
.series.feature .sintro h3{font-size:clamp(44px,5.2vw,78px);line-height:.95}
.series.feature .shead{border-bottom:0}
.fmeta{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);margin-bottom:18px}
.series.feature .cta{margin-top:4px}
.route>p.addr,.poster p.addr{font-size:10.5px;line-height:1.4;max-width:none;margin-top:14px}

/* where it runs */
.scope{background:var(--paper);border-top:1px solid var(--rule)}
.scope .w{padding-top:clamp(72px,11vh,124px);padding-bottom:clamp(72px,11vh,124px)}
.scope .say{margin-top:18px}
.scopegrid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,6vw,96px);align-items:start}
.rails{margin-top:28px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--goldt);padding-top:16px;border-top:1px solid var(--rule);max-width:56ch}
.domains{list-style:none;border-top:2px solid var(--teal);margin-top:clamp(8px,2vh,24px)}
.domains li{padding:18px 0;border-bottom:1px solid var(--rule)}
.domains b{display:block;font-family:var(--disp);font-weight:400;font-size:clamp(22px,1.9vw,26px);line-height:1.15;color:var(--teal)}
.domains span{display:block;margin-top:5px;font-size:15px;line-height:1.6;color:var(--body);max-width:52ch}
.beyond{margin-top:clamp(36px,5vh,52px);max-width:64ch}
@media(max-width:900px){.scopegrid{grid-template-columns:1fr}}
.rails{max-width:none}
@media(min-width:901px){.scopegrid>div:first-child{position:sticky;top:calc(var(--mh) + 32px)}}

/* two-column split: statement left, evidence right */
.mv,.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,88px);align-items:start}
.mv+.mv{margin-top:clamp(80px,12vh,132px)}
.band .eyebrow+.mv{margin-top:0}
.mvd .forge,.mvd .doors{margin-top:clamp(8px,1.5vh,18px);max-width:none}
.mvd .forge{grid-template-columns:1fr 1fr}
.split .lines,.split .tl{margin-top:clamp(8px,1.5vh,18px);max-width:none}
.split .wnote{margin-top:28px}
.st .say{max-width:14ch}
@media(min-width:1001px){.mvt,.st{position:sticky;top:calc(var(--mh) + 32px)}}
@media(max-width:1000px){.mv,.split{grid-template-columns:1fr}.mvd .forge,.split .lines,.split .tl,.mvd .doors{margin-top:clamp(24px,4vh,40px)}.st .say{max-width:18ch}}
@media(max-width:680px){.mvd .forge{grid-template-columns:1fr}}
@media(min-width:1001px) and (max-width:1180px){.mvd .doors{grid-template-columns:1fr}.mvd .door+.door{border-left:0;border-top:1px solid rgba(255,255,255,.16)}}
