@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.UkQhOW_className{font-family:Outfit,Outfit Fallback;font-style:normal}.UkQhOW_variable{--font-sans:"Outfit", "Outfit Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1e219c03c996efbd-s.00ewlnc1znsu7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b35b0dbffda7f2c4-s.0bnyh_2yo1emg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/03bda585a99c6450-s.p.0glcd8n2pdab0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.nI_9nG_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.nI_9nG_variable{--font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.1da667lu-u79a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.1dgcou5jor5q_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.2taws-qdxmzlf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.28xcb7557rbh2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}._1NxLqG_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}._1NxLqG_variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--paper:#f3ecdf;--paper-raised:#fffaf3;--ink:#1c1916;--muted:#655d53;--line:#e0d4c4;--copper:#9a3412;--copper-deep:#7c2d12;--copper-soft:#fff1e8;--copper-mark:#c45c28;--pine:#1f6b45;--pine-soft:#e7f5ee;--sea:#1e4d6b;--sea-soft:#e7f1f7;--rose:#9f1239;--rose-soft:#fde8ee;--amber:#a16207;--amber-soft:#fff6e5;--space-1:.4rem;--space-2:.8rem;--space-3:1rem;--space-4:1.5rem;--radius-control:999px;--radius-panel:1.15rem;--shadow:0 18px 40px #1c191612;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #9a341214, transparent 32rem), var(--paper);min-height:100vh;color:var(--ink);font-family:var(--font-sans), "Segoe UI", sans-serif;margin:0;font-size:17px;line-height:1.6}body:before{content:"";pointer-events:none;mix-blend-mode:multiply;background-image:linear-gradient(#1d1a1606 1px,#0000 1px);background-size:100% 4px;position:fixed;inset:0}a{color:inherit}button,input{font:inherit}.skip-link{z-index:10;background:var(--ink);color:var(--paper);padding:.6rem .9rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.8rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell{width:min(1200px,100% - 2rem);max-width:100%;margin:0 auto}.site-header{z-index:5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#f3ecdfe0;position:sticky;top:0}.site-header .shell,.site-footer .shell{justify-content:space-between;align-items:center;gap:1rem;min-height:4.4rem;display:flex}.wordmark{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;align-items:center;gap:.75rem;font-size:1.25rem;text-decoration:none;display:flex}.mark{flex:none;width:2.7rem;height:2.7rem;display:block}.nav{gap:1.1rem;display:flex}.nav a{color:var(--muted);text-decoration:none}.nav a:hover,.nav a:focus-visible{color:var(--ink)}.hero{grid-template-columns:1.3fr .7fr;gap:2.5rem;padding:4.5rem 0 3rem;display:grid}.kicker{color:var(--copper-deep);font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .8rem;font-size:.78rem}h1,h2,h3{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-weight:520;line-height:1.08}h1{margin:0;font-size:clamp(3rem,7vw,5.4rem)}.lede{max-width:40rem;color:var(--muted);margin:1.2rem 0 0;font-size:1.18rem}.actions{flex-wrap:wrap;gap:.8rem;margin-top:1.8rem;display:flex}.button{cursor:pointer;background:var(--ink);min-height:2.8rem;color:var(--paper-raised);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.55rem 1rem;text-decoration:none;display:inline-flex}.button.secondary{color:var(--ink);border-color:var(--line);background:0 0}.button:disabled{cursor:not-allowed;opacity:.45}.button:focus-visible,.nav a:focus-visible,a.pattern-card:focus-visible,.choice input:focus-visible+span,.timeline-item:focus-visible,.code-sample button:focus-visible,.exercise-item summary:focus-visible{outline:3px solid var(--copper);outline-offset:3px}.hero-card,.panel,.pattern-card,.article-section,.code-sample,.exercise{background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:1.3rem}.hero-card{align-self:end;padding:1.3rem}.hero-card ol{margin:0;padding-left:1.2rem}.hero-card li+li{margin-top:.7rem}.section{padding:1rem 0 3rem}.section h2{margin:0 0 1rem;font-size:clamp(2rem,4vw,3rem)}.grid-3,.catalog-grid{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.panel,.pattern-card{padding:1.15rem 1.2rem 1.25rem}.panel p,.pattern-card p{color:var(--muted);margin:.4rem 0 0}.pattern-card{cursor:pointer;flex-direction:column;min-height:100%;text-decoration:none;transition:border-color .16s,background-color .16s;display:flex}a.pattern-card:hover{border-color:var(--ink);background:#fff}.pattern-card.planned{box-shadow:none;background:0 0}.meta-row,.chip-row{flex-wrap:wrap;gap:.4rem;display:flex}.chip,.status-pill{background:var(--sea-soft);color:var(--sea);border-radius:999px;align-items:center;padding:.12rem .55rem;font-size:.78rem;display:inline-flex}.chip.available{background:var(--pine-soft);color:var(--pine)}.chip.planned,.status-pill.inactive{color:var(--muted);background:#efe8dc}.status-pill.processing{background:var(--copper-soft);color:var(--copper-deep)}.status-pill.success{background:var(--pine-soft);color:var(--pine)}.status-pill.failure{background:var(--rose-soft);color:var(--rose)}.status-pill.waiting{background:var(--amber-soft);color:var(--amber)}.page-intro{padding:1.8rem 0 .4rem}.page-intro h1{font-size:clamp(2.3rem,4vw,3.3rem)}.panel h3,.pattern-card h2,.pattern-card h3{margin:.55rem 0 0;font-size:1.45rem}.lab{gap:.85rem;min-width:0;max-width:100%;margin:1.1rem 0 2rem;display:grid}.pattern-page .lede,.briefing>p{max-width:none}.briefing{padding:.4rem 0 .2rem}.briefing h2{margin:0 0 .7rem;font-size:clamp(1.8rem,3vw,2.4rem)}.briefing .grid-4{margin-top:1rem}.bench-label{color:var(--muted);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.45rem;margin:0;font-size:.72rem;display:flex}.bench-label span{border-radius:var(--radius-control);background:var(--ink);width:1.2rem;height:1.2rem;color:var(--paper-raised);letter-spacing:0;place-items:center;font-size:.68rem;display:inline-grid}.lab-toolbar,.lab-stage{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow)}.lab-toolbar{gap:.65rem;padding:.9rem 1rem 1rem;display:grid}.lab-stage{gap:.85rem;min-width:0;max-width:100%;padding:.95rem 1rem 1.05rem;display:grid;overflow-x:clip}.choice-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.choice-row p{color:var(--muted);margin:0 .4rem 0 0;font-size:.92rem}.lab-toolbar .choice-row p{flex:0 0 6.2rem}.contrast{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.contrast article{border:1px solid var(--line);background:var(--paper);border-radius:1rem;margin:0;padding:.85rem 1rem .95rem}.contrast article[aria-current=true]{border-color:var(--copper);background:var(--copper-soft);box-shadow:inset 4px 0 0 var(--copper)}.contrast-label{color:var(--copper-deep);font-family:var(--font-mono), monospace;letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0 0 .35rem;font-size:.72rem;display:flex}.contrast article p:last-child{margin:0}.choice{cursor:pointer;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice span{border:1px solid var(--line);background:var(--paper-raised);cursor:pointer;border-radius:999px;align-items:center;min-height:2.3rem;padding:.25rem .75rem;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.choice:hover span,.choice:focus-within span{border-color:var(--ink);background:#fff}.choice input:checked+span,.choice:hover input:checked+span,.choice:focus-within input:checked+span{border-color:var(--copper);background:var(--copper-soft);color:var(--copper-deep)}.workbench{grid-template-columns:minmax(0,1fr) minmax(17.5rem,24rem);align-items:start;gap:1rem;min-width:0;display:grid}.stage-head progress{margin-bottom:0}.canvas-card{border:1px solid var(--line);background:var(--paper);border-radius:1rem;min-width:0;overflow:hidden}.story{border-left:4px solid var(--copper);min-width:0;padding:.15rem .15rem .2rem .85rem;position:sticky;top:5.4rem}.story-beat{border-radius:.85rem;animation:.85s story-arrive}.story-step{color:var(--copper-deep);font-family:var(--font-mono), monospace;margin:0 0 .35rem;font-size:.78rem;font-weight:620}@keyframes story-arrive{0%{background:var(--copper-soft);transform:translate(0)}16%{transform:translate(.4rem)}to{background:0 0;transform:none}}.story h2{margin:.2rem 0 .6rem;font-size:2rem}.progress-label{color:var(--muted);font-family:var(--font-mono), monospace;justify-content:space-between;gap:1rem;font-size:.78rem;display:flex}progress{width:100%;height:.45rem;accent-color:var(--copper);margin:.55rem 0 .9rem}.narrative{margin:0;font-size:1.05rem}.notes{margin:.9rem 0 0;padding-left:1.1rem}.notes li+li{margin-top:.35rem}.lesson,.limit-note{color:var(--ink);background:#f8f1e6;border-radius:.9rem;margin-top:.9rem;padding:.8rem .9rem}.lesson strong,.limit-note strong{margin-bottom:.2rem;display:block}.transport{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.55rem .85rem;padding-bottom:.15rem;display:flex}.transport .key-hint{flex-basis:100%;margin:0}.controls,.speed-row{border:0;flex-wrap:wrap;gap:.45rem;min-inline-size:0;margin:0;padding:0;display:flex}.controls .button,.speed-row .button{background:var(--paper);height:2.5rem;min-height:2.5rem;color:var(--ink);border-color:var(--line);padding:0 .9rem}.speed-row .button[aria-pressed=true]{background:var(--copper);color:#fff7ef;border-color:var(--copper)}.controls .button.primary{background:var(--copper);color:#fff;border-color:var(--copper)}.controls .button:hover:not(:disabled){border-color:var(--ink);background:#fff}.controls .button.primary:hover:not(:disabled),a.button:hover:not(.secondary){background:var(--copper-deep);border-color:var(--copper-deep);color:#fff}.button.secondary:hover{border-color:var(--ink);background:#fff}.key-hint{color:var(--muted);font-size:.85rem}.speed-row{border-left:1px solid var(--line);align-items:center;margin-left:.15rem;padding-left:.85rem}.speed-label{color:var(--muted);font-size:.85rem;line-height:1}.speed-row .choice span{height:2.5rem;min-height:2.5rem;padding:0 .72rem}.diagram-canvas{background:linear-gradient(180deg, #fffaf333, #f3ecdfa6), var(--paper-raised);width:100%;height:440px;position:relative}.diagram-canvas .react-flow{position:absolute;inset:0}.react-flow__node-lab{box-shadow:none;background:0 0;border:none;border-radius:0;width:188px;padding:0}.lab-node{border:1px solid var(--line);background:#fff;border-radius:1rem;width:188px;min-height:92px;padding:.75rem .8rem .7rem;box-shadow:0 10px 24px #3726100f}.lab-node header{color:var(--muted);font-family:var(--font-mono), monospace;letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;gap:.4rem;font-size:.68rem;display:flex}.lab-node strong{margin-top:.35rem;font-size:1rem;display:block}.lab-node p{color:var(--muted);margin:.25rem 0 0;font-size:.82rem}.lab-node .react-flow__handle{background:#cfc4b2;border:0;width:8px;height:8px}.lab-node .react-flow__handle[data-handlepos=top],.lab-node .react-flow__handle[data-handlepos=bottom]{opacity:0}.lab-node[data-status=processing]{border-color:var(--copper)}.lab-node[data-status=success]{border-color:var(--pine)}.lab-node[data-status=failure]{border-color:var(--rose)}.lab-node[data-status=waiting]{border-color:var(--amber)}.pip{background:var(--line);border-radius:50%;width:.55rem;height:.55rem}.lab-node[data-status=processing] .pip{background:var(--copper);box-shadow:0 0 0 4px #9a341226}.lab-node[data-status=success] .pip{background:var(--pine)}.lab-node[data-status=failure] .pip{background:var(--rose)}.lab-node[data-status=waiting] .pip{background:var(--amber)}.component-list{padding:.75rem .85rem .85rem}.tables{gap:.7rem;padding-top:.15rem;display:grid}.component-list{border-top:1px solid var(--line);flex-wrap:wrap;gap:.45rem;display:flex}.component-list li{list-style:none}.component-list ul{margin:0;padding:0;display:contents}.timeline{min-width:0;max-width:100%}.step-rail{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.45rem;max-width:100%;margin:0;padding:0;list-style:none;display:grid}.step-rail li{min-width:0;display:flex}.timeline-item{text-align:left;border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:.85rem;align-items:center;gap:.45rem;width:100%;height:100%;min-height:2.7rem;padding:.35rem .6rem;transition:border-color .16s,background-color .16s;display:flex}.timeline-item:hover{border-color:var(--ink)}.step-index{border:1px solid var(--line);width:1.35rem;height:1.35rem;color:var(--muted);font-family:var(--font-mono), monospace;border-radius:999px;flex:none;place-items:center;font-size:.72rem;display:inline-grid}.timeline-item[data-state=done] .step-index{border-color:var(--ink);background:var(--ink);color:var(--paper-raised)}.timeline-item[data-state=current] .step-index{border-color:var(--copper);background:var(--copper);color:#fff}.timeline-item strong{font-size:.92rem;font-weight:620;line-height:1.25}.timeline-item[aria-current=step]{background:var(--copper-soft);border-color:var(--copper);box-shadow:inset 3px 0 0 var(--copper);animation:.7s step-arrive}.step-caption{border:1px solid var(--copper);background:var(--copper-soft);box-shadow:inset 4px 0 0 var(--copper);color:var(--ink);border-radius:.85rem;margin:.7rem 0 0;padding:.7rem .95rem .75rem 1rem;font-size:1.05rem}@keyframes step-arrive{0%{transform:translateY(.2rem)}to{transform:none}}.table-grid{grid-template-columns:repeat(3,1fr);gap:.8rem;display:grid}.table-grid h3{margin:0 0 .45rem;font-size:1.15rem}table{border-collapse:collapse;width:100%;font-size:.86rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.35rem .3rem}th{color:var(--muted);font-weight:560}.empty-row{color:var(--muted)}.limit-note{margin:0}.article{gap:1rem;padding-bottom:4rem;display:grid}.article-section{padding:1.2rem 1.3rem 1.35rem}.article-section h2{margin:0 0 .6rem;font-size:2rem}.split{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.split h3{margin:0 0 .4rem}.code-sample{overflow:hidden}.code-sample header{color:#f3eadc;background:#231f1b;border-bottom:1px solid #f3ecdf1f;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.code-sample pre{color:#f6efe4;font-family:var(--font-mono), monospace;background:#1c1915;margin:0;padding:1rem 1.1rem 1.2rem;font-size:.86rem;line-height:1.55;overflow:auto}.code-sample .button{color:#f6efe4;background:0 0;border-color:#f6efe440}.exercise-lead{max-width:40rem;color:var(--muted);margin:0}.exercise-list{gap:.75rem;margin:1.15rem 0 0;padding:0;list-style:none;display:grid}.exercise-item{border:1px solid var(--line);background:var(--paper);border-radius:1rem}.exercise-item[open]{border-color:var(--copper);background:var(--paper-raised)}.exercise-item summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.85rem;padding:.95rem 1rem;list-style:none;display:grid}.exercise-item summary::-webkit-details-marker{display:none}.exercise-item summary:hover{background:#fff}.exercise-item[open] summary:hover{background:0 0}.exercise-index{background:var(--copper-soft);width:2rem;height:2rem;color:var(--copper-deep);font-family:var(--font-mono), monospace;border-radius:999px;justify-content:center;align-items:center;font-size:.82rem;display:inline-flex}.exercise-question{color:var(--ink);padding-top:.2rem;font-weight:600}.exercise-action{border:1px solid var(--line);background:var(--paper-raised);min-height:2rem;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;padding:0 .75rem;font-size:.86rem;display:inline-flex}.exercise-item summary:hover .exercise-action{border-color:var(--ink);background:#fff}.exercise-item[open] .exercise-action{border-color:var(--copper);background:var(--copper-soft);color:var(--copper-deep)}.exercise-item[open] .exercise-action-closed,.exercise-item:not([open]) .exercise-action-open{display:none}.exercise-item .answer{border-left:4px solid var(--copper);background:var(--copper-soft);border-radius:0 .85rem .85rem 0;margin:0 1rem 1rem 3.85rem;padding:.85rem 1rem}.answer-label{color:var(--copper-deep);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin:0 0 .3rem;font-size:.72rem}.exercise-item .answer p:last-child{margin:0}.site-footer{border-top:1px solid var(--line);color:var(--muted)}.site-footer p{margin:0;padding:1rem 0 1.4rem}.credentials{color:var(--copper-deep);font-family:var(--font-mono), monospace;margin:.7rem 0 0;font-size:.92rem}.stat-row{grid-template-columns:repeat(3,1fr);gap:.8rem;margin:.4rem 0 .6rem;display:grid}.stat-row article{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--paper-raised);padding:1rem 1.05rem}.stat-row strong{font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;font-size:2rem;font-weight:520;line-height:1;display:block}.stat-row span{color:var(--muted);margin-top:.35rem;display:block}.principle{border:0;border-left:4px solid var(--copper-mark);background:var(--paper-raised);border-radius:0 1rem 1rem 0;margin:.4rem 0 .2rem;padding:1.2rem 1.3rem}.principle p{max-width:46rem;font-family:var(--font-display), Georgia, serif;letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.25}.practice-grid{grid-template-columns:1fr 1fr;gap:.8rem 1.4rem;margin:0;display:grid}.practice-grid div{border-bottom:1px solid var(--line);padding-bottom:.7rem}.practice-grid dt{font-weight:620}.practice-grid dd{color:var(--muted);margin:.15rem 0 0}.tool-grid{margin-top:1rem}.about .section h2{font-size:clamp(1.8rem,3vw,2.4rem)}@media (max-width:980px){.hero,.grid-3,.grid-4,.catalog-grid,.workbench,.split,.table-grid,.stat-row,.practice-grid{grid-template-columns:1fr}.step-rail{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.story{order:-1;position:static}.speed-row{border-left:0;margin-left:0;padding-left:0}.diagram-canvas{height:460px}.contrast{grid-template-columns:1fr}.exercise-item summary{grid-template-columns:auto minmax(0,1fr)}.exercise-action{grid-column:2}.exercise-item .answer{margin-left:1rem}.site-header .shell,.site-footer .shell{flex-direction:column;align-items:flex-start;padding:.8rem 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.choice span,.timeline-item,.button,.story-beat,a.pattern-card,.exercise-action{transition:none;animation:none}.lab-node[data-status=processing] .pip{box-shadow:none}}
