@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#edf4ec;--muted:#b7c9c7;--gold:#ffd18b;--mint:#a7e7ce;--panel:#101e2d;--line:#7899a444;--font:'DM Sans',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#0b1424;color:var(--ink);font-family:var(--font);font-size:16px}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#172b3bf0;border-radius:12px;padding:16px 22px;min-height:48px;font-weight:600;transition:background .2s,transform .2s}button:hover{background:#27434e;border-color:#a9d5c688}button:active{transform:scale(.97)}button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.45;cursor:default}.primary{background:var(--gold);color:#292416;border-color:transparent}.primary:hover{background:#ffe3ad}.quiet{background:#0c17279c}h1,h2,h3,p{margin-top:0}.home{min-height:100svh;position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center}.home-art{position:absolute;inset:0;z-index:-2;background:url('./assets/camp.webp') center/cover}.home:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#081121f5 0%,#091325dd 27%,#0c172565 57%,#08132010),linear-gradient(0deg,#081121bb,transparent 45%)}.home-content{padding:7vh 6vw;max-width:610px}.eyebrow{font-size:12px;letter-spacing:.19em;color:var(--mint);font-weight:700;margin-bottom:32px}h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(44px,5.7vw,88px);line-height:.9;letter-spacing:.025em;font-weight:600;margin:0 0 34px;text-shadow:0 4px 24px #0006}h1 span{display:block;color:var(--gold);font-family:var(--font);font-size:.22em;letter-spacing:.54em;margin:20px 0 0 4px}.intro{font-size:20px;line-height:1.6;color:#e1e7df;margin-bottom:32px}.home-actions{display:flex;flex-direction:column;gap:12px;max-width:350px}.home-actions button{text-align:left;font-size:18px}.home-actions span{display:block;font-size:10px;letter-spacing:.12em;margin-top:5px;opacity:.68}.home-foot{font-size:13px;line-height:1.6;color:var(--muted);margin:24px 0 0}.chapter{position:absolute;right:5vw;bottom:6vh;font-size:11px;letter-spacing:.19em;color:var(--mint)}.chapter b{display:block;font-family:Georgia,serif;font-size:25px;color:#f2ede0;letter-spacing:0;font-weight:400;margin-top:10px}#toast{position:fixed;z-index:100;left:50%;bottom:24px;transform:translateX(-50%);background:#f6ddb0;color:#252118;border-radius:40px;padding:14px 24px;max-width:90vw;box-shadow:0 8px 30px #0005}#toast:empty{display:none}@media(max-width:650px){.home-content{padding:40px 7vw;max-width:100%}.home:after{background:linear-gradient(90deg,#081121ef,#08112180)}.chapter{display:none}.eyebrow{font-size:10px}h1{font-size:56px}.intro{font-size:18px}}
.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid var(--line);background:#0b1523;gap:16px}.brand{padding:0;border:0;background:none!important;font-family:Georgia,serif;letter-spacing:.08em;font-size:19px;min-height:40px}.brand span{font-family:var(--font);font-size:9px;display:block;color:var(--gold);letter-spacing:.37em;margin-top:5px}.tools{display:flex;gap:10px;align-items:center}.icon-button{width:42px;min-height:40px;padding:5px;font-size:23px;border:0;background:transparent}.connection{font-size:12px;color:var(--muted);margin-right:10px}.muted{opacity:.4}.muted-text,.side-note{color:var(--muted);font-size:14px;line-height:1.65}.tv-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;height:calc(100svh - 66px);min-height:600px}.world-wrap{position:relative;overflow:hidden;background:#0a1422}.world-wrap canvas{width:100%;height:100%;object-fit:contain}.world-top{position:absolute;top:25px;left:25px;right:25px;display:flex;justify-content:space-between;gap:20px;pointer-events:none}.chapter-label{font-size:13px;letter-spacing:.14em;text-shadow:0 2px 7px #000;color:var(--gold)}.chapter-label span{display:block;letter-spacing:0;font-family:Georgia,serif;color:white;font-size:24px;margin-top:8px}.clock{background:#0c1b2fda;border:1px solid #ffd58b55;border-radius:12px;padding:12px 17px;align-self:flex-start;font-size:25px;color:var(--gold);font-variant-numeric:tabular-nums}.camp-panel{padding:25px 22px;overflow:auto;background:linear-gradient(130deg,#122334,#0b1827)}.camp-panel .eyebrow{margin-bottom:16px;font-size:11px}.player-row{display:flex;align-items:center;gap:10px;margin:12px 0;color:var(--player)}.player-row b{font-size:15px}.player-row small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.player-row>span{margin-left:auto}.avatar{width:46px;height:46px;border-radius:50%;border:1px solid var(--player,#d8d4b6);background-image:url('./assets/companions.webp');background-size:500% auto;background-position:calc(var(--slot)*25%) 43%;flex:none}.giant{width:110px;height:110px;margin:0 auto 20px}.empty-player{border:1px dashed var(--line);padding:18px 10px;color:#adc4c088;border-radius:9px;font-size:12px;margin:10px 0}.side-note{margin:24px 0;font-size:13px}.room-card{border-top:1px solid var(--line);padding:20px 0;margin-top:20px;text-align:center}.room-card>span{font-size:10px;letter-spacing:.13em;color:var(--muted)}.room-card b{font-size:30px;letter-spacing:.15em;color:var(--gold);display:block;margin:12px 0}.room-card canvas{display:block;margin:16px auto;border-radius:7px}.room-card button{width:100%;font-size:13px;padding:10px}.room-card input{margin-top:10px;width:100%;border:0;background:#071422;color:#abc5c3;font-size:10px;padding:8px;border-radius:4px}#host-actions button{width:100%;font-size:13px;padding:10px}.world-bottom{position:absolute;bottom:25px;left:25px;right:25px;display:flex;align-items:end;gap:20px;pointer-events:none}.story-note{background:#0a1829e8;border:1px solid #afd7c844;border-radius:12px;padding:15px 20px;color:#e7eedf;font-size:16px;line-height:1.5;max-width:680px;box-shadow:0 7px 25px #0003}.rescue-count{margin-left:auto;flex:none;font-size:30px;font-family:Georgia,serif;color:var(--gold);text-align:center;text-shadow:0 2px 9px #000}.rescue-count span{display:block;font-size:9px;font-family:var(--font);letter-spacing:.12em;margin-top:5px}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;pointer-events:none;padding:30px}.overlay:not(:empty){background:#04112366;backdrop-filter:blur(3px)}.overlay>*{pointer-events:auto}.lobby-card{max-width:530px;background:linear-gradient(120deg,#152b3bef,#0b1729f5);border:1px solid #a7d8c85c;padding:40px;border-radius:20px;box-shadow:0 20px 80px #0005}.lobby-card .eyebrow{font-size:10px;margin-bottom:20px}h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:39px;line-height:1.05;font-weight:500;color:#f4ecd8;margin-bottom:18px}.lobby-card p{line-height:1.7;font-size:16px;color:#c0d2cd}.lobby-card>.primary{width:100%;margin-top:22px}.mode-option{display:grid;grid-template-columns:24px 1fr;gap:7px;font-weight:600;font-size:15px;margin-top:25px}.mode-option input{width:19px;height:19px;accent-color:var(--gold)}.mode-option span{grid-column:2;font-size:12px;line-height:1.6;color:var(--muted);font-weight:400}.lobby-card #start-hint{text-align:center;font-size:12px;margin:14px 0 0}.objectives{margin-top:25px;border-top:1px solid var(--line);padding-top:8px}.objectives p{font-size:14px;position:relative;padding-left:32px;margin:17px 0}.objectives span{position:absolute;left:0;color:var(--gold);font-size:24px}.objectives small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.meeting-card{text-align:center}#meeting-clock{font-size:35px;color:var(--gold)}.join-screen{min-height:calc(100svh - 66px);background:linear-gradient(90deg,#0a172beb,#0a172bb8),url('./assets/camp.webp') center/cover;display:flex;align-items:center;justify-content:center;gap:50px;padding:40px}.join-card{width:400px;flex:none}.join-card h2{font-size:48px}.join-card .eyebrow{margin-bottom:20px}.join-card label{display:block;margin:18px 0;font-size:14px;font-weight:600;color:var(--muted)}input:not([type=range]):not([type=checkbox]){color:#f3f0df;background:#0b1a2bed;border:1px solid #89b8b55a;border-radius:10px;padding:16px;outline-offset:3px}#player-name,#room-code{display:block;margin-top:8px;width:100%;font-size:19px}#room-code{letter-spacing:.25em;text-transform:uppercase}#join-form button,#scan{width:100%;margin:8px 0}#join-error{color:#ffbda5;font-size:14px;margin-top:12px}#scan-video{width:100%;max-height:180px;object-fit:cover}.join-creatures{height:460px;width:440px;background:url('./assets/companions.webp') 25% 40%/500% auto;border-radius:50%;mask-image:radial-gradient(ellipse,#000 52%,transparent 70%)}.controller{min-height:calc(100svh - 66px);padding:20px 4vw 18px;background:radial-gradient(ellipse at 50% 100%,#183c46,#101c30 70%);overflow:hidden}.controller-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.controller-heading b{font-size:15px;color:var(--mint)}.controller-heading .moon{color:#dcc2ff}.controller-heading p{font-size:12px;max-width:570px;line-height:1.5;margin:6px 0 0;color:#d5c1ed}.controller-heading p:empty{display:none}.you-label{font-size:12px;color:var(--player);white-space:nowrap}.gamepad{display:grid;grid-template-columns:220px 1fr 245px;align-items:center;gap:3vw;max-width:1180px;margin:28px auto 22px;min-height:245px}.left-controls{text-align:center}.left-controls small{font-size:11px;color:var(--muted);display:block;margin-top:17px}.joystick{position:relative;width:190px;height:190px;border-radius:50%;border:1px solid #90aeb855;background:radial-gradient(circle,#14293b 30%,#0a1729 68%,#294453 70%,#142535 74%);margin:auto;touch-action:none;user-select:none;box-shadow:0 12px 35px #0003,inset 0 0 20px #0006}#stick{position:absolute;inset:calc(50% - 38px);width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 40% 30%,#546e78,#1c3346 70%);box-shadow:0 7px 15px #0008,inset 0 1px 3px #b0d2d855;border:1px solid #7896a255;pointer-events:none}.joy-mark{position:absolute;color:#688992;font-size:21px}.north{top:9px;left:calc(50% - 7px)}.south{bottom:9px;left:calc(50% - 7px)}.west{left:12px;top:calc(50% - 13px)}.east{right:12px;top:calc(50% - 13px)}.face-buttons{position:relative;width:235px;height:230px;touch-action:none}.face{position:absolute;width:78px;height:78px;min-height:0;padding:8px;border-radius:50%;font-size:26px;background:radial-gradient(circle at 40% 30%,#294653,#102335);box-shadow:0 7px 14px #0005,inset 0 1px 3px #fff2;border:1px solid currentColor;line-height:1}.face span{display:block;font-size:8px;letter-spacing:.05em;margin-top:6px;line-height:1.1}.face.a{bottom:0;left:79px;color:#b4f0c8;background:radial-gradient(circle at 40% 30%,#47766a,#153d34)}.face.b{right:0;top:75px;color:#ffad98}.face.x{left:0;top:75px;color:#9fd4ff}.face.y{top:0;left:79px;color:#ffdb93}.controller-center{text-align:center}.controller-center #carry-info{font-size:15px;color:var(--gold);line-height:1.55}.clue{padding:14px 10px;background:#0a172577;border:1px solid var(--line);border-radius:12px}.clue span{display:block;font-size:9px;letter-spacing:.1em;color:var(--muted)}.clue b{display:block;font-size:27px;color:#e1d2ff;margin:8px 0}.clue small{font-size:10px;color:var(--muted)}.private-note{font-size:12px;color:#bcd0ca;line-height:1.5;margin:15px 0 0;max-height:65px;overflow:auto}.guided{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;margin:10px 0}.guided>span{font-size:10px;letter-spacing:.12em;color:var(--muted);margin-right:7px}.guided button{font-size:12px;padding:10px 16px;min-height:44px;border-radius:30px;background:#0d2636}.helping{text-align:center;color:#a6c0bb;font-size:11px;margin:12px 0 0}.task-layout{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;max-width:1050px;margin:35px auto}.task-copy h2{font-size:42px;max-width:450px}.task-copy .eyebrow{font-size:10px;margin-bottom:18px}.task-copy>p:not(.private-note){font-size:17px;line-height:1.6;color:#cfddd7}.task-copy button{font-size:12px;padding:11px 16px;margin:14px 8px 0 0}.task-copy .back-task{border:0;color:var(--muted);display:block;background:none;padding-left:0}.task-magic{text-align:center}.hold-magic{width:210px;height:210px;border-radius:50%;background:radial-gradient(circle at 45% 35%,#426552,#1c423b 55%,#183740);border:2px solid #9cdaba;box-shadow:0 0 0 12px #99d3b60b,0 0 65px #88eec422,inset 0 0 25px #d1ecb622;touch-action:none;user-select:none;-webkit-user-select:none}.hold-magic span{display:block;font-size:80px;font-weight:400;color:#d7f1cb;line-height:1}.hold-magic b{display:block;font-size:12px;letter-spacing:.2em;margin-top:12px;color:#dcf0ca}.hold-magic.holding{background:#f4d78d;color:#30290f;box-shadow:0 0 0 16px #ffdf8920,0 0 100px #fbd17666}.hold-magic.holding span,.hold-magic.holding b{color:#3b3315}.lantern .hold-magic{border-color:var(--gold)}progress{display:block;width:90%;max-width:360px;height:8px;appearance:none;border:0;border-radius:30px;margin:32px auto 0;overflow:hidden;background:#051523}progress::-webkit-progress-bar{background:#051523}progress::-webkit-progress-value{background:var(--gold);border-radius:30px;transition:width .1s}#progress-label{font-size:12px;color:var(--muted);margin-top:12px}.bottle-orb{font-family:Georgia,serif;font-size:100px;width:165px;height:165px;border-radius:50%;border:1px solid #98d3ed70;margin:0 auto 25px;background:radial-gradient(circle at 50% 65%,#4c91a889,#1a35564a);box-shadow:0 0 60px #65dbec28;line-height:1.5;color:#bceafc}.tune-track{position:relative;margin:25px auto;width:95%;height:44px;display:flex;align-items:center;background:#081c2a;border-radius:30px;border:1px solid #92bdb24d}.tune-band{position:absolute;left:47%;width:32%;inset-block:3px;background:#ace8c941;border:1px solid #acf0cf6b;border-radius:30px}#tune-slider{width:100%;appearance:none;background:transparent;z-index:1;touch-action:none;padding:0 12px}#tune-slider::-webkit-slider-thumb{appearance:none;width:38px;height:38px;border-radius:50%;background:#f3d49b;border:3px solid #fff0c2;box-shadow:0 0 20px #ffe1a533}#tune-readout{font-size:13px;color:var(--mint)}.rune-buttons{display:grid;grid-template-columns:repeat(2,100px);justify-content:center;gap:15px}.rune-buttons button{font-size:44px;height:94px;border-color:#b3c3ed55;color:#ddceff}.rune-progress{font-size:33px;color:var(--gold);letter-spacing:.2em;margin-bottom:18px}.task-magic.runes>p{color:var(--mint);font-size:14px}.secret-button{display:block;margin:20px auto 0;background:#392346;color:#e6c4fb;border-color:#b287d270;font-size:13px;padding:12px 20px}.waiting{text-align:center;max-width:800px;margin:40px auto}.waiting h2{font-size:45px}.waiting>p{color:var(--muted);line-height:1.6}.waiting .eyebrow{margin-bottom:15px;font-size:11px}.waiting-tips{display:flex;justify-content:center;gap:25px;margin:25px 0;color:#c4d9d1;font-size:13px}.waiting-tips span{max-width:150px;line-height:1.6}.waiting-foot{text-align:center;color:var(--muted)}.vote-screen{max-width:900px;display:flex;align-items:center;gap:40px;margin:40px auto;flex-wrap:wrap}.vote-screen>div:first-child{flex:1}.vote-screen p{color:var(--muted);font-size:15px;line-height:1.6}.vote-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1}.vote-options button{min-width:140px}.vote-screen #vote-status{width:100%;text-align:center}.result-card{text-align:center;max-width:650px;padding:30px 40px;background:#102333ed;border:1px solid #95bea777;border-radius:20px}.result-card h2{font-size:48px}.result-card .eyebrow{font-size:10px;margin-bottom:20px}.result-card p{color:#cdded2;line-height:1.6}.result-creatures{width:100%;height:130px;background:url('./assets/companions.webp') center 48%/100% auto;mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent)}.result-card .reveal{color:#e2c5ff;font-weight:600;margin-bottom:8px}.result-card .muted-text{font-size:12px}.result-again{margin-top:20px}.controller>.result-card{margin:20px auto}.controller>#demo-again{display:block;margin:10px auto}.demo-layout{display:grid;grid-template-columns:42% 58%;min-height:calc(100svh - 66px)}.demo-world{position:relative;overflow:hidden;min-height:600px}.demo-world canvas{width:100%;height:100%}.demo-tag{position:absolute;top:20px;left:20px;font-size:11px;letter-spacing:.13em;color:var(--gold);padding:12px;background:#081624bd;border-radius:9px}.demo-tag span{display:block;color:#d4e7dd;letter-spacing:0;font-size:12px;margin-top:6px}#demo-notice{position:absolute;bottom:25px;left:20px;right:20px;font-size:14px;line-height:1.6;background:#0a1b2ade;padding:18px;border:1px solid var(--line);border-radius:10px}.demo-layout .controller{padding:25px}.demo-layout .gamepad{grid-template-columns:160px 1fr 170px;gap:10px;margin-top:30px;min-height:260px}.demo-layout .joystick{width:150px;height:150px}.demo-layout .face-buttons{transform:scale(.74);transform-origin:center;left:-30px}.demo-layout .controller-center{font-size:12px}.demo-layout .clue small{display:none}.demo-layout .task-layout{grid-template-columns:1fr;margin:20px auto;gap:20px}.demo-layout .task-copy{max-width:550px}.demo-layout .task-copy h2{font-size:34px;max-width:100%}.demo-layout .task-copy>p{font-size:14px}.demo-layout .task-copy .private-note{display:none}.demo-layout .task-copy .eyebrow{margin-bottom:10px}.demo-layout .task-copy button{display:inline-block;margin:0 10px 0 0}.demo-layout .hold-magic{width:160px;height:160px}.demo-layout .hold-magic span{font-size:56px}.demo-layout .task-magic progress{margin-top:20px}.demo-layout .bottle-orb{width:95px;height:95px;font-size:65px;margin-bottom:8px;line-height:1.2}.demo-layout .rune-buttons{grid-template-columns:repeat(4,70px);gap:10px}.demo-layout .rune-buttons button{height:70px;padding:5px}.demo-layout .rune-progress{margin:0 0 10px}.settings{max-width:550px;width:90vw;border:1px solid #9ec7b766;border-radius:20px;padding:34px;background:#102336;color:var(--ink);box-shadow:0 20px 100px #0008}.settings::backdrop{background:#031221bc;backdrop-filter:blur(6px)}.settings .eyebrow{font-size:11px;margin-bottom:20px}.settings p{line-height:1.6;color:var(--muted)}.setting-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.setting-actions button{font-size:13px;padding:13px}.settings>.primary{width:100%}.journal-link{margin:20px 0 0;padding:0;min-height:25px;font-size:12px;border:0;border-bottom:1px solid #d9dcb955;border-radius:0;background:none;color:#bacfc4}.resume{font-size:14px!important}.controller:has(.lantern .holding){background:radial-gradient(ellipse at center,#ad8945,#554926 70%,#1b2931)}
@media(min-width:1400px){.controller{padding-top:35px}.gamepad{margin-top:50px;min-height:330px;grid-template-columns:260px 1fr 270px}.joystick{width:235px;height:235px}.face-buttons{transform:scale(1.1)}.task-layout{margin-top:60px}.task-copy h2{font-size:50px}.hold-magic{width:260px;height:260px}.tv-layout{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:1000px){.tv-layout{grid-template-columns:1fr 230px}.camp-panel{padding:20px 16px}.demo-layout{grid-template-columns:1fr;grid-template-rows:38vh auto}.demo-world{min-height:0}.demo-world canvas{object-fit:cover}.demo-layout .controller{min-height:520px}.demo-layout .gamepad{grid-template-columns:190px 1fr 210px;max-width:700px;margin-top:20px}.demo-layout .face-buttons{left:-12px;transform:scale(.85)}.demo-layout .task-layout{grid-template-columns:1fr 1fr}.gamepad{grid-template-columns:180px 1fr 210px;gap:20px}.joystick{width:170px;height:170px}.face-buttons{transform:scale(.85);transform-origin:left center}.join-creatures{width:300px;height:350px}.task-copy h2{font-size:36px}}
@media(max-width:700px) and (orientation:portrait){.topbar{padding:0 16px;height:60px}.connection{display:none}.tools{gap:4px}.join-screen{padding:35px 24px;display:block}.join-card{width:100%;max-width:450px;margin:auto}.join-creatures{display:none}.controller{padding:18px 20px;min-height:calc(100svh - 60px)}.controller:before{content:'↻ Turn your phone sideways for more room';display:block;text-align:center;font-size:12px;padding:10px;color:var(--gold);border:1px solid #b6d0a933;border-radius:8px;margin-bottom:20px}.gamepad{grid-template-columns:1fr 1fr;gap:0;margin:15px auto;max-width:430px}.controller-center{grid-column:1/-1;grid-row:2;margin-top:12px}.controller-center .private-note{max-height:none}.joystick{width:150px;height:150px}.face-buttons{transform:scale(.72);transform-origin:center;left:-22px;width:235px;height:230px;margin-block:-22px}.left-controls small{font-size:9px;max-width:130px;margin:12px auto 0}.guided{gap:8px}.guided>span{width:100%;text-align:center}.guided button{font-size:11px;padding:10px 14px}.controller-heading p{max-width:220px;font-size:11px}.you-label{font-size:10px}.task-layout,.demo-layout .task-layout{display:flex;flex-direction:column;gap:22px;margin:25px auto}.task-copy h2{font-size:34px}.task-copy>p{font-size:15px}.task-copy .private-note{display:none}.task-copy .eyebrow{margin-bottom:12px}.task-copy .back-task{margin-top:8px}.task-magic{width:100%}.hold-magic{width:180px;height:180px}.task-copy button{display:inline-block}.waiting{margin:25px auto}.waiting h2{font-size:35px}.waiting-tips{gap:12px;font-size:12px}.giant{width:90px;height:90px}.tv-layout{display:flex;flex-direction:column;height:auto}.world-wrap{height:65vh;min-height:500px}.camp-panel{padding:24px}.room-card canvas{width:140px!important;height:140px!important}.world-top{left:15px;right:15px;top:15px}.chapter-label{font-size:10px}.chapter-label span{font-size:17px}.world-bottom{left:15px;right:15px;bottom:15px}.story-note{font-size:12px;padding:12px}.rescue-count{font-size:22px}.overlay{padding:15px}.lobby-card{padding:25px}.lobby-card h2{font-size:34px}.lobby-card p{font-size:14px}.demo-layout .gamepad{grid-template-columns:1fr 1fr}.demo-layout .joystick{width:145px;height:145px}.demo-layout .face-buttons{transform:scale(.7);left:-25px}.demo-layout .controller{padding:20px}.demo-layout{grid-template-rows:34vh auto}.result-card{padding:25px 20px}.result-card h2{font-size:36px}.vote-screen{margin:20px auto;display:block}.vote-options{margin-top:20px}.vote-options button{min-width:0}.settings{padding:25px}}
@media(max-height:550px) and (orientation:landscape){.topbar{height:44px;padding:0 max(20px,env(safe-area-inset-left))}.brand{font-size:14px;min-height:28px}.brand span{font-size:7px}.connection{font-size:10px}.icon-button{font-size:20px;min-height:30px;width:35px}.controller{min-height:calc(100svh - 44px);padding:10px max(25px,env(safe-area-inset-right)) 10px max(25px,env(safe-area-inset-left))}.controller-heading b{font-size:12px}.controller-heading p{font-size:10px;line-height:1.3;max-width:480px}.you-label{font-size:10px}.gamepad{grid-template-columns:160px 1fr 170px;gap:20px;margin:5px auto;min-height:185px;max-width:850px}.joystick{width:145px;height:145px}#stick{width:65px;height:65px;inset:calc(50% - 32.5px)}.left-controls small{font-size:9px;margin-top:8px}.face-buttons{transform:scale(.72);transform-origin:left top;height:165px;top:0}.face-buttons .a{bottom:-65px}.controller-center #carry-info{font-size:12px;margin:0 0 6px}.clue{padding:8px}.clue b{font-size:23px;margin:5px}.clue small{font-size:9px}.private-note{font-size:10px;margin:7px 0 0;max-height:40px}.guided{margin:5px 0;gap:8px}.guided button{font-size:11px;min-height:37px;padding:8px 12px}.guided>span{font-size:9px}.helping{font-size:10px;margin:7px 0 0}.task-layout{margin:15px auto;gap:35px;max-width:850px}.task-copy h2{font-size:31px;margin-bottom:10px}.task-copy .eyebrow{font-size:9px;margin-bottom:10px}.task-copy>p:not(.private-note){font-size:13px;margin-bottom:10px}.task-copy button{font-size:10px;min-height:35px;margin-top:7px;padding:8px 12px}.hold-magic{width:155px;height:155px}.hold-magic span{font-size:58px}.hold-magic b{font-size:10px}.task-magic progress{margin-top:18px;height:7px}#progress-label{font-size:10px;margin:7px 0}.bottle-orb{width:105px;height:105px;font-size:68px;line-height:1.25;margin-bottom:10px}.tune-track{margin:15px auto;height:37px}#tune-slider::-webkit-slider-thumb{width:32px;height:32px}#tune-readout{font-size:11px;margin-bottom:5px}.rune-buttons{grid-template-columns:repeat(2,75px);gap:10px}.rune-buttons button{height:65px;font-size:33px;padding:8px}.rune-progress{font-size:27px;margin-bottom:10px}.secret-button{font-size:11px;padding:8px 12px;min-height:36px;margin-top:12px}.waiting{margin:10px auto;display:grid;grid-template-columns:120px 1fr;max-width:700px;text-align:left;column-gap:20px}.waiting .giant{grid-column:1;grid-row:1/5;margin:auto}.waiting h2{font-size:32px;margin:0 0 10px}.waiting .eyebrow{margin:8px 0;font-size:9px}.waiting>p{font-size:13px;margin:0}.waiting-tips{grid-column:2;margin:12px 0;font-size:10px;justify-content:start}.waiting #ready{grid-column:2;width:300px;min-height:38px;padding:10px;font-size:12px}.vote-screen{margin:15px auto;gap:25px}.vote-screen h2{font-size:32px}.vote-screen .eyebrow{margin-bottom:12px}.vote-options{gap:8px}.vote-options button{padding:10px;min-height:40px}.vote-screen #vote-status{margin:0}.demo-layout{grid-template-columns:35% 65%;grid-template-rows:auto;min-height:calc(100svh - 44px)}.demo-world{min-height:340px}.demo-layout .controller{min-height:0;padding:10px}.demo-layout .gamepad{grid-template-columns:115px 1fr 130px;gap:5px;margin:6px auto;min-height:180px}.demo-layout .joystick{width:115px;height:115px}.demo-layout .face-buttons{transform:scale(.56);left:0;top:20px;height:165px}.demo-layout .clue{padding:5px}.demo-layout .clue span{font-size:7px}.demo-layout .clue b{font-size:19px}.demo-layout .task-layout{grid-template-columns:1fr 1fr;gap:15px;margin:10px auto}.demo-layout .task-copy h2{font-size:26px}.demo-layout .task-copy>p{font-size:11px}.demo-layout .rune-buttons{grid-template-columns:repeat(2,60px)}.demo-layout .rune-buttons button{height:55px}.demo-layout .hold-magic{width:130px;height:130px}.demo-layout .guided button{font-size:9px;padding:7px 9px;min-height:32px}.demo-layout .guided>span{display:none}.demo-tag{font-size:9px;left:10px;top:10px;padding:8px}.demo-tag span{font-size:10px}#demo-notice{bottom:10px;left:10px;right:10px;font-size:11px;padding:10px}.controller>.result-card{padding:15px;margin:0 auto}.result-card h2{font-size:32px}.result-card .eyebrow{margin-bottom:10px}.result-card p{font-size:12px;margin-bottom:8px}.result-creatures{height:65px}.result-card .muted-text{font-size:10px}.result-card .reveal{margin:8px 0}.join-screen{padding:25px}.join-card{width:380px}.join-creatures{height:260px}.join-card h2{font-size:35px}.join-card .eyebrow{margin:0 0 12px}.join-card form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.join-card label{margin:6px 0}.join-card form button{grid-column:1/-1}.join-card .muted-text{font-size:11px}.join-card #scan{min-height:36px;padding:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.tap-assist{display:block;font-size:11px;padding:8px 15px;min-height:34px;margin:16px auto 0;border:0;color:var(--muted)}@media(max-height:550px) and (orientation:landscape){.tap-assist{margin-top:8px;min-height:28px;font-size:10px;padding:5px 10px}.task-magic:has(.tap-assist) progress{margin-top:10px}}
.world-wrap canvas,.demo-world canvas{position:absolute;inset:0}.demo-layout{height:calc(100svh - 66px);min-height:600px}.demo-world{background:radial-gradient(ellipse,#203a43,#0c1728)}.demo-layout .controller{overflow-y:auto}.demo-layout .task-layout{margin-top:30px}.demo-layout .gamepad{margin-top:clamp(25px,10vh,100px)}.demo-layout .controller-center .private-note{font-size:14px}.task-copy .private-note{font-size:14px}.gamepad .controller-center #carry-info{font-size:16px}.helping{font-size:13px}.guided button{font-size:14px;min-height:44px}.left-controls small{font-size:12px}.clue small{font-size:12px}.connection{font-size:12px}.home-actions span{font-size:11px}
@media(max-width:1000px){.demo-layout{height:auto;min-height:0}.demo-world{height:38vh}.demo-layout .gamepad{margin-top:25px}}
@media(max-height:550px) and (orientation:landscape){.demo-layout{height:calc(100svh - 44px);min-height:0}.demo-world{height:100%;min-height:0}.demo-layout .gamepad{margin-top:8px}.guided button{font-size:12px;min-height:40px}.gamepad .controller-center #carry-info{font-size:13px}.task-copy>p:not(.private-note){font-size:14px}.controller-heading b{font-size:14px}.helping{font-size:11px}.demo-layout .controller-center .private-note{font-size:11px}.task-copy .private-note{font-size:11px}.demo-layout .task-layout{margin-top:10px}.left-controls small{font-size:10px}.clue small{font-size:10px}}
.evidence{padding-left:18px;text-align:left;color:var(--muted);font-size:13px;line-height:1.6;margin:22px 0 0}.evidence li{margin-top:8px}.hold-magic.holding{background:#f4d78d!important}.hold-magic.holding span,.hold-magic.holding b{color:#3b3315!important}
