:root{--ink: #1E1B4B;--ink-2: #4A4770;--cream: #FFF8EE;--paper: #FFFFFF;--line: #E7DFD1;--brand: #7C5CFF;--brand-dark: #5B3FE0;--ok: #1B7A41;--ok-bg: #E3F6EA;--bad: #B3261E;--bad-bg: #FDE8E6;--radius: 16px;--focus: 0 0 0 3px #FFFFFF, 0 0 0 6px #5B3FE0;font-family:Lexend,Segoe UI,Roboto,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3{line-height:1.2;margin:0 0 8px}h1{font-size:clamp(26px,4vw,34px)}h2{font-size:clamp(20px,3vw,26px)}p{margin:0 0 12px}a{color:var(--brand-dark)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:10px}main:focus,main:focus-visible{box-shadow:none}.app{max-width:1080px;margin:0 auto;padding:16px 16px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 0 20px}.topbar .who{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.grid-wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}.muted{color:var(--ink-2)}.small{font-size:14px}.center{text-align:center}.hidden-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn{min-height:48px;padding:0 20px;border-radius:999px;border:2px solid var(--ink);background:var(--ink);color:var(--cream);font:inherit;font-weight:600;font-size:16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}.btn:hover{background:#2d2970}.btn.secondary{background:transparent;color:var(--ink)}.btn.secondary:hover{background:#1e1b4b0f}.btn.danger{background:var(--bad);border-color:var(--bad)}.btn.big{min-height:56px;font-size:18px;padding:0 28px}.btn:disabled{opacity:.45;cursor:not-allowed}.link-btn{background:none;border:none;color:var(--brand-dark);font:inherit;text-decoration:underline;cursor:pointer;padding:4px;min-height:44px}label{font-weight:600;display:block;margin-bottom:6px}input[type=email],input[type=password],input[type=text],input[type=number],select{width:100%;min-height:48px;padding:10px 14px;border-radius:12px;border:2px solid var(--line);font:inherit;color:var(--ink);background:var(--paper)}input:focus,select:focus{border-color:var(--brand-dark);outline:none}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}.check input{width:22px;height:22px;margin-top:2px;flex:none}.alert{padding:12px 16px;border-radius:12px;background:var(--bad-bg);color:var(--bad);font-weight:600}.notice{padding:12px 16px;border-radius:12px;background:#eee9ff;color:var(--ink)}.tag{align-self:flex-start;display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;background:#eee9ff;color:var(--brand-dark)}.tag.soon{background:#f1ece2;color:var(--ink-2)}.logo-ls{fill:none;stroke-width:14;stroke-linecap:round;stroke-linejoin:round}.logo .lt{opacity:0;transform-box:fill-box;transform-origin:center bottom;animation:mmPop .6s cubic-bezier(.34,1.56,.64,1) forwards}.logo .glow{fill:#ffc531;fill-opacity:.25;transform-box:fill-box;transform-origin:center;animation:mmGlow 2.4s ease-in-out infinite}.logo .bld{transform-box:fill-box;transform-origin:center bottom;transform:scaleY(0);animation:mmGrow .5s ease-out forwards}.logo .leaf{transform-box:fill-box;transform-origin:left bottom;animation:mmSway 3s ease-in-out infinite}.logo .bub{fill:none;stroke:var(--lk);stroke-width:2.5;animation:mmRise 2.6s ease-in infinite}.logo .b2{animation-delay:1.3s}.logo .gear{transform-box:fill-box;transform-origin:center;animation:mmSpin 5s linear infinite}.logo .needle{transform-box:fill-box;transform-origin:center;animation:mmWob 3.2s ease-in-out infinite}.logo .orb{transform-origin:38px 70px;animation:mmSpin 7s linear infinite}.logo .head{animation:mmBob 1.6s ease-in-out infinite}.logo .h2{animation-delay:.8s}.logo .chk{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;animation:mmCheck 2.8s ease-in-out infinite}.logo .spark{transform-box:fill-box;transform-origin:center;animation:mmTw 2s ease-in-out infinite}.logo .s2{animation-delay:1s}.ring8{transform-origin:60px 60px;animation:mmSpin 24s linear infinite}@keyframes mmPop{0%{opacity:0;transform:translateY(24px) scale(.8)}to{opacity:1;transform:none}}@keyframes mmGlow{50%{transform:scale(1.35);fill-opacity:.08}}@keyframes mmGrow{to{transform:scaleY(1)}}@keyframes mmSway{50%{transform:rotate(-12deg)}}@keyframes mmRise{0%{transform:translateY(8px);opacity:0}30%{opacity:1}to{transform:translateY(-10px);opacity:0}}@keyframes mmSpin{to{transform:rotate(360deg)}}@keyframes mmWob{25%{transform:rotate(18deg)}75%{transform:rotate(-14deg)}}@keyframes mmBob{50%{transform:translateY(-4px)}}@keyframes mmCheck{0%{stroke-dashoffset:20}40%,85%{stroke-dashoffset:0}to{stroke-dashoffset:20}}@keyframes mmTw{50%{transform:scale(.55) rotate(45deg);opacity:.6}}.world-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:20px;background:var(--paper);border:2px solid var(--line);text-align:left;font:inherit;color:var(--ink);cursor:pointer;min-height:170px}.world-card:hover{border-color:var(--wc);transform:translateY(-2px)}.world-card .glyph{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:30px;font-weight:700;color:#fff;background:var(--wcd)}.progress{height:10px;border-radius:999px;background:#f1ece2;overflow:hidden}.progress>span{display:block;height:100%;background:var(--wcd, var(--brand-dark))}.seq{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:12px 0 20px}.seq .cell{--sq: 76px;min-width:var(--sq);height:var(--sq);padding:0 8px;box-sizing:border-box;border-radius:14px;background:#f6f1e7;display:grid;place-items:center;font-size:30px;font-weight:700}.seq .gap{border:3px dashed var(--wcd, var(--brand-dark));background:var(--paper)}.options{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.opt{--sq: 88px;min-width:var(--sq);height:var(--sq);padding:0 10px;box-sizing:border-box;display:inline-grid;place-items:center;border-radius:16px;border:3px solid var(--line);background:var(--paper);font:inherit;font-size:30px;font-weight:700;color:var(--ink);cursor:pointer}.opt[aria-pressed=true]{border-color:var(--wcd, var(--brand-dark));background:#f4f0ff}.icon-btn{width:52px;height:52px;padding:0;border-radius:14px;flex:none}.hint-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.dots{display:flex;gap:8px;justify-content:center}.dots span{width:12px;height:12px;border-radius:50%;background:#e2dacb}.dots span.on{background:var(--wcd, var(--brand-dark))}.dots span.done{background:var(--ink-2)}.items{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.item{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 14px;border-radius:14px;border:3px solid var(--line);background:var(--paper);font:inherit;color:var(--ink);text-align:left;cursor:pointer}.item .ico{font-size:28px}.item[aria-pressed=true]{border-color:var(--wcd, var(--brand-dark));background:#f4f0ff}.item .where{margin-left:auto;font-size:22px}.bins{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:16px}.bin{min-height:88px;border-radius:18px;border:3px dashed var(--wcd, var(--brand-dark));background:var(--paper);font:inherit;color:var(--ink);font-weight:600;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px}.bin .ico{font-size:30px}.bin:disabled{opacity:.5;cursor:default}.result{display:flex;gap:12px;padding:12px 14px;border-radius:14px;align-items:flex-start}.result.ok{background:var(--ok-bg)}.result.bad{background:var(--bad-bg)}.result .mark{font-weight:700;font-size:20px;flex:none}.result.ok .mark{color:var(--ok)}.result.bad .mark{color:var(--bad)}.reward{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:14px;background:#fff3cc}.reward .ico{font-size:32px}.code-grid{display:grid;grid-template-columns:repeat(3,72px);gap:10px;justify-content:center}.code-btn{width:72px;height:72px;border-radius:18px;border:2px solid var(--line);background:var(--paper);font-size:32px;cursor:pointer}.code-slots{display:flex;gap:10px;justify-content:center;margin-bottom:12px}.code-btn[aria-pressed=true]{border:3px solid var(--brand-dark);background:#f4f0ff}.code-slots .code-icon{border-style:solid;background:#f4f0ff}.pin-grid{display:grid;grid-template-columns:repeat(3,72px);gap:10px;justify-content:center}.pin-btn{width:72px;height:64px;border-radius:16px;border:2px solid var(--line);background:var(--paper);font:inherit;font-size:28px;font-weight:700;color:var(--ink);cursor:pointer}.pin-btn:disabled{opacity:.4;cursor:default}.pin-btn.small-txt{font-size:24px}fieldset:disabled .pin-btn{opacity:.35}.code-slots span{width:56px;height:56px;border-radius:14px;border:2px dashed var(--line);display:grid;place-items:center;font-size:28px;background:var(--paper)}.avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:24px;flex:none}.swatches{display:flex;gap:10px;flex-wrap:wrap}.swatch{width:44px;height:44px;border-radius:50%;border:3px solid transparent;cursor:pointer}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px #fff inset}.choice{min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--line);background:var(--paper);font:inherit;color:var(--ink);cursor:pointer}.choice[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--cream)}table.simple{width:100%;border-collapse:collapse;font-size:14px}table.simple th,table.simple td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}.scroll-x{overflow-x:auto}@media(max-width:560px){.card{padding:16px}.opt{--sq: 72px;font-size:26px}.seq .cell{--sq: 56px;font-size:24px}.icon-btn{width:48px;height:48px}}.request-card{padding:16px;border-radius:16px;background:#fff3cc;border:2px solid #F2D27A;animation:mmPopIn .25s ease-out}.link-box{padding:12px;border-radius:12px;background:#f6f1e7}.link-url{font-size:13px;word-break:break-all;background:#fff;padding:8px 10px;border-radius:8px;border:1px solid var(--line);user-select:all}.waiting-dots{display:flex;gap:8px}.waiting-dots span{width:12px;height:12px;border-radius:50%;background:var(--brand);animation:mmDot 1s ease-in-out infinite}.waiting-dots span:nth-child(2){animation-delay:.15s}.waiting-dots span:nth-child(3){animation-delay:.3s}@keyframes mmDot{50%{transform:translateY(-8px)}}.mascot{position:relative;display:flex;flex-direction:column;align-items:center;flex:none}.mascot svg{overflow:visible}.mascot-body{transform-box:fill-box;transform-origin:center bottom;animation:mmFloat 3s ease-in-out infinite}.mascot-eyes{transform-box:fill-box;transform-origin:center;animation:mmBlink 4.5s infinite}.mascot-spark{transform-box:fill-box;transform-origin:center;animation:mmGlowDot 1.6s ease-in-out infinite}.mascot-arm-l,.mascot-arm-r{transform-box:fill-box}.mascot-arm-l{transform-origin:right bottom}.mascot-arm-r{transform-origin:left bottom}.mood-happy .mascot-body,.mood-cheer .mascot-body{animation:mmJump .6s cubic-bezier(.34,1.56,.64,1) 2}.mood-happy .mascot-arm-r,.mood-cheer .mascot-arm-r{animation:mmWave .3s ease-in-out 4 alternate}.mood-cheer .mascot-arm-l{animation:mmWaveL .3s ease-in-out 4 alternate}.mood-think .mascot-body{animation:none;transform:rotate(-8deg);transition:transform .3s}.mood-think .mascot-pupil{transform:translate(2px,-3px)}.mood-sad .mascot-body{animation:none;transform:translateY(4px)}.mascot-say{position:relative;margin-bottom:10px;max-width:220px;background:#fff;border:2px solid var(--line);border-radius:16px;padding:8px 12px;font-size:14px;line-height:1.35;text-align:center;animation:mmPopIn .25s ease-out}.mascot-say:after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;background:#fff;border-right:2px solid var(--line);border-bottom:2px solid var(--line);transform:translate(-50%) rotate(45deg)}@keyframes mmFloat{50%{transform:translateY(-5px)}}@keyframes mmBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes mmGlowDot{50%{transform:scale(1.35)}}@keyframes mmJump{40%{transform:translateY(-18px) scale(1.04,.96)}70%{transform:translateY(0) scale(1.06,.94)}}@keyframes mmWave{to{transform:rotate(-35deg)}}@keyframes mmWaveL{to{transform:rotate(35deg)}}@keyframes mmPopIn{0%{transform:scale(.85);opacity:0}}.mission-head{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}.play-area{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;align-items:start}.play-guide{position:sticky;top:16px;display:flex;justify-content:center;padding-top:8px}@media(max-width:760px){.play-area{grid-template-columns:1fr}.play-guide{position:static;padding-top:0}.play-guide .mascot{flex-direction:row-reverse;gap:10px;width:auto!important;align-items:center}.play-guide .mascot svg{width:64px;height:75px}.play-guide .mascot-say{margin-bottom:0}.play-guide .mascot-say:after{left:-8px;bottom:auto;top:50%;transform:translateY(-50%) rotate(135deg)}}.hop{animation:mmHop .45s cubic-bezier(.34,1.56,.64,1) both}@keyframes mmHop{0%{opacity:0;transform:translateY(-22px) scale(.7)}to{opacity:1;transform:none}}.land{display:inline-block;animation:mmLand .5s cubic-bezier(.34,1.56,.64,1)}@keyframes mmLand{0%{transform:translateY(-40px) scale(1.3)}60%{transform:translateY(4px) scale(.9,1.1)}to{transform:none}}.drop-hover{outline:4px solid var(--wcd, var(--brand-dark));outline-offset:3px;transform:scale(1.06);transition:transform .12s}.drag-ghost{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-60%) rotate(-6deg) scale(1.1);filter:drop-shadow(0 8px 10px rgba(30,27,75,.25))}.ghost-opt{display:inline-grid;place-items:center;background:#fff}.ghost-item{font-size:48px}.drag-handle{cursor:grab;touch-action:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#f6f1e7}.item.is-placed .drag-handle{background:#e9e4ff}.opt{touch-action:none;transition:transform .12s}.opt:hover{transform:translateY(-3px) rotate(-2deg)}.opt:active{cursor:grabbing}.bin .ico.bump{animation:mmBump .45s cubic-bezier(.34,1.56,.64,1)}@keyframes mmBump{40%{transform:scale(1.45) rotate(8deg)}}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:900}.confetti span{position:absolute;top:-20px;width:10px;height:16px;border-radius:3px;animation:mmFall linear forwards}@keyframes mmFall{to{top:105%;transform:rotate(540deg) translate(40px)}}@media(prefers-reduced-motion:reduce){.confetti{display:none}*,*:before,*:after{animation:none!important;transition:none!important}.logo .lt,.logo .bld{opacity:1;transform:none}.logo .chk{stroke-dashoffset:0}}.map3d-wrap{display:flex;flex-direction:column;gap:12px}.map3d{--S: min(92vw, 560px);position:relative;height:calc(var(--S) * .78);min-height:320px;perspective:1100px;perspective-origin:50% 20%;border-radius:24px;overflow:hidden;background:linear-gradient(#bfe6ff,#e8f6ff 55%,#fff8ee);touch-action:pan-y;cursor:grab;user-select:none}.map3d:focus-visible{box-shadow:var(--focus);outline:none}.map3d.dragging{cursor:grabbing}.map3d-board{position:absolute;left:50%;top:50%;width:var(--S);height:var(--S);margin:calc(var(--S) / -2) 0 0 calc(var(--S) / -2);transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.45,.05,.25,1)}.map3d.dragging .map3d-board,.map3d.dragging .stand{transition:none}.map3d-sea{position:absolute;inset:2%;border-radius:50%;background:radial-gradient(circle at 50% 50%,#9be3d6 0 22%,#5cc6e8 23% 60%,#3d8bff 61% 100%);box-shadow:inset 0 0 0 10px #ffffff59,0 0 0 6px #3d8bff40}.map3d-sea:after{content:"";position:absolute;inset:38%;border-radius:50%;background:radial-gradient(#ffe9a8,#f4d27a);box-shadow:0 0 0 6px #fff3c4}.map3d-path{position:absolute;border-radius:50%;border:6px dashed #FFF3C4;opacity:.95}.isl{position:absolute;width:0;height:0;transform-style:preserve-3d}.isl-rock{position:absolute;left:calc(var(--S) * -.075);top:calc(var(--S) * -.075);width:calc(var(--S) * .15);height:calc(var(--S) * .15);transform-style:preserve-3d;cursor:pointer}.isl-layer,.isl-top{position:absolute;inset:0;border-radius:46% 54% 50% 50%/52% 46% 54% 48%}.isl-layer{background:#a77b4f}.isl-layer.l0{transform:translateZ(2px);background:#8a6440;box-shadow:0 0 0 4px #ffffff80}.isl-layer.l1{transform:translateZ(7px)}.isl-layer.l2{transform:translateZ(12px);background:var(--icd)}.isl-top{transform:translateZ(16px);background:radial-gradient(circle at 35% 35%,#FFFFFF66,transparent 45%),var(--ic)}.stand{position:absolute;left:-80px;top:-150px;width:160px;height:150px;transform-origin:50% 100%;pointer-events:none;transition:transform 1.1s cubic-bezier(.45,.05,.25,1)}.isl .stand{transform-style:flat}.isl-sign{pointer-events:auto;position:absolute;left:50%;bottom:14px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--ink);min-width:48px}.isl-sign:focus-visible{outline:none}.isl-sign:focus-visible .isl-letter{box-shadow:var(--focus)}.isl-mark{font-size:calc(var(--S) * .065);line-height:1;filter:drop-shadow(0 4px 3px rgba(30,27,75,.25));animation:mmFloat 3.4s ease-in-out infinite}.isl-letter{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:19px;color:#fff;background:var(--icd);box-shadow:0 3px #1e1b4b40}.isl-sign.is-sel .isl-letter{transform:scale(1.18);box-shadow:0 0 0 3px #fff,0 4px #1e1b4b40}.isl-name{margin-top:2px;white-space:nowrap;background:#fff;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700;box-shadow:0 2px 6px #1e1b4b26}.walker{position:absolute;width:0;height:0;transform-style:preserve-3d;pointer-events:none}.walker .stand{transform-style:flat}.walker-body{position:absolute;left:50%;bottom:-6px;transform:translate(-50%);display:block;line-height:1}.walker.npc .walker-body{font-size:30px;animation:mmWaddle .9s ease-in-out infinite}.walker.walking .walker-body{animation:mmHop .32s ease-in-out infinite}.walker.hero .walker-body .avatar{box-shadow:0 0 0 3px #fff,0 6px 8px #1e1b4b4d}@keyframes mmHop{50%{bottom:4px}}@keyframes mmWaddle{50%{bottom:-2px}}.map3d-ctrl{position:absolute;right:10px;bottom:10px;display:flex;gap:8px}.map3d-ctrl .btn{background:#ffffffeb}.map3d-info{display:flex;gap:14px;align-items:flex-start}.map3d-info .mascot-say{max-width:200px}.glyph-sm{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff;flex:none}.list-toggle{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}@media(max-width:520px){.map3d-info{flex-direction:column;align-items:stretch}.map3d-info .mascot{align-self:center}.isl-letter{width:28px;height:28px;font-size:16px}}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.char-btn{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:16px;border:3px solid var(--line);background:var(--paper);cursor:pointer;font:inherit;color:var(--ink);padding:4px;transition:transform .12s}.char-btn:hover:not(:disabled){transform:translateY(-2px)}.char-btn[aria-pressed=true]{border-color:var(--brand);background:#f1edff;box-shadow:0 0 0 3px #e2daff}.char-btn.locked{opacity:.55;cursor:not-allowed;background:#f6f1e7}.char-emoji{font-size:32px;line-height:1}.char-name,.char-lock{font-size:12px;font-weight:600}.avatar-btn{position:relative;background:none;border:0;padding:0;cursor:pointer;border-radius:50%;display:inline-flex}.avatar-btn:disabled{cursor:default}.avatar-btn:focus-visible{box-shadow:var(--focus);outline:none}.avatar-edit{position:absolute;right:-6px;bottom:-4px;font-size:13px;background:#fff;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;box-shadow:0 1px 4px #1e1b4b40}.scene{align-self:center;min-width:min(100%,280px);text-align:center;font-size:30px;line-height:1.35;padding:18px 20px;border-radius:18px;background:#f6f1e7;white-space:pre-line;word-break:break-word}.scene-code{text-align:left;font:600 16px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;background:#1e1b4b;color:#f4f1ff}.decision-q{margin:0;font-size:19px;font-weight:700;text-align:center}.decision-opts{display:grid;gap:10px}.decision-opt{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;text-align:left;border-radius:16px;border:3px solid var(--line);background:var(--paper);font:inherit;font-size:17px;color:var(--ink);cursor:pointer;transition:transform .12s,border-color .12s}.decision-opt:hover{transform:translateY(-2px);border-color:var(--wcd, var(--brand))}.decision-opt[aria-pressed=true]{border-color:var(--wcd, var(--brand));background:#f1edff}.decision-letter{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--wcd, var(--brand))}@media(max-width:520px){.scene{font-size:24px;padding:14px}.scene-code{font-size:14px}.decision-q{font-size:17px}.decision-opt{font-size:16px}}.avatar-btn:disabled{opacity:1}.rule-tag{align-self:center;background:#fff3cc;border:2px dashed #E9C25A;border-radius:999px;padding:6px 14px;font-size:15px}.turn-tag{align-self:center;border-radius:999px;padding:6px 14px;font-weight:700;font-size:14px;color:#fff}.turn-tag.turn-0{background:#1f5fc4}.turn-tag.turn-1{background:#b8326f}.route-wrap{display:flex;gap:12px;align-items:flex-start;justify-content:center;flex-wrap:wrap}.compass{display:grid;grid-template-columns:repeat(3,26px);grid-template-rows:repeat(3,26px);place-items:center;font-weight:800;font-size:13px;background:#fff8ee;border:2px solid var(--line);border-radius:50%;width:92px;height:92px;align-content:center;justify-content:center}.compass span:nth-child(1){grid-column:2;grid-row:1}.compass span:nth-child(2){grid-column:1;grid-row:2}.compass span:nth-child(3){grid-column:2;grid-row:2;font-size:20px}.compass span:nth-child(4){grid-column:3;grid-row:2}.compass span:nth-child(5){grid-column:2;grid-row:3}.route-grid{display:grid;gap:4px;width:min(100%,420px);padding:8px;border-radius:18px;background:#cdebc5}.rcell{aspect-ratio:1;border-radius:8px;background:#eaf7e4;display:grid;place-items:center;font-size:clamp(16px,5vw,28px);line-height:1}.rcell.wall{background:#9ccb8f}.rcell.trail{background:#ffe7a3}.rwalker{display:inline-block;animation:mmHopSmall .28s ease-in-out infinite alternate}@keyframes mmHopSmall{to{transform:translateY(-4px)}}.route-moves{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:40px;padding:6px 10px;border-radius:12px;background:#f6f1e7}.route-moves .mv{font-size:20px}.route-moves .mv.on{outline:3px solid var(--wcd, var(--brand));border-radius:6px}.route-pad{display:grid;grid-template-columns:repeat(3,auto);grid-template-areas:". n ." "o . e" ". s .";gap:6px;justify-content:center}.route-pad .opt{--sq: 72px;display:grid;gap:0;font-size:26px;line-height:1.1}.route-pad .opt small{font-size:11px;font-weight:700}.route-pad .dir-N{grid-area:n}.route-pad .dir-S{grid-area:s}.route-pad .dir-E{grid-area:e}.route-pad .dir-O{grid-area:o}.tile-goal{align-self:center;background:#f1edff;border-radius:999px;padding:6px 14px}.tile-grid{display:grid;gap:3px;width:min(100%,380px);align-self:center;padding:6px;border-radius:14px;background:#e7dfd1;touch-action:none}.tcell{aspect-ratio:1;border:0;border-radius:6px;background:#fffdf8;cursor:pointer;padding:0}.tcell.on{background:var(--wc, #34C26B);box-shadow:inset 0 -4px #00000026}.tcell:focus-visible{outline:3px solid var(--ink);outline-offset:-3px}.tile-counts{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:17px}.tile-counts .warn{color:var(--bad);font-weight:700}.map-actions{gap:10px}.count-pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;margin-left:6px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:800}.big-progress{height:14px}.goal-row{display:flex;gap:12px;align-items:center}.goal-ico{font-size:28px;width:40px;text-align:center;flex:none}.goal-row .progress{margin-top:4px}.badge-chip{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border-radius:999px;background:#fff3cc;font-weight:700}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.badge-card{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;padding:14px 10px;border-radius:16px;border:2px dashed var(--line);background:#fbf8f2}.badge-card.got{border-style:solid;border-color:#f2d27a;background:#fff8dc}.badge-ico{font-size:36px;line-height:1}.badge-card:not(.got) .badge-ico{filter:grayscale(1);opacity:.6}.char-ladder{display:flex;gap:8px;flex-wrap:wrap}.ladder-step{display:grid;place-items:center;width:58px;height:64px;border-radius:14px;background:#f6f1e7;font-size:26px}.ladder-step small{font-size:11px;font-weight:700;color:var(--ink-2, #555)}.ladder-step.on{background:#e9f8ee;box-shadow:inset 0 0 0 2px #34c26b}.friend-code{font:800 34px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:4px;color:var(--brand-dark, #5B3FE0)}.friend-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.friend-row.admin{padding:10px;border-radius:14px;background:#fbf8f2}.sticker-row{display:flex;gap:8px;flex-wrap:wrap}.sticker{min-height:44px;padding:8px 14px;border-radius:999px;border:2px solid var(--line);background:var(--paper);font:inherit;cursor:pointer}.sticker:hover{border-color:var(--brand)}.sticker-big{font-size:28px}.status-pill{display:inline-block;margin-top:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700}.status-pill.warn{background:#fff3cc;color:#7a5300}.status-pill.ok{background:var(--ok-bg, #E3F6EA);color:var(--ok)}.status-pill.muted{background:#efeae0;color:#5b5670}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.locked-emoji{filter:grayscale(1) brightness(.6);opacity:.45}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.game-card{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:18px;background:linear-gradient(180deg,#fff,#f7f2ff);border:2px solid #E2DAFF}.game-card .btn{margin-top:auto}.game-card.locked{background:#f6f1e7;border-color:var(--line)}.game-card.locked strong,.game-card.locked .muted{opacity:.7}.game-ico{font-size:40px;line-height:1}.lock-req{color:#7a5300;font-weight:600}.game-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.game-title{font-size:18px}.timer{font:700 18px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#1e1b4b;color:#fff;padding:8px 12px;border-radius:12px}.modal-back{position:fixed;inset:0;background:#1e1b4b73;display:grid;place-items:center;z-index:950;padding:16px}.modal{width:min(440px,100%)}.ranking{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ranking li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:#fbf8f2}.ranking li.me{background:#f1edff;box-shadow:inset 0 0 0 2px #c9bcff}.tp{min-width:56px;height:56px;border-radius:16px;border:0;background:#1e1b4b;color:#fff;font-size:24px;touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer}.tp:active{transform:scale(.94)}.countdown{position:absolute;inset:0;display:grid;place-items:center;font-size:72px;font-weight:800;color:#fff;text-shadow:0 4px 0 rgba(30,27,75,.4);pointer-events:none}.builder{display:grid;gap:12px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start}@media(max-width:860px){.builder{grid-template-columns:1fr}}.iso-canvas{width:100%;height:auto;border-radius:18px;background:linear-gradient(#dff3ff,#f4fbff);touch-action:manipulation;cursor:crosshair}.block-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}.block-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:12px;border:2px solid var(--line);background:var(--paper);cursor:pointer;font:inherit}.block-btn[aria-pressed=true]{border-color:var(--brand);background:#f1edff}.block-btn small{font-size:11px}.block-btn:disabled{opacity:.5;cursor:not-allowed}.cube{width:30px;height:30px;border-radius:6px;background:linear-gradient(var(--top) 0 40%,var(--side) 40% 100%);display:grid;place-items:center;font-size:14px;box-shadow:inset 0 -3px #00000026}.race-wrap{position:relative}.race-canvas{width:100%;height:auto;border-radius:16px;display:block}.touch-pad{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.touch-pad .jump{min-width:84px;background:var(--brand)}@media(hover:hover)and (pointer:fine){.touch-pad{display:none}}.course-editor{display:grid;gap:1px;overflow-x:auto;padding:6px;background:#cfe8ff;border-radius:12px;max-width:100%}.ce{width:26px;height:26px;border:0;padding:0;font-size:15px;line-height:1;cursor:pointer;background:#eaf6ff}.ce-s{background:#8b5e34}.ce-p{background:#c8cdd2}.ce-B{background:#ff6b57}.ce-S{background:#e3dbff}.ce-G{background:#dff7e6}.city-layout{display:grid;gap:12px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}@media(max-width:860px){.city-layout{grid-template-columns:1fr}}.city-grid{display:grid;gap:2px;padding:6px;background:#a6d99a;border-radius:16px;touch-action:none}.city-cell{aspect-ratio:1;border:0;border-radius:5px;background:#ddefd3;font-size:clamp(12px,3.4vw,22px);padding:0;cursor:pointer;line-height:1}.city-cell.road{background:#6b7280!important;box-shadow:inset 0 0 0 2px #7d8590}.city-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.city-tool{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:14px;border:2px solid var(--line);background:var(--paper);cursor:pointer;font:inherit}.city-tool[aria-pressed=true]{border-color:var(--brand);background:#f1edff}.city-tool:disabled{opacity:.5}.city-tool-ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:22px}.city-tool small{font-size:11px;text-align:center}.stars{font-size:22px;letter-spacing:2px}.advisor{display:flex;gap:10px;align-items:center;background:#fff8dc;border-radius:16px;padding:8px 12px}.escape-room{display:grid;gap:10px}.room-objects{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;padding:12px;border-radius:18px;background:linear-gradient(#3b2f63,#26204a)}.room-obj{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:14px;border:2px solid transparent;background:#ffffff1a;color:#fff;font:inherit;cursor:pointer;font-size:32px}.room-obj small{font-size:12px}.room-obj.on{border-color:#ffc531;background:#ffc5312e}.room-door{display:grid;place-items:center;font-size:42px;border-radius:14px;background:#0003}.room-door.open{animation:mmBump .6s ease 2;background:#34c26b59}.clue{padding:12px 14px;border-radius:14px;background:#fff3cc;border:2px dashed #E9C25A}.lock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.lock-card{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:16px;background:var(--paper);border:2px solid var(--line)}.lock-card.open{align-items:center;background:#e9f8ee;border-color:#34c26b}.lock-ico{font-size:34px}.lock-card.shake{animation:mmShake .4s}@keyframes mmShake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.hint-line{margin:0;background:#f1edff;padding:6px 10px;border-radius:10px}.code-slots{display:flex;gap:6px}.code-slots span,.color-slot{width:40px;height:46px;border-radius:10px;display:grid;place-items:center;font:800 22px/1 ui-monospace,monospace;background:#f6f1e7;border:2px solid var(--line)}.color-slot{cursor:pointer}.mini-pad{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.mini-pad button{height:40px;border-radius:10px;border:2px solid var(--line);background:var(--paper);font:700 16px/1 inherit;cursor:pointer}.lights{display:grid;grid-template-columns:repeat(3,56px);gap:6px;justify-content:center}.light{width:56px;height:56px;border-radius:50%;border:3px solid #3A3A44;background:#4b4b57;cursor:pointer}.light.on{background:radial-gradient(#fff6b0,#ffc531);box-shadow:0 0 14px #ffc531}.pixel-layout{display:grid;gap:12px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start}@media(max-width:760px){.pixel-layout{grid-template-columns:1fr}}.pixel-grid{display:grid;width:min(100%,480px);aspect-ratio:1;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/12.5% 12.5%;border-radius:10px;overflow:hidden;touch-action:none;box-shadow:0 0 0 2px var(--line)}.px{border:0;padding:0;background:transparent;cursor:crosshair;box-shadow:inset 0 0 0 .5px #0000000d}.pixel-palette{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.pixel-palette .swatch{width:100%;height:36px;border-radius:10px;border:2px solid var(--line)}.arcade{align-items:center}.arcade-hud{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-size:16px}.arcade-canvas{width:min(100%,480px);height:auto;border-radius:14px;touch-action:none}.arcade-canvas.tall{width:min(100%,360px)}.arcade-canvas.narrow{width:min(100%,260px)}.arcade-canvas.wide{width:100%;max-width:720px;image-rendering:pixelated}.dpad{display:grid;grid-template-columns:repeat(3,60px);grid-template-areas:". n ." "o . e" ". s .";gap:6px;justify-content:center}.dpad .d-n{grid-area:n}.dpad .d-s{grid-area:s}.dpad .d-o{grid-area:o}.dpad .d-e{grid-area:e}.merge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(100%,340px);aspect-ratio:1;padding:8px;border-radius:16px;background:#cdbfa8;touch-action:none}.merge-cell{display:grid;place-items:center;border-radius:10px;background:#e7dcc8;font:800 clamp(18px,6vw,30px)/1 inherit;color:#1e1b4b;transition:background .12s}.live-players{display:flex;gap:8px;flex-wrap:wrap}.live-player{position:relative;display:flex;gap:6px;align-items:center;padding:4px 10px 4px 4px;border-radius:999px;border:3px solid;background:#fff}.emote-pop{position:absolute;right:-10px;top:-18px;font-size:26px;animation:mmBump .5s ease}.paint-wrap{position:relative;display:flex;justify-content:center;touch-action:none}.color-dot{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:middle}.sticker.small{min-height:36px;padding:4px 10px;font-size:13px}.play-area.single{grid-template-columns:1fr}.companion{position:fixed;left:max(10px,env(safe-area-inset-left));bottom:calc(10px + env(safe-area-inset-bottom));z-index:800;pointer-events:none}.companion-body{position:relative;display:flex;flex-direction:column;align-items:flex-start;will-change:transform}.companion-body>*{pointer-events:auto}.companion-btn{background:none;border:0;padding:0;cursor:pointer;filter:drop-shadow(0 6px 8px rgba(30,27,75,.25))}.companion-btn:focus-visible{outline:3px solid var(--ink);border-radius:50%}.companion-say{max-width:min(260px,70vw);margin:0 0 6px 6px;padding:8px 12px;border-radius:16px 16px 16px 4px;background:#fff;border:2px solid var(--line);box-shadow:0 6px 16px #1e1b4b26;font-size:14px;line-height:1.35;animation:mmPop .25s ease;white-space:pre-line}@keyframes mmPop{0%{transform:scale(.8);opacity:0}}.companion-hide{position:absolute;right:-8px;bottom:6px;width:22px;height:22px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:14px;line-height:1;cursor:pointer;box-shadow:0 1px 4px #1e1b4b4d;opacity:.75}.companion-mini{position:fixed;left:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:800;width:40px;height:40px;border-radius:50%;border:0;background:var(--brand);color:#fff;font-size:20px;cursor:pointer;box-shadow:0 4px 10px #1e1b4b4d}.companion-body.flying .companion-btn{filter:drop-shadow(0 14px 10px rgba(30,27,75,.22))}.companion-body.flying .mascot-arm-l,.companion-body.flying .mascot-arm-r{animation:mmWave .18s ease-in-out infinite alternate}.companion-body.hop-in{animation:mmHopIn .6s cubic-bezier(.34,1.56,.64,1)}@keyframes mmHopIn{0%{transform:translateY(0)}35%{transform:translateY(-28px) rotate(-8deg)}70%{transform:translateY(0) rotate(4deg)}}.companion.compact{opacity:.95}.app{padding-bottom:120px}@media(max-width:600px){.companion-say{font-size:13px}}
