:root{--cream:#fff8e7;--ink:#152b2b;--blue:#1e66f5;--coral:#ff6b55;--mint:#b8f2dc;--line:#152b2b;--display:Impact,"Arial Black",sans-serif;--body:"Segoe UI",Arial,sans-serif;--mono:"Courier New",monospace}*{box-sizing:border-box}html,body{background:var(--cream);min-height:100%;color:var(--ink);font-family:var(--body);margin:0;overflow-x:clip}button,textarea{font:inherit}main{background:repeating-linear-gradient(90deg,#0000 0 79px,#152b2b14 80px);grid-template-rows:auto 1fr auto auto;min-height:100dvh;display:grid}header{border-bottom:3px solid var(--ink);grid-template-columns:260px minmax(0,1fr) 220px;align-items:center;gap:24px;padding:20px 28px;display:grid}h1{font:900 34px/.78 var(--display);margin:0}h1 span{color:var(--blue)}header p{max-width:600px;font-size:15px}header button,.passage button{border:3px solid var(--ink);background:var(--coral);font:900 11px var(--mono);cursor:pointer;white-space:nowrap;padding:14px}.journey{grid-template-columns:310px minmax(0,1fr) 190px;min-height:580px;display:grid}.need{border-right:3px solid var(--ink);padding:40px 24px}.need small,.need span,.thread em,.passage label,footer{font:700 10px var(--mono)}.need h2{font:800 clamp(22px,3vw,42px)/1.05 var(--display);overflow-wrap:anywhere}.need span{border-bottom:1px solid;padding:12px 0;display:block}.thread{align-items:center;padding:60px 35px;display:flex;overflow:auto}.thread article{min-width:190px;padding-top:85px;position:relative}.thread article:before{content:"";background:var(--ink);height:8px;position:absolute;top:42px;left:0;right:0}.thread article.lit:before{background:var(--blue);animation:1s weave}.thread i{border:4px solid var(--ink);background:var(--cream);width:58px;height:58px;font:900 18px var(--mono);border-radius:50%;place-items:center;font-style:normal;display:grid;position:absolute;top:17px;left:0}.thread .lit i{background:var(--mint)}.thread b,.thread em{font-style:normal;display:block}.thread b{font:900 14px var(--display);margin-bottom:7px}.thread em{color:var(--blue)}.journey aside{border-left:3px solid var(--ink);text-align:center;background:var(--mint);place-content:center;display:grid}.journey aside strong{font:900 56px var(--display)}.journey aside span,.journey aside p{font:700 11px var(--mono)}.passage{border-top:3px solid var(--ink);grid-template-columns:260px minmax(0,1fr) 240px;display:grid}.passage label{padding:20px}.passage textarea{resize:vertical;background:0 0;border:0;border-left:1px solid;border-right:1px solid;min-height:100px;padding:18px}.passage button:disabled{background:#aaa}.ticket{background:var(--blue);color:#fff;max-width:430px;font:700 11px/1.4 var(--mono);overflow-wrap:anywhere;padding:16px;animation:.4s ticket;position:fixed;bottom:50px;right:20px}footer{background:var(--ink);color:var(--cream);padding:12px 24px}@keyframes weave{0%{transform-origin:0;transform:scaleX(0)}}@keyframes ticket{0%{opacity:0;transform:translate(40px)}}@media (max-width:800px){header{grid-template-columns:1fr auto}header p{display:none}.journey{grid-template-columns:1fr}.need{border-bottom:3px solid;border-right:0}.thread{min-height:310px}.journey aside{border-top:3px solid;border-left:0;padding:25px}.passage{grid-template-columns:1fr}.passage>*{border:0!important;border-bottom:1px solid!important}}@media (max-width:414px){header{padding:14px 12px}h1{font-size:27px}header button{padding:10px 7px;font-size:9px}.thread{padding:40px 14px}.thread article{min-width:150px}}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important}}
.headActions{gap:7px;display:flex}.headActions .quiet{background:var(--cream)}.chart{border-bottom:3px solid var(--ink);background:var(--mint);grid-template-columns:150px 1.2fr 1fr 1fr 190px;display:grid}.chart label{font:700 9px var(--mono);border-right:1px solid;padding:12px}.chart input,.chart textarea{border:0;border-bottom:2px solid var(--ink);resize:vertical;background:#ffffffb3;width:100%;min-height:48px;margin-top:7px;padding:8px;display:block}.chart button{border:3px solid var(--ink);background:var(--coral);font:900 11px var(--mono)}.chart button:disabled{filter:grayscale()}@media (max-width:800px){.headActions{flex-direction:column}.chart{grid-template-columns:1fr 1fr}.chart button{grid-column:1/-1}}
