:root{--ink:#493421;--cream:#fff9eb;--green:#647954;--orange:#f6a33d;--line:#dac9aa;font-family:ui-rounded,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:#ede8d9;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible{outline:3px solid #608b84;outline-offset:4px}button{transition:transform .12s,filter .12s}button:active:not(:disabled){transform:translateY(2px)}.hidden{display:none!important}#lobby{height:100dvh;min-height:510px;position:relative;overflow:hidden;background:#f4eddc}.topbar{position:absolute;z-index:3;top:20px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center}.brand-mini{font-weight:800;letter-spacing:2px;background:#fff9ebde;padding:10px 16px;border-radius:100px;font-size:13px}.brand-mini em{font-size:9px;font-style:normal;margin-left:12px;opacity:.5;letter-spacing:1.5px}.icon-button{width:42px;height:42px;border-radius:50%;border:1.5px solid #49342144;background:#fff8e9dd;font-weight:800;font-size:21px;display:grid;place-items:center}.hero-art{position:absolute;inset:0 36% 0 0;background:url('/assets/lobby.png') left center/auto 100% no-repeat}.hero-shade{position:absolute;top:0;bottom:0;left:58%;width:10%;background:linear-gradient(90deg,transparent,#f4eddc)}.intro{position:absolute;left:-10000px}.lobby-card{position:absolute;z-index:2;right:4.5%;top:50%;transform:translateY(-48%);width:32%;max-width:445px;padding:30px;background:#fffaf0;border:2px solid #5d472c;border-radius:26px;box-shadow:7px 8px 0 #d2c3a5}.card-kicker{font-size:11px;font-weight:800;letter-spacing:3px;color:#7b865c}.lobby-card h2{font-size:24px;letter-spacing:-.7px;margin:13px 0 12px}.duo{display:flex;justify-content:center;align-items:center;margin-top:-5px;height:138px;gap:3px}.duo canvas{width:42%;height:auto;max-height:150px;object-fit:contain}.duo-plus{font-size:23px;color:#c39357}.role-names{display:flex;justify-content:space-around;text-align:center;font-weight:800;font-size:14px;margin:-3px 0 24px}.role-names small{display:block;font-size:10px;color:#988365;font-weight:500;margin-top:5px}.primary{background:var(--orange);border:2px solid #79502c;border-radius:13px;box-shadow:0 4px 0 #c78031;min-height:51px;width:100%;font-size:17px;font-weight:800;padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:24px}.primary:hover{filter:brightness(1.06)}.secondary{background:#f6efdF;border:1.5px solid #b8a27c;border-radius:11px;padding:11px 17px;font-weight:700}.full{width:100%;margin-top:14px}#join-form{display:flex;gap:9px;margin-top:18px}input{min-width:0;width:100%;background:#fffdf5;border:1.5px solid #d0bfa0;border-radius:11px;padding:11px;font-size:13px;color:var(--ink)}.separator{border-top:1px dashed var(--line);margin:24px 0 16px;text-align:center;height:0}.separator span{background:#fffaf0;padding:0 10px;position:relative;top:-9px;font-size:11px;color:#9d8a6a}.practice{display:flex;width:100%;border:none;background:transparent;padding:8px 0;justify-content:space-between;font-size:13px;font-weight:800}.practice span{font-size:11px;color:#78825e;font-weight:500}.small-note{font-size:10px;color:#a28e70;text-align:center;margin:16px 0 0;line-height:1.8;overflow-wrap:anywhere}#lobby-error{font-size:12px;color:#ac4c35;margin-top:10px}footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:15px 32px;background:#fff9ebeb;border-top:1px solid #ccb88b55;font-size:11px;font-weight:600;letter-spacing:1px}.text-button{border:0;background:none;font-size:12px;padding:10px;color:#837251}.room-code{display:flex;align-items:center;gap:15px;padding:20px 0;border-bottom:1px dashed var(--line)}.room-code span{font-size:12px}.room-code strong{font-size:30px;letter-spacing:5px}.room-code button{border:none;background:#efe9d8;border-radius:7px;padding:7px;font-size:11px}.player-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9dfca;padding:19px 0;font-size:14px}.player-row b{font-size:12px;color:#698359}.player-row small{color:#aa9575;font-size:11px}.player-row:last-child{margin-bottom:22px}.share-link{width:100%;background:none;border:0;padding:18px 0 0;color:#648071;font-size:13px;font-weight:700}#room-card>.text-button{display:block;margin:10px auto 0}#play{position:relative;width:100vw;height:100dvh;background:#e9e1cd;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}#game{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100vw,177.7778dvh);height:min(100dvh,56.25vw)}#hud{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));display:flex;align-items:center;gap:13px}.back-btn{width:42px;height:42px;border-radius:13px;border:1px solid #49342133;background:#fff9ebd9;font-size:27px}.stage-heading{padding:5px 15px 7px;background:#fff9ebed;border:1px solid #49342122;border-radius:13px}.stage-heading>span{font-size:10px;color:#9b8563}.stage-heading h2{margin:3px 0 0;font-size:19px;letter-spacing:2px}#progress{display:flex;gap:10px;align-items:center;margin-left:15px}#progress span{height:26px;width:26px;border:1.5px solid #7e785f66;border-radius:50%;display:grid;place-items:center;font-size:12px;color:#8a856e;background:#fff9eb80}#progress span.active{background:#697b55;color:#fff;border-color:#697b55}#progress i{width:25px;height:2px;background:#7e785f55}.session-info{margin-left:auto;display:flex;flex-direction:column;align-items:end;font-size:12px;background:#fff9ebd9;border-radius:10px;padding:8px 13px;gap:3px}.session-info small{font-size:9px;color:#6c8054}#objective{position:absolute;top:92px;left:29px;font-size:13px;display:flex;gap:9px;align-items:center;background:#4b4e38e8;border-radius:30px;color:#fff8e6;padding:10px 16px}.objective-dot{width:8px;height:8px;background:#ebba59;border-radius:50%}#role-guide{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;background:#fff9eae8;border:1px solid #c7b695;border-radius:30px;padding:9px 15px;max-width:55%;font-size:11px;line-height:1.6}#role-badge{white-space:nowrap;background:#e3ab59;padding:3px 9px;border-radius:30px;font-size:10px;font-weight:800}#toast{position:absolute;top:145px;left:50%;transform:translateX(-50%);font-size:13px;background:#fff9ed;color:#503824;border:2px solid #745638;border-radius:14px;padding:12px 24px;box-shadow:3px 4px 0 #49342122;max-width:70%;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none}#toast.visible{opacity:1}#controls{position:absolute;inset:0;pointer-events:none}#joystick{position:absolute;pointer-events:auto;left:max(34px,env(safe-area-inset-left));bottom:70px;width:128px;height:128px;touch-action:none}.joystick-ring{position:absolute;inset:0;border:2px solid #fff9e7ab;border-radius:50%;background:#5e5d4660;box-shadow:inset 0 0 0 12px #fff9e71a}.joystick-ring:after{content:'‹　　　　　　　 ›';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff7df7a;font-size:25px;white-space:pre}#joystick-knob{position:absolute;left:38px;top:38px;width:52px;height:52px;border-radius:50%;background:#fff7df;border:3px solid #bcaa87;box-shadow:0 4px 9px #3f342344;pointer-events:none}#joystick>span{position:absolute;bottom:-23px;left:50%;transform:translateX(-50%);font-size:10px;color:#655d46}.action-cluster{position:absolute;right:max(27px,env(safe-area-inset-right));bottom:72px;display:flex;gap:12px;align-items:flex-end;pointer-events:auto}.round{border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 5px 0 #49342133;touch-action:none}.round span{line-height:1;font-size:31px}.round small{font-size:11px;font-weight:800}.round.minor{width:66px;height:66px;background:#fff8e6df;border:2px solid #bdab89}.round.main{width:107px;height:107px;background:#f5a43b;border:3px solid #9b6a34;color:#52381f}.round.main span{font-size:40px}.round.pressed{transform:scale(.94);filter:brightness(.94)}.keyboard-hint{position:absolute;left:30px;bottom:21px;font-size:9px;color:#7f745d;letter-spacing:.5px}.switch-role{position:absolute;right:28px;bottom:20px;background:#fff9e9;border:1px solid #ae9974;border-radius:20px;padding:9px 15px;font-size:11px;font-weight:700}.switch-role kbd{margin-left:7px;font-size:9px;opacity:.45}#tension-hud{position:absolute;top:96px;right:30px;width:245px;background:#fff9ecef;padding:12px 16px;border-radius:13px;border:1px solid #cebc98}#tension-hud>div:first-child{display:flex;justify-content:space-between;font-size:12px}#tension-label{font-size:10px;color:#79845b}.meter{position:relative;background:#e9b9a0;height:12px;border-radius:10px;margin-top:12px;overflow:hidden}#tension-target{position:absolute;height:100%;width:38%;background:#8eaa70}#tension-needle{position:absolute;top:0;width:5px;height:100%;background:#433e2a}#capture-hud{position:absolute;top:95px;right:30px;padding:12px 17px;background:#fff9ecef;border:1px solid #cebc98;border-radius:13px;font-size:12px}#catch-count{color:#c5802c;margin-left:20px;letter-spacing:5px}#capture-hud small{display:block;margin-top:7px;font-size:10px;color:#7a8660}.overlay{position:absolute;inset:0;background:#29332977;backdrop-filter:blur(6px);display:grid;place-items:center;z-index:10}.modal{background:#fff9ed;border:2px solid #64462d;border-radius:25px;padding:35px;width:430px;max-width:90vw;text-align:center;box-shadow:8px 9px 0 #362b2333}.modal h2{font-size:25px;margin:16px 0}.modal p{font-size:13px;line-height:1.9;color:#998266;margin-bottom:25px}.modal .text-button{margin-top:16px}.win-medal{font-size:44px;color:#edaa46;margin-top:14px}.stats{display:flex;justify-content:space-around;margin:25px 0}.stats strong{display:block;font-size:22px}.stats small{font-size:10px;color:#9b8667;margin-top:7px;display:block}.next-chapter{display:block;font-size:10px;color:#b1a18a;margin-top:15px}dialog{border:2px solid #60452d;border-radius:25px;background:#fff9ed;max-width:560px;width:90vw;padding:35px;color:var(--ink)}dialog::backdrop{background:#33382a88;backdrop-filter:blur(4px)}dialog h2{font-size:24px}.close{position:absolute;right:18px;top:12px;background:none;border:none;font-size:26px}dialog li{padding:6px 0}dialog li p,.help-controls{font-size:13px;line-height:1.8;color:#8a7658}.help-controls{border-top:1px dashed #d5c5a6;padding-top:16px}#global-toast{position:fixed;z-index:99;left:50%;bottom:28px;transform:translateX(-50%);background:#443e2deF;color:#fff9ed;padding:12px 24px;border-radius:30px;font-size:13px;pointer-events:none;opacity:0;transition:opacity .2s}#global-toast.visible{opacity:1}
@media(max-height:650px){#lobby{min-height:340px}.topbar{top:10px;left:16px;right:16px}.lobby-card{padding:17px 23px;border-radius:19px;right:4%;width:34%;transform:translateY(-48%)}.lobby-card h2{font-size:19px;margin:7px 0}.duo{height:94px}.duo canvas{max-height:100px}.role-names{margin:0 0 12px;font-size:12px}.role-names small{font-size:9px}.primary{min-height:41px;padding:9px;font-size:14px}#join-form{margin-top:12px}#join-form input{padding:8px;font-size:11px}.secondary{padding:8px 12px}.separator{margin:18px 0 12px}.small-note{font-size:9px;margin-top:8px}.practice{font-size:11px}.practice span{font-size:9px}footer{padding:10px 20px;font-size:9px}.topbar .brand-mini{font-size:10px;padding:7px 10px}.brand-mini em{font-size:8px}.topbar .icon-button{height:30px;width:30px;font-size:17px}#hud{top:10px;left:14px;right:14px;gap:8px}.stage-heading{padding:4px 11px}.stage-heading h2{font-size:15px}.stage-heading>span{font-size:8px}.icon-button,.back-btn{height:33px;width:33px;font-size:19px}#progress{margin-left:7px;gap:6px}#progress span{height:21px;width:21px;font-size:10px}#progress i{width:15px}.session-info{font-size:10px;padding:5px 9px}.session-info small{font-size:8px}#objective{top:70px;left:16px;font-size:10px;padding:7px 11px}#toast{top:108px;font-size:11px;padding:9px 16px}#joystick{width:95px;height:95px;left:24px;bottom:49px}#joystick-knob{width:42px;height:42px;left:26.5px;top:26.5px}.action-cluster{bottom:45px;right:22px;gap:9px}.round.main{height:83px;width:83px}.round.minor{height:53px;width:53px}.round small{font-size:9px}.round span{font-size:25px}.round.main span{font-size:31px}#role-guide{bottom:14px;padding:6px 10px;font-size:9px;max-width:50%}.switch-role{right:18px;bottom:11px;padding:6px 10px;font-size:9px}.keyboard-hint{bottom:12px;left:20px;font-size:8px}#tension-hud,#capture-hud{top:69px;right:17px;padding:8px 12px}#tension-hud{width:210px}#tension-hud b,#capture-hud b{font-size:10px}.meter{margin-top:8px;height:9px}.modal{padding:20px 27px}.modal h2{font-size:22px;margin:10px 0}.modal p{margin-bottom:16px}.win-medal{font-size:29px;margin-top:7px}.stats{margin:16px 0}.stats strong{font-size:18px}.room-code{padding:10px 0}.player-row{padding:11px 0}.player-row:last-child{margin-bottom:10px}.room-code strong{font-size:25px}}
@media(orientation:portrait){#lobby{min-height:680px;overflow-y:auto}.hero-art{inset:0 0 44% 0;background-size:auto 100%;background-position:8% center}.hero-shade{left:0;right:0;top:38%;bottom:auto;height:18%;width:100%;background:linear-gradient(transparent,#f4eddc)}.lobby-card{top:auto;bottom:65px;left:7%;right:7%;width:auto;max-width:none;transform:none;padding:20px 25px}.duo,.role-names{display:none}.lobby-card h2{font-size:22px;margin-bottom:20px}.intro{display:none}footer>span:nth-child(2){display:none}.topbar{left:16px;right:16px}.topbar .brand-mini em{display:none}.keyboard-hint{display:none}#hud{flex-wrap:wrap}.stage-heading h2{font-size:15px}#progress{display:none}.session-info{font-size:9px}#objective{top:86px;left:14px;right:14px;justify-content:center;font-size:11px}#role-guide{max-width:90%;width:90%;bottom:220px;justify-content:center}#joystick{bottom:70px;left:25px;width:105px;height:105px}#joystick-knob{left:26.5px;top:26.5px}.action-cluster{bottom:73px;right:20px;gap:8px}.round.minor{width:51px;height:51px}.round.main{width:78px;height:78px}#jump{display:none}.switch-role{bottom:23px;right:50%;transform:translateX(50%);white-space:nowrap}#tension-hud,#capture-hud{top:135px;right:20px;left:20px;width:auto}#toast{top:190px;width:90%;max-width:90%;font-size:11px}.modal{padding:25px}#game{width:100vw;height:56.25vw}.small-note{font-size:10px}}
@media(pointer:coarse){.keyboard-hint,.switch-role kbd{display:none}}
#join-form .secondary{flex-shrink:0;white-space:nowrap}
.practice-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#8b7959;margin-top:7px}.practice-choice select{font:inherit;color:#655239;background:#f6f0df;border:1px solid #d2c4a6;border-radius:7px;padding:6px;min-width:0}#tension-target{width:15%}
@media(orientation:landscape) and (max-height:500px){#lobby .lobby-card{max-height:calc(100dvh - 70px);overflow-y:auto}#lobby .duo{display:none}#lobby .role-names{margin:8px 0 10px}.practice-choice{margin-top:4px;font-size:9px}.practice-choice select{padding:4px}#lobby .hero-art{right:40%;background-size:auto 120%;background-position:left top}#lobby .hero-shade{left:52%;width:12%}}
#rotate-overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#f4eddcf5;backdrop-filter:blur(12px);padding:24px;overflow:auto}.rotate-card{max-width:340px;text-align:center}.rotate-card h2{font-size:26px;margin:28px 0 14px}.rotate-card p{font-size:13px;line-height:1.9;color:#8a7659;margin-bottom:26px}.rotate-card>small{display:block;font-size:11px;color:#958569;line-height:1.8;margin-top:18px}.rotate-card .text-button{margin-top:14px}.rotate-phone{width:146px;height:84px;border:4px solid #65543a;border-radius:17px;margin:45px auto 0;position:relative;background:#e2e8cc;display:grid;place-items:center;box-shadow:7px 7px 0 #d9c9a9}.rotate-phone:before{content:'';position:absolute;left:6px;top:28px;width:4px;height:20px;background:#65543a;border-radius:4px}.rotate-phone:after{content:'↻';position:absolute;right:-25px;top:-34px;font-size:36px;color:#b88843}.rotate-phone span{font-size:31px}#fullscreen{font-size:23px;flex-shrink:0}
@media(orientation:landscape) and (max-height:500px){.lobby-card{padding:14px 20px;top:48%;width:36%;right:3%}.lobby-card .duo{height:55px}.lobby-card .duo canvas{max-height:64px}.lobby-card .role-names{margin:0 0 9px;font-size:10px}.lobby-card .role-names small{display:none}.lobby-card h2{font-size:17px;margin:6px 0}.lobby-card .card-kicker{font-size:9px}.lobby-card .separator{margin:16px 0 10px}.lobby-card .primary{min-height:35px;padding:7px;font-size:13px}.lobby-card .small-note{margin-top:5px;font-size:8px}#join-form{margin-top:11px}#join-form input{padding:7px}footer{padding:7px 20px}.topbar .brand-mini{font-size:9px}#hud,#objective,#tension-hud,#capture-hud{padding-top:0}#hud{left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right))}.session-info{max-width:135px}#joystick{left:max(24px,env(safe-area-inset-left));bottom:max(49px,env(safe-area-inset-bottom))}.action-cluster{right:max(22px,env(safe-area-inset-right));bottom:max(45px,env(safe-area-inset-bottom))}}

/* Twelve chapters: keep the shared world readable on phone landscape. */
#progress{gap:4px}#progress span{width:22px;height:22px;font-size:10px}.adventure #role-guide{max-width:55%;background:#173846df;color:#f5e5c2}.adventure #objective{max-width:46%}.adventure #capture-hud{max-width:39%;background:#173846e8;color:#f0e4c4}.adventure #capture-hud small{color:#c8ded1}.win .primary + .primary{margin-top:9px}dialog{max-height:85dvh;overflow:auto}
@media(max-width:1100px){#progress{display:none}.adventure #capture-hud{max-width:43%}.adventure #objective{max-width:44%;font-size:10px}}

#play.adventure{background:#172e39}.adventure .keyboard-hint{color:#d4d9bc}

/* Illustrated launch menu. UI stays separate from the background plate. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#lobby{min-height:0;background:#16373a;height:100dvh;overflow:hidden}
#lobby .hero-art{inset:0;background:#16373a url('/assets/launch-world.png') left center/auto 100% no-repeat}
#lobby .launch-tools{left:auto;right:max(24px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));gap:12px}
.launch-tools .icon-button{background:#473323b8;color:#fff4d6;border:2px solid #efdab2;width:42px;height:42px}
#home-card.launch-menu{position:absolute;right:max(4%,env(safe-area-inset-right));bottom:7%;width:26%;max-width:450px;display:flex;flex-direction:column;gap:clamp(9px,1.5vh,18px);z-index:2}
.launch-menu button{font-family:inherit;font-weight:900;transition:transform .15s,filter .15s;cursor:pointer;flex-shrink:0}
.launch-menu button:hover{filter:brightness(1.08);transform:translateY(-2px)}
.launch-menu button:active{transform:translateY(2px)}
.launch-primary{height:clamp(56px,11vh,108px);border-radius:60px;border:3px solid #6b3c20;background:linear-gradient(#ffdc73,#ffb72f);box-shadow:inset 0 0 0 5px #ffe493,inset 0 -8px 0 #ed912a,0 5px 0 #533720;font-size:clamp(22px,2.8vw,43px);color:#462813;letter-spacing:3px}
.launch-primary span{color:#d58b30;margin-left:8px}
.launch-secondary{height:clamp(46px,8vh,79px);border-radius:50px;border:3px solid #795237;background:#fff3d8;box-shadow:inset 0 0 0 4px #e9d2a8,0 3px 0 #463329;font-size:clamp(18px,2.1vw,32px);color:#462f21;letter-spacing:3px}
.launch-practice{align-self:center;width:76%;height:clamp(38px,6vh,57px);border-radius:40px;border:2px solid #b9d1cb;background:#163b3dac;color:#fff4df;font-size:clamp(14px,1.5vw,23px);letter-spacing:3px}
.launch-note{margin:2px 0 0;color:#f4e8cb;text-align:center;font-size:clamp(11px,1.3vw,18px);letter-spacing:2px;text-shadow:0 2px 4px #123}
#lobby-error:empty{display:none}.launch-menu #lobby-error{color:#ffe2bc;background:#633c2dde;border-radius:8px;padding:8px;margin:0}
.launch-map{position:absolute;bottom:5%;left:max(4%,env(safe-area-inset-left));z-index:2;display:flex;align-items:center;gap:12px;border:2px solid #c59658;border-radius:13px;padding:10px 20px;background:linear-gradient(120deg,#513825,#896039);color:#fff0c9;box-shadow:0 4px 0 #35271c;font-size:clamp(17px,1.8vw,27px);text-align:left;font-weight:800;transform:rotate(-3deg)}
.launch-map>span:first-child{font-size:38px;color:#f6c66c}.launch-map small{display:block;font-size:clamp(10px,.8vw,13px);font-weight:500;margin-top:4px;color:#e4ceab}
.launch-dust{position:absolute;inset:0;pointer-events:none;overflow:hidden}.launch-dust i{position:absolute;left:52%;top:28%;width:4px;height:4px;border-radius:50%;background:#ffedaa;box-shadow:0 0 12px #ffe7a0;animation:launch-drift 9s ease-in-out infinite alternate}.launch-dust i:nth-child(2){left:39%;top:42%;animation-delay:-3s}.launch-dust i:nth-child(3){left:64%;top:62%;animation-delay:-5s}.launch-dust i:nth-child(4){left:72%;top:23%;animation-delay:-7s}.launch-dust i:nth-child(5){left:25%;top:69%;animation-delay:-2s}.still .launch-dust{display:none}@keyframes launch-drift{from{transform:translate(0,15px);opacity:.1}to{transform:translate(-35px,-30px);opacity:.8}}
#map-dialog{max-width:960px;width:90vw}#map-dialog p,#join-dialog p{font-size:13px;color:#88765a}#map-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.map-level{display:flex;gap:10px;align-items:center;min-height:64px;padding:12px;border:1px solid #cbb58b;border-radius:12px;background:#f0e5cb;text-align:left;color:#51432c}.map-level span{font-size:21px;color:#ab854b}.map-level b{font-size:13px}.map-level[aria-pressed=true]{border:2px solid #497c71;background:#d7e4cb}.motion-setting{display:flex;gap:10px;align-items:center;margin:25px 0}.motion-setting input{width:18px;height:18px}
#room-card{max-height:88dvh;overflow:auto}button:focus-visible{outline:3px solid #58cbd2;outline-offset:4px}
@media(orientation:landscape) and (max-height:500px){#home-card.launch-menu{bottom:7%;right:4%;width:27%;gap:9px}.launch-primary{height:54px;font-size:23px}.launch-secondary{height:43px;font-size:20px}.launch-practice{height:35px;font-size:14px}.launch-map{padding:7px 13px}.launch-map>span:first-child{font-size:27px}#lobby .launch-tools{top:12px;gap:9px}.launch-tools .icon-button{width:32px;height:32px}#map-dialog{padding:18px 24px}#map-dialog h2{margin:4px 0}#map-levels{gap:7px}.map-level{min-height:45px;padding:7px}.map-level b{font-size:11px}}
@media(orientation:portrait){#lobby{min-height:0;overflow:hidden}#lobby .hero-art{background-size:auto 64%;background-position:28% top}#home-card.launch-menu{left:12%;right:12%;width:auto;bottom:13%;max-width:none;gap:13px}.launch-map{bottom:3%;left:12%;right:12%;justify-content:center;transform:none}.launch-primary{height:60px}.launch-secondary{height:48px}.launch-practice{height:40px}.launch-note{font-size:12px}.launch-tools .icon-button{width:32px;height:32px}#map-levels{grid-template-columns:repeat(2,minmax(0,1fr))}#room-card{top:50%;bottom:auto;transform:translateY(-50%)}}
@media(prefers-reduced-motion:reduce){.launch-dust{display:none}.launch-menu button{transition:none}}

.map-level:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.6);border:1px solid #cbb58b;background:#e3dfd3;box-shadow:none;transform:none}
