:root{--bg: #f4ead6;--dot: rgba(70, 50, 25, .09);--panel: #fffaf0;--ink: #2b2118;--muted: #7a6a56;--line: #e2d3b8;--line-strong: #2b2118;--accent: #e4553b;--accent-ink: #ffffff;--accent-soft: #fbe1d8;--tag: #f6b72e;--tag-ink: #2b2118;--teal: #2a9d8f;--sky: #4f86d6;--plum: #8e5bb5;--good: #3f9142;--good-soft: #dcefd2;--warn: #e08a1e;--bad: #d9402f;--bad-soft: #fadad3;--cv-aisle: #fbf4e6;--cv-grid: #eadcc2;--cv-edge: #2b2118;--cv-block: #d8c7a7;--cv-text: #ffffff;--wm: rgba(43, 33, 24, .06);--pop: #2b2118;--shadow: 0 14px 34px rgba(60, 40, 15, .22);--r: 14px;--bw: 2.5px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", "WenQuanYi Micro Hei", system-ui, sans-serif;--display: ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--serif: var(--display);--num: ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", "DIN Alternate", "Bahnschrift", "Helvetica Neue", Arial, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1f1914;--dot: rgba(255, 235, 200, .05);--panel: #2b241d;--ink: #f4e8d2;--muted: #b3a38c;--line: #463b30;--line-strong: #f4e8d2;--accent: #f06a4f;--accent-ink: #1f1914;--accent-soft: #48261d;--tag: #f2b636;--tag-ink: #1f1914;--teal: #43b5a6;--sky: #6f9fe6;--plum: #b083d6;--good: #79c26f;--good-soft: #263a22;--warn: #f0a648;--bad: #f27b67;--bad-soft: #4a2520;--cv-aisle: #2a231c;--cv-grid: #3a3127;--cv-edge: #f4e8d2;--cv-block: #4a3f33;--cv-text: #ffffff;--wm: rgba(244, 232, 210, .06);--pop: #000000;--shadow: 0 14px 34px rgba(0, 0, 0, .55);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1.2px,transparent 1.4px);background-size:22px 22px;color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.6;overflow-x:hidden}h1,h2,h3{line-height:1.25;margin:0;font-family:var(--display);font-weight:800;letter-spacing:.01em}h1{font-size:28px}h2{font-size:19px}h3{font-size:16px}p{margin:0}a{color:var(--accent);text-underline-offset:3px;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.hidden{display:none!important}::selection{background:var(--tag);color:var(--tag-ink)}.page{max-width:1280px;margin:0 auto;padding:16px 20px 56px;display:flex;flex-direction:column;gap:22px}.page.narrow{max-width:600px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:4px 0 6px}.brand{font-family:var(--display);font-weight:800;font-size:21px;text-decoration:none;color:var(--ink);min-height:44px;display:inline-flex;align-items:center;gap:10px}.brand:before{content:"";width:30px;height:30px;border-radius:9px;border:var(--bw) solid var(--ink);background:linear-gradient(var(--accent) 0 0) 6px 6px / 7px 7px no-repeat,linear-gradient(var(--tag) 0 0) 15px 6px / 7px 7px no-repeat,linear-gradient(var(--teal) 0 0) 6px 15px / 7px 7px no-repeat,linear-gradient(var(--good) 0 0) 15px 15px / 7px 7px no-repeat,var(--panel);box-shadow:2px 2px 0 var(--pop)}.brand:after{content:"演示版";font-family:var(--font);font-size:11px;font-weight:700;color:var(--tag-ink);background:var(--tag);border:2px solid var(--ink);border-radius:999px;padding:0 8px;transform:rotate(-6deg)}.nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.card{min-width:0;background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--r);padding:16px 18px;box-shadow:4px 4px 0 var(--pop)}.card>h2{margin-bottom:12px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:12px}button,.btn{font:inherit;font-size:14px;font-weight:700;color:var(--ink);background:var(--panel);border:var(--bw) solid var(--ink);border-radius:12px;padding:8px 16px;min-height:44px;min-width:44px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;touch-action:manipulation;box-shadow:0 4px 0 var(--pop);transition:transform .08s,box-shadow .08s,background .15s}button:hover:not(:disabled),.btn:hover{transform:translateY(-1px);box-shadow:0 5px 0 var(--pop);background:var(--bg)}button:active:not(:disabled),.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--pop)}button:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 2px 0 var(--pop)}button.primary,.btn.primary{background:var(--accent);color:var(--accent-ink)}button.primary:hover:not(:disabled),.btn.primary:hover{background:var(--accent);filter:brightness(1.05)}button.danger{color:var(--bad)}button.danger:hover:not(:disabled){background:var(--bad-soft)}button.ghost,.btn.ghost{border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:4px;background:transparent}button.ghost:hover:not(:disabled),.btn.ghost:hover{color:var(--accent);background:transparent;box-shadow:none;transform:none}button[aria-pressed=true]{background:var(--tag);color:var(--tag-ink)}:focus-visible{outline:3px solid var(--sky);outline-offset:3px}input,select{font:inherit;color:var(--ink);background:var(--panel);border:2px solid var(--ink);border-radius:10px;padding:8px 10px;min-height:44px;width:100%;min-width:0}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label.field{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted);min-width:0}.err{color:var(--bad);font-size:14px;min-height:1.6em;font-weight:600}.tag{display:inline-block;font-size:12px;line-height:1.5;padding:1px 8px;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);background:var(--panel);white-space:nowrap;max-width:100%;text-decoration:none;font-weight:600}a.tag:hover{background:var(--tag)}.src{display:block;font-size:11px;line-height:1.45;color:var(--muted);font-weight:500;letter-spacing:0}.src:before{content:"教材";display:inline-block;font-size:10px;font-weight:800;line-height:1.4;padding:0 5px;margin-right:5px;border:1.5px solid var(--accent);border-radius:999px;color:var(--accent);vertical-align:1px}.badge,.stamp{display:inline-flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:13px;padding:2px 10px;border:2.5px solid var(--ink);border-radius:999px;background:var(--panel);white-space:nowrap;box-shadow:2px 2px 0 var(--pop)}.badge.excellent,.badge.good,.badge.steady{background:var(--good);color:#fff}.badge.fair,.badge.survived{background:var(--tag);color:var(--tag-ink)}.badge.poor,.badge.closed{background:var(--bad);color:#fff}.stamp.big{width:86px;height:86px;border-radius:50%;font-size:15px;line-height:1.15;padding:0 10px;transform:rotate(-10deg);border-width:3px;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal;flex:none;margin:6px 6px 6px 0;box-shadow:3px 3px 0 var(--pop),inset 0 0 0 4px #ffffff59}#toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:12px;border:2px solid var(--ink);max-width:calc(100vw - 32px);transition:opacity .2s,transform .2s;z-index:60;font-size:14px;font-weight:700;box-shadow:3px 3px 0 var(--pop)}#toast.show{opacity:1;transform:translate(-50%)}#toast:empty{display:none}#toast.bad{background:var(--bad);color:#fff}#toast.good{background:var(--good);color:#fff}.modal-back{position:fixed;inset:0;background:#1f160e99;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--panel);border:3px solid var(--ink);border-radius:20px;padding:22px 24px;max-width:600px;width:100%;max-height:calc(100vh - 32px);overflow:auto;box-shadow:6px 6px 0 var(--pop),var(--shadow);animation:deal .35s cubic-bezier(.2,1.3,.4,1) backwards}@keyframes deal{0%{transform:translateY(40px) rotate(-4deg) scale(.92);opacity:0}}.modal h2{margin-bottom:6px}.hero{padding:22px 0 6px;display:flex;gap:24px;align-items:center;justify-content:space-between}.hero-text{display:flex;flex-direction:column;gap:12px;min-width:0}.box-art{width:300px;height:auto;flex:none;transform:rotate(-3deg)}@media(max-width:760px){.hero{flex-direction:column;align-items:flex-start}.box-art{width:min(260px,80vw);align-self:center}}.hero h1{font-size:40px;line-height:1.15}.hero h1:after{content:"";display:block;width:120px;height:10px;margin-top:10px;border-radius:999px;border:2px solid var(--ink);background:repeating-linear-gradient(90deg,var(--accent) 0 20px,var(--tag) 20px 40px,var(--teal) 40px 60px,var(--good) 60px 80px)}.hero .muted{font-size:16px;max-width:40em}.entry-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.entry{display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;padding:24px 26px;min-height:170px;border-radius:20px;border-width:3px;box-shadow:6px 6px 0 var(--pop);transform:rotate(.6deg)}.entry:nth-child(2){transform:rotate(-.8deg)}.entry:hover:not(:disabled){transform:rotate(0) translateY(-3px);box-shadow:8px 9px 0 var(--pop)}.entry b{font-family:var(--display);font-size:26px}.entry span{font-size:14px;font-weight:500;opacity:.9}.entry .ic{width:34px;height:34px;padding:5px;border:2px solid currentColor;border-radius:10px}.entry.primary{background:var(--accent);color:#fff}.entry.primary:hover:not(:disabled){background:var(--accent)}.weeks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:8px;position:relative}.week{padding:16px 18px;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--r);box-shadow:4px 4px 0 var(--pop);position:relative}.week+.week:before{content:"";position:absolute;left:-20px;top:38px;width:20px;border-top:3px dashed var(--ink)}@media(max-width:700px){.week+.week:before{display:none}}.week-no{font-family:var(--num);font-size:22px;line-height:1;font-weight:800;color:#fff;width:44px;height:44px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:var(--bw) solid var(--ink);background:var(--accent);box-shadow:2px 2px 0 var(--pop)}.week:nth-child(2) .week-no{background:var(--teal)}.week:nth-child(3) .week-no{background:var(--plum)}.week h3{font-size:20px}.facts{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;color:var(--muted);font-size:14px}.facts>span{background:var(--panel);border:2px solid var(--ink);border-radius:999px;padding:2px 12px}.facts b{font-family:var(--num);font-size:20px;color:var(--ink);margin-right:2px}.facts a{min-height:44px;display:inline-flex;align-items:center}.code-input{font-family:var(--num);font-size:28px;letter-spacing:.18em;text-transform:uppercase;text-align:center;background:var(--panel);border-width:3px;border-radius:14px;box-shadow:inset 0 3px #0000000f}.play-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,1fr);gap:24px;align-items:start}@media(max-width:1080px){.play-grid{grid-template-columns:minmax(0,1fr)}}.play-grid>*{min-width:0}.rounds{display:flex;gap:26px;flex-wrap:wrap;align-items:center;padding:6px 0 2px}.rounds .step{position:relative;padding:6px 14px;font-size:14px;font-weight:700;color:var(--muted);background:var(--panel);border:var(--bw) solid var(--line);border-radius:999px}.rounds .step+.step:before{content:"";position:absolute;left:-26px;top:50%;width:22px;border-top:3px dashed var(--line)}.rounds .step.done{color:var(--ink);border-color:var(--ink);background:var(--good-soft)}.rounds .step.done:after{content:"✓";margin-left:6px;color:var(--good)}.rounds .step.done+.step:before{border-top-color:var(--ink)}.rounds .step.on{color:#fff;background:var(--accent);border-color:var(--ink);box-shadow:0 4px 0 var(--pop);padding-left:34px}.rounds .step.on:after{content:"";position:absolute;left:10px;top:50%;width:16px;height:18px;transform:translateY(-58%);background:radial-gradient(circle at 50% 28%,#fff 0 4.5px,transparent 5px),linear-gradient(#fff 0 0) 50% 100% / 14px 6px no-repeat,linear-gradient(#fff 0 0) 50% 64% / 6px 8px no-repeat}.round-head{display:flex;flex-direction:column;gap:8px}.round-head h2{font-size:26px}.cv-wrap{position:relative}.cv-wrap canvas{width:100%;height:auto;display:block;border:3px solid var(--ink);border-radius:16px;touch-action:none;background:var(--cv-aisle);box-shadow:5px 5px 0 var(--pop)}.cv-tip{position:absolute;pointer-events:none;background:var(--bad);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;border:2px solid var(--ink);transform:translate(-50%,-140%);white-space:nowrap;z-index:2}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:12px;font-weight:600;margin-top:12px}.sw{width:12px;height:12px;display:inline-block;margin-right:5px;vertical-align:-1px;border:1.5px solid var(--ink);border-radius:3px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toolbar button{padding:6px 12px;font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.kpi{background:var(--panel);border:2px solid var(--ink);border-radius:12px;padding:10px 12px;min-width:0;display:flex;flex-direction:column;gap:1px}.kpi .k{color:var(--muted);font-size:13px;font-weight:700}.kpi b{font-family:var(--num);font-size:26px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}.kpi .d{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.kpi .d.up{color:var(--good)}.kpi .d.down{color:var(--bad)}.kpi .src{margin-top:4px}.heroes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi.hero{border-width:3px;border-radius:16px;padding:12px 14px 12px 16px;box-shadow:4px 4px 0 var(--pop);background:var(--tag);color:var(--tag-ink);position:relative;overflow:hidden}.kpi.hero .k,.kpi.hero .src,.kpi.hero .d{color:inherit;opacity:.9}.kpi.hero{text-align:left;align-items:flex-start}.kpi.hero b{font-size:clamp(20px,1.7vw,27px);white-space:nowrap;max-width:100%}.kpi.hero.neg{background:var(--bad);color:#fff}.kpi.hero.pos{background:var(--good);color:#fff}.chart{width:100%;height:220px}.charts2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.chart-box{min-width:0;background:var(--panel);border:2px solid var(--ink);border-radius:14px;padding:12px 12px 4px}.chart-box .k{font-family:var(--display);font-weight:800;font-size:15px;display:flex;flex-direction:column;gap:0}ul.diag{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:10px;counter-reset:d}ul.diag li{padding:10px 12px 10px 48px;background:var(--panel);border:2px solid var(--ink);border-left-width:8px;border-radius:12px;position:relative;counter-increment:d;box-shadow:3px 3px 0 var(--pop)}ul.diag li:before{content:counter(d);position:absolute;left:10px;top:10px;width:26px;height:26px;font-family:var(--num);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink);background:var(--bg);color:var(--ink);border-radius:50%}ul.diag li.warn{border-left-color:var(--warn)}ul.diag li.warn:before{background:var(--tag)}ul.diag li.bad{border-left-color:var(--bad)}ul.diag li.bad:before{background:var(--bad);color:#fff}.empty{color:var(--muted);font-size:14px;padding:18px 0;text-align:center;font-weight:700}.opt{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--ink);border-radius:12px;padding:12px;cursor:pointer;min-height:44px;background:var(--panel);margin-bottom:8px;transition:transform .1s}.opt:hover{transform:translateY(-1px)}.opt input{width:22px;height:22px;min-height:22px;margin-top:2px;flex:none;accent-color:var(--accent)}.opt.on{background:var(--tag);color:var(--tag-ink);box-shadow:3px 3px 0 var(--pop)}.opt b{font-family:var(--display);font-size:16px}.result-head{display:flex;justify-content:space-between;align-items:center;gap:12px}details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--accent);font-size:14px;font-weight:700}.spacer{flex:1}.brush{padding:6px 10px;font-size:13px}.cat-table td,.cat-table th{padding:6px;font-size:13px}.cat-table td:first-child{white-space:nowrap}tr.on td{background:var(--tag);color:var(--tag-ink);font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}.admin-filter select{width:auto}.admin-filter input{flex:1;min-width:160px}.event-stage{position:relative;overflow:hidden;background:var(--bg);border:3px solid var(--ink);border-radius:16px}.event-stage canvas,.event-stage svg{display:block;width:100%;height:auto}.ic{flex:none;vertical-align:-3px}.dice-roll{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:220px;padding:18px}.dice-roll svg{width:96px;height:96px;animation:dice-tumble 1.1s cubic-bezier(.3,.7,.4,1) both}.dice-roll p{font-family:var(--display);font-weight:800;font-size:18px}@keyframes dice-tumble{0%{transform:translate(-140px,-40px) rotate(-260deg) scale(.7)}60%{transform:translate(14px,6px) rotate(20deg) scale(1.05)}80%{transform:translate(-4px) rotate(-6deg)}to{transform:none}}.flip-in{animation:flip-in .55s cubic-bezier(.2,1.2,.4,1) both;transform-origin:50% 50%}@keyframes flip-in{0%{transform:perspective(900px) rotateY(90deg);opacity:.2}}.ev .ev-truck{animation:ev-drive 1.8s cubic-bezier(.2,.7,.3,1) backwards}@keyframes ev-drive{0%{transform:translate(-300px)}}.ev .ev-pop{transform-box:fill-box;transform-origin:center;animation:ev-pop .45s cubic-bezier(.3,1.6,.5,1) backwards}@keyframes ev-pop{0%{transform:scale(0);opacity:0}}.ev .ev-stock{transform-box:fill-box;transform-origin:bottom;transform:scaleY(.12);animation:ev-deplete 1.6s ease-in backwards}@keyframes ev-deplete{0%{transform:scaleY(1)}}.ev .ev-rise{transform-box:fill-box;transform-origin:bottom;animation:ev-rise 2.6s .4s ease-in backwards}@keyframes ev-rise{0%{transform:scaleY(.15)}}.ev .ev-blink{animation:ev-blink .7s 1s steps(2,jump-none) infinite}@keyframes ev-blink{50%{opacity:.15}}.ev .ev-drip{animation:ev-drip 1.6s ease-in infinite}@keyframes ev-drip{0%{transform:translateY(-30px);opacity:0}30%{opacity:1}to{transform:translateY(40px);opacity:0}}.ev .ev-raise{animation:ev-raise 1s .3s ease-out backwards}@keyframes ev-raise{0%{transform:translateY(40px);opacity:0}}.ev .ev-walk{animation:ev-walk 1.6s ease-in-out backwards}@keyframes ev-walk{0%{transform:translate(var(--dx))}}.ev .ev-draw{stroke-dasharray:100;animation:ev-draw 3.6s .6s linear backwards}.ev path.ev-draw[stroke-dasharray="4 4"]{stroke-dasharray:4 4;animation:none}@keyframes ev-draw{0%{stroke-dashoffset:100}}@media(prefers-reduced-motion:reduce){.ev *,.dice-roll svg,.flip-in,.modal{animation:none!important}}.notice{border:3px solid var(--ink);border-radius:16px;padding:12px 16px;background:var(--bad);color:#fff;box-shadow:4px 4px 0 var(--pop)}.notice .when{font-size:12px;font-weight:800;letter-spacing:.08em;opacity:.9}.notice h3{font-size:24px;margin:2px 0 4px}.outcome{padding:14px 16px;background:var(--panel);border:2.5px solid var(--ink);border-radius:14px;display:flex;flex-direction:column;gap:6px}.outcome .row b{font-family:var(--num);font-size:22px}.tour{min-height:100svh;display:flex;flex-direction:column}.tour-progress{display:flex;gap:6px;padding:12px 16px 0}.tour-progress i{flex:1;height:8px;background:var(--panel);border:2px solid var(--ink);border-radius:999px;overflow:hidden;position:relative}.tour-progress i b{position:absolute;inset:0;width:0;background:var(--accent)}.tour-progress i.done b{width:100%}.tour-body{flex:1;padding:16px;display:flex;flex-direction:column;gap:14px;max-width:640px;width:100%;margin:0 auto}.tour-body>h1{font-size:30px}.tour-nav{position:sticky;bottom:0;background:var(--bg);border-top:3px solid var(--ink);display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));max-width:640px;width:100%;margin:0 auto}.compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.compare>b{font-family:var(--display);padding:4px 0}.compare .kpi b{font-size:20px}.reason{display:flex;flex-direction:column;gap:6px;background:var(--panel);border:2px solid var(--ink);border-left-width:8px;border-left-color:var(--bad);border-radius:12px;padding:10px 14px}.kchips{display:flex;gap:6px;flex-wrap:wrap}.kmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}.kcomp{display:flex;flex-direction:column;gap:0;background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--r);padding:14px 16px;box-shadow:4px 4px 0 var(--pop)}.kcomp>h2{margin-bottom:6px}.kpoint{border-bottom:1.5px dashed var(--line);padding:9px 2px;display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--muted);min-height:44px}.kpoint:last-child{border-bottom:0}.kpoint.on{color:var(--ink)}.kpoint.on .kname>span:first-child{font-weight:800;background:linear-gradient(transparent 55%,var(--tag) 55%);align-self:flex-start}.kpoint .mod{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}.kpoint .kname{display:flex;flex-direction:column;gap:2px;min-width:0}.kpoint .kwhere{font-size:11px;font-weight:400;color:var(--muted);line-height:1.45}.kpoint.flash{animation:flash 1.2s ease 2}@keyframes flash{50%{background:var(--tag)}}.legend-on{align-self:center;background:linear-gradient(transparent 55%,var(--tag) 55%);font-weight:800}.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums;font-size:14px}th,td{padding:7px 8px;text-align:left;border-bottom:1.5px dashed var(--line);vertical-align:top}thead th{border-bottom:2.5px solid var(--ink)}th{color:var(--muted);font-weight:800;font-size:13px;white-space:nowrap}td.num,th.num{text-align:right;white-space:nowrap;font-family:var(--num);font-weight:700}.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em}.report-paper{position:relative;background:#fffaf0;color:#2b2118;padding:30px 32px;border:3px solid #2b2118;border-radius:18px;box-shadow:6px 6px #2b2118;overflow:hidden;max-width:840px;width:100%;margin:0 auto}.report-paper .muted,.report-paper .src{color:#7a6a56}.report-paper th,.report-paper td{border-color:#e2d3b8}.report-paper thead th{border-bottom-color:#2b2118}.report-paper .tag{color:#2b2118;border-color:#2b2118;background:#fffaf0}.report-paper h1{font-size:24px}.report-paper section{margin-top:16px;position:relative;z-index:1}.report-paper section h2{font-size:16px;margin-bottom:6px;display:inline-block;background:#f6b72e;color:#2b2118;border:2px solid #2b2118;border-radius:999px;padding:1px 12px}.report-paper ul.diag li{box-shadow:none;border-width:1.5px;border-left-width:6px;padding:6px 10px 6px 40px}.report-paper ul.diag li:before{top:6px;width:22px;height:22px;font-size:11px}.report-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;position:relative;z-index:1}.wm-layer{position:absolute;inset:0;pointer-events:none;z-index:0;background-repeat:repeat;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report-two{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;align-items:start}.report-paper .cat-table td,.report-paper .cat-table th{padding:4px;font-size:12px}.report-two canvas{width:100%;height:auto;display:block;border-radius:10px}@media(max-width:700px){.report-two{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.report-paper{padding:18px 16px}.page{padding:12px 16px 44px}.hero h1{font-size:30px}.rounds{gap:18px}.rounds .step+.step:before{left:-18px;width:14px}}@media print{@page{size:A4;margin:12mm}body{background:#fff!important;color:#000;font-size:12px}.no-print,#toast,.topbar{display:none!important}.page{padding:0;max-width:none}.report-paper{box-shadow:none;padding:0;max-width:none;overflow:visible;border:0;border-radius:0;background:#fff}.report-paper table{font-size:11px}.report-paper th,.report-paper td{padding:3px 5px}.report-paper section{margin-top:8px;break-inside:avoid}.wm-layer{position:fixed}.report-paper h1{font-size:18px}.report-paper section h2{font-size:12px;padding:0 8px}.report-paper ul.diag li{padding:2px 6px 2px 28px;font-size:11px;border-left-width:4px;border-radius:6px}.report-paper ul.diag li:before{top:2px;left:4px;width:16px;height:16px;font-size:10px;border-width:1.5px}.report-paper .cat-table td,.report-paper .cat-table th{padding:2px 4px;font-size:10px}.report-two{grid-template-columns:.8fr 1.2fr}}.lab-week{margin:32px 0}.sku-line{display:grid;grid-template-columns:1.5fr 1.2fr 1fr 1fr;gap:12px;align-items:center;font-size:13px}.sku-record{border-bottom:1px solid var(--line);padding:10px 0}.sku-record summary{min-height:44px;cursor:pointer}.sku-heading{padding:12px 0;border-bottom:2px solid var(--ink);font-weight:700}.sku-line>*{min-width:0;overflow-wrap:anywhere}.lab-archive p{padding:10px 0;border-bottom:1px solid var(--line)}@media(prefers-reduced-motion:reduce){.lab-workbench *{animation:none!important;transition:none!important}}@media print{.lab-workbench{display:block}.lab-fields,.lab-bands button,#lab-apply,#lab-continue{display:none}.lab-week{break-before:page}.sku-record{break-inside:avoid}}#sku-print{display:none}.lab-print-cards{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}@media print{body.print-sku>*{display:none!important}body.print-sku>#sku-print{display:block!important;margin:0;break-after:avoid}}@media print{.report-paper h2{font-size:13px;margin:6px 0 4px}.report-paper p{margin:4px 0;line-height:1.35}.report-head{margin-bottom:6px}.report-paper .kchips{gap:3px}.report-paper .tag{font-size:9px;padding:1px 4px}.lab-report{margin-top:4px!important}}@media print{.report-paper section h2{font-size:13px;margin-bottom:3px;padding-bottom:2px}.report-paper .report-two{gap:10px}.report-paper ul.diag li{font-size:10px;line-height:1.3}.report-paper .small{font-size:10px}.report-paper section{margin-top:5px}}.lab-report summary,#sku-week>summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.lab-heading{display:flex;gap:20px;align-items:flex-start;margin:28px 0 18px}.lab-heading h1{margin:0}.lab-heading .stamp{font:700 30px var(--serif);padding:15px;flex:none}.lab-steps{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;padding:0;margin:10px 0 0;font-size:13px}.lab-steps li{display:flex;gap:6px;align-items:center}.lab-steps b{display:inline-grid;place-items:center;width:20px;height:20px;border:1.5px solid var(--ink);border-radius:50%;font-size:11px}.lab-needs{display:flex;gap:12px;flex-wrap:wrap}.lab-ticket{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:10px 18px 10px 22px;text-align:left;border:1.5px dashed var(--line-strong);background:var(--panel);position:relative}.lab-ticket:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;border-left:2px dotted var(--line-strong)}.lab-ticket[aria-pressed=true]{background:var(--panel);color:var(--ink);border-style:solid;border-color:var(--accent);box-shadow:3px 3px 0 var(--accent)}.lab-ticket[aria-pressed=true] b{color:var(--accent)}.lab-structure{padding:16px 0;border-bottom:2px solid var(--ink)}.lab-workbench{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:32px}.lab-designer{position:relative;padding-right:24px;border-right:1px solid var(--line);min-width:0}.lab-shelf{min-width:0}.lab-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lab-fields select{width:100%;min-height:44px;min-width:0}.lab-outgoing{display:flex;gap:6px;align-items:center;margin:14px 0 0;font-size:13px;color:var(--accent)}.lab-sku-card{position:relative;margin-top:16px;padding:18px 18px 14px;background:var(--panel);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--line-strong)}.lab-sku-card:empty{display:none}.lab-sku-card>*:not(.wm-layer){position:relative;z-index:1}.lab-card-head{display:flex;gap:10px;align-items:flex-start}.lab-card-head h3{margin:0;font-family:var(--serif)}.lab-card-head p{margin:2px 0 0}.lab-price{font-size:42px;line-height:1.1;margin:10px 0 6px}.lab-price small{font-size:15px}.lab-sku-card.bad .lab-price{color:var(--accent)}.lab-sku-card.warn .lab-price{color:var(--warn)}.lab-sku-card.good .lab-price{color:var(--good)}.lab-margin-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.lab-margin{width:100%;height:10px;display:block}.lab-sku-card h4{font-size:12px;margin:12px 0 4px;color:var(--muted);letter-spacing:.1em}.lab-rules{list-style:none;margin:0;padding:0;font-size:13px}.lab-rules li{display:flex;gap:8px;padding:4px 0;border-bottom:1px dotted var(--line)}.lab-rules .rule-id{flex:none;font-size:11px;padding:1px 5px;border:1px solid var(--ink);height:fit-content}.lab-rules.bad li{color:var(--accent)}.lab-rules.bad .rule-id{border-color:var(--accent)}.wm-line{margin:10px 0 0}.lab-ninebox{margin:20px 0}.lab-box-svg{width:100%;max-width:340px;height:auto;display:block;margin:8px 0}#lab-apply{width:100%;justify-content:center}.lab-shelf-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;margin:10px 0;background:var(--panel);border:1px solid var(--line)}.lab-shelf-tools>span{flex:1 1 200px}.lab-bands{border-top:2px solid var(--ink)}.lab-row{display:grid;grid-template-columns:112px repeat(3,minmax(0,1fr));grid-template-areas:"name ruler ruler ruler" "name c0 c1 c2";column-gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.lab-row-head{grid-template-areas:none;font-size:12px;color:var(--muted);padding:6px 0}.lab-row-name{grid-area:name;display:flex;flex-direction:column;gap:2px;font-size:13px}.lab-ruler-host{grid-area:ruler}.lab-ruler{width:100%;height:auto;max-height:64px;display:block}.lab-row>.lab-cell[data-band="0"]{grid-area:c0}.lab-row>.lab-cell[data-band="1"]{grid-area:c1}.lab-row>.lab-cell[data-band="2"]{grid-area:c2}.lab-cell{min-width:0;min-height:48px;display:flex;flex-direction:column;gap:4px}.lab-cell.empty{border:1px dashed var(--line)}.lab-chip{display:flex;justify-content:space-between;gap:6px;align-items:center;width:100%;min-height:44px;padding:6px 8px;font-size:12px;text-align:left;background:var(--bg);border:1px solid var(--line);overflow-wrap:anywhere}.lab-chip .num{font-size:15px;flex:none}.lab-chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.lab-chip[draggable=true]{cursor:grab}@media(max-width:760px){.lab-workbench{grid-template-columns:1fr}.lab-designer{border-right:0;padding-right:0}.lab-heading{gap:12px}.lab-heading .stamp{font-size:24px;padding:8px}.lab-ticket{width:100%}.lab-row{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"name name name" "ruler ruler ruler" "c0 c1 c2"}.lab-row-head{display:none}.lab-row-name{flex-direction:row;gap:8px;align-items:center}.sku-line{grid-template-columns:1fr 1fr}.sku-heading{display:none}}.lab-story{display:grid;grid-template-columns:minmax(180px,.8fr) 2fr;gap:4px 24px;align-items:baseline;padding:14px 18px;margin:0 0 18px;border-left:4px solid var(--accent);background:var(--panel)}.lab-story h2{margin:0;font-size:16px}.lab-story ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:14px;font-weight:700}.lab-story p{grid-column:2;margin:2px 0 0}.lab-src{font-size:11px;color:var(--muted);margin:4px 0 0}.lab-ticket{max-width:380px;gap:4px}.lab-ticket-top{display:flex;gap:8px;align-items:center;color:var(--muted)}.lab-ticket .chip{padding:1px 6px;border:1px solid var(--ink);font-size:11px;color:var(--ink)}.lab-insight{font-family:var(--serif);color:var(--ink)}.lab-gaps{margin:18px 0 0}.lab-gaps h2{display:flex;gap:6px;align-items:center;font-size:16px;margin:0 0 8px}.lab-gap{display:flex;gap:10px;align-items:center;justify-content:flex-start;width:100%;text-align:left;min-height:44px;margin-bottom:6px;border:1.5px solid var(--tag);background:var(--panel)}.lab-gap-dot{width:12px;height:12px;flex:none;border-radius:50%;background:var(--tag);box-shadow:0 0 0 0 var(--tag);animation:gap-pulse 1.8s ease-out infinite}@keyframes gap-pulse{0%{box-shadow:0 0 0 0 var(--tag)}70%{box-shadow:0 0 0 10px transparent}to{box-shadow:0 0 0 0 transparent}}.lab-cell.gap{border:2px solid var(--tag);background:color-mix(in srgb,var(--tag) 14%,transparent);animation:gap-glow 2.2s ease-in-out infinite}@keyframes gap-glow{50%{box-shadow:0 0 14px 2px color-mix(in srgb,var(--tag) 70%,transparent)}}.lab-gap-tag{padding:4px 6px;font-weight:700;color:var(--tag-ink);background:var(--tag)}.lab-step{margin:16px 0 0;padding:12px 0 0;border-top:1px dashed var(--line)}.lab-step h3{display:flex;gap:8px;align-items:center;margin:0 0 8px;font-size:14px}.lab-step h3 .num{display:inline-grid;place-items:center;width:22px;height:22px;background:var(--ink);color:var(--bg);font-size:12px}.lab-fields.one{grid-template-columns:1fr;margin-top:8px}.lab-costbar{position:relative;height:12px;margin:10px 0 4px;background:color-mix(in srgb,var(--line) 60%,transparent)}.lab-costbar span{position:absolute;inset:0 auto 0 0;background:var(--good)}.lab-costbar.over span{background:var(--accent)}.lab-costbar i{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--ink)}.lab-plays{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.lab-plays button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:8px 10px;text-align:left;background:var(--bg);border:1px solid var(--line)}.lab-plays button[aria-checked=true]{border:2px solid var(--ink);background:var(--panel);box-shadow:3px 3px 0 var(--accent)}.lab-card-top{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center}.pack-art{width:100%;height:auto;display:block}.pack-art .pack-body{transition:transform .35s cubic-bezier(.3,1.4,.5,1)}.pack-art .pack-pop{transform-box:fill-box;transform-origin:center;animation:ev-pop .45s cubic-bezier(.3,1.6,.5,1) backwards}.lab-card-text h3{margin:0;font-family:var(--serif)}.lab-card-text p{margin:4px 0}.lab-gates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.lab-gate{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.gate-stamp{width:64px;height:64px}.gate-stamp.fail{animation:ev-pop .4s cubic-bezier(.3,1.6,.5,1) backwards}.lab-panel{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.lab-panel li{display:flex;gap:8px;align-items:flex-start}.lab-panel p{margin:2px 0 0}.lab-avatar{width:34px;height:34px;flex:none}.stars{display:block;color:var(--warn);letter-spacing:1px;font-size:13px}.stars i{font-style:normal;color:var(--line)}.lab-chip.new{border-color:var(--accent);border-width:1.5px}.lab-curves{margin-bottom:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px}.lab-curve-card{padding:14px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.lab-curve-card h3{margin:0 0 6px;font-family:var(--serif);font-size:15px}.lab-curve{width:100%;height:auto;display:block}.lab-tombs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.lab-tomb-card{margin:0}.lab-tomb{width:100%;height:auto;display:block}.lab-tomb-card figcaption{display:flex;justify-content:center;margin-top:4px}.proposal-concept{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:center}.proposal .lab-gates{max-width:360px}@media(max-width:760px){.lab-story{grid-template-columns:1fr}.lab-story p{grid-column:1}.lab-card-top{grid-template-columns:110px 1fr}.lab-panel{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.lab-gap-dot,.lab-cell.gap,.pack-art .pack-pop,.gate-stamp.fail,.lab-curve .ev-draw{animation:none!important}.pack-art .pack-body{transition:none}}.lab-curve .ev-draw{stroke-dasharray:100;animation:ev-draw 1.6s linear backwards}#sku-print .pack-art{max-width:180px}#sku-print .lab-curve{max-width:420px}@media print{#sku-print section{break-inside:avoid;margin:6px 0}#sku-print h2{font-size:13px;margin:4px 0}}.lab-source-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.lab-source-list p,.lab-extension{overflow-wrap:anywhere}.tour-body .pack-art{max-width:180px;margin:8px auto}@media print{#sku-print.proposal{font-size:10px;line-height:1.25;padding:9mm}#sku-print.proposal h1{font-size:18px;margin:4px 0}#sku-print.proposal p{margin:3px 0}#sku-print.proposal .proposal-concept{grid-template-columns:110px 1fr}#sku-print.proposal .proposal-concept>div{columns:2}#sku-print.proposal .pack-art{max-width:110px}#sku-print.proposal .gate-stamp{width:44px;height:44px}#sku-print.proposal .lab-curve{max-width:280px}#sku-print.proposal .lab-price{font-size:18px}}.sku-record summary{color:var(--ink)}.lab-survivors p{padding:10px 0;margin:0;border-bottom:1px solid var(--line)}@media print{.report-head .stamp.big{margin-right:14px;width:70px;height:70px;font-size:14px}}@media(min-width:820px){#toast{left:auto;right:24px;transform:translateY(30px);max-width:360px}#toast.show{transform:translateY(0)}}.lab-heading .stamp{border-radius:16px;transform:rotate(-4deg);background:var(--tag);color:var(--tag-ink);border-width:3px;box-shadow:4px 4px 0 var(--pop)}.lab-steps b{background:var(--panel);border-width:2px}.lab-story{border:var(--bw) solid var(--ink);border-left-width:10px;border-left-color:var(--accent);border-radius:var(--r);box-shadow:4px 4px 0 var(--pop)}.lab-ticket{border:var(--bw) solid var(--ink);border-radius:16px;background:var(--panel);box-shadow:4px 4px 0 var(--pop)}.lab-ticket:before{border-left:3px dotted var(--line)}.lab-ticket[aria-pressed=true]{background:var(--tag);color:var(--tag-ink);border-color:var(--ink);box-shadow:5px 5px 0 var(--accent);transform:rotate(-.6deg)}.lab-ticket[aria-pressed=true] b{color:var(--tag-ink)}.lab-ticket .chip{border-radius:999px;background:var(--panel);font-weight:700}.lab-gap{border:var(--bw) solid var(--ink);border-radius:14px;background:var(--panel);box-shadow:3px 3px 0 var(--pop);font-weight:700}.lab-gap-dot{border:2px solid var(--ink)}.lab-gap-tag{border-radius:8px;border:2px solid var(--ink)}.lab-structure{border-bottom:0;font-weight:700}.lab-designer,.lab-shelf{background:var(--panel);border:var(--bw) solid var(--ink);border-radius:18px;padding:16px 18px;box-shadow:5px 5px 0 var(--pop)}.lab-step{border-top:2px dashed var(--line)}.lab-step h3 .num{border-radius:50%;background:var(--accent);color:#fff;border:2px solid var(--ink)}.lab-plays button{border-radius:12px;border:2px solid var(--ink);box-shadow:0 3px 0 var(--pop);background:var(--bg)}.lab-plays button[aria-checked=true]{background:var(--tag);color:var(--tag-ink);border-width:2.5px;box-shadow:0 4px 0 var(--pop)}.lab-plays button[aria-checked=true] .muted{color:var(--tag-ink);opacity:.8}.lab-costbar{height:14px;border:2px solid var(--ink);border-radius:999px;overflow:hidden;background:var(--bg)}.lab-costbar i{width:3px;background:var(--ink)}.lab-sku-card{border:3px solid var(--ink);border-radius:20px;padding:16px 16px 12px;background:var(--panel);box-shadow:6px 6px 0 var(--pop);outline:2px dashed var(--line);outline-offset:-10px}.lab-sku-card.good{background:linear-gradient(var(--good-soft),var(--good-soft)) top / 100% 8px no-repeat,var(--panel)}.lab-sku-card.warn{background:linear-gradient(var(--tag),var(--tag)) top / 100% 8px no-repeat,var(--panel)}.lab-sku-card.bad{background:linear-gradient(var(--bad-soft),var(--bad-soft)) top / 100% 8px no-repeat,var(--panel)}.lab-card-text h3{font-family:var(--display);font-weight:800}.lab-price{font-family:var(--num);font-weight:800}.lab-rules .rule-id{border-radius:999px;border-width:1.5px;font-weight:800}.lab-panel li{background:var(--bg);border:2px solid var(--ink);border-radius:12px;padding:8px}.lab-row{border-bottom:2px dashed var(--line)}.lab-bands{border-top:0}.lab-row-head{border-bottom:2.5px solid var(--ink)}.lab-cell.empty{border:2px dashed var(--line);border-radius:10px}.lab-cell.gap{border-radius:10px;border-width:2.5px;border-color:var(--ink)}.lab-chip{border:2px solid var(--ink);border-radius:10px;background:var(--panel);box-shadow:0 3px 0 var(--pop);font-weight:600}.lab-chip.new{background:var(--tag);color:var(--tag-ink);border-color:var(--ink)}.lab-chip[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--ink)}.lab-shelf-tools{border:2px solid var(--ink);border-radius:12px;background:var(--bg)}.lab-curve-card{border:var(--bw) solid var(--ink);border-radius:16px;background:var(--panel);box-shadow:4px 4px 0 var(--pop)}.lab-tomb-card figcaption button{font-size:13px}.sku-heading{border-bottom-width:2.5px}.sku-record{border-bottom:2px dashed var(--line)}@media(max-width:760px){.lab-designer,.lab-shelf{padding:12px}}
