@font-face{font-family:STIX;src:url('assets/fonts/STIX.ttf')}@font-face{font-family:Plex;src:url('assets/fonts/PlexSans.ttf')}@font-face{font-family:Mono;src:url('assets/fonts/PlexMono.ttf')}
:root{--bg:#152e40;--panel:#1c384b;--text:#e6edf0;--line:#77919e;--accent:#c98a69;--muted:#becdd4;--rule:#425f70}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Plex,Arial,sans-serif}button,input,select{font:inherit}button,a,input{touch-action:manipulation}button,.button{border:1px solid var(--line);padding:10px 16px;border-radius:3px;background:transparent;color:var(--text);cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--panel);border-color:var(--text)}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--accent)}button.primary,a.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}.primary:hover{filter:brightness(1.1)}.plain{border:0;padding:4px 0;border-radius:0}.plain:hover{background:none;color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:STIX,Georgia,serif;font-weight:400}h1{font-size:clamp(43px,4.3vw,62px);line-height:1.04;letter-spacing:-1.5px}h2{font-size:29px;line-height:1.2}h3{font-size:24px;line-height:1.2}header,main,footer{max-width:1440px;margin:auto}header{padding:25px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:29px STIX,Georgia,serif}.brand-note{font:9px/1.7 Mono,monospace;max-width:85px;padding-left:14px;margin-left:10px;border-left:1px solid var(--line);letter-spacing:.5px}nav{display:flex;align-items:center;gap:30px;font-size:13px}nav a{text-decoration:none}main{padding:0 48px}.eyebrow{font:11px/1.6 Mono,monospace;letter-spacing:1.1px}.dot{display:inline-block;background:var(--accent);height:6px;width:6px;border-radius:50%;vertical-align:middle;margin-right:7px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:55px 0 44px;gap:60px}.hero h1{margin-bottom:23px}.hero-copy{font-size:16px;line-height:1.65;color:var(--muted);margin-bottom:0}.hero-note{border-left:1px solid var(--rule);padding:20px 0 15px 65px}.hero-note>svg{width:100%;max-width:390px;height:145px;display:block;margin:25px 0}.hero-note p{font:23px/1.3 STIX,serif}.hero-note>.eyebrow:last-child{color:var(--muted);font-size:10px}.workspace{border-top:1px solid var(--line)}.workspace-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 0}.section-label{display:flex;align-items:center;gap:19px}.section-label h2{margin:0;font-size:26px}.number{font:12px Mono,monospace;color:var(--muted);border:1px solid var(--rule);padding:5px 8px}.mode{font:11px Mono,monospace;color:var(--muted)}.mode .dot{margin:0 0 0 8px}.bench{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);border:1px solid var(--line);border-radius:3px;overflow:hidden}.editor{padding:26px}.plan-controls{display:grid;grid-template-columns:1fr 155px;gap:22px;margin-bottom:30px}label{font-size:12px;display:block;color:var(--muted)}input,select{background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:2px;padding:10px;width:100%;min-width:0;margin-top:7px}input:focus{outline:2px solid var(--accent);outline-offset:1px}input::placeholder{color:#a9bcc7}.budget-label input{font-family:Mono,monospace}.list-label{display:flex;justify-content:space-between;font:10px Mono,monospace;letter-spacing:1px;color:var(--muted);padding:0 0 12px;border-bottom:1px solid var(--rule)}.contributor{display:grid;grid-template-columns:30px 1fr 66px;gap:12px;padding:19px 0;border-bottom:1px solid var(--rule);align-items:start}.row-number{font:11px Mono,monospace;color:var(--muted);padding-top:9px}.person input{margin:0 0 4px;padding:5px 7px;font-size:13px}.person .handle{font-weight:600}.person .role{color:var(--muted)}.evidence{font-size:11px!important;font-family:Mono,monospace}.weight input{margin:0;font:14px Mono,monospace;padding:5px 6px}.row-tools{display:flex;justify-content:flex-end;gap:10px;margin-top:7px}.row-tools button{padding:0 4px;font-size:12px}.weight label{font-size:10px;margin-top:5px;text-align:center}.add-form{margin-top:28px}.add-form h3{font-size:22px;margin-bottom:15px}.add-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}.wide{grid-column:1/-1}.form-bottom{margin-top:16px;display:flex;gap:12px;align-items:center;justify-content:space-between}.form-bottom span{font-size:11px;color:var(--muted);max-width:180px}.form-bottom button{font-size:12px;white-space:nowrap}.message{font-size:12px;margin:12px 0 0;min-height:18px;color:var(--text)}.editor-footer{display:flex;flex-wrap:wrap;gap:18px;border-top:1px solid var(--rule);padding-top:16px;font-size:11px}.editor-footer span{width:100%;font:10px Mono,monospace;color:var(--muted)}.receipt{background:var(--panel);border-left:1px solid var(--line);padding:28px;display:flex;flex-direction:column}.receipt-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:30px}.receipt-top .eyebrow{font-size:10px}.receipt-index{font:10px Mono,monospace;color:var(--muted)}.receipt h2{font-size:31px;margin-bottom:10px}.receipt>p{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.total{padding:22px 0 26px;border-top:1px solid var(--rule);margin-top:10px}.total span:first-child{font:clamp(25px,2.5vw,37px) Mono,monospace;display:block;letter-spacing:-1px;overflow-wrap:anywhere}.total span:last-child{font-size:10px;color:var(--muted)}.allocation{margin-bottom:23px}.allocation-line{display:flex;justify-content:space-between;gap:10px;font-size:12px}.allocation-line strong{font:12px Mono,monospace}.allocation-track{height:5px;background:var(--bg);margin-top:9px}.allocation-track span{display:block;background:var(--accent);height:5px;transition:width .2s}.allocation:nth-child(2) .allocation-track span{background:var(--text)}.allocation:nth-child(3) .allocation-track span{background:var(--line)}.allocation-sub{display:flex;justify-content:space-between;gap:10px;font:10px Mono,monospace;margin-top:7px;color:var(--muted)}.receipt-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--rule);padding:14px 0;margin:5px 0 18px}.receipt-summary>div{display:flex;justify-content:space-between;font-size:12px;padding:5px 0}.receipt-summary strong{font:12px Mono,monospace}.receipt-footnote{font-size:11px!important;line-height:1.65}.exports{display:grid;gap:10px;margin-top:auto;padding-top:20px}.exports button{font-size:13px}.publish{display:flex;justify-content:space-between;margin-top:8px}.work-caption{display:flex;justify-content:space-between;gap:15px;font:10px Mono,monospace;color:var(--muted);padding:16px 0}.method{padding:64px 0;border-bottom:1px solid var(--rule)}.method-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:34px 0 30px}.method article{padding:0 30px;border-right:1px solid var(--rule)}.method article:first-child{padding-left:0}.method article:last-child{border:0;padding-right:0}.method article h3{margin:17px 0 13px}.method article p{color:var(--muted);font-size:14px;margin-bottom:0}details{border-top:1px solid var(--rule);padding:17px 0;font-size:13px}summary{cursor:pointer}details p{max-width:850px;color:var(--muted);margin:16px 0 0}.resources{padding:60px 0;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.resources h2{font-size:36px}.resources p{font-size:14px;color:var(--muted)}.resources .button{font-size:13px;margin-top:8px}.video-block video{display:block;width:100%;aspect-ratio:16/9;background:var(--panel);border:1px solid var(--rule)}.video-block>a{display:inline-block;font-size:12px;margin-top:12px}footer{border-top:1px solid var(--rule);padding:25px 48px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}footer .brand{font-size:23px}footer>span{font-size:11px;color:var(--muted)}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:28px;max-width:480px;width:calc(100% - 32px);border-radius:3px}dialog::backdrop{background:#0c202be6}.dialog-top{display:flex;justify-content:space-between;align-items:center}.dialog-top button{padding:0 10px;font-size:24px}dialog h2{margin:30px 0 15px;font-size:50px}dialog p{font-size:14px;color:var(--muted)}dialog>.primary{margin-top:15px}
.intro{position:fixed;inset:0;z-index:10;background:var(--bg);display:flex;flex-direction:column;justify-content:space-between;padding:32px 48px;animation:failsafe .1s 12s forwards}.intro[hidden]{display:none}.intro-top,.intro-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px}.intro-top button{font-size:12px}.intro-scene{max-width:900px;width:100%;margin:auto;text-align:center}.intro-scene svg{width:100%;height:min(38vh,320px);fill:none;stroke:var(--text);stroke-width:1.8}.spool{opacity:.35;animation:appear 2s .2s forwards}.sheets{opacity:0;animation:appear 1s 1.7s forwards}.threads{stroke:var(--accent);stroke-dasharray:450;stroke-dashoffset:450;animation:draw 2s 2.5s forwards}.unwind{stroke:var(--accent);stroke-dasharray:600;stroke-dashoffset:600;animation:draw 2s 5s forwards}.intro-caption{opacity:0;animation:appear 1.2s 7.3s forwards}.intro-caption h1{font-size:64px;margin:10px 0}.intro-caption>p:last-child{font:23px STIX,serif}.intro-bottom{font:10px Mono,monospace;color:var(--muted)}.intro-progress{height:2px;background:var(--accent);flex:1;transform:scaleX(0);transform-origin:left;animation:progress 10s linear forwards}@keyframes draw{to{stroke-dashoffset:0}}@keyframes appear{to{opacity:1}}@keyframes progress{to{transform:scaleX(1)}}@keyframes failsafe{to{visibility:hidden;pointer-events:none}}body:has(.intro:not([hidden])){overflow:hidden;animation:unlock .1s 12s forwards}@keyframes unlock{to{overflow:auto}}
@media(min-width:1450px){h1{font-size:62px}}@media(max-width:1000px){header,footer{padding-left:25px;padding-right:25px}main{padding:0 25px}.brand-note{display:none}nav{gap:20px}.hero{gap:20px}.hero-note{padding-left:35px}.editor{padding:20px}.receipt{padding:22px}.plan-controls{gap:12px;grid-template-columns:1fr 130px}.contributor{grid-template-columns:22px 1fr 58px;gap:7px}.form-bottom{align-items:flex-start;flex-direction:column}.bench{grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr)}}@media(max-width:720px){header{padding:18px 20px;flex-wrap:wrap;gap:18px}.brand{font-size:26px}nav{width:100%;justify-content:space-between;gap:12px;font-size:12px}nav button{font-size:12px}main{padding:0 20px}.hero{padding:35px 0;gap:25px;grid-template-columns:1fr}.hero h1{font-size:51px}.hero-note{display:none}.hero-copy{font-size:15px}.workspace-heading{padding:20px 0;gap:10px}.section-label{gap:10px}.section-label h2{font-size:23px}.mode{font-size:9px}.bench{grid-template-columns:1fr}.receipt{border-left:0;border-top:1px solid var(--line)}.plan-controls{grid-template-columns:1fr 115px}.editor{padding:18px}.add-grid{grid-template-columns:1fr}.wide{grid-column:auto}.form-bottom{flex-direction:row;align-items:center}.form-bottom span{max-width:140px}.work-caption{flex-direction:column;font-size:9px}.method{padding:40px 0 20px}.method-grid{grid-template-columns:1fr;gap:25px}.method article{padding:0 0 24px;border-right:0;border-bottom:1px solid var(--rule)}.method article:last-child{padding:0}.resources{grid-template-columns:1fr;gap:30px;padding:40px 0}.resources h2{font-size:33px}footer{flex-wrap:wrap;padding:25px 20px}footer>span:last-child{width:100%}.intro{padding:20px}.intro-top>.eyebrow{font-size:9px;max-width:150px}.intro-bottom{font-size:8px}.intro-bottom>span:last-child{display:none}.intro-caption h1{font-size:49px}.intro-scene svg{height:220px}.intro-caption>p:last-child{font-size:20px}}@media(max-height:600px){.intro{padding:15px 25px}.intro-scene svg{height:34vh}.intro-caption h1{font-size:38px}.intro-caption p{margin-bottom:6px}.hero{padding-top:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.intro{display:none!important}body:has(.intro:not([hidden])){overflow:auto}}
