@font-face{font-family:Jua;font-style:normal;font-weight:400;font-display:swap;src:url(/nuri-world/assets/Jua-subset-BjyPHwS8.woff2) format("woff2")}@font-face{font-family:"Noto Serif KR";font-style:normal;font-weight:700;font-display:swap;src:url(/nuri-world/assets/NotoSerifKR-700-subset-C6JpsJVy.woff2) format("woff2")}:root{--wood-dark: #6b4a2b;--wood: #8b5e3c;--wood-light: #b98a5e;--cream: #fff6e3;--cream-deep: #ffe9c2;--ink: #4a3423;--gold: #ffc93c;--gold-deep: #e8a812;--grass: #6abf4b;--grass-deep: #3f8f2f;--sky: #59b8f2;--sky-deep: #2f8fd0;--berry: #f26d9a;--berry-deep: #d94f7e;--purple: #9b6dd6;--purple-deep: #7a4cb8;--danger: #e25555;--card-1: #f2708a;--card-2: #59b8f2;--card-3: #ffb03a;--card-4: #6abf4b;--card-5: #9b6dd6;--card-6: #38c9b0;--shadow-soft: 0 6px 18px rgba(74, 52, 35, .25);--shadow-pop: 0 10px 24px rgba(74, 52, 35, .35);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;--sz-card: clamp(84px, 14vmin, 150px);--sz-card-sm: clamp(76px, 11.5vmin, 118px);--sz-card-big: clamp(150px, 26vmin, 260px);--sz-slot: clamp(90px, 13vmin, 130px);--sz-tile: clamp(80px, 12.5vmin, 130px);--sz-target: clamp(140px, 24vmin, 230px);--fs-card: clamp(2.6rem, 8vmin, 4.6rem);--fs-card-sm: clamp(2rem, 5.8vmin, 3.5rem);--fs-card-big: clamp(4.4rem, 14.5vmin, 8.6rem);--fs-slot: clamp(2.3rem, 6.8vmin, 4rem);--fs-tile: clamp(2.3rem, 7vmin, 4.2rem);--fs-target: clamp(3.8rem, 12vmin, 7rem);--fs-mem: clamp(3rem, 8.5vmin, 5.4rem);--fs-dex: clamp(2rem, 4vmin, 2.6rem);font-size:clamp(14px,1.6vmin + 8px,20px)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:Jua,BM Jua,Apple SD Gothic Neo,Malgun Gothic,sans-serif;color:var(--ink);background:#2b2036;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font-family:inherit;color:inherit;border:none;background:none;cursor:pointer;touch-action:manipulation}#app{width:100%;height:100vh;height:100dvh;position:relative}.screen{position:absolute;inset:0;display:flex;flex-direction:column;background-size:cover;background-position:center;opacity:1;transition:opacity .45s ease}.screen.fade-out{opacity:0;pointer-events:none}.screen.fade-in{animation:screenIn .5s ease both}@keyframes screenIn{0%{opacity:0}to{opacity:1}}.screen .scrim{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(30,18,8,.25) 100%);pointer-events:none}.topbar{position:relative;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;padding-top:max(12px,env(safe-area-inset-top));padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(16px + env(safe-area-inset-right));pointer-events:none}.topbar>*{pointer-events:auto}.topbar .side{display:flex;gap:10px}.btn-round{min-width:64px;height:64px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;background:linear-gradient(180deg,var(--cream) 0%,var(--cream-deep) 100%);border:3px solid var(--wood);box-shadow:0 4px 0 var(--wood-dark),var(--shadow-soft);font-size:1.05rem;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}.btn-round:active{transform:translateY(3px);box-shadow:0 1px 0 var(--wood-dark)}.btn-round .ico{font-size:1.3em;line-height:1}.sign{display:inline-block;padding:12px 30px;background:linear-gradient(180deg,#a06c40,#8b5e3c 55%,#7a5030);border:4px solid #5d3f22;border-radius:var(--radius-md);box-shadow:inset 0 2px #ffffff40,0 6px #4c3018,var(--shadow-soft);color:#fff6e3;text-shadow:0 2px 0 rgba(0,0,0,.35);text-align:center}.sign .sub{display:block;margin-top:2px;font-size:.72em;color:#ffe1a8}.ribbon{display:inline-block;padding:8px 26px;background:linear-gradient(180deg,#fff2cf,#f7dfa8);border:3px solid #caa25f;border-radius:999px;color:var(--ink);box-shadow:var(--shadow-soft)}.panel{background:linear-gradient(180deg,var(--cream) 0%,#fdeecd 100%);border:4px solid var(--wood);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:22px 28px}.bubble{position:relative;background:var(--cream);border:3px solid var(--wood);border-radius:var(--radius-lg);padding:14px 22px;box-shadow:var(--shadow-soft);font-size:1.15rem;line-height:1.5}.bubble:after{content:"";position:absolute;bottom:-14px;left:44px;width:22px;height:22px;background:var(--cream);border-right:3px solid var(--wood);border-bottom:3px solid var(--wood);transform:rotate(45deg)}.btn-big{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:72px;padding:14px 44px;font-size:1.6rem;color:#5d3a00;background:linear-gradient(180deg,#ffd95e 0%,var(--gold) 60%,var(--gold-deep) 100%);border:4px solid #b97e00;border-radius:999px;box-shadow:inset 0 3px #ffffff8c,0 7px #96660a,var(--shadow-pop);text-shadow:0 1px 0 rgba(255,255,255,.4);transition:transform .12s ease,box-shadow .12s ease}.btn-big:active{transform:translateY(4px);box-shadow:inset 0 3px #ffffff8c,0 2px #96660a}.btn-big.secondary{font-size:1.2rem;min-height:60px;padding:10px 30px;color:#fff;background:linear-gradient(180deg,#7fd0ff 0%,var(--sky) 60%,var(--sky-deep) 100%);border-color:#1f6fa8;box-shadow:inset 0 3px #ffffff80,0 6px #185a88,var(--shadow-soft);text-shadow:0 2px 0 rgba(0,0,0,.25)}.btn-big.secondary:active{box-shadow:inset 0 3px #ffffff80,0 2px #185a88}.letter-card{display:inline-flex;align-items:center;justify-content:center;width:var(--sz-card);height:var(--sz-card);border-radius:var(--radius-lg);font-size:var(--fs-card);color:#fff;text-shadow:0 3px 0 rgba(0,0,0,.22);border:4px solid rgba(255,255,255,.75);box-shadow:inset 0 4px #ffffff59,inset 0 -6px #00000026,var(--shadow-pop);transition:transform .15s ease;position:relative}.letter-card:active{transform:scale(.94)}.letter-card.c1{background:var(--card-1)}.letter-card.c2{background:var(--card-2)}.letter-card.c3{background:var(--card-3)}.letter-card.c4{background:var(--card-4)}.letter-card.c5{background:var(--card-5)}.letter-card.c6{background:var(--card-6)}.letter-card.compact{width:var(--sz-card-sm);height:var(--sz-card-sm);font-size:var(--fs-card-sm)}.letter-card.big{width:var(--sz-card-big);height:var(--sz-card-big);font-size:var(--fs-card-big)}.letter-card,.build-target,.build-slot,.word-tile,.mem-card .face,.dex-item .g,.word-label,.dex-item .n{font-family:"Noto Serif KR",Nanum Myeongjo,Apple SD Gothic Neo,serif;font-weight:700;letter-spacing:0}@keyframes popCorrect{0%{transform:scale(1)}40%{transform:scale(1.18) rotate(-3deg)}70%{transform:scale(1.08) rotate(2deg)}to{transform:scale(1.1)}}.letter-card.correct,.choice.correct{animation:popCorrect .5s ease both;box-shadow:0 0 0 6px #ffe064e6,0 0 34px 10px #ffd64fbf,var(--shadow-pop)}@keyframes wiggleWrong{0%,to{transform:translate(0)}25%{transform:translate(-9px) rotate(-2deg)}50%{transform:translate(8px) rotate(2deg)}75%{transform:translate(-6px)}}.letter-card.wrong,.choice.wrong{animation:wiggleWrong .4s ease both;filter:saturate(.6) brightness(.92)}.letter-card.dim,.choice.dim{opacity:.35;pointer-events:none;transition:opacity .3s}.stage-pads{display:flex;gap:clamp(14px,3vmin,34px);align-items:center;justify-content:center;flex-wrap:wrap}.stage-pad{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 12px;width:clamp(120px,17vmin,180px);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff6e3f5,#fde8c2f5);border:4px solid var(--wood);box-shadow:0 6px 0 var(--wood-dark),var(--shadow-soft);transition:transform .15s ease}.stage-pad:not(.locked):active{transform:translateY(3px) scale(.98)}.stage-pad .num{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,var(--grass),var(--grass-deep));color:#fff;font-size:1.5rem;border:3px solid #2e6b22;text-shadow:0 2px 0 rgba(0,0,0,.3)}.stage-pad .t{font-size:1.02rem;line-height:1.25;text-align:center}.stage-pad .stars{font-size:1.05rem;letter-spacing:2px}.stage-pad.locked{filter:grayscale(.75) brightness(.82)}.stage-pad.locked .num{background:linear-gradient(180deg,#9c9c9c,#6f6f6f);border-color:#565656}.map-spot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:4;transition:transform .15s ease}.map-spot:active{transform:translate(-50%,-50%) scale(.95)}.map-spot .label{padding:8px 16px;background:linear-gradient(180deg,#a06c40,#7a5030);border:3px solid #5d3f22;border-radius:var(--radius-sm);color:var(--cream);font-size:clamp(.85rem,1.9vmin,1.2rem);white-space:nowrap;box-shadow:0 4px #4c3018,var(--shadow-soft);text-shadow:0 2px 0 rgba(0,0,0,.35)}.map-spot .label .sub{display:block;font-size:.72em;color:#ffe1a8}.map-spot .stars{font-size:clamp(.8rem,1.8vmin,1.05rem);text-shadow:0 1px 2px rgba(0,0,0,.5)}.map-spot .lock-ico{font-size:1.5em;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.map-spot.locked .label{filter:grayscale(.6) brightness(.75)}@keyframes bobSpot{0%,to{translate:0 0}50%{translate:0 -7px}}.map-spot.next .label{animation:bobSpot 1.6s ease-in-out infinite;outline:3px solid var(--gold);outline-offset:2px}.char{position:absolute;bottom:0;height:clamp(180px,38vmin,420px);filter:drop-shadow(0 10px 14px rgba(0,0,0,.35));pointer-events:none;z-index:3}@keyframes charFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.char.floaty{animation:charFloat 2.6s ease-in-out infinite}@keyframes charBounceIn{0%{transform:translateY(60px) scale(.8);opacity:0}60%{transform:translateY(-12px) scale(1.05);opacity:1}to{transform:translateY(0) scale(1)}}.char.enter{animation:charBounceIn .7s cubic-bezier(.34,1.56,.64,1) both}@keyframes charCheer{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-18px) rotate(3deg)}}.char.cheer{animation:charCheer 1.1s ease-in-out infinite;transform-origin:bottom center}.char-pori.cheer{animation-duration:.9s;animation-delay:.15s}.char-nuri{height:clamp(180px,38vmin,420px)}.char-pori{height:clamp(112px,23vmin,254px)}.jamo-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.jamo{position:absolute;font-family:Jua,system-ui,sans-serif;font-weight:700;line-height:1;-webkit-text-stroke:.11em #ffffff;paint-order:stroke fill;filter:drop-shadow(0 0 .03em rgba(70,45,10,.65)) drop-shadow(0 .09em .02em rgba(0,0,0,.28)) drop-shadow(0 .16em .16em rgba(0,0,0,.38));will-change:transform;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.jamo--drift{animation-name:jamoDrift}@keyframes jamoDrift{0%,to{transform:translateY(.28em) rotate(calc(var(--rot, 0deg) * -1))}50%{transform:translateY(-.55em) rotate(var(--rot, 0deg))}}.jamo--sway{animation-name:jamoSway}@keyframes jamoSway{0%,to{transform:translate(-.5em) rotate(calc(var(--rot, 0deg) * -1))}50%{transform:translate(.5em) rotate(var(--rot, 0deg))}}.jamo--orbit{animation-name:jamoOrbit;animation-timing-function:linear}@keyframes jamoOrbit{0%{transform:translate(0) rotate(0)}25%{transform:translate(.55em,-.45em) rotate(var(--rot, 0deg))}50%{transform:translateY(-.9em) rotate(0)}75%{transform:translate(-.55em,-.45em) rotate(calc(var(--rot, 0deg) * -1))}to{transform:translate(0) rotate(0)}}.jamo--bob{animation-name:jamoBob}@keyframes jamoBob{0%,to{transform:translateY(.3em) scale(.9) rotate(var(--rot, 0deg))}50%{transform:translateY(-.6em) scale(1.12) rotate(calc(var(--rot, 0deg) * -1))}}.jamo--wobble{animation-name:jamoWobble}@keyframes jamoWobble{0%{transform:rotate(calc(var(--rot, 0deg) * -1)) translateY(0)}25%{transform:rotate(var(--rot, 0deg)) translateY(-.35em)}50%{transform:rotate(calc(var(--rot, 0deg) * -1)) translateY(0)}75%{transform:rotate(var(--rot, 0deg)) translateY(-.35em)}to{transform:rotate(calc(var(--rot, 0deg) * -1)) translateY(0)}}.game-area{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:clamp(18px,3.6vmin,40px);padding:12px max(20px,env(safe-area-inset-left)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-right));min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.prompt-bar{display:flex;align-items:center;gap:14px;padding:12px 26px;background:#fff6e3f2;border:3px solid var(--wood);border-radius:999px;box-shadow:var(--shadow-soft);font-size:clamp(1.1rem,2.6vmin,1.6rem);text-align:center;max-width:min(92vw,780px)}.btn-speaker{width:64px;height:64px;flex:none;border-radius:50%;background:linear-gradient(180deg,#7fd0ff,var(--sky-deep));border:3px solid #1f6fa8;box-shadow:0 4px #185a88;font-size:1.5rem;transition:transform .12s ease}.btn-speaker:active{transform:translateY(3px);box-shadow:none}@keyframes pulseSpk{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.btn-speaker.pulse{animation:pulseSpk 1.1s ease-in-out infinite}.choices{display:flex;gap:clamp(18px,4.2vmin,48px);align-items:center;justify-content:center;flex-wrap:wrap}.round-dots{display:flex;gap:10px}.round-dots .dot{width:18px;height:18px;border-radius:50%;background:#ffffff8c;border:2px solid var(--wood)}.round-dots .dot.done{background:var(--gold)}.round-dots .dot.now{background:var(--berry);transform:scale(1.2)}.memory-grid{display:grid;grid-template-columns:repeat(var(--cols, 4),1fr);gap:clamp(10px,2vmin,20px);width:min(92vw,96vmin,560px)}.mem-card{aspect-ratio:3 / 3.4;perspective:600px;position:relative}.mem-card .inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.34,1.3,.64,1)}.mem-card.open .inner{transform:rotateY(180deg)}.mem-card .face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);backface-visibility:hidden;-webkit-backface-visibility:hidden;font-size:var(--fs-mem)}.mem-card .back{background:linear-gradient(135deg,var(--purple) 0%,var(--purple-deep) 100%);border:3px solid #5d3a91;color:#ffffffd9;box-shadow:var(--shadow-soft)}.mem-card .front{background:var(--cream);border:3px solid var(--wood);transform:rotateY(180deg);color:var(--ink);text-shadow:none}.mem-card.matched{animation:popCorrect .5s ease both}.mem-card.matched .front{background:#eaffdc;border-color:var(--grass-deep)}.build-target{display:flex;align-items:center;justify-content:center;width:var(--sz-target);height:var(--sz-target);border-radius:var(--radius-lg);background:#fff6e380;border:5px dashed var(--wood);font-size:var(--fs-target);color:var(--ink)}.build-target.done{background:var(--cream);border-style:solid;animation:popCorrect .55s ease both}.build-slots{display:flex;align-items:center;gap:16px;font-size:2.2rem;color:#fff;text-shadow:0 2px 3px rgba(0,0,0,.4)}.build-slot{width:var(--sz-slot);height:var(--sz-slot);border-radius:var(--radius-md);border:4px dashed rgba(255,255,255,.85);background:#0000002e;display:flex;align-items:center;justify-content:center;font-size:var(--fs-slot);color:#fff}.build-slot.filled{border-style:solid;background:#fff6e3eb;color:var(--ink);text-shadow:none}.word-display{display:flex;gap:clamp(8px,1.6vmin,16px);align-items:center}.word-tile{width:var(--sz-tile);height:var(--sz-tile);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--cream);border:4px solid var(--wood);box-shadow:0 5px 0 var(--wood-dark),var(--shadow-soft);font-size:var(--fs-tile);color:var(--ink)}.word-tile.blank{background:#fff6e373;border-style:dashed;color:#4a342359}.word-tile.blank.filled{background:#eaffdc;border-style:solid;border-color:var(--grass-deep);animation:popCorrect .5s ease both;color:var(--ink)}.word-emoji{font-size:clamp(4rem,11vmin,7rem);line-height:1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.25))}.center-col.festival-col{justify-content:flex-end;padding-bottom:max(24px,5vh)}.festival-parade{display:flex;flex-wrap:wrap;gap:clamp(6px,1.4vmin,14px);justify-content:center;max-width:92vw}.festival-friend{font-size:clamp(1.7rem,4.6vmin,3rem);line-height:1;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25));animation:friendCheer 1.6s ease-in-out infinite;animation-delay:calc(var(--i, 0) * .11s)}@keyframes friendCheer{0%,to{transform:translateY(0) rotate(-7deg) scale(1)}50%{transform:translateY(-13px) rotate(7deg) scale(1.08)}}.festival-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.modal.memento-modal{max-width:min(94vw,520px);gap:12px}.memento-holder{display:flex;justify-content:center;min-height:40px}.memento-canvas{width:100%;max-width:360px;max-height:58vh;object-fit:contain;height:auto;border-radius:10px;box-shadow:var(--shadow-soft)}.memento-status{min-height:1.3rem;font-size:.95rem;color:var(--wood)}.memento-actions{display:flex;gap:12px;justify-content:center}.memento-actions>button{flex:1;min-height:clamp(44px,7.5vh,56px);font-size:clamp(1rem,2.8vh,1.2rem);white-space:nowrap}.memento-actions>button:disabled{opacity:.45;filter:grayscale(.4)}.festival-dancers{position:relative;height:clamp(130px,40vh,380px);aspect-ratio:3 / 2;width:auto;flex:none;z-index:3;pointer-events:none;transform-origin:bottom center;animation:danceWaltz 2.4s ease-in-out infinite;filter:drop-shadow(0 12px 16px rgba(0,0,0,.35))}@keyframes danceWaltz{0%{transform:translateY(0) rotate(-4deg) scale(1)}25%{transform:translateY(-14px) rotate(0) scale(1.03)}50%{transform:translateY(0) rotate(4deg) scale(1)}75%{transform:translateY(-14px) rotate(0) scale(1.03)}to{transform:translateY(0) rotate(-4deg) scale(1)}}.dance-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;animation:danceFrames 3.6s steps(1,end) infinite;animation-delay:calc(var(--f, 0) * 1.2s)}@keyframes danceFrames{0%{opacity:1}33.33%{opacity:0}to{opacity:0}}.arena-hud{position:relative;z-index:5;display:flex;align-items:center;justify-content:center;gap:clamp(10px,2.4vw,22px);padding:0 clamp(12px,4vw,40px)}.arena-time{flex:1;max-width:min(56vw,460px);height:clamp(14px,2.6vh,22px);border-radius:999px;background:#00000073;border:3px solid #fff;overflow:hidden;box-shadow:var(--shadow-soft)}.arena-time .fill{height:100%;width:100%;background:linear-gradient(180deg,#ffe07a,var(--gold-deep));transition:width .12s linear}.arena-stat{display:flex;align-items:baseline;gap:2px;font-size:clamp(1.1rem,3.2vh,1.7rem);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.45);white-space:nowrap}.arena-combo{color:#ffd95e}.arena-result{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,2vh,16px);text-align:center;font-size:clamp(1rem,2.8vh,1.3rem)}.arena-result-score{font-size:clamp(1.8rem,6vh,3rem);color:var(--wood)}.arena-result-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.arena-hub{gap:clamp(10px,2.4vh,22px)}.arena-picks{display:flex;gap:clamp(10px,2vw,20px);flex-wrap:wrap;justify-content:center}.arena-pick{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.6vh,6px);width:clamp(150px,24vw,230px);padding:clamp(10px,2vh,20px) clamp(8px,1.4vw,16px);background:linear-gradient(180deg,var(--cream) 0%,#fdeecd 100%);border:4px solid var(--wood);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}.arena-pick:active{transform:translateY(3px);box-shadow:var(--shadow-soft)}.arena-pick.locked{opacity:.5;filter:grayscale(.5)}.arena-pick-ico{font-size:clamp(2rem,7vh,3.4rem);line-height:1}.arena-pick-name{font-size:clamp(1rem,2.9vh,1.4rem);font-weight:700}.arena-pick-desc{font-size:clamp(.8rem,2.1vh,1rem);opacity:.8}.arena-pick-best{font-size:clamp(.78rem,2vh,.95rem);color:var(--wood)}.fall-bar{gap:clamp(8px,1.6vw,16px)}.fall-target{display:flex;align-items:center;gap:8px}.fall-target-label{font-size:clamp(.85rem,2.2vh,1.05rem);opacity:.75}.fall-target-ch{font-size:clamp(1.6rem,5.4vh,2.6rem);font-weight:700;color:var(--wood)}.fall-field{position:relative;flex:1;width:100%;min-height:0;overflow:hidden}.fall-letter{position:absolute;top:0;width:clamp(52px,11vh,88px);height:clamp(52px,11vh,88px);font-size:clamp(1.6rem,5.6vh,2.6rem);will-change:transform}.find-target{font-size:clamp(1.6rem,5.4vh,2.6rem);font-weight:700;color:var(--wood);margin-left:4px}.find-board{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(6px,1.6vh,14px);justify-items:center}.find-cell{width:clamp(52px,12vh,96px);height:clamp(52px,12vh,96px);font-size:clamp(1.5rem,5.6vh,2.8rem)}.find-cell.found{opacity:.45;pointer-events:none}.boss-hp{width:min(70vw,520px);height:30px;border-radius:999px;background:#00000073;border:3px solid #fff;overflow:hidden;box-shadow:var(--shadow-soft)}.boss-hp .fill{height:100%;width:100%;background:linear-gradient(180deg,#c467e8,var(--purple-deep));transition:width .5s cubic-bezier(.34,1.2,.64,1)}.game-area.boss-stage{justify-content:flex-start;gap:clamp(8px,1.6vh,20px);padding-top:clamp(6px,1.5vh,18px);--sz-card: clamp(120px, 17vh, 190px);--fs-card: clamp(3.6rem, 8vh, 6rem);--sz-tile: clamp(96px, 13vh, 155px);--fs-tile: clamp(2.6rem, 6.2vh, 4.4rem)}.game-area.boss-stage .boss-top{flex:none}.game-area.boss-stage .prompt-bar{padding:12px 30px}.game-area.boss-stage .btn-speaker{width:64px;height:64px;font-size:1.6rem}.boss-char{height:clamp(150px,24vmin,290px);filter:drop-shadow(0 10px 16px rgba(0,0,0,.5));transition:transform .3s ease,filter .3s ease}@keyframes bossHurt{0%{transform:translate(0) scale(1);filter:brightness(2) drop-shadow(0 0 20px #fff)}30%{transform:translate(-18px) rotate(-4deg) scale(.96)}60%{transform:translate(14px) rotate(3deg)}to{transform:translate(0) scale(1)}}.boss-char.hurt{animation:bossHurt .6s ease both}@keyframes bossLaugh{0%,to{transform:translateY(0)}25%{transform:translateY(-8px) rotate(-2deg)}50%{transform:translateY(0)}75%{transform:translateY(-6px) rotate(2deg)}}.boss-char.laugh{animation:bossLaugh .55s ease both}@keyframes bossDefeat{0%{transform:scale(1) rotate(0);opacity:1;filter:brightness(1)}40%{transform:scale(1.05) rotate(-6deg);filter:brightness(1.6)}to{transform:scale(.1) rotate(360deg) translateY(80px);opacity:0}}.boss-char.defeat{animation:bossDefeat 1.6s ease-in both}.battle-hero{position:absolute;left:max(.5%,env(safe-area-inset-left));bottom:calc(1% + env(safe-area-inset-bottom));width:min(22vw,280px);height:auto;max-height:40vh;z-index:1;pointer-events:none;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45));animation:heroBob 2.4s ease-in-out infinite}@keyframes heroBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes heroAttack{0%{transform:translate(0) scale(1)}40%{transform:translate(20px,-12px) scale(1.09) rotate(-3deg);filter:drop-shadow(0 0 18px #ffe38a)}to{transform:translate(0) scale(1)}}.battle-hero.attacking{animation:heroAttack .55s ease both}@keyframes heroCheer{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-16px) rotate(-5deg)}75%{transform:translateY(-12px) rotate(5deg)}}.battle-hero.cheering{animation:heroCheer .7s ease-in-out infinite}.celebrate-hero{width:min(64vw,420px);max-height:min(30vh,300px);object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.4));pointer-events:none;flex:none}@keyframes celebratePop{0%{transform:scale(.4) rotate(-8deg);opacity:0}60%{transform:scale(1.08) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0)}}@keyframes celebrateFloat{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-14px) rotate(1.5deg)}}.celebrate-hero.enter{animation:celebratePop .7s cubic-bezier(.34,1.56,.64,1) both,celebrateFloat 2.8s ease-in-out .7s infinite}.load-hero{height:clamp(140px,30vmin,320px);filter:drop-shadow(0 10px 16px rgba(0,0,0,.4));animation:charFloat 2.6s ease-in-out infinite}.load-msg{font-family:Jua,sans-serif;font-size:clamp(1.3rem,3.4vmin,2rem);color:#fff6e3;text-shadow:0 2px 6px rgba(0,0,0,.55);text-align:center}.load-bar{width:min(72vw,520px);height:clamp(16px,2.4vmin,26px);background:#00000059;border:3px solid rgba(255,255,255,.85);border-radius:999px;overflow:hidden;box-shadow:var(--shadow-soft)}.load-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,#ffd95e,var(--gold, #ffb03a));transition:width .3s ease}.load-pct{font-family:Jua,sans-serif;font-size:clamp(1rem,2.4vmin,1.4rem);color:#fff6e3;text-shadow:0 1px 3px rgba(0,0,0,.5)}.load-start{display:none}.screen.load-done .load-start{display:inline-flex;animation:startPulse 1s ease-in-out infinite}.screen.load-done .load-bar,.screen.load-done .load-pct{display:none}@keyframes startPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.result-stars{display:flex;gap:20px;justify-content:center;font-size:clamp(3.4rem,9vmin,6rem)}.result-stars .s{opacity:.25;transform:scale(.6);filter:grayscale(1)}@keyframes starPop{0%{opacity:.25;transform:scale(.4) rotate(-40deg);filter:grayscale(1)}60%{opacity:1;transform:scale(1.35) rotate(10deg);filter:grayscale(0) drop-shadow(0 0 18px #ffd95e)}to{opacity:1;transform:scale(1) rotate(0);filter:grayscale(0) drop-shadow(0 0 10px #ffd95e)}}.result-stars .s.on{animation:starPop .6s cubic-bezier(.34,1.56,.64,1) both}.story-text{position:relative;z-index:2;margin:0 auto;max-width:min(92vw,860px);white-space:pre-line;text-align:center;font-size:clamp(1.25rem,3.2vmin,2rem);line-height:1.6}.story-text.festival-line{padding:clamp(7px,1.5vh,13px) clamp(18px,3vw,30px);border-width:3px;line-height:1.3;font-size:clamp(1rem,3.1vh,1.5rem)}.tap-hint{font-size:1rem;color:#8a6a45;animation:bobSpot 1.4s ease-in-out infinite}.dex-tabs{display:flex;gap:10px;justify-content:center}.dex-tab{padding:10px 26px;border-radius:999px 999px 0 0;background:#fff6e399;border:3px solid var(--wood);border-bottom:none;font-size:1.1rem}.dex-tab.active{background:var(--cream);font-weight:700}.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(88px,13vmin,130px),1fr));grid-auto-rows:min-content;align-content:start;gap:14px;overflow-y:auto;padding:18px;-webkit-overflow-scrolling:touch}.dex-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:var(--radius-md);background:var(--cream);border:3px solid var(--wood-light);text-align:center}.dex-item .g{font-size:var(--fs-dex);line-height:1.15}.dex-item .n{font-size:1rem}.dex-item.locked{filter:grayscale(1);opacity:.45}.dex-item.locked .g{filter:blur(2px)}.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:60;overflow:hidden;contain:layout style paint}.fx-particle{position:absolute;font-size:1.6rem;will-change:transform,opacity;animation:flyUp var(--dur, 1.2s) ease-out both}@keyframes flyUp{0%{transform:translateZ(0) scale(.6) rotate(0);opacity:1}to{transform:translate3d(var(--dx, 0),var(--dy, -140px),0) scale(1.2) rotate(var(--rot, 180deg));opacity:0}}.fx-confetti{position:absolute;top:-24px;width:14px;height:20px;border-radius:4px;will-change:transform,opacity;backface-visibility:hidden;animation:confettiFall var(--dur, 2.8s) linear both}@keyframes confettiFall{0%{transform:translateZ(0) rotate(0) rotateY(0);opacity:1}to{transform:translate3d(0,110vh,0) rotate(var(--rot, 540deg)) rotateY(720deg);opacity:.9}}.modal-wrap{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#1e12088c;animation:screenIn .25s ease both;padding:20px}.modal{max-width:min(92vw,560px);max-height:86vh;overflow-y:auto;display:flex;flex-direction:column;gap:16px;align-items:stretch;text-align:center}.modal h2{font-size:1.5rem}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:#ffffff8c;border-radius:var(--radius-md);border:2px solid var(--wood-light);font-size:1.1rem}.toggle{width:74px;height:40px;border-radius:999px;background:#bbb;border:3px solid #999;position:relative;transition:background .2s;flex:none}.toggle .knob{position:absolute;top:2px;left:3px;width:30px;height:30px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0000004d;transition:left .2s}.toggle.on{background:var(--grass);border-color:var(--grass-deep)}.toggle.on .knob{left:37px}.guardian-note{font-size:.92rem;line-height:1.55;text-align:left;background:#ffffff80;border-radius:12px;padding:12px 16px}.guardian-note div{margin-top:4px}.modal.gate-modal{gap:clamp(6px,1.6vh,12px);padding:clamp(12px,2.4vh,22px) 24px}.gate-warn{font-size:clamp(.9rem,2.4vh,1rem);line-height:1.45}.gate-quiz{font-size:clamp(1.2rem,3.6vh,1.6rem);padding:clamp(6px,1.4vh,10px) 24px;letter-spacing:1px}.gate-msg{min-height:1.15rem;font-size:.95rem;color:#c0392b}.gate-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(6px,1.2vh,10px);max-width:280px;margin:0 auto}.gate-key{min-height:clamp(42px,7.5vh,56px);font-size:clamp(1.1rem,3vh,1.4rem);padding:6px}.gate-actions{display:flex;gap:12px;justify-content:center;max-width:280px;margin:0 auto}.gate-actions>button{flex:1;min-height:clamp(44px,7.5vh,56px);font-size:clamp(1rem,2.8vh,1.2rem);padding:8px 12px;white-space:nowrap}.gate-actions>button:disabled{opacity:.45;filter:grayscale(.4)}#rotate-hint{position:fixed;inset:0;z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#2b2036f0;color:var(--cream);text-align:center;font-size:1.3rem;padding:30px}#rotate-hint .phone{font-size:4rem;animation:rotatePhone 1.8s ease-in-out infinite}@keyframes rotatePhone{0%,20%{transform:rotate(0)}60%,to{transform:rotate(90deg)}}@media(orientation:portrait)and (pointer:coarse){#rotate-hint{display:flex}}#rotate-hint .dismiss{margin-top:10px}.hidden{display:none!important}.center-col{position:relative;z-index:2;flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:clamp(18px,3.6vmin,36px);padding:10px max(20px,env(safe-area-inset-left)) calc(16px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-right));overflow-y:auto;-webkit-overflow-scrolling:touch}.title-logo{font-size:clamp(2.6rem,9vmin,5.4rem);text-align:center;line-height:1.15;color:#fff;text-shadow:0 4px 0 rgba(0,0,0,.18),3px 3px 0 #b97e00,-3px 3px 0 #b97e00,3px -3px 0 #b97e00,-3px -3px 0 #b97e00;letter-spacing:2px}.title-logo .row2{display:block;font-size:1.35em}.title-logo .k1{color:#ff8f6b}.title-logo .k2{color:#ffd23c}.title-logo .k3{color:#7fe06b}.title-logo .k4{color:#8fb7ff}.title-logo .k5{color:#d29bff}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(max-height:640px){:root{font-size:clamp(11px,2.6vh,15px);--sz-card: max(16vh, 62px);--sz-card-sm: max(14vh, 56px);--sz-card-big: 21vh;--sz-slot: 13vh;--sz-tile: 13vh;--sz-target: 21vh;--fs-card: max(7.8vh, 30px);--fs-card-sm: max(6.6vh, 26px);--fs-card-big: 11vh;--fs-slot: 6.3vh;--fs-tile: 6.3vh;--fs-target: 9.5vh;--fs-mem: 9.5vh;--fs-dex: 5vh}.center-col,.game-area{gap:max(4vh,16px);padding-top:max(1vh,6px);padding-bottom:calc(max(2.6vh,14px) + env(safe-area-inset-bottom))}.btn-round{min-width:9vh;height:9vh;padding:0 2.2vh;font-size:3vh;box-shadow:0 3px 0 var(--wood-dark)}.btn-round .ico{font-size:1.2em}.btn-big{min-height:10.5vh;padding:.8vh 5vw;font-size:4.2vh;box-shadow:inset 0 2px #ffffff8c,0 5px #96660a,var(--shadow-soft)}.btn-big.secondary{min-height:9vh;padding:.6vh 3.5vw;font-size:3.2vh}.title-actions{margin-top:clamp(12px,3.5vh,30px)}.title-logo{font-size:8.5vh;letter-spacing:1px}.sign{padding:1vh 3vw}.ribbon{padding:.6vh 2.6vw;font-size:3vh}.bubble{padding:1vh 2.4vw;font-size:3.2vh}.prompt-bar{padding:1vh 3vw;font-size:3.2vh;gap:1.6vh;max-width:94vw}.btn-speaker{width:8vh;height:8vh;font-size:3.6vh}.letter-card{border-width:3px}.choices{gap:2.8vh}.stage-pads{gap:2vh}.stage-pad{width:20vh;padding:1.2vh 1vh 1vh}.stage-pad .num{width:6.5vh;height:6.5vh;font-size:3.2vh}.build-slots{gap:1.6vh;font-size:4vh}.word-emoji{font-size:11vh!important}.word-display{gap:1.2vh}.memory-grid{width:auto!important;grid-template-columns:repeat(var(--cols, 3),20vh)!important;gap:1.4vh}.round-dots{gap:1.2vh}.round-dots .dot{width:2vh;height:2vh}.result-stars{font-size:9vh;gap:2vh}.celebrate-hero{max-height:26vh}.center-col{gap:clamp(8px,1.6vh,20px)}.boss-hp{height:3vh}.boss-char{height:26vh}.battle-hero{width:min(22vw,200px);max-height:34vh}.game-area.boss-stage{--sz-card: max(14vh, 54px);--fs-card: max(7vh, 30px);--sz-tile: max(12vh, 48px);--fs-tile: max(6.2vh, 26px)}.game-area.boss-stage .prompt-bar{padding:.8vh 3vw}.game-area.boss-stage .btn-speaker{width:8vh;height:8vh;font-size:3.6vh}.story-text{font-size:3.4vh}.char{height:30vh!important}.char-nuri{height:34vh!important}.char-pori{height:21vh!important}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(14vh,1fr));gap:1.2vh;padding:1.4vh}.dex-tab{padding:.8vh 3vw;font-size:3vh}}@media(max-height:400px){:root{--sz-card-big: 24vh;--sz-target: 24vh}.char{height:24vh!important}.char-nuri{height:30vh!important}.char-pori{height:18vh!important}.battle-hero{display:none}.celebrate-hero{max-height:22vh}.btn-big{min-height:12vh}}@media(min-width:900px)and (min-height:700px){:root{--sz-card: clamp(130px, 17vmin, 210px);--sz-card-sm: clamp(108px, 14vmin, 168px);--sz-card-big: clamp(220px, 32vmin, 380px);--sz-slot: clamp(96px, 14vmin, 160px);--sz-tile: clamp(96px, 14vmin, 160px);--sz-target: clamp(190px, 27vmin, 320px);--fs-card: clamp(3.6rem, 9.4vmin, 6rem);--fs-card-sm: clamp(2.7rem, 7.2vmin, 4.3rem);--fs-card-big: clamp(5.8rem, 18.5vmin, 11.5rem);--fs-slot: clamp(2.8rem, 7.2vmin, 4.5rem);--fs-tile: clamp(2.8rem, 7.2vmin, 4.6rem);--fs-target: clamp(4.4rem, 13vmin, 7.8rem);--fs-mem: clamp(3.9rem, 11vmin, 6.8rem);--fs-dex: clamp(2.4rem, 4.4vmin, 3rem)}.game-area,.center-col{gap:clamp(26px,4.5vmin,56px)}.choices{gap:clamp(26px,5vmin,60px)}.word-emoji{font-size:clamp(3.5rem,9vmin,6rem)}.memory-grid{gap:clamp(16px,2.6vmin,28px)}.prompt-bar{font-size:clamp(1.4rem,2.4vmin,2.1rem);padding:16px 34px;max-width:min(80vw,860px)}.btn-speaker{width:76px;height:76px;font-size:1.9rem}.stage-pad{width:clamp(160px,20vmin,240px)}.stage-pads{gap:clamp(20px,3.4vmin,44px)}.battle-hero{width:min(22vw,340px);max-height:min(42vh,440px)}}
