@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/InstrumentSerif-italic-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/InstrumentSerif-italic-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/InstrumentSerif-normal-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/InstrumentSerif-normal-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/InterTight-normal-300_700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter Tight';font-style:normal;font-weight:300 700;font-display:swap;src:url(/assets/fonts/InterTight-normal-300_700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/JetBrainsMono-normal-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/JetBrainsMono-normal-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* ML AVIATION: doradztwo inżynierskie. Ink + bone, one cobalt accent, drafting details. */
:root{
  --ink:#0b0f14; --ink-2:#121821; --ink-3:#1b2430;
  --bone:#f1ede4; --bone-2:#e8e3d7; --paper:#f7f5ef;
  --tx:#11161d; --tx-2:#4a525d; --tx-3:#626a75;
  --on:#eceae4; --on-2:#a3a9b2; --on-3:#858e9b;
  --line:rgba(17,22,29,.14); --line-on:rgba(236,234,228,.14);
  --ac:#3d74ff; --ac-ink:#1f4fd6; --ac-soft:rgba(61,116,255,.14);
  --serif:'Instrument Serif',ui-serif,Georgia,serif;
  --sans:'Inter Tight',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --gut:clamp(16px,4vw,56px); --max:1440px;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--paper);color:var(--tx);font:400 17px/1.55 var(--sans);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-weight:400}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--ac);outline-offset:3px}
em{font-style:italic}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--ac-ink);color:#fff;padding:10px 14px;text-decoration:none;font-weight:600;transition:top .2s}
.skip:focus{top:12px}
main:focus{outline:none}
.sr,.mx__l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.hd{position:fixed;inset:0 0 auto;z-index:50;color:var(--on);transition:background .35s var(--ease),border-color .35s,color .35s;border-bottom:1px solid transparent}
.hd.is-scrolled{background:rgba(11,15,20,.82);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-color:var(--line-on)}
.hd.is-light{background:rgba(247,245,239,.86);color:var(--tx);border-color:var(--line)}
.hd__in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand__mk{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6}
.brand__mk rect{stroke-width:1.2}
.brand__nm{font:600 14px/1 var(--sans);letter-spacing:.22em}
.brand__ds{font:400 13px/1 var(--sans);color:currentColor;opacity:.62;padding-left:14px;margin-left:2px;border-left:1px solid currentColor;border-color:rgba(127,127,127,.45)}
@media (max-width:1280px){.brand__ds{display:none}}
.nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,40px);font-size:15px}
.nav a{white-space:nowrap;text-decoration:none;opacity:.78;transition:opacity .2s;padding:10px 0}
.nav a:hover{opacity:1}
.nav__lang{font:500 12px/1 var(--mono)!important;letter-spacing:.1em;padding:10px 4px!important}
.nav__cta{opacity:1!important;border:1px solid currentColor;padding:10px 18px!important;border-radius:999px;transition:background .25s,color .25s!important}
.nav__cta:hover{background:var(--on);color:var(--ink)}
.hd.is-light .nav__cta:hover{background:var(--tx);color:var(--paper)}
@media (max-width:760px){.brand__nm{font-size:13px}}

/* labels */
.eyebrow,.kicker{font:500 12px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.kicker{color:var(--tx-3);display:flex;align-items:center;gap:12px}
.kicker::before{content:"";width:28px;height:1px;background:currentColor}
.eyebrow{display:flex;align-items:center;gap:10px;color:var(--on-2)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 0 rgba(61,116,255,.5);animation:pulse 2.6s 1}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(61,116,255,.55)}70%{box-shadow:0 0 0 10px rgba(61,116,255,0)}100%{box-shadow:0 0 0 0 rgba(61,116,255,0)}}

/* hero */
.hero{position:relative;background:var(--ink);color:var(--on);padding-top:120px;overflow:hidden;isolation:isolate}
.hero__grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--line-on) 1px,transparent 1px),linear-gradient(90deg,var(--line-on) 1px,transparent 1px);background-size:80px 80px;opacity:.35;mask-image:radial-gradient(120% 90% at 30% 20%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(120% 90% at 30% 20%,#000 30%,transparent 80%)}
.hero__txt{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:end}
.hero__txt .eyebrow{grid-column:1/-1;margin-bottom:-8px}
.hero__h{font:400 clamp(42px,6vw,96px)/.96 var(--serif);letter-spacing:-.022em;text-wrap:balance}
.hero__h em{color:#9fb8ff}
.hero__sub{display:grid;gap:28px;padding-bottom:10px}
.hero__sub p{color:var(--on-2);font-size:clamp(16px,1.25vw,18px);max-width:44ch}
.btn{display:inline-flex;align-items:center;gap:12px;justify-self:start;text-decoration:none;font-weight:500;font-size:15px;background:var(--ac-ink);color:#fff;padding:14px 22px;border-radius:999px;transition:transform .25s var(--ease),background .25s}
.btn:hover{background:#2e62e8;transform:translateY(-1px)}
.btn span{transition:transform .25s var(--ease)}
.btn:hover span{transform:translateX(4px)}
@media (max-width:900px){.hero{padding-top:112px}.hero__txt{grid-template-columns:1fr;gap:24px}.hero__txt .eyebrow{margin-bottom:0}}

/* drawing */
.dwg{position:relative;margin:clamp(20px,2.6vw,40px) auto 0;max-width:1680px;padding:0 clamp(0px,1.5vw,24px)}
.dwg__swipe{display:none}
@keyframes nudge{50%{transform:translateX(4px)}}
.dwg__svg{display:block;width:100%;height:auto;overflow:visible;fill:none;stroke:var(--on);stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.dwg__svg text{fill:var(--on-2);stroke:none;font:400 11px var(--mono);letter-spacing:.04em}
.dwg__ruler path{stroke:var(--on-3);stroke-width:1}
.dwg__ruler text{fill:var(--on-3)}
.ground__h{stroke:none}
#hatch line{stroke:var(--on-3);stroke-width:1}
.fill-h{stroke:none;opacity:.8}
.dsh{stroke-dasharray:4 5;stroke:var(--on-2)}
.dim{stroke:var(--on-3);stroke-width:1}
.axis{stroke:var(--ac);opacity:.35;stroke-dasharray:2 6}
.axl circle{stroke:var(--ac);fill:var(--ink)}
.axl text{fill:var(--ac)!important;font-size:10px!important;font-weight:500}
.flow{stroke:var(--ac);stroke-width:2.2;stroke-dasharray:3 9;animation:flow 1.4s linear 3}
.flow--cable{stroke-dasharray:2 7}
@keyframes flow{to{stroke-dashoffset:-24}}
.z{transition:opacity .45s var(--ease)}
.z .dw,.z .dsh{transition:stroke .35s,stroke-width .35s}
.dwg[data-on] .z:not(.is-act){opacity:.2}
.z.is-act .dw{stroke:#c3d2ff;stroke-width:1.5}
.z.is-act .axis{opacity:1}
.co{cursor:pointer;transition:opacity .35s}
.co path{stroke:var(--on-3);stroke-width:1;stroke-dasharray:2 4}
.co circle{fill:var(--ink);stroke:var(--on);transition:fill .25s,stroke .25s}
.co .co__n{fill:var(--on)!important;font-size:10.5px!important;font-weight:500}
.co .co__t{fill:var(--on)!important;font:400 13px var(--sans)!important;letter-spacing:.01em!important}
.co:hover circle,.co:focus-visible circle,.co.is-act circle{fill:var(--ac);stroke:var(--ac)}
.co:focus{outline:none}
.co:focus-visible circle{stroke-width:3}
.dwg[data-on] .co:not(.is-act){opacity:.35!important}
.xh{pointer-events:none;opacity:0;transition:opacity .25s}
.dwg.is-xh .xh{opacity:1}
.xh path{stroke:var(--ac);stroke-width:.8;opacity:.55}
.xh__t{fill:#b9caff!important;font-size:10.5px!important}
.tb{position:absolute;right:clamp(16px,2vw,32px);bottom:-6px;display:flex;border:1px solid var(--line-on);font:400 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--on-3);background:var(--ink)}
.tb span{padding:8px 12px;border-left:1px solid var(--line-on)}
.tb span:first-child{border-left:0;color:var(--on)}
.tb b{font-weight:500}

/* draw-on */
.js .dwg .dw{stroke-dasharray:1;stroke-dashoffset:1}
.js .dwg.is-drawn .dw{animation:draw 1.6s var(--ease) forwards;animation-delay:calc(var(--d,0) * 1ms)}
@keyframes draw{to{stroke-dashoffset:0}}
.js .dwg .dsh,.js .dwg .fill-h,.js .dwg .dim,.js .dwg .flow,.js .dwg .lbl,.js .dwg .co,.js .dwg .axl,.js .dwg text,.js .dwg .axis{opacity:0;transition:opacity .9s var(--ease)}
.js .dwg.is-done .dsh,.js .dwg.is-done .fill-h,.js .dwg.is-done .dim,.js .dwg.is-done .flow,.js .dwg.is-done .lbl,.js .dwg.is-done .co,.js .dwg.is-done .axl,.js .dwg.is-done text{opacity:1}
.js .dwg.is-done .axis{opacity:.35}
.js .dwg.is-done .z.is-act .axis{opacity:1}

.legend-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 32px;align-items:center;padding-top:24px;padding-bottom:36px;border-top:1px solid var(--line-on);margin-top:22px}
.legend{display:flex;flex-wrap:wrap;gap:8px 4px}
.dwg__cap{justify-self:end;text-align:right;max-width:46ch;font-size:14.5px;line-height:1.45;color:var(--on-2);min-height:2.9em;display:flex;align-items:center;transition:color .3s}
.dwg__cap.is-on{color:var(--on)}
@media (max-width:1180px){.legend-row{grid-template-columns:1fr}.dwg__cap{justify-self:start;text-align:left}}
.legend a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--on-2);font-size:14px;padding:8px 14px 8px 8px;border-radius:999px;transition:color .2s,background .2s}
.legend i{font:normal 500 10.5px var(--mono);width:26px;height:26px;border-radius:50%;border:1px solid var(--line-on);display:grid;place-items:center;color:var(--on);transition:background .2s,border-color .2s}
.legend a:hover,.legend a.is-act{color:var(--on);background:rgba(255,255,255,.05)}
.legend a:hover i,.legend a.is-act i{background:var(--ac);border-color:var(--ac)}
@media (max-width:760px){
  .dwg{margin-top:28px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .dwg::-webkit-scrollbar{display:none}
  .dwg__svg{width:880px;max-width:none;margin-left:-8px}
  .co .co__t{display:none}
  .tb{display:none}
  .dwg__swipe{display:block;position:sticky;left:calc(100% - 150px);bottom:0;width:max-content;margin:-34px 0 0;padding:7px 12px;border:1px solid var(--line-on);border-radius:999px;background:rgba(11,15,20,.85);font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-2);transition:opacity .4s}
  .dwg__swipe span{display:inline-block;animation:nudge 1.6s var(--ease) 3}
  .dwg.is-swiped .dwg__swipe{opacity:0}
  .legend-row{padding-top:18px;padding-bottom:32px;margin-top:10px}
  .legend a{font-size:13.5px}
}

/* thesis */
.thesis{padding-top:clamp(88px,11vw,168px);padding-bottom:clamp(72px,9vw,136px)}
.thesis__h{margin-top:28px;font:400 clamp(30px,3.9vw,58px)/1.08 var(--serif);letter-spacing:-.012em;max-width:27ch;text-wrap:balance}
.thesis__h span{color:var(--tx-3)}
.thesis__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,48px);margin-top:clamp(48px,6vw,88px);border-top:1px solid var(--line)}
.thesis__cols>div{padding-top:24px}
.thesis__cols b{display:block;font-weight:600;font-size:17px;margin-bottom:10px}
.thesis__cols p{color:var(--tx-2);font-size:16px;max-width:36ch}
@media (max-width:760px){.thesis__cols{grid-template-columns:1fr;gap:0}.thesis__cols>div{padding:22px 0;border-bottom:1px solid var(--line)}}

/* section heads */
.sec-head{display:grid;gap:22px;margin-bottom:clamp(40px,5vw,72px)}
.sec-head--split{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:clamp(24px,5vw,96px)}
.sec-head--split>div{display:grid;gap:22px}
.sec-h{font:400 clamp(38px,5.2vw,80px)/1 var(--serif);letter-spacing:-.02em;text-wrap:balance}
.sec-h em{color:var(--tx-3)}
.sec-p{color:var(--tx-2);max-width:46ch;font-size:17px}
@media (max-width:900px){.sec-head--split{grid-template-columns:1fr}}

/* practice explorer */
.px{background:var(--bone);padding:clamp(80px,10vw,152px) 0;border-top:1px solid var(--line)}
.px__body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:clamp(32px,5vw,96px);align-items:start}
.px__tabs{display:grid;border-top:1px solid var(--line);position:sticky;top:104px}
.px__tabs button{display:flex;align-items:baseline;gap:18px;text-align:left;padding:20px 4px 18px;border-bottom:1px solid var(--line);color:var(--tx-3);transition:color .3s,padding .4s var(--ease);position:relative}
.px__tabs button::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--ac);transition:width .6s var(--ease)}
.px__tabs i{font:normal 500 11px var(--mono);letter-spacing:.08em;width:22px;flex:none}
.px__tabs span{font:400 clamp(26px,2.6vw,40px)/1.05 var(--serif);letter-spacing:-.01em}
.px__tabs button:hover{color:var(--tx-2)}
.px__tabs button[aria-selected="true"]{color:var(--tx);padding-left:14px}
.px__tabs button[aria-selected="true"]::after{width:100%}
.px__tabs button[aria-selected="true"] i{color:var(--ac-ink)}
.pp{display:none;outline:none}
.pp:focus-visible{outline:2px solid var(--ac-ink);outline-offset:6px}
.pp.is-on{display:block;animation:ppIn .6s var(--ease)}
@keyframes ppIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.pp__h{display:none}
.pp__lead{font:400 clamp(22px,2vw,30px)/1.3 var(--serif);letter-spacing:-.005em;color:var(--tx);max-width:34ch;text-wrap:pretty}
.pp__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,48px);margin-top:clamp(36px,4vw,56px)}
.pp h4{font:500 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:6px}
.qs{counter-reset:q}
.qs li{counter-increment:q;display:grid;grid-template-columns:30px 1fr;padding:12px 0;border-bottom:1px dashed var(--line);font-size:16px;color:var(--tx)}
.qs li::before{content:"0" counter(q);font:500 11px/1.9 var(--mono);color:var(--ac-ink)}
.dl li{display:grid;grid-template-columns:22px 1fr;padding:12px 0;border-bottom:1px dashed var(--line);font-size:16px;color:var(--tx-2)}
.dl li::before{content:"";width:9px;height:9px;border:1px solid var(--tx-3);margin-top:7px}
.pp__tags{margin-top:clamp(28px,3vw,44px)}
.pp__tags ul{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pp__tags li{font:400 13px/1 var(--sans);padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--tx-2)}
@media (max-width:960px){
  .px__body{grid-template-columns:1fr}
  .px__tabs{display:none}
  .pp,.pp.is-on{display:block;animation:none;padding:36px 0;border-top:1px solid var(--line)}
  .pp,.pp.is-on{padding:0}
  .pp:last-child{border-bottom:1px solid var(--line)}
  .pp__h{display:block;font:400 32px/1 var(--serif);margin:0}
  .pp__h button{display:flex;align-items:baseline;gap:14px;width:100%;text-align:left;padding:24px 0;font:inherit}
  .pp__h i{font:normal 500 11px var(--mono);color:var(--ac-ink)}
  .pp__h button::after{content:"+";margin-left:auto;font:300 28px/1 var(--sans);color:var(--tx-3);transition:transform .3s var(--ease)}
  .pp.is-open .pp__h button::after{transform:rotate(45deg)}
  .pp:not(.is-open) .pp__body{display:none}
  .pp.is-open{padding-bottom:36px}
  .pp__cols{grid-template-columns:1fr}
}

/* lifecycle matrix */
.cy{padding:clamp(80px,10vw,152px) 0;background:var(--paper)}
.cy__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.cy__chips button{font-size:14px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;color:var(--tx-2);transition:background .2s,color .2s,border-color .2s}
.cy__chips button:hover{border-color:var(--tx-3);color:var(--tx)}
.cy__chips button[aria-checked="true"]{background:var(--tx);border-color:var(--tx);color:var(--paper)}
.mx{display:grid;grid-template-columns:150px repeat(6,minmax(0,1fr));grid-template-rows:auto auto repeat(5,auto);border-top:1px solid var(--tx);position:relative}
.mx__corner{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;justify-content:space-between;padding:16px 14px 16px 0;font:500 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);border-bottom:1px solid var(--line)}
.mx__rh{grid-column:1;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;padding:14px 12px 14px 0;border-bottom:1px solid var(--line);transition:opacity .35s,color .35s}
.mx__rh i{font:normal 500 10.5px var(--mono);color:var(--tx-3)}
.mx__col{grid-column:var(--c);grid-row:1/span 7;display:grid;grid-template-rows:subgrid;border-left:1px solid var(--line);position:relative;transition:background .35s}
.mx__col ul{display:contents}
.mx__hd{padding:16px 14px 6px;display:flex;align-items:baseline;gap:10px}
.mx__n{font:500 10.5px var(--mono);color:var(--ac-ink);letter-spacing:.06em}
.mx__hd h3{font:400 26px/1 var(--serif)}
.mx__q{padding:4px 14px 16px;font-size:13.5px;line-height:1.4;color:var(--tx-2);border-bottom:1px solid var(--line)}
.mx__col li{position:relative;padding:14px;font-size:14px;line-height:1.35;border-bottom:1px solid var(--line);display:flex;align-items:center;transition:opacity .35s,background .25s,color .25s}
.mx__col:hover{background:rgba(61,116,255,.05)}
.mx__col li:hover{background:var(--ac-soft)}
.mx__col::before{content:"";position:absolute;left:-1px;top:-1px;height:2px;width:0;background:var(--ac);transition:width .8s var(--ease);transition-delay:calc((var(--c) - 2) * 90ms)}
.mx.is-in .mx__col::before{width:calc(100% + 1px)}
.mx[data-s]:not([data-s="all"]) .mx__col li,.mx[data-s]:not([data-s="all"]) .mx__rh{color:var(--tx-3)}
.mx[data-s="biogaz"] [data-s="biogaz"],.mx[data-s="energetyka"] [data-s="energetyka"],.mx[data-s="budownictwo"] [data-s="budownictwo"],.mx[data-s="drogi"] [data-s="drogi"],.mx[data-s="projektowanie"] [data-s="projektowanie"]{background:var(--ac-soft);color:var(--tx)!important;box-shadow:inset 0 -2px 0 var(--ac-ink)}
.mx.is-hl .mx__col li,.mx.is-hl .mx__rh{color:var(--tx-3)}
.mx.is-hl .is-hl{color:var(--tx);background:var(--ac-soft)}
@media (max-width:1280px){
  .mx{display:block;border-top:0}
  .mx__corner,.mx__rh{display:none}
  .mx__col{display:block;border-left:0;border-top:1px solid var(--tx);padding-bottom:20px}
  .mx__col::before{display:none}
  .mx__hd{padding:18px 0 4px}
  .mx__q{padding:4px 0 12px;font-size:15px}
  .mx__col ul{display:block}
  .mx__col li{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:11px 0;font-size:15px}
  .mx__l{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:normal!important;font:500 10.5px/1.9 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--tx-3)}
  .mx[data-s]:not([data-s="all"]) .mx__col li:not(.is-sel){display:none}
  .mx[data-s]:not([data-s="all"]) .mx__col li{background:none;box-shadow:none;color:var(--tx)!important}
  .mx__col:hover{background:none}
}

