:root{--ink:#2f241c;--paper:#fff8e8;--paper-strong:#f4dfb7;--line:#452e1b3d;--accent:#9f5f2a;--accent-dark:#68391b;--sky:#83c8dd;--leaf:#3f8668;--danger:#b7472f;--shadow:#26180c3d}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:linear-gradient(135deg,#8ecade,#f3cf8f 55%,#7fa76a);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,textarea{font:inherit}button{cursor:pointer}.story-card button.is-tapping{animation:.18s ease-out button-tap}@keyframes button-tap{45%{filter:brightness(.92);scale:.94}}@media (prefers-reduced-motion:reduce){.story-card button.is-tapping{animation:none}}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.shell{place-items:center;min-height:100vh;padding:16px;display:grid}.code-source-credit{z-index:120;color:#fff8e8d1;letter-spacing:0;text-shadow:0 2px 6px #26180c6b;pointer-events:none;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:11px;font-weight:800;line-height:1;display:none;position:fixed;bottom:calc(max(2vh,50vh - 410px) + 6px);right:max(18px,50vw - 197px)}.code-source-logo{object-fit:contain;filter:drop-shadow(0 2px 4px #26180c5c);width:18px;height:18px}@media (max-width:720px){.code-source-credit{display:flex}}.music-toggle{z-index:100;border:2px solid var(--line);width:34px;height:34px;color:var(--accent-dark);cursor:pointer;background:#fff8e8e6;border-radius:999px;place-items:center;transition:transform .12s,background .12s,box-shadow .12s;display:grid;position:fixed;top:calc(max(2vh,50vh - 410px) + 22px);right:max(18px,50vw - 197px);box-shadow:0 3px #50331c33}.music-toggle svg{stroke-width:2.4px;width:17px;height:17px}.music-toggle:hover{background:#fff8e8fa;transform:translateY(-1px)}.music-toggle:active{transform:translateY(2px);box-shadow:0 1px #492a1940}.music-toggle[data-playing=true]{background:#f4dfb7e6}.loading{font-weight:800}.phone-frame{background-color:var(--sky);width:min(100%,430px);height:min(94vh,820px);min-height:680px;box-shadow:0 24px 80px var(--shadow);image-rendering:auto;background-position:50%;background-size:cover;border:6px solid #3a281b;border-radius:24px;position:relative;overflow:hidden}.backdrop{background:linear-gradient(#fff8e829,#4a2a1457),repeating-linear-gradient(0deg,#ffffff0a 0 2px,#00000005 2px 4px);position:absolute;inset:0}.topbar,.attribute-grid,.competition-track,.character-portrait,.story-card{z-index:1;position:relative}.topbar{color:#fffdf3;text-shadow:0 2px 8px #0000005c;align-items:flex-start;gap:12px;padding:18px 18px 8px;display:flex}.topbar-meta{flex-wrap:wrap;align-items:flex-end;gap:6px;display:flex}.topbar strong{font-size:20px;display:block}.topbar-grade{border:2px solid var(--line);color:var(--accent-dark);text-shadow:none;background:#fff8e8eb;border-radius:6px;padding:2px 7px;font-size:14px;display:inline-block;box-shadow:0 3px #50331c33}.topbar-competition-notice{border:2px solid var(--line);color:var(--accent-dark);text-shadow:none;background:#fff8e8eb;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:800;line-height:1.35;box-shadow:0 3px #50331c33}.version-preview-notice{z-index:4;color:#9a3412;text-shadow:none;pointer-events:none;background:#ffedd5f5;border:2px solid #f59e0b;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:800;line-height:1.35;position:absolute;bottom:14px;right:14px;box-shadow:0 3px #92400e2e}.eyebrow{letter-spacing:0;opacity:.8;font-size:12px;font-weight:800;display:block}.attribute-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:8px 12px;display:grid}.attribute{border:2px solid var(--line);text-align:center;background:#fff8e8e6;border-radius:8px;min-width:0;padding:7px 5px;position:relative;box-shadow:0 3px #50331c33}.attribute.is-changing{animation:.56s ease-out attribute-pop}.attribute svg{color:var(--accent-dark)}.attribute span,.attribute strong{display:block}.attribute span{margin-top:2px;font-size:11px;font-weight:800}.attribute strong{font-size:17px}.attribute-delta{color:#fffdf3;text-shadow:0 1px 2px #2f241c47;pointer-events:none;border:2px solid #fff8e8eb;border-radius:999px;min-width:34px;padding:3px 7px;font-size:14px;font-style:normal;font-weight:900;line-height:1;animation:.9s ease-out forwards attribute-delta-rise;position:absolute;top:-9px;left:50%;transform:translate(-50%);box-shadow:0 3px 10px #2f241c38}.attribute-delta.positive{background:var(--leaf)}.attribute-delta.negative{background:var(--danger)}.hidden-attribute-debug{z-index:4;pointer-events:none;flex-wrap:wrap;gap:3px;max-width:58%;display:flex;position:absolute;bottom:10px;left:10px}.hidden-attribute-debug span{color:#5b4636;background:#ffffffad;border:1px solid #50331c2e;border-radius:999px;flex:none;align-items:center;gap:3px;padding:2px 5px;font-size:9px;font-weight:800;line-height:1.2;display:inline-flex}.hidden-attribute-debug b{color:var(--accent-dark);font-size:10px}@keyframes attribute-pop{0%{transform:translateY(0)scale(1)}35%{border-color:#fff8e8cc;transform:translateY(-3px)scale(1.08)}to{transform:translateY(0)scale(1)}}@keyframes attribute-delta-rise{0%{opacity:0;transform:translate(-50%,8px)scale(.88)}18%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(-50%,-20px)scale(1)}}@keyframes story-node-enter{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ending-paper-print{0%{opacity:0;transform-origin:top;clip-path:inset(0 0 78%);transform:translateY(-34px)rotate(2deg)scaleY(.24)}72%{opacity:1;clip-path:inset(0);transform:translateY(2px)rotate(4deg)scaleY(1.02)}to{opacity:1;clip-path:inset(0);transform:translateY(0)rotate(3.5deg)scaleY(1)}}@keyframes dice-roll{0%{transform:rotate(0)translateY(0)scale(1)}18%{transform:rotate(-12deg)translateY(-4px)scale(1.04)}36%{transform:rotate(16deg)translateY(2px)scale(.98)}54%{transform:rotate(-18deg)translateY(-5px)scale(1.05)}72%{transform:rotate(12deg)translateY(1px)scale(1)}to{transform:rotate(0)translateY(0)scale(1)}}@keyframes memory-card-deal{0%{opacity:0;transform:translate3d(0,-18px,40px)rotate(-8deg)scale(.82)}72%{opacity:1;transform:translateY(2px)rotate(1deg)scale(1.02)}to{opacity:1;transform:translate(0,0)rotate(0)scale(1)}}@keyframes memory-card-match{0%{transform:translateY(0)scale(1)}45%{transform:translateY(-5px)scale(1.06)}to{transform:translateY(0)scale(1)}}@keyframes memory-card-gather{0%{opacity:1;transform:translateY(0)rotate(0)scale(1)}58%{opacity:1;transform:translateY(-8px)rotate(2deg)scale(.96)}to{opacity:0;transform:translateY(42px)rotate(14deg)scale(.72)}}@keyframes memory-card-fail{0%,to{transform:translate(0)}18%{transform:translate(-5px)}36%{transform:translate(5px)}54%{transform:translate(-4px)}72%{transform:translate(3px)}}.competition-track{--track-dot-size:30px;--track-node-width:56px;--track-gap:0px;--track-rail-y:calc(var(--track-dot-size) / 2);-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none;min-height:60px;padding:8px 14px;overflow:auto hidden}.competition-track::-webkit-scrollbar{display:none}.character-portrait{z-index:1;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 8px 9px #2a1c126b);pointer-events:none;width:70%;height:56%;animation:.36s cubic-bezier(.22,1,.36,1) both character-portrait-enter;position:absolute;top:31%;left:6%}@keyframes character-portrait-enter{0%{opacity:0;transform:translate(-18px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.character-portrait{animation:none}}.competition-track-inner{align-items:flex-start;width:max-content;min-width:100%;display:flex;position:relative}.competition-track-inner[data-density=comfortable]{--track-gap:0px;width:100%}.competition-track-inner[data-density=comfortable] .track-spacer{flex:1 1 0;min-width:8px}.competition-track-inner[data-density=comfortable] .track-label{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:100%;min-height:15px;line-height:1.05;display:-webkit-box;overflow:hidden}.competition-track-inner[data-density=dense]{--track-node-width:52px;--track-dot-size:28px;--track-gap:12px}.competition-track-inner[data-density=dense] .track-spacer{flex:1 1 var(--track-gap);width:var(--track-gap);min-width:var(--track-gap)}.competition-track-inner[data-density=dense] .track-label{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:52px;height:auto;min-height:18px;font-size:9px;line-height:1.15;display:-webkit-box}.competition-track-inner[data-density=dense] .track-node b{min-height:15px;padding:0 4px;font-size:9px}.track-node.is-active .track-dot{box-shadow:0 0 0 2px #fff8e8f2,0 3px #3a281b4d}@keyframes track-dot-pulse{0%{transform:scale(1)}45%{transform:scale(1.18)}to{transform:scale(1)}}.track-node.is-pulsing .track-dot{animation:.55s cubic-bezier(.22,1,.36,1) track-dot-pulse}.track-rail{z-index:0;left:calc(var(--track-node-width) / 2);right:calc(var(--track-node-width) / 2);top:var(--track-rail-y);pointer-events:none;background:#fff8e8c7;border-radius:999px;height:3px;position:absolute;overflow:hidden;transform:translateY(-50%);box-shadow:0 1px #3a281b47}.track-rail-fill{border-radius:inherit;background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform .75s cubic-bezier(.22,1,.36,1);box-shadow:0 1px #3a281b59}.track-spacer{flex:0 0 var(--track-gap);width:var(--track-gap);min-width:var(--track-gap);height:var(--track-dot-size);pointer-events:none}.track-node{z-index:1;flex:0 0 var(--track-node-width);color:#fffdf3;text-align:center;text-shadow:0 1px 6px #00000073;scroll-snap-align:center;align-content:start;justify-items:center;gap:2px;min-width:0;font-size:10px;font-weight:900;display:grid;position:relative}.track-dot{z-index:1;width:var(--track-dot-size);height:var(--track-dot-size);color:var(--ink);background:#c9aa74;border:2px solid #fff8e8;border-radius:999px;place-items:center;transition:background .45s,color .45s,box-shadow .45s,border-color .45s;display:grid;position:relative;box-shadow:0 3px #3a281b4d}.track-label{text-overflow:ellipsis;white-space:normal;justify-content:center;align-items:center;width:100%;max-width:64px;min-height:15px;line-height:1.05;display:flex;overflow:hidden}.track-node b{min-height:16px;color:var(--ink);text-shadow:none;background:#fff8e8e6;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;transition:background .45s,color .45s;display:inline-flex}@media (prefers-reduced-motion:reduce){.track-rail-fill,.track-dot,.track-node b{transition:none}.track-node.is-pulsing .track-dot{animation:none}.story-card-content,.ending-paper,.ending-typewriter,.attribute.is-changing,.attribute-delta,.dice.is-rolling,.memory-match-card,.memory-match-card-face,.memory-match-game.is-success .memory-match-card,.memory-match-game.is-failure .memory-match-grid,.memory-match-stage,.number-bomb-game,.memory-sum-game,.twenty-four-game,.minesweeper-cell,.minesweeper-game.is-won .minesweeper-grid,.minesweeper-game.is-lost .minesweeper-grid{transition:none;animation:none}.ending-paper{opacity:1;clip-path:none;transform:rotate(3.5deg)}.ending-typewriter{border-right:0}.competition-track{scroll-behavior:auto}}.track-node.passed .track-dot{color:#fff8e8;background:var(--leaf)}.track-node.reached.milestone .track-dot{color:#fff8e8;background:var(--sky)}.track-node.reached.milestone b{color:var(--ink);background:#fff8e8e6}.track-node.passed b{color:#fff8e8;background:var(--leaf)}.track-node.medal-gold .track-dot,.track-node.medal-gold b{color:#5c3b00;background:#f4c542}.track-node.medal-silver .track-dot,.track-node.medal-silver b{color:#35404a;background:#d7dde2}.track-node.medal-bronze .track-dot,.track-node.medal-bronze b{color:#fff8e8;background:#b87333}.story-card{z-index:2;scrollbar-color:#68391b57 transparent;scrollbar-width:thin;background:#fff8e8f0;border:3px solid #4a2e1a;border-radius:8px;max-height:54%;padding:18px;position:absolute;top:66%;left:14px;right:14px;overflow:auto;transform:translateY(-50%);box-shadow:0 8px #3d231142}.story-card::-webkit-scrollbar{width:4px}.story-card::-webkit-scrollbar-track{background:0 0}.story-card::-webkit-scrollbar-thumb{background:#68391b57;border-radius:999px}.story-card::-webkit-scrollbar-thumb:hover{background:#68391b80}.story-card--competition{background:linear-gradient(180deg, #e7f9fcf5, #fff8e8f5 62%), var(--paper);border-color:#26566a;padding-bottom:10px;box-shadow:0 8px #26566a47}.story-card--roulette{max-height:none;padding:14px 18px 18px;top:52%;overflow:visible}.competition-roulette{--outer-stop:0deg;--inner-stop:0deg;justify-items:center;gap:8px;display:grid}.roulette-wheel{aspect-ratio:1;background:#d9eef0;border:4px solid #3a281b;border-radius:50%;width:min(72vw,280px);position:relative;box-shadow:0 7px #26566a4d}.roulette-pointer{z-index:3;color:#b7472f;filter:drop-shadow(0 2px #fff8e8);height:14px;margin-bottom:-18px;font-size:25px;line-height:1}.roulette-outer,.roulette-inner{border-radius:50%;transition:transform 3.4s cubic-bezier(.16,.62,.12,1);position:absolute;inset:0}.roulette-outer{background:repeating-conic-gradient(from -30deg, #2f7186 0 60deg, #6fa8aa 60deg 120deg)}.roulette-outer[data-count="1"]{background:#2f7186}.roulette-outer[data-count="2"]{background:conic-gradient(from -90deg, #2f7186 0 180deg, #6fa8aa 180deg)}.roulette-inner{background:#f4dfb7;border:3px solid #3a281b;inset:27%;box-shadow:0 0 0 4px #fff8e8cc}.roulette-outer-label,.roulette-inner-label{width:0;transform:rotate(var(--angle)) translateY(-112px);transform-origin:0 0;justify-content:center;display:flex;position:absolute;inset:50%}.roulette-inner-label{transform:rotate(var(--angle)) translateY(-43px)}.roulette-outer-label b,.roulette-inner-label b{color:#fff8e8;text-align:center;text-shadow:0 1px 2px #26180c8c;width:84px;font-size:13px;position:absolute}.roulette-inner-label b{color:#59371f;width:44px;text-shadow:none;font-size:12px}.roulette-outer-separator,.roulette-inner-separator{width:4px;height:50%;transform:rotate(var(--angle));transform-origin:50% 100%;background:#fff8e8;position:absolute;top:0;left:calc(50% - 2px)}.roulette-inner-separator{width:2px;height:50%;transform:rotate(var(--angle));transform-origin:50% 100%;background:#3a281b;left:calc(50% - 1px)}.roulette-hub{aspect-ratio:1;color:#fff8e8;background:#9f5f2a;border:3px solid #3a281b;border-radius:50%;place-items:center;width:42px;font-weight:900;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 3px #3d231147}.competition-roulette.is-spinning .roulette-outer{transform:rotate(var(--outer-stop))}.competition-roulette.is-spinning .roulette-inner{transform:rotate(var(--inner-stop))}.competition-roulette.is-preparing .roulette-wheel{animation:.7s ease-in-out roulette-wind-up}.competition-roulette.is-preparing .roulette-hub{animation:.35s ease-in-out 2 roulette-ready-pop}.competition-roulette.is-preparing .roulette-pointer{animation:.35s ease-in-out 2 roulette-pointer-tap}.roulette-caption{color:#26566a;text-align:center;min-height:28px;font-size:16px;margin:2px 0 0!important;font-weight:900!important}.competition-roulette.is-settled .roulette-caption{animation:.26s cubic-bezier(.22,1,.36,1) roulette-result-pop}@keyframes roulette-wind-up{0%,to{transform:rotate(0)}35%{transform:rotate(2deg)}70%{transform:rotate(-3deg)}}@keyframes roulette-ready-pop{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.14)}}@keyframes roulette-pointer-tap{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}@keyframes roulette-result-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (max-width:370px){.roulette-wheel{width:240px}.roulette-outer-label{transform:rotate(var(--angle)) translateY(-95px)}.roulette-inner-label{transform:rotate(var(--angle)) translateY(-36px)}}@media (prefers-reduced-motion:reduce){.roulette-outer,.roulette-inner{transition:none}.competition-roulette.is-preparing .roulette-wheel,.competition-roulette.is-preparing .roulette-hub,.competition-roulette.is-preparing .roulette-pointer,.competition-roulette.is-settled .roulette-caption{animation:none}}.story-card--with-portrait{max-height:calc(52% - 14px);top:48%;transform:none}.story-card-content{animation:.26s cubic-bezier(.22,1,.36,1) story-node-enter}.ending-stage{z-index:2;scrollbar-width:none;height:min(84%,660px);padding:2px 0 16px;position:absolute;top:49%;left:0;right:0;overflow:auto;transform:translateY(-50%)}.ending-stage::-webkit-scrollbar{display:none}.ending-stage>.story-card-content{height:100%}.competition-track,.node-list,.ui-textarea{scrollbar-width:none}.competition-track::-webkit-scrollbar{display:none}.node-list::-webkit-scrollbar{display:none}.ui-textarea::-webkit-scrollbar{display:none}.story-card h1{margin:4px 0 10px;font-size:24px;line-height:1.15}.story-heading--competition{gap:8px;display:grid}.competition-node-badge{color:#fff8e8;background:#2f7186;border-color:#26566a;gap:5px;width:fit-content}.competition-node-meta{flex-wrap:wrap;gap:6px;margin:-2px 0 12px;display:flex}.competition-node-meta span{color:#25495a;background:#ffffffad;border:1px solid #26566a5c;border-radius:6px;align-items:center;min-height:22px;padding:2px 7px;font-size:12px;font-weight:900;display:inline-flex}.story-card p,.result-panel p{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0 0 14px;font-weight:600;line-height:1.75}.story-page-more{color:#68391bb8;width:fit-content;box-shadow:none;background:0 0;border:0;margin:-2px auto 2px;padding:5px 10px;font-size:15px;font-weight:800;line-height:1.4;display:block}.story-page-more:hover{color:var(--accent-dark)}.story-heading span,.badge{border:2px solid var(--line);background:var(--paper-strong);border-radius:6px;align-items:center;min-height:24px;padding:2px 8px;font-size:12px;font-weight:900;display:inline-flex}.ending-panel{grid-template-rows:minmax(0,1fr) auto;gap:10px;height:100%;display:grid;overflow:hidden}.ending-carousel{overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;min-height:0;display:flex;overflow:auto hidden}.ending-carousel::-webkit-scrollbar{display:none}.ending-slide{scroll-snap-align:start;flex:0 0 100%;align-content:center;gap:10px;width:100%;min-width:0;padding:4px 18px 2px;display:grid}.ending-slide--achievements{grid-template-rows:minmax(0,1fr) auto;align-content:stretch}.ending-notebook{transform-origin:50%;justify-self:center;width:min(376px,100%);max-width:100%;padding:10px 10px 10px 18px;position:relative;transform:rotate(-3.5deg)}.ending-notebook:before{content:"";background:#b86f43;border:3px solid #4a2e1a;border-radius:10px;position:absolute;inset:4px 2px 0 9px;box-shadow:0 10px #3d23113d,0 22px 34px #26180c3d}.ending-notebook:after{content:"";opacity:.5;background:radial-gradient(circle at 50% 8px,#4a2e1ab8 0 3px,#0000 3.5px),repeating-linear-gradient(#0000 0 27px,#4a2e1a94 27px 32px,#0000 32px 54px);border-radius:999px;width:10px;position:absolute;top:26px;bottom:26px;left:14px}.ending-paper{z-index:1;background:linear-gradient(90deg,#68391b0a 0 2px,#0000 2px 100%) 0 0/28px 100%,linear-gradient(90deg,#9f5f2a02 0 1px,#0000 1px 100%) 0 0/18px 100%,repeating-linear-gradient(#0000 0 31px,#68391b04 31px 32px) 0 0/100% 32px,#fffdf3;border:2px solid #4a2e1a5c;border-radius:7px;grid-template-rows:auto minmax(0,1fr);gap:6px;height:clamp(390px,52vh,460px);padding:16px 12px 12px 18px;display:grid;position:relative;overflow:hidden;transform:rotate(3.5deg);box-shadow:0 4px #3d23112e}.ending-paper:after{content:"";filter:blur(5px);z-index:-1;background:#26180c24;border-radius:50%;height:12px;position:absolute;inset:auto 10px -7px}.ending-paper-pin{background:repeating-linear-gradient(#0000 0 22px,#4a2e1a29 22px 27px,#0000 27px 44px);border:0;border-radius:999px;width:8px;height:calc(100% - 18px);position:absolute;top:9px;left:4px;transform:none}.ending-heading{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding-top:2px;display:grid}.ending-heading h1{margin:0;font-size:21px}.ending-rank{color:#5c3b00;text-shadow:0 1px #fffdf3b3;background:linear-gradient(145deg,#fff3a8,#f4c542 52%,#b87912);border:3px solid #7a4e08;border-radius:10px;place-items:center;min-width:48px;min-height:48px;font-size:26px;font-weight:950;line-height:1;display:inline-grid;box-shadow:inset 0 2px #fffdf3d1,0 5px #5c3b0047}.ending-typewriter{overflow-wrap:anywhere;scrollbar-width:none;white-space:pre-wrap;word-break:break-word;background:#fffdf347;border-radius:4px;min-height:0;padding:2px 3px;font-weight:600;line-height:1.75;position:relative;overflow:auto;margin-bottom:0!important}.ending-typewriter::-webkit-scrollbar{display:none}.ending-next-hint{color:#6c4609a8;background:0 0;border:0;padding:3px;font-size:12px;font-weight:700;line-height:1;position:absolute;bottom:14px;right:15px}.ending-next-hint:hover{color:#6c4609;text-decoration:underline}.ending-typewriter:not(.is-done):after{content:"";vertical-align:-.16em;background:#68391bc7;border-radius:999px;width:3px;height:1.1em;margin-left:2px;animation:.78s steps(2,start) infinite ending-cursor-blink;display:inline-block}@keyframes ending-cursor-blink{50%{opacity:0}}.achievement-wall{scrollbar-color:#68391b57 transparent;scrollbar-width:thin;background:linear-gradient(#fffdf3e6,#f4dfb7b8),repeating-linear-gradient(90deg,#68391b0a 0 1px,#0000 1px 38px);border:2px solid #4a2e1a3d;border-radius:10px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:12px;display:grid;position:relative;overflow:auto;box-shadow:inset 0 2px #fffdf3c7,0 5px #3d231129}.achievement-wall::-webkit-scrollbar{width:4px}.achievement-wall::-webkit-scrollbar-track{background:0 0}.achievement-wall::-webkit-scrollbar-thumb{background:#68391b57 padding-box content-box;border:1px solid #0000;border-radius:999px}.achievement-wall::-webkit-scrollbar-thumb:hover{background:#68391b80 padding-box content-box}.achievement-wall-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.achievement-wall-title{color:var(--accent-dark);align-items:center;gap:5px;font-size:14px;font-weight:950;display:inline-flex}.achievement-wall-header>span{color:#7a4e08;text-align:center;background:#fff3a8d1;border:2px solid #7a4e0840;border-radius:999px;min-width:46px;padding:3px 7px;font-size:12px;font-weight:950}.achievement-stickers{scrollbar-color:#68391b57 transparent;scrollbar-width:thin;grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:9px;min-height:0;padding:2px;display:grid;overflow:auto}.achievement-stickers::-webkit-scrollbar{width:4px}.achievement-stickers::-webkit-scrollbar-track{background:0 0}.achievement-stickers::-webkit-scrollbar-thumb{background:#68391b57 padding-box content-box;border:1px solid #0000;border-radius:999px}.achievement-stickers::-webkit-scrollbar-thumb:hover{background:#68391b80 padding-box content-box}.achievement-sticker{color:#5c3b00;text-align:center;min-width:0;min-height:116px;box-shadow:none;background:0 0;border:0;border-radius:8px;place-items:center;padding:4px 3px;font-size:10px;font-weight:950;line-height:1.15;transition:transform .13s,box-shadow .13s,filter .13s;display:grid}.achievement-sticker:hover{transform:translateY(-1px)}.achievement-medal{width:112px;height:106px;box-shadow:none;background:0 0;border:0;border-radius:10px;justify-self:center;place-items:center;display:grid}.achievement-sticker svg{stroke-width:2.6px}.achievement-sticker img{object-fit:contain;filter:drop-shadow(0 4px 3px #3d231138);border-radius:14px;width:108px;height:102px}.achievement-sticker>span:not(.achievement-medal),.achievement-sticker em{display:none}.achievement-sticker.is-locked{color:#736b61;filter:grayscale();opacity:.42;box-shadow:none;background:0 0}.achievement-sticker.is-selected{box-shadow:none}.achievement-empty{color:#68391bad;border:2px dashed #4a2e1a38;border-radius:8px;place-items:center;gap:6px;min-height:96px;font-size:13px;font-weight:900;display:grid}.achievement-toast{color:#68391b;text-align:left;cursor:pointer;background:linear-gradient(135deg,#fffceffa,#ffebb5fa);border:1px solid #c4812a73;border-radius:14px;align-items:center;gap:12px;width:min(340px,100vw - 32px);padding:12px 14px;display:flex;box-shadow:0 12px 30px #4a2e1a38}.achievement-toast-icon{color:#c4812a;background:#ffffffb3;border-radius:50%;flex:0 0 48px;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.achievement-toast-icon img{object-fit:cover;width:100%;height:100%}.achievement-toast>span:last-child{gap:3px;display:grid}.achievement-toast strong{letter-spacing:.08em;font-size:12px}.achievement-toast em{font-size:16px;font-style:normal;font-weight:900}.achievement-detail-overlay{z-index:200;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.achievement-detail-backdrop{box-shadow:none;background:#2f241c7a;border:0;position:absolute;inset:0}.achievement-detail-card{z-index:1;color:#3b2817;text-align:center;background:linear-gradient(#fffdf3,#f4dfb7);border:3px solid #7a4e087a;border-radius:12px;justify-items:center;gap:8px;width:min(100%,320px);max-height:100%;padding:20px 16px 16px;display:grid;position:relative;overflow:auto;box-shadow:0 10px #3d231133,0 20px 34px #26180c52}.achievement-detail-card.is-locked{color:#5e574e;background:linear-gradient(#f4efe7,#d6cec2)}.achievement-detail-close{width:26px;height:26px;color:var(--accent-dark);background:#fffdf3bd;border:2px solid #4a2e1a2e;border-radius:999px;place-items:center;font-size:18px;font-weight:900;line-height:1;display:grid;position:absolute;top:8px;right:8px}.achievement-detail-icon{color:#7a4e08;width:180px;height:140px;box-shadow:none;background:0 0;border:0;border-radius:0;place-items:center;display:grid}.achievement-detail-card.is-locked .achievement-detail-icon{filter:grayscale();opacity:.75}.achievement-detail-icon img{object-fit:contain;filter:drop-shadow(0 5px 3px #3d231138);border-radius:0;width:168px;height:128px}.achievement-detail-status{color:#5c3b00;background:#f4c5426b;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:950}.achievement-detail-card h2{overflow-wrap:anywhere;max-width:100%;margin:0;font-size:20px;line-height:1.18}.achievement-detail-card p{color:#2f241cd1;overflow-wrap:anywhere;max-width:100%;margin:0;font-size:13px;font-weight:700;line-height:1.6}.achievement-detail-condition{border-top:1px dashed #2f241c29;gap:6px;margin-top:10px;padding-top:10px;display:grid}.achievement-detail-condition-label{color:#2f241c94;letter-spacing:.04em;font-size:11px;font-weight:900}.achievement-detail-condition p{color:#2f241cb8;font-size:12px;font-weight:700}.ending-pager{justify-content:center;gap:8px;padding-bottom:2px;display:flex}.ending-pager button{background:#fff8e8b8;border:2px solid #4a2e1a3d;border-radius:999px;place-items:center;width:38px;height:22px;display:grid;box-shadow:0 2px #3d231124}.ending-pager button:before{content:"";background:#68391b52;border-radius:999px;width:8px;height:8px}.ending-pager button.is-active{background:#fff3a8eb;border-color:#7a4e08}.ending-pager button.is-active:before{background:#f4c542;width:18px;box-shadow:inset 0 1px #fffdf3c7}.ending-pager span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.start-panel{text-align:center}.start-game-icon{color:#fff8e8;background:var(--accent);border:4px solid #3a281b;border-radius:14px;place-items:center;width:78px;height:78px;margin-bottom:10px;display:inline-grid;box-shadow:0 7px #3d231152}.dice{background:#fffdf3;border:4px solid #3a281b;border-radius:14px;place-items:center;width:78px;height:78px;margin-bottom:10px;font-size:42px;font-weight:950;display:inline-grid;box-shadow:0 7px #3d231152}.dice.is-rolling{animation:.72s ease-in-out infinite dice-roll}.action-stack{gap:9px;display:grid}.competition-skip-group{gap:4px;display:grid}.story-card .story-hint{color:#5b341c;background:#fff8e8d1;border:2px solid #3a281b4d;border-radius:8px;margin:0;padding:8px 10px;font-size:14px;line-height:1.5}.story-card .story-hint--fine{color:#5b341cc7;text-align:center;background:0 0;border:0;padding:2px 2px 0;font-size:12px;line-height:1.45}.primary-btn,.secondary-btn,.ghost-btn,.choice-btn{border:2px solid #3a281b;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:46px;padding:10px 14px;font-weight:900;line-height:1.25;display:inline-flex;box-shadow:0 4px #3d231152}.primary-btn{color:#fff8e8;background:var(--accent)}.competition-action-btn{background:#2f7186}.secondary-btn{color:var(--ink);background:var(--paper-strong)}.ghost-btn{color:var(--ink);background:#ffffff73}.choice-btn{color:var(--ink);text-align:left;background:#fffaf0;justify-content:flex-start;font-size:14px}.choice-btn>span:first-child{color:#fff8e8;background:var(--leaf);border-radius:6px;flex:0 0 30px;place-items:center;height:30px;display:grid}.choice-btn-text{overflow-wrap:anywhere;flex:auto;min-width:0}.choice-btn-tag{color:#6a3c13;background:#fff8e8d9;border:1px solid #3a281b73;border-radius:6px;flex:none;padding:3px 7px;font-size:12px;font-weight:950;line-height:1}.choice-btn-tag--competition{color:#25495a;background:#e7f9fcd1;border-color:#26566a5c}.result-panel{text-align:center;gap:12px;display:grid}.result-icon{color:#fff8e8;background:var(--accent);border:4px solid #3a281b;border-radius:14px;justify-self:center;place-items:center;width:76px;height:76px;font-size:40px;font-weight:950;display:inline-grid;box-shadow:0 7px #3d231152}.result-dice .result-icon{color:var(--ink);background:#fffdf3}.result-initial .result-icon{background:var(--accent)}.result-rest .result-icon{background:var(--danger)}.result-settlement .result-icon{background:var(--leaf)}.result-stats{gap:8px;margin-bottom:2px;display:grid}.result-stats--3{grid-template-columns:repeat(3,minmax(0,1fr))}.result-stats--4{grid-template-columns:repeat(4,minmax(0,1fr))}.result-stats:not(.result-stats--3):not(.result-stats--4){grid-template-columns:repeat(auto-fit,minmax(82px,1fr))}.result-stat{border:2px solid var(--line);background:#fffdf3c7;border-radius:8px;min-width:0;padding:9px 8px}.result-stat span,.result-stat strong{display:block}.result-stat span{font-size:12px;font-weight:900}.result-stat strong{margin-top:3px;font-size:20px;line-height:1.1}.admin-workspace{--admin-bg:#f8fafc;--admin-ink:#0f172a;--admin-muted:#64748b;--admin-line:#e2e8f0;--admin-card:#fff;--admin-primary:#0f172a;min-height:100vh;color:var(--admin-ink);background:var(--admin-bg);padding:16px 20px;font-family:Trebuchet MS,Noto Sans SC,ui-sans-serif,system-ui,sans-serif}.admin-hero,.admin-stats,.admin-body,.admin-top{width:min(100%,1680px);margin-inline:auto}.admin-body{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:20px;display:grid}.admin-sidebar .ui-tabs-list{flex-direction:column;gap:4px;width:100%;margin-bottom:0;padding:8px;display:flex;position:sticky;top:16px}.admin-nav-link{justify-content:flex-start;align-items:center;width:100%;min-width:0;padding:0 10px;text-decoration:none;display:flex}.admin-main{min-width:0}.story-admin-grid,.json-admin-grid{width:100%}.admin-top{margin-bottom:12px}.admin-hero{justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;display:flex}.admin-hero h1{margin:4px 0 2px;font-size:22px;line-height:1.2}.admin-hero p{max-width:640px;color:var(--admin-muted);margin:0;font-size:12px;line-height:1.45}.admin-hero .ui-badge{min-height:20px;padding:0 8px;font-size:11px}.admin-actions,.json-actions{flex-shrink:0;gap:8px;display:flex}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:0;display:grid}.admin-stats .ui-card-header{justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px;display:flex}.admin-stats .ui-card-description{margin:0;font-size:12px}.admin-stats .ui-card-title{font-size:18px;line-height:1}.ui-card{border:1px solid var(--admin-line);background:var(--admin-card);border-radius:8px;box-shadow:0 1px 2px #0f172a0d}.ui-card-header{padding:18px 18px 10px}.ui-card-title{margin:0;font-size:17px;line-height:1.25}.ui-card-description{color:var(--admin-muted);margin:6px 0 0;font-size:13px;line-height:1.55}.ui-card-content{padding:0 18px 18px}.ui-badge{border:1px solid var(--admin-line);width:fit-content;min-height:24px;color:var(--admin-muted);background:#fff;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.ui-button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:800;transition:background .16s,border-color .16s,transform .16s;display:inline-flex}.ui-button:hover{transform:translateY(-1px)}.ui-button-default{color:#fff;background:var(--admin-primary)}.ui-button-secondary{color:var(--admin-ink);border-color:var(--admin-line);background:#f1f5f9}.ui-button-outline{color:var(--admin-ink);border-color:var(--admin-line);background:#fff}.ui-button-ghost{color:var(--admin-ink);background:0 0}.ui-button-destructive{color:#fff;background:#b91c1c}.ui-button-size-default{min-height:40px;padding:0 14px}.ui-button-size-sm{min-height:34px;padding:0 10px;font-size:13px}.ui-button-size-icon{width:40px;height:40px;padding:0}.ui-input,.ui-textarea{border:1px solid var(--admin-line);width:100%;color:var(--admin-ink);background:#fff;border-radius:8px;outline:none}.ui-input{height:40px;padding:0 11px}.ui-textarea{resize:vertical;padding:10px 11px;line-height:1.6}.ui-input:focus,.ui-textarea:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b82e}.ui-label{margin-bottom:7px;font-size:13px;font-weight:800;display:block}.ui-tabs-list{border:1px solid var(--admin-line);background:#f1f5f9;border-radius:8px;gap:4px;padding:4px;display:flex}.ui-tabs-trigger{min-width:82px;min-height:34px;color:var(--admin-muted);background:0 0;border:0;border-radius:6px;font-weight:900}.ui-tabs-trigger.is-active{color:var(--admin-ink);background:#fff;box-shadow:0 1px 2px #0f172a14}.story-admin-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:14px;display:grid}.node-list-card,.node-editor-card{min-height:660px}.node-list-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.node-list-count{border:1px solid var(--admin-line);min-height:24px;color:var(--admin-muted);background:#f8fafc;border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:12px;font-weight:800;line-height:1.6}.editor-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.editor-mode-tabs{flex-shrink:0}.editor-mode-tabs .ui-tabs-trigger{min-width:72px}.search-box{grid-template-columns:auto 1fr;align-items:center;gap:8px;margin-bottom:12px;display:grid}.node-list{gap:6px;max-height:560px;padding-right:2px;display:grid;overflow:auto}.node-row{border:1px solid var(--admin-line);width:100%;color:var(--admin-ink);text-align:left;background:#fff;border-left:3px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;transition:border-color .16s,background .16s;display:flex}.node-row:hover{background:#f8fafc;border-color:#cbd5e1}.node-row.is-active{border-color:#94a3b8;border-left-color:var(--admin-primary);background:#f8fafc}.node-badge{min-width:36px;min-height:22px;color:var(--admin-muted);text-align:center;background:#f1f5f9;border-radius:6px;flex-shrink:0;padding:2px 6px;font-size:11px;font-weight:900;line-height:1.5}.node-row.is-active .node-badge{color:#fff;background:var(--admin-primary)}.node-row strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;line-height:1.35;overflow:hidden}.ending-rules-grid{grid-template-columns:300px minmax(0,1fr)}.option-editor-compact{padding:10px}.node-editor-form,.json-actions{gap:14px;display:grid}.form-row.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.form-row.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.ending-condition-range{gap:6px;display:grid}.condition-range-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.code-textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.admin-select{border:1px solid var(--admin-line);width:100%;height:40px;color:var(--admin-ink);background:#fff;border-radius:8px;outline:none;padding:0 10px}.admin-select:focus{border-color:#94a3b8;box-shadow:0 0 0 3px #94a3b82e}.admin-subpanel{border:1px solid var(--admin-line);background:#f8fafc;border-radius:8px;gap:12px;padding:14px;display:grid}.form-section-title{color:var(--admin-ink);align-items:center;gap:8px;font-size:14px;font-weight:900;display:flex}.form-section-title.with-action{justify-content:space-between}.form-section-title.with-action span{align-items:center;gap:8px;display:inline-flex}.option-editor-list{gap:12px;display:grid}.option-editor{border:1px solid var(--admin-line);background:#fff;border-radius:8px;gap:12px;padding:12px;display:grid}.pill-list{flex-wrap:wrap;gap:8px;display:flex}.pill-button{border:1px solid var(--admin-line);min-height:34px;color:var(--admin-muted);background:#fff;border-radius:999px;padding:0 11px;font-weight:900}.pill-button.is-active,.pill-button:hover{color:var(--admin-ink);background:#f8fafc;border-color:#94a3b8}.admin-checkbox{align-items:center;gap:8px;min-height:40px;padding-top:22px;font-size:13px;font-weight:900;display:flex}.admin-checkbox input{width:16px;height:16px}.admin-message,.admin-meta{border:1px solid var(--admin-line);overflow-wrap:anywhere;background:#f8fafc;border-radius:8px;margin:0;padding:12px;font-size:13px;line-height:1.55}.admin-message.success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.admin-message.danger,.admin-message.warning{align-items:flex-start;gap:8px;display:flex}.admin-message.danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.admin-message.warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.admin-message.muted{color:var(--admin-muted)}.minigame-panel{gap:14px;display:grid}.minigame-topline,.minigame-stats{justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:900;display:flex}.minigame-topline span,.minigame-stats span{background:#ffffffb8;border-radius:8px;min-width:0;padding:6px 9px}.minigame-link-btn{color:#78350f;background:#fffbebe6;border:1px solid #78350f3d;border-radius:8px;min-height:30px;padding:0 10px;font-size:12px;font-weight:900}.minigame-body{gap:12px;display:grid}.minigame-body p{align-items:center;gap:6px;margin:0;display:flex}.whack-game{gap:10px;display:grid}.whack-game--ready{align-content:center;min-height:430px}.whack-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.whack-stats span{color:#78350f;text-align:center;background:#fffbebeb;border:1px solid #78350f33;border-radius:8px;place-items:center;min-width:0;min-height:34px;padding:5px 6px;font-size:11px;font-weight:950;display:grid}.whack-stats span.is-score-pulsing{animation:.52s cubic-bezier(.16,1,.3,1) both whack-score-pulse}.whack-stats span.is-score-pulsing--fruit{color:#166534;background:#dcfce7f5;border-color:#16a34a85}.whack-stats span.is-score-pulsing--bomb{color:#991b1b;background:#fee2e2f5;border-color:#dc26267a}.whack-progress{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;width:min(100%,350px);margin-inline:auto;display:grid}.whack-progress span{background:#fffbebe6;border:2px solid #3d231161;border-radius:999px;height:11px;overflow:hidden;box-shadow:0 2px #3d23112e,0 0 0 1px #ffffff6b}.whack-progress b{border-radius:inherit;transform-origin:0;background:#f97316;width:100%;height:100%;transition:transform .12s linear;display:block}.whack-progress span:last-child b{background:#22c55e;transition:none}.whack-grid{background:#fffbebc7;border:2px solid #78350f3d;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:min(100%,350px);margin-inline:auto;padding:8px;display:grid;box-shadow:0 7px #3d231138}.whack-ready{color:#3f2a13;text-align:center;background:#fffbebd1;border:2px solid #78350f3d;border-radius:8px;place-items:center;gap:14px;width:min(100%,350px);min-height:250px;margin-inline:auto;padding:22px 18px;display:grid;box-shadow:0 7px #3d231138}.whack-ready p{max-width:260px;margin:0;font-size:13px;font-weight:900;line-height:1.5}.whack-ready-token{background:#dcfce7;border:2px solid #3d23112e;border-radius:8px;place-items:center;width:78px;height:78px;display:grid;box-shadow:0 4px #3d231129}.whack-ready-token svg{filter:drop-shadow(0 4px 4px #3a281b33);width:52px;height:52px}.whack-cell{aspect-ratio:1;cursor:pointer;color:#78350f;min-width:0;font:inherit;touch-action:manipulation;background:#fffbebc7;border:2px solid #3d23112e;border-radius:8px;place-items:center;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative;box-shadow:0 4px #3d231129}.whack-cell:not(:disabled):hover{transform:translateY(-1px)}.whack-cell:not(:disabled):active{transform:translateY(2px)scale(.98);box-shadow:0 2px #3d231129}.whack-token{place-items:center;width:74%;height:74%;animation:.22s cubic-bezier(.16,1,.3,1) both whack-token-pop;display:grid}.whack-token svg{filter:drop-shadow(0 3px 3px #3a281b2e);width:100%;height:100%;overflow:visible}.whack-cell--mole{color:#166534;background:#dcfce7;border-color:#16653442}.whack-cell--bomb{color:#991b1b;background:#fee2e2;border-color:#991b1b3d}.whack-hit-effect{z-index:2;color:#fff;pointer-events:none;border:2px solid #fffbebe0;border-radius:999px;place-items:center;min-width:42px;min-height:30px;font-size:18px;font-weight:950;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.whack-hit-effect--fruit{background:#16a34a;animation:.64s cubic-bezier(.16,1,.3,1) both whack-score-rise;box-shadow:0 5px #16653438,0 0 18px #86efacd1}.whack-hit-effect--bomb{background:#dc2626;animation:.64s both whack-bomb-hit;box-shadow:0 5px #7f1d1d3d,0 0 18px #fca5a5d1}.whack-hit-effect--bomb:after{content:"";border:4px solid #f87171bf;border-radius:999px;animation:.64s ease-out both whack-bomb-ring;position:absolute;inset:-18px}.whack-hit-effect--bomb:before{content:"";background:radial-gradient(circle,#facc15 0 4px,#0000 5px) 50% 0/10px 10px no-repeat,radial-gradient(circle,#fb923c 0 4px,#0000 5px) 100%/10px 10px no-repeat,radial-gradient(circle,#facc15 0 4px,#0000 5px) 50% 100%/10px 10px no-repeat,radial-gradient(circle,#fb923c 0 4px,#0000 5px) 0/10px 10px no-repeat;animation:.64s ease-out both whack-bomb-sparks;position:absolute;inset:-22px}.whack-score-flight{z-index:3;pointer-events:none;background:#fffbebf0;border:2px solid #fffbebe6;border-radius:8px;place-items:center;width:34px;height:34px;animation:.74s cubic-bezier(.22,.86,.25,1) both whack-score-flight;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 6px 12px #3d231133}.whack-score-flight svg{width:24px;height:24px;overflow:visible}.whack-score-flight--fruit{background:#dcfce7}.whack-hint{color:#3f2a13;background:#fff8e8db;border:2px solid #78350f38;border-radius:8px;align-items:center;gap:6px;margin:0;padding:10px 12px;font-size:12px;font-weight:800;line-height:1.45;display:flex}.competition-whack-stage{justify-items:stretch;padding-inline:14px}.sliding-puzzle-game{gap:10px;width:min(100%,350px);margin-inline:auto;display:grid}.sliding-puzzle-stats{justify-content:space-between;gap:8px;display:flex}.sliding-puzzle-stats span,.sliding-puzzle-reference span{color:#3f2a13;background:#fff8e8eb;border:2px solid #3d23112e;border-radius:7px;padding:7px 9px;font-size:12px;font-weight:900}.sliding-puzzle-reference{align-items:center;gap:8px;display:flex}.sliding-puzzle-reference img{border:2px solid #3d231140;border-radius:7px;width:48px;height:48px;box-shadow:0 3px #3d231129}.sliding-puzzle-tools{justify-content:space-between;align-items:center;gap:8px;display:flex}.sliding-puzzle-tools>button,.sliding-puzzle-actions button{color:#3f2a13;background:#fff8e8;border:2px solid #3d23113d;border-radius:7px;align-items:center;gap:5px;padding:8px 10px;font-weight:900;display:inline-flex;box-shadow:0 3px #3d231129}.sliding-puzzle-tools>button:disabled,.sliding-puzzle-actions button:disabled{opacity:.45;box-shadow:none}.sliding-puzzle-board{aspect-ratio:1;background:#fffbebc7;border:2px solid #78350f47;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:5px;padding:8px;display:grid;position:relative;overflow:hidden;box-shadow:0 7px #3d231138}.sliding-puzzle-tile,.sliding-puzzle-empty{aspect-ratio:1;border-radius:7px;min-width:0}.sliding-puzzle-tile{cursor:default;touch-action:none;background-repeat:no-repeat;background-size:300% 300%;border:2px solid #3d231161;padding:0;transition:transform .14s,filter .14s;box-shadow:0 3px #3d231138}.sliding-puzzle-tile.is-movable:not(:disabled){cursor:pointer;filter:brightness(1.06)}.sliding-puzzle-tile.is-movable:not(:disabled):active{transform:scale(.95);box-shadow:0 1px #3d231133}.sliding-puzzle-empty{background:#78350f14;border:2px dashed #78350f2e}.sliding-puzzle-preview,.sliding-puzzle-win{z-index:3;color:#3f2a13;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fff8e8f0;border-radius:7px;align-content:center;place-items:center;gap:10px;font-weight:950;display:grid;position:absolute;inset:8px}.sliding-puzzle-preview img{border:3px solid #fff;border-radius:10px;width:72%;box-shadow:0 7px 18px #3d231140}.sliding-puzzle-win{color:#166534;background:#dcfce7f0;animation:.7s both sliding-puzzle-win}.sliding-puzzle-win strong{font-size:20px}.sliding-puzzle-win span{font-size:13px}.sliding-puzzle-actions{grid-template-columns:1fr auto;align-items:center;gap:8px;display:grid}.sliding-puzzle-actions p{color:#3f2a13;margin:0;font-size:12px;font-weight:800;line-height:1.45}.sliding-puzzle-actions .is-give-up{color:#991b1b;background:#fff1f2}.sliding-puzzle-game.is-won .sliding-puzzle-tile{animation:.6s both sliding-puzzle-tile-win}@keyframes sliding-puzzle-win{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes sliding-puzzle-tile-win{50%{filter:brightness(1.25);transform:scale(.97)}}.lights-out-game{gap:10px;width:min(100%,350px);margin-inline:auto;display:grid}.lights-out-board{aspect-ratio:1;background:#fffbebc7;border:2px solid #78350f47;border-radius:9px;gap:6px;padding:8px;display:grid;position:relative;overflow:hidden;box-shadow:0 7px #3d231138}.lights-out-board>button{cursor:pointer;min-width:0;transform-style:preserve-3d;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:7px;padding:0;transition:transform .36s cubic-bezier(.2,.75,.25,1);position:relative}.lights-out-board>button.is-front{transform:rotateY(180deg)}.lights-out-face{backface-visibility:hidden;border:2px solid #3d23114d;border-radius:7px;place-items:center;display:grid;position:absolute;inset:0;transform:translateZ(.1px);box-shadow:0 3px #3d231138}.lights-out-front{color:#166534;background:linear-gradient(145deg,#f0fdf4,#bbf7d0);transform:rotateY(180deg)translateZ(.1px)}.lights-out-front svg{filter:drop-shadow(0 2px 2px #16653426);width:45%;height:45%}.lights-out-back{background:repeating-linear-gradient(135deg,#ffffff17 0 5px,#0000 5px 10px),linear-gradient(145deg,#9a7353,#5e402d)}.lights-out-back:after{content:"";aspect-ratio:1;border:3px solid #fff8e885;border-radius:5px;width:42%;transform:rotate(45deg);box-shadow:inset 0 0 0 3px #3d231129}.lights-out-game.is-won .lights-out-board>button{animation:.6s both sliding-puzzle-tile-win}.lights-out-buttons{justify-content:flex-end;gap:6px;display:flex}.lights-out-buttons button{color:#3f2a13;background:#fff8e8;border:2px solid #3d23113d;border-radius:7px;align-items:center;gap:5px;padding:8px 10px;font-weight:900;display:inline-flex;box-shadow:0 3px #3d231129}.lights-out-buttons button:disabled{opacity:.45;box-shadow:none}.lights-out-buttons .is-give-up{color:#991b1b;background:#fff1f2}.schulte-game{gap:10px;display:grid}.schulte-game--ready{align-content:center;min-height:430px}.schulte-ready-token{color:#166534;background:#dcfce7;border:2px solid #3d23112e;border-radius:8px;place-items:center;min-width:132px;min-height:72px;font-size:22px;font-weight:950;display:grid;box-shadow:0 4px #3d231129}.schulte-grid{background:#fffbebc7;border:2px solid #78350f3d;border-radius:8px;gap:5px;width:min(100%,350px);margin-inline:auto;padding:8px;display:grid;box-shadow:0 7px #3d231138}.schulte-cell{aspect-ratio:1;color:#3f2a13;cursor:pointer;touch-action:manipulation;background:#fffbebf5;border:2px solid #3d231133;border-radius:7px;place-items:center;min-width:0;font-size:18px;font-weight:950;line-height:1;display:grid;box-shadow:0 3px #3d231124}.schulte-cell:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px #3d231124}.schulte-cell.is-done{color:#16653473;box-shadow:none;background:#dcfce7a6;border-color:#1665342e}.schulte-click-animation{z-index:100;pointer-events:none;background:#fffdf5;border:2px solid;border-radius:50%;place-items:center;width:42px;height:42px;font-size:18px;font-weight:950;line-height:1;display:grid;position:fixed;box-shadow:0 5px 14px #3d23113d}.schulte-click-animation.is-correct{color:#166534;animation:.52s cubic-bezier(.22,1,.36,1) both schulte-number-fly}.schulte-click-animation.is-wrong{color:#dc2626;background:#fef2f2;animation:.42s ease-out both schulte-number-wrong}@keyframes schulte-number-fly{0%{opacity:1;transform:translate(0)scale(1)}70%{opacity:1;transform:translate(var(--schulte-fly-x), var(--schulte-fly-y)) scale(.82)}to{opacity:0;transform:translate(var(--schulte-fly-x), var(--schulte-fly-y)) scale(.45)}}@keyframes schulte-number-wrong{0%,to{opacity:0;transform:translate(0)scale(.7)}18%{opacity:1;transform:translate(-8px)scale(1.12)}38%{opacity:1;transform:translate(8px)scale(1.08)}58%{opacity:1;transform:translate(-5px)scale(1)}78%{opacity:.8;transform:translate(4px)scale(.92)}}.monte-game{gap:14px;display:grid}.monte-game--ready{align-content:center;min-height:430px}.monte-ready-token{color:#111827;background:#fff;border:2px solid #c7ad82;border-radius:9px;place-items:center;width:78px;height:108px;font-size:25px;font-weight:950;display:grid;box-shadow:0 6px #3d23112e,0 0 0 2px #1e293b}.monte-table{background:#fffbebc7;border:2px solid #78350f3d;border-radius:8px;align-items:center;width:min(100%,350px);min-height:280px;margin-inline:auto;padding:26px 14px;position:relative;box-shadow:0 7px #3d231138}.monte-card{cursor:pointer;perspective:500px;will-change:transform;isolation:isolate;background:0 0;border:0;width:27%;padding:0;transition-property:transform;transition-timing-function:linear;position:absolute;top:50%;left:6%;translate:0 -50%}.monte-card:disabled{cursor:default}.monte-card-inner{aspect-ratio:.7;transform-style:preserve-3d;will-change:transform;border-radius:9px;transition:transform .42s;display:grid;translate:0}.monte-card.is-face-up .monte-card-inner{transform:rotateY(180deg)}.monte-card-back,.monte-card-front{backface-visibility:hidden;box-shadow:none;border:2px solid #c7ad82;border-radius:9px;grid-area:1/1;place-items:center;display:grid;overflow:hidden}.monte-card-back{color:#fff3d6;background:repeating-linear-gradient(45deg,#a85d38 0 7px,#87462f 7px 14px);font-size:13px;font-weight:950;transform:translateZ(1px)}.monte-card-back svg{stroke-width:3px;width:24px;height:24px}.monte-card-front{color:#111827;background:#fff;align-content:space-between;padding:9px;font-style:normal;transform:rotateY(180deg)translateZ(1px)}.monte-card-front b{justify-self:start;font-size:21px}.monte-card-front i{font-size:34px;font-style:normal}.monte-card-front .is-red{color:#dc2626}.monte-card.is-correct .monte-card-front{box-shadow:0 5px #14532d73,0 0 0 4px #86efac}.monte-card.is-wrong .monte-card-front{box-shadow:0 5px #7f1d1d73,0 0 0 4px #fca5a5}@keyframes whack-token-pop{0%{opacity:0;transform:scale(.5)rotate(-8deg)}70%{opacity:1;transform:scale(1.12)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes whack-score-rise{0%{opacity:0;transform:translate(-50%,-35%)scale(.64)}18%{opacity:1;transform:translate(-50%,-58%)scale(1.12)}to{opacity:0;transform:translate(-50%,-142%)scale(.92)}}@keyframes whack-bomb-hit{0%{opacity:0;transform:translate(-50%,-50%)scale(.72)rotate(0)}18%{opacity:1;transform:translate(calc(-50% - 4px),-50%)scale(1.1)rotate(-4deg)}32%{transform:translate(calc(4px - 50%),-50%)scale(1.08)rotate(4deg)}48%{transform:translate(calc(-50% - 2px),-50%)scale(1.02)rotate(-2deg)}to{opacity:0;transform:translate(-50%,-92%)scale(.9)rotate(0)}}@keyframes whack-bomb-ring{0%{opacity:.95;transform:scale(.32)}to{opacity:0;transform:scale(1.45)}}@keyframes whack-bomb-sparks{0%{opacity:0;transform:scale(.28)rotate(0)}26%{opacity:1;transform:scale(1.05)rotate(16deg)}to{opacity:0;transform:scale(1.6)rotate(36deg)}}@keyframes whack-score-flight{0%{opacity:0;transform:translate(-50%,-50%)scale(.56)rotate(-8deg)}16%{opacity:1;transform:translate(-50%,-64%)scale(1.08)rotate(4deg)}72%{opacity:1;transform:translate(calc(-50% + var(--fly-x)), calc(-50% + var(--fly-y) - 12px)) scale(.78) rotate(10deg)}to{opacity:0;transform:translate(calc(-50% + var(--fly-x)), calc(-50% + var(--fly-y))) scale(.42) rotate(0deg)}}@keyframes whack-score-pulse{0%{box-shadow:none;transform:scale(1)}34%{transform:scale(1.08);box-shadow:0 0 0 4px #fffbeb8c,0 6px 12px #3d231124}to{box-shadow:none;transform:scale(1)}}.minigame-input{color:#3f2a13;width:100%;min-height:44px;font:inherit;background:#ffffffeb;border:2px solid #78350f3d;border-radius:8px;outline:none;padding:0 12px;font-weight:900}.number-card-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.number-card-row span{color:#78350f;background:#fffbebeb;border:2px solid #78350f3d;border-radius:8px;place-items:center;min-height:58px;font-size:24px;font-weight:950;display:grid}.memory-sum-countdown{color:#78350f;background:#fffbebeb;border:2px solid #78350f3d;border-radius:999px;place-items:center;width:56px;height:56px;margin:0 auto 10px;font-size:24px;font-weight:950;display:grid}.memory-match-page{overflow:hidden}.memory-match-page-topbar{z-index:2;color:#fff8e8;text-shadow:0 2px 8px #25160c73;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 0;display:flex;position:relative}.memory-match-page-topbar .minigame-link-btn{align-items:center;gap:5px;display:inline-flex}.memory-match-stage{z-index:2;align-content:center;min-height:calc(100% - 54px);padding:18px 18px 22px;transition:opacity .24s,transform .24s;display:grid;position:relative}.memory-match-page.is-returning .memory-match-stage{opacity:0;transform:translateY(10px)scale(.985)}.number-bomb-stage{align-content:end}.number-bomb-game{background:#fff8e8f0;border:3px solid #3a281b;border-radius:8px;gap:12px;padding:16px;animation:.26s cubic-bezier(.22,1,.36,1) story-node-enter;display:grid;box-shadow:0 8px #3d231147}.number-bomb-display{color:#78350f;background:#fffbebf5;border:2px solid #78350f40;border-radius:8px;place-items:center;min-height:82px;font-size:42px;font-weight:950;display:grid}.number-bomb-message{color:#3f2a13;min-height:28px;margin:0;font-size:14px;font-weight:900;line-height:1.5}.number-bomb-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.number-bomb-keypad button{aspect-ratio:1.38;color:#3f2a13;font:inherit;background:#ffffffe0;border:2px solid #78350f40;border-radius:8px;place-items:center;font-size:22px;font-weight:950;display:grid;box-shadow:0 3px #3d23112e}.number-bomb-keypad button:disabled,.number-bomb-game .primary-btn:disabled{opacity:.64}.number-bomb-keypad button.is-text{font-size:15px}.memory-sum-stage{align-content:center}.memory-sum-game .minigame-stats span{background:#fffffff5}.memory-sum-game{background:#fff8e8f0;border:3px solid #3a281b;border-radius:8px;gap:12px;padding:16px;animation:.26s cubic-bezier(.22,1,.36,1) story-node-enter;display:grid;box-shadow:0 8px #3d231147}.memory-sum-display{color:#78350f;background:#fffbebf5;border:2px solid #78350f40;border-radius:8px;place-items:center;min-height:82px;font-size:42px;font-weight:950;display:grid}.memory-sum-message{color:#3f2a13;min-height:28px;margin:0;font-size:14px;font-weight:900;line-height:1.5}.memory-sum-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.memory-sum-keypad button{aspect-ratio:1.38;color:#3f2a13;font:inherit;background:#ffffffe0;border:2px solid #78350f40;border-radius:8px;place-items:center;font-size:22px;font-weight:950;display:grid;box-shadow:0 3px #3d23112e}.memory-sum-keypad button:disabled,.memory-sum-game .primary-btn:disabled{opacity:.64}.memory-sum-keypad button.is-text{font-size:15px}.memory-match-page.twenty-four-page{flex-direction:column;display:flex}.twenty-four-stage{flex-direction:column;flex:1;justify-content:flex-end;min-height:0;display:flex;overflow:hidden}.twenty-four-game{scrollbar-color:#68391b57 transparent;scrollbar-width:thin;background:#fff8e8f0;border:3px solid #3a281b;border-radius:8px;gap:12px;max-height:100%;padding:16px;animation:.26s cubic-bezier(.22,1,.36,1) story-node-enter;display:grid;overflow:auto;box-shadow:0 8px #3d231147}.twenty-four-game::-webkit-scrollbar{width:4px}.twenty-four-game::-webkit-scrollbar-track{background:0 0}.twenty-four-game::-webkit-scrollbar-thumb{background:#68391b57;border-radius:999px}.twenty-four-game::-webkit-scrollbar-thumb:hover{background:#68391b80}.twenty-four-display{color:#78350f;word-break:break-all;text-align:center;background:#fffbebf5;border:2px solid #78350f40;border-radius:8px;place-items:center;min-height:72px;padding:10px 12px;font-size:24px;font-weight:950;line-height:1.35;display:grid}.twenty-four-message{color:#3f2a13;min-height:28px;margin:0;font-size:14px;font-weight:900;line-height:1.5}.twenty-four-keypad{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.twenty-four-keypad button{aspect-ratio:1.25;color:#3f2a13;font:inherit;background:#ffffffe0;border:2px solid #78350f40;border-radius:8px;place-items:center;font-size:20px;font-weight:950;display:grid;box-shadow:0 3px #3d23112e}.twenty-four-keypad button.is-op{color:#9a3412;background:#ffedd5eb}.twenty-four-keypad button.is-wide{aspect-ratio:auto;grid-column:span 2;min-height:48px}.twenty-four-keypad button:disabled,.twenty-four-game .primary-btn:disabled{opacity:.64}.memory-match-game{perspective:900px;gap:14px;display:grid}.memory-match-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.memory-match-stats span{color:#78350f;background:#fffbebe6;border:1px solid #78350f33;border-radius:8px;place-items:center;min-height:36px;padding:5px 7px;font-size:12px;font-weight:950;display:grid}.memory-match-grid{transform-style:preserve-3d;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.memory-match-card{aspect-ratio:1/1.22;cursor:pointer;min-height:62px;font:inherit;transform-style:preserve-3d;animation:.52s cubic-bezier(.18,.9,.2,1.18) both memory-card-deal;animation-delay:calc(var(--card-index) * 34ms);background:0 0;border:0;border-radius:8px;place-items:center;transition:transform .18s;display:grid;position:relative;transform:translateY(0)rotate(0)}.memory-match-card:not(:disabled):hover{transform:translateY(-2px)rotate(-1deg)}.memory-match-card-face{backface-visibility:hidden;border:2px solid #78350f3d;border-radius:8px;place-items:center;font-size:20px;font-weight:950;transition:transform .32s cubic-bezier(.22,1,.36,1),background .18s,color .18s,box-shadow .18s;display:grid;position:absolute;inset:0;box-shadow:0 5px #3d231133}.memory-match-card-back{color:#78350f;background:linear-gradient(135deg,#ffffff2e 25%,#0000 25%) 0 0/16px 16px,linear-gradient(135deg,#0000 75%,#ffffff2e 75%) 0 0/16px 16px,#fff7d6}.memory-match-card-front{color:#166534;background:#ecfdf5f5;transform:rotateY(180deg)}.memory-match-card.is-face-up .memory-match-card-back{transform:rotateY(180deg)}.memory-match-card.is-face-up .memory-match-card-front{transform:rotateY(360deg)}.memory-match-card.is-face-up .memory-match-card-face{border-color:#15803d57}.memory-match-card.is-matched{animation:.42s both memory-card-match}.memory-match-card.is-matched .memory-match-card-face{color:#14532d;background:#dcfce7db;box-shadow:0 2px #15803d2e}.memory-match-card:disabled{cursor:default}.memory-match-game.is-success .memory-match-card{animation:.78s cubic-bezier(.2,.85,.24,1) both memory-card-gather;animation-delay:calc(var(--card-index) * 22ms)}.memory-match-game.is-failure .memory-match-grid{animation:.42s both memory-card-fail}.memory-match-message{color:#3f2a13;text-align:center;background:#fffbebe6;border-radius:8px;justify-content:center;min-height:42px;padding:10px 12px;font-size:13px;font-weight:900}.memory-match-expired{z-index:2;color:#fff8e8;text-align:center;text-shadow:0 2px 8px #25160c73;align-content:center;justify-items:center;gap:12px;min-height:100%;padding:30px;display:grid;position:relative}.memory-match-expired p{margin:0}.minesweeper-stage{align-content:start;padding-inline:14px}.minesweeper-game{gap:10px;display:grid}.minesweeper-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.minesweeper-stats span,.minesweeper-toolbar button,.minesweeper-toolbar span{color:#78350f;background:#fffbebeb;border:1px solid #78350f33;border-radius:8px;place-items:center;min-height:34px;padding:5px 6px;font-size:11px;font-weight:950;display:grid}.minesweeper-toolbar{grid-template-columns:78px 78px minmax(0,1fr);gap:7px;display:grid}.minesweeper-toolbar button{cursor:pointer;font:inherit;grid-auto-flow:column;justify-content:center;gap:5px}.minesweeper-toolbar button.is-active{color:#fff8e8;background:#166534;border-color:#16653473}.minesweeper-hint{color:#78350f;text-align:center;background:#fffbebe6;border-radius:8px;margin:0;padding:9px 12px;font-size:12px;font-weight:900}.minesweeper-grid{grid-template-columns:repeat(var(--mine-cols), minmax(0, 1fr));background:#fffbebe0;border:1px solid #78350f33;border-radius:8px;gap:4px;padding:8px;display:grid}.minesweeper-cell{aspect-ratio:1;color:#78350f;cursor:pointer;min-width:0;font:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#fef3c7;border:1px solid #78350f3d;border-radius:6px;place-items:center;font-size:14px;font-weight:950;line-height:1;transition:transform .14s,background .16s,box-shadow .16s;display:grid;box-shadow:0 3px #3d23112e}.minesweeper-cell:not(:disabled):hover{transform:translateY(-1px)}.minesweeper-cell.is-open{color:#3f2a13;background:#fffbebd6;box-shadow:inset 0 1px 2px #3d23111f}.minesweeper-cell.is-flagged{color:#b91c1c}.minesweeper-flag{width:26px;height:26px;overflow:visible}.minesweeper-flag-pole,.minesweeper-flag-base{fill:none;stroke:#7f1d1d;stroke-linecap:round;stroke-width:3px}.minesweeper-flag-cloth{fill:#ef4444;stroke:#991b1b;stroke-linejoin:round;stroke-width:2px}.minesweeper-flag-shine{fill:none;stroke:#ffffffb8;stroke-linecap:round;stroke-width:2px}.minesweeper-mine{width:27px;height:27px;overflow:visible}.minesweeper-mine-body{fill:#3f2a13;stroke:#120b05;stroke-width:2px}.minesweeper-mine-fuse{fill:none;stroke:#3f2a13;stroke-linecap:round;stroke-width:2.4px}.minesweeper-mine-spark{fill:#facc15;stroke:#dc2626;stroke-width:1.2px}.minesweeper-mine-shine{fill:#ffffff85}.minesweeper-mine-burst{opacity:0;fill:none;stroke:#f97316;stroke-linecap:round;stroke-width:2.6px;transform-origin:50%}.minesweeper-mine.is-exploding{animation:1.2s ease-out both mine-pop}.minesweeper-mine.is-exploding .minesweeper-mine-burst{animation:1.2s ease-out both mine-burst}@keyframes mine-pop{0%{transform:scale(.68)rotate(-10deg)}42%{transform:scale(1.45)rotate(9deg)}to{transform:scale(1)rotate(0)}}@keyframes mine-burst{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.42)}to{opacity:0;transform:scale(2.05)}}.minesweeper-cell.count-1{color:#2563eb}.minesweeper-cell.count-2{color:#15803d}.minesweeper-cell.count-3{color:#dc2626}.minesweeper-cell.count-4{color:#7c3aed}.minesweeper-cell.count-5,.minesweeper-cell.count-6,.minesweeper-cell.count-7,.minesweeper-cell.count-8{color:#0f766e}.minesweeper-message{color:#3f2a13;text-align:center;background:#fffbebe6;border-radius:8px;min-height:40px;margin:0;padding:10px 12px;font-size:13px;font-weight:900}.minesweeper-game.is-won .minesweeper-grid{animation:.52s both memory-card-match}.minesweeper-game.is-lost .minesweeper-grid{animation:.42s both memory-card-fail}.minesweeper-return-icon{color:#fff8e8;filter:drop-shadow(0 2px 5px #25160c59);justify-self:center}.one-stroke-stage{align-content:center;padding-inline:14px}.one-stroke-game{gap:10px;animation:.26s cubic-bezier(.22,1,.36,1) story-node-enter;display:grid}.one-stroke-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.one-stroke-stats span{color:#78350f;text-align:center;background:#fffbebf0;border:1px solid #78350f33;border-radius:8px;place-items:center;min-height:34px;padding:5px 6px;font-size:11px;font-weight:950;display:grid}.one-stroke-grid{--one-stroke-gap:5px;grid-template-columns:repeat(var(--one-stroke-cols), minmax(0, 1fr));grid-template-rows:repeat(var(--one-stroke-rows), minmax(0, 1fr));gap:var(--one-stroke-gap);width:min(100%,360px);aspect-ratio:var(--one-stroke-cols) / var(--one-stroke-rows);touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#ffffff6b,#0000 38%),radial-gradient(circle at 50% 32%,#fef08a52,#0000 34%),#fffbebe6;border:2px solid #78350f3d;border-radius:8px;margin-inline:auto;padding:8px;display:grid;position:relative;overflow:hidden;box-shadow:0 7px #3d231138}.one-stroke-cell{z-index:1;color:#78350f;cursor:pointer;min-width:0;min-height:0;font:inherit;background:#fffbebeb;border:2px solid #78350f33;border-radius:8px;place-items:center;transition:transform .14s,background .16s,border-color .16s,box-shadow .16s;display:grid;position:relative;overflow:visible;box-shadow:0 3px #3d231129}.one-stroke-cell.is-empty{box-shadow:none;pointer-events:none;background:0 0;border-color:#0000}.one-stroke-cell.is-playable:not(:disabled):hover{transform:translateY(-1px)}.one-stroke-cell.is-visited{background:radial-gradient(circle at 50% 48%,#bbf7d094,#0000 56%),#f0fdf4f5;border-color:#16a34a6b}.one-stroke-cell.is-current{border-color:#ca8a04b8;box-shadow:0 0 0 3px #fef08a94,0 3px #3d231129}.one-stroke-cell.is-current-target{background:radial-gradient(circle at 50% 48%,#fef08a80,#0000 58%),#fffbebf5;border-color:#ca8a04c7}.one-stroke-cell.is-target-reached{border-color:#16a34a80}.one-stroke-marker{z-index:4;color:#78350f;filter:drop-shadow(0 2px 2px #3d23112e);pointer-events:none;position:relative}.one-stroke-marker-start{color:#9a3412;fill:#fbbf243d}.one-stroke-target-marker{z-index:4;pointer-events:none;place-items:center;width:22px;height:22px;display:grid;position:relative}.one-stroke-flag{filter:drop-shadow(0 1px 2px #3d231129);width:23px;height:23px;overflow:visible}.one-stroke-flag-pole,.one-stroke-flag-base{fill:none;stroke:#7f1d1d;stroke-linecap:round;stroke-width:3px}.one-stroke-flag-cloth{fill:#ef4444;stroke:#991b1b;stroke-linejoin:round;stroke-width:2px}.one-stroke-flag-shine{fill:none;stroke:#ffffffb8;stroke-linecap:round;stroke-width:2px}.one-stroke-target-marker.is-active .one-stroke-flag-cloth{fill:#fde047;stroke:#ca8a04}.one-stroke-target-marker.is-active .one-stroke-flag-pole,.one-stroke-target-marker.is-active .one-stroke-flag-base{stroke:#92400e}.one-stroke-target-marker.is-reached .one-stroke-flag-cloth{fill:#86efac;stroke:#16a34a}.one-stroke-target-marker.is-reached .one-stroke-flag-pole,.one-stroke-target-marker.is-reached .one-stroke-flag-base{stroke:#166534}.one-stroke-target-index{color:#fff8e8;background:#166534;border:1.5px solid #fff8e8eb;border-radius:999px;place-items:center;min-width:13px;height:13px;padding:0 3px;font-size:8px;font-weight:950;line-height:1;display:grid;position:absolute;bottom:-4px;right:-4px;box-shadow:0 1px 2px #3d231138}.one-stroke-target-marker.is-active .one-stroke-target-index{background:#ca8a04}.one-stroke-path-svg{z-index:2;pointer-events:none;position:absolute;inset:8px;overflow:visible}.one-stroke-path-line,.one-stroke-path-shadow{fill:none;stroke-linecap:round;stroke-linejoin:round}.one-stroke-path-shadow{stroke:#14532d38;transform:translate(1px,1px)}.one-stroke-path-line{stroke:url(#one-stroke-path-gradient);filter:drop-shadow(0 1px 1px #14532d2e);animation:.18s cubic-bezier(.16,1,.3,1) both one-stroke-line-enter}.one-stroke-path-dot{fill:#16a34a;filter:drop-shadow(0 1px 1px #14532d2e);animation:.18s cubic-bezier(.16,1,.3,1) both one-stroke-line-enter}.one-stroke-game.is-won .one-stroke-path-line,.one-stroke-game.is-won .one-stroke-path-dot{animation:.76s both one-stroke-path-shine}.one-stroke-game.has-error .one-stroke-grid{animation:.36s one-stroke-error-shake}.one-stroke-actions{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px;display:grid}.one-stroke-message{color:#3f2a13;background:#fffbebeb;border-radius:8px;align-items:center;min-height:42px;margin:0;padding:9px 11px;font-size:12px;font-weight:900;line-height:1.45;display:grid}.one-stroke-reset-btn{color:#78350f;min-width:94px;font:inherit;background:#fffbebf0;border:2px solid #78350f38;border-radius:8px;grid-auto-flow:column;justify-content:center;align-items:center;gap:5px;font-size:12px;font-weight:950;display:inline-grid;box-shadow:0 3px #3d231129}.one-stroke-reset-btn:disabled{cursor:default;opacity:.58}.one-stroke-game.is-won .one-stroke-grid{animation:.9s both one-stroke-board-win}.one-stroke-game.is-lost .one-stroke-grid{animation:.42s both memory-card-fail}.one-stroke-complete{pointer-events:none;position:absolute;inset:0}.one-stroke-complete span{width:7px;height:7px;animation:.92s ease-out forwards one-stroke-spark;animation-delay:calc(var(--spark-index) * 24ms);background:#facc15;border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #facc15e6}.one-stroke-finish{color:#fff8e8;text-shadow:0 2px 8px #25160c73;grid-auto-flow:column;justify-content:center;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:950;display:inline-grid}@keyframes one-stroke-line-enter{0%{opacity:.52}to{opacity:1}}@keyframes one-stroke-path-shine{0%,to{filter:brightness()}46%{filter:brightness(1.35)saturate(1.15)}}@keyframes one-stroke-error-shake{0%,to{transform:translate(0)}22%{transform:translate(-6px)}44%{transform:translate(5px)}66%{transform:translate(-3px)}84%{transform:translate(2px)}}@keyframes one-stroke-board-win{0%{transform:scale(1);box-shadow:0 7px #3d231138}52%{transform:scale(1.025);box-shadow:0 7px #3d231138,0 0 0 7px #facc1561}to{transform:scale(1);box-shadow:0 7px #3d231138}}@keyframes one-stroke-spark{0%{opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--spark-index) * 26deg)) translateY(0) scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(-50%, -50%) rotate(calc(var(--spark-index) * 26deg)) translateY(-132px) scale(1)}}.initial-match3-stage{padding-inline:14px}.initial-match3-game{gap:10px;display:grid}.initial-match3-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.initial-match3-stats,.initial-match3-attributes{width:min(100%,350px);margin-inline:auto}.initial-match3-attributes{padding:0}.initial-match3-actions{grid-template-columns:.8fr 1.2fr;gap:8px;display:grid}.initial-match3-hint-btn{color:#78350f;min-height:42px;font:inherit;background:#fffbebeb;border:2px solid #78350f33;border-radius:999px;grid-auto-flow:column;justify-content:center;align-items:center;gap:5px;font-size:13px;font-weight:950;display:inline-grid;box-shadow:0 4px #3d231129}.initial-match3-hint-btn:disabled{cursor:default;opacity:.68}.initial-match3-stats span{color:#78350f;background:#fffbebeb;border:1px solid #78350f33;border-radius:8px;grid-auto-flow:column;justify-content:center;place-items:center;gap:4px;min-height:34px;padding:5px 6px;font-size:11px;font-weight:950;display:grid}.initial-match3-board{grid-template-columns:repeat(var(--match3-size), minmax(0, 1fr));background:#fffbebc7;border:2px solid #78350f3d;border-radius:8px;gap:6px;width:min(100%,350px);margin-inline:auto;padding:8px;display:grid;box-shadow:0 7px #3d231138}.initial-match3-cell{aspect-ratio:1;cursor:pointer;min-width:0;font:inherit;contain:layout paint;backface-visibility:hidden;touch-action:none;-webkit-user-select:none;user-select:none;border:2px solid #3d23112e;border-radius:8px;place-items:center;font-size:23px;font-weight:950;transition:transform .26s cubic-bezier(.2,.85,.24,1),opacity .2s,box-shadow .18s,border-color .18s;display:grid;position:relative;transform:translate(0,0);box-shadow:0 4px #3d231129}.initial-match3-icon{place-items:center;width:28px;height:28px;line-height:1;display:grid}.initial-match3-icon svg{width:100%;height:100%;overflow:visible}.initial-match3-icon path,.initial-match3-icon rect,.initial-match3-icon circle{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.initial-match3-icon .match3-icon-fill{fill:currentColor;fill-opacity:.18}.initial-match3-flight-layer{z-index:80;pointer-events:none;position:fixed;inset:0}.initial-match3-flight{opacity:0;will-change:transform, opacity;background:#fffbebf0;border-radius:999px;place-items:center;width:30px;height:30px;animation:.76s cubic-bezier(.2,.82,.2,1) forwards match3-flight;display:grid;position:absolute;transform:translate(-50%,-50%)scale(.72);box-shadow:0 8px 18px #3d23113d,0 0 0 2px #fff8e8d1}.initial-match3-flight svg{width:22px;height:22px}.initial-match3-flight path,.initial-match3-flight rect,.initial-match3-flight circle{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.initial-match3-flight .match3-icon-fill{fill:currentColor;fill-opacity:.18}.initial-match3-flight--algorithm{color:#1d4ed8}.initial-match3-flight--culture{color:#7c2d12}.initial-match3-flight--health{color:#166534}.initial-match3-flight--mood{color:#9d174d}.initial-match3-cell:not(:disabled):hover{transform:translateY(-1px)}.initial-match3-cell.is-selected{border-color:#2563ebc7;transform:translateY(-2px)scale(1.03);box-shadow:0 0 0 3px #93c5fd94,0 4px #3d231124}.initial-match3-cell.is-hinting{will-change:transform;border-color:#eab308f2;animation:.9s ease-in-out infinite match3-hint-nudge;box-shadow:0 0 0 4px #fef08ad1,0 4px #3d231124}.initial-match3-cell.is-hinting-right{--hint-x:3px;--hint-y:0}.initial-match3-cell.is-hinting-left{--hint-x:-3px;--hint-y:0}.initial-match3-cell.is-hinting-down{--hint-x:0;--hint-y:3px}.initial-match3-cell.is-hinting-up{--hint-x:0;--hint-y:-3px}.initial-match3-cell.is-hinting:after{content:"";pointer-events:none;border:2px solid #facc15b8;border-radius:12px;animation:.9s ease-in-out infinite match3-hint-pulse;position:absolute;inset:-7px}.initial-match3-cell:disabled{cursor:default}.initial-match3-cell.is-swapping-right{transform:translate(calc(100% + 6px))}.initial-match3-cell.is-swapping-left{transform:translate(calc(-100% - 6px))}.initial-match3-cell.is-swapping-down{transform:translateY(calc(100% + 6px))}.initial-match3-cell.is-swapping-up{transform:translateY(calc(-100% - 6px))}.initial-match3-cell.is-swapping,.initial-match3-cell.is-clearing,.initial-match3-cell.is-falling{will-change:transform, opacity}.initial-match3-cell.is-invalid-swap{animation:.46s both match3-invalid-swap}.initial-match3-cell.is-clearing{pointer-events:none;animation:.36s cubic-bezier(.16,1,.3,1) both match3-clear}.initial-match3-cell.is-falling{animation:.48s cubic-bezier(.2,.85,.24,1.12) both match3-fall}.initial-match3-cell--algorithm{color:#1d4ed8;background:#dbeafe}.initial-match3-cell--culture{color:#7c2d12;background:#ffedd5}.initial-match3-cell--health{color:#166534;background:#dcfce7}.initial-match3-cell--mood{color:#9d174d;background:#fce7f3}@keyframes match3-clear{0%{opacity:1;transform:translate(0,0)scale(1)rotate(0)}45%{opacity:1;transform:translate(0,0)scale(1.16)rotate(-5deg)}to{opacity:0;transform:translate(0,0)scale(.18)rotate(12deg)}}@keyframes match3-flight{0%{opacity:0;transform:translate(-50%,-50%)scale(.72)}16%{opacity:1;transform:translate(-50%,-50%)translateY(-10px)scale(1.08)}78%{opacity:1;transform:translate(-50%, -50%) translate3d(var(--fly-x), calc(var(--fly-y) - 5px), 0) scale(.92)}to{opacity:0;transform:translate(-50%, -50%) translate3d(var(--fly-x), var(--fly-y), 0) scale(.36)}}@keyframes match3-hint-pulse{0%{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}to{opacity:.45;transform:scale(.94)}}@keyframes match3-hint-nudge{0%{transform:translate(0,0)}42%{transform:translate3d(var(--hint-x), var(--hint-y), 0)}70%{transform:translate3d(calc(var(--hint-x) * .35), calc(var(--hint-y) * .35), 0)}to{transform:translate(0,0)}}@keyframes match3-fall{0%{opacity:0;transform:translateY(-110%)scale(.88)}70%{opacity:1;transform:translateY(4px)scale(1.04)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes match3-invalid-swap{0%{opacity:1}48%{opacity:1}50%{opacity:.85}to{opacity:1}}.coin-grid{gap:8px;display:grid}.coin-grid>div{background:#ffffffb8;border:1px solid #78350f33;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:8px;display:grid}.coin-grid div div{align-items:center;gap:8px;display:flex}.coin-grid button{color:#fff7ed;background:#78350f;border:0;border-radius:8px;place-items:center;min-width:38px;min-height:38px;font-weight:950;display:grid}.coin-grid span{text-align:center;min-width:28px;font-weight:950}.packet-game{gap:10px}.packet-hud{justify-content:space-between;align-items:center;gap:10px;display:flex}.packet-timer{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.packet-timer-track{background:#ffffffb8;border:1px solid #78350f33;border-radius:999px;flex:1;height:10px;overflow:hidden}.packet-timer-bar{border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#dc2626);height:100%;transition:width 80ms linear}.packet-timer-label{color:#78350f;min-width:28px;font-size:12px;font-weight:950}.packet-score-badge{color:#78350f;white-space:nowrap;background:#ffffffd1;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}.packet-board{touch-action:none;background:#fff7ed80;border:2px solid #78350f3d;border-radius:14px;height:280px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff59}.packet-canvas{width:100%;height:280px;display:block}.packet-board.is-entering{animation:.5s ease-out both packet-board-enter}.packet-board.is-shaking{animation:.4s ease-in-out packet-board-shake}.packet-prepare-overlay{z-index:4;color:#fff7ed;letter-spacing:.08em;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#3f2a1347;place-items:center;font-size:18px;font-weight:950;display:grid;position:absolute;inset:0}.packet-lane{border-right:1px solid #78350f1f;position:relative}.packet-lane:last-child{border-right:0}.packet-lane.is-active{background:linear-gradient(#fbbf241f,#fbbf240a)}.packet-item{z-index:2;color:#fff;will-change:top, transform;border-radius:10px 10px 12px 12px;place-items:center;width:38px;height:46px;font-size:11px;font-weight:950;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 6px 14px #452e1b38}.packet-item.good{background:linear-gradient(#ef4444,#b91c1c)}.packet-item.good:before{content:"";background:linear-gradient(#fca5a5,#ef4444);border-radius:6px 6px 0 0;width:28px;height:12px;position:absolute;top:-7px;left:50%;transform:translate(-50%)}.packet-item-seal{color:#7c2d12;background:radial-gradient(circle at 35% 30%,#fde68a,#f59e0b);border-radius:999px;place-items:center;width:20px;height:20px;font-size:11px;display:grid;box-shadow:inset 0 0 0 1px #7c2d122e}.packet-item.bad{background:linear-gradient(#64748b,#334155)}.packet-item-empty{color:#ffffffeb;border:2px dashed #ffffffb8;border-radius:999px;place-items:center;width:22px;height:22px;font-size:10px;display:grid}.packet-player{z-index:3;width:0;height:0;transition:left .2s;position:absolute;bottom:12px}.packet-player-basket{background:linear-gradient(#a16207,#78350f);border-radius:10px 10px 14px 14px;width:44px;height:28px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 4px #3d231147}.packet-player-basket:before{content:"";background:linear-gradient(#fcd34d,#f59e0b);border-radius:999px;width:22px;height:22px;position:absolute;top:-16px;left:50%;transform:translate(-50%);box-shadow:inset 0 -2px #78350f2e}.packet-board.is-entering .packet-player-basket{animation:.5s ease-out both packet-player-enter}.packet-popup{z-index:5;color:#fef3c7;text-shadow:0 2px #3d231159;pointer-events:none;font-size:16px;font-weight:950;animation:.65s ease-out forwards packet-popup-rise;position:absolute;bottom:52px;transform:translate(-50%)}.packet-popup.good{color:#fef08a}.packet-popup.bad{color:#fecaca}.packet-controls{justify-content:center;align-items:center;gap:12px;display:flex}.packet-control-btn{color:#fff7ed;background:linear-gradient(#9a3412,#78350f);border:0;border-radius:12px;place-items:center;min-width:48px;min-height:48px;font-weight:950;transition:transform .12s,opacity .12s;display:grid;box-shadow:0 4px #3d231147}.packet-control-btn:active:not(:disabled){transform:translateY(2px)scale(.96);box-shadow:0 2px #3d231147}.packet-control-btn:disabled{cursor:default;opacity:.45}.packet-lane-dots{justify-content:center;align-items:center;gap:8px;min-width:56px;display:flex}.packet-lane-dots span{background:#78350f38;border-radius:999px;width:10px;height:10px;transition:transform .16s,background .16s}.packet-lane-dots span.is-active{background:#dc2626;transform:scale(1.2)}@keyframes packet-board-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes packet-board-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes packet-player-enter{0%{opacity:0;transform:translate(-50%)translateY(18px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes packet-popup-rise{0%{opacity:0;transform:translate(-50%)translateY(8px)scale(.9)}20%{opacity:1;transform:translate(-50%)translateY(0)scale(1.05)}to{opacity:0;transform:translate(-50%)translateY(-28px)scale(1)}}.minigame-tiers{gap:6px;font-size:11px;display:grid}.minigame-tiers div{background:#ffffff9e;border-radius:8px;gap:2px;padding:7px 9px;display:grid}.minigame-tiers b{color:#78350f}.admin-meta{margin-top:12px}.admin-meta dt{color:var(--admin-muted);font-weight:800}.admin-meta dd{margin:4px 0 12px}.json-admin-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:14px;display:grid}.json-editor{min-height:620px}.validation-list{gap:8px;margin-top:12px;display:grid}.admin-lower-panel{width:100%;margin-top:14px}.ending-admin-grid{grid-template-columns:320px minmax(0,1fr) 300px}.node-manager,.start-admin-grid{gap:14px;display:grid}.node-manager-grid{grid-template-columns:520px minmax(0,1fr);align-items:start;gap:14px;display:grid}.node-manager-list-content{gap:12px;display:grid}.node-workbench-card{min-height:720px}.node-filter-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.node-filter-grid>div:last-child{grid-column:1/-1}.grade-custom-input{margin-top:8px}.node-table{scrollbar-width:none;gap:4px;max-height:650px;display:grid;overflow:auto}.node-table::-webkit-scrollbar{display:none}.node-table-row{border:1px solid var(--admin-line);width:100%;min-height:38px;color:var(--admin-ink);text-align:left;background:#fff;border-radius:8px;grid-template-columns:100px 110px 88px 72px minmax(0,1fr);align-items:center;gap:10px;padding:0 10px;display:grid}.node-table-full{min-height:420px;max-height:calc(100vh - 390px)}.node-table-full .node-table-row{grid-template-columns:140px 120px 120px 96px minmax(0,1fr)}.node-table-row:not(.node-table-head):hover,.node-table-row.is-active{background:#f8fafc;border-color:#94a3b8}.node-table-row.is-active{box-shadow:inset 3px 0 0 var(--admin-primary)}.node-table-head{z-index:1;min-height:32px;color:var(--admin-muted);background:#f1f5f9;font-size:12px;font-weight:900;position:sticky;top:0}.node-table-row span,.node-table-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.node-table-row span{color:var(--admin-muted);font-size:12px;font-weight:900}.node-table-row strong{font-size:13px}.node-pagination{color:var(--admin-muted);justify-content:flex-end;align-items:center;gap:10px;font-size:13px;font-weight:900;display:flex}.node-background-row{align-items:stretch}.background-preview{border:1px solid var(--admin-line);min-height:150px;color:var(--admin-muted);background-color:#e2e8f0;background-position:50%;background-size:cover;border-radius:8px;place-items:center;font-size:13px;font-weight:900;display:grid;overflow:hidden}.background-batch-editor{gap:16px;display:grid}.background-batch-controls{gap:14px;display:grid}.background-batch-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.background-batch-filter-grid>div:last-child{grid-column:auto}.background-batch-summary{color:var(--admin-muted);margin:0;font-size:14px;font-weight:700}.background-batch-summary strong{color:var(--admin-ink)}.background-batch-action{gap:12px;display:grid}.background-batch-action-row{gap:8px;display:grid}.node-table-backgrounds .node-table-row{grid-template-columns:120px 88px 72px minmax(120px,.8fr) minmax(0,1fr)}.node-table-static{cursor:default}.field-hint{color:var(--admin-muted);margin:8px 0 0;font-size:12px;line-height:1.4}.admin-checkbox-row{color:var(--admin-ink);cursor:pointer;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:700;display:inline-flex}.admin-checkbox-row input{width:16px;height:16px;accent-color:var(--admin-primary);margin:0}.node-drawer-backdrop{z-index:40;background:#0f172a3d;justify-content:flex-end;display:flex;position:fixed;inset:0}.node-drawer{border-left:1px solid var(--admin-line);background:#fff;grid-template-rows:auto minmax(0,1fr);width:min(860px,100vw - 220px);height:100vh;display:grid;box-shadow:-24px 0 60px #0f172a2e}.node-drawer-header{border-bottom:1px solid var(--admin-line);justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px 14px;display:flex}.detail-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.node-drawer-header h2{margin:8px 0 4px;font-size:20px;line-height:1.2}.node-drawer-header p{color:var(--admin-muted);margin:0;font-size:13px;line-height:1.5}.node-drawer-content{padding:18px 24px 24px;overflow:auto}.node-drawer .form-row.four{grid-template-columns:repeat(2,minmax(0,1fr))}.story-graph-layout{gap:12px;width:100%;display:grid}.story-graph-toolbar-card .ui-card-content{gap:12px;display:grid}.story-graph-toolbar-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.story-graph-search{flex:280px;align-items:center;gap:8px;display:flex}.story-graph-search input{min-width:0}.story-graph-toggle{color:var(--admin-muted);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.story-graph-type-filters{gap:8px;display:grid}.story-graph-type-filter-list{flex-wrap:wrap;gap:8px;display:flex}.story-graph-type-chip{border:1px solid var(--admin-line);color:var(--admin-muted);background:#fff;border-radius:999px;padding:4px 12px;font-size:12px}.story-graph-type-chip.is-active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.story-graph-legend{flex-wrap:wrap;gap:10px;display:flex}.story-graph-legend-item{color:var(--admin-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.story-graph-legend-item:before{content:"";border:1px solid #0f172a1f;border-radius:4px;width:12px;height:12px}.story-graph-legend-item--quarter:before{background:#dbeafe;border-color:#2563eb}.story-graph-legend-item--competition:before{background:#fef3c7;border-color:#d97706}.story-graph-legend-item--minigame:before{background:#ede9fe;border-color:#7c3aed}.story-graph-legend-item--branch:before{background:#eff6ff;border-width:2px;border-color:#1d4ed8}.story-graph-legend-item--ending:before{background:#fee2e2;border-color:#dc2626}.story-graph-legend-item--invalid:before{border-color:var(--danger);background:#fee2e2}.story-graph-main{grid-template-columns:minmax(0,1fr) 320px;gap:12px;min-height:calc(100vh - 280px);display:grid}.story-graph-canvas{border:1px solid var(--admin-line);background:#f8fafc;border-radius:14px;min-height:calc(100vh - 280px);overflow:hidden}.story-graph-canvas .react-flow{width:100%;height:calc(100vh - 280px)}.story-graph-minimap{border:1px solid var(--admin-line);border-radius:10px;overflow:hidden}.story-graph-node{z-index:1;background:#fff;border:2px solid #cbd5e1;border-radius:12px;width:168px;padding:8px 10px 10px;transition:opacity .15s,transform .15s,box-shadow .15s;box-shadow:0 8px 20px #0f172a14}.story-graph-node.is-dimmed{opacity:.55}.story-graph-node.is-highlighted,.story-graph-node.is-selected{opacity:1;box-shadow:0 10px 24px #0f172a24}.story-graph-node.is-selected{z-index:3;transform:scale(1.03)}.story-graph-node.is-invalid{border-color:var(--danger)}.story-graph-node--quarter{background:#eff6ff;border-color:#2563eb}.story-graph-node--branch{border-width:3px;box-shadow:0 10px 24px #2563eb29}.story-graph-node--branch.story-graph-node--quarter{border-color:#1d4ed8}.story-graph-node--competition{background:#fffbeb;border-color:#d97706}.story-graph-node--minigame{background:#f5f3ff;border-color:#7c3aed}.story-graph-node--ending{background:#fef2f2;border-color:#dc2626}.story-graph-node-head{justify-content:center;align-items:center;gap:10px;margin-bottom:4px;display:flex}.story-graph-node-icon{color:var(--admin-muted);display:inline-flex}.story-graph-node-slide{color:var(--admin-muted);font-size:11px}.story-graph-node-title{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-weight:700;line-height:1.35;display:-webkit-box;overflow:hidden}.story-graph-node-meta{color:var(--admin-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:11px;overflow:hidden}.story-graph-handle{background:#64748b;border:2px solid #fff;width:8px;height:8px}.story-graph-edge.is-option .react-flow__edge-path{opacity:.92}.react-flow__edge.step .react-flow__edge-path{stroke-linejoin:round}.story-graph-edge.is-invalid .react-flow__edge-path{opacity:1;stroke:var(--danger)!important}.react-flow__edge-text{font-size:10px}.story-graph-detail{border:1px solid var(--admin-line);background:#fff;border-radius:14px;padding:16px;overflow:auto}.story-graph-detail-head{gap:12px;margin-bottom:16px;display:grid}.story-graph-detail-head h3{margin:0 0 4px;font-size:16px;line-height:1.3}.story-graph-detail-head p{color:var(--admin-muted);margin:0;font-size:12px}.story-graph-edit-link{align-items:center;gap:6px;width:fit-content;text-decoration:none;display:inline-flex}.story-graph-detail-block{gap:6px;margin-bottom:14px;display:grid}.story-graph-detail-block p{color:var(--admin-ink);margin:0;font-size:13px;line-height:1.5}.story-graph-detail-empty,.story-graph-detail-empty-panel{color:var(--admin-muted);margin:0;font-size:13px;line-height:1.6}.story-graph-edge-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.story-graph-edge-list button{border:1px solid var(--admin-line);width:100%;color:var(--admin-ink);text-align:left;background:#f8fafc;border-radius:8px;padding:8px 10px;font-size:12px}.story-graph-edge-list li.is-invalid button{color:var(--danger);border-color:#fecaca}.story-graph-detail-warning{color:var(--danger);background:#fef2f2;border-radius:10px;margin:0;padding:10px 12px;font-size:12px;line-height:1.5}.story-graph-detail-warning.is-soft{color:#b45309;background:#fffbeb}@media (max-width:1100px){.story-graph-main{grid-template-columns:1fr}.story-graph-detail{max-height:360px}}.node-jump-panel{grid-template-columns:minmax(0,1fr)}.node-jump-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}@media (min-width:721px){.shell{height:100dvh;min-height:100dvh;padding:0;overflow:hidden}.phone-frame{width:100%;height:100dvh;min-height:100dvh;box-shadow:none;border:0;border-radius:0}.backdrop{background:linear-gradient(#181c2a29 0%,#0000 34% 62%,#18121252 100%),repeating-linear-gradient(0deg,#ffffff06 0 2px,#00000004 2px 4px)}.music-toggle{top:22px;right:24px}.topbar,.attribute-grid,.competition-track{width:min(980px,100% - 96px);margin-inline:auto}.topbar{padding:24px 0 8px}.topbar-grade{font-size:17px}.topbar-competition-notice{font-size:12px}.attribute-grid{gap:12px;padding:8px 0 10px}.attribute{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff8e8db;border-radius:10px;padding:10px 8px;box-shadow:0 5px #50331c33,0 12px 28px #1914101f}.attribute span{font-size:12px}.attribute strong{font-size:20px}.competition-track{padding:10px 6px}.story-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fff8e8eb;border-radius:12px;width:min(900px,100% - 80px);max-height:min(44%,430px);padding:24px 26px;inset:auto auto clamp(120px,16vh,220px) 50%;transform:translate(-50%);box-shadow:0 8px #3d231142,0 24px 70px #18120e47}.story-card p,.result-panel p{font-size:17px;line-height:1.85}.story-card:has(.result-panel){width:min(760px,100% - 80px);max-height:min(64%,680px);padding:20px 22px}.story-card:has(.result-panel.result-competition){width:min(640px,100% - 80px);max-height:min(60%,600px);padding:28px 24px;bottom:clamp(60px,8vh,100px)}.phone-frame .primary-btn,.phone-frame .secondary-btn{min-height:48px;font-size:16px}.action-stack--choices{grid-template-columns:repeat(2,minmax(0,1fr))}.story-card--with-portrait,.story-card--roulette{top:auto;transform:translate(-50%)}.story-card.story-card--roulette{width:min(460px,100% - 80px);max-height:none;padding:22px 24px 20px;bottom:clamp(60px,8vh,100px);overflow:hidden}.story-card:not(.story-card--with-portrait):not(.story-card--roulette):not(:has(.result-panel)){bottom:clamp(160px,21vh,280px)}.story-card--roulette .competition-roulette{gap:10px}.story-card--roulette .roulette-caption{min-height:24px;font-size:15px}.character-portrait{filter:drop-shadow(0 14px 18px #2018146b);width:min(46%,680px);height:70%;top:29%;left:max(5%,50% - 660px)}.ending-stage{width:min(1100px,100% - 64px);height:min(86%,760px);left:50%;right:auto;transform:translate(-50%,-50%)}.ending-notebook{width:min(490px,100%);padding:14px 14px 14px 24px}.ending-paper{gap:12px;height:clamp(520px,68vh,650px);padding:24px 22px 20px 28px}.ending-heading{gap:14px}.ending-heading h1{font-size:27px}.ending-rank{min-width:62px;min-height:62px;font-size:34px}.ending-typewriter{padding:8px 6px;font-size:17px;line-height:1.9}.ending-slide--achievements .achievement-stickers{grid-template-columns:repeat(5,minmax(0,1fr))}.memory-match-stage{width:min(600px,100%);margin-inline:auto}.memory-match-stage.number-bomb-stage{align-content:center;width:min(720px,100%);padding-block:10px 18px}.number-bomb-page .number-bomb-game{gap:10px;padding:14px}.number-bomb-page .number-bomb-display{min-height:clamp(58px,9vh,76px)}.number-bomb-page .number-bomb-message{min-height:22px}.number-bomb-page .number-bomb-keypad button{aspect-ratio:auto;height:clamp(52px,8vh,76px)}.memory-match-stage.initial-match3-stage{align-content:center;width:min(760px,100%)}.initial-match3-game{gap:12px}.initial-match3-stats,.initial-match3-attributes{width:min(480px,100%);margin-inline:auto}.initial-match3-stats span{min-height:34px}.initial-match3-attributes .attribute{padding:6px 4px}.initial-match3-attributes .attribute span{font-size:10px}.initial-match3-attributes .attribute strong{font-size:14px}.initial-match3-board{gap:7px;width:min(100%,480px);padding:10px}.initial-match3-actions{width:min(100%,480px);margin-inline:auto}.initial-match3-cell{border-radius:10px}.initial-match3-icon{width:32px;height:32px}}@media (min-width:721px) and (max-height:850px){.memory-match-stage{width:min(500px,100%)}.memory-match-stage.number-bomb-stage,.memory-match-stage.initial-match3-stage{width:min(640px,100%)}.initial-match3-stats,.initial-match3-attributes,.initial-match3-board,.initial-match3-actions{width:min(100%,360px)}}@media (min-width:1280px){.character-portrait{top:19%}}@media (min-width:721px) and (max-width:1279px){.topbar,.attribute-grid,.competition-track{width:min(720px,100% - 72px)}.topbar{padding-top:18px}.attribute-grid{gap:8px}.attribute{padding:8px 6px}.attribute span{font-size:11px}.attribute strong{font-size:18px}.competition-track{--track-node-width:50px;--track-dot-size:27px;padding-inline:4px}.story-card{width:min(680px,100% - 72px);padding:20px 22px}.story-card:has(.result-panel){width:min(620px,100% - 72px)}.story-card:has(.result-panel.result-competition){width:min(560px,100% - 72px)}.story-card p,.result-panel p{font-size:15px;line-height:1.75}.phone-frame .primary-btn,.phone-frame .secondary-btn{min-height:44px;font-size:14px}.memory-match-stage.initial-match3-stage{width:min(640px,100%)}.initial-match3-stats,.initial-match3-attributes{width:min(460px,100%)}.initial-match3-board,.initial-match3-actions{width:min(100%,460px)}.initial-match3-icon{width:30px;height:30px}}@media (min-width:721px) and (max-width:1279px) and (max-height:850px){.initial-match3-stats,.initial-match3-attributes,.initial-match3-board,.initial-match3-actions{width:min(100%,360px)}}@media (max-width:720px){.ending-next-hint{display:none}[data-sonner-toaster][data-y-position=top]{top:57px!important}[data-sonner-toaster][data-x-position=right] [data-sonner-toast]{width:min(180px,100vw - 32px)!important;left:auto!important;right:22px!important}.achievement-toast{box-sizing:border-box;border-radius:11px;gap:10px;width:100%;padding:9px 10px}.achievement-toast-icon{flex-basis:44px;width:44px;height:44px}.achievement-toast strong{font-size:10px}.achievement-toast em{font-size:13px}.music-toggle{top:22px}.shell{height:100dvh;min-height:100dvh;padding:0;overflow:hidden}.phone-frame{border:0;border-radius:0;width:100%;height:100dvh;min-height:100dvh}.story-card{max-height:58%;padding:16px;top:63%;left:12px;right:12px}.story-card:has(.result-panel){max-height:58%;padding:14px}.result-panel{gap:8px}.result-icon{border-width:3px;border-radius:11px;width:58px;height:58px}.result-panel h1{margin-bottom:6px;font-size:22px}.result-panel p{margin-bottom:8px;font-size:13px;line-height:1.55}.result-stats:not(.result-stats--3):not(.result-stats--4){grid-template-columns:repeat(3,minmax(0,1fr))}.result-stat{padding:6px 5px}.result-stat span{font-size:10px}.result-stat strong{font-size:16px}.result-panel .primary-btn{min-height:42px}.ending-stage{height:92%;top:48%;left:0;right:0}.ending-slide{padding:4px 8px 2px}.ending-notebook{width:min(376px,100%);padding:10px 10px 10px 18px;transform:rotate(-3.5deg)}.ending-paper{height:clamp(440px,62vh,520px);transform:rotate(3.5deg)}.ending-slide--achievements{padding-top:64px}.ending-slide--achievements .achievement-wall{max-height:calc(100dvh - 210px)}.story-card--with-portrait{max-height:calc(48% - 26px);top:52%}.story-card::-webkit-scrollbar{width:8px}.story-card::-webkit-scrollbar-track{background:0 0}.story-card::-webkit-scrollbar-thumb{background:#68391b57 padding-box content-box;border:2px solid #0000;border-radius:999px}.story-card::-webkit-scrollbar-thumb:hover{background:#68391b80 padding-box content-box}.twenty-four-game::-webkit-scrollbar{width:8px}.twenty-four-game::-webkit-scrollbar-thumb{background:#68391b57 padding-box content-box;border:2px solid #0000}.twenty-four-game::-webkit-scrollbar-thumb:hover{background:#68391b80 padding-box content-box}.competition-track{--track-dot-size:28px;--track-node-width:52px;padding:8px 8px 10px}.competition-track-inner[data-density=dense]{--track-node-width:42px;--track-dot-size:26px;--track-gap:5px}.competition-track-inner[data-density=dense] .track-label{max-width:42px;min-height:16px;font-size:8px}.track-node{text-shadow:0 1px 4px #0000006b;gap:3px;font-size:9px}.track-dot{width:var(--track-dot-size);height:var(--track-dot-size);border-width:3px}.track-dot svg{width:12px;height:12px}.track-label{max-width:48px}.track-node b{min-height:16px;padding:0 5px;font-size:9px}.admin-workspace{min-width:1100px}}
