/* A paper invitation over the live pier, and a small rail for each activity. */
.mode-3d:has(#welcome:not([hidden])) #main::before,.mode-3d:has(#welcome:not([hidden])) #main::after{content:none!important;background:none!important;animation:none!important}
.welcome{box-sizing:border-box;left:clamp(22px,7vw,112px);top:50%;right:auto;transform:translateY(-50%);width:min(390px,calc(100vw - 44px));padding:32px 34px 28px;background:#fbf2e5ed;color:#4d302d;border:1px solid #dfc4ad;border-radius:3px;box-shadow:0 3px 0 #a9746c40,0 18px 45px #4d302d26}
.welcome.entered{transform:translateY(calc(-50% - 12px));opacity:0}.welcome h1{color:#633943;font-size:clamp(54px,6vw,76px);line-height:.95;margin:20px 0;letter-spacing:-.04em;text-shadow:none}.welcome .pier-eyebrow{color:#a65263;font-size:10px;letter-spacing:.19em}.welcome>p:not(.pier-eyebrow):not(.loading-note){color:#624a42;text-shadow:none;font-size:15px;line-height:1.55}.welcome .sound-choice,.welcome .loading-note{color:#715951}.welcome .date-primary{box-shadow:none}
.settings{position:relative;color:#fff9ee}.settings summary{cursor:pointer;list-style:none;font-size:12px;padding:12px}.settings summary::-webkit-details-marker{display:none}.settings[open] #quality{position:absolute;right:0;top:100%;width:max-content;background:#fff7e9;color:#563c36}
.room-hud,.room-hud.observatory-hud,.room-hud.cake-hud,.room-hud.hoop-hud{left:clamp(14px,3vw,40px);right:auto;bottom:max(18px,env(safe-area-inset-bottom));transform:none;width:min(390px,calc(100% - 28px));max-width:none;padding:15px 18px;background:#fbf2e9ed;border:1px solid #d6b6a6;border-radius:4px;box-shadow:0 5px 24px #3b292328}
.room-hud h2,.room-hud:not(.observatory-hud) h2{font-size:21px;line-height:1.15;margin:0;color:#513536!important}.room-hud .pier-eyebrow{font-size:9px;letter-spacing:.12em;margin:0 0 4px}.room-hud p.room-copy,.room-hud:not(.observatory-hud) p.room-copy,.observatory-hud #tour-caption{font:400 13px/1.45 var(--body);margin:8px 0;color:#674e47!important}.room-hud .hud-actions{margin-top:9px;gap:7px}.room-hud .hud-actions button,.room-hud .date-primary{min-height:38px;padding:8px 13px}.room-hud .tour-credit{margin:6px 0}.room-hud .hoop-scoreboard{margin-top:8px}.room-hud .hoop-adjust{display:block;margin:8px 0}.hoop-adjust summary{cursor:pointer;font-size:12px;color:#754a4b}.hoop-adjust label{display:flex;margin-top:8px;gap:8px;align-items:center}.room-hud .throw-dots{position:static;margin-top:8px}.room-hud .hoop-scoreboard span:last-child{display:none}
.places-menu button.visited::after{content:'Visited';font-size:9px;letter-spacing:.05em;color:#926d61;margin-left:auto}.places-menu button.visited i{margin-left:8px}
.photo-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.photo-slots span{display:grid;place-items:center;aspect-ratio:1.45;background:#eadacf;color:#8d6b60;font-size:11px;overflow:hidden}.photo-slots img{width:100%;height:100%;object-fit:contain}.duet-preview img,.duet-preview video{object-fit:contain;background:#e9ded1}.duet-instructions h3{font-size:21px}.duet-instructions p{font-size:13px;line-height:1.45}
@media(max-width:700px){.welcome{left:18px;top:auto;bottom:max(24px,env(safe-area-inset-bottom));transform:none;width:min(330px,calc(100vw - 36px));padding:22px 24px}.welcome.entered{transform:translateY(-10px)}.welcome h1{font-size:50px;margin:12px 0}.welcome>p:not(.pier-eyebrow):not(.loading-note){margin-bottom:12px}.room-hud,.room-hud.observatory-hud,.room-hud.cake-hud,.room-hud.hoop-hud{bottom:max(12px,env(safe-area-inset-bottom));max-height:48dvh;overflow:auto}.duet-preview{height:180px}.duet-layout{gap:10px}.photo-slots{margin-top:5px}}

.settings summary{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:10px 16px;border:1px solid #e5a0b5;border-radius:999px;background:#fff8f0ed;color:#65384b;font-size:11px}.settings summary:focus-visible{outline:3px solid #b34872;outline-offset:3px}

.welcome{background:#fbf2e5}
@media(max-width:700px){.room-hud.hoop-hud{padding:12px 14px}.hoop-hud .room-heading-row>div{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.hoop-hud #leave-room{position:absolute;right:10px;top:8px;z-index:2;width:34px;height:34px;min-height:34px}.hoop-hud #room-body{display:grid;grid-template-columns:1fr auto;gap:6px 12px}.hoop-hud .hoop-scoreboard{grid-column:1/-1;margin:0;padding-right:40px}.hoop-hud #game-message{grid-column:1/-1;font-size:12px!important;line-height:1.4!important;margin:0!important}.hoop-hud .hoop-adjust{margin:0;align-self:center}.hoop-hud .hoop-adjust[open]{grid-column:1/-1}.hoop-hud #throw{grid-column:2;justify-self:end;align-self:start}.hoop-hud .throw-dots{display:none}}

.photo-room-3d .scene-header{padding:24px 32px 18px}.photo-room-3d .scene-header h2{font-size:30px;margin:8px 0 0}.photo-room-3d .scene-header>p:empty{display:none}.photo-room-3d .duet-instructions p{font-size:14px;line-height:1.55;margin:0 0 16px}.photo-room-3d .scene-bottom{padding:8px 24px 16px}.photo-room-3d .scene-bottom .text-button{display:none}.photo-room-3d .fine-print{margin:10px 0}.photo-room-3d .duet-layout{padding-bottom:0}
/* Invitation question: a compact, keyboard-friendly paper form. */
#date-gate{margin-top:16px}#date-gate label{display:block;color:#563b36;font-size:13px;font-weight:600;margin-bottom:7px}.gate-input-row{display:flex;gap:7px}.nickname-slots{display:flex;align-items:center;gap:5px}.nickname-slots span,.gate-input-row .nickname-slots input{box-sizing:border-box;width:27px;height:40px;padding:0;border:0;border-bottom:1px solid #a67b70;border-radius:0;background:transparent;color:#4d302d;font:inherit;font-size:20px;font-weight:600;text-align:center;text-transform:uppercase}.nickname-slots span{display:grid;place-items:center}.gate-input-row .nickname-slots input:focus{outline:none;border-bottom:2px solid #a64d60}.gate-input-row button{border:1px solid #a64d60;border-radius:3px;background:#a64d60;color:#fffaf3;padding:9px 12px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}#gate-feedback{color:#8c4650;font-size:12px;min-height:0;margin:6px 0 0}#gate-feedback:empty{display:none}.gate-hint{font-size:12px!important;margin:7px 0 13px!important;color:#896b5d!important}.sweet-line{font-size:14px!important;color:#633943!important;line-height:1.4!important;margin:10px 0 15px!important}.welcome [hidden]{display:none!important}
@media(max-width:700px){.welcome{max-height:calc(100dvh - 100px);overflow-y:auto}.welcome h1{font-size:clamp(40px,12vw,50px)}#date-gate{margin-top:10px}.gate-input-row button{min-height:42px}}
#date-gate[hidden] + #nickname-hint{display:none}

/* Small physical choices, kept out of the walking view until requested. */
.caption-setting{display:flex;align-items:center;gap:8px;padding:10px 2px;font:12px 'DM Sans',sans-serif;color:#704953;white-space:nowrap}.caption-setting input{accent-color:#ab486a}
.carry-tools{position:absolute;right:24px;bottom:100px;display:flex;gap:8px;pointer-events:auto}.carry-tools button{font-size:12px}.carry-tools [hidden]{display:none!important}
.icecream-menu{position:fixed;z-index:55;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 36px));padding:30px;background:#fff6e8;color:#66424e;border:1px solid #e4c6c4;box-shadow:0 18px 65px #58374625}.icecream-menu[hidden]{display:none}.icecream-menu>button{float:right}.icecream-menu h2{font:500 27px Fraunces,Georgia,serif;clear:both;margin:12px 0 25px}.flavour-choices{display:flex;gap:12px}.flavour-choices button{flex:1;border:0;border-bottom:1px solid #d6b4b8;background:transparent;padding:10px 2px;color:inherit;font:12px 'DM Sans',sans-serif;cursor:pointer}.flavour-choices button:hover{background:#f6e3df}.scoop{display:block;width:42px;height:42px;border-radius:50%;margin:0 auto 10px;box-shadow:inset -5px -4px 0 #00000008}.strawberry{background:#e8a0b1}.vanilla{background:#f2dfb6}.mint{background:#b8d8c4}
@media(max-width:700px){.carry-tools{right:16px;bottom:158px;flex-direction:column;align-items:end}.carry-tools button{padding:10px 13px}}

/* Keep the printable-photo instructions inset on narrow phone screens. */
.photo-room-3d .duet-result .fine-print{padding-inline:16px;max-width:42rem;margin-inline:auto}
