:root{--bg: #07060f;--bg-elevated: #120f22;--text: #f8f5ff;--text-muted: rgba(248, 245, 255, .72);--accent: #c084fc;--accent-hot: #e879f9;--accent-warm: #a78bfa;--glow-violet: rgba(192, 132, 252, .34);--glow-violet-bright: rgba(232, 121, 249, .2);--glow-magenta: rgba(167, 139, 250, .16);color:var(--text);background:var(--bg);color-scheme:dark;font-family:Outfit,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}html{-webkit-text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation}button{font:inherit;-webkit-tap-highlight-color:transparent}.app-shell{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;background:radial-gradient(ellipse 70% 48% at 14% 6%,rgba(192,132,252,.28),transparent 58%),radial-gradient(ellipse 58% 42% at 88% 92%,rgba(232,121,249,.16),transparent 54%),radial-gradient(ellipse 50% 32% at 50% -4%,rgba(167,139,250,.18),transparent 50%),radial-gradient(ellipse 40% 28% at 50% 55%,rgba(76,29,149,.18),transparent 70%),var(--bg)}.app-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 85% 70% at 50% 45%,transparent 42%,rgba(3,2,10,.55) 100%),linear-gradient(180deg,rgba(7,6,15,.15),transparent 18%,transparent 72%,rgba(7,6,15,.45));mix-blend-mode:multiply}.app-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.scene-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:block;width:100%;height:100%;padding:0;border:0;cursor:pointer;touch-action:manipulation;background:transparent}.scene-layer:disabled{cursor:default}.scene-layer canvas{display:block;width:100%!important;height:100%!important}.hud{position:relative;z-index:2;display:flex;min-height:100vh;min-height:100dvh;flex-direction:column;justify-content:space-between;padding:calc(26px + var(--safe-top)) calc(28px + var(--safe-right)) calc(30px + var(--safe-bottom)) calc(28px + var(--safe-left));pointer-events:none}.filter-bar{display:flex;align-self:flex-start;flex-wrap:wrap;gap:6px;margin-bottom:10px;pointer-events:auto}.filter-chip{border:1px solid rgba(192,132,252,.45);border-radius:999px;padding:6px 12px;background:#07060fb8;color:#ede9fed1;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,background .2s,color .2s,box-shadow .2s}.filter-chip:hover:not(:disabled){border-color:#e879f9b3;color:#f8f5ff}.filter-chip.is-active{border-color:#e879f9d9;background:#2a1f4ae6;color:#f8f5ff;box-shadow:0 0 18px #c084fc59}.filter-chip:disabled{opacity:.45;cursor:not-allowed}.heat-panel{display:flex;flex-direction:column;gap:10px;width:min(100%,420px);padding:12px 14px;border:1px solid rgba(192,132,252,.35);border-radius:18px;background:linear-gradient(160deg,#2a1648e0,#07060fc7),#07060fb8;box-shadow:0 12px 40px #00000047}.heat-meter{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.heat-step{height:8px;border-radius:999px;background:#ede9fe1f;border:1px solid rgba(192,132,252,.18);transition:background .25s,box-shadow .25s,transform .25s}.heat-step.is-lit{background:linear-gradient(90deg,#a78bfa,#e879f9);border-color:#e879f9a6;box-shadow:0 0 12px #e879f959}.heat-step.is-current{transform:scaleY(1.35);box-shadow:0 0 18px #f472b68c}.heat-copy{display:flex;flex-direction:column;gap:2px}.heat-title,.heat-hint,.heat-progress,.heat-unlock-kicker,.heat-unlock-title,.heat-unlock-line{margin:0}.heat-title{color:#f8f5ff;font-size:.78rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.heat-hint{color:#ede9feb8;font-size:.78rem;line-height:1.35}.heat-progress{margin-top:4px;color:#c084fce6;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.heat-progress.is-ready{color:#f9a8d4;text-shadow:0 0 16px rgba(244,114,182,.55);animation:heat-pulse 1.4s ease-in-out infinite}.heat-actions{display:flex;flex-wrap:wrap;gap:6px}.filter-chip.starter-chip{border-color:#f472b6a6}.filter-chip.level-up-chip{border-color:#e879f9bf;color:#fde7ff}.filter-chip.level-up-chip:hover:not(:disabled){border-color:#f472b6f2;box-shadow:0 0 14px #e879f966}.filter-chip.level-up-chip.is-ready{border-color:#f472b6f2;background:#581c4ef2;color:#fff;box-shadow:0 0 22px #f472b673;animation:heat-pulse 1.4s ease-in-out infinite}.heat-unlock{align-self:flex-start;width:min(100%,420px);margin-bottom:10px;padding:12px 14px;border-radius:16px;border:1px solid rgba(244,114,182,.55);background:linear-gradient(135deg,#4c1d59f2,#180c30eb);box-shadow:0 0 28px #e879f947;pointer-events:none;animation:heat-unlock-in .45s ease-out}.heat-unlock-kicker{color:#f9a8d4;font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.heat-unlock-title{margin-top:2px;color:#f8f5ff;font-size:1rem;font-weight:800}.heat-unlock-line{margin-top:4px;color:#ede9fed1;font-size:.82rem;line-height:1.35}.result-kicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.heat-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;border:1px solid rgba(192,132,252,.45);background:#2a1f4ad9;color:#f5e9ff;font-size:.62rem;letter-spacing:.05em}.heat-tag-1,.heat-tag-2{border-color:#a78bfa8c}.heat-tag-3,.heat-tag-4{border-color:#e879f9a6;color:#fce7f3}.heat-tag-5,.heat-tag-6{border-color:#f472b6cc;background:#581c4ee6;box-shadow:0 0 12px #f472b659}@keyframes heat-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.18)}}@keyframes heat-unlock-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 700px){.heat-panel,.heat-unlock{width:100%}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.eyebrow,.state,.result-kicker{margin:0;color:var(--text-muted);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.eyebrow{color:var(--accent-hot);text-shadow:0 0 28px rgba(192,132,252,.55)}.state{color:var(--accent);text-align:right}.state.is-stuck{color:var(--accent-warm);text-shadow:0 0 20px rgba(232,121,249,.45)}.result-panel.is-stuck-hint{opacity:1;transform:translateY(0);min-height:0;margin-bottom:12px;padding-top:14px;border-top:1px solid rgba(192,132,252,.42)}.stuck-message{margin:0;color:#f8f5ffe0;font-size:clamp(.9rem,2.8vw,1rem);line-height:1.5}.result-panel{width:min(650px,100%);min-height:166px;margin:auto auto 28px;padding:18px 16px 8px;border-top:1px solid rgba(192,132,252,.32);background:linear-gradient(180deg,rgba(18,12,36,.35),transparent 70%);text-align:center;opacity:0;transform:translateY(14px);transition:opacity .22s ease,transform .22s ease}.result-panel.is-visible{opacity:1;transform:translateY(0)}.result-kicker{color:var(--accent-hot)}.result-panel h1{margin:8px 0 0;color:var(--text);font-family:Syne,Outfit,sans-serif;font-size:clamp(1.55rem,5.2vw,2.4rem);font-weight:800;line-height:1.05;letter-spacing:-.02em;overflow-wrap:break-word;text-shadow:0 0 28px rgba(232,121,249,.35),0 0 56px rgba(192,132,252,.28)}.result-panel p:last-child{max-width:610px;margin:14px auto 0;color:#f8f5ffd1;font-size:clamp(.9rem,2.8vw,1rem);line-height:1.55}.german-lesson{max-width:610px;margin:18px auto 0;padding:14px 16px;border:1px solid rgba(232,121,249,.45);border-radius:12px;background:#2a1f4a8c;text-align:left}.german-lesson-kicker{margin:0 0 8px;color:var(--accent-hot);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.german-lesson-text{margin:0;color:#f8f5ff;font-size:clamp(1rem,3.2vw,1.12rem);font-weight:650;line-height:1.5}.controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;pointer-events:none}.german-button{min-height:48px;padding:0 18px;border:1px solid rgba(232,121,249,.55);border-radius:10px;color:#f8f5ff;cursor:pointer;background:#2a1f4ae0;font-size:.82rem;font-weight:800;letter-spacing:.04em;pointer-events:auto;touch-action:manipulation;transition:transform .14s ease,filter .14s ease,opacity .14s ease,box-shadow .14s ease}.german-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 0 24px #e879f959}.german-button:active:not(:disabled){transform:translateY(1px)}.roll-button{min-width:176px;min-height:48px;padding:0 22px;border:1px solid rgba(192,132,252,.75);border-radius:10px;color:#ede9fe;cursor:pointer;background:linear-gradient(135deg,#2a1f4a,#14101f 52%,#0a0814);box-shadow:0 0 36px #c084fc73,0 0 14px #e879f940,0 16px 40px #00000080,inset 0 0 20px #c084fc14;font-size:.95rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;pointer-events:auto;touch-action:manipulation;transition:transform .14s ease,filter .14s ease,opacity .14s ease,box-shadow .14s ease}.roll-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 0 48px #c084fc8c,0 0 22px #e879f959,0 18px 44px #0000007a,inset 0 0 24px #c084fc1f}.roll-button:active:not(:disabled){transform:translateY(1px)}.roll-button:disabled{cursor:default;opacity:.72}@media (max-width: 700px){body{overflow:hidden}.app-shell:after{content:"";position:absolute;inset:auto 0 0;z-index:1;height:min(58vh,480px);pointer-events:none;background:linear-gradient(to top,rgba(7,6,15,.96) 0%,rgba(7,6,15,.78) 40%,transparent 100%)}.hud{justify-content:flex-end;gap:12px;padding:calc(14px + var(--safe-top)) calc(16px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(16px + var(--safe-left))}.topbar{align-items:flex-start;flex-direction:column;gap:4px}.state{text-align:left}.result-panel{flex-shrink:0;min-height:0;margin:0;padding-top:14px;border-top-color:#c084fc66}.result-panel:not(.is-visible):not(.is-stuck-hint){min-height:0;padding-top:0;border-top:0}.roll-button{width:100%;max-width:none;min-height:52px;font-size:1rem}}@media (max-width: 380px){.eyebrow,.state,.result-kicker{font-size:.68rem}.result-panel h1{font-size:1.35rem}}
