:root{--color-text-strong:#191f28;--color-text-default:#333d4b;--color-text-subtle:#4e5968;--color-text-hint:#8b95a1;--color-text-disabled:#b0b8c1;--color-text-inverse:#fff;--color-bg:#fff;--color-bg-canvas:#f2f4f6;--color-danger:#f04452;--color-success:#03b26c;--color-warning:#fe9800;--brand-primary:#191f28;--font-size-display:28px;--font-weight-display:700;--font-size-title:20px;--font-weight-title:700;--font-size-subtitle:15px;--font-weight-subtitle:600;--font-size-body:17px;--font-weight-body:400;--font-size-body-small:15px;--font-weight-body-small:400;--font-size-caption:13px;--font-weight-caption:400;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--dim:#0006;--game-bg:#1b2944;--game-card:#22344f;--game-line:#34507a;--game-text:#e6f6ff;--game-subtle:#9fc3dd;--game-cyan:#5fd0ff;--game-cyan-soft:#2f4767;--game-amber:#f2b84b;--game-rare:#6cb4ff;--game-common:#b6c6d6;--game-shadow:0 4px 14px #050f1e59;--ink:#18324b;--off-bg:#3a4a63;--off-line:#222f42;--off-text:#9fb3c8;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--rail-bg:#122c46db;--rail-line:#5fd0ff;--dock-bg:#16324f;--gold:#f2b84b;--gold-deep:#a56a10;--gold-text:#4a2b00;--dock:calc(64px + var(--safe-bottom));--app-width:min(100vw, 480px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--game-bg);width:100%;height:100%;color:var(--game-text);word-break:keep-all;margin:0;font-family:-apple-system,system-ui,Malgun Gothic,sans-serif;overflow:hidden}[hidden]{display:none!important}p{margin:0}#app{width:var(--app-width);flex-direction:column;height:100%;margin:0 auto;display:flex;position:relative}#battle-area{background:var(--sky,#6fa8d6);flex:1;min-height:0;position:relative;overflow:hidden;container:battle-area/size}#sky{pointer-events:none;width:100vw;height:100vh;position:absolute;top:0;left:0}#hidden-file{background:#ffe9a8;border:3px solid #23405f;border-radius:6px 18px 6px 6px;width:56px;height:64px;padding:0;animation:.9s ease-in-out infinite alternate hidden-file;position:absolute;box-shadow:0 0 0 6px #ffe9a859}@keyframes hidden-file{to{transform:translateY(-8px)rotate(4deg)}}.menu-open #battle-area{height:min(50%, calc(var(--app-width) * .834 + var(--safe-top)));flex:none}#battle{inset:0 0 var(--dock);position:absolute;container-type:size}.menu-open{--dock:0px}#battle canvas{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:min(100cqw,120cqh)!important;height:auto!important;margin:0!important}#quick-boss{bottom:calc(var(--dock) + 8px);z-index:2;flex:none;position:absolute;left:8px}#hud{top:calc(var(--safe-top) + 8px);pointer-events:none;flex-direction:column;align-items:flex-start;gap:4px;max-width:calc(100% - 76px);display:flex;position:absolute;left:10px}#hud>span{color:#fff;background:#122c46b8;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}#hud #hud-credits{color:#8df4fb;font-size:15px;font-weight:700}#bubble{bottom:calc(var(--dock) + var(--app-width) * .7);color:#b8fbff;pointer-events:none;background:#061220c7;border:1px solid #5ee8f28c;border-radius:8px;max-width:calc(100% - 84px);padding:8px 12px;font-family:D2Coding,Consolas,ui-monospace,monospace;font-size:15px;font-weight:600;line-height:1.4;position:absolute;left:12px;box-shadow:0 0 12px #5ee8f240}#bubble .speaker{color:#5ee8f2}#bubble:after{content:"";vertical-align:-.15em;background:#5ee8f2;width:.55em;height:1em;margin-left:2px;animation:.9s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}#quest{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#fff;max-width:240px;min-height:44px;font:inherit;text-align:left;pointer-events:none;background:#122c468c;border:1px solid #ffffff59;border-radius:12px;margin-top:2px;padding:6px 10px}#quest .quest-label{font-size:13px;font-weight:700;display:block}#quest .quest-meta{color:#cfe7f7;font-size:12px;font-weight:600;display:block}#quest.done{border:2px solid var(--gold);cursor:pointer;pointer-events:auto;background:#4a2b0099;animation:.8s ease-in-out infinite alternate tab-pulse}#quest.done .quest-meta{color:#ffe2a3}#panel{-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:10px 12px;display:none;overflow-y:auto}.menu-open #panel{display:block}#rail{top:calc(var(--safe-top) + 56px);z-index:3;flex-direction:column;gap:4px;display:flex;position:absolute;right:6px}.menu-open #rail{top:max(calc(var(--safe-top) + 56px), min(calc(var(--app-width) * .22), calc(100% - 224px)));pointer-events:none;gap:0;bottom:4px}.menu-open #rail .tab{pointer-events:auto;flex:0 44px;justify-content:center;min-height:0}.menu-open #rail .tab-icon{aspect-ratio:1;width:auto;height:100%;max-height:44px}.menu-open #hud{max-width:none;right:6px}.menu-open #quest{max-width:min(220px,52%);position:absolute;top:48px;right:0}#app.menu-open:has(#quest:not([hidden])) #rail{top:calc(var(--safe-top) + 124px)}.menu-open #rail .tab-label{display:none}@container battle-area (height<=600px){#app:not(.menu-open) #rail .tab-label{display:none}#app:not(.menu-open) #bubble{top:calc(var(--safe-top) + 152px);bottom:auto}}.tab.active .tab-icon{border-color:var(--gold);color:#ffe2a3}#tabs{display:none}.tab{color:#fff;width:52px;font:inherit;text-shadow:0 0 3px #0a1e32f2,0 1px 2px #0a1e32e6;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:0;font-size:12px;font-weight:700;display:flex}.tab-icon{border:3px solid var(--rail-line);background:var(--rail-bg);color:#d6f3ff;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.tab-icon svg{width:22px;height:22px}.tab-icon .dot{margin:0;position:absolute;top:-3px;right:-3px}.tab.pulse .tab-icon{border-color:var(--gold);color:#ffe2a3;animation:.8s ease-in-out infinite alternate tab-pulse}@keyframes tab-pulse{to{transform:scale(1.1)}}.menu-open #tabs{border-top:3px solid var(--rail-line);background:var(--dock-bg);flex-direction:row;justify-content:space-between;align-items:center;gap:0;padding:4px 4px 4px 10px;display:flex;position:static}.window-title{color:var(--game-text);align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.window-title .tab-icon{background:var(--rail-line);width:40px;height:40px;color:var(--dock-bg)}#tabs .window-close:before,#tabs .window-close:after{background:#d6f3ff}.memory-open #tabs{padding-top:calc(var(--safe-top) + 52px);border-top:0;border-bottom:3px solid var(--rail-line)}#dock{height:var(--dock);padding:8px 8px calc(8px + var(--safe-bottom));border-top:3px solid var(--rail-line);background:var(--dock-bg);align-items:center;gap:6px;display:flex;position:absolute;bottom:0;left:0;right:0}#dock-upgrade{border:0;border-bottom:4px solid var(--gold-deep);background:var(--gold);min-height:48px;color:var(--gold-text);font:inherit;border-radius:14px;flex:1;font-size:17px;font-weight:700}#dock-upgrade:active{border-bottom-width:1px;transform:translateY(3px)}.web{--host-badge:0px}.web #rail,.web #app.menu-open #rail{top:calc(var(--safe-top) + 8px)}.web .menu-open #quest{top:0}.web #app.menu-open:has(#quest:not([hidden])) #rail{top:calc(var(--safe-top) + 76px)}.web #app:not(.menu-open){--dock:calc(64px + var(--safe-bottom) + var(--host-badge))}.web #dock{padding-bottom:calc(8px + var(--safe-bottom) + var(--host-badge,0px))}.web #panel{padding-bottom:var(--host-badge)}.menu-open #dock{background:0 0;border:0;height:auto;padding:0;bottom:6px;left:auto;right:58px}.menu-open #dock-upgrade{display:none}.card{border:2px solid var(--game-line);background:var(--game-card);border-radius:14px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px;display:flex}.card.reward{border-color:var(--gold)}.title,.card p.title{font-size:16px;font-weight:700}.body,.card p{font-size:15px;line-height:1.45}.caption,.card p.caption{color:var(--game-subtle);margin-bottom:8px;font-size:13px;line-height:1.4}.button{border:0;border-bottom:4px solid var(--gold-deep);background:var(--gold);min-height:44px;color:var(--gold-text);font:inherit;border-radius:12px;flex:1;padding:0 12px;font-size:15px;font-weight:700}.button:active:not(:disabled){border-bottom-width:1px;transform:translateY(3px)}.button.ghost{background:var(--game-cyan-soft);color:var(--game-text);border-bottom-color:#1a2a40}.button:disabled{border-bottom-color:var(--off-line);background:var(--off-bg);color:var(--off-text);font-weight:500}.slot-row{border:2px solid var(--game-line);background:var(--game-card);border-radius:14px;align-items:center;gap:8px;margin-bottom:8px;padding:8px;font-size:15px;display:flex}.slot-row .grow{flex:1;min-width:0;font-weight:700}.slot-row small{color:var(--rail-line);font-size:13px;font-weight:500;display:block}.slot-row .button{flex:none;min-width:72px}.slot-row .button.ghost{min-width:52px;padding:0 8px;font-size:13px}.slot-icon{color:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.slot-icon svg{width:24px;height:24px}.icon-attack{background:#e2567a}.icon-hp{background:#3fb27f}.icon-income{background:var(--rail-line);color:var(--dock-bg)}.row{gap:8px;display:flex}.part{align-items:center;gap:8px;font-size:15px;display:flex}.part .button{flex:none;min-width:64px}.segments{background:var(--game-card);border-radius:14px;gap:4px;margin-bottom:10px;padding:4px;display:flex}.segment{min-height:44px;color:var(--game-subtle);font:inherit;background:0 0;border:0;border-radius:10px;flex:1;font-size:15px;font-weight:500;position:relative}.segment.active{background:var(--rail-line);color:var(--dock-bg);font-weight:700}.card.slot{gap:6px}.grade-chips{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.equipped-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px;display:grid}.equipped-slot{background:var(--game-bg);text-align:center;border:2px solid;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.equipped-slot img{object-fit:contain;width:56px;height:56px}.equipped-slot b{font-size:13px}.equipped-slot small{color:var(--game-text);font-size:12px}.equipped-slot.empty{color:var(--game-subtle);border-style:dashed}.equipped-slot .empty-icon{width:56px;height:56px}.grade-chip{background:var(--game-bg);min-height:44px;font:inherit;border:2px solid #0000;border-radius:12px;flex:1;justify-content:space-between;align-items:center;padding:0 10px;font-size:14px;display:flex}.grade-chip.picked{border-color:currentColor}.grade-chip b{color:var(--game-text)}.branch{color:var(--rail-line);margin-top:6px;font-size:14px;font-weight:700}.part .count{color:var(--game-subtle);flex:1}.part .grow{flex:1;font-weight:600}.part small{color:var(--game-subtle);font-size:13px;font-weight:400;display:block}.grade-common{color:var(--game-common);font-weight:600}.grade-uncommon{color:#7fe0a0;font-weight:700}.grade-rare{color:var(--game-rare);font-weight:700}.grade-epic{color:#c79bff;font-weight:700}.grade-legendary{color:var(--game-amber);font-weight:700}.grade-mythic{color:#ff7fb6;font-weight:700}.results{flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.results li.reveal{animation:.32s ease-out both card-flip;animation-delay:calc(var(--i) * 90ms)}.results .grade-rare{text-shadow:0 0 6px #6cb4ffb3}.results .grade-epic{text-shadow:0 0 6px #b072ffbf}.results .grade-legendary{text-shadow:0 0 10px #ffd36be6}.results .grade-mythic{text-shadow:0 0 12px #ff5fa2f2}@keyframes card-flip{0%{opacity:0;transform:rotateY(90deg)scale(.8)}to{opacity:1;transform:none}}#pull-flash{z-index:30;opacity:0;pointer-events:none;position:fixed;inset:0}#pull-flash.rare{background:radial-gradient(circle,#6cb4ff8c,#0000 70%);animation:.5s ease-out pull-flash}#pull-flash.legendary{background:radial-gradient(circle,#ffd36bd9,#ff8ad859 60%,#0000 85%);animation:.9s ease-out pull-flash}@keyframes pull-flash{15%{opacity:1}}@media (prefers-reduced-motion:reduce){.results li.reveal,#pull-flash.rare,#pull-flash.legendary{animation:none}}table{border-collapse:collapse;text-align:center;width:100%;font-size:14px}th{color:var(--game-subtle);font-weight:500}th,td{border-bottom:1px solid var(--game-line);padding:6px 0}tr.current td{color:var(--rail-line);font-weight:700}.memory{border-top:1px solid var(--game-line);flex-direction:column;gap:2px;padding:8px 0;display:flex}.memory .memory-name{font-size:15px;font-weight:700}.memory .caption{margin-bottom:0}.memory .button{margin-top:6px}.memory.locked .memory-name{color:var(--off-text)}#warning{z-index:3;opacity:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}#warning.on{animation:1.6s ease-out warning-edge}#warning:before{content:"";background:#ff3b4d1f;position:absolute;inset:0;box-shadow:inset 0 0 0 8px #ff3b4dd9,inset 0 0 60px #ff3b4d8c}#warning .warning-text{color:#ff8a93;text-align:center;white-space:nowrap;background:#16304ae0;width:100%;padding:6px 0;font-size:16px;font-weight:700;position:absolute;top:38%;left:0}@keyframes warning-edge{0%,25%,50%,80%{opacity:1}12%,37%{opacity:.25}to{opacity:0}}@media (prefers-reduced-motion:reduce){#warning.on{animation:1.6s step-end warning-hold}}@keyframes warning-hold{0%{opacity:1}}#reward{z-index:4;border:2px solid var(--gold);min-width:180px;max-width:70%;box-shadow:var(--game-shadow);color:#fff;font:inherit;text-align:center;background:#16304aeb;border-radius:14px;padding:10px 16px;animation:.3s ease-out reward-pop;position:absolute;top:32%;left:50%;transform:translate(-50%,-50%)}#reward .reward-title{color:#ffd36b;font-size:15px;font-weight:700;display:block}#reward .reward-line{margin-top:2px;font-size:14px;font-weight:600;display:block}@keyframes reward-pop{0%{opacity:0;transform:translate(-50%,-40%)scale(.85)}}#combo{bottom:calc(var(--dock) + 56px);color:#8df4fb;pointer-events:none;background:#122c46c7;border-radius:999px;padding:4px 10px;font-size:14px;font-weight:700;position:absolute;right:10px}#battle{touch-action:manipulation}#skills{justify-content:flex-end;gap:6px;display:flex}.skill{background:var(--game-cyan);color:#06303a;min-width:64px;min-height:44px;font:inherit;touch-action:manipulation;border:2px solid #fff;border-radius:14px;padding:0 10px;font-size:14px;font-weight:700;position:relative}.skill:disabled{color:#fff;background:#2f4767;border-color:#fff6;font-weight:500}.skill .cooldown{color:#fff;background:#16304a;border-radius:999px;min-width:22px;padding:1px 5px;font-size:12px;font-weight:700;line-height:1.3;position:absolute;top:-8px;right:-6px}.menu-open #skills{gap:4px}.menu-open .skill{min-width:0;padding:0 4px;font-size:12px}#name-input{border:2px solid var(--game-line);background:var(--game-bg);width:100%;min-height:44px;color:var(--game-text);font:inherit;border-radius:12px;padding:0 12px;font-size:16px}.actions{flex-direction:column;gap:8px;display:flex}#intro{z-index:25;padding:calc(var(--safe-top) + 60px) 24px calc(var(--safe-bottom) + 48px);background-color:var(--game-bg);color:#fff;text-align:center;cursor:pointer;background-position:50%;background-size:cover;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;display:flex;position:fixed;inset:0}#intro .intro-art{flex:1;justify-content:center;align-items:center;gap:12px;display:flex}#intro .intro-art img{object-fit:contain;filter:drop-shadow(0 4px 10px #00000080);width:auto;max-width:30vw;height:110px}#intro .intro-badge{border:2px solid var(--game-cyan);color:var(--game-cyan);border-radius:999px;padding:4px 12px;font-size:15px;font-weight:700;animation:.8s ease-in-out infinite alternate tab-pulse}#intro .intro-text{text-shadow:0 2px 6px #0009;max-width:320px;font-size:19px;font-weight:700;line-height:1.5}#intro .intro-hint{color:#ffffffb3;font-size:13px}#intro .intro-skip{top:calc(var(--safe-top) + 8px);color:#ffffffd9;min-height:44px;font:inherit;background:0 0;border:0;padding:0 14px;font-size:14px;font-weight:700;position:absolute;right:12px}#ending{z-index:26;padding:calc(var(--safe-top) + 60px) 24px calc(var(--safe-bottom) + 48px);background-color:var(--game-bg);color:#fff;text-align:center;background-position:50%;background-size:cover;flex-direction:column;justify-content:flex-end;align-items:center;gap:16px;display:flex;position:fixed;inset:0}#ending .ending-line{text-shadow:0 2px 6px #0009;max-width:320px;animation:.8s ease-out both ending-in;animation-delay:calc(var(--i) * .9s);font-size:18px;font-weight:700;line-height:1.5}#ending .ending-line:first-child{color:#ffd36b;font-size:22px}#ending .button{flex:none;min-width:220px;animation:.8s ease-out 3.6s both ending-in}@keyframes ending-in{0%{opacity:0;transform:translateY(8px)}}#notice,#offline,#look,#reader,#naming,#reboot,#exit{z-index:20;background:var(--dim);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.memory-open #battle-area{display:none}.memory-open #panel{padding:0;padding-top:var(--safe-top);background:linear-gradient(#5f9ccb,#3f6f99)}.desktop{color:#fff;min-height:100%;padding:12px}.desktop-title{font-size:18px;font-weight:700}.desktop-count{margin-bottom:14px;font-size:14px}.message-card{border:2px solid var(--gold);background:#16304ad9;border-radius:14px;margin-bottom:14px;padding:12px}.message-title{color:#ffd36b;font-size:15px;font-weight:700}.message-text{margin:6px 0;font-size:15px;font-weight:600;line-height:1.6}.message-text .piece{color:inherit;font:inherit;background:0 0;border:0;padding:0}.message-text button.piece{text-underline-offset:4px;cursor:pointer;min-height:32px;-webkit-text-decoration:underline dotted #ffd36b99;text-decoration:underline dotted #ffd36b99}.message-text .piece.picked{color:#ffd36b}.message-record{background:#ffffff14;border-radius:10px;margin-bottom:6px;padding:8px 10px;font-size:14px;line-height:1.5}.message-text .missing{color:#ffffff59}.message-caption{color:var(--game-subtle);font-size:12px}.folder-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.folder{color:#fff;font:inherit;background:#ffffff24;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;font-size:15px;display:flex}.folder.complete{background:#ffd1784d}.folder small{font-size:13px}.folder-icon{background:#ffd98c;border-radius:4px 10px 8px 8px;width:64px;height:48px;position:relative;box-shadow:inset 0 -14px #f0bd5c}.folder-icon:before{content:"";background:#f0bd5c;border-radius:5px 5px 0 0;width:26px;height:10px;position:absolute;top:-8px;left:0}.dot{vertical-align:2px;background:#ff5f6d;border-radius:50%;width:10px;height:10px;margin-left:3px;display:inline-block}.folder-icon .dot,.file-image .dot{margin:0;position:absolute;top:-4px;right:-4px}.window{border:2px solid var(--game-line);background:var(--game-card);color:var(--game-text);box-shadow:var(--game-shadow);border-radius:14px;overflow:hidden}.window+.window{margin-top:10px}.window-bar{background:var(--dock-bg);justify-content:space-between;align-items:center;min-height:44px;padding:0 4px 0 12px;font-size:15px;font-weight:700;display:flex}.window-close{background:0 0;border:0;width:44px;height:44px;position:relative}.window-close:before,.window-close:after{content:"";background:var(--game-text);width:18px;height:2px;position:absolute;top:21px;left:13px;transform:rotate(45deg)}.window-close:after{transform:rotate(-45deg)}.file-grid{grid-template-columns:repeat(3,1fr);gap:6px;padding:10px;display:grid}.file{min-height:92px;color:var(--game-text);font:inherit;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;display:flex}.file small{font-size:13px;line-height:1.25}.file-image{background:var(--game-bg);border-radius:10px;justify-content:center;align-items:center;width:56px;height:56px;display:flex;position:relative}.file-image img,.detail-image img{object-fit:contain;width:80%;height:80%}.file.locked .file-image img,.file.locked .doc-icon{filter:brightness(0)invert()opacity(.2)}.file.locked small{color:var(--off-text)}.doc-icon{border:2px solid var(--ink);background:#fff4cc;border-radius:3px 10px 3px 3px;width:34px;height:42px;display:block}.detail-body{flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:15px;line-height:1.45;display:flex}.detail-body .button{flex:none;width:100%}.detail-image{justify-content:center;align-items:center;width:112px;height:112px;display:flex}#reader-body,#reboot-body{white-space:pre-line}.dialog{border:3px solid var(--rail-line);width:100%;max-width:320px;color:var(--game-text);background:var(--game-card);border-radius:16px;flex-direction:column;gap:12px;padding:16px;display:flex}.menu-open #bubble{top:max(calc(var(--app-width) * .33), calc(var(--safe-top) + 132px));max-width:46%;padding:6px 10px;font-size:14px;bottom:auto;left:auto;right:58px}.look-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.look-option{border:2px solid var(--game-line);background:var(--game-card);min-height:44px;color:var(--game-text);font:inherit;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;font-size:15px;font-weight:700;display:flex}.look-option img{height:112px}
