*{box-sizing:border-box}html{width:100%;height:100%;background:#0877be}body{margin:0;width:100%;height:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none;font-family:ui-rounded,'Arial Rounded MT Bold',Arial,sans-serif;color:#0b203b}button{font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #ffb800;outline-offset:4px}button:active{filter:brightness(.94)}[hidden]{display:none!important}.stage{position:fixed;inset:0;overflow:hidden;background:#8ed2fc;isolation:isolate}.home-world,.hall-world{position:absolute;inset:0;overflow:hidden}.entrance-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;pointer-events:none;user-select:none}.home-brand{position:absolute;left:max(24px,env(safe-area-inset-left));top:max(18px,env(safe-area-inset-top));display:flex;align-items:center;gap:14px;max-width:64%;color:#091e36;text-shadow:0 2px 0 #e3f6ffb0}.home-brand h1{font-size:clamp(28px,4.5vw,62px);font-weight:1000;line-height:1;margin:0;letter-spacing:-.035em}.home-brand p{font-size:clamp(14px,2vw,25px);font-weight:800;line-height:1.2;margin:6px 0 0}.brand-stripe{flex-shrink:0;width:clamp(14px,2vw,26px);height:clamp(50px,7vw,82px);background:linear-gradient(#ff7a00 0 20%,#ffbd00 20% 40%,#1cb4b7 40% 60%,#139ccc 60% 80%,#006ba8 80%);transform:skew(-6deg)}.character{position:absolute;width:auto;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(0 5px 3px #15212c2b)}.daniel{height:70%;left:1%;bottom:3%}.inayah{height:46%;right:3%;bottom:3%}.welcome-bubble{position:absolute;left:29%;top:29%;width:clamp(170px,22vw,310px);padding:clamp(12px,1.5vw,24px);background:#fff;border:3px solid #0b2139;border-radius:32px;color:#0b2139;font-weight:850;font-size:clamp(15px,2vw,26px);line-height:1.18;box-shadow:0 5px 0 #10273d15;text-align:center}.welcome-bubble:before{content:'';position:absolute;width:20px;height:20px;background:white;bottom:-11px;left:22px;border-left:3px solid #0b2139;border-bottom:3px solid #0b2139;transform:skewY(-25deg)}
/* The hallway remains sized by CSS on every navigation and orientation change. */
.scene-art{position:absolute;width:max(100vw,133.333333dvh);height:max(100dvh,75vw);left:50%;top:35%;transform:translate(-50%,-35%);container-type:inline-size}.scene-art>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;user-select:none}.scene-art #rooms{position:absolute;inset:0}.door{position:absolute;top:30.5%;height:42.3%;width:15%;padding:0;background:transparent;border:0;border-radius:1cqw}.door:hover,.door:focus-visible{background:#ffffff12;box-shadow:0 0 0 .3cqw #ffc400}.door span{position:absolute;top:0;left:0;width:100%;height:19.8%;display:flex;align-items:center;justify-content:center;text-align:center;background:#fff8ed;border:.25cqw solid #10273d;border-radius:1cqw;font-weight:900;font-size:1.9cqw;line-height:1.04;padding:.3cqw .4cqw;white-space:pre-line;word-break:normal;text-wrap:balance}.studio{left:19.5%}.art{left:38.2%}.kitchen{left:54.9%}.school{left:71.8%}.top-controls{position:absolute;z-index:3;top:max(18px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:flex;gap:8px}.top-controls button{display:flex;align-items:center;justify-content:center;min-height:44px;border:2px solid #ffa600;background:white;color:#0a1b36;font-weight:800;padding:9px 13px;font-size:clamp(13px,1.6vw,20px);border-radius:35px;gap:5px;white-space:nowrap}.top-controls button:hover,.back:hover{background:#fff5d5}.enter{position:absolute;z-index:3;left:50%;transform:translateX(-50%);bottom:max(18px,env(safe-area-inset-bottom));width:clamp(250px,37vw,520px);min-height:clamp(50px,8dvh,76px);border:4px solid white;border-radius:60px;background:linear-gradient(#00a8f3,#0062b7);color:white;font-size:clamp(20px,2.8vw,38px);font-weight:900;padding:10px 18px;box-shadow:0 4px 0 #ffb800,0 8px 18px #0003;white-space:nowrap;letter-spacing:.01em}.enter:hover{filter:brightness(1.08)}.back{position:absolute;z-index:3;left:max(16px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));min-height:44px;padding:8px 22px;background:#fff;border:3px solid #ffb000;border-radius:35px;font-size:clamp(16px,2.3vw,28px);font-weight:900;color:#0b203b}.translated-heading{position:absolute;left:5.9%;top:1.1%;width:61.5%;height:11%;background:#e8f5ff;font-size:3.3cqw;font-weight:900;line-height:1.05;padding:.4cqw}.translated-heading small{font-size:1.8cqw;display:block;margin-top:.6cqw}.translated-speech{position:absolute;left:12.7%;top:18.8%;width:13.9%;height:10%;border-radius:2cqw;background:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:1.8cqw;padding:.5cqw}
/* Portrait welcome screen uses the club's supplied emblem. */
#rotate-prompt{display:none;position:fixed;inset:0;z-index:20;overflow:auto;background:#082b4b;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:max(28px,env(safe-area-inset-top)) 26px max(32px,env(safe-area-inset-bottom));color:white}#rotate-prompt:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#082b4be6,#082b4be6),url('assets/entrance-background.png') center/cover}.rotate-logo{width:clamp(140px,42vw,230px);height:auto;aspect-ratio:1;object-fit:contain;background:white;border-radius:50%;padding:8px;box-shadow:0 0 0 5px #25b2bd,0 15px 40px #0004}.rotate-brand{font-size:clamp(27px,6.8vw,42px);font-weight:900;letter-spacing:-.03em;margin:24px 0 5px}.rotate-tagline{font-size:12px;font-weight:800;letter-spacing:.18em;color:#62d8e2;margin:0 0 26px}.rotate-phone{width:88px;height:52px;flex-shrink:0;border:4px solid #ffbe00;border-radius:12px;display:grid;place-items:center;color:#fff;transform:rotate(-12deg);margin-bottom:8px}.rotate-phone span{font-size:38px;line-height:1}#rotate-prompt h1{font-size:clamp(25px,6vw,35px);max-width:350px;line-height:1.12;margin:18px 0 8px}#rotate-prompt>p:not(.rotate-brand):not(.rotate-tagline){font-size:17px;line-height:1.5;margin:8px 0 16px}#rotate-prompt strong{font-size:12px;line-height:1.5;max-width:270px;color:#c5deef}.rotate-colours{height:8px;position:fixed;bottom:0;left:0;right:0;background:linear-gradient(90deg,#ff7800 0 20%,#ffbd00 20% 40%,#24b2bb 40% 60%,#209acb 60% 80%,#086ba8 80%)}@media(orientation:portrait){#rotate-prompt{display:flex}.stage{visibility:hidden}}
/* Dialogs live in the browser top layer, above either scene. */
dialog{border:0;border-radius:26px;padding:38px 30px 30px;width:min(92vw,470px);max-height:calc(100dvh - 20px);overflow:auto;box-shadow:0 24px 100px #0006;text-align:center;color:#0a2542;background:#fffaf2}dialog::backdrop{background:#061a33a6;backdrop-filter:blur(5px)}dialog h2{font-size:30px;margin:10px 0 15px;overflow-wrap:anywhere}dialog p{line-height:1.6}.close{position:absolute;right:9px;top:5px;background:transparent;border:0;font-size:32px;color:#24405b;width:44px;height:44px}.language-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.language-options button{border:2px solid #c9dae8;background:white;border-radius:13px;padding:15px;font-weight:700;color:#123652}.language-options button[aria-pressed=true]{background:#e0f4ff;border-color:#007ac4}.primary{border:0;border-radius:15px;background:#0677c9;color:#fff;padding:15px 24px;font-weight:800;width:100%;margin-top:15px}.status{display:inline-block;background:#fff0bf;padding:5px 16px;border-radius:30px;font-weight:800}.eyebrow{letter-spacing:.15em;font-size:12px;font-weight:800;color:#56718b;margin:12px 0 0}#room-icon{font-size:46px;background:#e2f4ff;border-radius:22px;width:82px;height:82px;display:grid;place-items:center;margin:auto}#loading{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);background:white;padding:10px 20px;border-radius:30px}.noscript{position:fixed;bottom:5px;background:#fff;padding:12px}
@media(orientation:landscape) and (max-height:500px){.home-brand{top:max(12px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));gap:10px;max-width:65%}.home-brand h1{font-size:clamp(27px,4.2vw,44px)}.home-brand p{font-size:clamp(12px,1.8vw,19px);margin-top:4px}.brand-stripe{height:48px;width:16px}.top-controls{top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}.top-controls button{font-size:13px;padding:8px 10px}.daniel{height:69%;left:2%;bottom:3%}.inayah{height:45%;right:4%;bottom:3%}.welcome-bubble{top:27%;left:28%;width:24%;font-size:clamp(14px,1.9vw,20px);padding:12px 14px;border-radius:25px}.enter{bottom:max(12px,env(safe-area-inset-bottom));font-size:clamp(18px,2.6vw,26px);padding:7px 16px;min-height:48px;width:38%}.back{font-size:16px;padding:8px 18px}dialog{padding:20px 26px}dialog h2{font-size:23px;margin:7px 0}dialog p{margin:7px 0;line-height:1.4}#room-icon{width:48px;height:48px;font-size:30px}.primary{margin-top:6px;padding:10px}}
@media(min-aspect-ratio:19/9){.home-brand{left:max(28px,env(safe-area-inset-left))}.daniel{left:7%;height:72%}.inayah{right:8%;height:47%}.welcome-bubble{left:31%;top:26%;width:22%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Extend artwork into browser-managed safe-area gutters as well. */
html{background:#8ed2fc url('assets/entrance-background.png') center 55%/cover no-repeat fixed}
html:has(.stage.hallway){background-image:url('assets/hallway.png');background-position:center}

/* Requested logo replacement; scene, character and button dimensions are retained. */
.home-logo{flex-shrink:0;width:clamp(50px,7vw,82px);height:clamp(50px,7vw,82px);object-fit:contain;padding:4px;background:#000;border-radius:50%;box-shadow:0 2px 8px #0003}.rotate-logo{background:#000;padding:8px}.browser-room-heading{display:none}
/* These viewport and heading adjustments apply only in a regular browser. */
html.browser-mode{background:#0877be url('assets/entrance-background.png') center 55%/cover no-repeat fixed}.browser-mode:has(.stage.hallway){background-image:url('assets/hallway.png')}.browser-mode body{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100%;background:transparent}.browser-mode .stage{inset:auto;left:var(--browser-left,0px);top:var(--browser-top,0px);right:auto;bottom:auto;width:var(--browser-width,100vw);height:var(--browser-height,100dvh)}.browser-mode .home-brand{top:max(10px,env(safe-area-inset-top));max-width:64%}.browser-mode .home-brand h1{font-size:clamp(25px,3.5vw,52px);text-shadow:0 2px 0 white,0 0 12px #ffffffb0}.browser-mode .home-brand p{font-size:clamp(12px,1.7vw,22px);text-shadow:0 1px 0 white,0 0 8px #fff}.browser-mode .hallway .browser-room-heading{display:block;position:absolute;z-index:2;left:0;top:0;width:100%;min-height:75px;padding:12px max(20px,env(safe-area-inset-left));background:linear-gradient(#e8f5ff 85%,#e8f5ffed);color:#0b203b;pointer-events:none}.browser-room-heading h2{font-size:clamp(22px,3.2vw,40px);max-width:63%;line-height:1;margin:0;font-weight:900;letter-spacing:-.025em}.browser-room-heading p{font-size:clamp(12px,1.5vw,19px);font-weight:700;margin:5px 0 0;max-width:63%}.browser-mode .top-controls{top:max(10px,env(safe-area-inset-top))}.browser-mode .scene-art{width:max(var(--browser-width,100vw),calc(var(--browser-height,100dvh)*4/3));height:max(var(--browser-height,100dvh),calc(var(--browser-width,100vw)*.75))}
@media(orientation:landscape) and (max-height:500px){.home-logo{height:48px;width:48px}.browser-mode .home-brand{gap:9px}.browser-mode .home-brand h1{font-size:clamp(24px,3.5vw,36px)}.browser-mode .home-brand p{font-size:clamp(12px,1.6vw,16px)}.browser-mode .hallway .browser-room-heading{min-height:64px;padding-top:9px;padding-bottom:9px}.browser-room-heading h2{font-size:clamp(21px,2.8vw,29px)}.browser-room-heading p{font-size:12px;margin-top:4px}}

/* Install help appears only when visiting in a browser. */
.install-offer,.install-link{display:none}.browser-mode .install-offer{display:block;width:min(290px,100%);margin:22px auto 0}.install-offer p{font-size:12px;line-height:1.4;color:#d7ebf6;margin:10px 0 0}.install-primary{min-height:48px;width:100%;border:3px solid #ffbd00;border-radius:28px;background:white;color:#082b4b;padding:10px 20px;font-size:19px;font-weight:900;box-shadow:0 4px 0 #ffbd00}.tagline-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.browser-mode .install-link{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:3px 11px;background:#fff;border:2px solid #ffbd00;border-radius:20px;color:#0b2947;font-size:12px;font-weight:800;text-shadow:none;white-space:nowrap}#install-guide{z-index:30;width:min(94vw,560px);padding-top:28px}.install-logo{width:66px;height:66px;object-fit:contain;background:black;border-radius:50%;padding:4px}#install-guide h2{font-size:27px;margin:10px 0}#install-intro{font-size:15px;line-height:1.45}#install-device{font-size:16px;margin:20px 0 10px}#install-steps{text-align:start;padding-inline-start:28px;margin:0}#install-steps li{padding-inline-start:5px;margin:12px 0;font-size:15px;line-height:1.45}#install-steps li::marker{font-weight:900;color:#0878c7}.install-note{background:#e6f3ff;border-radius:12px;padding:12px;font-size:13px;line-height:1.45!important;text-align:start}#install-guide details{font-size:13px;text-align:start;padding:8px 0}#install-guide summary{cursor:pointer;font-weight:800;min-height:30px}.install-apple-help{display:inline-block;color:#245b87;font-size:12px;margin-top:14px}#rotate-prompt{justify-content:safe center}
@media(orientation:landscape) and (max-height:500px){.tagline-row{gap:8px}.browser-mode .install-link{font-size:11px;min-height:28px;padding:2px 8px}#install-guide{padding:20px 26px}.install-logo{width:48px;height:48px}#install-guide h2{font-size:23px}#install-steps li{margin:10px 0}}
