:root{--ink: #24180f;--ink-soft: #5c4636;--cream: #fff8e8;--paper: #f4e7d0;--cork: #d0924a;--cork-deep: #b87432;--frame: #7a4a28;--human: #ff922b;--ai: #9775fa;--good: #2b8a3e;--bad: #e03131;--gold: #f59f00;--shadow: 0 16px 40px rgba(40, 18, 6, .28);font-family:Noto Sans CJK TC,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh;background:radial-gradient(circle at 0% 0%,rgba(255,210,140,.18),transparent 32%),linear-gradient(180deg,#4e301c,#2a170f)}button,p{font:inherit}#app{width:min(1120px,calc(100% - 20px));margin:16px auto 28px;padding:14px;display:grid;gap:12px;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 28%),var(--paper);border-radius:22px;box-shadow:var(--shadow),inset 0 0 0 3px #fff8e8a6}#top-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:10px 12px;background:var(--ink);color:var(--cream);border-radius:16px}.brand{display:flex;align-items:center;gap:10px;margin-right:auto}.logo{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:#ffe066;color:var(--ink);font-weight:900;letter-spacing:-.04em}.brand-name{font-weight:900;font-size:20px;line-height:1.1}.brand-sub{color:#fff8e89e;font-size:12px;font-weight:700}.demo-flag{border:2px dashed #ffe066;color:#ffe066;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900;letter-spacing:.06em}.sprint-cluster{display:flex;align-items:center;gap:8px}#sprint-label{font-weight:800;font-size:15px}#timer{min-width:76px;text-align:center;font-size:28px;font-weight:900;font-variant-numeric:tabular-nums;background:var(--cream);color:var(--ink);border-radius:12px;padding:0 8px;line-height:1.25}#timer.is-urgent{background:var(--bad);color:#fff;animation:pulse .7s ease-in-out infinite}#meter-delivery{flex:1 1 230px;min-width:200px}.meter-top,.k,.v{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.k{font-size:12px;font-weight:800;letter-spacing:.02em;opacity:.8}#top-bar .k{color:#fff8e8b8}.v{font-weight:900;font-variant-numeric:tabular-nums;font-size:18px}#meter-delivery .v{font-size:16px}.bar{height:14px;margin-top:4px;background:#fff8e847;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #fff8e82e}.bar>span{display:block;height:100%;width:0;background:linear-gradient(90deg,#ffe066,#8ce99a);transition:width .32s ease-out}#meter-delivery.is-met .bar>span{background:#69db7c}#meter-budget,#meter-headcount{min-width:112px;padding:6px 10px;border-radius:12px;background:#fff8e80f;border:1px solid rgba(255,248,232,.14);display:grid;gap:2px}#meter-budget .k,#meter-headcount .k{display:block}#meter-budget.is-low .v,#meter-headcount.is-low .v{color:#ffc9c9}#meter-budget.is-broke .v{color:#ff8787}.bump{animation:bump .18s ease}#board-panel{position:relative;padding:12px;border-radius:18px;border:10px solid var(--frame);background:radial-gradient(circle at 18% 24%,rgba(255,255,255,.16),transparent 26%),radial-gradient(circle at 80% 70%,rgba(90,40,10,.12),transparent 24%),repeating-linear-gradient(0deg,rgba(90,45,15,.05) 0 2px,transparent 2px 6px),repeating-linear-gradient(90deg,rgba(90,45,15,.04) 0 2px,transparent 2px 8px),var(--cork);box-shadow:inset 0 0 0 2px #ffdcaa47,inset 0 0 36px #5028002e}#board-ribbon{margin:0 4px 8px;font-weight:900;color:#fff8e8;text-shadow:0 1px 0 rgba(80,40,10,.45)}#ticket-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.ticket{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;min-height:78px;padding:16px 6px 8px;border-radius:4px 4px 9px 9px;cursor:pointer;color:var(--ink);text-align:center;box-shadow:2px 3px #46230a2e;transform:rotate(var(--rot)) scale(1);transition:transform .14s ease,box-shadow .14s ease,opacity .2s ease;touch-action:manipulation;-webkit-user-select:none;user-select:none}.ticket .tape{position:absolute;top:-7px;left:50%;width:34px;height:12px;transform:translate(-50%) rotate(-3deg);background:#ffffff73;border:1px solid rgba(255,255,255,.55)}.ticket .emoji{display:block;font-size:12px;line-height:1}.ticket .kind{display:block;font-weight:900;font-size:16px;line-height:1.15}.ticket .flavor{display:block;margin-top:2px;font-size:11px;font-weight:700;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket.c-R{background:#ff8787}.ticket.c-Y{background:#ffe066}.ticket.c-B{background:#a5d8ff}.ticket.c-G{background:#b2f2bb}.ticket:hover{transform:rotate(var(--rot)) translateY(-2px) scale(1.02);z-index:1}.ticket.selected,.ticket.selected:hover{z-index:3;transform:rotate(0) scale(1.05);box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ink),0 12px 16px #00000047;transition:none}.ticket.clearing,.ticket.selected.clearing{transform:scale(.45) rotate(8deg);opacity:0;transition:transform .2s ease,opacity .2s ease}.ticket.pop{animation:pop .2s ease}.ticket:focus-visible{outline:3px solid var(--ink);outline-offset:2px}#legend,#selection-readout,#coach,#footer-hint,#ai-risk,.panel-title{margin:8px 2px 0}#legend{color:#fff8e8;font-weight:800;font-size:13px;text-shadow:0 1px 0 rgba(80,40,10,.4)}#selection-readout{margin-top:8px;background:var(--cream);border-radius:10px;padding:8px 10px;font-weight:800;min-height:38px;display:flex;flex-wrap:wrap;gap:2px 14px;align-items:baseline}#selection-readout .sel-est{font-weight:700;color:var(--ink-soft)}#coach:empty{display:none}#coach{background:#fff3bf;border:2px dashed #e67700;border-radius:10px;padding:8px 10px;font-weight:800}#result-banner{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:4;pointer-events:none;font-size:clamp(28px,5vw,48px);font-weight:900;letter-spacing:-.03em;text-shadow:0 2px 0 #fff,0 8px 18px rgba(0,0,0,.2)}#result-banner:empty{display:none}#result-banner.hit{color:var(--good)}#result-banner.miss{color:var(--bad)}.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}#assign-panel,#side-feed{background:#fff8e8b8;border:2px solid rgba(60,30,10,.1);border-radius:16px;padding:12px}.panel-title{margin-top:0;font-weight:900;font-size:13px;letter-spacing:.04em;color:var(--ink-soft)}#assign-human,#assign-ai,.ghost-btn,#end-sprint,.cta{width:100%;border-radius:14px;border:3px solid var(--ink);cursor:pointer;touch-action:manipulation}#assign-human,#assign-ai,.ghost-btn{min-height:58px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:8px 12px;margin-top:8px;text-align:left}#assign-human{background:var(--human)}#assign-ai{background:var(--ai);color:#fff}.ghost-btn{margin-bottom:0;background:repeating-linear-gradient(-45deg,#9775fa29,#9775fa29 8px,#9775fa0d 8px,#9775fa0d 16px);color:#24180f8c;border-style:dashed}.bt{font-weight:900;font-size:18px}.bs{font-weight:700;opacity:.85}#assign-human:disabled,#assign-ai:disabled{filter:grayscale(.35);opacity:.55;cursor:not-allowed}#ai-risk{font-weight:800;min-height:1.3em}#end-sprint{margin-top:8px;min-height:44px;background:transparent;font-weight:800}#end-sprint:disabled{opacity:.45;cursor:not-allowed}button:active:not(:disabled){transform:translateY(2px)}#assign-human.is-down:not(:disabled),#assign-ai.is-down:not(:disabled),#end-sprint.is-down:not(:disabled){transform:translateY(3px);box-shadow:inset 0 4px #24180f47}button:focus-visible{outline:3px solid #ffe066;outline-offset:2px}.ticket:active:not(.selected){transform:rotate(var(--rot)) scale(.94)}.board-flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background:#fff8e88c;animation:flashout .28s ease forwards}.confetti{position:absolute;z-index:6;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:1px;pointer-events:none;animation:bit .38s ease-out forwards}#headcount-lamps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-height:86px}.seat{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 2px 5px;background:#fff8e8;border:2px solid rgba(60,30,10,.18);border-radius:10px;font-weight:800}.seat .lamp{width:12px;height:12px;border-radius:50%;background:#ffd43b;box-shadow:0 0 8px #ffd43b}.seat .sil{display:flex;flex-direction:column;align-items:center;height:28px}.seat .hd{width:10px;height:10px;border-radius:50%;background:#3d2914}.seat .bd{width:16px;height:12px;margin-top:1px;border-radius:8px 8px 3px 3px;background:#3d2914}.seat .who{display:flex;flex-direction:column;align-items:center;max-width:100%;line-height:1.1}.seat .who b{font-size:11px}.seat .who small{font-size:10px;font-weight:700;color:var(--ink-soft)}.seat.off{background:#efe6d6;color:#9a8b7a}.seat.off .lamp{background:#c8bfb4;box-shadow:none}.seat.off .sil{opacity:.35}.seat.just-off{animation:seatout .42s ease}#toast-log{display:flex;flex-direction:column;gap:6px;min-height:108px;margin-top:10px}.toast{margin:0;background:#fff;border-radius:8px;padding:7px 8px;border-left:4px solid var(--good);font-weight:700;font-size:13.5px;line-height:1.35}.toast:first-child{animation:slide .2s ease}.toast.warn{border-color:#e8590c;background:#fff4e6}.toast.bad{border-color:var(--bad);background:#fff5f5}.toast.mute{border-color:#ced4da;color:var(--ink-soft);font-weight:700}#epic-tease{margin-top:10px;background:#fff;border-radius:12px;padding:8px 10px}#epic-tease .epic-k{font-weight:900}#epic-tease .bar{background:#f1f3f5}#epic-tease .bar>span{background:linear-gradient(90deg,#ffd43b,#f59f00)}#epic-tease p{margin:6px 0 0;font-weight:800}#epic-tease.is-primed{background:#fff3bf;box-shadow:inset 0 0 0 2px var(--gold);animation:goldflash 1.1s ease-in-out infinite}#footer-hint{text-align:center;font-weight:800;color:var(--ink-soft);margin:0}#modal-title,#modal-ending{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:18px;background:#1c0e069e}.sheet{position:relative;width:min(540px,100%);background:var(--cream);color:var(--ink);border:4px solid var(--ink);border-radius:18px;padding:26px 22px 20px;box-shadow:0 24px 70px #00000061}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet h2{margin:0 0 8px;font-size:clamp(26px,4vw,34px);line-height:1.2}.sheet p{margin:0 0 8px;font-size:17px;font-weight:700;line-height:1.45}.eyebrow{font-size:12px!important;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.lead{font-size:18px!important}.how{background:#fff3bf;border-radius:10px;padding:8px 10px}.quote{font-style:italic}.nums{font-variant-numeric:tabular-nums;background:#fff;border-radius:10px;padding:8px 10px}.tape-row{display:flex;justify-content:space-between;margin:-18px 24px 8px}.tape-row i{width:64px;height:16px;background:#ffffffb3;border:1px solid rgba(255,255,255,.9);transform:rotate(-2deg)}.cta{margin-top:8px;min-height:52px;background:#ffe066;font-weight:900;font-size:18px}.stamp{flex:none;margin-top:4px;border:4px solid var(--bad);color:var(--bad);font-weight:900;letter-spacing:.08em;padding:2px 8px;border-radius:8px;transform:rotate(-8deg)}.ending-win .stamp{border-color:var(--good);color:var(--good)}.ending-log{margin:8px 0 0;padding-left:18px}.ending-log li{margin:3px 0;font-weight:700}.sheet:has(#ending-theater:not([hidden])){background:#140c08;color:#fff8e8;border-color:#3a2a1c}.theater{position:relative;min-height:210px;overflow:hidden;border-radius:12px;background:radial-gradient(ellipse at 50% 42%,rgba(90,50,18,.55),transparent 58%),#1c1008}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 28%,rgba(0,0,0,.72) 78%);pointer-events:none}.stage-lamps{display:flex;justify-content:center;gap:16px;padding:26px 12px 0}.stage-lamp{width:16px;height:16px;border-radius:50%;background:#ffd43b;box-shadow:0 0 12px #ffd43b,0 26px 18px #ffd43b47;transition:background .16s linear,box-shadow .16s linear,opacity .16s linear}.stage-lamp.out{background:#3a322c;box-shadow:none;opacity:.4}.walker{position:absolute;left:50%;bottom:58px;width:28px;transform:translate(-50%);transition:transform .88s ease-in,opacity .88s ease-in}.walker .hd{display:block;width:14px;height:14px;margin:0 auto;border-radius:50%;background:#f8f1e3}.walker .bd{display:block;width:22px;height:26px;margin:2px auto 0;border-radius:10px 10px 4px 4px;background:#f8f1e3}.walker.walk-off{transform:translate(150px);opacity:0}.ceo-line{position:relative;z-index:1;min-height:2.8em;margin:16px 14px 14px;font-size:18px;font-weight:800;text-align:center}.caret{display:inline-block;width:2px;height:1em;margin-left:2px;background:#fff8e8;vertical-align:text-bottom;animation:blink .7s steps(1) infinite}.ceo-line.typed .caret{display:none}@keyframes bump{50%{transform:scale(1.08)}}@keyframes pop{0%{transform:rotate(var(--rot)) scale(.7);opacity:0}to{transform:rotate(var(--rot)) scale(1);opacity:1}}@keyframes slide{0%{transform:translate(14px);opacity:0}to{transform:none;opacity:1}}@keyframes pulse{50%{transform:scale(1.05)}}@keyframes goldflash{50%{box-shadow:inset 0 0 0 2px #fff3bf,0 0 18px #f59f00d9}}@keyframes flashout{0%{opacity:1}to{opacity:0}}@keyframes bit{to{transform:translate(var(--dx),var(--dy)) scale(.4);opacity:0}}@keyframes seatout{0%{background:#fff3bf}40%{transform:translateY(2px) scale(.96)}to{background:#efe6d6}}@keyframes blink{50%{opacity:0}}@media(max-width:860px){.lower{grid-template-columns:1fr}#meter-delivery{flex-basis:100%}}@media(max-width:720px){#app{width:calc(100% - 12px);padding:8px}#board-panel{border-width:6px;padding:8px}#ticket-grid{gap:6px}.ticket{min-height:52px;padding:12px 2px 6px}.ticket .kind{font-size:12px}.ticket .flavor,.brand-sub{display:none}#result-banner{font-size:28px}#footer-hint{font-size:14px}}@media(prefers-reduced-motion:reduce){.ticket,.bar>span,.toast:first-child,#timer.is-urgent,#epic-tease.is-primed,.bump,.board-flash,.confetti,.seat.just-off,.walker,.stage-lamp,.caret{animation:none!important;transition:none!important}}
