:root{color:#2b2118;-webkit-text-size-adjust:100%;background:#fdf3e3;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}.app{height:var(--app-h,100dvh);flex-direction:column;max-width:720px;margin:0 auto;display:flex}.panel{flex:1;padding:.75rem 1rem 1rem;overflow-y:auto}.panel p{margin:0 0 .5rem}.buttons{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}button{font:inherit;color:#fff8ec;background:#c8553d;border:0;border-radius:8px;padding:.45rem .7rem;font-weight:600}button:active{transform:translateY(1px)}.check{align-items:center;gap:.4rem;margin:.25rem 0 .6rem;display:flex}.answer{background:#fff8ec;border:2px solid #c8553d;border-radius:10px;width:100%;padding:.65rem .75rem;font-size:16px}.warn{color:#a8432f;font-size:.85rem}.log{color:#6b5a48;padding-left:1.1rem;font-size:.85rem}.scene-wrap{position:relative}.result-toast{color:#2b2118;pointer-events:none;background:#fff8ec;border-radius:16px;justify-items:center;gap:.1rem;padding:.6rem 1.3rem;animation:.26s ease-out toast-pop;display:grid;position:absolute;top:38%;left:50%;translate:-50% -50%;box-shadow:0 4px #e0663e,0 8px 24px #0003}.result-toast strong{font-variant-numeric:tabular-nums;font-size:2rem;line-height:1.1}.result-toast span{font-weight:700}.result-toast.zero{box-shadow:0 4px #8a7f74,0 8px 24px #0003}@keyframes toast-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.result-toast{animation:none}}.game h1{margin:.2rem 0 .4rem;font-size:1.5rem}.game h2{margin:.4rem 0 .2rem;font-size:1.25rem}.game .rule{color:#6b5a48;margin:0 0 .6rem;font-size:.9rem}.game form{gap:.5rem;display:flex}.game form .answer{flex:1}.game .primary{padding:.65rem 1.1rem;font-size:1rem}.game .primary:disabled{opacity:.55}.qhead{font-variant-numeric:tabular-nums;align-items:baseline;gap:.8rem;font-weight:700;display:flex}.qhead .timer{color:#fff8ec;background:#2b2118;border-radius:999px;margin-left:auto;padding:.1rem .55rem}.qhead .timer.low{background:#c8553d}.game .detail{font-size:1.05rem}.game .tiers{color:#6b5a48;font-size:.85rem}.game .summary{white-space:pre-line;font-size:1.2rem;line-height:1.5}.fineprint{color:#8a7a68;margin-top:1rem;font-size:.75rem}.scene3d{width:100%;height:clamp(200px, calc(var(--app-h,100dvh) * .5), 460px);-webkit-user-select:none;user-select:none;background:linear-gradient(#1c78dc,#bfe5ff);position:relative;overflow:hidden}.scene3d canvas{width:100%;height:100%;display:block}.scene3d-fallback{color:#fff;place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.landmark-label{opacity:0;pointer-events:none;white-space:nowrap;border-radius:999px;padding:.4rem 1rem;font-size:1rem;font-weight:800;position:absolute;top:12px;left:50%;translate:-50%}.landmark-label.show{animation:1.8s ease-out forwards label-pop}.landmark-label.static{opacity:1}@keyframes label-pop{0%{opacity:0;transform:translateY(-8px)scale(.92)}12%{opacity:1;transform:translateY(0)scale(1)}80%{opacity:1}to{opacity:0}}.hud{font-variant-numeric:tabular-nums;pointer-events:none;border-radius:999px;padding:.3rem .75rem;font-size:.95rem;font-weight:800;position:absolute;bottom:10px;left:10px}.hud small{opacity:.7;font-weight:500}.landmark-label,.hud,.glass{color:#2b2118;-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);background:#fffaf2b8;border:1px solid #ffffff8c;box-shadow:0 8px 28px #1e18122e,inset 0 1px #fff9}.scene3d-loading{z-index:1;background:radial-gradient(120% 60% at 50% 100%,#e8dccb 0 35%,#0000 36%),linear-gradient(#5aa9ee,#cfe8fb 70%);place-items:center;display:grid;position:absolute;inset:0}.scene3d-loading .glass{text-align:center;border-radius:18px;gap:10px;width:min(280px,70vw);padding:14px 18px;font-weight:800;display:grid}.scene3d-loading .bar{background:#2b21181f;border-radius:999px;height:6px;overflow:hidden}.scene3d-loading .bar i{transform-origin:0;background:linear-gradient(90deg,#c8553d,#e8a24a);height:100%;transition:transform .2s ease-out;display:block}.scene3d.fill .scene3d-loading{padding-bottom:30vh}.scene3d-debug{z-index:3;top:calc(env(safe-area-inset-top) + 62px);right:calc(env(safe-area-inset-right) + 8px);color:#d8ffd8;white-space:pre-wrap;pointer-events:none;background:#0009;border-radius:8px;max-width:min(360px,70vw);margin:0;padding:6px 8px;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute}@media (width<=559px){.scene3d-debug{top:calc(env(safe-area-inset-top) + 96px);font-size:10px}}.scene3d.fill{height:100%;position:absolute;inset:0}.scene3d.fill .hud{top:calc(env(safe-area-inset-top) + 12px);left:calc(env(safe-area-inset-left) + 12px);bottom:auto}.scene3d.fill .landmark-label{top:calc(env(safe-area-inset-top) + 12px)}@media (width<=559px){.scene3d.fill .landmark-label{top:calc(env(safe-area-inset-top) + 56px)}}@media (prefers-reduced-motion:reduce){.landmark-label.show{opacity:1;animation:none}}.kalle-anchor{z-index:3;pointer-events:none;width:0;height:0;position:absolute;top:0;left:0}.kalle-anchor:not([data-placed]){visibility:hidden}:is(html:has(.game-root),body:has(.game-root)){overscroll-behavior:none;background:#5aa9ee;height:100%;overflow:hidden}.game-root{touch-action:manipulation;height:100dvh;position:fixed;inset:0;overflow:hidden}.qcard{--gap:12px;z-index:2;left:calc(env(safe-area-inset-left) + var(--gap));right:calc(env(safe-area-inset-right) + var(--gap));bottom:calc(max(var(--kb,0px), env(safe-area-inset-bottom)) + var(--gap));max-height:calc(100dvh - var(--kb,0px) - env(safe-area-inset-top) - 72px);border-radius:22px;padding:14px 16px 16px;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s,bottom .18s ease-out;position:absolute;overflow:auto}.qcard.out{opacity:0;pointer-events:none;transform:translateY(calc(100% + 40px))}@media (width>=720px){.qcard{--gap:24px;width:min(440px,100vw - 48px);right:auto}}.qcard h1{margin:0 0 .35rem;font-size:1.45rem}.qcard h2{margin:.25rem 0 .15rem;font-size:1.2rem;line-height:1.25}.qcard p{margin:.25rem 0 .6rem;line-height:1.4}.qcard .rule{color:#6b5a48;margin:0 0 .7rem;font-size:.9rem}.qcard .muted{color:#6b5a48;font-size:.9rem}.qcard .tiers{letter-spacing:.02em;font-size:.95rem}.qhead{color:#6b5a48;font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;font-size:.85rem;font-weight:700;display:flex}.qhead .secs.low{color:#c8553d}.qcard form{gap:.5rem;display:flex}.qcard .answer{color:#2b2118;background:#ffffffd9;border:2px solid #c8553d8c;border-radius:14px;flex:1;min-width:0;min-height:48px;padding:.6rem .85rem;font-size:17px}.qcard .answer:focus{border-color:#c8553d;outline:none;box-shadow:0 0 0 3px #c8553d40}.qcard .primary{border-radius:14px;min-height:48px;padding:0 1.2rem;font-size:1.05rem;font-weight:800}.qcard .primary:disabled{opacity:.5}.qcard button:focus-visible{outline-offset:3px;outline:3px solid #2b2118}.qcard .answer:focus-visible{border-color:#c8553d;box-shadow:0 0 0 4px #c8553d59}.qcard>.primary{width:100%;margin-top:.25rem}.timebar{background:#2b21181a;border-radius:999px;height:5px;margin-top:12px;overflow:hidden}.timebar i{border-radius:inherit;transform-origin:0;background:linear-gradient(90deg,#c8553d,#e8a24a);height:100%;animation:linear forwards paused shrink;display:block}.timebar.run i{animation-play-state:running}@keyframes shrink{0%{transform:scaleX(var(--fra,1))}to{transform:scaleX(0)}}.qcard .retry{color:#a8432f;margin:.45rem 0 0;font-size:.95rem;font-weight:700;animation:.32s ease-out retry-nudge}@keyframes retry-nudge{0%,to{transform:translate(0)}25%{transform:translate(-5px)}60%{transform:translate(4px)}}.result{gap:.1rem;margin-top:.35rem;animation:.26s ease-out result-pop;display:grid}.result strong{font-variant-numeric:tabular-nums;font-size:2rem;line-height:1.1}.result span{font-weight:700}.result small{color:#6b5a48;font-size:.9rem}.result.good strong{color:#2f7d3a}.result.zero strong{color:#a8432f}@keyframes result-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.stats{gap:1.5rem;margin:.3rem 0 .4rem;display:flex}.stats div{display:grid}.stats strong{font-variant-numeric:tabular-nums;font-size:1.7rem}.stats span{color:#6b5a48;font-size:.85rem}.emojis{letter-spacing:.08em;font-size:1.5rem}@media (height<=500px){.qcard{border-radius:18px;padding:10px 14px 12px}.qcard h1{font-size:1.2rem}.qcard h2{font-size:1.05rem}.qcard p,.qcard .rule{margin-bottom:.4rem;font-size:.85rem}.qcard .answer,.qcard .primary{min-height:44px}.result strong{font-size:1.6rem}.stats strong{font-size:1.4rem}}@media (prefers-reduced-motion:reduce){.qcard{transition:opacity .2s}.qcard.out{transform:none}.result,.qcard .retry{animation:none}}.sound-toggle{z-index:3;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 12px);border-radius:999px;width:44px;height:44px;padding:0;font-size:1.2rem;line-height:1;position:absolute}.sound-toggle:focus-visible{outline-offset:2px;outline:3px solid #2b2118}.qcard .rules{gap:.45rem;margin:.2rem 0 .6rem;padding-left:1.1rem;line-height:1.4;display:grid}.personvern{color:#2a2420;box-sizing:border-box;background:#fbf7f0;max-width:640px;min-height:100vh;margin:0 auto;padding:32px 16px 48px;line-height:1.55}.personvern h1{margin-top:0}.personvern h2{margin:1.6em 0 .4em;font-size:1.1rem}.personvern li{margin-bottom:.6em}.qcard .privacy-link{text-align:center;color:inherit;opacity:.7;margin-top:10px;font-size:.85rem;display:block}.kalle-bubble{color:#2a2420;text-align:center;border-radius:16px;width:max-content;max-width:min(270px,72vw);padding:9px 14px;font-size:16px;font-weight:600;line-height:1.3;animation:.18s ease-out kalle-pop;position:absolute;bottom:12px;left:0;transform:translate(-50%)}.kalle-bubble:after{content:"";background:inherit;border-right:inherit;border-bottom:inherit;border-radius:0 0 4px;width:14px;height:14px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.kalle-rest{visibility:hidden}@keyframes kalle-pop{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.92)}}@media (prefers-reduced-motion:reduce){.kalle-bubble{animation:none}}.qcard .muted a{color:inherit}@media (width>=1024px){.kalle-bubble{max-width:320px;font-size:18px}}.kalle-avatar{flex:none;width:44px;height:44px;display:none}.kalle-anchor[data-mode=dock]{left:50%;top:calc(env(safe-area-inset-top,0px) + 60px)}.kalle-anchor[data-mode=dock] .kalle-bubble{text-align:left;align-items:center;gap:10px;max-width:min(360px,100vw - 32px);display:flex;top:0;bottom:auto}.kalle-anchor[data-mode=dock] .kalle-avatar{display:block}.kalle-anchor[data-mode=dock] .kalle-bubble:after{display:none}