/* engagement */
.ws{background:var(--ink);color:var(--on);padding:clamp(80px,10vw,152px) 0}
.ws .kicker{color:var(--on-3)}
.ws .sec-h em{color:var(--on-3)}
.ws__list{border-top:1px solid var(--line-on)}
.ws__list li{display:grid;grid-template-columns:80px minmax(0,1.6fr) minmax(0,.8fr);gap:clamp(16px,3vw,48px);align-items:baseline;padding:clamp(28px,3vw,40px) 0;border-bottom:1px solid var(--line-on);position:relative;transition:padding .45s var(--ease)}
.ws__list li::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--ac);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease)}
.ws__list li:hover{padding-left:20px}
.ws__list li:hover::before{transform:none}
.ws__n{font:400 56px/1 var(--serif);color:var(--on-3);transition:color .3s}
.ws__list li:hover .ws__n{color:#9fb8ff}
.ws__b h3{font:400 clamp(28px,2.6vw,40px)/1.05 var(--serif);margin-bottom:12px}
.ws__b p{color:var(--on-2);max-width:56ch}
.ws__for{font:500 12px/1.5 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--on-3);justify-self:end;text-align:right}
@media (max-width:860px){.ws__list li{grid-template-columns:44px 1fr}.ws__n{font-size:36px}.ws__for{grid-column:2;justify-self:start;text-align:left;margin-top:8px}.ws__list li:hover{padding-left:0}}

/* contact */
.ct{background:var(--bone);padding:clamp(88px,11vw,168px) 0;border-top:1px solid var(--line)}
.ct__in{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(40px,6vw,120px);align-items:start}
.ct__h{margin-top:24px;font:400 clamp(40px,5.4vw,84px)/1 var(--serif);letter-spacing:-.02em;text-wrap:balance}
.ct__h em{color:var(--tx-3)}
.ct__p{margin-top:28px;color:var(--tx-2);max-width:46ch;font-size:18px}
.ct__facts{margin:0;border-top:1px solid var(--tx)}
.ct__facts>div{padding:20px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:140px 1fr;gap:16px}
.ct__facts dt{font:500 12px/1.8 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3)}
.ct__facts dd{margin:0;font-size:16px;line-height:1.6}
@media (max-width:900px){.ct__in{grid-template-columns:1fr}.ct__facts>div{grid-template-columns:1fr;gap:6px}}

/* footer */
.ft{background:var(--ink);color:var(--on-2);padding:56px 0 40px;font-size:14px}
.ft__in{display:grid;grid-template-columns:auto 1fr;gap:20px 48px;align-items:center}
.brand--ft{color:var(--on)}
.ft__legal,.ft__c{grid-column:1/-1;color:var(--on-3);font-size:12.5px;max-width:110ch}
.ft__legal{padding-top:24px;border-top:1px solid var(--line-on)}
@media (max-width:700px){.ft__in{grid-template-columns:1fr}}

/* reveal */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  .js .dwg .dw{stroke-dasharray:none;stroke-dashoffset:0}
  .js .dwg .dsh,.js .dwg .fill-h,.js .dwg .dim,.js .dwg .flow,.js .dwg .lbl,.js .dwg .co,.js .dwg .axl,.js .dwg text{opacity:1}
  .js .dwg .axis{opacity:.35}
  .flow{stroke-dasharray:none}
}

