@import url('./fonts.css');
:root{--cream:#fff5e5;--ink:#624b4e;--rose:#ac566a;--pink:#ce7b8e;--soft:#f6e5d1;--line:#debfaa;--mint:#a8c5b3;--navy:#343e59;--display:'Fraunces',Georgia,serif;--body:'DM Sans','Avenir Next',system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#fae9d6;color:var(--ink);font-family:var(--body);font-size:14px}body{overflow-x:hidden}button,input,textarea,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #7d9398;outline-offset:5px}a{color:inherit}button svg{display:block;width:100%}[hidden]{display:none!important}.topbar{height:94px;padding:0 4.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcbfab66;position:relative;z-index:3;background:#faecdb}.brand{text-decoration:none;display:flex;gap:12px;align-items:center;letter-spacing:2.5px;font-family:var(--display);font-size:21px;font-weight:600}.brand small{font-family:var(--body);display:block;font-size:8px;letter-spacing:2.4px;margin-top:5px;font-weight:600}.brand-spark{font-size:41px;color:#bd7580;font-weight:400;line-height:1}.ticket-label{font-size:10px;letter-spacing:2px;color:#8a706b}.ticket-label span{padding:0 13px;color:#ba7c7f}.sound-button{border:1px solid #d8baa5;background:#fff5e433;border-radius:30px;padding:11px 17px;display:flex;align-items:center;gap:9px;font-size:11px;font-weight:600;min-height:42px}.sound-button[aria-pressed=true]{background:#eee4ce;border-color:#b7b59d}#sound-icon{font-size:17px;color:#aa5d70}.world-heading{position:absolute;z-index:2;top:40px;left:5.8%;pointer-events:none;transition:opacity .6s}.world-heading button,.world-heading label{pointer-events:auto}.eyebrow{font-size:9px;font-weight:650;letter-spacing:2.8px;display:flex;align-items:center;gap:9px}.eyebrow span{width:6px;height:6px;border-radius:50%;background:#bb7280}.world-heading h1{font-family:var(--display);font-size:clamp(48px,4.5vw,73px);font-weight:500;letter-spacing:-2.8px;line-height:1.03;margin:19px 0 20px}.world-heading h1 em{color:#b85e77;font-weight:500}.intro-copy{font-size:12px;line-height:1.8;color:#8b6863}.primary{border:0;border-radius:7px;background:var(--rose);color:#fff4e5;font-size:12px;letter-spacing:.2px;padding:14px 23px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:29px;box-shadow:0 4px 0 #743a5012;transition:transform .2s,background .2s}.primary:hover{background:#98465e;transform:translateY(-2px)}.primary span{font-size:19px}.primary:disabled:hover{transform:none}.secondary{border:1px solid #cfb4a1;background:transparent;border-radius:7px;padding:12px 18px;min-height:44px;font-size:12px}.secondary:hover{background:#d4a88a14}.text-button{background:none;border:0;padding:12px 10px;font-size:12px;text-decoration:underline;text-underline-offset:4px;min-height:44px}.sound-opt{font-size:10px;display:flex;align-items:center;gap:6px;margin-top:18px;color:#795e5c}.sound-opt span{color:#a18678;font-size:9px}.sound-opt input{accent-color:var(--rose);width:13px;height:13px;margin:0}.explore-copy{font-size:12px;color:#896a65;line-height:1.8}.entered .world-heading{top:35px}.entered .world-heading h1{font-size:46px}.entered .intro-copy{display:none}#carnival{position:relative;isolation:isolate}.world-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;width:100%;overscroll-behavior-x:contain;scroll-behavior:smooth;touch-action:pan-x pan-y}.world-scroll::-webkit-scrollbar{display:none}.world-stage{position:relative;width:max(1600px,100%);height:max(670px,calc(100dvh - 163px));max-height:900px;background:#f7dfc6;overflow:hidden}.landscape-svg{position:absolute;inset:0;width:100%;height:100%}.night-sky{transition:opacity 3s}.sun{transition:transform 3s}.sky-stars{opacity:0;transition:opacity 3s}.attractions{position:absolute;inset:0}.attraction{position:absolute;border:0;background:none;padding:0;width:18%;height:46%;top:41.5%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;filter:drop-shadow(0 8px 3px #9e746511);transition:transform .3s}.attraction:hover{transform:translateY(-8px)}.attraction:focus-visible{outline-offset:2px;border-radius:22px}.building{position:absolute;width:100%;bottom:53px}.building svg{width:100%;height:auto}.photo-spot{left:10.3%;width:17.2%}.music-spot{left:28.3%;width:19.5%;top:42.5%}.hoop-spot{left:48.5%;width:19.8%;top:44%}.stars-spot{left:70.3%;width:18.5%;top:42%}.spot-label{position:relative;display:block;background:#fff1dadd;border:1px solid #d7b296b0;border-radius:5px;padding:11px 16px 10px;min-width:170px;box-shadow:0 4px 0 #ad7b6410;transition:background .3s;z-index:1}.spot-label:before,.spot-label:after{content:'';position:absolute;width:1px;height:16px;background:#b38b74;top:-16px;left:20px}.spot-label:after{left:auto;right:20px}.spot-label small{font-size:6.7px;letter-spacing:1.4px;font-weight:600;color:#a48574;display:block;margin-bottom:5px}.spot-label strong{font-family:var(--display);font-size:17px;font-weight:500;display:block}.spot-label i{font-style:normal;color:#ac6975;margin-left:9px;font-size:16px}.visit-light{position:absolute;right:11%;top:7%;width:28px;height:28px;background:#fff0bd;border:1px solid #dbc596;border-radius:50%;display:grid;place-items:center;color:#b57578;opacity:0;box-shadow:0 0 25px #ffefa3;transition:opacity 1s}.attraction.visited .visit-light{opacity:1}.attraction.visited .spot-label{background:#fff1cc}.attractions[inert] .attraction{filter:saturate(.85)}.pier-spot{position:absolute;right:.8%;top:68%;width:12%;min-height:90px;background:transparent;border:0;transform:rotate(-7deg);padding:5px}.pier-sign{background:#b68c76;color:#fff1d4;display:block;padding:14px 9px;font-size:9px;letter-spacing:1.5px;border:2px solid #f3dfb9;box-shadow:2px 4px 0 #ac7c64}.pier-sign span{display:block;font-size:19px;margin-top:5px}.pier-spot>span+span{display:block;font-size:10px;color:#987561;margin-top:13px}.pier-spot.unlocked .pier-sign{background:#8b927b;box-shadow:0 0 35px #ffe8b3}.pier-path{opacity:.16;transition:opacity 2s}.pier-ready .pier-path{opacity:1;filter:drop-shadow(0 0 5px #ffffd5)}.boardwalk-caption{position:absolute;bottom:3.5%;left:42%;font-size:8px;letter-spacing:4px;color:#b39480}.world-footer{height:69px;background:#f8ead7;border-top:1px solid #dcbfab66;display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;position:relative;z-index:2}.world-footer p{font-size:10px;color:#927368;letter-spacing:.1px;display:flex;align-items:center;gap:11px;max-width:55%;line-height:1.6}.little-star{color:#b9757f;font-size:17px}.world-navigation{display:flex;align-items:center;gap:16px}.world-navigation>span{font-size:8px;letter-spacing:2px;color:#94796d}.round{border:1px solid #d8bba7;background:#fff1dc66;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:17px}.round:hover{background:#f0d7be}.companion{position:absolute;bottom:77px;left:20px;border:0;background:#fff0d5dd;border-radius:50%;width:70px;height:70px;box-shadow:0 4px 20px #75584521}.companion svg{width:60px;height:60px;animation:bob 4s ease-in-out infinite}.balloon-egg{position:absolute;left:80.6%;top:47%;width:40px;height:60px;background:transparent;border:0;font-size:25px;color:#fff3d5;animation:bob 5s infinite}.bulb{animation:bulb-glow 4s ease-in-out infinite}.wheel-rotor{animation:wheel-turn 100s linear infinite}.gondola{animation:cabin-turn 100s linear infinite;transform-origin:0 0}.cloud{animation:cloud-drift 35s ease-in-out infinite}.waves{animation:waves 8s ease-in-out infinite}.gulls{animation:gull-glide 16s ease-in-out infinite}.balloons{animation:balloon-sway 5s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom}.twinkle{animation:twinkle 4s ease-in-out infinite}.teddy-body{transform-origin:center bottom;animation:teddy-breathe 4s ease-in-out infinite}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,20px);background:#fff3de;color:#6c5051;padding:14px 22px;border:1px solid #d7baa1;border-radius:8px;box-shadow:0 10px 40px #53405622;z-index:30;max-width:calc(100% - 36px);width:max-content;font-size:12px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Each attraction is a room in the same little world. */
dialog{border:1px solid #d5b79f;border-radius:20px;padding:0;background:var(--cream);color:var(--ink);width:min(940px,calc(100% - 44px));max-height:calc(100dvh - 44px);overflow:auto;box-shadow:0 25px 130px #493b4e40}dialog::backdrop{background:#4e435e66;backdrop-filter:blur(6px)}dialog[open]{animation:room-in .3s ease-out}#scene-content{position:relative}.scene-top{display:flex;align-items:center;justify-content:space-between;padding:22px 28px 0;gap:12px}.scene-tag{font-size:8px;letter-spacing:2px;display:flex;align-items:center;gap:9px;font-weight:600}.scene-tag:before{content:'✦';font-size:14px;color:#c08684}.close{width:37px;height:37px;border:1px solid #d4bca7;border-radius:50%;background:transparent;font-size:21px;display:grid;place-items:center;flex-shrink:0}.close:hover{background:#eacfb955}.scene-header{text-align:center;padding:6px 20px 20px}.scene-header h2{font-family:var(--display);font-weight:500;font-size:42px;letter-spacing:-1.4px;margin:8px 0 10px}.scene-header p{font-size:12px;line-height:1.8;color:#917568;margin:0}.scene-actions{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:22px}.fine-print{font-size:10px;line-height:1.8;color:#987c71}.scene-bottom{padding:0 20px 20px;text-align:center}.room-dark{background:#354159;color:#ffefd3;border-color:#8b8295}.room-dark .scene-header p,.room-dark .fine-print{color:#c3b3b5}.room-dark .close{border-color:#8b819566;color:#ffefd3}.room-dark .secondary{color:#f4e1c7;border-color:#9f8a9166}.room-dark .scene-tag{color:#e5c6b3}.room-dark .scene-tag:before{color:#e4bf85}.room-dark .primary{background:#ddad9d;color:#443d51}.room-dark .primary:hover{background:#e6c1ac}.room-dark .text-button{color:#edd4c1}.room-dark .round{background:#6d617433;border-color:#9a879266;color:#ffe8c7}.room-photo{background:#f9e9d5}.photo-layout{display:grid;grid-template-columns:1fr 250px;gap:28px;padding:0 35px 12px;align-items:center}.camera-wrap{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#dcc4ba;border:8px solid #fff4df;box-shadow:0 4px 20px #64475114}.camera-wrap video,.camera-wrap .gallery-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-wrap video{transform:scaleX(-1)}.camera-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 70% 30%,#e6c2c0,#c5b9bb);position:relative}.camera-placeholder:before{content:'';width:100px;height:100px;border:1px solid #fff0db66;border-radius:50%;position:absolute;top:15%}.camera-placeholder span{font-family:var(--display);font-size:35px;color:#fff0db;z-index:1}.camera-placeholder small{font-size:9px;letter-spacing:2px;color:#fff0dba6;margin-top:10px}.pose-overlay{position:absolute;right:-2%;bottom:0;width:43%;height:89%;object-fit:contain;object-position:bottom;pointer-events:none;filter:drop-shadow(-3px 0 0 #fff0d9aa)}.standin-preview{position:absolute;right:-6%;bottom:-10%;width:55%;pointer-events:none}.countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:100px;color:#fff6e4;text-shadow:0 3px 15px #67445688;z-index:4;background:#59495622}.capture-flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none;z-index:5}.capture-flash.flash{animation:flash .3s ease-out}.photo-instructions h3{font-family:var(--display);font-size:26px;font-weight:500;line-height:1.2;margin:0 0 13px}.photo-instructions p{font-size:11px;line-height:1.8;color:#98776c}.photo-instructions .primary,.photo-instructions .secondary{width:100%;margin-top:8px}.upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.upload-label input{position:absolute;width:1px;height:1px;opacity:0}.shot-dots{display:flex;justify-content:center;gap:12px;margin:15px 0}.shot-dots span{width:8px;height:8px;border-radius:50%;background:#d8c0ae}.shot-dots span.taken{background:#ba6e85;box-shadow:0 0 0 3px #e8bfae55}.photo-result{display:flex;flex-direction:column;align-items:center;padding-bottom:10px}.photo-strip{width:180px;max-height:47dvh;object-fit:contain;filter:drop-shadow(2px 7px 7px #77534922);transform:rotate(-3deg);border-radius:1px}.photo-result .scene-actions{padding-bottom:9px}.camera-error{min-height:18px;font-size:10px;color:#a2596b;line-height:1.6}.music-stage{min-height:260px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 120%,#aa788366,transparent 65%)}.music-stage:before,.music-stage:after{content:'';position:absolute;top:-60px;width:27%;height:340px;background:repeating-linear-gradient(90deg,#80596e,#9d6477 30px,#80596e 65px);border-radius:0 0 70% 0;left:-5%;transform:rotate(8deg);box-shadow:6px 5px 20px #202e4522}.music-stage:after{left:auto;right:-5%;transform:scaleX(-1) rotate(8deg)}.concert-moon{position:absolute;top:26px;left:calc(50% - 26px);font-size:40px;color:#f0d4a9}.lyrics{max-width:60%;text-align:center;font-family:var(--display);font-size:29px;line-height:1.35;position:relative;z-index:1;transition:opacity .2s;padding-top:40px}.lyrics small{font-family:var(--body);font-size:9px;color:#c5adad;display:block;margin-top:17px;letter-spacing:2px}.equalizer{position:absolute;bottom:16px;display:flex;gap:5px;align-items:center;height:25px}.equalizer span{height:6px;width:3px;border-radius:3px;background:#d8b0a3}.playing .equalizer span{animation:eq .8s ease-in-out infinite alternate}.equalizer span:nth-child(2){animation-delay:-.3s}.equalizer span:nth-child(3){animation-delay:-.6s}.equalizer span:nth-child(4){animation-delay:-.2s}.equalizer span:nth-child(5){animation-delay:-.5s}.audio-timeline{max-width:420px;margin:16px auto 0;display:flex;align-items:center;gap:12px;font-size:9px;color:#bca8ac;padding:0 20px;font-variant-numeric:tabular-nums}.track-line{height:2px;background:#8b7e9133;flex:1}.track-line span{display:block;height:2px;width:0;background:#e7bc9f;transition:width .15s linear}.concert-review{text-align:center;padding:0 20px 15px}.concert-review p{font-family:var(--display);font-size:21px;line-height:1.4}.recording-note{text-align:center;font-size:9px;letter-spacing:.5px;color:#b39ea6;margin-top:0}.game-stage{height:310px;max-width:650px;margin:auto;position:relative;overflow:hidden;background:linear-gradient(#d2dec3,#afc4aa 77%,#d1aa87 77%,#f3d6b2 83%,#c38c77 84%,#dba78b);border:1px solid #b8b698;border-radius:12px;touch-action:manipulation}.game-bunting{height:40px;background:repeating-linear-gradient(100deg,#f4e7c6 0 50px,#b0c2a6 50px 100px);border-bottom:10px dotted #f7e6bf;position:absolute;inset:0 0 auto}.bottle-row{position:absolute;left:9%;right:9%;top:85px;height:160px;display:flex;align-items:flex-end;justify-content:space-between}.bottle-target{position:relative;background:none;border:0;width:30%;padding:0;transition:transform .2s}.bottle-target:hover{transform:translateY(-4px)}.bottle-target svg{width:100%;height:150px}.bottle-target:after{content:'TAP TO AIM';position:absolute;left:0;right:0;bottom:-9px;font-size:6px;letter-spacing:1.5px;color:#70584d}.bottle-target.selected:before{content:'';position:absolute;left:20%;right:20%;height:12px;bottom:15px;border:2px dashed #fff1bd;border-radius:50%}.ring{position:absolute;width:86px;height:27px;border:6px solid #fae5ae;border-radius:50%;box-shadow:0 2px 0 #a86c5e,inset 0 2px 0 #b6846d;bottom:17px;left:calc(50% - 43px);transform:rotate(-12deg);pointer-events:none;z-index:2;transition:none}.ring.throwing{animation:ring-toss .85s cubic-bezier(.1,.6,.4,1) forwards;--dx:0px}.game-instructions{text-align:center;font-size:11px;line-height:1.8;margin:16px 20px;color:#98776b}.throws{display:flex;align-items:center;justify-content:center;gap:12px;font-size:9px;letter-spacing:1px;color:#947665}.throws span{width:13px;height:13px;border:2px solid #c59385;border-radius:50%}.throws span.used{background:#d7b6a0;border-color:#d7b6a0}.throws small{margin-left:6px}.prize{text-align:center;padding:0 20px}.prize-art{width:175px;margin:auto}.prize h3{font-family:var(--display);font-size:31px;font-weight:500;margin:5px 0 12px}.prize p{font-size:12px;line-height:1.8;color:#967365}.star-field{height:310px;position:relative;max-width:750px;margin:auto;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at bottom,#a07d8a33,transparent 65%)}.star-field:before{content:'';position:absolute;width:580px;height:580px;border:1px solid #baabb52a;top:30px;left:50%;transform:translateX(-50%);border-radius:50%;box-shadow:0 0 0 40px #a49aaf08,0 0 0 80px #a49aaf05}.constellation-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.4}.star-button{border:0;background:transparent;position:absolute;color:#f2dbb2;font-size:35px;width:56px;height:56px;display:grid;place-items:center;filter:drop-shadow(0 0 12px #ffe5c644);transition:transform .3s}.star-button:hover{transform:scale(1.35)}.star-button.seen{color:#e6a7ae}.star-button small{position:absolute;top:48px;font-size:8px;letter-spacing:1px;color:#d9c4bf;white-space:nowrap}.star-instruction{text-align:center;font-size:10px;color:#b9a9b2;letter-spacing:.4px}.memory-panel{margin:0 auto 20px;max-width:560px;border-top:1px solid #b49aa13a;padding:20px 25px 0;text-align:center;min-height:110px}.memory-panel h3{font-family:var(--display);font-size:28px;margin:0 0 12px;font-weight:500}.memory-panel p{font-size:12px;color:#d8bfc0;line-height:1.8;margin:0}.memory-panel img,.memory-panel video{max-width:100%;max-height:230px;border-radius:8px;object-fit:contain;margin:10px auto;display:block}.memory-panel audio{max-width:100%;margin:15px auto}.pier-stage{position:relative;min-height:340px;overflow:hidden;background:linear-gradient(#6a6c90,#ba8e9e 46%,#9cb5b5 47%,#708f9e 72%,#b09092 73%,#716c85);isolation:isolate}.pier-stage:before{content:'';position:absolute;top:40px;right:18%;width:52px;height:52px;border-radius:50%;background:#f7d7ad;box-shadow:0 0 55px #f8e0c255}.pier-stage:after{content:'';position:absolute;left:0;right:0;bottom:0;height:33%;background:repeating-linear-gradient(0deg,transparent 0 23px,#e1c1ab22 24px 25px);z-index:-1}.pier-rail{position:absolute;left:0;right:0;top:65%;height:5px;background:#d0b2a0;box-shadow:0 30px #a18c8b}.pier-rail:before{content:'';position:absolute;inset:0;height:120px;background:repeating-linear-gradient(90deg,transparent 0 70px,#a18c8b 70px 77px)}.pier-table{position:absolute;left:19%;right:19%;height:28%;bottom:0;border-radius:50% 50% 0 0;background:linear-gradient(#f8ddc4,#e1bbb0);border-top:2px solid #fae6ca;box-shadow:0 6px 20px #3d375744}.pier-cake{position:relative;width:340px;max-width:75%;margin:0 auto;top:8px;z-index:2}.cake-svg{width:100%;height:300px;overflow:visible}.flame{animation:flicker 1s ease-in-out infinite alternate}.cake-slice{animation:slice-in .7s ease-out}.pier-teddy{position:absolute;width:100px;bottom:7px;left:9%;z-index:3;transform:rotate(-7deg)}.finale-caption{text-align:center;padding:20px 20px 0;min-height:80px}.finale-caption h3{font-family:var(--display);font-size:29px;font-weight:500;line-height:1.3;margin:0}.finale-caption p{font-size:11px;line-height:1.8;color:#c9afb4;margin:10px 0 0}.mic-status{font-size:10px;color:#e7c3b1;text-align:center;min-height:20px;margin:0 20px 10px}.bite-button{position:absolute;inset:0;width:100%;border:0;background:none;z-index:4;padding:0;display:grid;place-items:center}.bite-svg{width:310px!important;max-height:100%;animation:bite-offer 1.2s ease-out}.ending{padding:25px 25px 10px;text-align:center}.ending-spark{color:#e9c391;font-size:35px;margin-bottom:15px}.ending h3{font-family:var(--display);font-size:42px;font-weight:500;line-height:1.15;letter-spacing:-1px;margin:0 0 18px}.ending p{font-size:12px;line-height:1.9;color:#d5b8b9;margin:0}.ending .end-teddy{width:95px;margin:15px auto 0}.date-rating{padding-bottom:20px;text-align:center}.date-rating .choices{display:flex;justify-content:center;gap:10px}.date-rating p{font-size:11px;color:#ccb0b6}.confetti-bit{position:fixed;left:var(--x);top:-20px;width:7px;height:12px;background:var(--c);z-index:40;pointer-events:none;animation:confetti-fall var(--dur) ease-in forwards;transform:rotate(var(--r))}#confetti{pointer-events:none}.studio{padding:0 28px 25px}.studio .studio-intro{font-size:12px;line-height:1.8;color:#8e7168}.studio fieldset{border:1px solid #dfc4ac;border-radius:8px;padding:18px;margin:20px 0}.studio legend{font-family:var(--display);font-size:20px;padding:0 8px}.studio label{display:block;font-size:11px;margin:13px 0 6px;font-weight:600}.studio input:not([type=checkbox]),.studio textarea,.studio select{width:100%;border:1px solid #d4baa5;border-radius:5px;background:#fff8ec;color:#674d4e;padding:11px;min-height:43px}.studio input[type=file]{font-size:10px}.studio textarea{min-height:95px;resize:vertical;font-size:12px;line-height:1.7}.studio small{font-size:10px;line-height:1.8;color:#94776c}.studio .memory-editor{border-bottom:1px solid #e6ceb9;padding-bottom:20px}.studio .memory-editor:last-child{border:0}.studio-actions{display:flex;gap:10px;flex-wrap:wrap}.studio-error{font-size:12px;color:#ad576c;line-height:1.7;min-height:20px}.studio summary{cursor:pointer;padding:12px 0;font-size:12px}.scene-loading{padding:60px;text-align:center;font-family:var(--display);font-size:26px}
@keyframes wheel-turn{to{transform:rotate(360deg)}}@keyframes cabin-turn{to{transform:rotate(-360deg)}}@keyframes bulb-glow{50%{filter:drop-shadow(0 0 5px #fff6b6)}}@keyframes cloud-drift{50%{translate:30px 0}}@keyframes waves{50%{translate:9px 2px;opacity:.32}}@keyframes gull-glide{50%{translate:20px -8px}}@keyframes balloon-sway{50%{rotate:4deg;translate:0 -7px}}@keyframes twinkle{50%{opacity:.35}}@keyframes bob{50%{translate:0 -5px}}@keyframes teddy-breathe{50%{scale:1.015 1.01}}@keyframes room-in{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:none}}@keyframes flash{0%{opacity:.9}100%{opacity:0}}@keyframes eq{to{height:25px}}@keyframes ring-toss{0%{transform:translate(0,0) rotate(-12deg) scale(1)}45%{transform:translate(calc(var(--dx)*.6),-160px) rotate(12deg) scale(.78)}100%{transform:translate(var(--dx),-55px) rotate(0) scale(.66)}}@keyframes flicker{to{scale:.85 1.1;opacity:.85}}@keyframes slice-in{from{transform:translate(-45px,-20px);opacity:0}to{transform:none;opacity:1}}@keyframes bite-offer{from{transform:translate(110px,160px) rotate(20deg)}to{transform:none}}@keyframes confetti-fall{to{top:110vh;transform:translateX(100px) rotate(500deg)}}
@media(min-width:1800px){.world-heading{top:6%}.world-heading h1{font-size:82px}.attraction{top:42%;height:47%}}
@media(max-width:800px){.topbar{height:78px;padding:0 24px}.brand{font-size:18px;gap:8px}.brand small{font-size:7px;letter-spacing:1.8px}.brand-spark{font-size:33px}.ticket-label{display:none}.sound-button{padding:10px 13px;font-size:10px}.world-heading{top:31px;left:28px}.world-heading h1{font-size:53px;letter-spacing:-2px;margin-top:15px}.intro-copy{font-size:11px}.world-stage{width:1550px;height:max(660px,calc(100dvh - 143px));max-height:800px}.entered .world-heading h1{font-size:39px}.entered .world-heading .eyebrow{font-size:7px;letter-spacing:1.8px}.world-footer{height:65px;padding:0 20px}.world-footer p{font-size:9px;max-width:65%;gap:7px}.world-navigation{gap:8px}.world-navigation>span{display:none}.round{width:35px;height:35px}.world-heading .sound-opt{margin-top:13px}.world-heading .primary{min-height:44px;padding:12px 21px}.spot-label{padding:10px 12px;min-width:165px}.spot-label strong{font-size:17px}.spot-label small{font-size:6px}.scene-header h2{font-size:34px}.scene-top{padding:17px 20px 0}.scene-tag{font-size:7px;letter-spacing:1.6px}.photo-layout{grid-template-columns:1fr;padding:0 20px;gap:14px}.photo-instructions{text-align:center}.photo-instructions h3{font-size:24px;margin-bottom:8px}.photo-instructions p{margin:8px auto;max-width:330px}.photo-instructions .primary,.photo-instructions .secondary{width:auto;margin:5px}.photo-instructions .secondary{font-size:10px;padding:10px}.camera-wrap{max-height:270px;width:100%;max-width:430px;margin:auto}.camera-error{margin:0!important}.scene-actions{padding:18px;gap:9px}.scene-actions .primary,.scene-actions .secondary{font-size:11px;padding:12px 16px}.game-stage{margin:0 20px;height:280px}.game-stage .bottle-target svg{height:140px}.bottle-row{top:62px}.music-stage{min-height:235px}.lyrics{font-size:24px;max-width:68%}.star-field{height:270px}.memory-panel{padding-top:15px}.pier-stage{min-height:290px}.pier-cake{width:290px;top:5px}.cake-svg{height:265px}.pier-teddy{width:80px}.finale-caption h3{font-size:26px}.ending h3{font-size:36px}.scene-bottom{padding-bottom:17px}.boardwalk-caption{bottom:4%}.toast{font-size:11px;padding:13px 17px}.studio{padding:0 18px 20px}.studio fieldset{padding:12px}.photo-strip{max-height:44dvh}.scene-header{padding-bottom:15px}}
@media(max-width:480px){dialog{width:calc(100% - 22px);max-height:calc(100dvh - 24px);border-radius:15px}.topbar{padding:0 19px}.sound-button{padding:9px 11px;min-height:39px}.world-heading{left:24px}.eyebrow{font-size:7px;letter-spacing:2px}.world-heading h1{font-size:48px}.world-stage{height:max(665px,calc(100dvh - 143px));width:1500px}.world-scroll{max-height:calc(100dvh - 143px);min-height:530px}.world-stage{height:max(630px,calc(100dvh - 143px))}.world-heading .intro-copy{font-size:10px}.entered .world-heading{top:27px}.entered .world-heading h1{font-size:37px;margin-bottom:12px}.explore-copy{font-size:10px;max-width:240px}.entered .world-heading{pointer-events:none}.world-footer{padding:0 17px}.companion{width:58px;height:58px;left:13px}.companion svg{width:50px;height:50px}.scene-header p{font-size:11px}.scene-header h2{font-size:32px}.music-stage:before,.music-stage:after{width:24%}.lyrics{font-size:23px;max-width:65%}.prize-art{width:145px}.prize h3{font-size:28px}.game-stage{height:260px;margin:0 14px}.game-instructions{font-size:10px}.bottle-row{top:49px;left:6%;right:6%}.star-button{font-size:31px;width:48px;height:48px}.star-button small{font-size:7px;top:43px}.memory-panel h3{font-size:25px}.memory-panel p{font-size:11px}.star-field{height:240px}.ending{padding-top:20px}.ending h3{font-size:33px}.ending p{font-size:11px}.fine-print{font-size:9px}.photo-layout{padding:0 15px}.photo-instructions .primary{font-size:11px;padding:12px 17px}.scene-bottom .fine-print{margin:4px}.scene-actions{padding:16px 12px}.pier-cake{width:265px;max-width:85%}.cake-svg{height:260px}.pier-teddy{left:3%;bottom:15px;width:73px}}
@media(max-height:720px) and (min-width:801px){.world-heading{top:24px}.world-heading h1{font-size:49px;margin:14px 0}.world-stage{height:600px}.world-scroll{max-height:calc(100dvh - 163px)}.world-heading .intro-copy{margin:10px 0}.sound-opt{margin-top:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.wheel-rotor,.gondola,.cloud,.waves,.gulls,.balloons,.bulb,.twinkle{animation:none!important}}
.sound-opt{max-width:205px;flex-wrap:wrap}.sound-opt>span{margin-left:19px;font-size:8px;white-space:nowrap}
/* Clipping rather than scrolling prevents focus from shifting the star sky. */
.star-field,.music-stage,.pier-stage,.camera-wrap{overflow:clip}
/* A tiny theatre: host, curtain reveal, performance and standing ovation. */
.concert-room{width:min(960px,calc(100% - 44px))}.concert-theatre{height:345px;min-height:345px;background:radial-gradient(ellipse at 50% 100%,#ad7b8544,transparent 70%),#2f354e;--music-energy:0;display:block;isolation:isolate}
.concert-theatre:before,.concert-theatre:after{display:none}.stage-floor{position:absolute;bottom:0;left:0;right:0;height:95px;background:linear-gradient(#9b758244,#81647077);border-top:1px solid #e7bc9b33;transform:perspective(250px) rotateX(12deg);transform-origin:bottom}
.stage-spotlight{position:absolute;top:-20%;left:18%;right:18%;height:123%;opacity:0;background:conic-gradient(from 157deg at 50% 0%,transparent 0deg,#ffdda629 5deg,#ffdea654 23deg,#ffdda629 42deg,transparent 47deg);filter:blur(2px);transition:opacity 1.8s}.concert-theatre[data-phase=performance] .stage-spotlight{opacity:calc(.6 + var(--music-energy)*.4)}
.theatre-curtain{position:absolute;top:0;bottom:75px;width:51%;z-index:2;background:repeating-linear-gradient(90deg,#7e4e66 0,#a46b7e 23px,#8c526c 43px,#6e4561 63px);box-shadow:4px 0 15px #19213966;transition:transform 1.8s cubic-bezier(.4,0,.2,1);border-radius:0 0 30% 4%}.curtain-left{left:0;transform:translateX(0)}.curtain-right{right:0;transform:translateX(0);scale:-1 1}.curtain-valance{position:absolute;left:-2%;right:-2%;top:-16px;height:53px;background:repeating-linear-gradient(90deg,#88516b,#a36b80 35px,#88516b 70px);border-radius:0 0 45% 45%;border-bottom:3px solid #d0ab8b;z-index:4;box-shadow:0 5px 16px #151d3244}
.concert-theatre:is([data-phase=performance],[data-phase=announcement],[data-phase=applause],[data-phase=finished]) .curtain-left{transform:translateX(-88%)}.concert-theatre:is([data-phase=performance],[data-phase=announcement],[data-phase=applause],[data-phase=finished]) .curtain-right{transform:translateX(-88%)}
.stage-emcee{position:absolute;width:170px;height:170px;left:19%;bottom:61px;z-index:3;transform:translateX(-480px) rotate(-5deg);opacity:0;transition:transform 1.15s ease-in-out,opacity .6s}.stage-emcee svg{width:100%;height:100%;filter:drop-shadow(5px 8px 5px #1c253333)}.concert-theatre:is([data-phase=introduction],[data-phase=announcement]) .stage-emcee{transform:translateX(0) rotate(0);opacity:1}.concert-theatre[data-phase=performance] .stage-emcee{transform:translateX(-480px) rotate(-5deg);opacity:0;transition-delay:.2s}
.host-caption{position:absolute;top:75px;left:44%;width:43%;padding:0 15px;z-index:3;font-family:var(--display);font-size:26px;line-height:1.35;font-weight:500;color:#f9e0bf;text-align:center;text-wrap:balance}.concert-theatre[data-phase=waiting] .host-caption{left:22%;width:56%;top:88px;font-size:31px}.concert-theatre:is([data-phase=applause],[data-phase=finished]) .host-caption{left:20%;width:60%;top:65px;font-size:30px}
.stage-song{position:absolute;inset:45px 12% 90px;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;animation:stage-reveal 2s .25s ease-out forwards}.concert-song-eyebrow{font-size:7px;letter-spacing:2.3px;color:#d1b6b1;text-align:center}.stage-microphone{width:100px;height:112px;margin-top:8px}.stage-microphone svg{width:100%;height:100%;overflow:visible}.stage-song .lyrics{max-width:100%;padding:0;font-size:31px;line-height:1.18;text-wrap:balance;max-height:88px;overflow:auto;margin-top:2px}.stage-song .equalizer{bottom:-19px}.stage-song .equalizer span{background:#e7c09d}
.stage-footlights{position:absolute;bottom:70px;left:8%;right:8%;height:7px;display:flex;justify-content:space-between;z-index:3}.stage-footlights i{display:block;width:7px;height:7px;border-radius:50%;background:#f0c899;box-shadow:0 0 10px #ffe2acaa}.concert-audience{position:absolute;bottom:-10px;left:-3%;right:-3%;height:108px;z-index:5;pointer-events:none}.concert-audience svg{width:100%;height:100%;overflow:visible}.audience-person{translate:0 16px;transition:translate .7s ease-out;transition-delay:var(--rise-delay);transform-box:fill-box;transform-origin:bottom}.audience-person .left-hand{transform:translate(-5px,26px);transition:transform .6s}.audience-person .right-hand{transform:translate(5px,26px);transition:transform .6s}
.concert-theatre:is([data-phase=announcement],[data-phase=applause],[data-phase=finished]) .audience-person{translate:0 -14px}.concert-theatre:is([data-phase=announcement],[data-phase=applause],[data-phase=finished]) .left-hand,.concert-theatre:is([data-phase=announcement],[data-phase=applause],[data-phase=finished]) .right-hand{transform:translate(0,0)}.concert-theatre[data-phase=applause] .left-hand{animation:clap-left .36s var(--clap-delay) ease-in-out infinite alternate}.concert-theatre[data-phase=applause] .right-hand{animation:clap-right .36s var(--clap-delay) ease-in-out infinite alternate}.concert-theatre[data-phase=applause] .audience-person{animation:audience-bob 1s var(--clap-delay) ease-in-out infinite alternate}
.song-seek{flex:1;min-width:30px;accent-color:#e5b7a0;appearance:none;height:3px;border:0;background:#9f8b9c55;cursor:pointer;padding:0}.song-seek::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border-radius:50%;background:#edc5a7;border:2px solid #f5ddbd}.song-seek::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:#edc5a7;border:1px solid #f5ddbd}.song-seek:disabled{cursor:default;opacity:.6}.concert-review-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.concert-room .scene-actions{padding:18px 20px}.concert-room .recording-note{margin-bottom:15px;line-height:1.7;padding:0 20px}.concert-room .concert-review p{font-size:19px}.concert-room .scene-bottom{padding-top:0}
@keyframes stage-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes clap-left{to{transform:translate(7px,-2px) rotate(-2deg)}}@keyframes clap-right{to{transform:translate(-7px,-2px) rotate(2deg)}}@keyframes audience-bob{to{translate:0 -17px}}
@media(max-width:800px){.concert-theatre{height:310px;min-height:310px}.stage-emcee{width:150px;height:150px;left:8%;bottom:57px}.host-caption{left:40%;width:54%;top:65px;font-size:23px}.stage-microphone{height:105px;width:90px}.stage-song{inset:45px 13% 83px}.stage-song .lyrics{font-size:27px}.concert-audience{height:94px;left:-12%;right:-12%}.concert-song-eyebrow{font-size:6.5px;letter-spacing:1.7px}.concert-theatre:is([data-phase=applause],[data-phase=finished]) .host-caption{font-size:27px;top:70px}.concert-room .concert-review p{font-size:18px}}
@media(max-width:480px){.concert-room{width:calc(100% - 22px)}.concert-room .scene-header h2{font-size:29px}.concert-theatre{height:300px;min-height:300px}.stage-emcee{left:1%;width:139px;height:139px;bottom:65px}.host-caption{left:36%;width:61%;font-size:21px;top:69px;padding:0 9px}.concert-theatre[data-phase=waiting] .host-caption{font-size:26px;left:15%;width:70%;top:85px}.concert-theatre:is([data-phase=applause],[data-phase=finished]) .host-caption{left:15%;width:70%;font-size:25px}.stage-song .lyrics{font-size:25px}.stage-song{inset:47px 13% 85px}.concert-audience{height:89px;left:-24%;right:-24%}.concert-room .concert-review .primary,.concert-room .concert-review .secondary{font-size:10px;padding:11px 15px}.concert-review-actions{gap:8px}.concert-room .scene-actions{padding:16px 12px}.concert-room .recording-note{font-size:9px;min-height:16px}.curtain-valance{height:48px}.stage-song .equalizer{bottom:-15px}}
@media(prefers-reduced-motion:reduce){.stage-emcee,.theatre-curtain,.audience-person,.left-hand,.right-hand{transition:none!important}.stage-song{opacity:1;transform:none}.stage-spotlight{opacity:.7!important}.concert-theatre .playing .equalizer span{animation:none}.concert-theatre{--music-energy:0!important}}
.attraction:disabled{opacity:1;cursor:default}
