:root{--bg: #0b0f1a;--panel: #121826;--panel-2: #1a2236;--text: #e8eef9;--muted: #8997b3;--accent: #4ade80;--accent-2: #60a5fa;--warn: #fbbf24;--bad: #f87171;--border: rgba(255,255,255,.08)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--border);padding:10px 18px;border-radius:8px;cursor:pointer;transition:background .12s ease}button:hover:not(:disabled){background:var(--accent);color:#0b0f1a}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);color:#0b0f1a;border-color:var(--accent);font-weight:700}button.primary:hover:not(:disabled){filter:brightness(1.1)}button.ghost{background:transparent}input,textarea,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);padding:10px 12px;border-radius:8px;width:100%}.app-nav{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:10}.app-nav .brand{font-size:22px;font-weight:800;letter-spacing:.5px}.app-nav .brand .accent{color:var(--accent)}.app-nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0}.app-nav a{color:var(--muted);font-weight:600}.app-nav a.active{color:var(--text)}.container{max-width:1280px;margin:0 auto;padding:28px}.gotd-card{background:linear-gradient(135deg,#1a2236,#2c3e64);border:1px solid var(--accent-2);border-radius:16px;padding:32px;display:grid;grid-template-columns:1fr 320px;gap:28px;align-items:center;box-shadow:0 8px 40px #60a5fa26}.gotd-tag{color:var(--warn);font-weight:800;letter-spacing:2px;font-size:12px}.gotd-title{font-size:38px;margin:8px 0}.gotd-blurb{color:#cbd5e1;max-width:56ch;line-height:1.45}.gotd-play{margin-top:16px}.gotd-prize{background:#00000059;border-radius:12px;padding:20px;border:1px solid var(--border)}.gotd-prize h4{margin:0 0 6px;color:var(--warn);font-size:13px;letter-spacing:1.5px}.gotd-prize .prize-name{font-size:22px;font-weight:800;margin:4px 0}.gotd-prize .prize-desc{color:#b6c2d8;font-size:14px}.section-h{font-size:14px;letter-spacing:2px;color:var(--muted);margin:36px 0 14px;text-transform:uppercase}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.game-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;cursor:pointer;transition:transform .12s,border-color .12s}.game-card:hover{transform:translateY(-2px);border-color:var(--accent)}.game-card .icon{font-size:38px}.game-card .title{font-size:18px;font-weight:800;margin:6px 0 2px}.game-card .desc{color:var(--muted);font-size:13px}.game-card.placeholder{opacity:.55;cursor:not-allowed}.past-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.past-tile{flex:0 0 220px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:14px;cursor:pointer}.past-tile .past-date{font-size:12px;color:var(--accent-2);font-weight:700}.past-tile .past-title{font-size:16px;font-weight:700;margin-top:4px}.score-table{width:100%;border-collapse:collapse;margin-top:12px}.score-table th,.score-table td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left}.score-table th{color:var(--muted);font-size:12px;letter-spacing:1.5px}.score-table td.score{font-weight:800;color:var(--accent)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px;width:min(560px,92vw)}.modal h2{margin:0 0 10px}.code-reveal{background:linear-gradient(135deg,#4ade80,#60a5fa);color:#0b0f1a;padding:18px;border-radius:12px;margin-top:16px}.code-reveal .code-value{font-family:monospace;font-size:22px;font-weight:800;letter-spacing:2px}.form-row{margin-bottom:14px}.form-row label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:1.5px;text-transform:uppercase}.error{color:var(--bad);margin-top:8px}.admin-grid{display:grid;grid-template-columns:240px 1fr;gap:24px}.admin-side ul{list-style:none;padding:0;margin:0}.admin-side li{padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--muted)}.admin-side li.active{background:var(--panel-2);color:var(--text);font-weight:700}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.admin-table th{font-size:12px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700}.badge.pending{background:#fbbf242e;color:var(--warn)}.badge.fulfilled{background:#4ade802e;color:var(--accent)}.badge.rejected{background:#f871712e;color:var(--bad)}.dice-game-serif{font-family:Cinzel,Cormorant SC,ui-serif,Georgia,serif}.dice-game-body{font-family:EB Garamond,ui-serif,Georgia,serif}@keyframes dropIn{0%{opacity:0;transform:translateY(-22px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.dice-twoCol-battle{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:1.25rem}.dice-twoCol-avatar{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1.5rem;align-items:start}.dice-actorRow{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}@media (max-width: 820px){.dice-twoCol-battle,.dice-twoCol-avatar{grid-template-columns:1fr}.dice-actorRow{flex-direction:column;align-items:center;gap:.6rem}}@keyframes diceFloatUp{0%{opacity:0;transform:translate(-50%) scale(.85)}18%{opacity:1;transform:translate(-50%,-8px) scale(1.1)}to{opacity:0;transform:translate(-50%,-64px) scale(1)}}@keyframes diceStatusThrob{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.18);filter:brightness(1.5)}to{transform:scale(1);filter:brightness(1)}}@keyframes diceTurnOverlay{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}72%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes diceScreenShake{0%,to{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(5px,-2px)}60%{transform:translate(-3px,-3px)}80%{transform:translate(2px,4px)}}@keyframes diceTumbleGlow{0%,to{filter:drop-shadow(0 0 14px rgba(139,92,246,.45))}50%{filter:drop-shadow(0 0 28px rgba(6,182,212,.65))}}@keyframes diceThunk{0%{transform:scale(1.18)}60%{transform:scale(.92)}to{transform:scale(1.05)}}@keyframes diceMenuFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes diceCandleFlicker{0%,to{opacity:.8}50%{opacity:1}}@keyframes diceSigilDrift{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes diceSigilDriftReverse{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@keyframes diceScreenFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes diceFloatUpV2{0%{opacity:0;transform:translate(-50%,6px) scale(.7)}12%{opacity:1;transform:translate(-50%,-10px) scale(1.18)}28%{opacity:1;transform:translate(-50%,-28px) scale(1)}78%{opacity:.95;transform:translate(-50%,-64px) scale(1)}to{opacity:0;transform:translate(-50%,-86px) scale(.96)}}@keyframes diceStageShake{0%{transform:translate(0)}10%{transform:translate(-7px,4px) rotate(-.4deg)}22%{transform:translate(6px,-3px) rotate(.3deg)}35%{transform:translate(-5px,-4px) rotate(-.25deg)}48%{transform:translate(4px,5px) rotate(.2deg)}62%{transform:translate(-3px,2px) rotate(0)}78%{transform:translate(2px,-1px)}to{transform:translate(0)}}@keyframes diceSlotThunk{0%{transform:scale(1)}35%{transform:scale(.92);filter:brightness(1.6)}68%{transform:scale(1.04);filter:brightness(1.25)}to{transform:scale(1);filter:brightness(1)}}@keyframes diceTablePulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}20%{opacity:.85}to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}@keyframes diceOutcomeFade{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}18%{opacity:.55;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}to{opacity:1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}@keyframes diceOutcomeWord{0%{opacity:0;transform:translateY(14px) scale(.86);letter-spacing:.02em}35%{opacity:1;transform:translateY(0) scale(1.04);letter-spacing:.1em}to{opacity:1;transform:translateY(0) scale(1);letter-spacing:.06em}}@keyframes diceOutcomeUnderline{0%{transform:scaleX(0);opacity:0}60%{opacity:1}to{transform:scaleX(1);opacity:1}}@keyframes diceLogSlideIn{0%{opacity:0;transform:translateY(10px);box-shadow:inset 4px 0 #d9a560d9}60%{opacity:1;box-shadow:inset 4px 0 #d9a5608c}to{opacity:1;transform:translateY(0);box-shadow:inset 4px 0 #d9a56000}}@keyframes diceLogAge{0%{filter:none}to{filter:brightness(.72) sepia(.25)}}@keyframes hpDamageFlash{0%{filter:brightness(2.2) saturate(2)}40%{filter:brightness(1.6) saturate(1.6)}to{filter:brightness(1) saturate(1)}}.hp-damage-flash{animation:hpDamageFlash .42s ease-out both}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.battle-backdrop-enter{animation:backdropFadeIn .5s ease both}@keyframes diceMiniIdle{0%{transform:rotateX(15deg) rotateY(-25deg)}25%{transform:rotateX(19deg) rotateY(-19deg)}50%{transform:rotateX(13deg) rotateY(-31deg)}75%{transform:rotateX(17deg) rotateY(-23deg)}to{transform:rotateX(15deg) rotateY(-25deg)}}@media (prefers-reduced-motion: reduce){.dice-mini-cube{animation:none!important}}@keyframes rewardCoinSpin{0%{transform:rotateY(0) rotateX(-8deg)}to{transform:rotateY(360deg) rotateX(-8deg)}}.reward-coin-spin{animation:rewardCoinSpin 4s linear infinite}@keyframes rewardVialFloat{0%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-4px) rotate(1.5deg)}to{transform:translateY(0) rotate(-1.5deg)}}.reward-vial-float{animation:rewardVialFloat 3.4s ease-in-out infinite}@keyframes rewardVialCaustic{0%{transform:translate(0) rotate(0);opacity:.55}50%{transform:translate(-6px,4px) rotate(180deg);opacity:.85}to{transform:translate(0) rotate(360deg);opacity:.55}}.reward-vial-caustic{animation:rewardVialCaustic 3s ease-in-out infinite}@keyframes rewardRunePulse{0%{transform:rotate(0) scale(1);opacity:.55}50%{transform:rotate(180deg) scale(1.06);opacity:.9}to{transform:rotate(360deg) scale(1);opacity:.55}}.reward-rune-ring{animation:rewardRunePulse 4.2s ease-in-out infinite}@keyframes rewardRunePulseInner{0%{transform:rotate(0) scale(1);opacity:.4}50%{transform:rotate(-180deg) scale(.94);opacity:.75}to{transform:rotate(-360deg) scale(1);opacity:.4}}.reward-rune-ring-inner{animation:rewardRunePulseInner 3.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.reward-coin-spin,.reward-vial-float,.reward-vial-caustic,.reward-rune-ring,.reward-rune-ring-inner{animation:none!important}}@keyframes dicePromptRingDrift{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes dicePromptRingDriftRev{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.dice-prompt-ring-outer{transform-origin:50% 50%;animation:dicePromptRingDrift 48s linear infinite;will-change:transform}.dice-prompt-ring-inner{transform-origin:50% 50%;animation:dicePromptRingDriftRev 32s linear infinite;will-change:transform}@keyframes dicePromptHaloBreath{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.dice-prompt-halo{animation:dicePromptHaloBreath 3.6s ease-in-out infinite;will-change:opacity,transform}.dice-prompt-spark{position:absolute;bottom:18%;width:3px;height:3px;border-radius:50%;background:radial-gradient(circle,rgba(255,232,180,.95) 0%,rgba(217,165,96,.6) 55%,transparent 100%);box-shadow:0 0 6px #ffe8b499;opacity:0;animation:dicePromptSparkRise 4.2s ease-out infinite;pointer-events:none;will-change:transform,opacity}@keyframes dicePromptSparkRise{0%{opacity:0;transform:translate(-50%) scale(.6)}18%{opacity:.9;transform:translate(-50%,-22px) scale(1)}72%{opacity:.5;transform:translate(-50%,-68px) scale(.85)}to{opacity:0;transform:translate(-50%,-96px) scale(.4)}}@media (prefers-reduced-motion: reduce){.dice-prompt-ring-outer,.dice-prompt-ring-inner,.dice-prompt-halo,.dice-prompt-spark{animation:none!important}}@keyframes diceBossIntroFade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}@media (max-width: 880px){.dice-mainmenu-grid{grid-template-columns:1fr!important;gap:1.5rem!important}.dice-hero-art-wrap{min-height:280px!important}}
