:root{--bg: #EDE7DA;--card: #FDFAF3;--ink: #201D18;--ink-soft: #55503F;--ink-faint: #8A8070;--line: #EDE4D0;--card-border: #E4DAC5;--head-line: #EFE6D2;--chip: #F3ECDC;--chip-hover: #EDE3CC;--red: #BA0C2F;--red-dark: #A50A29;--blue: #00205B;--blue-dark: #001A4A;--white-yarn: #F6F0E1;--gold: #A89A7E;--go: #2F6B4F;--go-dark: #245540;--go-soft: #E8F0EA;--action: #3A342C;--action-soft: #EFE8DA}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);overflow:hidden}html[data-app=platform],html[data-app=platform] body{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}html[data-app=platform] #root{height:auto;min-height:100%}body{font-family:Karla,sans-serif;color:var(--ink);background:radial-gradient(1200px 600px at 50% -200px,#f4eedf,#f4eedf00 70%),var(--bg)}#root{height:100%}a{color:var(--red)}::selection{background:var(--red);color:var(--card)}.app{height:100%;display:flex;flex-direction:column;min-height:0}.layout{flex:1;min-height:0;display:grid;grid-template-columns:372px minmax(0,1fr);gap:18px;padding:0 24px 20px;align-items:stretch}.card{background:var(--card);border-radius:12px;border:1px solid var(--card-border);box-shadow:0 24px 48px -36px #3c321e80;display:flex;flex-direction:column;min-height:0}.card-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;border-bottom:1px solid var(--head-line);min-height:58px}.card-head .label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--blue)}.card-head .sub{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--gold);white-space:nowrap}.topbar{flex:none;padding:14px 24px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:13px;min-width:0}.dots{display:flex;gap:5px}.dots span{width:11px;height:11px;border-radius:50%;display:block}.kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);font-weight:700;white-space:nowrap}.kicker-short{display:none}.lang-switch.flags-only .lang-btn{padding:5px 7px;gap:0}.topbar-tools{display:flex;align-items:center;gap:8px;min-width:0;justify-content:flex-end}.icon-btn{flex:none;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--card-border);background:var(--card);color:var(--ink-soft);cursor:pointer;position:relative;transition:background .15s,color .15s,border-color .15s,transform .12s}.icon-btn:hover{background:var(--chip);color:var(--ink)}.icon-btn:active{transform:scale(.96)}.icon-btn.settings-btn.open{background:var(--action);color:var(--card);border-color:var(--action)}.icon-btn.settings-btn.has-active:not(.open){border-color:#c9bfa8}.settings-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--go);box-shadow:0 0 0 2px var(--card)}.icon-btn.settings-btn.open .settings-dot{background:#b8d4c2;box-shadow:0 0 0 2px var(--action)}.tools-tray{display:flex;align-items:center;gap:6px;max-width:0;opacity:0;overflow:hidden;pointer-events:none;transform:translate(10px);transition:max-width .32s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .32s cubic-bezier(.22,1,.36,1)}.tools-tray.open{max-width:min(820px,calc(100vw - 180px));opacity:1;overflow-x:auto;overflow-y:hidden;pointer-events:auto;transform:translate(0);padding:3px;scrollbar-width:none}.tools-tray.open::-webkit-scrollbar{display:none}.tool-btn{flex:none;font-family:Karla,sans-serif;font-weight:800;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;background:var(--card);color:var(--ink-soft);border:1px solid var(--card-border);border-radius:8px;padding:8px 12px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}.tool-btn:hover{background:var(--chip);color:var(--ink)}.tool-btn.active{background:var(--action);color:var(--card);border-color:var(--action)}.panel-body{flex:1;min-height:0;padding:18px 22px 22px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:8px}.panel-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}.step-eyebrow{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.step-num{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--red)}.step-num.start{color:var(--go)}.step-num.finale{color:var(--go);letter-spacing:.08em;text-transform:none;font-size:11.5px;max-width:100%;line-height:1.35}.step-rounds{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gold);text-align:right}.step-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:28px;line-height:1.08;margin:0}.step-body{font-size:13.5px;line-height:1.62;color:var(--ink-soft);margin:0;text-wrap:pretty}.step-body strong{color:var(--ink)}.step-bullets{margin:0;padding-left:18px;font-size:13.5px;line-height:1.6;color:var(--ink-soft);display:flex;flex-direction:column;gap:6px}.step-meta{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px}.chip{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink-soft);background:var(--chip);border-radius:4px;padding:5px 10px;display:inline-flex;align-items:center;gap:7px}.chip .swatch{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.12)}.steplist{border-top:1px solid var(--line);padding-top:10px;margin-top:2px}.steplist summary{cursor:pointer;list-style:none;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--ink-faint);padding:4px 9px;border-radius:6px}.steplist summary::-webkit-details-marker{display:none}.steplist summary:before{content:"▸ ";color:var(--red)}.steplist[open] summary:before{content:"▾ "}.steplist summary:hover{background:var(--chip);color:var(--ink-soft)}.steplist[open]{display:flex;flex-direction:column;gap:2px}.steplist button{display:flex;align-items:center;gap:10px;text-align:left;font-family:Karla,sans-serif;font-size:12.5px;font-weight:700;color:var(--ink-faint);background:none;border:none;border-radius:6px;padding:6px 9px;cursor:pointer;line-height:1.3}.steplist button:hover{background:var(--chip)}.steplist button .idx{width:20px;height:20px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;background:var(--chip-hover);color:var(--ink-faint)}.steplist button.done{color:var(--ink-soft)}.steplist button.done .idx{background:var(--go);color:#f7fbf8}.steplist button.active{color:var(--ink);background:var(--go-soft)}.steplist button.active .idx{background:var(--go);color:#f7fbf8}.panel{min-height:0}.panel-foot{flex:none;display:flex;gap:8px;align-items:stretch;border-top:1px solid var(--head-line);padding:12px 16px 14px}.panel-foot .btn.prev{flex:1 1 0;min-width:0;padding:12px 0}.panel-foot .btn.jump-open{flex:0 0 auto;padding:12px 14px;background:var(--action-soft);color:var(--action);border:1.5px solid #D8CFBC;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}.panel-foot .btn.jump-open:hover{background:var(--chip-hover)}.panel-foot .btn.next{flex:1.4 1 0;min-width:0;padding:12px 0}.stage{position:relative}.stage-head{padding:12px 16px}.schoolbtn{font-family:Karla,sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--blue);background:none;border:1.5px solid #C9D4E8;border-radius:99px;padding:7px 15px;cursor:pointer;white-space:nowrap;transition:background .12s}.schoolbtn:hover,.schoolbtn.open{background:#edf1f8}.viewtoggle{display:flex;gap:6px;background:var(--chip);border-radius:7px;padding:4px}.viewtoggle button{font-family:Karla,sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.04em;border:none;border-radius:5px;padding:8px 16px;cursor:pointer;background:transparent;color:var(--ink-faint);transition:background .15s,color .15s}.viewtoggle button.on{background:var(--card);color:var(--ink);box-shadow:0 2px 6px #3c321e26}.viewtoggle button:disabled{opacity:.4;cursor:default}.stage-tools{display:flex;gap:8px;align-items:center}.scene-wrap{position:relative;flex:1;min-height:0}#scene-root,.scene-root{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:0;overflow:hidden}#scene-root canvas,.scene-root canvas{display:block;cursor:grab}#scene-root canvas:active,.scene-root canvas:active{cursor:grabbing}.hint{position:absolute;bottom:12px;left:50%;transform:translate(-50%);font-size:10.5px;color:var(--gold);letter-spacing:.14em;font-weight:700;text-transform:uppercase;pointer-events:none;white-space:nowrap;z-index:2;max-width:calc(100% - 220px);overflow:hidden;text-overflow:ellipsis}.flip-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);max-width:min(560px,calc(100% - 24px));background:#fdfaf3f0;border:1px solid #D8CFBC;border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:700;color:#55503f;text-align:center;pointer-events:none;z-index:2;box-shadow:0 2px 10px #201d1814}.label3d{font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.08em;white-space:nowrap;pointer-events:none;background:#201d18;color:#fdfaf3;border-radius:99px;padding:5px 12px;box-shadow:0 8px 18px -10px #201d18b3;position:relative;display:inline-flex;align-items:center;gap:7px}.label3d .l3d-dot{width:10px;height:10px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.35)}.label3d.lead-down:after,.label3d.lead-up:after{content:"";position:absolute;left:50%;width:1.5px;height:16px;background:#201d18;opacity:.8}.label3d.lead-down:after{top:100%}.label3d.lead-up:after{bottom:100%}.label3d.big{font-size:12.5px;padding:7px 14px;letter-spacing:.12em}.label3d.pulse{animation:label3d-flash 1.1s ease-in-out infinite}@keyframes label3d-flash{0%,to{box-shadow:0 0 #ba0c2f80}50%{box-shadow:0 0 0 8px #ba0c2f00}}.num-chip{font-family:Karla,sans-serif;font-weight:800;font-size:11px;pointer-events:none;white-space:nowrap;background:#201d18;color:#fdfaf3;border-radius:99px;min-width:22px;height:22px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 10px -4px #201d1899}.num-chip.target{font-size:12.5px;min-width:27px;height:27px;border:2px solid #201D18}.clip-chip{font-family:Karla,sans-serif;font-weight:800;font-size:10px;letter-spacing:.06em;pointer-events:none;white-space:nowrap;background:#201d18;color:#fdfaf3;border-radius:99px;padding:3px 9px;display:inline-flex;align-items:center;gap:5px}.clip-chip .l3d-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.stage-foot{flex:none;position:relative;z-index:8;overflow:visible;border-top:1px solid var(--head-line);padding:8px 16px 10px;display:flex;flex-direction:column;gap:7px}.progress-row{display:flex;align-items:center;gap:10px;min-width:0}.progress{display:flex;gap:4px;flex:1;min-width:0}.progress button{flex:1 1 6px;min-width:4px;height:5px;border-radius:99px;border:none;cursor:pointer;background:#e7ddc6;padding:0;transition:background .2s}.progress button.done{background:var(--blue)}.progress button.active{background:var(--red)}.foot-row{display:flex;align-items:center;justify-content:center;gap:12px}.roundcount{min-width:0;text-align:center;font-family:"Instrument Serif",serif;font-size:15px;color:var(--ink-soft);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roundcount strong{font-style:normal;color:var(--red)}.btn{font-family:Karla,sans-serif;font-weight:800;font-size:14px;letter-spacing:.06em;border-radius:6px;padding:11px 20px;cursor:pointer;border:none;transition:transform .12s ease,opacity .12s,background .12s}.btn:active{transform:scale(.97)}.btn.prev{background:var(--chip);color:var(--ink-soft)}.btn.prev:hover{background:var(--chip-hover)}.btn.next{background:var(--go);color:#f7fbf8;min-width:150px;box-shadow:0 12px 22px -12px #2f6b4f8c}.btn.next:hover{background:var(--go-dark)}.btn:disabled{opacity:.35;cursor:default}.workhud{background:var(--chip);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:8px;height:auto;min-height:0}.stage-foot.dock-mode{padding-bottom:6px}.workhud-top{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:stretch}.workhud.msgs-only .workhud-top{grid-template-columns:minmax(0,1fr)}.workhud-count{text-align:center;font-family:"Instrument Serif",serif;line-height:1;display:flex;flex-direction:column;justify-content:center}.workhud-count strong{font-size:34px;color:var(--ink);font-weight:400;display:block;background:var(--card);border-radius:8px;padding:6px 0 2px;border:1px solid var(--card-border)}.workhud-count span{font-size:12px;color:var(--ink-faint);margin-top:4px;display:block}.workhud-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch;background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:8px 10px;min-height:64px}.workhud-panel.has-marker{grid-template-columns:minmax(0,1.2fr) minmax(160px,.9fr)}.workhud-msgs{min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center;text-align:left}.workhud-marker-aside{display:flex;align-items:flex-start;gap:8px;background:var(--go-soft);border:1px solid #8FBE9A;border-radius:7px;padding:7px 9px;align-self:stretch}.workhud-marker-text{font-size:12px;line-height:1.3;color:#14622c;display:flex;flex-direction:column;gap:2px}.workhud-marker-text strong{letter-spacing:.02em}.workhud-marker-sub{font-size:11px;opacity:.8;font-weight:700}.hud-marker-icon{flex-shrink:0;margin-top:1px}.workhud-controls{display:flex;justify-content:center;align-items:stretch;gap:8px;min-height:48px}.workhud-pm{font-family:Karla,sans-serif;font-weight:800;border:none;border-radius:8px;cursor:pointer;transition:background .12s,transform .1s,filter .12s;height:48px}.workhud-pm:active{transform:scale(.97)}.workhud-pm.minus{width:72px;background:var(--card);color:var(--ink-soft);border:1.5px solid #D8CFBC;font-size:17px}.workhud-pm.minus:hover{background:#fff}.workhud-pm.plus{min-width:148px;padding:0 20px;background:var(--go);color:#f7fbf8;font-size:15px;box-shadow:0 8px 16px -12px #2f6b4f8c}.workhud-pm.plus:hover{background:var(--go-dark)}.workhud-pm.plus.unit{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;height:auto;min-height:48px;padding:6px 16px;gap:2px;font-size:14px;letter-spacing:.02em;text-transform:none}.workhud-pm.plus.unit.inc{background:var(--red)}.workhud-pm.plus.unit.yarn-white{background:#f6f0e1;color:var(--ink);border:1.5px solid #D8CFBC;box-shadow:none}.workhud-pm.plus.unit.yarn-red{background:var(--red);color:#fdfaf3}.workhud-pm.plus.unit.yarn-blue{background:var(--blue);color:#fdfaf3}.workhud-pm.plus.unit.yarn-black{background:#23211e;color:#fdfaf3}.workhud-pm.plus.unit.yarn-lightblue{background:#6e86c0;color:#fdfaf3}.workhud-unit-meta{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.75}.workhud-fine-group{display:inline-flex;align-items:stretch;gap:0;border:1.5px solid #D8CFBC;border-radius:12px;overflow:hidden;background:var(--card);box-shadow:0 6px 14px -12px #3c321e80}.workhud-pm.fine{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:64px;padding:0 10px;border:none;border-radius:0;font-size:11px;letter-spacing:.04em}.workhud-pm.fine+.workhud-pm.fine{box-shadow:inset 1.5px 0 #e4dcca}.fine-sign{font-size:20px;line-height:1;font-weight:800}.fine-label{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;opacity:.72}.workhud-pm.fine.minus{background:linear-gradient(180deg,#fffdf7,#ebe1cd);color:var(--ink-soft)}.workhud-pm.fine.minus:hover{background:linear-gradient(180deg,#fffffc,#e2d6bb)}.workhud-pm.fine.plus{background:linear-gradient(0deg,#f6faf7,#c9e3d2);color:var(--go-dark)}.workhud-pm.fine.plus:hover{background:linear-gradient(0deg,#f1f8f3,#b6d8c3)}.workhud-pm.fine:active{transform:none;filter:brightness(.94)}.workhud-pm.fine:disabled{opacity:.42;cursor:default}.workhud-pm.fine:disabled:hover{filter:none}.workhud-pm.jump{min-width:0;padding:0 12px;font-size:11.5px;letter-spacing:.03em;background:var(--action-soft);color:var(--action);border:1.5px solid #D8CFBC;text-transform:uppercase}.workhud-pm.jump:hover{background:#e8dfcc}.workhud-now{font-size:13.5px;line-height:1.3;color:var(--ink-soft)}.workhud-now strong{color:var(--ink)}.workhud-line{display:block}.workhud-now.change,.workhud-now.inc,.workhud-now.pair{border-radius:7px;padding:5px 8px}.workhud-now.change{background:var(--go-soft);border:1.5px solid var(--go)}.workhud-now.inc{background:#edf0f7;border:1.5px solid var(--blue)}.workhud-now.pair{background:#f5f1e6;border:1.5px solid #C4B89A}.workhud-alert{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:10.5px;letter-spacing:.08em;font-weight:800;color:var(--go);text-transform:uppercase;margin-bottom:2px}.workhud-alert.inc{color:var(--blue)}.workhud-alert.pair{color:#6b5e45}.workhud-frac{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:22px;padding:0 6px;border-radius:5px;font-family:"Instrument Serif",serif;font-size:15px;font-weight:400;letter-spacing:.02em;line-height:1;color:var(--card);background:var(--blue)}.workhud-alert.pair .workhud-frac{background:#6b5e45}.workhud-rhythm{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--ink-faint);flex-wrap:wrap}.rhythm-label{flex:none}.rhythm-cells{display:flex;gap:3px;flex-wrap:wrap}.rhythm-cell{min-width:22px;height:22px;padding:0 5px;border-radius:4px;background:#f7f0df;border:1.5px solid var(--card-border);display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:800;color:var(--ink-soft);white-space:nowrap}.rhythm-cell.two{background:#edf0f7;border-color:#b9c4dc;color:var(--blue)}.rhythm-cell.on{border-color:var(--red);background:#fbecef;color:var(--red)}.rhythm-cell.frac{min-width:32px;font-family:"Instrument Serif",serif;font-size:13px;font-weight:400}.rhythm-repeat{flex:none}.hud-dot{width:11px;height:11px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.18);vertical-align:-1px;margin:0 2px}.hud-dot.big{width:13px;height:13px}.workhud-verify{font-size:11.5px;line-height:1.3;color:var(--ink-soft)}.workhud-verify .hud-dot{width:9px;height:9px;vertical-align:-1px}.workhud-samev strong{color:var(--blue)}.workhud-cross{margin-top:4px;padding:4px 7px;border-radius:6px;background:#f5f1e6;border:1.5px dashed #C4B89A;font-size:11.5px;line-height:1.35;font-weight:700;color:#6b5e45}.workhud-cross .hud-dot{width:10px;height:10px}.checklist{display:flex;flex-direction:column;gap:3px}.checklist label{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);background:transparent;border-radius:4px;padding:4px 0;cursor:pointer}.checklist label.checked{color:var(--ink-faint);text-decoration:line-through}.checklist input{accent-color:var(--red);width:15px;height:15px}.confirm-box{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;font-weight:700;color:var(--ink);background:#fbf3e4;border:1.5px solid var(--gold);border-radius:8px;padding:11px 12px;cursor:pointer;line-height:1.4}.confirm-box input{accent-color:var(--red);width:16px;height:16px;margin-top:1px;flex:none}.confirm-box.ok{border-color:var(--blue);background:#edf0f7}.video-embed{border-radius:8px;overflow:hidden;background:#000;aspect-ratio:16/9;flex:none}.video-embed iframe{width:100%;height:100%;display:block;border:0}.stepper{background:var(--chip);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:9px}.stepper-head{display:flex;justify-content:space-between;align-items:baseline}.stepper-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--blue)}.stepper-count{font-size:13px;font-weight:800;color:var(--ink)}.stepper input[type=range]{width:100%;accent-color:var(--red)}.stepper-btns{display:flex;gap:6px}.stepper-btns button{flex:1;font-family:Karla,sans-serif;font-weight:800;font-size:12px;border:none;border-radius:5px;padding:8px 4px;cursor:pointer;background:var(--card);color:var(--ink-soft);transition:background .12s}.stepper-btns button:hover{background:#fff}.stepper-btns button.primary{background:var(--blue);color:var(--card)}.stepper-next{font-size:12.5px;line-height:1.5;color:var(--ink-soft);margin:0;border-left:3px solid var(--red);padding-left:9px}.stepper-next strong{color:var(--red)}.runs{display:flex;flex-wrap:wrap;gap:3px}.run-chip{font-family:Karla,sans-serif;font-size:11.5px;font-weight:800;border-radius:4px;padding:3px 7px;border:1px solid rgba(0,0,0,.1);cursor:pointer;transition:transform .1s,filter .12s}.run-chip:hover{filter:brightness(1.08);transform:translateY(-1px)}.run-chip:active{transform:scale(.95)}.run-chip.current{outline:2.5px solid #D8342C;outline-offset:1px}.run-chip.done{opacity:.45}.run-range{display:block;font-size:9.5px;font-weight:700;opacity:.75;letter-spacing:.03em;margin-top:1px}.run-chip.linked{border-style:dashed;border-color:#00000073}.vmap-wrap{margin-top:2px}.vmap-head{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}.vmap-head-sub{letter-spacing:.04em;text-transform:none;font-weight:700;color:var(--ink-faint)}.vmap{display:flex;flex-wrap:wrap;gap:3px 4px;--vcell: 16px}.vmap.wide{--vcell: 18px;gap:3px 3px}.vmap.flat{gap:3px 3px}.vmap-hole{display:flex;flex-direction:column;align-items:stretch}.vmap-cells{display:flex;gap:1px}.vmap-cell{width:var(--vcell);height:19px;padding:0;border:none;border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:Karla,sans-serif;font-size:9px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em;box-shadow:inset 0 0 0 1px #0000001f;transition:transform .1s,filter .12s}.vmap-cell:hover{filter:brightness(1.1);transform:translateY(-1px)}.vmap-cell.done{opacity:.4}.vmap-cell.next{box-shadow:inset 0 0 0 2px #d8342c,0 0 0 2px #d8342c38}.vmap-v{display:block;width:100%;height:7px;color:#b0451f}.vmap-hole.here .vmap-v{color:#d8342c}.vmap-tick{display:block;height:7px;position:relative}.vmap-tick:after{content:"";position:absolute;left:22%;right:22%;top:2.5px;border-top:1.5px solid #CFC6B4}.vmap-legend{margin:6px 0 0;font-size:10.5px;font-weight:700;line-height:1.45;color:var(--ink-soft);display:flex;align-items:center;gap:6px}.vmap-legend-key{flex:none;width:26px;height:9px;color:#b0451f;display:inline-block}.vmap-legend-key .vmap-v{height:9px}.stepper-reset{background:none;border:none;cursor:pointer;padding:2px 0;font-family:Karla,sans-serif;font-size:12px;font-weight:800;color:var(--blue);text-align:left;letter-spacing:.02em}.stepper-reset:hover{text-decoration:underline}.stepper-rhythm{margin:0;font-size:12px;font-weight:800;color:var(--blue);background:#edf0f7;border-radius:6px;padding:6px 9px}.brim-picker{display:flex;gap:6px;align-items:center}.brim-picker span{font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-right:4px}.brim-picker button{width:38px;height:32px;border-radius:6px;border:1.5px solid var(--line);background:var(--card);font-family:Karla,sans-serif;font-weight:800;font-size:14px;color:var(--ink-soft);cursor:pointer}.brim-picker button.on{background:var(--blue);border-color:var(--blue);color:var(--card)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:28;background:#201d1847}.school-backdrop{background:#201d182e}.school{position:fixed;top:72px;right:20px;bottom:auto;width:min(380px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 96px));background:var(--card);border:1px solid var(--card-border);border-radius:14px;box-shadow:0 28px 64px -28px #3c321e8c;z-index:30;display:flex;flex-direction:column;min-height:0;animation:school-in .18s ease}@keyframes school-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}.jump-drawer{position:fixed;top:0;left:0;bottom:0;width:min(380px,94vw);background:var(--card);border-right:1px solid var(--card-border);z-index:30;display:flex;flex-direction:column;min-height:0;box-shadow:24px 0 60px -28px #3c321e8c;animation:jump-in .2s ease}@keyframes jump-in{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.jump-drawer-lead{margin:0;padding:0 18px 8px;font-size:13px;line-height:1.5;color:var(--ink-soft)}.jump-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:4px 12px 20px;display:flex;flex-direction:column;gap:2px}.jump-drawer-body button{display:flex;align-items:flex-start;gap:10px;text-align:left;font-family:Karla,sans-serif;font-size:13px;font-weight:700;color:var(--ink-faint);background:none;border:none;border-radius:8px;padding:9px 10px;cursor:pointer;line-height:1.35}.jump-drawer-body button:hover{background:var(--chip)}.jump-drawer-body button .idx{width:24px;height:24px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:var(--chip-hover);color:var(--ink-faint);margin-top:1px}.jump-title{display:flex;flex-direction:column;gap:2px;min-width:0}.jump-title em{font-style:normal;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:800}.jump-drawer-body button.done{color:var(--ink-soft)}.jump-drawer-body button.done .idx{background:var(--go);color:#f7fbf8}.jump-drawer-body button.active{color:var(--ink);background:var(--go-soft)}.jump-drawer-body button.active .idx{background:var(--go);color:#f7fbf8}.start-chapter{display:flex;flex-direction:column;gap:8px}.start-chapter-badge{align-self:flex-start;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--go);background:var(--go-soft);border-radius:999px;padding:5px 12px}.start-chapter-art{border-radius:10px;overflow:hidden;border:1px solid var(--card-border);background:#f7f0df}.start-svg{display:block;width:100%;height:auto}.stitch-overlay{position:absolute;top:8px;left:8px;z-index:5;width:min(540px,calc(100% - 16px));max-height:calc(100% - 16px);display:flex;flex-direction:column;background:#fdfaf3eb;border:1px solid var(--card-border);border-radius:10px;box-shadow:0 12px 28px -18px #3c321e73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;overflow:hidden}.stitch-overlay.collapsed{width:auto;max-width:min(280px,calc(100% - 24px))}.stitch-overlay-toggle{flex:none;display:flex;align-items:center;gap:10px;width:100%;border:none;background:transparent;cursor:pointer;padding:10px 12px;font-family:Karla,sans-serif;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue);text-align:left}.stitch-overlay-count{margin-left:auto;color:var(--ink);letter-spacing:.02em;font-size:13px}.stitch-overlay-chevron{color:var(--ink-faint);font-size:12px}.stitch-overlay-body{padding:0 12px 10px;display:flex;flex-direction:column;gap:7px;overflow-y:auto;min-height:0}.stitch-overlay-start{align-items:stretch}.stitch-start-btn{font-family:Karla,sans-serif;font-weight:800;font-size:14px;background:var(--blue);color:var(--card);border:none;border-radius:8px;padding:12px 16px;cursor:pointer;width:100%}.stitch-start-btn:hover{background:var(--blue-dark)}.stitch-controls{display:grid;grid-template-columns:56px 1fr 1fr 1fr;gap:6px;align-items:stretch}.stitch-controls-slim{grid-template-columns:1fr 1fr}.stitch-btn{font-family:Karla,sans-serif;font-weight:800;font-size:12px;border:none;border-radius:6px;padding:10px 6px;cursor:pointer;background:var(--chip);color:var(--ink-soft);min-width:0}.stitch-btn:hover{background:var(--chip-hover)}.stitch-btn.minus{width:56px}.stitch-btn.plus{background:var(--go);color:#f7fbf8}.stitch-btn.plus:hover{background:var(--go-dark)}.stitch-btn.jump{background:var(--action);color:var(--card)}.stitch-btn.jump:hover{background:#2a2620}.stitch-btn-spacer{display:block}.stitch-runs{max-height:none}.welcome{height:100%;max-height:100%;min-height:0;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;background:radial-gradient(1200px 600px at 50% -200px,#f4eedf,#f4eedf00 70%),var(--bg)}.welcome-mobile-bar{display:none}.welcome-top{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 34px 0}.welcome-top-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}.welcome-brand{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--ink)}.welcome-brand span{color:var(--gold);font-weight:700;letter-spacing:.16em}.welcome-pdf{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue);text-decoration:none;border-bottom:1.5px solid #C9D4E8;padding-bottom:3px}.welcome-pdf:hover{border-color:var(--blue)}.lang-switch{display:inline-flex;align-items:center;gap:4px;background:var(--chip);border:1px solid var(--card-border);border-radius:999px;padding:3px}.lang-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.08em;color:var(--ink-faint);border-radius:999px;padding:5px 9px 5px 7px;transition:background .12s,color .12s}.lang-btn:hover{color:var(--ink)}.lang-btn.on{background:var(--card);color:var(--ink);box-shadow:0 2px 6px #3c321e1f}.lang-flag{display:block;border-radius:2px;box-shadow:0 0 0 1px #201d181f}.topbar-tools .lang-switch{margin-right:2px}.welcome-hero{flex:1;min-height:0;display:grid;grid-template-columns:minmax(320px,460px) minmax(0,1fr);align-items:center;gap:28px;padding:20px 40px 28px}.welcome-intro{display:flex;flex-direction:column;gap:18px;padding:0 12px 20px 30px}.welcome-eyebrow{margin:0;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--red)}.welcome-intro h1{font-family:"Instrument Serif",serif;font-weight:400;margin:0;font-size:clamp(40px,4.4vw,60px);line-height:1.04}.welcome-intro h1 em{font-style:italic;color:var(--blue)}.welcome-lede{margin:0;font-size:16px;line-height:1.65;color:var(--ink-soft);max-width:42ch}.welcome-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.welcome-start{font-family:Karla,sans-serif;font-weight:800;font-size:15px;background:var(--red);color:#fdfaf3;border:none;border-radius:6px;padding:15px 28px;cursor:pointer;box-shadow:0 14px 26px -12px #ba0c2fb3}.welcome-start:hover{background:var(--red-dark)}.welcome-resume{font-family:Karla,sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);background:none;border:1.5px solid #C9D4E8;border-radius:99px;padding:11px 20px;cursor:pointer}.welcome-resume:hover{border-color:var(--blue)}.welcome-fine{margin:0;font-size:13px;color:var(--ink-faint)}.welcome-aside{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;height:min(64vh,580px);padding:8px 4px 8px 8px}.welcome-stage{position:relative;width:100%;height:100%;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 50% 78%,rgba(96,84,60,.12),transparent 55%),linear-gradient(165deg,#fbf6ea,#ede4d0);border:1px solid rgba(228,218,197,.95);box-shadow:0 1px #ffffffa6 inset,0 28px 56px -28px #3c321e6b,0 10px 24px -16px #3c321e47;transform:translateY(-4px)}.welcome-stage #scene-root,.welcome-stage .scene-root,.welcome-stage .scene-preview{position:absolute;top:0;right:0;bottom:0;left:0}.welcome-foot{flex:none;display:flex;align-items:baseline;gap:16px;padding:0 40px 22px 64px;font-size:15px;color:var(--ink-soft)}.welcome-foot a{color:var(--red);font-weight:400;font-family:"Instrument Serif",serif;text-decoration:none;border-bottom:1px solid rgba(186,12,47,.35)}.welcome-foot a:hover{border-bottom-color:var(--red)}[data-device=phone] .welcome-hero,[data-device=tablet][data-orientation=portrait] .welcome-hero{grid-template-columns:1fr;gap:12px;padding:12px 20px 20px;flex:0 0 auto;min-height:auto;align-items:stretch}[data-device=phone] .welcome-aside,[data-device=tablet][data-orientation=portrait] .welcome-aside{order:-1;height:28vh;min-height:160px;max-height:220px;padding:0}[data-device=phone] .welcome-stage,[data-device=tablet][data-orientation=portrait] .welcome-stage{transform:none;border-radius:14px;pointer-events:none}[data-device=phone] .welcome-intro,[data-device=tablet][data-orientation=portrait] .welcome-intro{padding:4px 4px 12px;gap:14px}[data-device=phone] .welcome-intro .welcome-cta,[data-device=tablet][data-orientation=portrait] .welcome-intro .welcome-cta{display:none}[data-device=phone] .welcome-mobile-bar,[data-device=tablet][data-orientation=portrait] .welcome-mobile-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fdfaf3f7;border-top:1px solid var(--card-border);box-shadow:0 -12px 28px -20px #3c321e73;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}[data-device=phone] .welcome,[data-device=tablet][data-orientation=portrait] .welcome{padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))}[data-device=phone] .welcome-cta,[data-device=tablet] .welcome-cta{flex-direction:column;align-items:stretch}[data-device=phone] .welcome-start,[data-device=phone] .welcome-resume,[data-device=tablet] .welcome-start,[data-device=tablet] .welcome-resume{width:100%;text-align:center;min-height:52px}[data-device=phone] .welcome-foot,[data-device=tablet][data-orientation=portrait] .welcome-foot{padding:0 24px 12px}[data-device=phone] .welcome-top,[data-device=tablet][data-orientation=portrait] .welcome-top{flex:none;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-top:max(12px,env(safe-area-inset-top))}html[data-screen=welcome][data-device=phone] #root,html[data-screen=welcome][data-device=tablet][data-orientation=portrait] #root{height:100dvh;max-height:100dvh;overflow:hidden}html[data-screen=welcome][data-device=phone] .welcome,html[data-screen=welcome][data-device=tablet][data-orientation=portrait] .welcome{height:100%;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.confetti-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;width:100%;height:100%;pointer-events:none}.ai-dock.in-foot{position:relative;flex:none;z-index:8;display:flex;flex-direction:column;align-items:flex-end}.ai-fab{display:flex;align-items:center;gap:8px;border:none;border-radius:999px;cursor:pointer;background:var(--action);color:var(--card);padding:8px 12px 8px 10px;font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 18px -12px #201d1880;transition:background .12s,transform .12s;white-space:nowrap}.ai-fab:hover,.ai-fab.open{background:#2a2620}.ai-fab-icon{width:22px;height:22px;border-radius:50%;background:#fdfaf329;display:flex;align-items:center;justify-content:center;font-size:12px}.ai-panel{position:absolute;right:0;bottom:calc(100% + 8px);width:min(320px,calc(100vw - 48px));background:var(--card);border:1px solid var(--card-border);border-radius:14px;box-shadow:0 28px 64px -28px #3c321e8c;display:flex;flex-direction:column;max-height:min(52vh,440px);animation:school-in .18s ease;z-index:9}.ai-panel-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--head-line)}.ai-panel-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.ai-coming{margin:0;font-family:"Instrument Serif",serif;font-size:22px;color:var(--blue)}.ai-panel-copy{margin:0;font-size:13px;line-height:1.55;color:var(--ink-soft)}.ai-upload-btn{width:100%;font-family:Karla,sans-serif;font-weight:800;font-size:12.5px;letter-spacing:.04em;border:1.5px dashed #C9D4E8;border-radius:8px;background:#f7f2e8;color:var(--blue);padding:12px;cursor:pointer}.ai-upload-btn:hover{border-color:var(--blue);background:#edf1f8}.ai-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ai-file-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:700;color:var(--ink-soft);background:var(--chip);border-radius:6px;padding:6px 8px}.ai-file-list button{border:none;background:none;cursor:pointer;font-size:16px;color:var(--ink-faint)}.ai-demo-input{display:flex;gap:6px}.ai-demo-input input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:Karla,sans-serif;font-size:13px;background:#fbf7ec;color:var(--ink-faint)}.ai-demo-input button{border:none;border-radius:8px;padding:0 14px;font-family:Karla,sans-serif;font-weight:800;font-size:12px;background:var(--chip);color:var(--ink-faint);cursor:not-allowed}.ai-demo-note{margin:0;font-size:11.5px;color:var(--ink-faint);font-weight:700}.school-body{flex:1;min-height:0;overflow-y:auto;padding:14px 18px 18px;display:flex;flex-direction:column;gap:11px}.school-body::-webkit-scrollbar{width:8px}.school-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}.school-close{border:none;background:var(--chip);border-radius:99px;cursor:pointer;width:28px;height:28px;line-height:1;font-family:Karla,sans-serif;font-weight:800;font-size:14px;color:var(--ink-soft)}.school-close:hover{background:var(--chip-hover)}.school-tabs{display:flex;flex-wrap:wrap;gap:5px}.school-tabs button{font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.03em;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:99px;padding:5px 10px;cursor:pointer;transition:all .12s}.school-tabs button:hover{background:var(--chip)}.school-tabs button.on{background:var(--red);border-color:var(--red);color:var(--card)}.school-tabs button.suggested:not(.on){border-color:var(--red);color:var(--red)}.school-art{background:linear-gradient(165deg,#fbf3e4,#efe3cd);border-radius:8px;overflow:hidden;position:relative;flex:none}.school-art svg{display:block;width:100%;height:auto}.phase-badge{position:absolute;top:10px;left:10px;background:var(--card);border:2px solid #2A2620;border-radius:99px;padding:4px 12px;font-family:"Instrument Serif",serif;font-size:15px}.school-frame-title{font-family:"Instrument Serif",serif;font-size:21px;margin:0;font-weight:400}.school-caption{font-size:13px;line-height:1.55;color:var(--ink-soft);margin:0;min-height:42px;text-wrap:pretty}.player{display:flex;flex-direction:column;gap:8px}.player input[type=range]{width:100%;accent-color:var(--red)}.player-row{display:flex;align-items:center;gap:8px}.pbtn{width:40px;height:40px;border-radius:50%;border:1.5px solid #D8CFBC;background:var(--card);font-size:16px;color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s}.pbtn:hover{background:var(--chip)}.pbtn.play{background:var(--red);border-color:var(--red);color:var(--card)}.speed-btns{display:flex;gap:4px;margin-left:auto}.speed-btns button{font-family:Karla,sans-serif;font-weight:800;font-size:11px;border:1px solid var(--line);background:var(--card);color:var(--ink-soft);border-radius:5px;padding:5px 8px;cursor:pointer}.speed-btns button.on{background:var(--blue);border-color:var(--blue);color:var(--card)}.return-pill-bar{flex:none;display:flex;justify-content:center;align-items:center;padding:0 24px 10px;min-height:0}.return-pill{font-family:Karla,sans-serif;font-weight:800;font-size:13px;letter-spacing:.04em;background:var(--blue);color:var(--card);border:none;border-radius:99px;padding:10px 18px;cursor:pointer;box-shadow:0 14px 28px -14px #00205ba6;transition:background .12s,transform .12s;animation:pill-in .2s ease;max-width:min(560px,calc(100vw - 48px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.return-pill:hover{background:var(--blue-dark);transform:translateY(-1px)}@keyframes pill-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.bookmark-btn-wrap{position:relative;display:inline-flex;flex:none}.bookmark-btn.has{color:var(--red);border-color:#e2b9c1}.bookmark-btn.on{background:var(--red);color:#fdfaf3;border-color:var(--red)}.bookmark-btn.on:hover{background:#9a0a27;color:#fdfaf3}.bookmark-btn.compact{width:48px;height:48px;border-radius:12px}.bookmark-flash{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--ink);color:var(--card);font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:8px;white-space:nowrap;animation:pill-in .16s ease;pointer-events:none}.bookmark-flash-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.bookmark-bar{gap:8px;flex-wrap:wrap}.bookmark-pill{display:inline-flex;align-items:center;gap:8px;background:var(--red);box-shadow:0 14px 28px -14px #ba0c2fa6}.bookmark-pill:hover{background:#9a0a27}.bookmark-pill-icon{display:inline-flex}.bookmark-pill-ago{font-weight:700;opacity:.72;font-size:11.5px;letter-spacing:.02em}.bookmark-copy{background:var(--card);color:var(--ink-soft);border:1.5px solid #D8CFBC;box-shadow:none;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;padding:9px 14px}.bookmark-copy:hover{background:#fff;color:var(--ink)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#201d1873;display:flex;align-items:center;justify-content:center;padding:40px}.overlay-card{background:var(--card);border-radius:12px;max-width:min(1200px,94vw);max-height:88vh;overflow:auto;padding:26px 28px;box-shadow:0 40px 90px -30px #00000080;display:flex;flex-direction:column;gap:14px}.overlay-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px}.overlay-title{font-family:"Instrument Serif",serif;font-size:26px;margin:0;font-weight:400}.overlay-close{border:none;background:var(--chip);border-radius:6px;cursor:pointer;font-family:Karla,sans-serif;font-weight:800;font-size:13px;color:var(--ink-soft);padding:8px 14px}.overlay-sub{font-size:13px;color:var(--ink-soft);margin:0;line-height:1.55}.chart-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#f7f2e8}.chart-zoom{display:flex;gap:6px;align-items:center}.chart-zoom button{width:34px;height:30px;border-radius:6px;border:1px solid var(--line);background:var(--card);font-weight:800;cursor:pointer;color:var(--ink-soft)}.chart-legend{display:flex;gap:14px;font-size:12.5px;color:var(--ink-soft);align-items:center;flex-wrap:wrap}.chart-legend .swatch{width:12px;height:12px;border-radius:3px;display:inline-block;margin-right:5px;border:1px solid rgba(0,0,0,.15);vertical-align:-1px}.cheat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.cheat-card{background:var(--chip);border-radius:8px;padding:14px 16px}.cheat-card h4{margin:0 0 8px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-weight:800}.cheat-card p{margin:0;font-size:13.5px;line-height:1.7;color:var(--ink-soft);white-space:pre-line;font-family:ui-monospace,SF Mono,Menlo,monospace}.drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:94vw;background:var(--card);z-index:42;box-shadow:-30px 0 70px -30px #00000073;display:flex;flex-direction:column;animation:drawer-in .22s ease}@keyframes drawer-in{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:baseline;justify-content:space-between;padding:22px 24px 12px}.drawer-body{overflow-y:auto;padding:0 24px 24px;display:flex;flex-direction:column;gap:10px}.trouble-item{border:1px solid var(--line);border-radius:8px;overflow:hidden}.trouble-item summary{cursor:pointer;padding:12px 14px;font-weight:800;font-size:14px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center}.trouble-item summary::-webkit-details-marker{display:none}.trouble-item summary:after{content:"+";color:var(--red);font-size:18px;font-weight:400}.trouble-item[open] summary:after{content:"–"}.trouble-item ol{margin:0;padding:0 16px 14px 30px;font-size:13.5px;line-height:1.6;color:var(--ink-soft);display:flex;flex-direction:column;gap:5px}@media(max-width:1240px){[data-device=desktop] .layout{grid-template-columns:330px minmax(0,1fr);gap:14px;padding:0 16px 16px}}.workhud.msgs-only{padding:8px 10px;gap:0}.workhud.msgs-only .workhud-panel.has-marker{grid-template-columns:minmax(0,1fr)}.workhud.msgs-only .workhud-marker-aside{margin-top:4px}.mobile-dock{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;flex-direction:column;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px)) 12px;background:#fdfaf3f5;border-top:1px solid var(--card-border);box-shadow:0 -16px 40px -28px #3c321e8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mobile-dock-count-row{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(96px,1.4fr);gap:8px;align-items:stretch}.mobile-dock-count{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--chip);border-radius:10px;font-family:"Instrument Serif",serif;line-height:1;border:1px solid var(--card-border)}.mobile-dock-count strong{font-size:26px;font-weight:400;color:var(--ink)}.mobile-dock-count span{font-size:11px;color:var(--ink-faint);margin-top:2px;font-family:Karla,sans-serif;font-weight:700}.mobile-dock-pm{font-family:Karla,sans-serif;font-weight:800;border:none;border-radius:12px;cursor:pointer;min-height:52px;transition:transform .1s,background .12s}.mobile-dock-pm:active{transform:scale(.97)}.mobile-dock-pm.minus{background:var(--card);color:var(--ink);border:1.5px solid #D8CFBC;font-size:22px}.mobile-dock-pm.plus{background:var(--go);color:#f7fbf8;font-size:20px;box-shadow:0 12px 22px -12px #2f6b4f99}.mobile-dock-pm.plus.rhythm{font-size:14px;letter-spacing:.04em;text-transform:uppercase;padding:0 10px;line-height:1.15}.mobile-dock-pm.plus.rhythm.inc{background:var(--red);box-shadow:0 12px 22px -12px #ba0c2f8c}.mobile-dock-pm.plus.rhythm.yarn-white{background:#f6f0e1;color:var(--ink);border:1.5px solid #D8CFBC;box-shadow:none}.mobile-dock-pm.plus.rhythm.yarn-red{background:var(--red);color:#fdfaf3;box-shadow:0 12px 22px -12px #ba0c2f8c}.mobile-dock-pm.plus.rhythm.yarn-blue{background:var(--blue);color:#fdfaf3;box-shadow:0 12px 22px -12px #00205b73}.mobile-dock-pm.plus.rhythm.yarn-black{background:#23211e;color:#fdfaf3;box-shadow:0 12px 22px -12px #14141280}.mobile-dock-pm.plus.rhythm.yarn-lightblue{background:#6e86c0;color:#fdfaf3;box-shadow:0 12px 22px -12px #6e86c080}.mobile-dock-pm:disabled{opacity:.35;cursor:default}.mobile-dock-count-row.rhythm-mode{grid-template-columns:64px minmax(0,1fr) minmax(118px,1.55fr)}.mobile-dock-rhythm-meta{display:block;margin-top:3px;font-family:Karla,sans-serif;font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}.mobile-dock-fine{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:Karla,sans-serif;font-weight:800;min-height:52px;border-radius:12px;cursor:pointer;border:1.5px solid #D8CFBC;padding:0 12px;transition:filter .12s,background .12s}.mobile-dock-fine.minus{background:linear-gradient(180deg,#fffdf7,#ebe1cd);color:var(--ink-soft)}.mobile-dock-fine.plus{background:linear-gradient(0deg,#f6faf7,#c9e3d2);color:var(--go-dark)}.mobile-dock-fine:active{filter:brightness(.94)}.mobile-dock-fine:disabled{opacity:.42}.mobile-dock-fine-row{display:flex;gap:8px}.mobile-dock-fine-row .mobile-dock-fine{flex:1 1 0}.mobile-dock-jump{font-family:Karla,sans-serif;font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;min-height:44px;border-radius:10px;cursor:pointer;background:var(--action-soft);color:var(--action);border:1.5px solid #D8CFBC}.mobile-dock-nav{display:grid;grid-template-columns:auto 1fr 1.25fr;gap:8px}.mobile-dock-nav-btn{font-family:Karla,sans-serif;font-weight:800;font-size:13.5px;letter-spacing:.04em;border:none;border-radius:12px;min-height:48px;cursor:pointer;transition:transform .1s,background .12s}.mobile-dock-nav-btn:active{transform:scale(.97)}.mobile-dock-nav-btn:disabled{opacity:.35;cursor:default}.mobile-dock-nav-btn.prev{background:var(--chip);color:var(--ink-soft)}.mobile-dock-nav-btn.jump{background:var(--action-soft);color:var(--action);border:1.5px solid #D8CFBC;padding:0 14px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}.mobile-dock-nav-btn.next{background:var(--go);color:#f7fbf8;box-shadow:0 12px 22px -12px #2f6b4f8c}html[data-device=phone]:not([data-app=platform]),html[data-device=phone]:not([data-app=platform]) body{height:100%;overflow:hidden}html[data-device=phone]:not([data-app=platform]) #root,html[data-device=phone] .app{height:100dvh;max-height:100dvh;overflow:hidden}[data-device=phone] .app.has-mobile-dock{padding-bottom:0}[data-device=phone] .topbar{padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));gap:8px}[data-device=phone] .brand{flex:1 1 auto;min-width:0;gap:8px;overflow:hidden}[data-device=phone] .brand .dots{display:none}[data-device=phone] .topbar-tools{gap:6px}[data-device=phone] .kicker-full{display:none}[data-device=phone] .kicker-short{display:block;font-size:11px;letter-spacing:.14em;color:var(--ink);font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis}[data-device=tablet][data-orientation=portrait] .kicker-full{display:none}[data-device=tablet][data-orientation=portrait] .kicker-short{display:inline;font-size:12px;letter-spacing:.16em;color:var(--ink);font-weight:800}[data-device=phone] .layout.mobile-work{display:flex;flex-direction:column;gap:0;padding:0 8px;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));padding-bottom:calc(124px + env(safe-area-inset-bottom,0px));overflow:hidden;flex:1;min-height:0}[data-device=phone] .layout.mobile-work .stage{order:0;flex:1 1 auto;min-height:0;height:auto;max-height:none;display:flex;flex-direction:column}[data-device=phone] .layout.mobile-work .scene-wrap{flex:1 1 auto;min-height:180px}[data-device=phone] .layout.mobile-work.recipe-first{overflow-y:auto;-webkit-overflow-scrolling:touch;gap:8px;padding-top:4px}[data-device=phone] .layout.mobile-work.recipe-first .panel{flex:none}[data-device=phone] .mobile-recipe-hint{margin:0 4px;padding:10px 12px;border-radius:10px;background:var(--go-soft);border:1px solid #C5D9CC;color:var(--go-dark);font-size:13px;font-weight:700;line-height:1.45}[data-device=phone] .stage-head .viewtoggle{flex:1;min-width:0}[data-device=phone] .stage-head .viewtoggle button{flex:1;padding:8px 6px;font-size:10.5px;letter-spacing:.04em}.workhud-recipe-hint{margin:0 0 6px;font-size:12px;font-weight:800;color:var(--blue);letter-spacing:.02em}@keyframes opskrift-pulse{0%,to{box-shadow:0 0 #00205b00;transform:scale(1)}50%{box-shadow:0 0 0 6px #00205b1f;transform:scale(1.02)}}.mobile-dock-nav-btn.jump.pulse{animation:opskrift-pulse 2.6s ease-in-out infinite;border-color:#a8b8d4}[data-device=phone] .stage-foot{padding:6px 10px 8px;gap:6px}[data-device=phone] .stage-foot.dock-mode .progress{margin-top:0}[data-device=phone] .workhud.msgs-only{padding:6px 8px}[data-device=phone] .hint{display:none}[data-device=phone] .foot-row{justify-content:center}[data-device=phone] .roundcount{font-size:12px;white-space:nowrap;text-align:center}[data-device=phone] .viewtoggle button{padding:8px 10px;font-size:11px;min-height:36px}[data-device=phone] .schoolbtn{padding:8px 10px;min-height:36px;font-size:10px}[data-device=phone] .stage-head.card-head{padding:6px 10px;min-height:42px}[data-device=phone] .card-head{padding:8px 12px;min-height:48px}.recipe-sheet{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:36;width:100%;height:min(82dvh,720px);max-height:calc(100dvh - env(safe-area-inset-top) - 8px);background:var(--card);border:1px solid var(--card-border);border-radius:16px 16px 0 0;box-shadow:0 -24px 48px -28px #3c321e8c;display:flex;flex-direction:column;animation:school-sheet-in .22s ease}.recipe-sheet-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--head-line)}.recipe-sheet-actions{display:flex;align-items:center;gap:8px}.recipe-sheet-jump{font-family:Karla,sans-serif;font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid #C9D4E8;border-radius:99px;background:var(--chip);color:var(--blue);padding:8px 12px;cursor:pointer;min-height:36px}.recipe-sheet-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.recipe-sheet .panel-body.sheet-body{padding:14px 16px calc(24px + env(safe-area-inset-bottom,0px))}.stitch-jump-panel{margin:12px 14px 0;padding:12px;border-radius:12px;background:var(--chip);border:1px solid var(--card-border)}.stitch-jump-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:6px}.stitch-jump-lead{margin:0 0 10px;font-size:12.5px;font-weight:700;color:var(--ink-soft);line-height:1.4}.stitch-jump-panel .stitch-runs{margin-top:10px;max-height:none}.recipe-sheet .step-eyebrow .sub{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--gold);white-space:nowrap}[data-device=phone] .step-title{font-size:24px}[data-device=phone] .checkcard-btns button{min-height:48px;padding:12px 8px;font-size:14px}[data-device=phone] .icon-btn{width:44px;height:44px}[data-device=phone] .tools-tray.open{max-width:min(820px,calc(100vw - 120px))}[data-device=phone] .tool-btn{padding:10px 12px;font-size:11px;min-height:40px}[data-device=phone] #scene-root canvas,[data-device=phone] .scene-root canvas{touch-action:none}[data-device=phone] .ai-fab-label{max-width:0;padding:0;overflow:hidden}[data-device=phone] .ai-fab{padding:10px;border-radius:50%}[data-device=phone] .stitch-overlay{max-height:62%;width:min(300px,calc(100% - 16px));top:6px;left:6px}[data-device=phone] .stitch-overlay.collapsed{max-height:none;width:auto}[data-device=phone] .school{top:auto;right:0;left:0;bottom:0;width:100%;max-width:100%;height:min(78dvh,640px);max-height:calc(100dvh - env(safe-area-inset-top) - 8px);border-radius:16px 16px 0 0;animation:school-sheet-in .22s ease;z-index:35}[data-device=phone] .drawer-backdrop{z-index:34}@keyframes school-sheet-in{0%{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}[data-device=phone] .jump-drawer,[data-device=phone] .drawer{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:min(78dvh,640px);border-radius:16px 16px 0 0;z-index:35}[data-device=phone] .overlay{padding:12px;align-items:flex-end}[data-device=phone] .overlay-card{max-width:100%;max-height:88dvh;width:100%;border-radius:16px 16px 0 0;padding:18px 16px}[data-device=phone] .return-pill-bar{padding:0 12px 8px}[data-device=phone] .return-pill{font-size:12px;padding:10px 14px;max-width:calc(100vw - 24px)}[data-device=phone] .bookmark-bar{flex-wrap:nowrap;gap:6px}[data-device=phone] .bookmark-pill{flex:1 1 auto;min-width:0;justify-content:flex-start}[data-device=phone] .bookmark-pill-ago{display:none}[data-device=phone] .bookmark-copy{flex:none;font-size:10px;padding:9px 10px;letter-spacing:.05em}[data-device=phone] .flip-hint{font-size:11px;padding:6px 10px;max-width:calc(100% - 16px)}[data-device=tablet] .btn,[data-device=tablet] .workhud-pm,[data-device=tablet] .tool-btn,[data-device=tablet] .viewtoggle button,[data-device=tablet] .schoolbtn,[data-device=tablet] .checkcard-btns button{min-height:44px}[data-device=tablet] .icon-btn{width:44px;height:44px}[data-device=tablet] .workhud-pm{height:50px}[data-device=tablet] .workhud-pm.fine{min-width:68px}[data-device=tablet] .workhud-pm.jump{min-height:88px}[data-device=tablet] #scene-root canvas,[data-device=tablet] .scene-root canvas{touch-action:none}[data-device=tablet] .layout{gap:14px;padding:0 16px 16px}[data-device=tablet] .school{top:12px;right:12px;max-height:calc(100dvh - 24px)}[data-device=tablet] .jump-drawer{width:min(420px,100vw)}html[data-app=guide][data-device=tablet][data-orientation=portrait],html[data-app=guide][data-device=tablet][data-orientation=portrait] body{height:100%;overflow:hidden}html[data-app=guide][data-device=tablet][data-orientation=portrait] #root,html[data-app=guide][data-device=tablet][data-orientation=portrait] .app{height:100dvh;max-height:100dvh;overflow:hidden}[data-device=tablet][data-orientation=portrait] .layout.mobile-work{display:flex;flex-direction:column;gap:0;padding-bottom:calc(112px + env(safe-area-inset-bottom,0px));overflow:hidden;flex:1;min-height:0}[data-device=tablet][data-orientation=portrait] .layout.mobile-work .stage{order:0;flex:1 1 auto;min-height:0;height:auto;max-height:none;display:flex;flex-direction:column}[data-device=tablet][data-orientation=portrait] .layout.mobile-work .scene-wrap{flex:1 1 auto;min-height:280px}[data-device=tablet][data-orientation=portrait] .layout.mobile-work.recipe-first{overflow-y:auto;-webkit-overflow-scrolling:touch;gap:10px}[data-device=tablet][data-orientation=portrait] .hint{display:none}[data-device=tablet][data-orientation=portrait] .recipe-sheet{height:min(75dvh,780px)}[data-device=tablet][data-orientation=portrait] .ai-fab-label{max-width:0;padding:0;overflow:hidden}[data-device=tablet][data-orientation=portrait] .ai-fab{padding:10px;border-radius:50%}[data-device=tablet][data-orientation=portrait] .school,[data-device=tablet][data-orientation=portrait] .jump-drawer,[data-device=tablet][data-orientation=portrait] .drawer{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:min(70dvh,720px);border-radius:16px 16px 0 0}[data-device=tablet][data-orientation=landscape] .layout{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}[data-device=tablet][data-orientation=landscape] .workhud-panel.has-marker{grid-template-columns:minmax(0,1.1fr) minmax(180px,1fr)}html[data-app=studio] .ml-shell{height:100vh;height:100dvh;min-height:0;overflow:hidden}html[data-app=studio] .ml-content{min-height:0;overflow:hidden}.st-root{--st-bg: #ede7db;--st-paper: #fbf8f0;--st-paper-2: #f5f0e2;--st-ink: #1a1a17;--st-muted: #55503f;--st-faint: #8a8070;--st-label: #a89a7e;--st-line: #dcd4bf;--st-red: #b7182e;--st-red-dark: #8f1023;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--st-bg);color:var(--st-ink);font-family:Karla,sans-serif}.st-root *{box-sizing:border-box}.st-bar{flex:none;height:52px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--st-line);background:var(--st-bg)}.st-bar-title{font-family:"Instrument Serif",serif;font-size:19px;letter-spacing:.08em;white-space:nowrap}.st-bar-sub{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:800;color:var(--st-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-bar-spacer{flex:1}.st-group{display:flex;gap:3px;background:var(--st-paper);border:1px solid var(--st-line);border-radius:7px;padding:3px;flex:none}.st-tool{border:none;background:none;border-radius:5px;padding:6px 11px;font-family:inherit;font-size:11.5px;font-weight:800;color:var(--st-muted);cursor:pointer;white-space:nowrap}.st-tool:hover:not(:disabled){color:var(--st-ink)}.st-tool.on{background:var(--st-ink);color:var(--st-paper)}.st-tool:disabled{opacity:.35;cursor:default}.st-btn{border:1.5px solid var(--st-line);background:none;color:var(--st-muted);border-radius:6px;padding:8px 13px;font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}.st-btn:hover{border-color:var(--st-ink);color:var(--st-ink)}.st-btn.primary{background:var(--st-red);border-color:transparent;color:#fbf8f0;box-shadow:0 10px 18px -10px #b7182eb3}.st-btn.primary:hover{background:var(--st-red-dark);color:#fbf8f0}.st-btn.small{padding:5px 9px;font-size:11px}.st-body{flex:1;min-height:0;display:grid;grid-template-columns:316px minmax(0,1fr)}.st-rail{min-height:0;overflow-y:auto;border-right:1px solid var(--st-line);padding:16px 18px 40px;display:flex;flex-direction:column;gap:22px}.st-sec-head{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--st-label);margin:0 0 8px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.st-hint{font-size:10.5px;color:var(--st-faint);line-height:1.5;margin:7px 0 0}.st-yarns{display:flex;flex-wrap:wrap;gap:8px}.st-yarn{width:30px;height:30px;border-radius:50%;padding:0;cursor:pointer;border:2px solid rgba(26,26,23,.18)}.st-yarn.on{border-color:var(--st-ink);box-shadow:0 0 0 3px #b7182e47}.st-parts{display:flex;flex-direction:column;gap:5px}.st-part{display:flex;align-items:center;gap:9px;border:1.5px solid var(--st-line);background:var(--st-paper);border-radius:6px;padding:8px 10px;cursor:pointer;text-align:left;font-family:inherit}.st-part:hover{border-color:var(--st-red)}.st-swatch{width:16px;height:16px;border-radius:4px;border:1px solid rgba(26,26,23,.25);flex:none}.st-part-label{flex:1;font-size:12.5px;font-weight:800}.st-part-note{font-size:10px;color:var(--st-faint)}.st-field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--st-muted)}.st-field>span{display:flex;justify-content:space-between;gap:8px}.st-field b{color:var(--st-ink);font-weight:800}.st-field input[type=range]{width:100%;accent-color:var(--st-red)}.st-field select,.st-field input[type=text],.st-field input[type=number]{border:1.5px solid var(--st-line);border-radius:5px;background:var(--st-paper);padding:7px 9px;font-family:inherit;font-size:12.5px;font-weight:700;color:var(--st-ink);width:100%}.st-grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px}.st-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.st-chip{border:1.5px solid var(--st-line);background:var(--st-paper);border-radius:5px;padding:6px 4px;font-family:inherit;font-size:11.5px;font-weight:800;color:var(--st-ink);cursor:pointer}.st-chip.on{border-color:var(--st-red);background:#f7e9eb}.st-readout{border:1px dashed var(--st-line);border-radius:6px;padding:9px 10px;font-size:11.5px;color:var(--st-muted);line-height:1.55}.st-readout b{color:var(--st-ink)}.st-layers{display:flex;flex-direction:column;gap:4px}.st-layer{display:flex;align-items:center;gap:6px;border:1.5px solid var(--st-line);background:var(--st-paper);border-radius:6px;padding:6px 8px}.st-layer.on{border-color:var(--st-red);background:#f7e9eb}.st-layer-name{flex:1;min-width:0;border:none;background:none;text-align:left;font-family:inherit;font-size:12px;font-weight:700;color:var(--st-ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0}.st-icon{border:none;background:none;cursor:pointer;padding:0 2px;font-size:11px;color:var(--st-faint);font-family:inherit;line-height:1}.st-icon:hover{color:var(--st-ink)}.st-icon.danger:hover{color:var(--st-red)}.st-layer-dot{width:13px;height:13px;border-radius:50%;border:1px solid rgba(26,26,23,.3);flex:none}.st-params{border:1px solid var(--st-line);border-radius:8px;background:var(--st-paper-2);padding:12px;display:flex;flex-direction:column;gap:10px}.st-params-head{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--st-red);margin:0}.st-stage{min-height:0;min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.st-3d{position:relative;min-height:0;min-width:0;width:100%;background:#ede7da}.st-3d .scene-root,.st-3d #scene-root{width:100%;height:100%}.st-3d-hint{position:absolute;left:50%;bottom:10px;transform:translate(-50%);font-size:11px;font-weight:700;color:var(--st-faint);background:#fbf8f0d1;border:1px solid var(--st-line);border-radius:999px;padding:5px 12px;pointer-events:none;white-space:nowrap}.st-chartwrap{min-width:0;border-top:1px solid var(--st-line);background:var(--st-paper);padding:10px 16px 14px;display:flex;flex-direction:column;gap:8px}.st-chart-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.st-chart-title{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--st-label)}.st-chart-scroll{max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid var(--st-line);background:#fff;border-radius:4px}.st-chart-canvas{display:block;touch-action:none}.st-chart-holder{position:relative;display:flex;flex-direction:column;align-items:flex-start}.st-chart-hud{position:sticky;left:8px;align-self:flex-start;height:22px;line-height:14px;margin:-30px 0 8px 8px;padding:4px 9px;border-radius:999px;background:#1a1a17e6;color:#fff;font-size:11px;font-weight:800;letter-spacing:.02em;pointer-events:none;white-space:nowrap}.st-scalerow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.st-scalerow-label{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--st-label)}.st-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--st-line);border-radius:5px;overflow:hidden;background:var(--st-paper)}.st-stepper b{font-size:11.5px;padding:0 7px;min-width:46px;text-align:center}.st-stepper button{border:0;background:transparent;font-family:inherit;font-size:14px;font-weight:800;line-height:1;padding:5px 8px;color:var(--st-ink);cursor:pointer}.st-stepper button:hover:not(:disabled){background:#efe7d8}.st-stepper button:disabled{opacity:.3;cursor:default}.st-yarn.none{background:linear-gradient(45deg,transparent 46%,var(--st-red) 46%,var(--st-red) 54%,transparent 54%),#fff}.st-craft{border-top:1px solid var(--st-line);padding-top:12px}.st-craft-head{width:100%;border:0;background:transparent;font-family:inherit;cursor:pointer;padding:0}.st-craft-pill{text-transform:none;letter-spacing:0;font-weight:800;font-size:10.5px;padding:3px 8px;border-radius:999px;border:1.5px solid var(--st-line)}.st-craft-pill.lvl-ok{border-color:#2f7a4f;color:#2f7a4f;background:#eaf5ee}.st-craft-pill.lvl-error{border-color:var(--st-red);color:var(--st-red);background:#f7e9eb}.st-craft-pill.lvl-warn{border-color:#b07d12;color:#8a6210;background:#fbf1dc}.st-craft-pill.lvl-tip{color:var(--st-label)}.st-findings{display:flex;flex-direction:column;gap:6px;margin-top:8px}.st-finding{display:flex;align-items:flex-start;gap:6px;border:1px solid var(--st-line);border-left-width:3px;border-radius:5px;padding:7px 8px;background:var(--st-paper)}.st-finding.lvl-error{border-left-color:var(--st-red)}.st-finding.lvl-warn{border-left-color:#b07d12}.st-finding.lvl-tip{border-left-color:var(--st-label)}.st-finding.on{background:#fff;box-shadow:0 0 0 2px #b7182e2e}.st-finding-main{flex:1;min-width:0;border:0;background:transparent;font-family:inherit;text-align:left;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:3px}.st-finding-title{font-size:12px;font-weight:800;color:var(--st-ink);line-height:1.25}.st-finding-detail{font-size:11px;line-height:1.4;color:var(--st-label)}.st-finding-fix{flex:0 0 auto;padding:5px 8px;white-space:nowrap}.st-drawer-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1759;z-index:60}.st-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,96vw);background:var(--st-bg);border-left:1px solid var(--st-line);z-index:61;display:flex;flex-direction:column;box-shadow:-30px 0 60px -40px #1a1a1799}.st-drawer-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--st-line)}.st-drawer-head h2{margin:0;font-family:"Instrument Serif",serif;font-weight:400;font-size:23px}.st-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 40px;display:flex;flex-direction:column;gap:18px}.st-rows{display:flex;flex-direction:column;gap:2px}.st-row{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--st-line);padding:6px 0;font-size:13px}.st-row b{font-weight:800}.st-recipe{white-space:pre-wrap;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;line-height:1.55;color:var(--st-muted);background:var(--st-paper);border:1px solid var(--st-line);border-radius:6px;padding:12px;margin:0;max-height:46vh;overflow:auto}.st-actions{display:flex;flex-wrap:wrap;gap:8px}.st-errors{border:1px solid var(--st-red);background:#f7e9eb;border-radius:6px;padding:10px 12px;font-size:12px;color:var(--st-red-dark);display:flex;flex-direction:column;gap:4px}.st-notice{position:fixed;left:50%;bottom:22px;transform:translate(-50%);background:var(--st-ink);color:var(--st-paper);border-radius:999px;padding:9px 18px;font-size:12.5px;font-weight:700;z-index:70;box-shadow:0 18px 30px -18px #1a1a17cc}.st-pop{position:absolute;top:48px;right:12px;z-index:50;background:var(--st-paper);border:1px solid var(--st-line);border-radius:10px;padding:10px;width:260px;display:flex;flex-direction:column;gap:5px;box-shadow:0 24px 40px -28px #1a1a17b3}.st-pop-head{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--st-label);margin:2px 2px 4px}.st-pop button{border:1px solid var(--st-line);background:var(--st-bg);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:12px;font-weight:800;color:var(--st-ink);cursor:pointer;text-align:left}.st-pop button:hover{border-color:var(--st-red)}.st-barwrap{position:relative;flex:none}@media(max-width:940px){.st-body{display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.st-body>*{flex:none}.st-body>*{min-width:0}.st-stage{order:0;display:block}.st-rail{order:1;border-right:none;border-top:1px solid var(--st-line);overflow:visible;padding:14px 16px 60px}.st-3d{height:42vh;min-height:260px}.st-chartwrap{padding:10px 12px 12px}.st-bar{height:auto;flex-wrap:wrap;padding:8px 12px;gap:6px}.st-bar-sub,.st-bar-spacer{display:none}.st-btn{padding:7px 10px;font-size:11.5px}.st-drawer{width:100%}}@media print{.st-bar,.st-body,.st-drawer-back{display:none!important}.st-drawer{position:static;width:auto;box-shadow:none;border:none}.st-recipe{max-height:none;color:#000}}.st-assist{border-bottom:1px solid var(--st-line);padding-bottom:16px}.st-brief{width:100%;border:1.5px solid var(--st-line);border-radius:6px;background:#fff;font-family:inherit;font-size:12.5px;line-height:1.45;padding:8px 9px;resize:vertical;color:var(--st-ink)}.st-brief:focus{outline:none;border-color:var(--st-red)}.st-assist-run{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.st-examples{display:flex;flex-direction:column;gap:5px;margin-top:10px}.st-example{border:1px dashed var(--st-line);background:transparent;border-radius:5px;padding:6px 8px;font-family:inherit;font-size:11px;line-height:1.35;color:var(--st-label);text-align:left;cursor:pointer}.st-example:hover{border-style:solid;color:var(--st-ink);background:#fff}.st-variations{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.st-variation{border:1.5px solid var(--st-line);border-radius:6px;background:#fff;padding:7px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:flex-start;overflow:hidden;font-family:inherit}.st-variation:hover{border-color:var(--st-red);box-shadow:0 2px 10px #1a1a171a}.st-mini{width:100%;height:auto;image-rendering:pixelated;border:1px solid var(--st-line);border-radius:2px}.st-variation-name{font-size:11.5px;font-weight:800;color:var(--st-ink)}.st-variation-note{font-size:10px;line-height:1.3;color:var(--st-label);text-align:left}.st-remixes{display:flex;flex-wrap:wrap;gap:5px}.st-remixes .st-chip{padding:5px 9px;flex:none}.st-shapes{border-top:1px solid var(--st-line);padding-top:12px}.st-shapecats{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.st-shapecats .st-chip{padding:4px 8px;font-size:10.5px}.st-shapegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:5px}.st-shapebtn{border:1.5px solid var(--st-line);border-radius:5px;background:var(--st-paper);padding:5px 3px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:inherit;font-size:9.5px;font-weight:700;color:var(--st-label);line-height:1.15;text-align:center}.st-shapebtn:hover{border-color:var(--st-red);background:#fff;color:var(--st-ink)}.st-shapebtn canvas{image-rendering:pixelated}.st-yarn.small{width:20px;height:20px;border-width:1.5px}.st-yarn.small.on{box-shadow:0 0 0 2px #b7182e47}.st-actionbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0 2px}.st-actionbar.empty{font-size:11px;color:var(--st-label);padding:8px 0 4px}.st-action{border:1.5px solid var(--st-line);background:var(--st-paper);border-radius:999px;padding:5px 11px;font-family:inherit;font-size:11.5px;font-weight:800;color:var(--st-ink);cursor:pointer;white-space:nowrap}.st-action:hover{border-color:var(--st-red);background:#fff}.st-action.on{border-color:var(--st-red);background:#f7e9eb}.st-modes{display:inline-flex;border:1.5px solid var(--st-line);border-radius:999px;overflow:hidden;background:var(--st-paper)}.st-mode{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;font-family:inherit;font-size:11.5px;font-weight:800;color:var(--st-label);padding:5px 11px;cursor:pointer;white-space:nowrap}.st-mode:hover{color:var(--st-ink)}.st-mode.on{background:var(--st-ink);color:#fff}.st-modes.mode-brush .st-mode.on,.st-modes.mode-erase .st-mode.on{background:var(--st-red)}.st-mode-dot{width:11px;height:11px;border-radius:50%;border:1.5px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px #1a1a1740}.st-mode-dot.erase{background:linear-gradient(45deg,transparent 42%,#fff 42%,#fff 58%,transparent 58%),#8a8070}.st-modebanner{display:flex;align-items:center;gap:7px;font-size:11.5px;line-height:1.35;color:#fff;background:var(--st-red);border-radius:5px;padding:6px 10px;margin:6px 0 2px}.st-modebanner b{font-weight:800}.st-chart-scroll.mode-brush,.st-chart-scroll.mode-erase{border-color:var(--st-red);box-shadow:0 0 0 2px #b7182e29}.st-fullwrap{display:flex;flex-direction:column;gap:6px;padding:8px 10px 10px;background:#fff}.st-fullchart{align-self:center}.st-fulllegend{display:flex;flex-wrap:wrap;gap:4px 10px;align-self:center;max-width:100%}.st-phase{font-size:10.5px;color:var(--st-label);white-space:nowrap}.st-phase b{font-weight:800;color:var(--st-ink)}.st-phase.text b{color:var(--st-red)}.st-phase.note{font-style:italic}.ml-shell{--ml-bg: #ede7db;--ml-paper: #fbf8f0;--ml-paper-2: #f5f0e2;--ml-ink: #1a1a17;--ml-muted: #55503f;--ml-faint: #8a8070;--ml-label: #a89a7e;--ml-line: #dcd4bf;--ml-line-soft: #efe6d2;--ml-red: #b7182e;--ml-red-dark: #8f1023;min-height:100vh;display:flex;flex-direction:column;background:var(--ml-bg);color:var(--ml-ink);font-family:Karla,sans-serif}.ml-content{flex:1;min-height:0}.ml-star{color:var(--ml-red)}.ml-wordmark{font-family:"Instrument Serif",serif;letter-spacing:.15em;color:var(--ml-ink)}.ml-topnav{position:sticky;top:0;z-index:40;background:var(--ml-bg);border-bottom:1px solid var(--ml-line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;height:56px;flex:none}.ml-home{text-decoration:none;color:inherit}.ml-navlinks{display:flex;gap:30px;align-items:center;height:100%}.ml-navlink{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ml-ink);text-decoration:none;height:100%;display:flex;align-items:center;border-bottom:2px solid transparent;box-sizing:border-box;padding-top:2px}.ml-navlink.active{border-bottom-color:var(--ml-red)}.ml-navlink:hover{color:var(--ml-red)}.ml-del{border:1.5px solid var(--ml-ink);background:none;color:var(--ml-ink);border-radius:5px;padding:7px 16px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-family:inherit}.ml-del:hover{background:var(--ml-ink);color:var(--ml-paper)}.ml-footer{border-top:1px solid var(--ml-line);background:var(--ml-bg);padding:36px 48px;display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:flex-start}.ml-footer-brand{display:flex;flex-direction:column;gap:8px}.ml-footer-tag{font-size:12.5px;color:var(--ml-faint)}.ml-footer-cols{display:flex;gap:40px;flex-wrap:wrap}.ml-footer-col{display:flex;flex-direction:column;gap:7px;font-size:12.5px}.ml-footer-col.wide{max-width:320px}.ml-footer-col a{color:var(--ml-muted);text-decoration:none;font-weight:700}.ml-footer-col a:hover{color:var(--ml-red)}.ml-footer-head{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--ml-label)}.ml-footer-credit{color:var(--ml-muted);line-height:1.6}.ml-footer-credit a{color:var(--ml-ink);font-weight:700}.ml-footer-copy{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ml-label)}.ml-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:10px 14px;font-size:12.5px;font-weight:800;letter-spacing:.04em;text-decoration:none;cursor:pointer;border:none;font-family:inherit;text-align:center}.ml-btn.primary{background:var(--ml-red);color:var(--ml-paper);box-shadow:0 14px 26px -12px #b7182e8c}.ml-btn.primary:hover{background:var(--ml-red-dark)}.ml-btn.primary.big{padding:15px 30px;font-size:14.5px;letter-spacing:.06em;border-radius:6px}.ml-btn.ghost{border:1.5px solid var(--ml-line);background:none;color:var(--ml-ink)}.ml-btn.ghost:hover{border-color:var(--ml-ink)}.ml-linkbtn{background:none;border:none;color:var(--ml-ink);font-size:14px;font-weight:800;letter-spacing:.04em;cursor:pointer;border-bottom:2px solid var(--ml-red);padding:4px 2px;text-decoration:none;font-family:inherit}.ml-linkbtn:hover{color:var(--ml-red)}.ml-eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:800;color:var(--ml-red)}.ml-landing{flex:1}.ml-hero{padding:96px 48px 64px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:26px}.ml-hero.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px;text-align:left;max-width:1400px;margin:0 auto;width:100%;padding:64px 48px 40px}.ml-hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.ml-hero-headline{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(42px,5vw,76px);line-height:1.05;margin:0;max-width:14ch;text-wrap:balance}.ml-hero.split .ml-hero-lede{margin:0}.ml-hero.split .ml-hero-ctas{justify-content:flex-start;margin-top:6px}.ml-herohat{position:relative;width:100%;aspect-ratio:5 / 4;max-height:60vh;border:1px solid var(--ml-line);border-radius:10px;overflow:hidden;background:linear-gradient(180deg,#f5f0e2,#efe8d6)}.ml-herohat .scene-root,.ml-herohat .scene-preview,.ml-herohat .scene-card{position:absolute;top:0;right:0;bottom:0;left:0}.ml-herohat-foot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fbf8f0db;border-top:1px solid var(--ml-line)}.ml-herohat-name{font-family:"Instrument Serif",serif;font-size:19px}.ml-herohat-dots{display:flex;gap:6px}.ml-herohat-dot{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid var(--ml-label);background:none;cursor:pointer}.ml-herohat-dot.on{background:var(--ml-red);border-color:var(--ml-red)}.ml-thumb-link{display:block;text-decoration:none}.ml-thumb-foot .ml-thumb-name,.ml-thumb-foot .ml-thumb-open{text-decoration:none;color:inherit}.ml-thumb-foot .ml-thumb-name:hover,.ml-thumb-foot .ml-thumb-open{color:var(--ml-red)}.ml-hero-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(72px,9vw,148px);letter-spacing:.1em;line-height:1;margin:0 -.1em 0 0;text-indent:.05em}.ml-hero-lede{font-family:"Instrument Serif",serif;font-size:clamp(22px,2.2vw,30px);line-height:1.3;color:var(--ml-muted);margin:0;max-width:640px;text-wrap:balance}.ml-hero-ctas{display:flex;gap:16px;align-items:center;margin-top:8px;flex-wrap:wrap;justify-content:center}.ml-landing-body{max-width:1360px;margin:0 auto;padding:0 48px 72px;display:flex;flex-direction:column;gap:64px}.ml-sections{border:1px solid var(--ml-line);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));background:var(--ml-paper)}.ml-section-card{padding:34px 36px 30px;border-right:1px solid var(--ml-line);text-decoration:none;color:var(--ml-ink);display:flex;flex-direction:column;gap:10px}.ml-section-card:last-child{border-right:none}.ml-section-card:hover{background:var(--ml-paper-2)}.ml-nr{font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700;color:var(--ml-red);letter-spacing:.14em}.ml-section-title{font-family:"Instrument Serif",serif;font-size:30px}.ml-section-desc{font-size:14px;line-height:1.55;color:var(--ml-muted)}.ml-section-cta{font-size:13px;font-weight:800;color:var(--ml-red);margin-top:4px}.ml-block{display:flex;flex-direction:column;gap:18px}.ml-block-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.ml-block-label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:800;color:var(--ml-label)}.ml-block-note{font-size:12px;color:var(--ml-faint)}.ml-block-link{font-size:12.5px;font-weight:800;color:var(--ml-red);text-decoration:none}.ml-shapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.ml-shape{border:1.5px solid var(--ml-line);background:var(--ml-paper);border-radius:8px;padding:16px 10px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--ml-muted);text-decoration:none;min-height:88px;justify-content:center}.ml-shape.active:hover{border-color:var(--ml-red);color:var(--ml-ink)}.ml-shape.soon{opacity:.72;cursor:default}.ml-soon{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ml-label);font-weight:800}.ml-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.ml-thumb-card{background:var(--ml-paper);border:1px solid var(--ml-line);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--ml-ink);display:flex;flex-direction:column}.ml-thumb-card:hover{border-color:var(--ml-red)}.hatmock{width:100%;height:auto;display:block;background:linear-gradient(180deg,#f5f0e2,#efe8d6)}.ml-hat3d{position:relative;width:100%;aspect-ratio:400 / 340;background:#c6c2ba;pointer-events:none}.ml-hat3d-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;background:#c6c2ba}.ml-hat3d:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(120% 100% at 32% 22%,#ffffff38,#fff0 55%),radial-gradient(100% 88% at 50% 58%,#0000 45%,#26242142)}.ml-hat3d .scene-root,.ml-hat3d .scene-preview,.ml-hat3d .scene-card{position:absolute;top:0;right:0;bottom:0;left:0}.ml-coll-mock .ml-hat3d,.ml-coll-row .ml-hat3d{aspect-ratio:800 / 640;max-height:min(520px,58vh)}.ml-thumb-foot{display:flex;justify-content:space-between;align-items:baseline;padding:12px 16px 14px;border-top:1px solid var(--ml-line-soft)}.ml-thumb-name{font-family:"Instrument Serif",serif;font-size:21px}.ml-thumb-open{font-size:11.5px;font-weight:800;color:var(--ml-red)}.ml-page{max-width:1500px;margin:0 auto;width:100%;box-sizing:border-box;padding:56px 48px 80px}.ml-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}.ml-page-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(42px,4.5vw,60px);line-height:1.04;margin:10px 0 0}.ml-page-title em{color:var(--ml-muted);font-style:italic}.ml-page-lede{font-size:14px;line-height:1.6;color:var(--ml-faint);margin:0;max-width:380px;text-wrap:pretty}.ml-resume{margin-top:30px;padding:16px 18px;border:1.5px solid var(--ml-line);border-left:4px solid var(--ml-red);border-radius:8px;background:var(--ml-paper)}.ml-resume-title{margin:0 0 12px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ml-red)}.ml-resume-row{display:flex;gap:10px;flex-wrap:wrap}.ml-resume-card{display:flex;flex-direction:column;gap:2px;min-width:190px;padding:11px 14px;border:1px solid var(--ml-line);border-radius:6px;background:var(--ml-paper-2);text-decoration:none;transition:border-color .14s,transform .14s}.ml-resume-card:hover{border-color:var(--ml-red);transform:translateY(-1px)}.ml-resume-name{font-size:13.5px;font-weight:800;letter-spacing:.03em;color:var(--ml-ink)}.ml-resume-place{font-size:12.5px;font-weight:700;color:var(--ml-red)}.ml-resume-ago{font-size:11px;font-weight:700;color:var(--ml-faint)}.ml-btn.primary.bookmarked{background:var(--ml-ink);box-shadow:0 14px 26px -12px #1a1a1780}.ml-btn.primary.bookmarked:hover{background:var(--ml-red)}.ml-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px;border-top:1px solid var(--ml-line);border-bottom:1px solid var(--ml-line);padding:12px 0}.ml-filter{border:1.5px solid var(--ml-line);background:var(--ml-paper);color:var(--ml-ink);border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:800;letter-spacing:.03em;cursor:pointer;font-family:inherit}.ml-filter.on{background:var(--ml-ink);border-color:var(--ml-ink);color:var(--ml-paper)}.ml-group{margin-top:36px}.ml-group-title{font-family:"Instrument Serif",serif;font-weight:400;font-size:28px;margin:0 0 18px}.ml-group-note{margin:-12px 0 18px;max-width:60ch;font-size:13.5px;line-height:1.55;color:var(--ml-muted)}.ml-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:22px}.ml-card{background:var(--ml-paper);border:1px solid var(--ml-line);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.ml-card-mock{position:relative}.ml-tag{position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:4px;background:var(--ml-red);color:var(--ml-paper)}.ml-card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}.ml-card-titlerow{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.ml-card-name{font-family:"Instrument Serif",serif;font-size:28px}.ml-card-diff{font-size:12px;color:var(--ml-red);letter-spacing:.08em}.ml-card-desc{font-size:13.5px;line-height:1.55;color:var(--ml-muted)}.ml-chips{display:flex;gap:12px;flex-wrap:wrap}.ml-chip{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--ml-muted)}.ml-chip-dot{width:15px;height:15px;border-radius:50%;border:1px solid rgba(26,26,23,.2);display:inline-block}.ml-card-meta{display:flex;gap:14px;font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--ml-faint);border-top:1px solid var(--ml-line-soft);padding-top:10px;margin-top:2px;flex-wrap:wrap}.ml-card-actions{display:flex;gap:10px;margin-top:auto;padding-top:8px;flex-wrap:wrap}.ml-card-actions .ml-btn{flex:1;min-width:120px}.ml-coll-hero{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(280px,1fr);gap:48px;align-items:center}.ml-coll-copy{display:flex;flex-direction:column;gap:18px}.ml-coll-copy h1{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(44px,4.8vw,64px);line-height:1.04;margin:0}.ml-coll-copy p{font-size:16px;line-height:1.65;color:var(--ml-muted);margin:0;max-width:54ch;text-wrap:pretty}.ml-coll-note{font-size:13px!important;color:var(--ml-faint)!important}.ml-coll-note a{color:var(--ml-ink);font-weight:700}.ml-coll-mock{width:100%;max-width:460px;justify-self:center}.ml-coll-list{margin-top:48px;border:1px solid var(--ml-line);background:var(--ml-paper);display:flex;flex-direction:column}.ml-coll-row{display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr);gap:36px;padding:40px 44px;border-bottom:1px solid var(--ml-line);align-items:center}.ml-coll-row:last-of-type{border-bottom:none}.ml-coll-info{display:flex;flex-direction:column;gap:14px;min-width:0}.ml-coll-info h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:42px;margin:2px 0 0}.ml-coll-info .desc{font-size:13.5px;color:var(--ml-muted);margin:6px 0 0;line-height:1.55;max-width:60ch}.ml-coll-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.ml-coll-foot{display:flex;justify-content:space-between;align-items:center;padding:18px 44px;gap:24px;flex-wrap:wrap;border-top:1px solid var(--ml-line)}.ml-coll-foot span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ml-label)}.ml-coll-foot a{background:none;border:none;color:var(--ml-red);font-size:13px;font-weight:800;cursor:pointer;padding:0;text-decoration:none;font-family:inherit}.ml-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a1a1773;display:flex;align-items:center;justify-content:center;z-index:60;padding:24px}.ml-modal{background:var(--ml-paper);border-radius:10px;width:min(640px,92vw);max-height:84vh;display:flex;flex-direction:column;box-shadow:0 30px 70px -20px #1a1a1780}.ml-modal-head{border-bottom:1px solid #e4dbc6;padding:16px 22px;display:flex;justify-content:space-between;align-items:baseline;gap:16px}.ml-modal-head h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:26px;margin:0}.ml-modal-head button{border:none;background:none;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--ml-faint);font-family:inherit}.ml-modal pre{margin:0;padding:18px 22px;overflow:auto;flex:1;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.65;color:#3a362c;white-space:pre-wrap}@media(max-width:800px){.ml-topnav{padding:0 16px}.ml-navlinks{gap:14px}.ml-navlink{font-size:10.5px;letter-spacing:.1em}.ml-hero{padding:56px 20px 40px}.ml-hero.split{grid-template-columns:1fr;padding:36px 20px 28px;gap:26px}.ml-topnav{padding:0 14px;gap:10px}.ml-del{display:none}.ml-navlinks{gap:16px}.ml-herohat{aspect-ratio:4 / 3;max-height:46vh}.ml-landing-body,.ml-page,.ml-footer{padding-left:20px;padding-right:20px}.ml-section-card{border-right:none;border-bottom:1px solid var(--ml-line)}.ml-coll-hero,.ml-coll-row{grid-template-columns:1fr}.ml-coll-row{padding:28px 20px}.ml-coll-foot{padding:16px 20px}}@media(max-width:430px){.ml-topnav{padding:0 10px;gap:6px}.ml-topnav .ml-wordmark{letter-spacing:.07em}.ml-navlinks{gap:10px}}
