:root{
  color-scheme:dark;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --gold:#ffd465;
  --gold-2:#ff9c22;
  --ice:#e9fbff;
  --ink:#030507;
  --panel:rgba(5,9,13,.88);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#020304;overscroll-behavior:none;touch-action:manipulation}
body{min-height:100dvh;color:#fff;user-select:none;-webkit-user-select:none}
button{font:inherit;color:inherit}
button:focus-visible{outline:3px solid #fff7ae;outline-offset:3px}
img{display:block;max-width:100%;pointer-events:none}
.app-shell,.game-viewport{position:fixed;inset:0;width:100%;height:100%;overflow:hidden;background:#030507}
.game-viewport{display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
.game-stage{position:relative;flex:none;width:390px;height:844px;overflow:hidden;isolation:isolate;transform-origin:center center;background:#08101a;box-shadow:0 0 70px rgba(0,0,0,.9)}
.stage-background,.stage-bg,.stage-vignette{position:absolute;inset:0;width:100%;height:100%}
.stage-background{z-index:0;overflow:hidden;background:#06111a}
.stage-bg{object-fit:cover;object-position:center}
.stage-bg-landscape{display:none}
.stage-vignette{background:radial-gradient(circle at 50% 38%,transparent 20%,rgba(0,0,0,.16) 65%,rgba(0,0,0,.68) 100%);pointer-events:none}

.top-controls,.jackpot-layer,.reel-zone,.hud-layer,.control-layer,.game-toast{position:absolute;z-index:10}
.top-btn,.control-btn{position:absolute;border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 5px 7px rgba(0,0,0,.55));transition:transform .12s ease,filter .12s ease,opacity .12s ease}
.top-btn img,.control-btn img{width:100%;height:100%;object-fit:contain}
.top-btn:active,.control-btn:active{transform:scale(.94)}
.top-btn[aria-pressed="true"],.control-btn[aria-pressed="true"]{filter:drop-shadow(0 0 10px rgba(255,196,55,.9)) brightness(1.15)}
.top-btn[disabled],.control-btn[disabled]{opacity:.48;cursor:default;filter:grayscale(.2) brightness(.75)}
.control-state{position:absolute;left:50%;bottom:2%;transform:translateX(-50%);min-width:22px;padding:1px 5px;border-radius:999px;background:rgba(0,8,18,.78);border:1px solid rgba(255,215,96,.58);font-weight:1000;letter-spacing:.04em;color:#fff8ce;text-shadow:0 2px 4px #000,0 0 7px #a63c00;white-space:nowrap;pointer-events:none;box-shadow:0 2px 7px rgba(0,0,0,.55)}
.control-state:empty{display:none}

.jackpot-layer{pointer-events:none}
.jackpot-slot{position:absolute;overflow:visible;filter:drop-shadow(0 5px 8px rgba(0,0,0,.55))}
.jackpot-slot img{width:100%;height:100%;object-fit:contain}
.jackpot-value{position:absolute;left:50%;top:74%;transform:translate(-50%,-50%);bottom:auto;min-width:82%;text-align:center;font-weight:1000;font-variant-numeric:tabular-nums;color:#fff3bd;text-shadow:0 2px 4px #000,0 0 8px rgba(255,154,28,.85);letter-spacing:.01em;white-space:nowrap}

.reel-home-anchor{display:none}
.reel-zone{overflow:visible}
.reel-layer{position:absolute;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(8,16,22,.9));border-radius:5px;box-shadow:inset 0 0 18px #000}
.reel-col{position:relative;height:100%;min-width:0;overflow:hidden;background:linear-gradient(180deg,rgba(221,237,241,.14),rgba(1,7,10,.35));border-radius:4px}
.reel-col::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.09),transparent 16%,transparent 84%,rgba(0,0,0,.18));z-index:4}
.reel-track{position:absolute;left:0;top:0;width:100%;will-change:transform;backface-visibility:hidden}
.cell{position:relative;display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}
.cell img{width:94%;height:94%;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(0,0,0,.65));transform:translateZ(0)}
.cell.is-win img{animation:winPulse .72s cubic-bezier(.2,.75,.25,1) 2;filter:drop-shadow(0 0 7px #fff1a2) drop-shadow(0 0 14px #ff8a00)}
.reel-frame{position:absolute;z-index:7;pointer-events:none;filter:drop-shadow(0 9px 13px rgba(0,0,0,.67))}
.win-layer{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .18s ease}
.win-layer.is-visible{opacity:1}
.win-banner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:42%;padding:10px 18px;border:2px solid rgba(255,222,111,.9);border-radius:14px;background:radial-gradient(circle at 50% 0,#6b2c09 0,#1c0802 62%,rgba(0,0,0,.95) 100%);box-shadow:0 0 28px rgba(255,115,0,.72),inset 0 0 18px rgba(255,210,87,.25);transform:scale(.7);animation:bannerPop .42s cubic-bezier(.2,1.35,.4,1) forwards}
.win-banner-label{font-weight:1000;letter-spacing:.11em;color:#fff0a0;text-shadow:0 2px 3px #000,0 0 8px #ff9d00}
.win-banner-value{font-weight:1000;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 2px 3px #000}

.hud-layer{pointer-events:none}
.hud-art{position:absolute;filter:drop-shadow(0 6px 8px rgba(0,0,0,.65))}
.hud-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.hud-art strong,.hud-caption{position:absolute;z-index:2;transform:translate(-50%,-50%);white-space:nowrap}
.hud-art strong{font-weight:1000;font-variant-numeric:tabular-nums;color:#fff7d2;text-shadow:0 2px 4px #000,0 0 8px #ad4d00}
.hud-caption{font-weight:1000;letter-spacing:.12em;color:#ffd27b;text-shadow:0 2px 3px #000}
.hud-balance-panel strong{color:#f4fcff;text-shadow:0 2px 4px #000,0 0 8px rgba(143,220,255,.35)}
.hud-balance-panel img{filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}

.game-toast{left:50%;transform:translateX(-50%) translateY(10px);opacity:0;pointer-events:none;padding:7px 13px;border:1px solid rgba(255,219,119,.7);border-radius:999px;background:rgba(0,0,0,.78);font-weight:800;letter-spacing:.035em;text-align:center;white-space:nowrap;box-shadow:0 5px 18px rgba(0,0,0,.55);transition:opacity .18s ease,transform .18s ease}
.game-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}
.game-toast.is-error{border-color:#ff786f;color:#ffd0cc}

/* Entry / loading screen */
.entry-layer{position:absolute;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 29%,rgba(47,76,81,.3),rgba(0,0,0,.94) 70%),url('../public_assets/layout/mobile-background.webp') center/cover no-repeat;transition:opacity .45s ease,visibility .45s ease}
.entry-layer.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.entry-glow{position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(215,230,206,.22),rgba(91,133,123,.08) 45%,transparent 70%);filter:blur(5px);animation:entryGlow 3.2s ease-in-out infinite}
.entry-card{position:relative;z-index:2;width:88%;display:flex;flex-direction:column;align-items:center;text-align:center}
.entry-wolf-crest{position:relative;width:43%;aspect-ratio:1;display:grid;place-items:center;isolation:isolate;animation:wolfFloat 3.3s ease-in-out infinite}
.entry-wolf-crest::before{content:"";position:absolute;inset:7%;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(37,115,176,.26),rgba(6,30,55,.12) 52%,transparent 72%);box-shadow:0 0 30px rgba(45,137,218,.23)}
.entry-wolf{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 15px #000) drop-shadow(0 0 15px rgba(80,171,255,.28))}
.entry-kicker{margin:12px 0 4px;font-size:9px;font-weight:900;letter-spacing:.17em;color:#d9c47a;text-shadow:0 2px 3px #000}
.entry-card h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:43px;line-height:.95;letter-spacing:.03em;color:#f4ead0;text-shadow:0 3px 5px #000,0 0 18px rgba(245,199,84,.25)}
.entry-card h1 span{display:block;font-size:.62em;letter-spacing:.3em;margin-left:.3em;color:#d19436}
.entry-status{min-height:20px;margin:17px 0 7px;font-size:10px;font-weight:800;letter-spacing:.07em;color:#d7e8ea}
.entry-progress{width:70%;height:5px;border-radius:99px;overflow:hidden;background:rgba(255,255,255,.12);box-shadow:inset 0 1px 4px #000}
.entry-progress span{display:block;width:8%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9f5b1e,#ffe09a);box-shadow:0 0 10px #ffc75e;transition:width .35s ease}
.entry-progress-meta{width:70%;display:flex;align-items:center;justify-content:space-between;margin-top:5px;font-size:7px;font-weight:900;letter-spacing:.08em;color:rgba(226,239,242,.68);font-variant-numeric:tabular-nums}
.entry-progress-meta span:last-child{text-align:right}
.entry-play{position:relative;width:150px;height:116px;margin-top:7px;border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 7px 10px #000);transition:transform .15s ease,filter .15s ease,opacity .15s ease}
.entry-play img{position:absolute;inset:-24px 0;width:100%;height:160px;object-fit:contain}
.entry-play:not(:disabled):active{transform:scale(.95)}
.entry-play:disabled{opacity:0;visibility:hidden;filter:none;pointer-events:none}
.entry-retry{margin-top:-5px;padding:9px 15px;border:1px solid #d7a55a;border-radius:8px;background:rgba(20,10,3,.86);font-size:10px;font-weight:900;letter-spacing:.08em;color:#ffe6ae;cursor:pointer}

/* Information dialog */
.game-dialog{width:min(520px,calc(100vw - 30px));max-height:calc(100dvh - 30px);padding:0;border:1px solid #c58a3e;border-radius:18px;background:rgba(4,8,11,.96);color:#f6f4ed;box-shadow:0 20px 80px #000,0 0 35px rgba(221,145,47,.2)}
.game-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
.dialog-shell{position:relative;padding:25px 22px 20px;overflow:auto}
.dialog-close{position:absolute;right:10px;top:8px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.08);font-size:26px;line-height:1;cursor:pointer}
.dialog-shell h2{margin:0 0 18px;color:#ffd27c;font-family:Georgia,"Times New Roman",serif;letter-spacing:.08em}
.dialog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.dialog-grid div{padding:10px;border:1px solid rgba(227,169,87,.32);border-radius:10px;background:rgba(255,255,255,.035)}
.dialog-grid span,.dialog-grid strong{display:block}
.dialog-grid span{font-size:10px;letter-spacing:.08em;color:#aeb8ba}
.dialog-grid strong{margin-top:3px;color:#fff0ba}
.dialog-shell p{font-size:12px;line-height:1.55;color:#d5dddf}
.dialog-small{opacity:.72;font-size:10px!important}

@keyframes winPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes bannerPop{to{transform:scale(1)}}
@keyframes wolfFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes entryGlow{0%,100%{transform:scale(.96);opacity:.65}50%{transform:scale(1.04);opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
