:root{--bg:oklch(14% .01 250);--surface:oklch(16% .012 250);--surface-2:oklch(17% .012 250);--surface-3:oklch(20% .01 250);--surface-4:oklch(25% .015 250);--viewport-bg:#050607;--line:oklch(28% .015 250);--line-strong:oklch(40% .02 250);--line-soft:oklch(30% .02 250);--text:oklch(95% .005 250);--text-2:oklch(80% .01 250);--text-3:oklch(60% .01 250);--text-4:oklch(50% .01 250);--text-5:oklch(55% .01 250);--accent:oklch(75% .14 190);--accent-bright:oklch(85% .13 190);--accent-dim:oklch(60% .1 190);--accent-wash:oklch(24% .03 190/.5);--accent-ink:oklch(15% .01 250);--danger:oklch(65% .19 25);--danger-2:oklch(70% .16 25);--danger-line:oklch(55% .15 25);--ok:oklch(75% .16 145);--desk:oklch(22% .015 70/.92);--desk-line:oklch(30% .02 70);--desk-text:oklch(90% .01 70);--header-h:72px;--flow-h:58px;--sidebar-w:260px;--panel-w:300px;--stage-pad:18px;--panel-scene-w:324px;--hud-reserve:190px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:12px;--r-2xl:16px;--r-pill:999px;--sans:"IBM Plex Sans", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}.mono{font-family:var(--mono);letter-spacing:.02em}.accent{color:var(--accent-bright)}.hidden{display:none!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:oklch(35% .02 250);border-radius:4px}::-webkit-scrollbar-track{background:0 0}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}#stage-view{z-index:1;border-radius:var(--r-xl);background:var(--viewport-bg);pointer-events:none;inset:var(--header-h) var(--panel-w) var(--flow-h) var(--sidebar-w);position:fixed;overflow:hidden}#video-element{z-index:1;object-fit:cover;filter:saturate(.85)brightness(.95);width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0;transform:scaleX(1)}#stage-view.is-mirrored #video-element{transform:scaleX(-1)}#hand-canvas{z-index:80;pointer-events:none;position:fixed}#desk-canvas{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}#ar-canvas{z-index:3;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.camera-fallback{z-index:4;background:repeating-linear-gradient(135deg,oklch(20% .01 250) 0 14px,oklch(18% .01 250) 14px 28px);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cf-inner{text-align:center;line-height:1.9}.cf-title{color:var(--text-5);margin-bottom:4px;font-size:14px}.cf-text{color:var(--text-3);max-width:380px;font-size:15px}#ui-layer{z-index:10;pointer-events:auto;grid-template-rows:var(--header-h) 1fr var(--flow-h);height:100dvh;display:grid;position:fixed;inset:0}.passthrough{pointer-events:none}.passthrough button,.passthrough input,.passthrough .hud-card,.passthrough .stage-panel,.passthrough .gesture-ref{pointer-events:auto}#app-header{background:var(--surface-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 28px;display:flex}.brand-title{letter-spacing:.3px;font-size:22px;font-weight:700}.brand-sub{color:var(--text-3);margin-top:2px;font-size:12px}.header-right{align-items:center;gap:20px;display:flex}.progress-block{flex-direction:column;gap:6px;min-width:220px;display:flex}.progress-row{color:var(--text-2);justify-content:space-between;font-size:13px;display:flex}.progress-track{background:var(--surface-4);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-dim), var(--accent-bright));border-radius:4px;width:16%;height:100%;transition:width .35s}.header-actions{gap:8px;display:flex}.icon-btn{border-radius:var(--r-md);border:1px solid var(--line-strong);width:38px;height:38px;color:var(--text-2);font-size:16px;font-family:var(--sans);cursor:pointer;background:0 0;transition:all .15s}.icon-btn:hover{border-color:var(--accent);color:var(--accent-bright);background:var(--accent-wash)}.icon-btn-danger:hover{border-color:var(--danger-line);color:var(--danger-2);background:oklch(28% .06 25/.4)}#workspace{grid-template-columns:var(--sidebar-w) minmax(0, 1fr) var(--panel-w);min-height:0;display:grid}#sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:8px;padding:16px 12px;display:flex;overflow-y:auto}.panel-label{color:var(--text-5);text-transform:uppercase;padding:0 4px 2px;font-size:12px}.step-list{flex-direction:column;gap:4px;list-style:none;display:flex}.step-row{border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:12px;padding:10px;transition:background .15s,border-color .15s;display:flex}.step-row:hover:not(.is-locked){background:oklch(22% .015 250)}.step-row.is-active{background:var(--accent-wash);border-color:var(--accent-dim)}.step-row.is-locked{opacity:.45;cursor:not-allowed}.step-badge{width:26px;height:26px;color:var(--text-4);border:1px solid var(--line-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;display:flex}.step-row.is-active .step-badge{color:var(--accent-bright);border-color:var(--accent)}.step-row.is-done .step-badge{background:var(--accent);color:var(--accent-ink);border-color:#0000}.step-body{min-width:0}.step-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.step-status{color:var(--text-5);font-size:11px;font-family:var(--mono)}.hint-box{border:1px solid var(--line);border-left:3px solid var(--accent-dim);border-radius:var(--r-md);background:oklch(19% .015 250);margin-top:auto;padding:12px 14px}.hint-head{color:var(--accent-bright);margin-bottom:6px;font-size:13px;font-weight:600}.hint-text{color:var(--text-2);font-size:13px;line-height:1.65}#stage-area{padding:var(--stage-pad);min-width:0;display:flex}#viewport-slot{border-radius:var(--r-xl);border:1px solid var(--line-soft);flex-direction:column;flex:1;justify-content:space-between;min-width:0;padding:14px 16px;display:flex;position:relative}.vp-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.vp-top-left{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.live-pill{border-radius:var(--r-pill);color:oklch(90% .005 250);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000073;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.live-dot{background:var(--danger);border-radius:50%;width:9px;height:9px;animation:1.6s infinite pulse-dot}.chip{font-family:var(--sans);border-radius:var(--r-pill);color:var(--text-2);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;background:#00000073;border:1px solid oklch(45% .02 250/.9);padding:7px 13px;font-size:12.5px;transition:all .15s}.chip:hover{border-color:var(--accent);color:var(--accent-bright)}.chip-on{border-color:var(--accent);color:var(--accent-bright);background:oklch(20% .05 190/.7)}.chip-danger:hover{border-color:var(--danger-line);color:var(--danger-2)}.gesture-ref{border-radius:var(--r-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:oklch(16% .015 250/.86);border:1px solid oklch(40% .05 190/.55);width:172px;padding:8px;box-shadow:0 8px 24px #0006}.gr-head{color:var(--text-5);margin-bottom:6px;font-size:10.5px}#gesture-ref-canvas{border-radius:var(--r-sm);background:oklch(11% .01 250);width:156px;height:108px;display:block}.gr-status{color:var(--text-4);text-align:center;margin-top:6px;font-size:10.5px}.gr-status.is-on{color:var(--accent-bright)}.ar-hint{top:var(--ar-hint-top,94px);text-align:center;border-radius:var(--r-pill);width:max-content;max-width:calc(100% - 236px);color:var(--text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:oklch(16% .015 250/.82);border:1px solid oklch(40% .05 190/.5);margin:0 auto;padding:11px 24px;font-size:16.5px;font-weight:600;transition:opacity .2s;position:absolute;left:16px;right:200px;box-shadow:0 8px 26px #00000073}.ar-hint.is-attached{border-color:var(--accent);color:var(--accent-bright);background:oklch(24% .06 190/.85)}.vp-bottom{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.hud-card{border-radius:var(--r-lg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:oklch(16% .015 250/.88);border:1px solid oklch(35% .02 250/.9);padding:8px 10px;box-shadow:0 8px 24px #0006}.hud-head{color:var(--text-5);margin-bottom:6px;font-size:10.5px}.preview-canvas{border-radius:var(--r-sm);background:oklch(97% .003 250);width:96px;height:96px;display:block}.hud-card-tools{flex-direction:column;align-items:stretch;gap:8px;display:flex}.swatches{gap:7px;display:flex}.swatch{border-radius:var(--r-sm);cursor:pointer;border:2px solid #0000;width:26px;height:26px;padding:0;transition:transform .12s,border-color .12s}.swatch:hover{transform:translateY(-2px)}.swatch.is-active{border-color:var(--text);box-shadow:0 0 0 2px oklch(16% .015 250)}#right-panel{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;gap:13px;min-height:0;padding:16px;display:flex;overflow:hidden}.block{flex-direction:column;flex:none;gap:7px;display:flex}.block-scroll{flex:auto;min-height:74px}.block-scroll .instructions{flex:auto;min-height:0;padding-right:3px;overflow-y:auto}.panel-title{font-size:19px;font-weight:600;line-height:1.35}.panel-desc{color:var(--text-3);font-size:13.5px;line-height:1.7}.instructions{flex-direction:column;gap:6px;list-style:none;display:flex}.ins-row{background:var(--surface-3);border-radius:var(--r-md);border:1px solid oklch(26% .015 250);align-items:flex-start;gap:9px;padding:7px 10px;display:flex}.ins-glyph{text-align:center;flex:none;width:24px;font-size:18px;line-height:1.3}.ins-title{color:var(--text);font-size:13px;font-weight:600}.ins-desc{color:var(--text-3);margin-top:1px;font-size:11.5px;line-height:1.55}.hand-card{background:var(--surface-3);border-radius:var(--r-md);border:1px solid oklch(26% .015 250);align-items:center;gap:12px;padding:11px 13px;display:flex}.hand-card.is-attached{border-color:var(--accent);background:oklch(24% .05 190/.4)}.hand-icon{font-size:30px}.hand-label{color:var(--text-2);font-size:15.5px;font-weight:600}.hand-sub{color:var(--text-4);margin-top:2px;font-size:12.5px}.block-actions{gap:8px}.btn{font-family:var(--sans);border-radius:var(--r-md);cursor:pointer;border:1px solid #0000;padding:14px 18px;font-size:16.5px;font-weight:700;transition:all .15s}.btn:disabled{cursor:not-allowed;opacity:1}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent-bright)}.btn-primary:disabled{color:var(--text-5);background:oklch(30% .02 250)}.btn-ghost{border-color:var(--line-strong);color:var(--text-2);background:0 0;font-weight:500}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent-bright)}.btn-ghost:disabled{color:var(--text-4);border-color:oklch(28% .015 250)}.btn-danger{color:oklch(98% .005 250);background:oklch(60% .16 25)}.btn-danger:hover{background:var(--danger-2)}.link-btn{color:var(--text-5);font-family:var(--sans);cursor:pointer;background:0 0;border:none;font-size:14px;text-decoration:underline}.link-btn:hover{color:var(--accent-bright)}#btn-modal-continue{border-radius:var(--r-pill);background:linear-gradient(135deg, var(--accent-bright), var(--accent-dim));color:var(--accent-ink);font-family:var(--sans);letter-spacing:.02em;cursor:pointer;border:none;margin-top:16px;padding:15px 40px;font-size:18px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s;box-shadow:0 8px 26px oklch(75% .14 190/.35)}#btn-modal-continue:after{content:"";width:0;display:inline-block}#btn-modal-continue:hover,#btn-modal-continue.is-pinch-hover{filter:brightness(1.08);color:var(--accent-ink);transform:translateY(-2px);box-shadow:0 12px 34px oklch(75% .14 190/.5)}#btn-modal-continue:active{transform:translateY(0)}.status-foot{border-top:1px solid var(--line);flex:none;gap:4px;margin-top:auto;padding-top:11px}.status-row{color:var(--text-2);align-items:center;gap:8px;font-size:13.5px;display:flex}.status-dot{background:var(--text-4);border-radius:50%;width:9px;height:9px}.status-dot.is-live{background:var(--ok)}.status-dot.is-error{background:var(--danger)}.status-sub{color:var(--text-4);font-size:11px}#stage-flow{background:var(--surface-2);border-top:1px solid var(--line);justify-content:center;align-items:center;gap:4px;padding:0 20px;display:flex;overflow-x:auto}.flow-node{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--text-4);cursor:pointer;white-space:nowrap;background:oklch(20% .01 250);align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;transition:all .15s;display:flex}.flow-node.is-active{border-color:var(--accent);color:var(--accent-bright);background:var(--accent-wash)}.flow-node.is-done{border-color:var(--accent-dim);color:var(--text-2)}.flow-node.is-locked{cursor:not-allowed;opacity:.6}.flow-index{font-family:var(--mono);opacity:.8;font-size:11px}.flow-link{background:var(--line-strong);flex:none;width:22px;height:1px}.modal-root{z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050608d1;position:absolute;inset:0}.modal{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-2xl);flex-direction:column;align-items:center;gap:14px;max-width:560px;max-height:88vh;padding:30px 38px;animation:.24s fade-up;display:flex;position:relative;overflow-y:auto;box-shadow:0 24px 70px #0009}.modal-success{border-color:oklch(75% .14 190/.5)}.modal-fail{border-color:oklch(55% .15 25/.5)}.modal-kicker{color:var(--text-5);letter-spacing:.16em;font-size:11px}.modal-title{color:var(--accent-bright);text-align:center;font-size:26px;font-weight:700}.modal-title-danger{color:var(--danger-2)}.modal-desc{color:var(--text-3);text-align:center;max-width:420px;font-size:13.5px;line-height:1.75}.wafer-frame{border-radius:var(--r-md);background:oklch(95% .005 250);justify-content:center;align-items:center;width:220px;height:220px;display:flex;overflow:hidden}#result-canvas{object-fit:contain;width:100%;height:100%}.modal-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.modal-note{color:var(--text-5);text-align:center;font-size:11.5px;line-height:1.7}.help-list{color:var(--text-2);flex-direction:column;align-self:stretch;gap:8px;padding-left:20px;font-size:14px;line-height:1.7;display:flex}.help-list b{color:var(--accent-bright)}.modal-help,.modal-settings{align-items:stretch}.modal-help .modal-title,.modal-settings .modal-title{text-align:left;color:var(--text);font-size:22px}.setting-row{color:var(--text-2);border-bottom:1px solid oklch(24% .015 250);justify-content:space-between;align-items:center;gap:16px;padding:9px 0;font-size:14px;display:flex}.setting-row input[type=range]{accent-color:oklch(75% .14 190);width:160px}.setting-row input[type=checkbox]{accent-color:oklch(75% .14 190);width:18px;height:18px}.substep-strip{top:var(--substep-top,56px);pointer-events:none;flex-wrap:nowrap;align-items:center;gap:6px;list-style:none;display:flex;position:absolute;left:16px;right:200px;overflow:hidden}.substep{border-radius:var(--r-pill);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text-4);white-space:nowrap;background:oklch(16% .015 250/.82);border:1px solid oklch(35% .02 250/.9);align-items:center;gap:7px;padding:7px 14px;font-size:13.5px;font-weight:600;transition:all .2s;display:flex}.substep-num{font-family:var(--mono);width:19px;height:19px;color:var(--text-3);background:oklch(30% .015 250);border-radius:50%;place-items:center;font-size:11.5px;display:grid}.substep.is-active{border-color:var(--accent);color:var(--accent-bright);background:oklch(24% .06 190/.85)}.substep.is-active .substep-num{background:var(--accent);color:var(--accent-ink)}.substep.is-done{color:var(--ok);border-color:oklch(50% .12 145/.7)}.substep.is-done .substep-num{color:oklch(95% .02 145);background:oklch(40% .12 145)}.substep-sep{background:oklch(40% .02 250);flex:none;width:10px;height:1px}.stage-panel{left:16px;top:var(--panel-top,146px);bottom:var(--hud-reserve);width:var(--panel-scene-w);border-radius:var(--r-xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(16% .015 250/.92);border:1px solid oklch(40% .05 190/.5);flex-direction:column;gap:10px;padding:14px;animation:.22s ease-out fade-up;display:flex;position:absolute;overflow:hidden;box-shadow:0 14px 40px #0000008c}.sp-note::-webkit-scrollbar{width:6px}.sp-body::-webkit-scrollbar{width:6px}.sp-note::-webkit-scrollbar-thumb{background:oklch(45% .05 190/.6);border-radius:3px}.sp-body::-webkit-scrollbar-thumb{background:oklch(45% .05 190/.6);border-radius:3px}.sp-confirm{flex:none}.sp-title{color:var(--text);flex:none;font-size:17.5px;font-weight:700}.sp-note{overscroll-behavior:contain;min-height:2.6em;color:var(--text-3);white-space:pre-line;flex:auto;font-size:13.5px;line-height:1.5;overflow-y:auto}.sp-body{flex-direction:column;flex:auto;gap:6px;min-height:0;margin:0 -4px;padding:0 4px;display:flex;overflow-y:auto}.sp-error{color:var(--danger-2);border:1px solid var(--danger-line);border-radius:var(--r-sm);background:oklch(25% .08 25/.4);padding:6px 9px;font-size:13.5px}.sp-option{border-radius:var(--r-md);width:100%;color:var(--text-2);font-family:var(--sans);text-align:left;cursor:pointer;background:oklch(20% .012 250/.9);border:1px solid oklch(32% .015 250);align-items:center;gap:12px;padding:11px 12px;font-size:15px;font-weight:600;transition:all .15s;display:flex}.sp-option:hover:not(:disabled),.sp-option.is-pinch-hover:not(:disabled){border-color:var(--accent-dim);background:oklch(24% .03 190/.9)}.sp-option.is-on{border-color:var(--accent);color:var(--accent-bright);background:oklch(26% .06 190/.9)}.sp-option:disabled{opacity:.38;cursor:not-allowed}.sp-dot{border:1px solid #ffffff59;border-radius:50%;flex:none;width:20px;height:20px}.sp-labels{flex-direction:column;min-width:0;display:flex}.sp-sub{font-family:var(--mono);color:var(--text-4);font-size:12px}.sp-check{color:var(--accent-bright);margin-left:auto;font-size:13px}.sp-mix-row{border-radius:var(--r-md);background:oklch(20% .012 250/.9);border:1px solid oklch(30% .015 250);align-items:center;gap:8px;padding:6px 8px;display:flex}.sp-parts{align-items:center;gap:6px;margin-left:auto;display:flex}.sp-step{border-radius:var(--r-sm);width:30px;height:30px;color:var(--text-2);cursor:pointer;background:oklch(26% .015 250);border:1px solid oklch(40% .02 250);padding:0;font-size:15px;line-height:1;transition:all .12s}.sp-step:hover,.sp-step.is-pinch-hover{border-color:var(--accent);color:var(--accent-bright)}.sp-count{font-family:var(--mono);text-align:center;min-width:24px;color:var(--text);font-size:15.5px}.sp-ratio{font-family:var(--mono);color:var(--text-3);text-align:center;border-top:1px solid oklch(28% .015 250);padding:5px 0;font-size:13.5px}.sp-ratio b{color:var(--accent-bright)}.sp-count-right{font-family:var(--mono);color:var(--accent-bright);margin-left:auto;font-size:13px}.sp-empty{color:var(--text-4);text-align:center;border-radius:var(--r-md);border:1px dashed oklch(35% .02 250);padding:14px 0;font-size:14px}.sp-confirm{width:100%}.is-pinch-hover{outline:2px solid var(--accent);outline-offset:1px}.hud-card-section{padding:8px 10px 9px}.section-canvas{border-radius:var(--r-sm);background:#0d1216;display:block}.vp-bottom-left{align-items:flex-end;gap:10px;display:flex}@media (width<=1420px){:root{--sidebar-w:226px;--panel-w:268px;--stage-pad:14px;--panel-scene-w:292px}}@media (width<=1280px){:root{--sidebar-w:196px;--panel-w:236px;--stage-pad:10px;--panel-scene-w:262px}.brand-title{font-size:18px}.progress-block{min-width:150px}.stage-panel{padding:11px}.substep{padding:4px 8px;font-size:11px}}@media (width<=1180px){:root{--sidebar-w:172px;--panel-w:210px;--panel-scene-w:234px}}@media (height<=860px){:root{--header-h:62px;--flow-h:50px;--hud-reserve:176px}.ar-hint{padding:8px 17px;font-size:13.5px}}@media (height<=740px){:root{--header-h:54px;--flow-h:42px;--hud-reserve:158px}.substep{padding:4px 8px;font-size:11px}.ar-hint{padding:6px 15px;font-size:12.5px}.stage-panel{gap:8px;padding:11px}.sp-title{font-size:14px}.sp-note{font-size:11.5px}.hud-head{margin-bottom:4px}}.modal-cert{width:min(94vw,940px);max-width:940px;max-height:94vh;overflow:hidden}.cert-frame{border-radius:var(--r-lg);background:#101820;border:1px solid oklch(40% .05 190/.5);flex:none;justify-content:center;align-items:center;width:100%;min-height:100px;margin:12px 0 2px;display:flex;overflow:hidden}#cert-canvas{width:auto;max-width:100%;height:auto;max-height:100%;display:block}@media (height<=760px){.modal-cert{gap:7px;max-height:97vh;padding:14px 20px}.modal-cert .modal-kicker,.modal-cert .modal-desc{display:none}.modal-cert .modal-title{font-size:20px}.cert-frame{margin:6px 0 2px}.cert-actions{gap:7px}.cert-actions .btn{padding:7px 12px;font-size:13px}.modal-cert .btn-play-again{gap:8px;margin-top:6px;padding:9px 22px;font-size:16.5px}}@media (height<=600px){.modal-cert{gap:5px;padding:10px 16px}.modal-cert .modal-title{font-size:17px}.cert-actions .btn{padding:5px 10px;font-size:12px}.modal-cert .btn-play-again{margin-top:3px;padding:7px 18px;font-size:15px}}.cert-actions{flex-wrap:wrap;justify-content:center;gap:10px}.stage-action{border-radius:var(--r-pill);background:linear-gradient(135deg, var(--accent-bright), var(--accent-dim));color:var(--accent-ink);font-family:var(--sans);letter-spacing:.02em;cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:10px;padding:15px 36px;font-size:19px;font-weight:700;transition:filter .15s,box-shadow .15s;animation:2s ease-in-out infinite pulse-action;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080,0 0 oklch(85% .13 190/.55)}.stage-action:hover,.stage-action.is-pinch-hover{filter:brightness(1.1);animation:none;box-shadow:0 14px 38px #0000008c,0 0 0 6px oklch(85% .13 190/.3)}.stage-action:after{content:"→";font-size:21px;line-height:1;animation:1.4s ease-in-out infinite nudge-arrow}.stage-action:hover:after,.stage-action.is-pinch-hover:after{animation-duration:.7s}@keyframes pulse-action{0%,to{box-shadow:0 10px 30px #00000080,0 0 oklch(85% .13 190/.55)}70%,to{box-shadow:0 10px 30px #00000080,0 0 0 14px oklch(85% .13 190/0)}}@keyframes nudge-arrow{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.btn-play-again{border-radius:var(--r-pill);background:linear-gradient(135deg, var(--accent-bright), var(--accent-dim));width:100%;max-width:460px;color:var(--accent-ink);font-family:var(--sans);letter-spacing:.03em;cursor:pointer;border:none;margin-top:18px;padding:20px 40px;font-size:24px;font-weight:700;transition:transform .15s,box-shadow .15s,filter .15s;box-shadow:0 12px 34px oklch(75% .14 190/.4)}.btn-play-again:hover,.btn-play-again.is-pinch-hover{filter:brightness(1.1);transform:translateY(-3px);box-shadow:0 18px 44px oklch(75% .14 190/.55)}.btn-play-again:active{transform:translateY(0)}.confirm-root{z-index:70;place-items:center;display:grid;position:fixed;inset:0}.confirm-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#04080bb8;position:absolute;inset:0}.confirm-box{border-radius:var(--r-2xl);background:var(--surface-2);text-align:center;border:1px solid oklch(45% .06 190/.6);width:min(90vw,520px);padding:34px 36px 30px;animation:.18s ease-out fade-up;position:relative;box-shadow:0 30px 80px #000000b3}.confirm-title{color:var(--text);font-size:26px;font-weight:700}.confirm-text{color:var(--text-3);margin-top:12px;font-size:15.5px;line-height:1.6}.confirm-actions{justify-content:center;gap:12px;margin-top:26px;display:flex}.confirm-actions .btn{min-width:148px}.setting-row-dev small{color:var(--text-4);font-size:12px}.step-row.is-dev-unlocked,.flow-node.is-dev-unlocked{cursor:pointer;opacity:.85;outline-offset:2px;outline:1px dashed oklch(70% .14 90/.7)}.step-row.is-dev-unlocked:hover,.flow-node.is-dev-unlocked:hover{opacity:1;outline-color:oklch(80% .16 90)}.setting-row-dev label{text-align:left;cursor:pointer;flex-direction:column;gap:3px;display:flex}.dev-controls{align-items:center;gap:12px;display:flex}.chip-dev{color:oklch(85% .15 90);border-color:oklch(70% .14 90/.8);font-weight:600}.chip-dev:hover,.chip-dev.is-pinch-hover{color:oklch(92% .14 90);background:oklch(30% .08 90/.6);border-color:oklch(85% .16 90)}.timer-card{border-radius:var(--r-lg);background:var(--surface-3);border:1px solid var(--line);text-align:center;padding:10px 12px 8px}.timer-head{color:var(--text-5);margin-bottom:2px;font-size:10.5px}.timer-value{letter-spacing:.04em;color:var(--text);font-variant-numeric:tabular-nums;font-size:30px;font-weight:500}.timer-card.is-finished{border-color:var(--accent);background:oklch(24% .05 190/.5)}.timer-card.is-finished .timer-value{color:var(--accent-bright)}@media (height<=660px){:root{--header-h:48px;--flow-h:38px}#right-panel{gap:8px;padding:12px}#right-panel .panel-desc{display:none}#right-panel .block-scroll{min-height:0}.panel-title{font-size:17px}.instructions{font-size:12.5px}.hand-icon{font-size:26px}#sidebar{gap:6px;padding:12px 10px}.gesture-ref{display:none}.ar-hint{padding:5px 13px;font-size:12px}.section-canvas{height:84px}.preview-canvas{width:76px;height:76px}.stage-panel{gap:6px;padding:9px 11px}.sp-title{font-size:14px;line-height:1.25}.sp-note{min-height:1.4em}.stage-panel .sp-confirm{padding:7px 12px;font-size:13.5px}.sp-title{font-size:15px}.sp-note{font-size:12.5px;line-height:1.45}.brand-title{font-size:17px}.brand-sub{display:none}}@media (height<=540px){:root{--header-h:42px;--flow-h:0px}#right-panel .status-foot{display:none}#right-panel{gap:6px;padding:10px}.panel-title{font-size:15.5px}.instructions{font-size:12px}#stage-flow{display:none}.substep{padding:3px 7px;font-size:10.5px}.ar-hint{padding:4px 11px;font-size:11.5px}.section-canvas{height:56px}.preview-canvas{width:52px;height:52px}.hud-card{padding:5px 7px}.hud-head,.gr-head{margin-bottom:3px;font-size:9.5px}.stage-panel{gap:5px;padding:8px 10px}.stage-panel .sp-confirm{padding:6px 10px;font-size:13px}.sp-title{font-size:13.5px}}
