:root{color:#fff8e7;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#080b13;font-family:Inter,Segoe UI,Noto Sans TC,system-ui,sans-serif}*{box-sizing:border-box}html{background:#080b13;min-width:320px}body{margin:0}#root{min-height:100svh}button,input{letter-spacing:0}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #53ecd3b8}.app{color:#f9ead0;background:linear-gradient(180deg, #080b1385, #080b13f0), var(--dungeon-bg) center / cover fixed;min-height:100svh}.shell{grid-template-columns:290px minmax(360px,1fr) 420px;gap:18px;min-height:100svh;padding:18px;display:grid}.sidebar,.map-panel,.quest-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#12161fc7;border:1px solid #f6ca7f42;box-shadow:0 22px 55px #00000057}.sidebar{border-radius:8px;flex-direction:column;justify-content:flex-start;gap:18px;padding:22px;display:flex}.eyeline,.topbar p,.quest-header p{color:#91e7db;letter-spacing:0;text-transform:uppercase;margin:0;font-size:12px;font-weight:800}h1,h2,h3,strong,b{color:#fff8e7}.sidebar h1{margin:8px 0 10px;font-size:33px;line-height:1.05}.storyline,.quest-story,.result p,.word-count span,.player-card small,.level-node small,.preview-art span{color:#c8b891}.preview-art,.scene-window,.concept-strip{background:#00000038;border:1px solid #f5dba438;border-radius:8px;margin:0;position:relative;overflow:hidden}.preview-art{gap:0;display:grid}.preview-art img,.scene-window img,.concept-strip img{object-fit:cover;width:100%;height:100%;display:block}.preview-art img{aspect-ratio:16/10}.preview-art figcaption,.scene-window figcaption,.concept-strip figcaption{background:linear-gradient(#070c146b,#070c14d1);border-radius:8px;gap:2px;padding:10px 12px;display:grid;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 12px 30px #00000042}.preview-art figcaption strong,.scene-window figcaption strong,.concept-strip figcaption strong{line-height:1.25}.preview-art figcaption span,.scene-window figcaption span,.concept-strip figcaption span{color:#91e7db;font-size:12px;font-weight:900}.player-list{gap:10px;display:grid}button{font:inherit}.player-card{width:100%;min-height:74px;color:inherit;cursor:pointer;text-align:left;background:#ffffff0b;border:1px solid #f5dba42e;border-radius:8px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:10px;display:grid}.player-card:hover,.player-card.selected{background:#1e606557;border-color:#53ecd3b8}.player-card span{gap:2px;display:grid}.player-card b{color:#ffd071}.avatar{background:linear-gradient(#ffffff14,#0000002e);border-radius:6px;width:46px;height:58px;position:relative}.portrait-avatar{background:radial-gradient(circle at 50% 24%,#ffd07138,#00000047);border:1px solid #ffd07161;place-items:center;display:grid;overflow:hidden;box-shadow:0 10px 22px #00000047}.portrait-avatar.active{border-color:#53ecd3d1;box-shadow:0 0 0 2px #53ecd329,0 12px 25px #00000052}.portrait-avatar img{object-fit:cover;object-position:center top;width:100%;height:100%}.avatar-head{background:#f3bf8a;border-radius:50%;width:20px;height:20px;position:absolute;top:6px;left:13px;box-shadow:inset 0 -3px #7544263d}.avatar-head span{background:#4b2c25;border-radius:10px 10px 4px 4px;width:16px;height:9px;position:absolute;top:-5px;left:2px}.girl .avatar-head span{background:#5a2b55;width:22px;height:12px;left:-1px}.avatar-body{background:linear-gradient(#4eb7d8,#1d5b77);border-radius:8px 8px 5px 5px;width:24px;height:28px;position:absolute;bottom:8px;left:11px}.girl .avatar-body{background:linear-gradient(#e48ab4,#854b93)}.avatar-weapon{background:#efd184;border-radius:2px;width:3px;height:34px;position:absolute;bottom:10px;right:4px;transform:rotate(25deg)}.stats-panel{background:linear-gradient(#ffd07124,#ffffff0a);border-radius:8px;gap:12px;padding:16px;display:grid}.stats-panel>span{color:#91e7db;font-size:13px;font-weight:800}.doll-summary{grid-template-columns:74px 1fr;align-items:center;gap:12px;display:grid}.wardrobe-link{justify-self:start}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stats-grid p{text-align:center;background:#0000002e;border-radius:7px;gap:2px;margin:0;padding:9px 6px;display:grid}.stats-grid small{color:#c8b891}.map-panel{border-radius:8px;padding:22px;position:relative;overflow:hidden}.map-panel:before{content:"";pointer-events:none;background:radial-gradient(circle at 18% 18%,#ffc35f33,#0000 22%),radial-gradient(circle at 80% 26%,#52e2d229,#0000 20%),linear-gradient(135deg,#0000 0 48%,#ffffff14 49% 51%,#0000 52%);position:absolute;inset:0}.topbar,.level-path{z-index:1;position:relative}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.topbar h2,.quest-header h2{margin:5px 0 0;font-size:25px}.princess-status{white-space:nowrap;color:#ffe1a1;background:#00000038;border:1px solid #ffd07152;border-radius:999px;align-items:center;gap:9px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.princess-status span{background:#d64b55;border-radius:50%;width:10px;height:10px;box-shadow:0 0 14px #d64b55}.princess-status span.saved{background:#53ecd3;box-shadow:0 0 14px #53ecd3}.scene-window{height:176px;margin-bottom:12px}.scene-window:after{content:"";pointer-events:none;background:linear-gradient(90deg,#080b133d,#0000 32%,#080b132e),linear-gradient(#0000 52%,#080b135c);position:absolute;inset:0}.scene-window figcaption{z-index:1;min-width:220px;right:auto}.concept-strip{height:92px;margin-bottom:16px}.concept-strip img{object-position:left center}.concept-strip:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0 48%,#080b1380);position:absolute;inset:0}.concept-strip figcaption{z-index:1;width:min(240px,48%);left:auto}.level-path{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:13px;display:grid}.level-node{min-height:122px;color:inherit;cursor:pointer;text-align:left;background:linear-gradient(#ffffff14,#00000029);border:1px solid #f5dba42e;border-radius:8px;gap:6px;padding:13px;display:grid}.level-node span{color:#28160e;background:#ffd071;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.level-node strong{font-size:16px;line-height:1.25}.level-node:hover,.level-node.current{border-color:#53ecd3b3;box-shadow:inset 0 0 0 2px #53ecd31f}.level-node.cleared span{background:#53ecd3}.level-node.locked{cursor:not-allowed;opacity:.45;filter:grayscale(.45)}.quest-panel{min-width:0}.quest-card{border-radius:8px;min-height:calc(100svh - 36px);padding:22px}.quest-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.gate-open,.gate-locked{color:#1d160d;background:#ffd071;border-radius:999px;flex:none;padding:7px 11px;font-size:13px;font-weight:900}.gate-locked{color:#f6d6d7;background:#7a3340}.quest-story{margin:0 0 16px}.word-count{grid-template-columns:auto 1fr;align-items:center;gap:2px 12px;margin-bottom:14px;display:grid}.word-count strong{color:#ffd071;grid-row:span 2;font-size:44px}.meter{background:#00000057;border-radius:999px;height:9px;overflow:hidden}.meter span{border-radius:inherit;background:linear-gradient(90deg,#53ecd3,#ffd071);height:100%;display:block}.flashcards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.word-card{min-height:96px;color:inherit;cursor:pointer;text-align:left;background:#fff4d614;border:1px solid #f5dba42e;border-radius:8px;gap:4px;padding:12px;display:grid}.word-card strong{overflow-wrap:anywhere;font-size:18px}.word-card span{color:#e5d2a5}.word-card small{color:#91e7db;font-weight:800}.listen-badge{background:#06282647;border:1px solid #91e7db59;border-radius:999px;justify-content:center;align-items:center;width:34px;height:28px;display:inline-flex}.sound-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.primary-button,.secondary-button,.ghost-button,.sound-button,.spelling-form button,.options button{cursor:pointer;border:0;border-radius:8px;min-height:42px;padding:10px 15px;font-weight:900}.primary-button{color:#211206;background:linear-gradient(#ffd071,#f39a3d);box-shadow:0 10px 26px #f39a3d47}.secondary-button,.ghost-button{color:#f9ead0;background:#ffffff1a}.ghost-button{border:1px solid #f5dba42e;width:100%}.ghost-button.danger{color:#ffe5e7;background:#7a33406b;border-color:#d64b5573}.ghost-button.danger:hover{background:#7a33409e;border-color:#ff9aa3b8}button:disabled{cursor:not-allowed;opacity:.52}.challenge{gap:16px;display:grid}.boss-row{color:#ffd071;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-weight:900;display:grid}.question-box{background:linear-gradient(#462d19c7,#201814c7);border:1px solid #ffd07152;border-radius:8px;gap:11px;padding:20px;display:grid}.question-box p,.hint-text,.feedback{color:#f1c987;margin:0;font-weight:800}.question-box h3{overflow-wrap:anywhere;margin:0;font-size:34px;line-height:1.15}.sound-button{color:#062826;background:#91e7db;justify-content:center;justify-self:start;align-items:center;width:52px;min-width:52px;display:inline-flex}.options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.options button{color:#fff8e7;overflow-wrap:anywhere;background:#ffffff1a;border:1px solid #f5dba42e;min-height:64px}.options button:hover,.word-card:hover{background:#1e606557;border-color:#53ecd3b8}.spelling-form{grid-template-columns:1fr auto auto;gap:10px;display:grid}.spelling-form input{color:#fff8e7;min-width:0;min-height:42px;font:inherit;background:#00000047;border:1px solid #f5dba447;border-radius:8px;padding:0 12px}.spelling-form button{color:#211206;background:#ffd071}.spelling-form .hint-button{color:#062826;background:#91e7db}.hint-text{grid-column:1/-1}.feedback{background:#ffd0711a;border-radius:8px;padding:12px}.story-scene{gap:16px;display:grid}.story-stage{background:#111827;border:1px solid #ffd07147;border-radius:8px;min-height:252px;position:relative;overflow:hidden;box-shadow:inset 0 0 42px #0000006b}.story-stage img{object-fit:cover;width:100%;height:100%;animation:5s ease-out both story-pan;position:absolute;inset:0;transform:scale(1.06)}.story-stage:after{content:"";pointer-events:none;background:radial-gradient(circle at 28% 72%,#53ecd357,#0000 24%),radial-gradient(circle at 76% 28%,#ffd07147,#0000 22%),linear-gradient(#04080e1f,#04080ebd);position:absolute;inset:0}.story-path-light{z-index:1;filter:blur(2px);background:linear-gradient(90deg,#0000,#53ecd3c7,#ffd071d6,#0000);border-radius:999px;height:14px;animation:1.6s ease-out .35s forwards path-unlock;position:absolute;bottom:20%;left:-15%;right:-15%;transform:rotate(-9deg)translate(-58%)}.story-hero{z-index:2;animation:.9s ease-out both hero-enter;position:absolute;bottom:20px;left:22px}.story-hero .paper-doll.compact{width:92px;height:132px}.story-boss-seal{z-index:2;color:#ffe1a1;text-align:center;justify-items:center;gap:8px;min-width:104px;font-size:13px;font-weight:900;animation:1.2s ease-out .65s forwards seal-break;display:grid;position:absolute;bottom:28px;right:22px}.story-boss-seal span{background:linear-gradient(45deg,#0000 45%,#ffd071e6 46% 54%,#0000 55%),radial-gradient(circle,#d64b55b8,#481c2ae0);border:2px solid #ffd071cc;border-radius:50%;width:70px;height:70px;display:block;box-shadow:0 0 24px #d64b559e}.story-stage-props{z-index:1;pointer-events:none;position:absolute;inset:0}.story-stage-props .story-object{opacity:0;animation:.75s ease-out forwards story-prop-in,3.4s ease-in-out .75s infinite story-float;position:absolute}.story-stage-props .story-object:first-child{bottom:36%;left:35%}.story-stage-props .story-object:nth-child(2){animation-delay:.2s,.95s;top:18%;right:20%}.story-stage-props .story-object:nth-child(3){animation-delay:.4s,1.15s;bottom:18%;left:58%}.story-princess-gate{z-index:1;opacity:0;background:radial-gradient(#fff8e7b8,#0000 45%),linear-gradient(#91e7db3d,#ffd0711f);border-radius:999px 999px 10px 10px;width:96px;height:140px;animation:.9s ease-out 1.15s forwards gate-open;position:absolute;top:12%;right:18%;transform:translateY(16px)scale(.86);box-shadow:0 0 34px #91e7db59}.story-princess-gate span{filter:drop-shadow(0 0 12px #ffd071b8);background:radial-gradient(circle at 50% 12%,#fff8e7 0 18%,#0000 20%),linear-gradient(#ffd071,#d7a8ff 48%,#6244a3);border-radius:18px 18px 8px 8px;width:32px;height:54px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.story-princess-gate span:before{content:"";clip-path:polygon(0 100%,0 45%,22% 72%,34% 0,50% 66%,66% 0,78% 72%,100% 45%,100% 100%);background:linear-gradient(#fff3b0,#ffd071 70%,#b37025);width:34px;height:18px;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.story-cinema{text-align:center;background:linear-gradient(#ffd0711f,#ffffff0d),#00000029;border:1px solid #f5dba42e;border-radius:8px;justify-items:center;gap:14px;padding:20px;display:grid}.story-cinema-head{justify-items:center;gap:8px;display:grid}.story-cinema h3{margin:0;font-size:28px}.story-score{color:#91e7db;margin:0;font-weight:900}.story-frames{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(100%,620px);display:grid}.story-frame{opacity:0;background:radial-gradient(circle at 50% 28%,#91e7db2e,#0000 36%),linear-gradient(#06282670,#070c17b8);border:1px solid #91e7db2e;border-radius:8px;min-height:138px;animation:.58s ease-out forwards frame-enter;position:relative;overflow:hidden;transform:translateY(14px)scale(.98)}.story-frame.frame-2{animation-delay:.35s}.story-frame.frame-3{animation-delay:.7s}.story-frame:after{content:"";pointer-events:none;background:linear-gradient(135deg,#fff8e71c,#0000 38%);position:absolute;inset:0}.frame-glow{filter:blur(8px);background:radial-gradient(circle,#ffd0714d,#0000 68%);border-radius:50%;animation:2.2s ease-in-out infinite frame-pulse;position:absolute;inset:18%}.story-frame .story-object{z-index:1;position:absolute}.story-frame .story-object:nth-child(2){top:28%;left:21%}.story-frame .story-object:nth-child(3){bottom:18%;right:18%;transform:scale(.9)}.story-object{filter:drop-shadow(0 12px 13px #00000052);width:58px;height:58px;display:block}.rune-stone{background:linear-gradient(45deg,#0000 45%,#fff8e7b8 46% 54%,#0000 55%),radial-gradient(circle,#53ecd3 0 14%,#1f6d78 15% 48%,#233044 49%);border:2px solid #91e7dbc7;border-radius:16px;box-shadow:0 0 24px #53ecd36b}.color-gem,.crystal{clip-path:polygon(50% 0,100% 38%,76% 100%,24% 100%,0 38%);background:linear-gradient(135deg,#fff8e7 0 10%,#53ecd3 12% 44%,#8f55ff 46% 100%);border-radius:10px;box-shadow:inset 0 0 0 2px #fff8e757,0 0 22px #53ecd36b}.shape-gate,.tower{background:linear-gradient(90deg,#ffd0712e 12%,#0000 13% 26%,#ffd07124 27% 40%,#0000 41% 60%,#ffd07124 61% 74%,#0000 75%),#0a101bbd;border:3px solid #ffd071c2;border-bottom-width:8px;border-radius:999px 999px 8px 8px}.seal-crack{background:linear-gradient(45deg,#0000 45%,#fff8e7 46% 52%,#0000 53%),radial-gradient(circle,#d64b55d1,#331a30e0);border:4px solid #ffd071;border-radius:50%;animation:1.2s ease-out .25s forwards seal-break;box-shadow:0 0 28px #d64b5594}.treasure{background:linear-gradient(90deg,#0000 0 43%,#ffd071 44% 56%,#0000 57%),linear-gradient(#ffd071 0 42%,#7a3340 43% 100%);border:3px solid #8f4c2e;border-radius:10px 10px 6px 6px;height:46px;margin-top:12px;box-shadow:0 0 20px #ffd0717a}.princess-light{background:radial-gradient(circle at 50% 11%,#fff8e7 0 12%,#0000 13%),linear-gradient(#ffd071,#d7a8ff 46%,#6244a3);border-radius:999px 999px 14px 14px;width:42px;height:76px;box-shadow:0 0 28px #ffd071a3}.hourglass{clip-path:polygon(18% 0,82% 0,58% 50%,82% 100%,18% 100%,42% 50%);background:linear-gradient(160deg,#0000 0 42%,#ffd071d1 43% 55%,#0000 56%),linear-gradient(20deg,#0000 0 42%,#ffd071d1 43% 55%,#0000 56%),#12161fcc;border:3px solid #ffd071;border-radius:10px}.moon{background:radial-gradient(circle at 68% 34%,#111827 0 33%,#0000 34%),#fff8e7;border-radius:50%;box-shadow:0 0 24px #fff8e77a}.sun,.star,.spark{background:radial-gradient(circle,#fff8e7 0 22%,#ffd071 23% 52%,#0000 54%);border-radius:50%;box-shadow:0 0 30px #ffd071b8}.allies{background:radial-gradient(circle at 28% 30%,#fff8e7 0 10%,#0000 11%),radial-gradient(circle at 70% 30%,#fff8e7 0 10%,#0000 11%),radial-gradient(at 28% 75%,#53ecd3 0 22%,#0000 23%),radial-gradient(at 70% 75%,#d7a8ff 0 22%,#0000 23%)}.banner{clip-path:polygon(0 0,100% 0,100% 82%,50% 62%,0 82%);background:linear-gradient(#d64b55,#7a3340);border-radius:6px;box-shadow:inset 0 0 0 3px #ffd07199}.shield{clip-path:polygon(50% 0,90% 16%,82% 76%,50% 100%,18% 76%,10% 16%);background:linear-gradient(90deg,#fff8e733 0 48%,#0000 49%),linear-gradient(#53ecd3,#177282);border-radius:50% 50% 44% 44%}.potion{background:linear-gradient(#fff8e7 0 16%,#0000 17%),radial-gradient(circle at 50% 62%,#53ecd3 0 36%,#177282 37% 60%,#0000 61%);border-radius:18px 18px 24px 24px}.heart{clip-path:polygon(50% 88%,10% 46%,10% 22%,28% 8%,50% 24%,72% 8%,90% 22%,90% 46%);background:#d64b55;box-shadow:0 0 20px #d64b5580}.paw{background:radial-gradient(circle at 50% 68%,#ffd071 0 22%,#0000 23%),radial-gradient(circle at 22% 32%,#ffd071 0 11%,#0000 12%),radial-gradient(circle at 42% 20%,#ffd071 0 11%,#0000 12%),radial-gradient(circle at 62% 20%,#ffd071 0 11%,#0000 12%),radial-gradient(circle at 82% 32%,#ffd071 0 11%,#0000 12%)}.leaf{background:linear-gradient(135deg,#91e7db,#18746f);border-radius:100% 0;transform:rotate(-24deg)}.feast{background:radial-gradient(circle at 34% 30%,#ffb35c 0 16%,#0000 17%),radial-gradient(circle at 64% 30%,#ffd071 0 13%,#0000 14%),linear-gradient(#0000 0 48%,#fff8e7 49% 62%,#7a3340 63%);border-radius:8px 8px 26px 26px}.flame{clip-path:polygon(48% 0,70% 28%,64% 50%,86% 40%,78% 78%,50% 100%,20% 78%,14% 42%,36% 50%,30% 28%);background:linear-gradient(#ffd071,#ff6b3d 55%,#7a3340);box-shadow:0 0 24px #ff6b3d94}.key{border:5px solid #ffd071;border-radius:50%;box-shadow:28px 18px 0 -14px #ffd071,44px 18px 0 -16px #ffd071,54px 28px 0 -18px #ffd071}.lantern,.festival-lantern{background:linear-gradient(90deg,#0000 0 18%,#fff8e738 19% 28%,#0000 29% 70%,#fff8e738 71% 80%,#0000 81%),linear-gradient(#ffd071,#d64b55);border-radius:18px;box-shadow:0 0 24px #ffd07175}.window{background:linear-gradient(90deg,#0000 47%,#ffd071 48% 52%,#0000 53%),linear-gradient(#0000 47%,#ffd071 48% 52%,#0000 53%),#53ecd347;border:4px solid #ffd071;border-radius:8px}.book{background:linear-gradient(90deg,#45d6c9 0 48%,#fff8e7 49% 51%,#d7a8ff 52%),linear-gradient(#ffffff29,#0000);border-radius:8px;box-shadow:inset 0 0 0 3px #06282657}.compass{background:conic-gradient(from 45deg, #d64b55 0 25%, #fff8e7 0 50%, #53ecd3 0 75%, #6244a3 0), #111827;border:4px solid #ffd071;border-radius:50%}.road{clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);background:linear-gradient(90deg,#0000 0 45%,#ffd071 46% 54%,#0000 55%),linear-gradient(#0000 0 10%,#3c4050 11%);height:70px}.wheel{background:linear-gradient(90deg,#0000 46%,#ffd071 47% 53%,#0000 54%),linear-gradient(#0000 46%,#ffd071 47% 53%,#0000 54%);border:6px solid #ffd071;border-radius:50%}.boot{clip-path:polygon(18% 0,66% 0,70% 62%,100% 70%,94% 100%,10% 100%,20% 62%);background:linear-gradient(#7a3340,#2a1720);border-radius:10px 10px 20px 8px;height:48px;margin-top:10px}.mirror{background:radial-gradient(circle at 34% 28%,#fff8e7,#53ecd3 34%,#1b3d52 72%);border:4px solid #ffd071;border-radius:50% 50% 42% 42%}.rain-cloud{background:radial-gradient(circle at 30% 36%,#fff8e7 0 18%,#0000 19%),radial-gradient(circle at 55% 28%,#fff8e7 0 22%,#0000 23%),radial-gradient(circle at 76% 40%,#fff8e7 0 16%,#0000 17%),linear-gradient(#0000 0 60%,#53ecd3 61% 70%,#0000 71% 78%,#53ecd3 79% 88%,#0000 89%)}.stage-mask{clip-path:polygon(10% 0,90% 0,100% 68%,72% 100%,50% 76%,28% 100%,0 68%);background:radial-gradient(circle at 34% 42%,#111827 0 8%,#0000 9%),radial-gradient(circle at 66% 42%,#111827 0 8%,#0000 9%),linear-gradient(#ffd071,#d64b55);border-radius:50% 50% 42% 42%}.crown{clip-path:polygon(0 100%,0 42%,18% 70%,32% 8%,50% 62%,68% 8%,82% 70%,100% 42%,100% 100%);filter:drop-shadow(0 0 14px #ffd071a3);background:linear-gradient(#fff3b0,#ffd071 70%,#b37025);height:44px;margin-top:14px}.result{text-align:center;place-items:center;gap:12px;min-height:420px;display:grid}.victory-mark{color:#fff8e7;background:#7a3340;border-radius:999px;place-items:center;min-width:118px;min-height:40px;font-weight:900;display:inline-grid}.victory-mark.win{color:#062826;background:#53ecd3}.result h3{margin:0;font-size:30px}.reward-list{flex-wrap:wrap;justify-content:center;gap:8px;max-width:100%;display:flex}.reward-list span,.reward-list b{border-radius:999px;align-items:center;min-height:34px;padding:7px 11px;font-size:13px;font-weight:900;display:inline-flex}.reward-list span{color:#062826;background:#53ecd3}.reward-list b{color:#ffe4a3;background:#ffd0711f;border:1px solid #ffd07175}@keyframes story-pan{0%{transform:scale(1.14)translate(-2%)}to{transform:scale(1.06)translate(0)}}@keyframes path-unlock{to{transform:rotate(-9deg)translate(58%)}}@keyframes hero-enter{0%{opacity:0;transform:translate(-24px)scale(.92)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes seal-break{0%{opacity:1;transform:scale(1)}70%{opacity:1;filter:brightness(1.25);transform:scale(1.08)rotate(5deg)}to{opacity:.42;filter:grayscale(.45);transform:scale(.86)rotate(-8deg)}}@keyframes story-line{to{opacity:1;transform:translateY(0)}}@keyframes story-prop-in{0%{opacity:0;transform:translateY(18px)scale(.8)}to{opacity:.88;transform:translateY(0)scale(1)}}@keyframes story-float{0%,to{margin-top:0}50%{margin-top:-8px}}@keyframes gate-open{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes frame-enter{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes frame-pulse{0%,to{opacity:.46;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}.paper-doll{isolation:isolate;aspect-ratio:231/467;filter:drop-shadow(0 18px 22px #0000005c);border-radius:8px;width:min(220px,100%);margin:0 auto;position:relative;overflow:hidden}.paper-doll.compact{aspect-ratio:231/467;width:56px;margin:0}.doll-backlight,.doll-floor{position:absolute}.doll-backlight{background:radial-gradient(circle at 50% 24%, color-mix(in srgb, var(--outfit-top) 58%, white 18%), transparent 36%), radial-gradient(circle at 50% 72%, color-mix(in srgb, var(--outfit-bottom) 52%, #041314 20%), transparent 58%);opacity:.64;filter:blur(16px);z-index:0;border-radius:45% 45% 38% 38%;inset:8% 5% 11%}.doll-art{object-fit:contain;object-position:center center;pointer-events:none;z-index:30;width:100%;height:100%;position:absolute;inset:0}.doll-full-art{animation:.18s ease-out doll-swap}.paper-doll.boy .doll-art,.paper-doll.compact .doll-art,.paper-doll.girl .doll-art,.paper-doll.compact.boy .doll-art,.paper-doll.compact.girl .doll-art{transform:none}@keyframes doll-swap{0%{opacity:.2;filter:brightness(1.18)saturate(1.18)}to{opacity:1;filter:none}}@media (prefers-reduced-motion:reduce){.doll-full-art{animation:none}}.doll-floor{z-index:1;filter:blur(3px);background:radial-gradient(#0000007a,#0000 66%);border-radius:50%;height:16%;bottom:0;left:17%;right:13%}.paper-doll.compact .doll-floor{height:18%;bottom:-4%}.paper-doll.compact .doll-backlight{filter:blur(8px);opacity:.54}.wardrobe-backdrop{z-index:20;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#05080eb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.wardrobe-panel{background:linear-gradient(180deg, #251f1ff5, #0f151ffa), var(--dungeon-bg) center / cover;border:1px solid #ffd07152;border-radius:8px;width:min(880px,100%);max-height:min(720px,100svh - 40px);overflow:auto;box-shadow:0 30px 90px #00000094}.wardrobe-header{border-bottom:1px solid #f5dba429;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px;display:flex}.wardrobe-header p,.wardrobe-header h2,.wardrobe-header span{margin:0}.wardrobe-header p{color:#91e7db;text-transform:uppercase;font-size:12px;font-weight:900}.wardrobe-header h2{margin-top:4px;font-size:28px}.wardrobe-header span{color:#c8b891;margin-top:5px;display:block}.icon-button{color:#fff8e7;cursor:pointer;background:#ffffff14;border:1px solid #f5dba43d;border-radius:8px;place-items:center;width:40px;height:40px;font-size:22px;font-weight:900;display:grid}.wardrobe-layout{grid-template-columns:240px 1fr;gap:20px;padding:20px;display:grid}.doll-stage{background:radial-gradient(circle at 50% 18%,#91e7db33,#0000 38%),#0000003d;border:1px solid #91e7db33;border-radius:8px;align-content:center;place-items:center;gap:12px;min-height:300px;display:grid}.doll-stage.previewing{border-color:#53ecd39e;box-shadow:inset 0 0 30px #53ecd31f}.doll-stage small{color:#062826;background:#91e7db;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900}.equipment-list{gap:16px;display:grid}.equipment-group{gap:10px;display:grid}.equipment-group h3{margin:0;font-size:18px}.equipment-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.equipment-options button{color:#fff8e7;cursor:pointer;text-align:left;background:#ffffff14;border:1px solid #f5dba42e;border-radius:8px;gap:4px;min-height:66px;padding:10px 12px;display:grid}.equipment-options button.selected{background:#1e60656b;border-color:#53ecd3d1}.equipment-options button.locked{color:#95876c;cursor:not-allowed;opacity:.62;background:#0000002e}.equipment-options button.locked:hover,.equipment-options button.locked:focus-visible{background:#0000002e;border-color:#f5dba42e}.equipment-options small{color:#91e7db;font-weight:800}@media (width<=1180px){.shell{grid-template-columns:260px minmax(360px,1fr)}.quest-panel{grid-column:1/-1}.quest-card{min-height:auto}}@media (width<=760px){.shell{grid-template-columns:1fr;padding:10px}.sidebar,.map-panel,.quest-card{padding:16px}.topbar,.quest-header{flex-direction:column;align-items:flex-start}.level-path,.flashcards,.options{grid-template-columns:1fr}.preview-art{max-height:210px}.scene-window{height:150px}.concept-strip{height:110px}.concept-strip figcaption{width:auto;left:12px}.level-node{min-height:96px}.spelling-form{grid-template-columns:1fr}.question-box h3{font-size:28px}.story-stage{min-height:220px}.story-hero{bottom:16px;left:14px}.story-hero .paper-doll.compact{width:78px;height:114px}.story-boss-seal{min-width:86px;bottom:22px;right:12px}.story-boss-seal span{width:54px;height:54px}.story-cinema{padding:16px}.story-cinema h3{font-size:24px}.story-frames{grid-template-columns:1fr}.story-frame{min-height:112px}.story-object{width:48px;height:48px}.story-princess-gate{width:74px;height:108px;top:13%;right:12%}}@media (prefers-reduced-motion:reduce){.story-stage img,.story-path-light,.story-hero,.story-boss-seal,.story-stage-props .story-object,.story-princess-gate,.story-frame,.frame-glow,.seal-crack{opacity:1;animation:none;transform:none}}
