html.has-bar-game{overflow:hidden}
.bar-game{--bar-paper:#f4f0e8;box-sizing:border-box;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px clamp(20px,5vw,72px);border:0;color:var(--bar-paper);background:#542532;overflow:hidden;overscroll-behavior:contain}
.bar-game[open]{display:grid;grid-template-rows:44px 44px minmax(0,1fr) auto;gap:10px}
.bar-game::backdrop{background:#542532}.bar-game [hidden]{display:none!important}
.bar-game button:focus-visible{outline:2px solid var(--bar-paper);outline-offset:4px}
.bar-close{position:absolute;right:clamp(20px,5vw,72px);top:24px;width:44px;height:44px;padding:0;border:1px solid #f4f0e84a;border-radius:50%;background:transparent;color:inherit;cursor:pointer;font:300 30px/1 Manrope,sans-serif;z-index:2}
.bar-heading{display:flex;align-items:center;gap:20px;padding-right:56px}.bar-heading>span:first-child{font:500 30px Newsreader,serif}.bar-heading>span:last-child{font-size:12px;color:#e0d3c5}
.scratch-play{width:min(100%,680px);min-height:0;justify-self:center;display:grid;grid-template-rows:auto minmax(0,1fr) 58px 48px;gap:14px;text-align:center}
.scratch-story h2{font:400 clamp(34px,5vw,56px)/1.04 Newsreader,serif;letter-spacing:-.025em;margin:0 0 12px}
.scratch-story>p{font-size:13px;line-height:1.55;color:#e0d3c5;max-width:390px;margin:0 auto}
.scratch-stage{min-height:0;display:grid;place-items:center}
.scratch-ticket{position:relative;width:min(100%,480px);height:min(100%,300px);background:#f4f0e8;color:#542532;border-radius:8px;overflow:hidden;isolation:isolate;box-shadow:0 10px 30px #281c232b}
.scratch-prize{position:absolute;inset:0;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.scratch-prize>p{font-size:12px;margin:0}.scratch-icon{width:42px;height:42px;flex:none}
.scratch-prize h3{font:400 clamp(24px,4vw,36px)/1.08 Newsreader,serif;letter-spacing:-.015em;margin:0;max-width:380px}
#scratch-cover{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}
.scratch-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;color:#542532}
.scratch-hint>span{font:400 clamp(30px,4vw,42px)/1.1 Newsreader,serif}.scratch-hint>small{font-size:12px}
.is-scratching .scratch-hint,.is-revealed .scratch-hint{display:none}
.scratch-note{font-size:13px;line-height:1.5;color:#e0d3c5;margin:0;align-self:center;max-width:440px;justify-self:center}
.bar-primary{min-height:48px;border:1px solid #f4f0e8;background:#f4f0e8;color:#542532;padding:12px 24px;font:600 14px/1.3 Manrope,sans-serif;cursor:pointer;width:min(100%,320px);justify-self:center}
.bar-primary:disabled{background:transparent;border-color:#f4f0e84a;color:#f4f0e8;cursor:default}
.bar-footnote{font-size:11px;line-height:1.45;color:#e0d3c5;text-align:center;margin:0}
.scratch-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:480px){.bar-game{padding:16px 20px}.bar-game[open]{gap:10px}.bar-close{top:16px;right:20px}.bar-heading{gap:12px}.bar-heading>span:last-child{font-size:10px}.scratch-story h2{font-size:36px;margin-bottom:10px}.scratch-play{gap:10px;grid-template-rows:auto minmax(0,1fr) 72px 48px}.scratch-note{font-size:12px}.scratch-prize{gap:10px;padding:18px}.scratch-icon{width:34px;height:34px}.bar-footnote{font-size:10px}}
@media(max-height:540px) and (min-width:600px){.bar-game{padding:12px 20px}.bar-game[open]{gap:8px}.bar-close{top:12px;right:20px}.scratch-play{width:min(100%,960px);grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 48px;column-gap:32px;row-gap:10px}.scratch-story{grid-column:1;grid-row:1;align-self:center}.scratch-story h2{font-size:38px}.scratch-stage{grid-column:2;grid-row:1}.scratch-note{grid-column:1;grid-row:2;font-size:11px}.bar-primary{grid-column:2;grid-row:2}.scratch-prize{gap:8px;padding:14px}.scratch-prize h3{font-size:28px}.scratch-icon{width:32px;height:32px}.bar-footnote{font-size:10px}}
@media(max-height:540px) and (max-width:599px){.bar-game{padding:12px 20px}.bar-game[open]{gap:8px}.bar-close{top:12px;right:20px}.scratch-play{gap:8px;grid-template-rows:auto minmax(0,1fr) 64px 44px}.scratch-story h2{font-size:30px;margin-bottom:6px}.scratch-story>p{font-size:11px}.scratch-note{font-size:11px}.scratch-prize{gap:6px;padding:12px}.scratch-prize>p{font-size:10px}.scratch-prize h3{font-size:23px}.scratch-icon{width:28px;height:28px}.bar-primary{min-height:44px;padding:10px 20px}.bar-footnote{font-size:10px}}
@media(prefers-reduced-motion:reduce){.scratch-ticket{scroll-behavior:auto}}

.game-mode{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px}
.game-mode-label{font-size:12px;color:#d3c7b8}.game-mode-label.is-active{color:#f4f0e8;font-weight:600}
.game-switch{position:relative;width:64px;height:44px;padding:0;background:transparent;flex:none;cursor:pointer}
.game-switch::before{content:"";position:absolute;left:8px;top:10px;width:48px;height:24px;border:1px solid #f4f0e85a;border-radius:14px;background:#f4f0e821}
.game-switch>span{position:absolute;left:12px;top:13px;width:18px;height:18px;border-radius:50%;background:#f4f0e8;transition:transform .18s ease}
.game-switch[aria-checked=true]::before{background:#f4f0e8}.game-switch[aria-checked=true]>span{transform:translateX(24px);background:#542532}
.beer-panel{min-height:0;width:min(100%,680px);display:grid;justify-self:center}
.beer-gate{width:min(100%,480px);align-self:center;justify-self:center}
.beer-gate h2,.beer-story h2{font:400 clamp(34px,5vw,56px)/1.04 Newsreader,serif;letter-spacing:-.025em;margin:0 0 12px}
.beer-gate>p,.beer-story>p{font-size:13px;line-height:1.55;color:#e0d3c5;margin:0}
.beer-age{display:flex;gap:12px;align-items:center;font-size:13px;margin:20px 0;cursor:pointer}.beer-age input{width:20px;height:20px;margin:0;accent-color:#d3c7b8;flex:none}
.beer-gate>.bar-primary:disabled{opacity:.45;cursor:not-allowed}
.beer-play{--die-size:clamp(44px,15dvh,112px);min-height:0;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) 100px 48px;gap:14px;text-align:center}
.beer-dice-stage{position:relative;min-height:0;display:grid;place-items:center;perspective:850px}
.beer-dice-tilt{position:relative;width:var(--die-size);height:var(--die-size);transform-style:preserve-3d;transform:rotateX(-18deg) rotateY(-24deg);z-index:1}
.beer-die{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.22,.7,.2,1)}
.beer-dice-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:18%;gap:7%;border:1px solid #cfc0ae;border-radius:10%;background:#f4f0e8;box-shadow:inset 0 0 22px #b6a28744;backface-visibility:hidden}
.beer-pip{width:100%;aspect-ratio:1;border-radius:50%;background:#542532;box-shadow:inset 0 2px 3px #28252555}
.beer-dice-face:nth-child(1){transform:translateZ(calc(var(--die-size)/2))}.beer-dice-face:nth-child(2){transform:rotateY(90deg) translateZ(calc(var(--die-size)/2))}.beer-dice-face:nth-child(3){transform:rotateX(90deg) translateZ(calc(var(--die-size)/2))}.beer-dice-face:nth-child(4){transform:rotateX(-90deg) translateZ(calc(var(--die-size)/2))}.beer-dice-face:nth-child(5){transform:rotateY(-90deg) translateZ(calc(var(--die-size)/2))}.beer-dice-face:nth-child(6){transform:rotateY(180deg) translateZ(calc(var(--die-size)/2))}
.beer-dice-shadow{position:absolute;top:calc(50% + var(--die-size)*.65);width:calc(var(--die-size)*1.2);height:14px;border-radius:50%;background:#28252560;filter:blur(8px)}
.beer-result{align-self:center;justify-self:center;max-width:380px;width:100%}.beer-result>p{font-size:12px;line-height:1.5;color:#e0d3c5;margin:0}.beer-result>p:first-child{margin-bottom:5px}.beer-result h3{font:400 clamp(27px,4vw,34px)/1.12 Newsreader,serif;margin:0 0 7px}
.is-reduced .beer-die{transition:none}
@media(max-width:480px){.scratch-prize{padding:14px;gap:8px}.scratch-icon{width:30px;height:30px}.beer-play{gap:10px}.beer-story h2,.beer-gate h2{font-size:36px;margin-bottom:10px}}
@media(max-height:540px) and (min-width:600px){.beer-panel{width:min(100%,960px)}.beer-play{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 88px;column-gap:32px;row-gap:10px}.beer-story{grid-column:1;grid-row:1;align-self:center}.beer-story h2{font-size:38px}.beer-dice-stage{grid-column:2;grid-row:1}.beer-result{grid-column:1;grid-row:2}.beer-play>.bar-primary{grid-column:2;grid-row:2;align-self:center}.beer-gate h2{font-size:36px}}
@media(max-height:540px) and (max-width:599px){.beer-play{gap:8px;grid-template-rows:auto minmax(0,1fr) 88px 44px}.beer-story h2,.beer-gate h2{font-size:30px;margin-bottom:6px}.beer-story>p,.beer-gate>p{font-size:11px}.beer-age{font-size:12px;margin:12px 0}.beer-result h3{font-size:27px}.beer-result>p{font-size:11px}}
@media(prefers-reduced-motion:reduce){.beer-die,.game-switch>span{transition:none}}

/* Open a real doorway, then move through its frame into the Franz-Runde. */
.round-doorway{position:fixed;inset:0;z-index:8;background:#281c23;display:none;overflow:hidden;perspective:900px;pointer-events:none}
.is-entering .round-doorway{display:block;animation:round-enter 1.4s ease-in both}
.round-room{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,#b29b6f 0%,#542532 50%,#281c23 90%);display:grid;place-items:center}
.round-room span{color:#f4f0e8;font:400 clamp(22px,4vw,36px)/1.2 Newsreader,serif;margin-top:10vh;width:min(44vw,240px);text-align:center}
.round-door-frame{position:absolute;width:min(58vw,320px);height:min(72dvh,570px);bottom:0;left:50%;translate:-50% 0;border:14px solid #d3c7b8;border-bottom:0;border-radius:160px 160px 0 0;background:transparent;box-shadow:0 0 0 200vmax #282525;transform-origin:50% 70%;transform-style:preserve-3d;animation:round-camera 1.4s cubic-bezier(.6,0,.3,1) both}
.round-door-leaf{position:absolute;inset:0;background:linear-gradient(95deg,#542532,#753d43);border:1px solid #b29b6f;border-radius:145px 145px 0 0;transform-origin:left center;backface-visibility:hidden;display:grid;place-items:center;animation:round-door-swing .85s cubic-bezier(.3,0,.2,1) both}
.round-door-leaf span{font:400 58px Newsreader,serif;color:#f4f0e8}.round-door-leaf i{position:absolute;right:18px;top:60%;width:9px;height:38px;border-radius:8px;background:linear-gradient(90deg,#917651,#dfc99f,#b29b6f);box-shadow:0 3px 5px #281c23}
.is-entering .bar-close{z-index:10}
.scratch-icon{width:clamp(38px,8dvh,64px);height:clamp(38px,8dvh,64px);overflow:visible}
.is-celebrating .scratch-prize{animation:prize-arrives .6s ease-out both}
.is-revealed .coffee-steam path{animation:coffee-rises 2.2s ease-in-out 3 both;transform-origin:center}
.is-revealed .coffee-steam path:nth-child(2){animation-delay:.3s}.is-revealed .coffee-steam path:nth-child(3){animation-delay:.6s}
.is-celebrating .prize-house path{stroke-dasharray:1;stroke-dashoffset:1;animation:prize-house-draw 1s ease-out forwards}
.is-celebrating .prize-house path:nth-child(2){animation-delay:.25s}.is-celebrating .prize-house path:nth-child(3){animation-delay:.65s}.is-celebrating .prize-house path:nth-child(4){animation-delay:.9s}
@keyframes round-door-swing{from{transform:rotateY(0deg)}to{transform:rotateY(-108deg)}}
@keyframes round-camera{0%,28%{transform:scale(.9)}100%{transform:scale(6)}}
@keyframes round-enter{0%,72%{opacity:1}100%{opacity:0}}
@keyframes prize-arrives{from{transform:scale(.95);opacity:.25}to{transform:scale(1);opacity:1}}
@keyframes coffee-rises{0%{opacity:0;transform:translateY(4px)}25%,55%{opacity:.8}100%{opacity:0;transform:translateY(-10px)}}
@keyframes prize-house-draw{to{stroke-dashoffset:0}}
@media(max-height:540px){.scratch-icon{width:30px;height:30px}.round-room span{font-size:24px}}
.is-reduced .round-doorway{display:none}.is-reduced .scratch-prize,.is-reduced .coffee-steam path,.is-reduced .prize-house path{animation:none;stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.round-doorway{display:none!important}.scratch-prize,.coffee-steam path,.prize-house path{animation:none!important;stroke-dashoffset:0}}