/* sub-page hero (planner and field pages) */
.sh{background:var(--ink);color:var(--on);padding:150px 0 72px;position:relative;overflow:hidden;isolation:isolate}
.sh .hero__grid{opacity:.28}
.sh__crumb{font:500 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-3);display:flex;gap:10px;flex-wrap:wrap}
.sh__crumb a{text-decoration:none;color:var(--on-2)}
.sh__crumb a:hover{color:var(--on)}
.sh__h{margin-top:26px;font:400 clamp(42px,6vw,96px)/.98 var(--serif);letter-spacing:-.02em;max-width:18ch;text-wrap:balance}
.sh__h em{color:#9fb8ff}
.sh__p{margin-top:26px;color:var(--on-2);max-width:60ch;font-size:clamp(16px,1.3vw,19px)}
@media (max-width:760px){.sh{padding:120px 0 48px}}

/* planner */
.pl{padding:clamp(48px,6vw,88px) 0 clamp(80px,10vw,140px);background:var(--paper)}
.pl__step{font:500 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);margin:0 0 14px;display:flex;align-items:center;gap:10px}
.pl__step b{color:var(--ac-ink);font-weight:500}
.pl__types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:34px}
.pl__types button{text-align:left;padding:18px 18px 16px;border:1px solid var(--line);background:var(--bone);display:grid;gap:6px;transition:border-color .2s,background .2s,transform .3s var(--ease)}
.pl__types button:hover{border-color:var(--tx-3)}
.pl__types button[aria-checked="true"]{background:var(--ink);border-color:var(--ink);color:var(--on)}
.pl__types b{font:400 22px/1.1 var(--serif)}
.pl__types span{font-size:13px;color:var(--tx-3)}
.pl__types button[aria-checked="true"] span{color:var(--on-2)}
.pl__qs{display:flex;flex-wrap:wrap;gap:14px 40px;margin-bottom:40px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pl__q{border:0;margin:0;padding:0;min-width:0}
.pl__q legend{font-size:14px;color:var(--tx-2);margin-bottom:10px;padding:0}
.pl__q>div{display:flex;gap:6px;flex-wrap:wrap}
.pl__q label{position:relative;cursor:pointer}
.pl__q input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.pl__q span{display:block;font-size:14px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;transition:background .2s,color .2s,border-color .2s}
.pl__q input:checked+span{background:var(--tx);color:var(--paper);border-color:var(--tx)}
.pl__q input:focus-visible+span{outline:2px solid var(--ac);outline-offset:2px}
.pl__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}
.pl__count{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3)}
.pl__print{font-size:14px;padding:9px 16px;border:1px solid var(--line);border-radius:999px}
.pl__print:hover{border-color:var(--tx)}
.pl__body{display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.pl__graph{position:relative;display:grid;grid-template-columns:104px repeat(var(--cols),minmax(140px,1fr));grid-template-rows:repeat(var(--rows),auto);gap:18px 26px;padding:6px 0;overflow-x:auto}
.pl__wires{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;fill:none;stroke:var(--tx-3);stroke-width:1.1;z-index:0}
.pl__wires path{opacity:.45;transition:stroke .3s,opacity .3s,stroke-width .3s}
.pl__wires path.is-on{stroke:var(--ac);opacity:1;stroke-width:1.8}
.pl__lane{grid-column:1;display:flex;align-items:center;font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3);border-top:1px dashed var(--line);padding-top:8px}
.pl__node{position:relative;z-index:1;text-align:left;display:grid;gap:4px;align-content:start;padding:14px 14px 13px;background:var(--paper);border:1px solid var(--line);transition:border-color .2s,box-shadow .3s,background .2s,opacity .5s var(--ease),transform .5s var(--ease)}
.pl__node::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:var(--trk,var(--tx-3))}
.pl__node[data-track="formal"]{--trk:#8a6d3b}.pl__node[data-track="grid"]{--trk:var(--ac)}.pl__node[data-track="build"]{--trk:#2f6f5e}.pl__node[data-track="road"]{--trk:#6b5b95}.pl__node[data-track="ops"]{--trk:#4a525d}
.pl__node i{font:normal 500 10.5px var(--mono);color:var(--tx-3)}
.pl__node b{font-weight:600;font-size:14.5px;line-height:1.25}
.pl__node span{font-size:12.5px;color:var(--tx-2);line-height:1.3}
.pl__node em{font:normal 500 10.5px/1.4 var(--mono);color:var(--ac-ink);margin-top:4px}
.pl__node:hover{border-color:var(--tx-3)}
.pl__node.is-up{background:#eef2ff;border-color:rgba(61,116,255,.35)}
.pl__node[aria-pressed="true"]{background:var(--ink);color:var(--on);border-color:var(--ink);box-shadow:0 14px 34px -18px rgba(11,15,20,.6)}
.pl__node[aria-pressed="true"] span{color:var(--on-2)}
.pl__node[aria-pressed="true"] em{color:#9fb8ff}
.pl__node[aria-pressed="true"] i{color:var(--on-3)}
.js .pl__graph .pl__node{opacity:0;transform:translateY(8px)}
.js .pl__graph.is-in .pl__node{opacity:1;transform:none;transition-delay:calc(var(--i) * 40ms)}
.pl__detail{background:var(--bone);border:1px solid var(--line);padding:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px 48px;align-items:start}
.pl__detail>:not(dl){grid-column:1}
.pl__detail dl{grid-column:2;grid-row:1/span 4;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.pl__detail dl>.pl__risk{grid-column:1/-1}
.pl__dk{font:500 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3)}
.pl__detail h3{font:400 30px/1.05 var(--serif);margin:10px 0 12px}
.pl__dt{color:var(--tx-2);font-size:15px;margin-bottom:12px}
.pl__detail dl{margin:0}
.pl__detail dl>div{padding:11px 0;border-top:1px solid var(--line)}
.pl__detail dt{font:500 11.5px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3)}
.pl__detail dd{margin:2px 0 0;font-size:14.5px;line-height:1.45}
.pl__risk dd{color:#8a3b2f}
.pl__src{margin-top:14px;font-size:12.5px;color:var(--tx-3)}
.pl__src a{color:var(--ac-ink)}
.pl__note{margin-top:28px;font-size:13.5px;color:var(--tx-3);max-width:80ch}
@media (max-width:1180px){.pl__types{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.pl__detail{display:block;padding:22px}.pl__detail dl{display:block}}
@media (max-width:760px){
  .pl__graph .pl__detail{margin:-6px 0 18px;padding:20px;border-color:var(--tx)}
  .pl__types{grid-template-columns:1fr 1fr}
  .pl__types button:last-child:nth-child(odd){grid-column:1/-1}
  .pl__graph{display:block;padding-left:30px}
  .pl__lane{display:none}
  .pl__node{width:100%;margin-bottom:14px}
  .pl__node::after{content:"";position:absolute;left:-21px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1.5px solid var(--trk,var(--tx-3))}
  .pl__wires{display:none}
  .pl__graph::before{content:"";position:absolute;left:12px;top:20px;bottom:20px;width:1px;background:var(--line)}
}
.pl__out{display:none}
@media print{
  @page{size:A4 landscape;margin:12mm 10mm}
  body{background:#fff;color:#000;font-size:10pt}
  .hd,.sh,.ft,.skip,.mnu,.pl>.wrap>:not(.pl__out){display:none!important}
  .pl{padding:0;background:#fff}
  .pl__out{display:block}
  .po__tb{display:flex;border:1px solid #000;font:500 9pt/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
  .po__tb>*{padding:8px 12px;border-right:1px solid #999}
  .po__tb span:first-of-type{flex:1;font:400 14pt/1 var(--serif);letter-spacing:0;text-transform:none}
  .po__tb span:last-child{border-right:0}
  .po__a{margin:12px 0}
  .po__a h3,.po__t th{font:500 8pt/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#444}
  .po__a ul{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:6px}
  .po__a li span{color:#444}
  .po__t{width:100%;border-collapse:collapse;font-size:8.5pt;line-height:1.35}
  .po__t th,.po__t td{border-bottom:1px solid #bbb;padding:6px 6px;text-align:left;vertical-align:top}
  .po__t thead th{border-bottom:1.5px solid #000}
  .po__t tr{break-inside:avoid}
  .po__t td:first-child{font-family:var(--mono);width:28px}
  .po__t td:nth-child(2){width:24%}
  .po__t td p{margin-top:3px;color:#333}
  .po__t small{font-family:var(--mono);font-size:7pt;color:#555;text-transform:uppercase;letter-spacing:.06em}
  .po__t td:last-child{font-size:7pt;color:#333;word-break:break-all;width:14%}
  .po__n{margin-top:12px;font-size:8pt;color:#333;max-width:none}
}

/* teaser on home + panel link */
.pp__more{display:inline-flex;gap:10px;margin-top:30px;font-weight:500;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.pp__more span{transition:transform .25s var(--ease)}
.pp__more:hover span{transform:translateX(4px)}

/* field pages */
.fp__sec{padding:clamp(64px,8vw,120px) 0;background:var(--paper);border-top:1px solid var(--line)}
.fp__sec--bone{background:var(--bone)}
.fp__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:clamp(28px,5vw,96px);align-items:start}
.fp__h{font:400 clamp(32px,3.4vw,52px)/1.02 var(--serif);letter-spacing:-.015em;text-wrap:balance}
.fp__grid>.fp__h{position:sticky;top:104px}
.fp__list,.fp__scope,.fp__risks{border-top:1px solid var(--tx)}
.fp__list li,.fp__scope li,.fp__risks li{padding:22px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:20px}
.fp__scope{counter-reset:s}
.fp__scope li{counter-increment:s}
.fp__scope li b::before{content:"0" counter(s);font:500 11px var(--mono);color:var(--ac-ink);margin-right:14px;vertical-align:2px}
.fp__list b,.fp__scope b,.fp__risks b{font-weight:600;font-size:17px;line-height:1.35}
.fp__list p,.fp__scope p,.fp__risks p{color:var(--tx-2);font-size:16px}
.fp__risks li b{color:#8a3b2f}
.fp__faq{border-top:1px solid var(--tx)}
.fp__faq details{border-bottom:1px solid var(--line)}
.fp__faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-weight:600;font-size:17px;position:relative}
.fp__faq summary::-webkit-details-marker{display:none}
.fp__faq summary::after{content:"+";position:absolute;right:4px;top:14px;font:300 28px var(--sans);color:var(--tx-3);transition:transform .3s var(--ease)}
.fp__faq details[open] summary::after{transform:rotate(45deg)}
.fp__faq p{padding:0 0 22px;color:var(--tx-2);max-width:70ch}
.fp__path{background:var(--ink);color:var(--on);padding:clamp(56px,7vw,96px) 0}
.fp__pathin,.fp__endin{display:flex;justify-content:space-between;align-items:end;gap:32px;flex-wrap:wrap}
.fp__pathin p{color:var(--on-2);margin-top:14px;max-width:52ch}
.fp__end{background:var(--bone);padding:clamp(64px,8vw,120px) 0 48px;border-top:1px solid var(--line)}
.fp__endin p{color:var(--tx-2);margin-top:14px}
.fp__others{margin-top:clamp(56px,7vw,96px);padding-top:28px;border-top:1px solid var(--line);display:grid;gap:18px}
.fp__others nav{display:flex;flex-wrap:wrap;gap:8px}
.fp__others a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:10px 16px 10px 10px;border:1px solid var(--line);border-radius:999px;font-size:15px;transition:border-color .2s,background .2s}
.fp__others a:hover{border-color:var(--tx);background:var(--paper)}
.fp__others i{font:normal 500 10.5px var(--mono);color:var(--ac-ink)}
@media (max-width:900px){.fp__grid{grid-template-columns:1fr}.fp__grid>.fp__h{position:static}.fp__list li,.fp__scope li,.fp__risks li{grid-template-columns:1fr;gap:8px}}

/* field hero art: the home drawing framed on one zone */
.sh--art .sh__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:end}
.dwg--mini{margin:0;padding:0;max-width:none}
.dwg--mini .dwg__svg{width:100%;height:auto;max-height:440px;overflow:hidden}
.dwg--mini .dwg__ruler{display:none}
.dwg--mini.is-done .z.is-act .lbl,.dwg--mini .z.is-act text{opacity:1}
@media (max-width:900px){.sh--art .sh__in{grid-template-columns:1fr}.dwg--mini{margin-top:12px}.dwg--mini .dwg__svg{width:100%;margin:0;max-height:300px}}
@media (max-width:760px){.dwg.dwg--mini{overflow:visible}.dwg--mini .dwg__svg{width:100%}}

/* planner teaser on home */
.pt{background:var(--ink-2);color:var(--on);padding:clamp(72px,9vw,128px) 0;border-top:1px solid var(--line-on)}
.pt .kicker{color:var(--on-3)}
.pt .sec-h em{color:#9fb8ff}
.pt__in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(32px,5vw,96px);align-items:end}
.pt__p{color:var(--on-2);margin:24px 0 32px;max-width:52ch}
.pt__chips{display:grid;border-top:1px solid var(--line-on)}
.pt__chips a{display:flex;justify-content:space-between;align-items:center;padding:18px 4px;border-bottom:1px solid var(--line-on);text-decoration:none;font:400 26px/1.1 var(--serif);color:var(--on);transition:padding .35s var(--ease),color .2s}
.pt__chips a::after{content:"→";font:400 16px var(--sans);color:var(--on-3);transition:transform .3s var(--ease),color .2s}
.pt__chips a:hover{padding-left:14px;color:#c3d2ff}
.pt__chips a:hover::after{transform:translateX(4px);color:#c3d2ff}
@media (max-width:900px){.pt__in{grid-template-columns:1fr}}

/* menu (below 1100 px) */
.nav__menu{display:none;font-size:14px;padding:10px 16px;border:1px solid currentColor;border-radius:999px;opacity:.9}
.mnu{background:var(--ink);color:var(--on);border-top:1px solid var(--line-on);max-height:calc(100vh - 72px);overflow:auto}
.mnu__in{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-top:28px;padding-bottom:36px}
.mnu .kicker{color:var(--on-3);margin-bottom:10px}
.mnu ul{display:grid}
.mnu a{display:flex;gap:12px;align-items:baseline;text-decoration:none;font:400 28px/1.1 var(--serif);padding:10px 0;border-bottom:1px solid var(--line-on)}
.mnu a i{font:normal 500 10.5px var(--mono);color:#9fb8ff}
.mnu a:hover{color:#c3d2ff}
.hd.is-menu{background:var(--ink)!important;color:var(--on)!important;border-color:var(--line-on)!important}
@media (max-width:1100px){
  .nav a:not(.nav__cta):not(.nav__lang){display:none}
  .nav__menu{display:inline-block}
  .nav{gap:14px}
}
@media (max-width:620px){.mnu__in{grid-template-columns:1fr;gap:12px}.nav__cta{display:none}}

/* initial-review sheet */
.ds{background:var(--paper);padding:clamp(80px,10vw,152px) 0;border-top:1px solid var(--line)}
.ds__sheet{background:#fffdf8;border:1px solid var(--tx);box-shadow:0 30px 60px -40px rgba(11,15,20,.35);position:relative}
.ds__sheet::before{content:"";position:absolute;inset:8px;border:1px solid var(--line);pointer-events:none}
.ds__tb{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--tx);font:500 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-2)}
.ds__tb>*{padding:14px 18px;border-right:1px solid var(--line)}
.ds__tb b{color:var(--tx);font-weight:500}
.ds__tb span:first-of-type{flex:1;color:var(--tx);font:400 18px/1 var(--serif);letter-spacing:0;text-transform:none;padding-top:11px}
.ds__body{display:grid;grid-template-columns:260px minmax(0,1fr)}
.ds h3{font:500 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);margin-bottom:14px}
.ds__in{padding:26px 24px;border-right:1px solid var(--line);background:rgba(241,237,228,.5)}
.ds__in li{font-size:14.5px;padding:10px 0 10px 18px;border-bottom:1px dashed var(--line);position:relative}
.ds__in li::before{content:"";position:absolute;left:0;top:17px;width:8px;height:1px;background:var(--tx-3)}
.ds__main{padding:26px 28px}
.ds__row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);transition:background .3s}
.ds__n{font:400 26px/1 var(--serif);color:var(--tx-3)}
.ds__row b{font-weight:600}
.ds__row p{font-size:14.5px;color:var(--tx-2);margin-top:2px}
.ds__g{display:flex;gap:4px}
.ds__g button{display:flex;align-items:center;gap:7px;font-size:12.5px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--tx-2);transition:background .2s,color .2s,border-color .2s}
.ds__g i{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}
.ds__g [data-v="ok"]{--gc:#2f6f5e}.ds__g [data-v="warn"]{--gc:#8a5e10}.ds__g [data-v="stop"]{--gc:#a3392b}
.ds__g button[aria-checked="true"]{border-color:var(--gc);color:var(--gc);background:color-mix(in srgb,var(--gc) 9%,#fff)}
.ds__g button[aria-checked="true"] i{opacity:1}
.ds__g button:hover{border-color:var(--tx-3)}
.ds__row[data-g="stop"]{background:rgba(163,57,43,.04)}
.ds__rec{border-top:1px solid var(--tx);padding:24px 28px;display:grid;grid-template-columns:auto 1fr;gap:12px 32px;align-items:center}
.ds__rec h3{margin:0}
.ds__recs{display:flex;flex-wrap:wrap;gap:8px}
.ds__recs li{display:flex;align-items:center;gap:9px;font:400 22px/1 var(--serif);padding:10px 16px;border:1px solid var(--line);color:var(--tx-3);transition:all .35s var(--ease)}
.ds__recs li i{width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor}
.ds__recs li.is-on{color:var(--paper);background:var(--tx);border-color:var(--tx)}
.ds__recs li.is-on i{background:#9fb8ff;border-color:#9fb8ff}
.ds__rec p{grid-column:2;font-size:14px;color:var(--tx-2)}
@media (max-width:1180px){.ds__row{grid-template-columns:28px minmax(0,1fr)}.ds__g{grid-column:2;flex-wrap:wrap}}
@media (max-width:900px){
  .ds__body{grid-template-columns:1fr}.ds__in{border-right:0;border-bottom:1px solid var(--line)}
  .ds__rec{grid-template-columns:1fr}.ds__rec p{grid-column:1}
  .ds__tb span:first-of-type{flex-basis:100%;order:-1;border-bottom:1px solid var(--line)}
}
@media (hover:none){.dwg__cap{display:none}}

/* insights */
.ar{background:var(--paper);padding:clamp(56px,7vw,104px) 0}
.ar__in{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr);gap:clamp(28px,5vw,96px);align-items:start}
.ar__aside{position:sticky;top:104px}
.ar__toc{margin-top:18px;border-top:1px solid var(--tx)}
.ar__toc li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--tx-2)}
.ar__toc span{font:500 11px/1.9 var(--mono);color:var(--ac-ink)}
.ar__s{display:grid;grid-template-columns:56px minmax(0,1fr);gap:8px;padding:0 0 clamp(36px,4vw,56px);margin-bottom:clamp(36px,4vw,56px);border-bottom:1px solid var(--line)}
.ar__s:last-child{border-bottom:0;margin-bottom:0}
.ar__k{font:400 40px/1 var(--serif);color:var(--tx-3)}
.ar__s h2{font:400 clamp(28px,2.6vw,40px)/1.08 var(--serif);letter-spacing:-.01em;margin-bottom:18px;text-wrap:balance}
.ar__s p{font-size:17.5px;line-height:1.65;color:var(--tx);max-width:66ch;margin-bottom:14px}
.ar__s p.ar__src{font-size:13px;color:var(--tx-3);margin-top:6px}
.ar__src a{color:var(--ac-ink)}
.ar__ctas{display:flex;flex-wrap:wrap;gap:22px;align-items:center}
.ar__list{display:grid;gap:12px;border-top:1px solid var(--tx)}
.ar__list a{display:grid;gap:10px;padding:28px 0;border-bottom:1px solid var(--line);text-decoration:none}
.ar__list b{font:400 clamp(28px,3vw,44px)/1.05 var(--serif)}
.ar__list b em{color:var(--tx-3)}
.ar__list p{color:var(--tx-2);max-width:70ch}
.ar__list a:hover b{color:var(--ac-ink)}
.ft__nav{display:flex;flex-wrap:wrap;gap:8px 22px;grid-column:1/-1}
.ft__nav a{color:var(--on-2);text-decoration:none;font-size:14px}
.ft__nav a:hover{color:var(--on)}
@media (max-width:900px){.ar__in{grid-template-columns:1fr}.ar__aside{position:static}.ar__s{grid-template-columns:1fr}.ar__k{font-size:28px}}
.sh__p a{color:#c3d2ff}
.fp__ins{background:var(--ink-2);border-top:1px solid var(--line-on)}
.fp__ins a{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:28px 0;text-decoration:none;color:var(--on)}
.fp__ins .kicker{color:var(--on-3)}
.fp__ins b{font:400 clamp(22px,2vw,30px)/1.15 var(--serif)}
.fp__ins a>span:last-child{font-size:20px;color:var(--on-3);transition:transform .3s var(--ease),color .2s}
.fp__ins a:hover b{color:#c3d2ff}.fp__ins a:hover>span:last-child{transform:translateX(5px);color:#c3d2ff}
@media (max-width:700px){.fp__ins a{grid-template-columns:1fr auto}.fp__ins .kicker{grid-column:1/-1}}
.fp__sec>.fp__others{margin-top:0;padding-top:0;border-top:0}

/* connection calculator */
.kc{background:var(--paper);padding:clamp(48px,6vw,88px) 0 clamp(80px,10vw,140px)}
.kc__in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(28px,5vw,80px);align-items:start}
.kc__form{display:grid;gap:22px;position:sticky;top:104px;padding:26px;border:1px solid var(--line);background:var(--bone)}
.kc__f{display:grid;gap:8px;border:0;margin:0;padding:0}
.kc__f>span,.kc__f legend{font-size:14px;color:var(--tx-2);padding:0}
.kc__f em{font-style:normal;color:var(--tx-3);font-size:12.5px}
.kc__num{display:flex;align-items:center;border:1px solid var(--tx);background:var(--paper)}
.kc__num input{flex:1;min-width:0;border:0;background:none;font:400 40px/1 var(--serif);padding:10px 14px;color:var(--tx)}
.kc__num i{font:normal 500 13px var(--mono);padding:0 14px;color:var(--tx-3)}
.kc__f input[type=date]{font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line);background:var(--paper);color:var(--tx)}
.kc__f input:focus-visible,.kc__num:focus-within{outline:2px solid var(--ac);outline-offset:2px}
.kc__num input:focus-visible{outline:none}
.kc__out>.kicker{margin:0 0 14px}
.kc__cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 36px}
.kc__c{border:1px solid var(--line);padding:18px 18px 16px;background:#fffdf8}
.kc__c dt{font:500 11.5px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3)}
.kc__c dd{margin:8px 0 0;display:grid;gap:6px}
.kc__c b{font:400 clamp(26px,2.6vw,38px)/1.05 var(--serif);font-variant-numeric:tabular-nums}
.kc__c small{font-size:13px;color:var(--tx-2);line-height:1.4}
.kc__c[data-k="sum"]{background:var(--ink);border-color:var(--ink);color:var(--on)}
.kc__c[data-k="sum"] dt{color:var(--on-3)}.kc__c[data-k="sum"] small{color:var(--on-2)}
.kc__bar{position:relative;height:10px;background:var(--bone-2);margin:0 0 12px;overflow:hidden}
.kc__seg{position:absolute;left:0;top:0;bottom:0;transition:width .6s var(--ease)}
.kc__seg--l{width:calc(var(--l,0) * 100%);background:var(--ac-ink);opacity:.35}
.kc__seg--v{width:calc(var(--v,0) * 33.33%);background:var(--ac-ink);z-index:1}
@media (max-width:900px){.kc__in{grid-template-columns:1fr}.kc__form{position:static}}
@media (max-width:560px){.kc__cards{grid-template-columns:1fr}}
.pt__ctas{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center}.pt__more{color:var(--on)}
.kc__num--s input{font-size:26px}
.kc__err{min-height:0;margin:-10px 0 0;font-size:14px;color:#a3392b}
.kc__err:empty{display:none}
.kc__num:has(input[aria-invalid="true"]){border-color:#a3392b}
.kc__in>*{min-width:0}.kc__num input{width:0}.kc__f input[type=date]{width:100%;min-width:0}

/* insights on home */
.ih{background:var(--paper);padding:clamp(80px,10vw,152px) 0;border-top:1px solid var(--line)}
.ih__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:stretch}
.ih__lead{position:relative;display:grid;align-content:end;gap:16px;min-height:420px;padding:clamp(28px,3vw,44px);background:var(--ink);color:var(--on);text-decoration:none;overflow:hidden;isolation:isolate}
.ih__lead::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--line-on) 1px,transparent 1px),linear-gradient(90deg,var(--line-on) 1px,transparent 1px);background-size:56px 56px;opacity:.5;transition:opacity .5s}
.ih__lead .kicker{color:var(--on-3)}
.ih__lead b{font:400 clamp(34px,3.6vw,56px)/1.02 var(--serif);letter-spacing:-.015em;max-width:16ch}
.ih__lead b em{color:#9fb8ff}
.ih__lead p{color:var(--on-2);max-width:52ch}
.ih__go{position:absolute;top:clamp(28px,3vw,44px);right:clamp(28px,3vw,44px);font-size:24px;color:var(--on-3);transition:transform .35s var(--ease),color .2s}
.ih__lead:hover .ih__go{transform:translateX(6px);color:#c3d2ff}.ih__lead:hover::before{opacity:.9}
.ih__list{display:grid;border-top:1px solid var(--tx)}
.ih__list a{display:grid;gap:10px;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .35s var(--ease)}
.ih__list b{font:400 clamp(22px,2vw,30px)/1.1 var(--serif)}
.ih__list b em{color:var(--tx-3)}
.ih__list a:hover{padding-left:12px}.ih__list a:hover b{color:var(--ac-ink)}
@media (max-width:900px){.ih__grid{grid-template-columns:1fr}.ih__lead{min-height:320px}}

/* ===== editorial home (2026-10-23 direction) ===== */
:root{--m-ctl:160ms;--m-state:240ms;--m-enter:480ms;--ease2:cubic-bezier(.22,1,.36,1)}
.ar20{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform var(--m-ctl) var(--ease2)}
a:hover>.ar20,a:focus-visible>.ar20,a:hover .ix__go .ar20,a:focus-visible .ix__go .ar20{transform:translateX(3px)}
.btn{min-height:48px;border-radius:2px;padding:0 24px;gap:12px}
.btn--on{background:#eceae4;color:#0b0f14}.btn--on:hover{background:#fff}
.lnk{display:inline-flex;align-items:center;gap:10px;min-height:48px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(17,22,29,.35);transition:text-decoration-color var(--m-ctl)}
.lnk:hover{text-decoration-color:currentColor}
.lnk--on{color:var(--on);text-decoration-color:rgba(236,234,228,.35)}

/* thesis hero, light */
.dh{background:var(--paper);padding:144px 0 64px;border-bottom:1px solid var(--line)}
.dh__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center}
.dh__ds{font:500 13px/18px var(--sans);letter-spacing:.02em;color:var(--tx-2);margin-bottom:24px}
.dh__h{font:400 clamp(48px,6.12vw,88px)/1 var(--serif);letter-spacing:-.02em;max-width:11ch}
.dh__sub{margin-top:24px;max-width:44ch;font-size:20px;line-height:30px;color:var(--tx-2)}
.dh__ctas{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:32px}
.dh__art{position:relative;margin:0;aspect-ratio:4/3;animation:dhIn var(--m-enter) var(--ease2) both}
.dh__art img{display:block;width:100%;height:100%;object-fit:contain}
.dh__lab{position:absolute;transform:translateY(-50%);font:500 13px/18px var(--sans);color:var(--tx);padding-left:10px;border-left:1px solid var(--tx);white-space:nowrap}
@keyframes dhIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (max-width:1100px){.dh{padding:120px 0 56px}.dh__in{grid-template-columns:1fr;gap:40px}.dh__art{width:100%;max-width:587px}}
@media (max-width:760px){.dh{padding:112px 0 40px}.dh__h{font-size:48px;line-height:49px}.dh__sub{font-size:18px;line-height:28px}.dh__lab{display:none}.dh__leg{display:block}}

/* featured brief, the one dark block */
.fb{background:var(--ink);color:var(--on);padding:88px 0}
.fb__in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,72px);align-items:center}
.fb__art{margin:0;background:#e8e3d7;aspect-ratio:4/3;overflow:hidden}
.fb__art img{display:block;width:100%;height:100%;object-fit:cover}
.fb .kicker{color:var(--on-3)}
.fb__h{margin-top:24px;font:400 clamp(36px,3.9vw,56px)/1.07 var(--serif);letter-spacing:-.012em;max-width:20ch}
.fb__q{margin:24px 0 16px;font-size:20px;line-height:30px;color:#c3d2ff}
.fb__txt>p:not([class]){color:var(--on-2);max-width:60ch;margin-bottom:12px;font-size:17px;line-height:27px}
.pubmeta{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:32px 0 0;padding:24px;border:1px solid var(--line-on)}
.pubmeta dt{font:500 13px/18px var(--sans);color:var(--on-3)}
.pubmeta dd{margin:4px 0 0;font-size:15px;line-height:23px}
.fb__ctas{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:32px}
@media (max-width:900px){.fb{padding:64px 0}.fb__in{grid-template-columns:1fr}.fb__art{order:2}.pubmeta{grid-template-columns:1fr}}

/* indexes */
.ix,.ts,.pi{background:var(--paper);padding:112px 0;border-top:1px solid var(--line)}
.ix__in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,96px);align-items:start}
.ix__more{margin-top:24px}
.ix__list,.pi__list{border-top:1px solid var(--tx)}
.ix__list a,.pi__list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);text-decoration:none}
.ix__k{grid-column:1;font:500 13px/18px var(--sans);color:var(--tx-3)}
.ix__list b,.pi__list b{grid-column:1;font:500 26px/32px var(--sans);letter-spacing:-.01em}
.ix__go{grid-column:2;grid-row:1/span 3;color:var(--tx-3)}
.ix__list a:hover b,.pi__list a:hover b,.ix__list a:focus-visible b,.pi__list a:focus-visible b{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.ts__head{margin-bottom:40px}
.ts__list{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ts__list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;padding:32px;background:var(--bone);text-decoration:none;min-height:180px;align-content:start;border-top:2px solid var(--tx)}
.ts__list b{font:500 26px/32px var(--sans)}
.ts__list p{grid-column:1;color:var(--tx-2);font-size:17px;line-height:27px;max-width:46ch}
.ts__list .ix__go{grid-row:1}
.pi__list a{grid-template-columns:48px minmax(0,1fr) auto}
.ix__n{font:500 13px/32px var(--sans);color:var(--ac-ink)}
.pi__list b{grid-column:2}.pi__list .ix__p{grid-column:2;color:var(--tx-2);font-size:16px;line-height:25px;max-width:70ch}
.pi__list .ix__go{grid-column:3}
@media (max-width:900px){.ix,.ts,.pi{padding:64px 0}.ix__in{grid-template-columns:1fr}.ts__list{grid-template-columns:1fr}.ix__list b,.pi__list b,.ts__list b{font-size:24px;line-height:30px}}

/* type roles across the site */
.sec-h{font:400 clamp(36px,3.9vw,56px)/1.07 var(--serif)}
@media (max-width:760px){.sec-h{line-height:40px}}
.sec-h em{font-style:normal}
.ct__h em{font-style:normal}
.dh__h span{display:inline-block}
.dh__leg{display:none;position:absolute;left:0;right:0;bottom:-30px;font:500 13px/18px var(--sans);color:var(--tx-2)}
@media (max-width:760px){.dh__art{margin-bottom:30px}}

/* tool pages: light compact opening (first field visible on phones) */
.sh--tool{background:var(--paper);color:var(--tx);padding:112px 0 40px;border-bottom:1px solid var(--line)}
.sh--tool .hero__grid{display:none}
.sh--tool .sh__crumb,.sh--tool .sh__crumb a{color:var(--tx-3)}
.sh--tool .sh__h{font:500 44px/48px var(--sans);letter-spacing:-.015em;max-width:24ch;margin-top:16px}
.sh--tool .sh__h em{font-style:normal;color:var(--tx-2)}
.sh--tool .sh__p{color:var(--tx-2);font-size:18px;line-height:28px;max-width:60ch;margin-top:16px}
.sh--tool+.pl,.sh--tool+.kc{padding-top:32px}
@media (max-width:760px){.sh--tool{padding:104px 0 32px}.sh--tool .sh__h{font-size:34px;line-height:38px}.sh--tool .sh__p{font-size:16px;line-height:25px}}

/* briefing: metadata + linked contents with current section */
.pubmeta--light{border-color:var(--line);margin:0 0 24px;grid-template-columns:1fr}
.pubmeta--light dt{color:var(--tx-3)}
.ar__nav summary{list-style:none;font:500 13px/18px var(--sans);color:var(--tx-3);margin-bottom:10px;cursor:default}
.ar__nav summary::-webkit-details-marker{display:none}
.ar__toc a{display:flex;gap:12px;text-decoration:none;color:var(--tx-2);padding:2px 0;border-left:2px solid transparent;margin-left:-14px;padding-left:12px;transition:color var(--m-ctl),border-color var(--m-ctl)}
.ar__toc a:hover{color:var(--tx)}
.ar__toc a[aria-current="location"]{color:var(--ac-ink);border-left-color:var(--ac-ink)}
.ar__s{scroll-margin-top:104px}
@media (max-width:900px){.ar__nav summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.ar__nav summary::after{content:"+";margin-left:auto;font-size:20px}.ar__nav details[open] summary::after{content:"−"}.ar__toc a{min-height:44px;align-items:center}}

/* grouped navigation (desktop) */
.ng{position:relative}
.ng__btn{display:inline-flex;align-items:center;gap:6px;font-size:15px;opacity:.78;padding:10px 0;transition:opacity var(--m-ctl)}
.ng__btn:hover,.ng__btn[aria-expanded="true"]{opacity:1}
.ng__btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform var(--m-state) var(--ease2)}
.ng__btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.ng__panel{position:absolute;top:calc(100% + 18px);right:-32px;width:440px;padding:32px;background:var(--paper);color:var(--tx);border:1px solid var(--line);box-shadow:0 24px 48px -32px rgba(11,15,20,.35)}
.ng__panel ul{display:grid;gap:0}.ng__panel li+li{border-top:1px solid var(--line)}
.ng__panel li a{display:grid;gap:2px;padding:12px 0;text-decoration:none;opacity:1}
.ng__panel b{font:500 18px/26px var(--sans)}
.ng__panel span{font-size:14px;line-height:21px;color:var(--tx-2)}
.ng__panel li a:hover b{text-decoration:underline;text-underline-offset:4px}
.ng__all{display:inline-block;margin-top:16px;font-size:14px;color:var(--ac-ink)!important;opacity:1!important}
.nav [aria-current="page"]{opacity:1;text-decoration:underline;text-underline-offset:6px}
@media (max-width:1100px){.ng{display:none}}
.ng__panel a{white-space:normal}

/* R2 fixes */
.dh__h{max-width:100%}.dh__h span{display:block}
@media (max-width:760px){.dh__lab{display:none}.dh__leg{display:block;position:static;margin-top:12px}.dh__art{margin-bottom:0}}
@media (min-width:901px){.ar__aside{max-height:calc(100dvh - 128px);overflow-y:auto;overscroll-behavior:contain;padding:4px 16px 4px 4px}.ar__toc a{margin-left:0;width:100%;padding-left:12px}}
.pi__list a{grid-template-columns:minmax(180px,1fr) minmax(0,2fr) 20px;gap:24px;padding:24px 0}
.pi__list b,.pi__list .ix__p{grid-column:auto}.pi__list .ix__go{grid-column:3;grid-row:1}
.ix,.ts,.pi{padding:80px 0}
@media (max-width:760px){.ix,.ts,.pi{padding:56px 0}.pi__list a{grid-template-columns:minmax(0,1fr) 20px;gap:6px 16px}.pi__list .ix__p{grid-column:1}.pi__list .ix__go{grid-column:2;grid-row:1}}

/* R2 change 1: one header and one alphabet across pages */
.hd,.hd.is-scrolled,.hd.is-light{background:rgba(247,245,239,.97);color:var(--tx);border-bottom:1px solid var(--line);backdrop-filter:none;-webkit-backdrop-filter:none}
.hd__in{height:80px}
@media (max-width:760px){.hd__in{height:72px}}
.hd .nav__cta:hover{background:var(--tx);color:var(--paper)}
.mnu{background:var(--paper);color:var(--tx);border-top:1px solid var(--line)}
.mnu .kicker{color:var(--tx-3)}.mnu a{font:400 18px/26px var(--sans);min-height:48px;align-items:center;border-color:var(--line)}.mnu a i{color:var(--ac-ink)}.mnu a:hover{color:var(--ac-ink)}
.hd.is-menu{background:var(--paper)!important;color:var(--tx)!important}
.sh{padding:144px 0 64px}
.sh .hero__grid{display:none}
.sh--art .sh__in{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center}
.sh__h{font:400 clamp(42px,4.73vw,68px)/1.06 var(--serif);max-width:22ch}
.sh__h em{font-style:normal;color:inherit}
.sh__p{font-size:20px;line-height:30px;max-width:52ch}
.dwg--mini .dw{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}
.dwg--mini .flow{animation:none}
@media (max-width:900px){.sh{padding:112px 0 48px}.sh--art .sh__in{grid-template-columns:1fr}.sh__p{font-size:18px;line-height:28px}.dwg--mini .dwg__svg{max-height:240px}}
.fp__sec{padding:96px 0}
.fp__h{font:400 clamp(36px,3.3vw,48px)/1.08 var(--serif)}
.fp__list b,.fp__scope b,.fp__risks b{font:500 18px/27px var(--sans)}
.fp__list p,.fp__scope p,.fp__risks p{font-size:18px;line-height:29px}
.fp__path{background:var(--bone);color:var(--tx);padding:56px 0;border-top:1px solid var(--line)}
.fp__path p{color:var(--tx-2)!important}
.fp__ins{background:var(--paper)}.fp__ins a{color:var(--tx)}.fp__ins .kicker{color:var(--tx-3)}.fp__ins a:hover b{color:var(--ac-ink)}
@media (max-width:760px){.fp__sec{padding:64px 0}.fp__h{font-size:36px;line-height:40px}}

/* R2 change 3: type roles inside the site */
.ar__s h2{font:500 28px/35px var(--sans);letter-spacing:-.01em}
.ws__b h3,.ar__list b{font:500 26px/32px var(--sans);letter-spacing:-.01em}
.ar__list b em{font-style:normal}
.pl__types b{font:500 18px/24px var(--sans)}
.kc__c b{font:500 32px/36px var(--sans);font-variant-numeric:tabular-nums}
.kc__num input{font:500 32px/36px var(--sans);font-variant-numeric:tabular-nums}
.ar__s p{font-size:18px;line-height:29px;max-width:66ch}
.ar__s{padding:0 0 48px;margin-bottom:48px}
.ds__recs li{font:500 20px/26px var(--sans)}
.ds__tb span:first-of-type{font:500 16px/1 var(--sans)}
@media (max-width:760px){.ar__s h2{font-size:24px;line-height:30px}.ws__b h3,.ar__list b{font-size:24px;line-height:30px}.kc__c b,.kc__num input{font-size:28px;line-height:34px}.ar__s p{font-size:17px;line-height:27px}}

/* editorial openings (Wiedza, articles, how we work) */
.sh--editorial{background:var(--paper);color:var(--tx);padding:128px 0 48px;border-bottom:1px solid var(--line)}
.sh--editorial .sh__crumb,.sh--editorial .sh__crumb a{color:var(--tx-3)}
.sh--editorial .sh__h{font:400 clamp(42px,4.45vw,64px)/1.06 var(--serif);max-width:24ch}
.sh--editorial .sh__p{color:var(--tx-2)}
@media (max-width:760px){.sh--editorial{padding:104px 0 32px}.sh--editorial .sh__h{font-size:42px;line-height:46px}}
/* how we work */
.hw{background:var(--paper);padding:96px 0}
.hw__in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,96px);align-items:start}
.hw__list{border-top:1px solid var(--tx)}
.hw__list li{padding:32px 0;border-bottom:1px solid var(--line);scroll-margin-top:104px}
.hw__list h3{font:500 26px/32px var(--sans);margin:6px 0 10px}
.hw__list li>p:not(.ix__k):not(.hw__more){font-size:18px;line-height:29px;color:var(--tx-2);max-width:56ch}
.hw__more{margin-top:8px}
.hv{background:var(--bone);padding:96px 0;border-top:1px solid var(--line)}
.hv__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center}
.hv__p{margin-top:24px;font-size:18px;line-height:29px;color:var(--tx-2);max-width:52ch}
.hv__art{margin:0;aspect-ratio:4/3}.hv__art img{width:100%;height:100%;display:block}
.cy .sec-h{font-size:40px;line-height:44px}
@media (max-width:900px){.hw,.hv{padding:64px 0}.hw__in,.hv__in{grid-template-columns:1fr}.hw__list h3{font-size:24px;line-height:30px}}
/* Wiedza index */
.wi__lead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center;text-decoration:none;padding-bottom:56px;margin-bottom:8px}
.wi__lead b{display:block;margin:12px 0 16px;font:400 40px/44px var(--serif)}
.wi__lead b em{font-style:normal}
.wi__lead p{color:var(--tx-2);font-size:18px;line-height:29px;max-width:56ch;margin-bottom:20px}
.wi__lead figure{margin:0;aspect-ratio:4/3}.wi__lead img{width:100%;height:100%;display:block}
.wi__list a{padding:32px 0}.wi__list p{font-size:17px;line-height:27px;max-width:60ch}
@media (max-width:900px){.wi__lead{grid-template-columns:1fr}.wi__lead b{font-size:32px;line-height:36px}}

/* R3 defects */
.hd,.hd.is-scrolled,.hd.is-light{background:var(--paper)}
.dwg--mini[data-on="projektowanie"] .z{opacity:1}

/* decision spread (R3 bold move) */
.db{background:var(--paper);padding:96px 0 0;border-top:1px solid var(--line)}
.db--full{padding-bottom:96px}
.db__head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px;align-items:end;margin-bottom:40px}
.db__h{margin-top:16px;font:400 clamp(38px,3.9vw,56px)/1.07 var(--serif);letter-spacing:-.012em;max-width:22ch}
.db__p{font-size:20px;line-height:30px;color:var(--tx-2);max-width:48ch}
.db__status{margin-top:16px;font:500 13px/18px var(--sans);color:var(--tx-3)}
.db__rows{border-top:1px solid var(--tx)}
.db__row{border-bottom:1px solid rgba(17,22,29,.18);scroll-margin-top:104px}
.db__row summary{list-style:none;cursor:default;padding:28px 0 0}
.db__row summary::-webkit-details-marker{display:none}
.db__name{font:500 18px/26px var(--sans)}
.db__row details>summary{pointer-events:none}
.db__f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:-26px 0 0 184px;padding-bottom:28px}
.db__f dt,.db__fill dt{font:500 13px/18px var(--sans);color:var(--tx-3);margin-bottom:6px}
.db__f dd{margin:0;font-size:17px;line-height:27px}
.db__fill{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0 0 28px 184px;padding-top:16px;border-top:1px dashed rgba(17,22,29,.18)}
.db__fill dd{margin:0;font-size:15px;line-height:23px;color:var(--tx-3)}
.db__result{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:center;padding:40px 0 56px}
.db__result h3{font:500 22px/30px var(--sans)}
.db__result p{color:var(--tx-2);font-size:17px;line-height:27px;margin-top:8px;max-width:56ch}
.db__recs{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:16px}
.db__recs li{font:500 17px/26px var(--sans);padding-left:18px;position:relative}
.db__recs li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border:1.5px solid var(--tx-3);border-radius:50%}
.db__cta{margin-top:32px}
.db__art{margin:0;aspect-ratio:4/3}.db__art img{width:100%;height:100%;display:block}
.db__rel{background:var(--ink);color:var(--on);padding:72px 0}
.db__relin{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:40px;align-items:center}
.db__rel figure{margin:0;aspect-ratio:4/3;background:#e8e3d7}.db__rel img{width:100%;height:100%;display:block}
.db__rel .kicker{color:var(--on-3)}
.db__relh{margin-top:16px;font:400 clamp(30px,3vw,44px)/1.1 var(--serif);max-width:24ch}
.db__relq{margin-top:12px;font-size:19px;line-height:28px;color:#c3d2ff}
.db__relm{margin-top:12px;font:500 13px/18px var(--sans);color:var(--on-3)}
.db__demo{margin:0 0 16px;font-size:15px;line-height:23px;color:var(--tx-2)}
.db__demo b{font-weight:600;color:var(--tx)}
@media (max-width:900px){
  .db{padding-top:64px}.db--full{padding-bottom:64px}
  .db__head,.db__result,.db__relin{grid-template-columns:1fr;gap:16px}
  .db__h{font-size:38px;line-height:42px}
  .db__row details>summary{pointer-events:auto;cursor:pointer;min-height:48px;display:flex;align-items:center;padding:12px 0}
  .db__row summary::after{content:"+";margin-left:auto;font-size:22px;color:var(--tx-3)}
  .db__row details[open] summary::after{content:"−"}
  .db__f,.db__fill{grid-template-columns:1fr;margin:0;gap:16px}
  .db__f{padding-bottom:24px}
  .db__rel{padding:56px 0}
}

/* phone menu: one map with the desktop, groups as native details */
.mnu__list{padding:12px 0 28px}
.mnu__list>li{border-bottom:1px solid var(--line)}
.mnu__list a,.mnu__list summary{display:flex;align-items:center;min-height:48px;padding:12px 0;font:400 18px/26px var(--sans);text-decoration:none;color:var(--tx);border:0}
.mnu__list summary{list-style:none;cursor:pointer}
.mnu__list summary::-webkit-details-marker{display:none}
.mnu__list summary::after{content:"+";margin-left:auto;font-size:22px;color:var(--tx-3)}
.mnu__list details[open] summary::after{content:"−"}
.mnu__list details ul{padding:0 0 12px 16px}
.mnu__list details li a{min-height:44px;padding:10px 0;color:var(--tx-2)}

/* R3 item 5: one editorial rhythm */
.ar__s{padding-bottom:24px;margin-bottom:24px}
.ar__list .kicker,.wi__lead .kicker,.ih .kicker,.db__rel .kicker,.fb .kicker{font:500 13px/18px var(--sans);letter-spacing:0;text-transform:none}
.ar__list .kicker::before,.wi__lead .kicker::before{display:none}
.sh--editorial .sh__p,.sh--tool .sh__p{margin-top:24px}
.sh--editorial+section,.sh--tool+section{margin-top:0}

/* R4: review as one unit */
.dwg.dwg--mini[data-on="projektowanie"] .z:not(.is-act){opacity:1}
.db__row details>summary{pointer-events:auto;cursor:pointer}
@media (min-width:901px){
  .db__row details{display:flow-root}
  .db__row summary{float:left;width:160px;padding:28px 0}
  .db__row summary::after{content:"+";margin-left:8px;color:var(--tx-3)}
  .db__row details[open] summary::after{content:"−"}
  .db__f{margin:0 0 0 184px;padding:28px 0}
}
.db__record{padding:32px 0 8px}
.db__record h3{font:500 18px/26px var(--sans)}
.db__record p{margin-top:6px;color:var(--tx-2);font-size:16px;line-height:25px}
.db__record ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:16px}
.db__record li{padding:16px;border:1px dashed rgba(17,22,29,.25);font:500 14px/20px var(--sans);color:var(--tx-2);min-height:72px}
.db__art{max-width:240px;aspect-ratio:4/3;justify-self:end}
.db__result{padding:40px 0}
.db--full{padding-bottom:40px}
.ds--demo{background:var(--bone);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ds--demo>summary{list-style:none;cursor:pointer;min-height:56px;display:flex;align-items:center}
.ds--demo>summary::-webkit-details-marker{display:none}
.ds--demo .ds__sum .wrap{display:block;padding-top:16px;padding-bottom:16px;font-size:15px;line-height:23px;color:var(--tx-2)}
.ds--demo .ds__sum b{color:var(--tx);font-weight:600;margin-right:6px}
.ds--demo .ds__sum .wrap::after{content:"+";float:right;font-size:22px;color:var(--tx-3)}
.ds--demo[open] .ds__sum .wrap::after{content:"−"}
.ds--demo>.wrap{padding-bottom:48px}
.ds--demo .ds__sheet{opacity:1;transform:none}
@media (max-width:900px){.db__record ul{grid-template-columns:1fr 1fr}.db__art{justify-self:start}}
.ds.ds--demo{padding:0}.ds--demo>.wrap{padding-top:8px}
.sh--editorial .sh__in:has(.sh__art){display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:center}.sh__art{margin:0;aspect-ratio:4/3;max-width:520px}.sh__art img{width:100%;height:100%;display:block}@media (max-width:900px){.sh--editorial .sh__in:has(.sh__art){grid-template-columns:1fr}.sh__art{max-width:360px}}

/* glossary */
.gl{border-top:1px solid var(--tx);margin:0}
.gl__row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,3fr);gap:24px;padding:24px 0;border-bottom:1px solid var(--line);scroll-margin-top:104px}
.gl dt{font:500 20px/28px var(--sans)}
.gl dd{margin:0}.gl dd p{font-size:17px;line-height:27px;max-width:70ch;color:var(--tx)}
.gl dd .lnk{min-height:40px;font-size:15px}
@media (max-width:760px){.gl__row{grid-template-columns:1fr;gap:6px}}
.wi__gl{margin-top:32px}

/* R5: hero decision stack, interactive (layers open on scroll and hover, each names its question) */
.vh{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dh__art{aspect-ratio:auto}
.dh__stage{position:relative;aspect-ratio:4/3}
.dh__svg{display:block;width:100%;height:100%}
.dh__svg .dl{transition:opacity var(--m-state) var(--ease2);cursor:pointer}
.dh__svg .dl__top{transition:fill var(--m-state) var(--ease2)}
.dh__svg .dl__n circle{transition:fill var(--m-state) var(--ease2)}
.dh__stage[data-on] .dl:not(.is-on){opacity:.42}
.dh__stage[data-on] .dl__n:not(.is-on){opacity:.42}
.dh__stage .dl.is-on .dl__top{fill:#f4f1ea}
.dh__stage .dl[data-k="dok"].is-on .dl__top{fill:#1f4fd6}
.dh__stage .dl__n.is-on circle{fill:#1f4fd6}
.dh__labs{position:absolute;inset:0;pointer-events:none}
.dh__lab{position:absolute;left:var(--x);top:var(--y);transform:translate3d(0,calc(-50% + var(--dy,0px)),0);display:inline-flex;align-items:baseline;gap:8px;min-height:32px;padding:6px 10px 6px 10px;border-left:1px solid var(--tx);font:500 13px/18px var(--sans);color:var(--tx);white-space:nowrap;pointer-events:auto;text-decoration:none;transition:color var(--m-ctl),background var(--m-ctl),border-color var(--m-ctl)}
.dh__labn{font:500 11px/18px var(--sans);letter-spacing:.06em;color:var(--tx-2);font-variant-numeric:tabular-nums}
.dh__lab.is-on{background:var(--tx);color:var(--paper);border-color:var(--tx)}
.dh__lab.is-on .dh__labn{color:rgba(255,255,255,.6)}
.dh__lab:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.dh__q{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:baseline;min-height:96px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font:400 18px/26px var(--serif);color:var(--tx);cursor:default}
.dh__q.is-q{cursor:pointer}
.dh__qn{font:500 12px/26px var(--sans);letter-spacing:.06em;color:#1f4fd6;font-variant-numeric:tabular-nums;min-width:44px}
.dh__qn:empty{min-width:0}
.dh__qt{transition:opacity var(--m-ctl)}
.dh__q:not(.is-q) .dh__qt{font:400 14px/22px var(--sans);color:var(--tx-2)}
.dh__qs{grid-column:2;display:inline-flex;align-items:center;gap:8px;font:500 13px/20px var(--sans);color:var(--tx-2);opacity:0;transition:opacity var(--m-ctl)}
.dh__q.is-q .dh__qs{opacity:1}
.dh__q.is-swap .dh__qt{opacity:0}
@media (max-width:760px){
  .dh__labs{position:static;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;pointer-events:auto}
  .dh__stage{aspect-ratio:auto}
  .dh__svg{aspect-ratio:4/3;height:auto}
  .dh__lab,.dh__svg ~ .dh__labs .dh__lab{display:inline-flex;position:static;transform:none;border:1px solid var(--line);min-height:44px;align-items:center}
  .dh__q{min-height:120px;font-size:17px;line-height:25px}
}
.dh__svg .dl__g path{fill:none;stroke:#1f4fd6;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 700ms var(--ease2)}
.dh__svg .dl[data-k="dojazd"] .dl__g path:last-child{stroke-dasharray:.04 .03;stroke-dashoffset:0;opacity:0;transition:opacity var(--m-state)}
.dh__svg .dl[data-k="dok"] .dl__g path{stroke:#fff}
.dh__svg .dl.is-on .dl__g path{stroke-dashoffset:0}
.dh__svg .dl[data-k="dojazd"].is-on .dl__g path:last-child{opacity:1}
@media (prefers-reduced-motion:reduce){.dh__svg .dl__g path{transition:none}}

/* R5: field lab (biogas power thresholds) */
.lab{padding:clamp(72px,9vw,136px) 0;background:var(--bone);border-top:1px solid var(--line)}
.lab__head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px 48px;align-items:end}
.lab__head .kicker{grid-column:1/-1}
.lab__h{font:400 clamp(40px,4.6vw,64px)/1.02 var(--serif);letter-spacing:-.015em;max-width:14ch}
.lab__h em{font-style:italic}
.lab__p{font-size:18px;line-height:28px;color:var(--tx-2);max-width:46ch}
.lab__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:48px 64px;margin-top:56px;align-items:stretch}
.lab__ctl{position:sticky;top:104px}
.lab__fig{margin:0;border:1px solid var(--line)}
.lab__svg{display:block;width:100%;height:auto}
.lab__svg .pf,.lab__svg .pc{transform-box:fill-box;transform-origin:50% 100%;transition:opacity 420ms var(--ease2),transform 520ms var(--ease2)}
.lab__svg .is-off{opacity:0;transform:translateY(-28px)}
.lab__dial{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 16px;padding:24px 0 8px}
.lab__lbl{font:500 13px/18px var(--sans);color:var(--tx-2)}
.lab__val{font:400 56px/1 var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-align:right}
.lab__val small{font:500 14px/1 var(--sans);letter-spacing:.04em;margin-left:6px;color:var(--tx-2)}
.lab__track{grid-column:1/-1;position:relative;padding:14px 0 28px}
.lab__track input{-webkit-appearance:none;appearance:none;width:100%;height:24px;margin:0;background:transparent;cursor:pointer;position:relative;z-index:1}
.lab__track input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#1f4fd6 calc(12px + (100% - 24px) * var(--f,0)),rgba(17,22,29,.28) 0)}
.lab__track input::-moz-range-track{height:2px;background:rgba(17,22,29,.28)}
.lab__track input::-moz-range-progress{height:2px;background:#1f4fd6}
.lab__track input::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-11px;border-radius:50%;background:#1f4fd6;border:4px solid var(--bone);box-shadow:0 0 0 1px #1f4fd6;transition:transform var(--m-ctl) var(--ease2)}
.lab__track input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#1f4fd6;border:4px solid var(--bone);box-shadow:0 0 0 1px #1f4fd6}
.lab__track input:active::-webkit-slider-thumb{transform:scale(1.15)}
.lab__track input:focus-visible{outline:2px solid #1f4fd6;outline-offset:6px}
.lab__ticks{position:absolute;left:0;right:0;top:14px;height:24px;pointer-events:none}
.lab__ticks li{position:absolute;left:calc(12px + (100% - 24px) * var(--f));top:0;height:100%;transform:translateX(-50%);font:500 12px/1 var(--sans);color:var(--tx-2);font-variant-numeric:tabular-nums}
.lab__ticks li::before{content:"";position:absolute;left:50%;top:4px;width:1px;height:16px;background:currentColor}
.lab__ticks li{padding-top:34px;white-space:nowrap}
.lab__ticks li.is-past{color:#1f4fd6}
.lab__legend{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--line)}
.lab__legend li{display:flex;gap:10px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:20px;color:var(--tx-2);cursor:pointer;transition:color var(--m-ctl)}
.lab__legend b{font-weight:500;color:var(--tx);min-width:52px;font-variant-numeric:tabular-nums;transition:color var(--m-ctl)}
.lab__legend li.is-past,.lab__legend li.is-past b{color:#1f4fd6}
.lab__legend li:hover b{text-decoration:underline;text-underline-offset:4px}
.lab__elig{display:flex;gap:12px;align-items:flex-start;margin-top:16px;font-size:15px;line-height:22px;cursor:pointer}
.lab__elig input{width:20px;height:20px;margin:1px 0 0;accent-color:#1f4fd6;flex:none}
.lab__assume{margin-top:16px;font-size:13px;line-height:20px;color:var(--tx-3)}
.lab__rows{border-top:1px solid var(--tx)}
.lab__row{position:relative;padding:22px 0 22px 20px;border-bottom:1px solid var(--line)}
.lab__row::before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:2px;background:var(--tx);transition:background var(--m-state)}
.lab__row.is-simple::before{background:#1f4fd6}
.lab__row h3{font:500 13px/18px var(--sans);letter-spacing:.02em;color:var(--tx-2)}
.lab__st{margin-top:8px;font:400 21px/29px var(--serif);color:var(--tx)}
.lab__note{margin-top:10px;font-size:14px;line-height:21px;color:var(--tx-2)}
.lab__src{margin-top:10px;font-size:12px;line-height:18px;color:var(--tx-3)}
.lab__src a{text-decoration:underline;text-decoration-color:rgba(17,22,29,.3);text-underline-offset:3px}
.lab__chg{position:absolute;right:0;top:22px;font:500 11px/16px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#1f4fd6;opacity:0}
.lab__row.is-chg{animation:labFlash 1.4s var(--ease2)}
.lab__row.is-chg .lab__chg{animation:labTag 1.8s var(--ease2)}
@keyframes labFlash{0%{background:rgba(31,79,214,.12)}100%{background:transparent}}
@keyframes labTag{0%,70%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.lab__row.is-chg,.lab__row.is-chg .lab__chg{animation:none}.lab__svg .pf,.lab__svg .pc{transition:none}}
@media (max-width:900px){
  .lab__head{grid-template-columns:1fr}
  .lab__grid{grid-template-columns:1fr;gap:0;margin-top:40px}
  .lab__left,.lab__ctl{display:contents}
  .lab__dial{position:sticky;top:72px;z-index:5;background:var(--bone);padding:12px 0 4px;border-bottom:1px solid var(--line)}
  .lab__val{font-size:40px}
  .lab__legend{display:none}
  .lab__elig{margin:16px 0 0}
  .lab__assume{margin:8px 0 32px}
  .lab__st{font-size:19px;line-height:27px}
}
@media (min-width:901px) and (max-height:880px){.lab__ctl{position:static}}

/* R5: road lab (design traffic) */
.lr{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:48px 64px;margin-top:56px;align-items:start}
.lr fieldset{border:0;padding:0;margin:0 0 28px;min-width:0}
.lr legend,.lr label:not(.lr__opt){display:block;font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:10px}
.lr__veh{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.lr__veh label{margin:0!important;font:400 16px/22px var(--sans)!important;color:var(--tx)!important}
.lr__num{display:flex;align-items:center;border:1px solid var(--tx)}
.lr__num input{width:72px;height:44px;border:0;background:transparent;text-align:center;font:400 22px/1 var(--serif);font-variant-numeric:tabular-nums;-moz-appearance:textfield;color:var(--tx)}
.lr__num input::-webkit-inner-spin-button,.lr__num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.lr__step{width:44px;height:44px;border:0;background:transparent;font:400 20px/1 var(--sans);cursor:pointer;color:var(--tx);transition:background var(--m-ctl)}
.lr__step:hover{background:rgba(17,22,29,.06)}
.lr input:focus-visible,.lr select:focus-visible,.lr__step:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lr__opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.lr__opts--soil{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px}
.lr__opt{position:relative;display:grid;gap:2px;padding:12px 14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:15px;line-height:20px;transition:border-color var(--m-ctl),background var(--m-ctl),color var(--m-ctl)}
.lr__opt small{font-size:12px;line-height:16px;color:var(--tx-3)}
.lr__opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.lr__opt:has(input:checked){background:var(--tx);border-color:var(--tx);color:var(--paper)}
.lr__opt:has(input:checked) small{color:rgba(255,255,255,.66)}
.lr__opt:has(input:focus-visible){outline:2px solid #1f4fd6;outline-offset:2px}
.lr__row4{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lr select,.lr__unit input{width:100%;height:44px;border:1px solid var(--line);background:var(--paper);padding:0 12px;font:400 15px/1 var(--sans);color:var(--tx);border-radius:0}
.lr__unit{display:flex;align-items:center;gap:8px}.lr__unit input{width:80px}.lr__unit span{font-size:14px;color:var(--tx-2)}
.lr__note{margin:-12px 0 28px;font-size:13px;line-height:20px;color:var(--tx-3)}
.lr__out{position:sticky;top:104px;border-top:1px solid var(--tx);padding-top:20px;display:grid;gap:24px}
.lr__k{font:500 13px/18px var(--sans);color:var(--tx-2)}
.lr__nv{font:400 64px/1 var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px}
.lr__nu{font-size:13px;color:var(--tx-2);margin-top:4px}
.lr__krv{font:400 40px/1 var(--serif);margin-top:6px;color:#1f4fd6}
.lr--none .lr__krv{font-size:22px;line-height:28px;color:var(--tx-2)}
.lr__scale{position:relative;height:36px;margin-top:14px}
.lr__scale ol{position:absolute;inset:0}
.lr__scale li{position:absolute;top:0;height:28px;border-left:1px solid var(--tx);background:rgba(17,22,29,.05);font:500 11px/28px var(--sans);text-align:center;color:var(--tx-2);transition:background var(--m-state),color var(--m-state)}
.lr__scale li b{font-weight:500}
.lr__scale li.is-on{background:#1f4fd6;color:#fff}
.lr__mark{position:absolute;top:-6px;width:2px;height:40px;background:var(--tx);transform:translateX(-1px);transition:left 420ms var(--ease2)}
.lr__f{font:400 15px/22px var(--serif);color:var(--tx)}
.lr__fx{font:400 12px/18px var(--mono,ui-monospace,monospace);color:var(--tx-3);margin-top:-18px;word-break:break-word}
.lr__dwg{display:block;width:100%;height:auto;margin-top:10px;border:1px solid var(--line)}
.lr__t{font:500 13px var(--sans);fill:var(--tx)}
.lr__t--hz{fill:#1f4fd6}
.lr__fp{margin-top:10px;font:400 19px/27px var(--serif)}
.lr__park{border-top:1px solid var(--line);padding-top:16px}
.lr__park p:not(.lr__k){margin-top:6px;font-size:14px;line-height:21px;color:var(--tx-2)}
.lr__park ul{margin-top:8px}
.lr__park li{display:grid;grid-template-columns:44px 1fr;gap:8px;padding:6px 0;font-size:14px;line-height:20px;border-bottom:1px solid var(--line)}
.lr__park b{font-weight:500}
.lr__src{font-size:12px;line-height:18px;color:var(--tx-3)}
.lr__src a{text-decoration:underline;text-underline-offset:3px}
@media (min-width:901px) and (max-height:820px){.lr__out{position:static}}
@media (max-width:900px){
  .lr{grid-template-columns:1fr;gap:16px;margin-top:40px}
  .lr__out{position:static}
  .lr__row4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lr__nv{font-size:48px}
}
@media (max-width:420px){.lr__opts{grid-template-columns:1fr}.lr__opts--soil{grid-template-columns:repeat(4,minmax(0,1fr))}.lr__row4{grid-template-columns:1fr 1fr}}
.lr__bar{display:none}
@media (max-width:900px){.lr__bar{position:sticky;bottom:0;z-index:4;display:flex;gap:12px;align-items:baseline;margin:8px -16px 0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--tx);color:var(--paper);font-size:13px;line-height:18px}.lr__bar b{font:400 24px/1 var(--serif);color:#fff}}

/* R5: energy lab (connection agreement clock) */
.lc{margin-top:56px;display:grid;grid-template-columns:minmax(0,1fr);gap:28px}
.lc fieldset{border:0;padding:0;margin:0;min-width:0}
.lc legend,.lc label:not(.lr__opt):not(.lab__elig){display:block;font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:10px}
.lc__opts{grid-template-columns:repeat(5,minmax(0,1fr))}
.lc__tl{padding:8px 0 0}
.lc__axis{font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:56px}
.lc__track{position:relative;height:120px}
.lc__bar{position:absolute;left:0;right:0;top:40px;height:28px;background:rgba(17,22,29,.06)}
.lc__bar i{position:absolute;top:0;bottom:0;transition:left 420ms var(--ease2),width 420ms var(--ease2),background var(--m-state)}
.lc__base{left:0;width:calc(var(--term) * 100%);background:var(--tx)}
.lc__extb{left:calc(var(--term) * 100%);width:calc(var(--ext) * 100%);background:repeating-linear-gradient(45deg,#1f4fd6 0 6px,rgba(31,79,214,.35) 6px 12px)}
.lc__over{left:calc((var(--term) + var(--ext)) * 100%);width:max(0px,calc((var(--m) - var(--term) - var(--ext)) * 100%));background:repeating-linear-gradient(-45deg,#b3261e 0 4px,transparent 4px 10px)}
.lc__track[data-st="lapse"] .lc__base{background:rgba(17,22,29,.4)}
.lc__ticks{position:absolute;left:0;right:0;top:76px;height:20px}
.lc__ticks li{position:absolute;left:calc(var(--f) * 100%);transform:translateX(-50%);font:500 12px/1 var(--sans);color:var(--tx-3);font-variant-numeric:tabular-nums}
.lc__ticks li::before{content:"";position:absolute;left:50%;top:-10px;width:1px;height:6px;background:currentColor}
.lc__ticks li:first-child{transform:none}
.lc__end{position:absolute;top:30px;height:48px;width:2px;left:calc((var(--term) + var(--ext)) * 100%);background:#1f4fd6;transition:left 420ms var(--ease2)}
.lc__track input{position:absolute;left:0;right:0;top:30px;width:100%;height:48px;margin:0;opacity:0;cursor:ew-resize;z-index:2}
.lc__pin{position:absolute;left:calc(var(--m) * 100%);top:-36px;transform:translateX(-50%);display:grid;justify-items:center;pointer-events:none;transition:left 120ms linear}
.lc__pin b{display:grid;place-items:center;min-width:40px;height:40px;padding:0 8px;background:#1f4fd6;color:#fff;font:400 22px/1 var(--serif);font-variant-numeric:tabular-nums}
.lc__pin::after{content:"";width:2px;height:68px;background:#1f4fd6}
.lc__pin small{position:absolute;top:-22px;white-space:nowrap;font:500 12px/16px var(--sans);color:var(--tx-2)}
.lc__track[data-st="lapse"] .lc__pin b,.lc__track[data-st="lapse"] .lc__pin::after{background:#b3261e}
.lc__track:has(input:focus-visible) .lc__pin b{outline:2px solid var(--tx);outline-offset:2px}
.lc__out{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:8px 48px;border-top:1px solid var(--tx);padding-top:20px}
.lc__term{font:500 13px/20px var(--sans);color:var(--tx-2)}
.lc__st{grid-row:span 2;font:400 26px/34px var(--serif)}
.lc__st[data-st="lapse"]{color:#b3261e}
.lc__req{font-size:14px;line-height:21px;color:var(--tx-2)}
.lc__ext{border-top:1px solid var(--line);padding-top:16px}
.lc__extin{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:16px 32px;align-items:end;margin-top:16px}
.lc__extin[hidden]{display:none}
.lc__extp{font-size:14px;line-height:21px;color:var(--tx-2)}
.lc__force{font-size:14px;line-height:21px;color:var(--tx-2);max-width:72ch}
@media (max-width:900px){.lc__opts{grid-template-columns:repeat(2,minmax(0,1fr))}.lc__out{grid-template-columns:1fr}.lc__st{grid-row:auto;font-size:22px;line-height:30px}.lc__extin{grid-template-columns:1fr 1fr}.lc__extp{grid-column:1/-1}.lc__pin small{display:none}.lc__axis{margin-bottom:40px}}

/* R5: design lab (three parts of the building design) */
.lp{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:48px 64px;margin-top:56px;align-items:start}
.lp__fig{position:sticky;top:104px;margin:0;border:1px solid var(--line)}
.lp__svg{display:block;width:100%;height:auto}
.lp__s{cursor:pointer;transition:opacity var(--m-state) var(--ease2),transform 520ms var(--ease2);opacity:.32}
.lp__s.is-on{opacity:1}
.lp__s.is-on[data-k="pzt"]{transform:translateY(18px)}
.lp__s.is-on[data-k="pt"]{transform:translateY(-18px)}
.lp[data-hover="pzt"] .lp__s[data-k="pzt"],.lp[data-hover="pab"] .lp__s[data-k="pab"],.lp[data-hover="pt"] .lp__s[data-k="pt"]{opacity:1}
.lp__labs{position:absolute;inset:0;pointer-events:none}
.lp__lab{position:absolute;left:70%;right:12px;top:var(--y);transform:translateY(-50%);display:flex;gap:10px;align-items:baseline;padding:8px 12px;border:0;border-left:1px solid var(--tx);background:transparent;text-align:left;font:400 13px/18px var(--sans);color:var(--tx-2);cursor:pointer;pointer-events:auto;transition:background var(--m-ctl),color var(--m-ctl)}
.lp__lab b{font:500 12px/18px var(--sans);letter-spacing:.06em;color:var(--tx)}
.lp__lab.is-on{color:var(--tx)}
.lp__lab:hover,.lp__lab:focus-visible{background:var(--tx);color:var(--paper)}
.lp__lab:hover b,.lp__lab:focus-visible b{color:#fff}
.lp__lab:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lp__side fieldset{border:0;padding:0;margin:0 0 20px}
.lp__side legend{font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:10px}
.lp__opts{grid-template-columns:repeat(3,minmax(0,1fr))}
.lp__t{font:400 21px/30px var(--serif);border-top:1px solid var(--tx);padding-top:18px}
.lp__ds{margin-top:24px;border-top:1px solid var(--line)}
.lp__d{border-bottom:1px solid var(--line)}
.lp__d summary{display:grid;grid-template-columns:44px 1fr auto;gap:12px;align-items:baseline;padding:14px 0;cursor:pointer;list-style:none}
.lp__d summary::-webkit-details-marker{display:none}
.lp__d summary b{font:500 12px/20px var(--sans);letter-spacing:.06em}
.lp__d summary span{font-size:16px;line-height:22px}
.lp__d summary em{font:500 11px/20px var(--sans);font-style:normal;letter-spacing:.04em;text-transform:uppercase;color:#1f4fd6}
.lp__d[data-k="pt"] summary em{color:var(--tx-3)}
.lp__d ul{padding:0 0 14px 56px;list-style:disc;font-size:14px;line-height:21px;color:var(--tx-2)}
.lp__d li+li{margin-top:4px}
.lp__d .lr__src{padding:0 0 14px 56px}
.lp__d.is-ping{animation:labFlash 1.4s var(--ease2)}
.lp__rule{margin-top:20px;font:400 17px/25px var(--serif)}
@media (prefers-reduced-motion:reduce){.lp__s{transition:none}.lp__d.is-ping{animation:none}}
@media (max-width:900px){.lp{grid-template-columns:1fr;gap:24px;margin-top:40px}.lp__fig{position:static}.lp__lab{font-size:0;left:auto;right:12px;padding:6px 10px;background:var(--paper)}.lp__lab b{font-size:12px}.lp__opts{grid-template-columns:1fr}.lp__d summary{grid-template-columns:40px 1fr}.lp__d summary em{grid-column:2}}
@media (min-width:901px) and (max-height:820px){.lp__fig{position:static}}

/* R5: construction lab (permit, notification or nothing) */
.lm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:56px}
.lm__c{position:relative;display:flex;flex-direction:column;padding:24px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--tx);transition:border-color var(--m-state)}
.lm__c[data-mode="none"]{border-top-color:#1f4fd6}
.lm__c[data-mode="zgl"]{border-top-color:#1f4fd6}
.lm__c.is-chg{animation:labFlash 1.2s var(--ease2)}
.lm__c h3{font:500 15px/21px var(--sans);min-height:42px}
.lm__svg{display:block;width:100%;height:auto;margin:16px 0 8px}
.lm__svg line{stroke:var(--tx);stroke-width:2}
.lm__u{fill:#c6c8c2;stroke:var(--tx);stroke-width:2;transition:opacity var(--m-state)}
.lm__u.is-off{opacity:0}
.lm__box{fill:#c6c8c2;stroke:var(--tx);stroke-width:2;transition:all 240ms var(--ease2)}
.lm__lim{fill:none;stroke:#1f4fd6!important;stroke-width:2;stroke-dasharray:6 5}
.lm__post,.lm__rail{stroke-width:3!important}
.lm__v{font:400 48px/1 var(--serif);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.lm__v small{font:500 13px/1 var(--sans);margin-left:6px;color:var(--tx-2)}
.lm__c input[type=range]{width:100%;margin:16px 0 8px;accent-color:#1f4fd6;height:28px;cursor:pointer}
.lm__c input[type=range]:focus-visible{outline:2px solid #1f4fd6;outline-offset:4px}
.lm__ladder{display:grid;gap:4px;margin-top:8px}
.lm__ladder li{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);font-size:13px;line-height:18px;color:var(--tx-2);cursor:pointer;transition:background var(--m-ctl),color var(--m-ctl)}
.lm__ladder small{font-variant-numeric:tabular-nums;color:var(--tx-3);white-space:nowrap}
.lm__ladder li.is-on{background:var(--tx);color:var(--paper);border-color:var(--tx)}
.lm__ladder li.is-on small{color:rgba(255,255,255,.66)}
.lm__mode{margin-top:16px;font:400 24px/30px var(--serif)}
.lm__d{margin-top:6px;font-size:14px;line-height:21px;color:var(--tx-2);flex:1}
.lm__c .lr__src{margin-top:10px}
.lm__notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px;font-size:14px;line-height:21px;color:var(--tx-2)}
.lm__notes b{font-weight:500;color:var(--tx)}
.lab--modes > .wrap > .lr__src{margin-top:16px}
@media (max-width:1000px){.lm,.lm__notes{grid-template-columns:1fr}.lm__c h3{min-height:0}}
.ts__lh{margin-top:48px;font:500 13px/18px var(--sans);color:var(--tx-2)}
.ts__labs{margin-top:12px;border-top:1px solid var(--tx)}
.ts__labs a{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr) auto;gap:8px 32px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding var(--m-ctl) var(--ease2)}
.ts__labs b{font:400 22px/28px var(--serif)}
.ts__labs span{color:var(--tx-2);font-size:15px;line-height:22px}
.ts__labs a:hover{padding-left:8px}
.ts__labs a:hover .ar20{transform:translateX(4px)}
@media (max-width:760px){.ts__labs a{grid-template-columns:1fr auto}.ts__labs span{grid-column:1}.ts__labs .ar20{grid-row:1;grid-column:2}}

/* R5b (Astra design pass): one control language, R2 type roles, motion only in response */
.lab__h em{font-style:normal}
.lab__row h3{font:500 16px/22px var(--sans);letter-spacing:0;color:var(--tx)}
.lab__st{font:400 17px/26px var(--sans)}
.lab__src,.lr__src{font-size:13px;line-height:19px}
.lab__row.is-chg,.lm__c.is-chg,.lp__d.is-ping{animation:none}
.lab__row.is-chg::before{background:#1f4fd6;width:4px}
.lab__legend li{display:block;padding:0;cursor:default}
.lab__legend button{display:flex;gap:10px;align-items:baseline;width:100%;min-height:44px;padding:10px 0;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}
.lab__legend button:hover b{text-decoration:underline;text-underline-offset:4px}
.lab__legend button:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lab__sum{grid-column:1/-1;margin-top:12px;font-size:14px;line-height:21px;color:var(--tx-2)}
.lab__sum b{font-weight:500;color:var(--tx);margin-right:4px}
.lab__sum a{color:#1f4fd6;text-decoration:underline;text-underline-offset:3px}
.lab__sum a+a::before{content:"· ";color:var(--tx-3);text-decoration:none;display:inline-block;margin-right:4px}
.lc__over{background:repeating-linear-gradient(-45deg,var(--tx) 0 3px,transparent 3px 9px)}
.lc__track[data-st="lapse"] .lc__pin b,.lc__track[data-st="lapse"] .lc__pin::after{background:var(--tx)}
.lc__st[data-st="lapse"]{color:var(--tx)}
.lc__track input{top:-40px;height:118px}
.lc__top{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:56px}
.lc__top .lc__axis{margin:0}
.lc__ml{display:flex;align-items:center;gap:10px;font:500 13px/18px var(--sans);color:var(--tx-2);margin:0!important}
.lc__ml input{width:72px;height:44px;border:1px solid var(--line);background:var(--paper);padding:0 10px;font:400 18px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--tx)}
.lc__ml input:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lc__stw{grid-row:span 2}
.lc__st{grid-row:auto;font:400 28px/34px var(--serif)}
.lc__sx{margin-top:8px;font:400 17px/26px var(--sans);color:var(--tx-2)}
@media (max-width:900px){.lc__pin small{display:block;font-size:11px;top:-20px}.lc__top{margin-bottom:48px}.lc__st{font-size:26px;line-height:32px}}
.lp__mom{border:0;padding:0;margin:56px 0 0;min-width:0}
.lp__mom legend{font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:10px}
.lp{margin-top:24px}
.lp__t{font:400 17px/26px var(--sans);color:var(--tx);border-top:1px solid var(--tx);padding-top:18px}
.lp__d summary{grid-template-columns:44px 1fr 20px;align-items:start}
.lp__d summary span{display:grid;gap:2px}
.lp__d summary em{grid-column:auto;font:500 11px/16px var(--sans);letter-spacing:.04em;text-transform:uppercase}
.lp__x{position:relative;width:20px;height:20px;margin-top:2px}
.lp__x::before,.lp__x::after{content:"";position:absolute;left:4px;right:4px;top:9px;height:1.5px;background:var(--tx);transition:transform var(--m-state) var(--ease2)}
.lp__x::after{transform:rotate(90deg)}
.lp__d[open] .lp__x::after{transform:rotate(0)}
.lp__d summary:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
@media (max-width:900px){.lp__mom{margin-top:40px}.lp__opts{grid-template-columns:repeat(3,minmax(0,1fr))}.lp__opts .lr__opt{padding:10px}.lp__d summary{grid-template-columns:40px 1fr 20px}}
@media (max-width:420px){.lp__opts{grid-template-columns:1fr}}
.lr__stage{display:flex;gap:12px;align-items:baseline;margin:0 0 20px;font:500 16px/22px var(--sans)}
.lr__stage b{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--tx);font:500 12px/1 var(--sans)}
.lr__in > .lr__stage:not(:first-child){margin-top:36px;padding-top:28px;border-top:1px solid var(--line)}
.lr__adv{margin:0 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lr__adv summary,.lr__how summary{display:flex;gap:12px;align-items:center;min-height:48px;cursor:pointer;list-style:none;font:500 14px/20px var(--sans)}
.lr__adv summary::-webkit-details-marker,.lr__how summary::-webkit-details-marker{display:none}
.lr__adv summary small{flex:1;font:400 13px/18px var(--sans);color:var(--tx-3);text-align:right}
.lr__adv[open] summary small{visibility:hidden}
.lr__adv[open] .lp__x::after,.lr__how[open] .lp__x::after{transform:rotate(0)}
.lr__adv .lr__row4{margin-top:8px}
.lr__adv summary:focus-visible,.lr__how summary:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lr__how summary{justify-content:space-between;border-bottom:1px solid var(--line);color:var(--tx-2)}
.lr__how .lr__f{margin-top:12px}.lr__how .lr__fx{margin:6px 0 12px}
.lr__inst{display:grid;grid-template-columns:auto 1fr;gap:12px 40px;align-items:end}
.lr__inst .lr__scale{grid-column:1/-1}
.lr__krv{font:400 72px/1 var(--serif);letter-spacing:-.02em}
.lr__krv:focus{outline:none}
.lr__nv{font:400 44px/1 var(--sans);font-weight:300;letter-spacing:-.02em}
.lr__fp{font:400 17px/26px var(--sans)}
.lr__t--need{font-weight:500}
@media (max-width:900px){.lr__bar{width:calc(100% + 32px);border:0;text-align:left;cursor:pointer;font:inherit}.lr__bar span{flex:1}.lr__bar em{font-style:normal;font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.lr__krv{font-size:56px}.lr__nv{font-size:36px}}
.lr__num input{font:400 20px/1 var(--sans);font-variant-numeric:tabular-nums}
.lab__val,.lm__v{font-family:var(--sans);font-weight:300}
.lr__adv .lr__note{margin:0 0 16px}
/* construction lab, R5b: lighter cards, shared slider, answer before the ladder */
.lm{gap:0;border-top:1px solid var(--tx)}
.lm__c{background:transparent;border:0;border-right:1px solid var(--line);border-top:0;padding:24px 28px 28px}
.lm__c:first-child{padding-left:0}.lm__c:last-child{border-right:0;padding-right:0}
.lm__c[data-mode]{border-top:0}
.lm__c::before{content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:transparent;transition:background var(--m-state)}
.lm__c:first-child::before{left:0}.lm__c[data-mode="pnb"]::before{background:var(--tx)}.lm__c[data-mode="zgl"]::before{background:#1f4fd6}
.lm__svg{height:120px;width:auto;max-width:100%}
.lm__track{position:relative;margin:14px 0 6px}
.lm__track input{-webkit-appearance:none;appearance:none;width:100%;height:28px;margin:0;background:transparent;cursor:pointer;position:relative;z-index:1}
.lm__track input::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#1f4fd6 calc(12px + (100% - 24px) * var(--f,0)),rgba(17,22,29,.28) 0)}
.lm__track input::-moz-range-track{height:2px;background:rgba(17,22,29,.28)}
.lm__track input::-moz-range-progress{height:2px;background:#1f4fd6}
.lm__track input::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-11px;border-radius:50%;background:#1f4fd6;border:4px solid var(--bone);box-shadow:0 0 0 1px #1f4fd6}
.lm__track input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#1f4fd6;border:4px solid var(--bone);box-shadow:0 0 0 1px #1f4fd6}
.lm__track input:focus-visible{outline:2px solid #1f4fd6;outline-offset:4px}
.lm__track ol{position:absolute;left:0;right:0;top:6px;height:16px;pointer-events:none}
.lm__track li{position:absolute;left:calc(12px + (100% - 24px) * var(--f));width:1px;height:16px;background:var(--tx)}
.lm__mode{margin-top:12px}
.lm__d{flex:0 0 auto}
.lm__ladder{margin-top:16px}
.lm__ladder li{display:block;padding:0;border:0;cursor:default}
.lm__ladder button{display:flex;justify-content:space-between;gap:12px;width:100%;min-height:44px;align-items:center;padding:8px 10px;border:1px solid var(--line);background:transparent;font:inherit;font-size:13px;line-height:18px;color:var(--tx-2);text-align:left;cursor:pointer;transition:background var(--m-ctl),color var(--m-ctl)}
.lm__ladder li+li{margin-top:4px}
.lm__ladder li.is-on button{background:var(--tx);color:var(--paper);border-color:var(--tx)}
.lm__ladder li.is-on small{color:rgba(255,255,255,.66)}
.lm__ladder button:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
@media (max-width:1000px){.lm__c,.lm__c:first-child,.lm__c:last-child{border-right:0;border-bottom:1px solid var(--line);padding:24px 0}.lm__svg{height:100px}}
.lm__track ol{top:0;bottom:0;height:auto}
.lm__track li{top:50%;height:16px;transform:translateY(-50%)}
/* hero R5b: layer buttons select, the link leaves */
button.dh__lab{border-top:0;border-right:0;border-bottom:0;background:transparent;cursor:pointer;text-align:left}
button.dh__lab:hover{background:rgba(17,22,29,.06)}
button.dh__lab.is-on{background:var(--tx);color:var(--paper)}
.dh__q{cursor:default}
.dh__qs{opacity:1;color:#1f4fd6;text-decoration:underline;text-underline-offset:4px;min-height:44px}
.dh__qs[hidden]{display:none}
.dh__qs:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
@media (max-width:760px){
  .dh__stage{display:flex;flex-direction:column}
  .dh__labs{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
  button.dh__lab{width:100%;border:1px solid var(--line);justify-content:flex-start}
  .dh__svg{max-height:220px;width:100%;object-fit:contain}
}
.ts__list b,.ts__labs b{font:500 24px/30px var(--sans)}
.ts__list p,.ts__labs span{font-size:16px;line-height:24px}
.ts__labs a:hover{padding-left:0}
.ts__labs a:hover b,.ts__labs a:focus-visible b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
@media (max-width:900px){.ts__labs b{font-size:20px;line-height:26px}}
.ar__labs{margin-top:56px;padding-top:24px;border-top:1px solid var(--tx)}
.ar__labs ul{margin-top:12px}
.ar__labs a{display:grid;grid-template-columns:1fr auto;gap:4px 24px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.ar__labs b{font:500 20px/26px var(--sans)}
.ar__labs span{grid-column:1;color:var(--tx-2);font-size:15px;line-height:22px}
.ar__labs .ar20{grid-row:1/3;grid-column:2;color:#1f4fd6;transition:transform var(--m-ctl) var(--ease2)}
.ar__labs a:hover b,.ar__labs a:focus-visible b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.ar__labs a:hover .ar20{transform:translateX(4px)}

/* Shareable lab scenarios */
.lab__sharing{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;min-width:0}
.lab__share{display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:6px 0;border:0;background:transparent;color:var(--tx);font:inherit;font-weight:500;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(17,22,29,.35);transition:text-decoration-color var(--m-ctl)}
.lab__share:hover{text-decoration-color:currentColor}
.lab__share:focus-visible,.lab__share-url:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.lab__share-url{flex:1 1 240px;min-width:0;width:100%;min-height:44px;padding:8px;border:1px solid var(--line);background:transparent;color:var(--tx);font:inherit}
.lm__notes > .lab__sharing{grid-column:1/-1;margin-top:0}
/* Shared clock scenarios can place the notice at either end of the phone timeline. */
@media (max-width:900px){
  .lc__pin{--clock-width:calc(100vw - 2 * var(--gut));--pin-x:clamp(20px,calc(var(--m) * var(--clock-width)),calc(var(--clock-width) - 20px));left:var(--pin-x)}
  .lc__pin small{width:var(--clock-width);left:calc(20px - var(--pin-x));text-align:center}
}

/* briefing timeline (2026 changes) */
.tl{margin:0 0 48px;padding:24px 0 8px;border-top:1px solid var(--tx)}
.tl__axis{position:relative;height:56px;margin:20px 12px 8px}
.tl__axis::before{content:"";position:absolute;left:0;right:0;top:24px;height:2px;background:var(--tx)}
.tl__m li{position:absolute;left:calc(var(--f) * 100%);top:36px;font:500 11px/1 var(--sans);color:var(--tx-3);font-variant-numeric:tabular-nums}
.tl__m li::before{content:"";position:absolute;left:0;top:-14px;width:1px;height:8px;background:var(--tx-3)}
.tl__dot{position:absolute;left:calc(var(--f) * 100%);top:25px;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--paper);border:3px solid #1f4fd6;transition:transform var(--m-ctl) var(--ease2),background var(--m-ctl)}
.tl__dot.is-past{background:#1f4fd6}
.tl__dot.is-moved{border-color:var(--tx-3);background:var(--paper)}
.tl__dot.is-on{transform:scale(1.4)}
.tl__now{position:absolute;left:calc(var(--f) * 100%);top:0;bottom:12px;width:0;border-left:1px dashed var(--tx)}
.tl__now em{position:absolute;top:-6px;left:6px;font:500 11px/14px var(--sans);font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:var(--tx)}
.tl__list{display:grid;gap:0}
.tl__e a{display:grid;grid-template-columns:18px 140px 1fr;gap:4px 16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background var(--m-ctl)}
.tl__e i{width:10px;height:10px;border-radius:50%;border:2px solid #1f4fd6;align-self:center}
.tl__e.is-past i{background:#1f4fd6}
.tl__e.is-moved i{border-color:var(--tx-3);background:transparent}
.tl__e.is-moved b,.tl__e.is-moved span{color:var(--tx-3)}
.tl__e b{font:500 15px/22px var(--sans);font-variant-numeric:tabular-nums}
.tl__e span{font-size:15px;line-height:22px;color:var(--tx-2)}
.tl__e.is-on b{text-decoration:underline;text-underline-offset:4px}
.tl__e a:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
@media (max-width:760px){.tl__e a{grid-template-columns:18px 1fr}.tl__e span{grid-column:2}.tl__m li:nth-child(even){display:none}}

/* how we work: stage rail */
.hw__head{display:grid;gap:32px;align-content:start}
.hw__rail{border:0;padding:0;margin:0;min-width:0}
.hw__rail legend{font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:16px}
.hw__stops{position:relative;display:grid;gap:0}
.hw__stops::before{content:"";position:absolute;left:9px;top:14px;bottom:14px;width:2px;background:var(--tx)}
.hw__stop{position:relative;display:flex;gap:16px;align-items:center;min-height:48px;cursor:pointer;font-size:16px;line-height:22px}
.hw__stop input,.hw__all input{position:absolute;opacity:0;width:1px;height:1px}
.hw__stop i{position:relative;z-index:1;flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--tx);background:var(--paper);transition:background var(--m-ctl),border-color var(--m-ctl),transform var(--m-ctl) var(--ease2)}
.hw__stop:hover i{transform:scale(1.15)}
.hw__stop:has(input:checked) i{background:#1f4fd6;border-color:#1f4fd6}
.hw__stop:has(input:checked) span{font-weight:500}
.hw__stop:has(input:focus-visible) i,.hw__all:has(input:focus-visible) span{outline:2px solid #1f4fd6;outline-offset:3px}
.hw__all{display:inline-flex;min-height:44px;align-items:center;margin-top:8px;cursor:pointer;font-size:14px;color:var(--tx-2);text-decoration:underline;text-underline-offset:4px}
.hw__all:has(input:checked){color:var(--tx-3);text-decoration:none}
.hw__list > li{transition:opacity var(--m-state) var(--ease2)}
.hw__list[data-on] > li:not(.is-on){opacity:.35}
.hw__list > li.is-on h3{color:#1f4fd6}
@media (min-width:901px){.hw__head{position:sticky;top:104px}}
/* R8 fixes */
.hw__list[data-on] > li:not(.is-on){opacity:1}
.hw__list > li.is-on{box-shadow:inset 3px 0 0 #1f4fd6;padding-left:20px;background:rgba(31,79,214,.04)}
.hw__list > li{transition:box-shadow var(--m-state) var(--ease2),padding var(--m-state) var(--ease2),background var(--m-state)}
.lm__c .lm__track input[type=range]{margin:0}

/* hero R6: the site plan (orthographic drafting, unlike any isometric scene) */
.dh__plan{background:#efebe1}
.dh__plan .pl{transition:opacity var(--m-state) var(--ease2);cursor:pointer}
.dh__plan .pl path[pathLength]{stroke-dasharray:1;stroke-dashoffset:0}
.dh__stage.is-drafting .pl path[pathLength]{stroke-dashoffset:1}
.dh__stage.is-drafting .pl.is-drawn path[pathLength]{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s cubic-bezier(.45,.05,.25,1)}
.dh__stage.is-drafting .pl :is(.pl__dash,.pl__fill,text,rect,polygon,circle){opacity:0}
.dh__stage.is-drafting .pl.is-drawn :is(.pl__dash,.pl__fill,text,rect,polygon,circle){opacity:1;transition:opacity .6s ease .45s}
.dh__stage.is-drafted .pl path[pathLength]{transition:none}
.dh__stage[data-on] .pl:not(.is-on){opacity:.22}
.dh__plan .pl.is-on [stroke="#11161d"]{stroke:#1f4fd6}
.dh__plan .pl.is-on text[fill="#11161d"]{fill:#1f4fd6}
.dh__plan .pl[data-k="siec"].is-on [stroke-width="4"]{stroke-width:6}
.pl__x line{stroke:#1f4fd6;stroke-width:1;opacity:0;transition:opacity var(--m-ctl)}
.dh__stage.is-x .pl__x line{opacity:.55}
.dh__xy{position:absolute;left:0;top:0;padding:4px 8px;background:var(--paper);border:1px solid var(--line);font:500 12px/16px var(--mono,ui-monospace,monospace);font-variant-numeric:tabular-nums;color:#1f4fd6;pointer-events:none;opacity:0;white-space:nowrap;transition:opacity var(--m-ctl);z-index:3}
.dh__stage.is-x .dh__xy{opacity:1}
.dh__stage .dh__lab{transform:translate3d(0,-50%,0)}
@media (prefers-reduced-motion:reduce){.dh__stage .pl path[pathLength]{transition:none!important}}
@media (min-width:1101px){
  .dh__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .dh__art{margin-right:calc(-1 * max(var(--gut), (100vw - var(--max)) / 2 + var(--gut)))}
  .dh__stage{border-left:1px solid var(--line)}
  .dh__q{margin-right:max(var(--gut), (100vw - var(--max)) / 2 + var(--gut))}
}
.dh__stage[data-on] .pl:not(.is-on){opacity:.4}

/* hero R7: decision architecture. Monumental thesis over a full-width plan you can change */
.dh--plan{padding:136px 0 0;border-bottom:1px solid var(--line)}
.dh__top{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px 64px;align-items:end;padding-bottom:48px}
.dh--plan .dh__h{font-size:clamp(56px,8.4vw,128px);line-height:.94;max-width:none}
.dh--plan .dh__h span{display:block}
.dh__lead .dh__sub{margin-top:0}
.dh--plan .dh__art{position:relative;margin:0;width:100%;max-width:none;aspect-ratio:auto;border-top:1px solid var(--line);animation:none}
.dh--plan .dh__stage{position:relative;height:min(88vh,calc(100vw * .62));min-height:520px;border:0;aspect-ratio:auto;overflow:hidden}
.dh--plan .dh__svg{width:100%;height:100%}
.dh--plan .dh__labs{position:absolute;inset:0;pointer-events:none}
.dh--plan .dh__lab{position:absolute;transform:translate(10px,-50%)}
.dh__panel{position:absolute;left:max(var(--gut), (100vw - var(--max)) / 2 + var(--gut));top:48px;width:min(380px,30vw);display:grid;gap:16px;padding:24px;background:rgba(247,245,239,.94);border:1px solid var(--line);backdrop-filter:blur(2px);z-index:4}
.dh__alts{border:0;margin:0;padding:0;display:grid;gap:4px}
.dh__alts legend{font:400 24px/30px var(--serif);margin-bottom:10px}
.dh__alt{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border:1px solid var(--line);cursor:pointer;font-size:15px;line-height:20px;transition:background var(--m-ctl),color var(--m-ctl),border-color var(--m-ctl)}
.dh__alt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.dh__alt::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--tx);transition:background var(--m-ctl),border-color var(--m-ctl)}
.dh__alt:has(input:checked){background:var(--tx);color:var(--paper);border-color:var(--tx)}
.dh__alt:has(input:checked)::before{background:#1f4fd6;border-color:#1f4fd6}
.dh__alt:has(input:focus-visible){outline:2px solid #1f4fd6;outline-offset:2px}
.dh__depsh{font:500 13px/18px var(--sans);color:#1f4fd6;margin-bottom:6px}
.dh__deps ol{display:grid;gap:4px}
.dh__deps button{display:grid;gap:2px;width:100%;padding:10px 12px;border:0;border-left:3px solid #1f4fd6;background:rgba(31,79,214,.06);text-align:left;font:inherit;cursor:pointer;transition:background var(--m-ctl)}
.dh__deps button:hover{background:rgba(31,79,214,.12)}
.dh__deps button:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.dh__deps b{font:500 13px/18px var(--sans);color:#1f4fd6}
.dh__deps span{font-size:14px;line-height:20px;color:var(--tx)}
.dh__deps:not([hidden]){animation:depIn 320ms var(--ease2) both}
@keyframes depIn{from{opacity:0;transform:translateY(6px)}}
.dh--plan .dh__q{margin:0;padding-top:12px;min-height:0;grid-template-columns:auto 1fr;font-size:16px;line-height:23px}
/* alternatives on the plan */
.dh__plan .pl__alt{opacity:0;transition:opacity 420ms var(--ease2);pointer-events:none}
.dh__plan .pl__base{transition:opacity 420ms var(--ease2)}
.dh__stage[data-alt="wjazd"] .pl__alt[data-alt="wjazd"],.dh__stage[data-alt="moc"] .pl__alt[data-alt="moc"],.dh__stage[data-alt="zabudowa"] .pl__alt[data-alt="zabudowa"]{opacity:1}
.dh__stage[data-alt="wjazd"] .pl__base[data-alt="wjazd"],.dh__stage[data-alt="moc"] .pl__base[data-alt="moc"],.dh__stage[data-alt="zabudowa"] .pl__base[data-alt="zabudowa"]{opacity:.18}
.dh__stage[data-alt] .pl:not(.is-dep){opacity:.32}
.dh__plan .pl.is-dep [stroke="#11161d"]{stroke:#1f4fd6}
.dh__plan .pl.is-dep text[fill="#11161d"]{fill:#1f4fd6}
.dh--plan .dh__lab.is-dep{border-color:#1f4fd6;color:#1f4fd6}
.dh__xy,.pl__x{display:none}
@media (prefers-reduced-motion:reduce){.dh__deps:not([hidden]){animation:none}}
@media (max-width:1100px){
  .dh__top{grid-template-columns:1fr;padding-bottom:32px}
  .dh__panel{position:static;width:auto;margin:0 var(--gut) 32px;backdrop-filter:none;background:var(--paper)}
  .dh--plan .dh__stage{height:min(64vh,620px);min-height:380px}
}
@media (max-width:760px){
  .dh--plan{padding-top:104px}
  .dh--plan .dh__h{font-size:52px;line-height:52px}
  .dh--plan .dh__stage{height:auto;min-height:0;aspect-ratio:4/3}
  .dh--plan .dh__labs{position:static;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px var(--gut) 0;pointer-events:auto}
  .dh--plan .dh__lab{position:static!important;transform:none!important;width:100%}
  .dh--plan .dh__stage{display:flex;flex-direction:column-reverse;overflow:visible}
  .dh__panel{margin:16px var(--gut) 32px;padding:16px}
}
.pi__list a{grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,3fr) auto}
.pi__lab{font:500 13px/18px var(--sans);color:#1f4fd6;align-self:center}
.pi__lab::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#1f4fd6;vertical-align:1px}
.pi__tools{margin-top:56px}
.pi__tools .ts__labs{margin-top:12px}
@media (max-width:900px){.pi__list a{grid-template-columns:1fr auto}.pi__lab{grid-column:1}}
@media (min-width:901px){.pi__list .pi__lab{grid-column:3;grid-row:1}.pi__list .ix__go{grid-column:4;grid-row:1}}
/* biogas regime map (replaces the plant drawing) */
.lab__fig--map{padding:24px 24px 8px;background:#efebe1}
.lab__map{overflow:visible}
.rm__n{font:500 26px var(--sans);fill:var(--tx)}
.rm__a,.rm__b{fill:transparent;stroke:var(--tx);stroke-width:1.5;transition:fill var(--m-state) var(--ease2),stroke var(--m-state)}
.rm__ta,.rm__tb{font:400 22px var(--sans);fill:var(--tx-2);transition:fill var(--m-state)}
.rm__thr{stroke:var(--tx);stroke-width:2.5}
.rm__lane[data-on="a"] .rm__a,.rm__lane[data-on="b"] .rm__b{fill:#1f4fd6;stroke:#1f4fd6}
.rm__lane[data-on="a"] .rm__ta,.rm__lane[data-on="b"] .rm__tb{fill:#fff;font-weight:500}
.rm__lane.is-closed .rm__a{fill:url(#rm-x);stroke:var(--tx-3)}
.rm__lane.is-closed .rm__ta{fill:var(--tx-3);text-decoration:line-through}
.rm__ax,.rm__tk{stroke:var(--tx);stroke-width:2}
.rm__tl{font:500 20px var(--sans);fill:var(--tx-2);font-variant-numeric:tabular-nums}
.rm__cur line{stroke:var(--tx);stroke-width:3;stroke-dasharray:8 6}
.rm__cur circle{fill:#1f4fd6;stroke:var(--paper);stroke-width:4}
.rm__cur{transition:transform 260ms var(--ease2)}
@media (prefers-reduced-motion:reduce){.rm__cur{transition:none}}
@media (max-width:900px){.rm__n{font-size:30px}.rm__ta,.rm__tb{font-size:26px}}
.rm__n{font:500 34px var(--sans)}
.rm__t{font:500 30px var(--sans);fill:#fff;pointer-events:none}
.rm__lane.is-out .rm__t{fill:#1f4fd6}
.rm__lane.is-closed .rm__a{fill:url(#rm-x)}
.rm__ta,.rm__tb{display:none}
.rm__tl{font-size:26px}
@media (max-width:900px){.rm__n{font-size:40px}.rm__t{font-size:36px}.rm__tl{font-size:32px}}

/* briefing argument (walk-through of the sections) */
.arg{margin:0 0 56px;padding:28px 0 8px;border-top:1px solid var(--tx)}
.arg__q{margin-top:10px;font:400 clamp(28px,3vw,40px)/1.15 var(--serif);max-width:24ch}
.arg__rail{position:relative;height:3px;margin:28px 0 0;background:var(--line)}
.arg__rail i{position:absolute;inset:0;background:#1f4fd6;transform-origin:0 50%;transform:scaleX(0);transition:transform 420ms var(--ease2)}
.arg__list{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0;position:relative}
.arg__s{display:contents}
.arg__k{grid-row:1;display:grid;gap:6px;align-content:start;padding:16px 16px 18px 0;border:0;background:transparent;text-align:left;font:500 15px/21px var(--sans);color:var(--tx-2);cursor:pointer;transition:color var(--m-ctl)}
.arg__k span{font:500 12px/1 var(--sans);letter-spacing:.06em;color:var(--tx-3)}
.arg__s.is-on .arg__k{color:var(--tx)}
.arg__s.is-on .arg__k span,.arg__s.is-past .arg__k span{color:#1f4fd6}
.arg__k:hover{color:var(--tx)}
.arg__k:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.arg__b{grid-row:2;grid-column:1/-1;display:none;padding:20px 0 8px;border-top:1px solid var(--line)}
.arg__s.is-on .arg__b{display:block;animation:depIn 320ms var(--ease2) both}
.arg__b p:first-child{font:400 clamp(20px,1.8vw,24px)/1.4 var(--serif);max-width:52ch}
.arg__b .ar__src{margin-top:12px}
.arg__b .lnk{margin-top:4px}
.arg__nav{display:flex;align-items:center;gap:16px;margin-top:12px}
.arg__nav button{min-height:44px;padding:0 16px;border:1px solid var(--tx);background:transparent;font:500 14px/1 var(--sans);cursor:pointer}
.arg__nav button:disabled{opacity:.35;cursor:default}
.arg__nav button:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
.arg__pos{font:500 13px/1 var(--sans);font-variant-numeric:tabular-nums;color:var(--tx-2)}
@media (max-width:760px){.arg__list{grid-template-columns:1fr}.arg__s{display:block;border-bottom:1px solid var(--line)}.arg__k{grid-row:auto;padding:14px 0}.arg__b{border-top:0;padding-top:0}}
@media (prefers-reduced-motion:reduce){.arg__s.is-on .arg__b{animation:none}.arg__rail i{transition:none}}
.db__row.is-dep{box-shadow:inset 3px 0 0 #1f4fd6;background:rgba(31,79,214,.04)}
.db__row.is-dep .db__name{color:#1f4fd6}
.db__tag{display:inline-block;margin-left:10px;padding:2px 8px;border:1px solid #1f4fd6;font:500 11px/16px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:#1f4fd6;vertical-align:2px}
.db__row{position:relative}
.db__row.is-dep{box-shadow:none;background:rgba(31,79,214,.04)}
.db__row.is-dep::after{content:"";position:absolute;left:-16px;top:0;bottom:0;width:3px;background:#1f4fd6}
@media (max-width:760px){.db__row.is-dep::after{left:-8px}}
/* R9 fixes */
.dh--plan .dh__lab.is-dep.is-on{color:var(--paper);border-color:var(--tx)}

/* field heroes: drafting plans on ink */
.sh--art .fpl__fig{margin:0;position:relative;align-self:stretch;min-height:360px}
.fpl{display:block;width:100%;height:100%}
.fpl__fig [pathLength]{stroke-dasharray:1;stroke-dashoffset:0}
.fpl__fig.is-drafting [pathLength]{stroke-dashoffset:1}
.fpl__fig.is-drafting text,.fpl__fig.is-drafting .fp__dash,.fpl__fig.is-drafting .fp__fill,.fpl__fig.is-drafting polygon{opacity:0}
.fpl__fig.is-drafting.is-drawn text,.fpl__fig.is-drafting.is-drawn .fp__dash,.fpl__fig.is-drafting.is-drawn .fp__fill,.fpl__fig.is-drafting.is-drawn polygon{opacity:1;transition:opacity .8s ease 1.4s}
@media (prefers-reduced-motion:reduce){.fpl__fig [pathLength]{transition:none!important;stroke-dashoffset:0!important}}
@media (max-width:900px){.sh--art .fpl__fig{min-height:0;margin-top:24px}}
/* field plans: keyframe draw-on (transitions did not start on <path> here) */
.fpl__fig.is-drafting [pathLength]{transition:none}
@keyframes fpDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.fpl__fig.is-drafting.is-drawn [pathLength]{animation:none}}
.lr__src a,.lab__src a,.ar__src a{display:inline-block;min-height:24px;line-height:24px}
/* phones: the plan stays in view while the assumption panel is used */
@media (max-width:760px){
  .dh--plan .dh__stage{position:sticky;top:72px;z-index:3;background:var(--paper);border-bottom:1px solid var(--line)}
  .dh--plan .dh__svg{aspect-ratio:16/10;height:auto}
  .dh--plan .dh__labs{display:flex;gap:6px;overflow-x:auto;padding:8px var(--gut);scrollbar-width:none}
  .dh--plan .dh__labs::-webkit-scrollbar{display:none}
  .dh--plan .dh__lab{flex:none;width:auto;min-height:44px;padding:6px 10px;font-size:13px}
}
@media (max-width:760px){.dh--plan .dh__labs{flex-wrap:nowrap}}
.db__relink{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
.db__relink a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font:400 20px/26px var(--serif);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;text-decoration-color:rgba(17,22,29,.35)}
.db__relink a:hover{text-decoration-color:currentColor}
/* one scene per assumption change */
.dh__links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}
.dh__links path{fill:none;stroke:#1f4fd6;stroke-width:2;stroke-dasharray:1;stroke-dashoffset:0}
.dh__links circle{fill:#1f4fd6;stroke:var(--paper);stroke-width:3}
@keyframes fpDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.dh__plan .pl__alt [pathLength]{stroke-dasharray:1}
/* field hero operation */
.fpl__fig .fpl__alt{opacity:0;transition:opacity 420ms var(--ease2)}
.fpl__fig .fpl__base{transition:opacity 420ms var(--ease2)}
.fpl__fig[data-alt="east"] .fpl__alt[data-alt="east"]{opacity:1}
.fpl__fig[data-alt="east"] .fpl__base[data-alt="east"]{opacity:.18}
.fpl__ctl{display:grid;gap:12px;margin-top:16px;color:var(--on)}
.fpl__ctl .dh__alts legend{color:var(--on);font-size:20px}
.fpl__ctl .dh__alt{border-color:var(--line-on);color:var(--on-2)}
.fpl__ctl .dh__alt::before{border-color:var(--on-2)}
.fpl__ctl .dh__alt:has(input:checked){background:var(--on);color:var(--ink);border-color:var(--on)}
.fpl__ctl .dh__alt:has(input:checked)::before{background:#6f93ff;border-color:#6f93ff}
.fpl__ctl .dh__alts{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.fpl__ctl .dh__alts legend{grid-column:1/-1}
.fpl__deps .dh__depsh{color:#8fa9ff}
.fpl__deps ol{display:grid;gap:4px}
.fpl__deps li{padding:8px 12px;border-left:3px solid #6f93ff;background:rgba(111,147,255,.1);font-size:14px;line-height:20px;color:var(--on)}
.fpl__fig > div[aria-hidden]{position:relative}
.fpl__fig[data-alt="scale"] .fpl__alt[data-alt="scale"],.fpl__fig[data-alt="point"] .fpl__alt[data-alt="point"],.fpl__fig[data-alt="bays"] .fpl__alt[data-alt="bays"],.fpl__fig[data-alt="rev"] .fpl__alt[data-alt="rev"]{opacity:1}
.fpl__fig[data-alt="point"] .fpl__base[data-alt="point"],.fpl__fig[data-alt="bays"] .fpl__base[data-alt="bays"]{opacity:.18}

/* briefing chain of reasoning */
.ch{margin:0 0 56px;padding:28px 0 8px;border-top:1px solid var(--tx)}
.ch__types{margin:16px 0 24px;grid-template-columns:repeat(3,minmax(0,1fr))}
.ch__types legend{font:500 13px/18px var(--sans);color:var(--tx-2);margin-bottom:8px;grid-column:1/-1}
.ch__list{display:grid;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr) 40px minmax(0,1fr);align-items:start}
.ch__n{padding:18px 16px 16px;border-top:3px solid var(--line);transition:border-color 420ms var(--ease2),background 420ms var(--ease2)}
.ch__n.is-on{border-top-color:#1f4fd6;background:rgba(31,79,214,.04)}
.ch__k{display:flex;gap:10px;align-items:baseline;font:500 13px/18px var(--sans);color:var(--tx-2)}
.ch__k span{font-size:12px;letter-spacing:.06em;color:#1f4fd6}
.ch__t{margin-top:10px;font:400 18px/27px var(--serif);color:var(--tx)}
.ch__why{margin-top:12px}
.ch__why summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font:500 14px/1 var(--sans);color:#1f4fd6;text-decoration:underline;text-underline-offset:4px}
.ch__why p{margin-top:8px;font-size:15px;line-height:23px;color:var(--tx-2)}
.ch__arw{display:grid;place-items:center;padding-top:40px}
.ch__ar{width:34px;height:18px;fill:none;stroke:#1f4fd6;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:900px){.ch__list{grid-template-columns:1fr}.ch__arw{padding:4px 0;transform:rotate(90deg)}.ch__types{grid-template-columns:1fr}}

/* tools in the drafting language: serif thesis, square controls (planner, calculator, chips elsewhere) */
.sh--tool .sh__h{font:400 clamp(44px,5vw,72px)/1.02 var(--serif);letter-spacing:-.02em;max-width:20ch}
.sh--tool .sh__h em{font-style:normal;color:var(--tx-2)}
.pl__q span,.cy__chips button,.pp__tags li,.fp__others a,.pl__print{border-radius:0}
.pl__q span{min-height:44px;display:inline-flex;align-items:center;padding:0 16px}
@media (max-width:760px){.sh--tool .sh__h{font-size:40px;line-height:42px}}
/* the idle reading points at a layer without fading the rest of the plan; a deliberate choice still focuses it */
.dh__stage[data-by="idle"] .pl:not(.is-on){opacity:1}
.dh__stage[data-by="idle"] .pl.is-on [stroke="#11161d"]{stroke:#1f4fd6}
.fpl--light{background:#efebe1}
.sh__plan{margin:0;border:1px solid var(--line)}
.sh__plan .fpl,.wi__lead figure .fpl,.db__art .fpl{display:block;width:100%;height:auto}
.fpl--light .fpl__alt{display:none}
.sh__art.sh__plan{aspect-ratio:auto;height:auto;align-self:center}
.plh{position:relative}
.plh__s[hidden]{display:none}
.plh .fpl__alt{display:none}
.sh--tool .sh__in:has(.plh){display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:32px 56px;align-items:center}
@media (max-width:900px){.sh--tool .sh__in:has(.plh){grid-template-columns:1fr}}
/* field risks: ink titles with a cobalt index (cobalt is the only accent) */
.fp__risks{counter-reset:rk}
.fp__risks li{counter-increment:rk}
.fp__risks b{color:var(--tx)!important}
.fp__risks b::before{content:counter(rk,decimal-leading-zero);display:inline-block;min-width:32px;font:500 12px/1 var(--sans);letter-spacing:.06em;color:#1f4fd6;vertical-align:2px}
.hwp__svg{display:block;width:100%;height:auto;aspect-ratio:4/3}
.hwp .pl__alt{display:none}
.sh--editorial .sh__in:has(.hwp){display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:32px 56px;align-items:center}
@media (max-width:900px){.sh--editorial .sh__in:has(.hwp){grid-template-columns:1fr}}
/* phones: the field-hero plan runs edge to edge and slightly enlarged, so the drawing reads */
@media (max-width:760px){
  .fpl__fig > div[aria-hidden]{margin:0 calc(-1 * var(--gut));overflow:hidden}
  .fpl__fig > div[aria-hidden] .fpl{width:100%}
}

/* visual audit fixes (Sonnet audit, verified) */
.dh--plan .dh__lab:not(.is-on){background:rgba(247,245,239,.92)}
.pl__q span{border-color:rgba(17,22,29,.35);color:var(--tx)}
.db__row summary::after,.db__row details[open] summary::after{content:"";display:inline-block;width:8px;height:8px;margin-left:12px;border-right:1.5px solid var(--tx-3);border-bottom:1.5px solid var(--tx-3);transform:translateY(-3px) rotate(45deg);transition:transform var(--m-ctl) var(--ease2)}
.db__row details[open] summary::after{transform:translateY(1px) rotate(-135deg)}
.wi__list a{position:relative;padding-right:56px}
.wi__list a::after{content:"→";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:22px;color:#1f4fd6;transition:transform var(--m-ctl) var(--ease2)}
.wi__list a:hover::after{transform:translate(4px,-50%)}
.fp__ins a{grid-template-columns:auto auto 1fr}
.fp__ins a>span:last-child{justify-self:start}
@media (max-width:760px){.dh--plan .dh__labs{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}}
.db__record ul{counter-reset:rf}
.db__record li{counter-increment:rf;border:0;border-top:1px solid var(--tx);padding:12px 0 0;min-height:0;color:var(--tx)}
.db__record li::before{content:counter(rf,decimal-leading-zero);display:block;margin-bottom:6px;font:500 11px/1 var(--sans);letter-spacing:.06em;color:#1f4fd6}
.db__record li::after{content:"";display:block;height:44px;margin-top:10px;border-bottom:1px dashed rgba(17,22,29,.3);background:repeating-linear-gradient(transparent 0 21px,rgba(17,22,29,.08) 21px 22px)}
@media (max-width:760px){.db__record ul{grid-template-columns:1fr 1fr}}
/* planner diagram: readable cards (min 150 px), equal heights per lane, sideways scroll with an edge cue */
@media (min-width:901px){
  .pl__graph{grid-template-columns:104px repeat(var(--cols),minmax(150px,1fr));scrollbar-width:thin}
  .pl__node{align-self:stretch}
  .pl__graph.is-scroll:not(.is-end){-webkit-mask-image:linear-gradient(90deg,#000 90%,rgba(0,0,0,.3));mask-image:linear-gradient(90deg,#000 90%,rgba(0,0,0,.3))}
}
/* the three possible outcomes of a review: tags, not form controls */
.db__recs{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.db__recs li{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 14px;border:1px solid var(--line);background:var(--paper);font:500 14px/1 var(--sans);color:var(--tx)}
.db__recs li::before{content:"";width:8px;height:8px;border-radius:0;border:0;background:#1f4fd6;flex:none}
.db__recs li:nth-child(2)::before{background:transparent;box-shadow:inset 0 0 0 1.5px #1f4fd6}
.db__recs li:nth-child(3)::before{background:var(--tx)}
.db__recs li{padding-left:14px;position:static}
.db__recs li::before{position:static;top:auto;left:auto}
.lab__h{max-width:20ch}
/* phone audit (real-resolution tiles) */
@media (max-width:900px){
  .lp__fig{position:relative}
  .nav__lang{min-width:44px;min-height:44px;display:inline-flex!important;align-items:center;justify-content:center}
  .lc__top{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:64px}
  .lc__opts>:last-child:nth-child(odd){grid-column:1/-1}
  .lab__dial{padding:8px 0 2px}
  .lab__dial .lab__val{font-size:32px}
}
@media (max-width:760px){
  .dh--plan .dh__stage{position:relative;top:auto}
  .dh--plan .dh__svg text[font-size="26"]{font-size:42px}
  .dh--plan .dh__svg text[font-size="29"]{font-size:40px}
}
.lr__bar.is-off{visibility:hidden}
/* phone audit: content labels at a readable size (mono labels stay 11 px) */
.lm__ladder small{font-size:13px}
.pl__node em{font-size:12px}
@media (max-width:900px){.mx__l{font-size:11.5px!important}}
@media (max-width:480px){.pl__bar{flex-direction:column;align-items:flex-start;gap:4px}}
.lr__src a,.lab__src a,.ar__src a{display:inline;min-height:0;line-height:inherit;padding:10px 0;-webkit-box-decoration-break:clone}
.lr__p,.lab__p,.fp__lead,.dh__sub,section p{text-wrap:pretty}
/* biogas regime map: phone sheet with names above the bars */
.lab__map--ph{display:none}
@media (max-width:600px){
  .lab__fig--map .lab__map:not(.lab__map--ph){display:none}
  .lab__fig--map .lab__map--ph{display:block}
  .lab__map--ph .rm__n{font-size:32px}
  .lab__map--ph .rm__t{font-size:30px}
  .lab__map--ph .rm__tl{font-size:27px}
}
.lab__map--ph .rm__n{paint-order:stroke;stroke:var(--bone);stroke-width:10px;stroke-linejoin:round}
/* road section: labels sized in drawing units so they read at every width */
.lr__t{font-size:17px}
@media (max-width:600px){.lr__t{font-size:23px}}
.tl__m li{font-size:12px;color:var(--tx-2)}
.tl__now em{font-size:12px}
/* phone tap targets: 44 px without changing the visual weight */
@media (max-width:900px){
  .brand{min-height:44px}
  .sh__crumb a{display:inline-block;padding:14px 0;margin:-14px 0}
  .ft__nav{gap:0 22px}
  .ft__nav a{display:inline-flex;align-items:center;min-height:44px}
  .lab__elig{min-height:44px;align-items:center}
  .lp__lab{padding:13px 12px}
  .ds__g button{min-height:44px;padding:0 14px}
  input[type=range]{height:44px}
}
@media (max-width:900px){.lm__track input{height:44px;margin:-8px 0}}
@media (max-width:900px){.lm__c input[type=range]{height:44px;margin:8px 0 0}}
/* field heroes: the drawing carries the page, so it gets the wider column */
@media (min-width:901px){.sh--art .sh__in:has(.fpl__fig){grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px}}
.sh__h,.sh h1{text-wrap:balance}
/* knowledge index: thesis left, lead right, no empty half */
@media (min-width:901px){
  .sh--editorial .sh__in:not(:has(figure,.sh__art,svg)) > div{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:56px;align-items:end}
  .sh--editorial .sh__in:not(:has(figure,.sh__art,svg)) .sh__crumb{grid-column:1/-1}
  .sh--editorial .sh__in:not(:has(figure,.sh__art,svg)) .sh__p{margin:0 0 12px}
}
/* desktop audit below the fold */
.pl__node[data-track]{--trk:var(--tx)}
.pl__node em{font:500 12px/1.35 var(--sans)}
.pl__detail dl{grid-template-columns:1fr}
.pl__detail dl>div{display:grid;grid-template-columns:minmax(0,11em) minmax(0,1fr);gap:4px 20px;align-items:baseline}
.pl__risk dd{color:var(--tx)}
.pl__detail dl>.pl__risk{border-left:2px solid #1f4fd6;padding-left:12px}
@media (max-width:600px){.pl__detail dl>div{grid-template-columns:1fr}}
.fp__risks b{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:baseline}
.fp__risks b::before{display:block;min-width:0;vertical-align:0}
@media (min-width:901px){.fp__list li,.fp__scope li,.fp__risks li{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:32px}}
.ft__legal{max-width:none}
.lr legend,.lc legend,.lp legend,.lab legend{padding:0}
.lab__elig input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1.5px solid var(--tx);border-radius:0;background:var(--paper);display:grid;place-content:center;cursor:pointer}
.lab__elig input::before{content:"";width:10px;height:10px;background:#1f4fd6;transform:scale(0);transition:transform .15s var(--ease2)}
.lab__elig input:checked::before{transform:scale(1)}
.lab__elig input:focus-visible{outline:2px solid #1f4fd6;outline-offset:2px}
/* home: the tools row sits on the same columns as the disciplines above it */
@media (min-width:901px){
  .pi__tools .ts__labs a{grid-template-columns:minmax(0,3fr) minmax(0,5fr) minmax(0,3fr) auto;gap:6px 24px;align-items:center;padding:24px 0}
  .pi__tools .ts__labs span{grid-column:2}
  .pi__tools .ts__labs .ar20{grid-column:4;grid-row:1}
}
.db__next{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 32px;margin-top:32px}
.db__next .db__cta,.db__next .db__relink{margin:0}
.db__next .db__relink{border:0;padding:0}
.fp__w{display:block;margin-top:6px;padding-left:27px;font-size:14px;line-height:20px;color:var(--tx-3)}
@media (max-width:900px){.fp__w{padding-left:0}}
