@font-face{font-family:Inter;src:url('assets/fonts/Inter-Variable.ttf')}
*{box-sizing:border-box}button{touch-action:manipulation}body{margin:0;background:#171b19;color:#e5d4a9;font-family:Inter,Arial,sans-serif}.mockup-shell{--hud-bottom:max(12px,env(safe-area-inset-bottom));--hud-height:80px;--board-w:min(76vw,calc(100svh - 222px),900px);height:100svh;min-height:0;background:radial-gradient(ellipse at 50% 30%,#56605030,transparent 65%),linear-gradient(110deg,#131c19,#2b322b 50%,#121b18)}.wall{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 119px,#a8996520 120px,#090e0c80 122px,transparent 124px),repeating-linear-gradient(0deg,transparent 0 159px,#a8996510 160px,transparent 161px);mask-image:linear-gradient(#0008,#000)}.wall:after{content:'';position:absolute;inset:24px;border:1px solid #baaa6c38;outline:1px solid #baaa6c20;outline-offset:7px}.side-ornament{position:absolute;top:22%;bottom:20%;width:13%;border:3px double #b7a57233;transform:skewY(-22deg);background:repeating-linear-gradient(90deg,transparent 0 18px,#b7a57218 19px,transparent 20px)}.side-ornament.left{left:4%}.side-ornament.right{right:4%;transform:skewY(22deg)}.brand{position:absolute;top:22px;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap}.brand>span{font-size:9px;letter-spacing:.48em;color:#b9a77f}.brand h1{margin:3px 0 0;font:900 clamp(25px,4vw,51px)/1.03 Georgia,serif;letter-spacing:.06em;color:#ead4a0;text-shadow:0 2px #61472a,0 4px #101814,0 8px 24px #0008}.brand p{font-size:8px;letter-spacing:.34em;margin:9px 0;color:#b8ac8b}.preview-label{position:absolute;left:22px;top:14px;display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:.14em;color:#c4c5b6}.preview-label i{width:5px;height:5px;background:#c0ba89;border-radius:50%}.preview-label span{opacity:.4;margin-left:8px}.reel-frame{position:absolute;width:var(--board-w);height:var(--board-w);aspect-ratio:1;left:50%;top:calc(116px + (100svh - 222px - var(--board-w))/2);transform:translateX(-50%);padding:9px;border:3px solid #b3a077;outline:2px solid #111812;box-shadow:0 0 0 6px #393b2e,0 0 0 8px #95815a,0 18px 45px #0009,inset 0 0 0 2px #191d18;background:linear-gradient(90deg,#847657,#e0c991 3%,#655d43 5%,#444734 95%,#c7b384 98%,#797253)}#board{width:100%;height:100%;position:relative;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);overflow:hidden;background:linear-gradient(#252827,#30322e);box-shadow:inset 0 0 32px #0009}.cell{position:relative;min-width:0;min-height:0;border-right:1px solid #c9b88612;border-bottom:1px solid #c9b88612;display:grid;place-items:center}.cell:nth-child(odd){background:#e9ddb003}.symbol{width:var(--symbol-size,94%);height:var(--symbol-size,94%);object-fit:contain;position:absolute;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 3px 2px #0007);will-change:transform}.frame-cap{position:absolute;height:10px;left:-3px;right:-3px;border:2px solid #181e18;background:linear-gradient(#e4cf97,#8d805b 45%,#383c2f 50%,#a2936b);box-shadow:0 2px #0008}.frame-cap.top{top:-12px}.frame-cap.bottom{bottom:-12px}.corner{position:absolute;font-size:22px;color:#d6bc7b;text-shadow:0 2px #191a13}.tl{top:-17px;left:-13px}.tr{top:-17px;right:-13px}.bl{bottom:-17px;left:-13px}.br{bottom:-17px;right:-13px}.preview-tools{position:absolute;bottom:101px;left:50%;transform:translateX(-50%);width:var(--board-w);display:flex;align-items:center;justify-content:center;gap:18px;white-space:nowrap;font-size:9px;letter-spacing:.07em;color:#a8ac97}.preview-tools button{background:#111a17b0;color:#dbd5be;border:1px solid #b0a06c50;border-radius:4px;padding:7px 12px;font-size:10px}.space-hint{font-size:8px;opacity:.5}.neon-hud .hud-balance-readout>span,.neon-hud .hud-win-readout>span,.neon-hud .hud-bet-readout>span{color:#ff982e}[hidden]{display:none!important}.mockup-shell:after{pointer-events:none}.neon-hud .hud-spin-button.dropping .hud-spin-icon{animation:spin-wait .65s linear infinite}.neon-hud .hud-spin-button.dropping{pointer-events:none}dialog{width:min(380px,90vw);padding:24px;background:#202922;color:#e9dbb4;border:1px solid #a99561;border-radius:10px;box-shadow:0 20px 80px #0009;font-size:13px}dialog::backdrop{background:#0008;backdrop-filter:blur(4px)}dialog header{display:flex;align-items:center;justify-content:space-between}dialog h2{margin:0;font:25px Georgia}dialog button,dialog select{background:#394233;color:#eadab1;border:1px solid #a9956170;padding:9px;border-radius:4px}dialog label{display:grid;gap:10px;margin:20px 0}dialog small{display:block;margin-top:20px;font-size:10px;color:#aaa}dialog p{line-height:1.6;color:#b9bdad}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #e8ca87;outline-offset:3px}
@media(max-width:620px) and (orientation:portrait){.mockup-shell{--board-w:min(92vw,calc(100svh - 290px));--hud-bottom:max(5px,env(safe-area-inset-bottom));--hud-height:104px}.brand{top:62px}.brand h1{font-size:clamp(24px,6vw,36px)}.brand p{font-size:7px}.reel-frame{top:calc(144px + (100svh - 290px - var(--board-w))/2);padding:4px;border-width:2px}.frame-cap{left:-2px;right:-2px}.preview-tools{bottom:116px;gap:9px;font-size:8px}.space-hint{display:none}.side-ornament{opacity:.3}.preview-label{left:15px;top:20px}}
@media(max-height:560px) and (orientation:landscape){.mockup-shell{--board-w:min(66vw,calc(100svh - 126px));--hud-bottom:4px}.brand{top:12px;left:12%;width:21%;white-space:normal}.brand h1{font-size:19px}.brand>span{font-size:6px}.brand p{font-size:6px;line-height:1.7}.preview-label{display:none}.reel-frame{top:18px}.preview-tools{bottom:76px}.side-ornament{opacity:.3}}
@media(min-width:621px) and (min-height:561px){.preview-tools{top:12px;right:22px;bottom:auto;left:auto;width:auto;transform:none;gap:12px}.preview-tools button{padding:5px 9px}.space-hint{display:none}}
#spine-overlay{position:absolute;z-index:5;pointer-events:none;overflow:visible}#spine-overlay canvas{display:block}

/* The supplied 1024x2048 artwork is the RIGHT half of a 2048px square. */
.mockup-shell{--board-w:min(96vw,calc(100svh - 140px),980px);background:#211a16 var(--project-bg,url('assets/game-field/background-shop.jpg')) center/cover no-repeat}
.wall{inset:0;background:url('assets/game-field/background-shop.jpg') center/cover no-repeat;filter:none;opacity:1;mask-image:none}
.wall:after,.side-ornament{display:none}
.reel-frame{top:calc(34px + (100svh - 140px - var(--board-w))/2);width:var(--board-w);height:var(--board-w);padding:0;border:0;outline:0;box-shadow:none;background:none;isolation:isolate}
.field-art{position:absolute;top:0;width:calc(50% + 2px);height:100%;background:url('assets/game-field/2048-1024_Ramka-pole.png') right center/calc(100% + 10px) 100% no-repeat;pointer-events:none}
.field-art-left{left:0;transform:scaleX(-1)}.field-art-right{right:0}
.field-art-left.full-frame{left:0;width:100%;transform:none;background-position:center;background-size:100% 100%}
.field-title{position:absolute;left:25%;top:4.35%;width:50%;height:6.25%;object-fit:contain}
.field-year{position:absolute;left:44%;top:.55%;width:12%;height:5%;object-fit:contain}
/* Match the exact square opening in the art: x=184, y=274, size=1680. */
#board{position:absolute;left:8.984375%;top:13.37890625%;width:82.03125%;height:82.03125%;background:transparent;box-shadow:none}
.cell,.cell:nth-child(odd){background:transparent;border:0}
#board:after{content:none}
@media(max-width:620px) and (orientation:portrait){.mockup-shell{--board-w:min(100vw,calc(100svh - 195px))}.reel-frame{top:calc(48px + (100svh - 195px - var(--board-w))/2)}}
@media(max-height:560px) and (orientation:landscape){.mockup-shell{--board-w:min(80vw,calc(100svh - 105px))}.reel-frame{top:9px}}

/* Framed high symbols use the complete square cell, matching the grid. */
.symbol.framed-symbol{width:100%;height:100%;filter:none}

#spine-overlay{position:absolute;z-index:5;pointer-events:none;overflow:visible}#spine-overlay canvas{display:block}
