
.selfie-active :is(#hud, #ver, #status, #tunnel-actions, #wish-actions, #tasting-btn, #selfie-btn, #toast, #wish-tip, .game-promo-launch) { visibility: hidden; }
body.selfie-active #toast, body.selfie-active .game-home-link, body.selfie-active #tunnel-exit { display: none; }



#wish-receipt { box-sizing: border-box; width: min(420px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 30px; background: #faf2e2; color: #3c291c; border: 1px solid #cbb28d; border-radius: 20px; }
#wish-receipt::backdrop { background: #120a06b3; }.wish-receipt-kicker { font-size: var(--font-size-small); letter-spacing: 2px; color: #8a613c; margin: 0 0 14px; }#wish-receipt h2 { font: 29px var(--font-ui); margin: 0 0 12px; }.wish-receipt-copy { font-size:var(--font-size-base); color: #83694e; line-height: 1.8; word-break: keep-all; }
.wish-receipt-paper { margin: 24px 0; padding: 25px 22px; border: 2px solid #c99a2e; background: #fff3c8; transform: rotate(-2deg); box-shadow: 3px 5px 0 #b9872120; }.wish-receipt-paper p { font-size: 19px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; margin: 0 0 14px; }.wish-receipt-paper span { display: block; text-align: right; color: #83694e; font-size: var(--font-size-small); }
#wish-stamp-status { margin: 0 0 14px; padding: 12px 14px; border: 1px solid #d6a59a; border-radius: 10px; background: #fff1eb; color: #8b302c; font-size: var(--font-size-small); line-height: 1.65; overflow-wrap: anywhere; }
#wish-receipt .btn { width: 100%; margin-top: 9px; }#wish-receipt .btn.ghost { color: #735134; border-color: #c8b391; }#wish-receipt button:focus-visible { outline: 3px solid #a75c23; outline-offset: 4px; }
@media (max-width: 560px) {  }
#selfie-mode { position:fixed; inset:0; z-index:10; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) 340px; grid-template-rows:auto minmax(0,1fr); align-items:center; gap:20px; padding:24px; color:#fff3dc; }
.selfie-top { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.selfie-top h2 { margin:0; font:600 23px/1.4 var(--font-ui); }.selfie-top p { margin:6px 0 0; color:#d1bea2; font-size:var(--font-size-small); }
#selfie-exit { flex-shrink:0; min-height:44px; background:#281b12; border:1px solid #bba078; color:#fff3dc; border-radius:999px; padding:11px 16px; font-size:var(--font-size-small); cursor:pointer; }
.selfie-view { min-width:0; min-height:0; height:100%; display:grid; place-items:center; container-type:size; pointer-events:none; }
.selfie-frame { position:relative; width:min(100cqw,calc(100cqh * 1.333333)); aspect-ratio:4/3; box-sizing:border-box; border:1px solid #ffeacb80; pointer-events:auto; touch-action:none; cursor:grab; }
.selfie-frame:active { cursor:grabbing; }.selfie-frame:focus-visible { outline:3px solid #ff7a28; outline-offset:4px; }
.selfie-frame::before,.selfie-frame::after { content:''; position:absolute; width:24px; height:24px; border-color:#ffeacb; border-style:solid; pointer-events:none; }.selfie-frame::before { top:-1px; left:-1px; border-width:2px 0 0 2px; }.selfie-frame::after { bottom:-1px; right:-1px; border-width:0 2px 2px 0; }
.selfie-grid { position:absolute; inset:0; pointer-events:none; opacity:.45; background:linear-gradient(90deg,transparent calc(33.333% - .5px),#fff6 calc(33.333% - .5px),#fff6 calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#fff6 calc(66.666% - .5px),#fff6 calc(66.666% + .5px),transparent calc(66.666% + .5px)),linear-gradient(0deg,transparent calc(33.333% - .5px),#fff6 calc(33.333% - .5px),#fff6 calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.666% - .5px),#fff6 calc(66.666% - .5px),#fff6 calc(66.666% + .5px),transparent calc(66.666% + .5px)); }
#selfie-countdown { position:absolute; inset:0; display:grid; place-items:center; pointer-events:none; font:100px var(--font-ui); color:#fff3dc; text-shadow:0 4px 30px #000; z-index:1; }
.selfie-controls { min-height:0; box-sizing:border-box; display:flex; flex-direction:column; max-height:100%; overflow:hidden; border:1px solid #a78b625c; border-radius:20px; padding:18px; background:#21170ff5; box-shadow:0 8px 35px #0006; }
.selfie-controls>:not(#selfie-settings) { flex-shrink:0; }
.selfie-drag-modes { display:flex; gap:4px; }.selfie-drag-modes button { flex:1; min-height:44px; padding:7px 5px; border:1px solid #846444; border-radius:8px; background:transparent; color:#f1dfc1; font-size:var(--font-size-small); cursor:pointer; }.selfie-drag-modes [aria-pressed="true"] { background:#ff7a28; border-color:#ff7a28; color:#2b160a; font-weight:600; }
#luge-photo-party { margin:8px 0; }
.luge-photo-party-label { margin:0 0 6px; font-size:var(--font-size-small); color:#dbc9ad; }
#luge-photo-party-status { margin:7px 0 0; font-size:var(--font-size-small); line-height:1.55; color:#e8ceaa; overflow-wrap:anywhere; }
.selfie-controls:has(#luge-photo-party) { overflow-y:auto; overscroll-behavior:contain; }
@media(max-width:800px) and (min-height:501px),(max-width:500px) { #selfie-mode .selfie-controls:has(#luge-photo-party) { max-height:60dvh; } }
#selfie-drag-hint { margin:10px 0 4px; color:#d1bea2; font-size:var(--font-size-small); line-height:1.65; word-break:keep-all; }
#selfie-settings { flex:0 1 auto; min-height:44px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; margin-bottom:12px; border-bottom:1px solid #876c4a66; }#selfie-settings summary { position:sticky; top:0; z-index:1; min-height:44px; display:list-item; align-content:center; cursor:pointer; background:#21170f; color:#e8ceaa; font-size:var(--font-size-small); }
.selfie-sliders { display:grid; grid-template-columns:1fr 1fr; gap:4px 18px; }.selfie-sliders label { min-width:0; font-size:var(--font-size-small); color:#dbc9ad; }.selfie-sliders output { float:right; color:#ffbf87; font-variant-numeric:tabular-nums; }.selfie-sliders input { width:100%; min-height:28px; margin:5px 0; accent-color:#ff7a28; }
.selfie-poses { display:flex; gap:6px; justify-content:center; margin:6px 0 8px; }.selfie-poses button { flex:1; min-height:40px; border:1px solid #876c4a; border-radius:999px; padding:7px; color:#e3ceb0; background:transparent; font-size:var(--font-size-small); cursor:pointer; }.selfie-poses [aria-pressed="true"] { color:#281b10; background:#e7c693; border-color:#e7c693; }
.selfie-poses [hidden] { display:none!important; }
.selfie-facing { display:flex; align-items:center; gap:6px; min-height:36px; margin-bottom:10px; color:#dbc9ad; font-size:var(--font-size-small); }.selfie-facing input,.selfie-timer input { width:16px; height:16px; accent-color:#ff7a28; vertical-align:middle; }
#selfie-boundary { position:absolute; bottom:10px; left:10px; right:10px; z-index:1; margin:0; padding:8px 10px; border:1px solid #b6785c77; border-radius:8px; background:#21170fe8; color:#ffe1c8; pointer-events:none; font-size:var(--font-size-small); line-height:1.6; }
.selfie-capture-row { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; }.selfie-timer { font-size:var(--font-size-small); color:#dbc9ad; }
#selfie-shutter { width: 62px; height: 62px; border-radius: 50%; border: 3px solid #fff4dd; background: #fff4dd; box-shadow: inset 0 0 0 5px #362519; cursor: pointer; color: #362519; font-size: var(--font-size-small); font-weight: 700; }
#selfie-shutter:disabled { opacity: .5; cursor: wait; }.selfie-photo-hint { font-size: var(--font-size-small); color: #bca98e; text-align: right; line-height: 1.7; }
#selfie-status { text-align: center; font-size: var(--font-size-small); line-height: 1.5; color: #d7c09d; min-height: 17px; margin: 12px 0 0; }
#selfie-mode :is(button,input,summary):focus-visible, #selfie-preview :is(button, a):focus-visible { outline: 3px solid #ff7a28; outline-offset: 3px; }
#selfie-mode button:disabled { cursor:default; opacity:.5; }
#selfie-preview { box-sizing: border-box; width: min(820px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); padding: 24px; border: 1px solid #cbb28d; border-radius: 18px; background: #faf2e2; color: #3c291c; overflow-y: auto; }
#selfie-preview::backdrop { background: #0b0705d9; }#selfie-preview h2 { margin: 0 0 6px; font: 26px var(--font-ui); }#selfie-preview p { font-size: var(--font-size-small); color: #80694e; margin: 0 0 18px; }
#selfie-photo { display: block; width: 100%; max-height: 62dvh; object-fit: contain; background: #24170d; }
.selfie-preview-actions { display: flex; gap: 8px; margin-top: 18px; flex-wrap: wrap; }.selfie-preview-actions :is(a, button) { box-sizing: border-box; border: 1px solid #9b7c55; border-radius: 9px; padding: 12px 17px; font: inherit; font-size: var(--font-size-small); text-decoration: none; cursor: pointer; background: transparent; color: #5d412a; }.selfie-preview-actions a { background: #5d3821; color: #fff2d8; border-color: #5d3821; margin-left: auto; }#selfie-preview #selfie-save-status { margin: 10px 0 0; min-height: 17px; }
@media(max-width:800px) and (min-height:501px),(max-width:500px) { #selfie-mode { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(100px,1fr) auto; gap:12px; padding:14px 16px; }.selfie-top { grid-column:auto; }.selfie-top h2 { font-size:20px; }.selfie-top p { max-width:220px; }.selfie-controls { max-height:46dvh; padding:14px; border-radius:16px; }.selfie-poses button { padding:7px; } }
@media(max-width:800px) and (min-height:501px) and (max-height:700px),(max-width:500px) and (max-height:700px) { #selfie-mode { gap:10px; padding:12px 16px; }.selfie-top p { display:none; }.selfie-controls:has(#selfie-settings[open]) { max-height:60dvh; } }
@media(max-height:580px) and (min-width:501px) { #selfie-mode { padding:12px 16px; gap:12px; grid-template-columns:minmax(0,1fr) 300px; }.selfie-top p { margin:2px 0 0; }.selfie-top h2 { font-size:20px; }.selfie-controls { padding:12px; } }
@media(max-width:560px) { #selfie-preview { padding:18px; }.selfie-preview-actions :is(a,button) { flex:1; text-align:center; padding:11px 9px; font-size:var(--font-size-small); } }
