[hidden]{display:none!important}
:root{--gold:#ffcb60;--cara:#ae642d;--bord:#91283b;--ink:#3a1f0e;--panel:rgba(58,31,14,.92);
  --g:#3ddc7b;--r:#ff4d5a;--sa-t:env(safe-area-inset-top,0px);--sa-b:env(safe-area-inset-bottom,0px);--sa-l:env(safe-area-inset-left,0px);--sa-r:env(safe-area-inset-right,0px);--top:calc(var(--sa-t) + clamp(14px,3.2vh,30px));--floor:#a27649}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--floor);color:var(--gold);font-family:Georgia,"Times New Roman",serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
#app{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:var(--floor)}
#scene{position:absolute;inset:0;width:100%;height:100%;touch-action:manipulation;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;gap:8px;padding:var(--top) calc(12px + var(--sa-r)) 0 calc(12px + var(--sa-l));pointer-events:none}
.pill{display:flex;align-items:center;gap:8px;min-height:clamp(46px,11vw,56px);background:var(--panel);border:2px solid var(--cara);border-radius:999px;padding:6px 16px 6px 8px;font-size:clamp(1.1rem,4.2vw,1.7rem);font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.pill.timer{padding:6px 16px}.pill img{width:clamp(24px,6vw,34px);height:auto;border-radius:50%}
.hint{position:absolute;top:calc(var(--top) + 80px);left:calc(12px + var(--sa-l));background:var(--gold);color:var(--ink);font-weight:700;padding:6px 12px;border-radius:10px;font-size:clamp(.85rem,3.2vw,1.05rem);pointer-events:none;animation:pop .35s ease-out}
.col{display:flex;flex-direction:column;gap:5px;max-width:52%;min-width:0;align-items:flex-start}.col.right{align-items:flex-end;text-align:right}
.lbl{white-space:nowrap;font-size:clamp(.6rem,2.7vw,.9rem)}
.lbl{font-size:clamp(.72rem,2.7vw,.9rem);line-height:1.2;color:var(--gold);text-shadow:0 1px 3px #000,0 0 6px #000;font-weight:700;padding:0 6px}
.dock{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:4px;padding:0 calc(12px + var(--sa-r)) calc(4px + var(--sa-b)) calc(12px + var(--sa-l))}
.dock .row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.credit{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:.9em;white-space:nowrap;font-size:clamp(.5rem,2.2vw,.68rem);letter-spacing:.03em;color:var(--gold);opacity:.9;text-shadow:0 1px 3px #000,0 0 6px #000;pointer-events:none;padding-bottom:2px}
.mid{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.status{min-height:1.3em;max-width:100%;text-align:center;font-size:clamp(.85rem,3.4vw,1.05rem);text-shadow:0 1px 4px #000,0 0 8px #000;font-weight:700}
.btn{font:inherit;font-weight:700;letter-spacing:.06em;min-height:48px;padding:0 22px;border-radius:14px;border:2px solid var(--cara);background:var(--panel);color:var(--gold);cursor:pointer;font-size:clamp(1rem,3.6vw,1.2rem);transition:transform .12s,filter .15s,box-shadow .15s}
.btn.main{background:var(--gold);color:var(--ink);border-color:var(--cara);min-width:min(260px,100%);box-shadow:0 4px 0 var(--cara),0 8px 18px rgba(0,0,0,.35)}
.btn.round{width:52px;height:52px;padding:0;border-radius:50%;font-size:1.4rem;flex:none}
.btn:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:none}
.btn:disabled{opacity:.55;cursor:not-allowed}
:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px var(--bord)}
.wide{width:100%;margin-top:10px}
#doorbtns button{position:absolute;background:transparent;border:0;padding:0;margin:0;opacity:0}
#doorbtns button:focus-visible{outline:none;box-shadow:none}
.stage3d{position:absolute;inset:0;perspective:800px;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:5}
.t3d{font-weight:900;text-align:center;line-height:1.05;transform-style:preserve-3d;padding:0 8px}
.callout{font-size:clamp(1.8rem,8vw,4.4rem);color:var(--gold);text-shadow:1px 1px 0 var(--cara),2px 2px 0 var(--cara),3px 3px 0 var(--cara),4px 4px 0 #6b3a18,5px 5px 0 #6b3a18,6px 10px 14px rgba(0,0,0,.6)}
.callout.go{animation:call 2.6s cubic-bezier(.3,.7,.3,1) forwards}
@keyframes call{0%{transform:translateZ(-500px) scale(.5);opacity:0}30%{transform:translateZ(260px) scale(1.1);opacity:1}48%{transform:translateZ(60px) scale(1)}70%{transform:translateZ(0) scale(1);opacity:1}100%{transform:translateZ(-380px) scale(.9);opacity:0}}
.result{font-size:clamp(2.6rem,13vw,7rem);animation:res .9s cubic-bezier(.2,1.5,.4,1) both;transition:all .5s ease;position:relative}
.result small{display:block;font-size:.28em;letter-spacing:.04em;margin-top:.3em;text-shadow:0 2px 6px #000}
.result.win{color:var(--g);text-shadow:1px 1px 0 #17803f,2px 2px 0 #17803f,3px 3px 0 #17803f,4px 4px 0 #0d5a2a,5px 5px 0 #0d5a2a,6px 12px 18px rgba(0,0,0,.65)}
.result.x2{color:var(--gold);text-shadow:1px 1px 0 var(--cara),2px 2px 0 var(--cara),3px 3px 0 var(--cara),4px 4px 0 #6b3a18,5px 5px 0 #6b3a18,6px 12px 18px rgba(0,0,0,.65)}
.result.lose{color:var(--r);text-shadow:1px 1px 0 #8f1620,2px 2px 0 #8f1620,3px 3px 0 #8f1620,4px 4px 0 #5c0d14,5px 5px 0 #5c0d14,6px 12px 18px rgba(0,0,0,.65)}
.result.docked{position:fixed;left:50%;bottom:calc(128px + var(--sa-b));transform:translateX(-50%);font-size:clamp(1.3rem,5vw,2rem);background:var(--panel);border:2px solid var(--cara);border-radius:16px;padding:6px 18px;animation:none;white-space:nowrap}
.result.docked small{font-size:.55em;display:inline;margin-left:.6em}
@keyframes res{0%{transform:translateZ(-600px) scale(.3);opacity:0}55%{transform:translateZ(240px) scale(1.12);opacity:1}75%{transform:translateZ(-30px) scale(.97)}100%{transform:translateZ(0) scale(1)}}
@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:4}
.fly{position:fixed;width:40px;height:40px;z-index:9;pointer-events:none;left:0;top:0}
.overlay{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:calc(12px + var(--sa-t)) 12px calc(12px + var(--sa-b));background:rgba(30,15,6,.78);overflow:auto}
@supports((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.overlay{background:rgba(30,15,6,.45);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}}
.dlg{position:relative;width:min(380px,100%);max-height:100%;overflow:auto;background:var(--panel);border:2px solid var(--cara);border-radius:20px;padding:22px 20px 18px;box-shadow:0 20px 60px rgba(0,0,0,.6);animation:pop .25s ease-out;outline:none}
.dlg h2{margin:0 0 8px;font-size:1.5rem}.dlg p{margin:6px 0}
.x{position:absolute;top:8px;right:8px;width:44px;height:44px;border-radius:50%;border:2px solid var(--cara);background:transparent;color:var(--gold);font-size:1.1rem;cursor:pointer}
.avail{font-size:1.05rem}.betout{display:block;text-align:center;font-size:2.4rem;font-weight:800;padding:8px;margin:8px 0;border:2px dashed var(--cara);border-radius:14px;min-height:64px;font-variant-numeric:tabular-nums}
.msg{min-height:1.4em;font-size:.95rem;font-weight:700}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.key{min-height:clamp(50px,9vh,64px);border-radius:14px;border:2px solid var(--cara);background:rgba(174,100,45,.35);color:var(--gold);font:inherit;font-size:1.6rem;font-weight:700;cursor:pointer;touch-action:manipulation;transition:transform .1s,background .15s}
.key:hover{background:rgba(174,100,45,.7)}.key:active{transform:scale(.95);background:var(--cara)}
.key.cmd{font-size:.85rem;letter-spacing:.04em}#kBack{font-size:1.5rem}
.fine{font-size:.8rem;opacity:.9;text-align:center}.rules{padding-left:1.1em;line-height:1.45}.rules li{margin:6px 0}
.fatal{position:fixed;inset:0;z-index:50;background:var(--ink);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}
body.modal #app{filter:saturate(.9)}
@media (max-height:520px){.dlg{padding:12px}.key{min-height:40px;font-size:1.2rem}.betout{min-height:44px;font-size:1.6rem;margin:4px 0}.dlg h2{font-size:1.1rem}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}.callout.go{animation:fadeonly 1.6s forwards!important}.result{animation:none!important}}
@keyframes fadeonly{0%,100%{opacity:0}15%,85%{opacity:1}}

.lbl{white-space:nowrap;font-size:clamp(.6rem,2.6vw,.9rem)}
