/* Game cover art and a quiet teacher-controlled boarding flow. */
.launch-landing{height:100svh;min-height:660px;overflow:hidden}
.launch-landing .landing-copy{padding-top:max(7vh,48px);width:66%;max-width:960px}
.launch-landing .landing-copy h1{height:auto;margin:8px -26px 0}
.launch-landing .title-art{height:auto;display:block;width:min(100%,940px,33vh*3);max-width:none;filter:drop-shadow(0 10px 18px #1c3a5230);animation:title-float 6s ease-in-out infinite}
.launch-landing .landing-description{margin:0 0 14px;text-shadow:0 1px 0 #fff8,0 0 18px #fff9;font-size:clamp(27px,2.7vw,34px);line-height:1.3}
.launch-landing .quality-notice{width:fit-content;max-width:100%;margin:8px 0 14px;padding:7px 11px;border-radius:10px;background:#ffffffd9;color:#243c50;font-size:12px;line-height:1.5}
.launch-cta{display:flex;justify-content:center;align-items:center;gap:18px;min-height:70px;padding:16px 26px;border:2px solid #253d50;border-radius:15px;background:linear-gradient(#ffdf71,#f5b845);box-shadow:0 5px 0 #253d50,0 9px 28px #18364430;color:#243c50;font-family:Jua,sans-serif;font-size:25px;cursor:pointer;transition:transform .15s,filter .15s}
.launch-cta:hover{filter:brightness(1.07);transform:translateY(-2px)}.launch-cta:active{transform:translateY(3px);box-shadow:0 2px 0 #253d50}.launch-cta:disabled{filter:grayscale(.3);opacity:.5;cursor:default;transform:none}
.launch-cta small{display:block;font:11px/1.8 sans-serif;letter-spacing:.3px;opacity:.75;margin-top:2px}.cta-spark{font-size:35px;color:#fff6c3;text-shadow:0 1px 0 #c39124}.cta-arrow{font-size:32px;margin-left:12px}
.launch-landing .world-caption{top:42%;right:4%;max-width:270px;width:270px}.launch-landing .world-caption b{font-size:22px}
.launch-landing .pet-meadow{left:5%;width:87%;height:185px;bottom:22px}
.launch-landing .wandering-pet{animation:none;width:150px;pointer-events:none;cursor:default;will-change:transform}
.launch-landing .pet-sprite{width:150px;height:150px}.launch-landing #pet-name-tag{margin-left:43px}
.mode-hall{min-height:100svh;background:radial-gradient(ellipse at 30% 0,#1e4457 0,transparent 53%),linear-gradient(145deg,#112437,#142137 60%,#0c1729);color:#eff6f4;padding:0 4.5% 38px;position:relative;isolation:isolate}
.mode-hall:before{content:"";position:absolute;inset:0;z-index:-1;background:url('/public/ui/landing-world.webp') center/cover;opacity:.055;pointer-events:none}
.mode-hall .hall-top{position:static;background:transparent;border-bottom:1px solid #ffffff16;max-width:1500px;padding:12px 0;height:85px;display:flex;align-items:center;margin:auto;gap:22px}
.hall-top img{width:200px;height:62px;object-fit:contain}.hall-top>div{margin-left:auto;font-size:11px;color:#a7cebc;display:flex;align-items:center;gap:8px}
.hall-top>button{padding:9px 16px;background:#ffffff07;border:1px solid #ffffff25;border-radius:9px;color:#bad0d8;font-family:Jua,sans-serif;font-size:14px}
.live-dot{display:inline-block;width:7px;height:7px;background:#76e0b3;border-radius:50%;box-shadow:0 0 12px #70e3ae70;flex-shrink:0}
.hall-title{max-width:1500px;margin:30px auto 25px;display:flex;align-items:center;justify-content:space-between;gap:20px}.hall-kicker{font-size:10px;letter-spacing:2.3px;font-weight:800;color:#b7cfcd}
.hall-title h1{font:clamp(27px,2.8vw,42px)/1.25 Jua,sans-serif;color:#fff3c9;margin:9px 0}.hall-title p{font-size:12px;color:#a6bec9;margin:8px 0 0;line-height:1.6}
.hall-party-count{text-align:right;display:flex;align-items:center;gap:10px;white-space:nowrap}.hall-party-count b{font:46px Jua,sans-serif;color:#f8d46c}.hall-party-count span{font-size:11px;color:#b3c9cc}
.hall-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:28px;max-width:1500px;margin:auto}
.selection-caption{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;min-height:31px;gap:10px}.selection-caption>span{font-size:10px;font-weight:800;letter-spacing:2px;color:#8eacba}.selection-caption #my-vote-note{letter-spacing:0;color:#ffdd85;font-size:12px}
.vote-auto{border:1px solid #6c8a91;background:#ffffff08;border-radius:20px;color:#aec7cd;font:12px Jua,sans-serif;padding:8px 14px}.vote-auto.active{border-color:#70d4b7;color:#8aefd3;background:#3fa58d20}
.game-mode-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.game-mode-card{padding:0;overflow:hidden;text-align:left;position:relative;border:1px solid #6b859e61;border-radius:15px;color:#f5f3e4;background:#203249;box-shadow:0 8px 26px #0003;cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s;min-width:0}
.game-mode-card:hover{transform:translateY(-6px);border-color:#97cebc;box-shadow:0 15px 35px #0005}.game-mode-card.picked{border:2px solid #f2d46e;box-shadow:0 0 0 3px #f2d46e16,0 10px 30px #0004}.game-mode-card:focus-visible{outline:3px solid #a4e9d0;outline-offset:4px}
.mode-cover{height:clamp(215px,22vw,335px);position:relative;background-image:url('/public/ui/mode-covers.webp');background-size:300% 100%;background-repeat:no-repeat;background-color:#274659}
.cover-0{background-position:0 0}.cover-1{background-position:50% 0}.cover-2{background-position:100% 0}
.mode-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 65%,#203249);pointer-events:none}
.mode-number{position:absolute;top:14px;left:14px;border:1px solid #fff5;border-radius:7px;padding:6px 9px;font:17px Jua,sans-serif;background:#13233670;color:#ffefc0;z-index:1}
.mode-pick-badge{position:absolute;right:10px;top:15px;z-index:2;border-radius:7px;background:#fbe086;color:#283a4e;font:11px Jua,sans-serif;padding:5px 8px;box-shadow:0 3px 8px #0003}.mode-pick-badge:empty{display:none}
.mode-card-body{padding:5px 17px 17px}.mode-tag{font-size:9px;font-weight:800;letter-spacing:2px;color:#9ce1c0}.mode-lesson .mode-tag{color:#efb5da}.mode-survival .mode-tag{color:#a9c8fb}
.mode-card-body h2{font:clamp(22px,2vw,30px) Jua,sans-serif;margin:8px 0;color:#fff4d6;white-space:nowrap}.mode-card-body p{font:11px/1.65 sans-serif;color:#b7c8d3;min-height:37px;margin:0 0 17px}
.mode-card-bottom{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#c0d0d8;gap:5px}.mode-card-bottom b{font:18px Jua,sans-serif;color:#ffdf82;white-space:nowrap}
.vote-track{height:3px;background:#ffffff12;border-radius:3px;overflow:hidden;margin-top:12px}.vote-track i{display:block;height:100%;background:#77debd;transition:width .35s}
.selection-explanation{min-height:19px;color:#a7c0c7;font-size:11px;margin:15px 0 20px;line-height:1.6}
.hall-settings{background:#ffffff04;border:1px solid #ffffff12;border-radius:13px;padding:19px}.settings-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:17px}.settings-heading span{font:19px Jua,sans-serif;color:#fbe5a7}.settings-heading small{color:#8aa6b4;font-size:10px;align-self:center}
.hall-settings-grid,.hall-map-grid{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:13px}.hall-map-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}
.mode-hall label{font-size:11px;color:#b1c8d1;margin:0;display:flex;flex-direction:column;gap:7px}
.mode-hall select,.mode-hall input{background:#14263b;color:#f1f1df;border:1px solid #ffffff25;border-radius:8px;min-height:42px;padding:10px;font-size:12px;width:100%;margin:0;outline-color:#80dcbe}
.settings-note{font-size:10px;color:#809eaf;margin:12px 0 0}
.boarding-panel{padding-top:44px}.qr-ticket{background:linear-gradient(#fff9e9,#f5ebd4);border-radius:15px;color:#253c50;padding:19px;text-align:center;box-shadow:0 10px 25px #0003;position:relative}
.ticket-heading{display:flex;justify-content:space-between;font-size:9px;font-weight:900;letter-spacing:2px;color:#7e939b}.qr-ticket h2{font:25px Jua,sans-serif;margin:15px 0 12px}.qr-frame{width:200px;max-width:100%;margin:auto;padding:6px;background:#fff;border-radius:10px;box-shadow:0 0 0 1px #283d5114}.qr-frame img{display:block;max-width:100%;height:auto}
.ticket-code{font:29px Jua,sans-serif;letter-spacing:5px;margin:13px 0 4px}.qr-ticket>p{font-size:10px;color:#768992;margin:5px 0 14px}
#copy-join-link{color:#38556b;background:#e3ebdf;border:1px solid #9baea6;border-radius:7px;padding:8px 15px;font:13px Jua,sans-serif;width:100%}
.join-address{font-size:10px;margin-top:13px;text-align:left;color:#6c8591}.join-address summary{cursor:pointer;text-align:center}.join-address label{color:#46606f;margin:12px 0 8px}.join-address input{background:#fff;color:#2b4556;font-size:10px;min-height:34px}.join-address button{background:#d9e5dd;border:1px solid #9baea6;border-radius:6px;color:#38556b;padding:5px 12px;font-size:11px}.join-address small{display:block;font-size:10px;margin-top:8px;line-height:1.5}
.boarding-students{margin:19px 0}.boarding-students h3{font:17px Jua,sans-serif;margin:0 0 12px;color:#d9e7e8;display:flex;justify-content:space-between}.boarding-students h3 span{color:#ffdb7c}
#boarding-roster{max-height:260px;overflow:auto;display:grid;gap:8px}.boarding-player{display:flex;gap:9px;align-items:center;padding:9px;background:#ffffff07;border:1px solid #ffffff10;border-radius:9px;animation:board-in .25s ease-out}.boarding-player>span{height:30px;width:30px;display:grid;place-items:center;background:hsl(var(--avatar-hue) 50% 68%);border-radius:8px;color:#20344b;font:17px Jua,sans-serif}.boarding-player b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boarding-player small{font-size:9px;color:#8de4bd;margin-left:auto;white-space:nowrap}.empty-boarding{border:1px dashed #ffffff20;border-radius:10px;text-align:center;padding:15px;color:#8ca8b5;font-size:10px}.empty-boarding span{font-size:25px;color:#516f86}.empty-boarding p{margin-bottom:0}
.boarding-panel>.launch-cta{width:100%;font-size:21px;min-height:58px;padding:13px}.launch-hint{text-align:center;color:#90abb9;font-size:10px;line-height:1.6;margin-top:14px}
.student-ticket{display:flex;gap:20px;align-items:center;border:1px solid #83b6a331;border-radius:13px;padding:24px;background:#56877512;color:#c0ddd3}.student-ticket>span{font-size:36px;color:#f4d56f}.student-ticket b{font:22px Jua,sans-serif;color:#f1e6c3}.student-ticket p{font-size:12px;margin-bottom:0;line-height:1.6}
.student-boarding{background:linear-gradient(#31486070,#22354e70);border:1px solid #ffffff1a;border-radius:15px;padding:25px;text-align:center}.boarding-star{display:block;font-size:70px;color:#f4d56f;text-shadow:0 0 30px #f1c67230;margin-bottom:12px}.student-boarding h2{font:27px/1.4 Jua,sans-serif;color:#ffedbd}.student-boarding p{font-size:12px;color:#a3bfcb}.waiting-pulse{display:flex;gap:8px;justify-content:center;align-items:center;font-size:11px;color:#97c8b5;margin-top:25px}
.entry-scene{min-height:100svh;padding:32px 20px;background:linear-gradient(#12293985,#162738b0),url('/public/ui/landing-world.webp') center/cover;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.entry-logo{width:360px;max-width:80%;height:auto}.entry-card{max-width:420px;width:100%;border:1px solid #ffffff36;border-radius:20px;padding:30px;background:#12273cee;box-shadow:0 20px 60px #10233550;color:#cee0e7}.entry-card h1{font:29px Jua,sans-serif;color:#fff0b7;margin:15px 0}.entry-card p{font-size:12px;line-height:1.8;color:#a9c4d1}.entry-card label{font-size:12px;color:#ccdfdf}.entry-card input{border:1px solid #557685;background:#fdf5e2;color:#254357;border-radius:9px;min-height:48px}.entry-card .launch-cta{margin-top:20px;width:100%;font-size:22px;min-height:60px}.entry-card .entry-error{color:#ffba9f}
.session-clock{font:13px Jua,sans-serif;color:#36566b;white-space:nowrap}.return-lobby{border:1px solid #405c6f;border-radius:7px;padding:5px 10px;background:#ffdfa1;color:#304d66;font:12px Jua,sans-serif;white-space:nowrap}
@keyframes board-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.demo-ticket{margin-top:22px;padding:16px;border:1px solid #90c6ce45;border-radius:12px;background:#72baca0b;text-align:center}.demo-ticket>span{font:14px Jua,sans-serif;color:#b9dfdf}.demo-ticket button{display:block;width:100%;margin:10px 0;border:1px solid #96d3d8;border-radius:9px;background:linear-gradient(#c6f0ec,#84cfc5);box-shadow:0 3px 0 #526f89;color:#233e53;font:17px Jua,sans-serif;padding:13px 8px}.demo-ticket button:disabled{opacity:.4;cursor:default}.demo-ticket p{font-size:10px;line-height:1.7;color:#9dbac7;margin:10px 0 0}.demo-badge{font:12px Jua,sans-serif;background:#d4edf0;color:#36566c;padding:5px 9px;border-radius:7px;white-space:nowrap}
@media(max-width:750px){.boarding-panel>.demo-ticket{grid-column:1/-1;margin-top:0}.task-bar{flex-wrap:wrap}.demo-badge{font-size:10px}}
@media(min-width:1500px){.mode-cover{height:370px}}
@media(max-width:1050px){.hall-layout{grid-template-columns:minmax(0,1fr) 245px;gap:18px}.mode-hall{padding:0 3% 30px}.game-mode-cards{gap:9px}.mode-card-body{padding:5px 11px 14px}.mode-card-body h2{font-size:23px}.mode-card-body p{font-size:10px}.mode-cover{height:240px}.hall-settings-grid{grid-template-columns:1fr 1fr}.hall-settings-grid>label:last-child{grid-column:1/-1}.hall-title h1{font-size:30px}.hall-party-count span{max-width:70px;white-space:normal;line-height:1.5}.qr-ticket{padding:16px}.launch-landing .landing-copy{width:64%}}
@media(max-width:750px){.launch-landing{height:100svh;min-height:700px;background-size:auto 720px;background-position:60% top}.launch-landing .landing-copy{padding:62px 24px 0;width:100%;max-width:550px}.launch-landing .landing-copy h1{height:auto;margin:12px -8px 24px}.launch-landing .title-art{height:auto}.launch-landing .landing-description{font-size:30px;margin-bottom:26px}.launch-landing .launch-cta{font-size:23px;gap:12px;padding:16px;max-width:380px;width:100%}.cta-spark{font-size:28px}.cta-arrow{margin-left:0;font-size:25px}.launch-landing .pet-meadow{bottom:56px;left:4%;width:92%;height:155px}.launch-landing .world-caption{display:none}.mode-hall{padding:0 20px 30px}.mode-hall .hall-top{height:70px;gap:10px}.hall-top img{width:150px;height:55px}.hall-top>div{font-size:9px}.hall-top>button{font-size:11px;padding:8px}.hall-title{margin-top:24px;align-items:flex-start}.hall-title h1{font-size:29px}.hall-title p{font-size:11px}.hall-party-count{gap:5px;flex-direction:column;align-items:flex-end}.hall-party-count b{font-size:33px}.hall-party-count span{font-size:9px;width:68px}.hall-layout{grid-template-columns:1fr}.game-mode-cards{gap:12px;overflow-x:auto;padding:3px 3px 12px;margin:0 -3px;grid-template-columns:repeat(3,minmax(235px,1fr));scroll-snap-type:x mandatory}.game-mode-card{scroll-snap-align:center}.mode-cover{height:270px}.mode-card-body h2{font-size:28px}.mode-card-body p{font-size:11px}.boarding-panel{padding-top:0;display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.qr-ticket{grid-column:1}.boarding-students{margin:0;grid-column:2}.boarding-panel>.launch-cta,.launch-hint,.waiting-pulse{grid-column:1/-1}.hall-map-grid{grid-template-columns:1fr}.settings-heading small{display:none}.hall-settings{padding:16px}.qr-frame{width:165px}.ticket-code{font-size:25px;letter-spacing:3px}.qr-ticket h2{font-size:22px}.boarding-player{flex-wrap:wrap;gap:6px}.boarding-player small{width:100%;text-align:right}.student-boarding{grid-column:1}.student-boarding h2{font-size:20px}.boarding-star{font-size:45px}.student-ticket{padding:18px;gap:12px}.student-ticket b{font-size:20px}.student-ticket p{font-size:11px}.entry-card{padding:24px}.entry-card h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.game-mode-card,.launch-cta,.vote-track i{transition:none}.boarding-player{animation:none}}

/* Landing kit: usage chips, mode preview, dock with share/install/fullscreen/changelog, footer. */
@keyframes title-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.usage-chips{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 20px;padding:0;border:0;background:none;cursor:pointer;font:12px/1 sans-serif}
.usage-chips span{padding:6px 10px;border-radius:20px;background:#ffffffb8;border:1px solid #24405522;color:#3c5868;font-weight:700;backdrop-filter:blur(4px)}
.usage-chips .usage-badge{background:#244055d9;color:#f3f7ef;border-color:transparent}
.usage-chips i{display:grid;place-items:center;color:#3c5868;opacity:.75}.usage-chips:hover span{border-color:#24405560}.usage-chips:focus-visible{outline:3px solid #6bc7ad;outline-offset:3px;border-radius:20px}




.landing-dock{position:absolute;z-index:6;left:5%;right:4%;bottom:14px;display:flex;align-items:center;gap:14px;pointer-events:none}
.kit-bar{display:flex;align-items:center;gap:4px;padding:5px;border-radius:14px;background:#ffffffcc;border:1px solid #fff;box-shadow:0 6px 18px #1d3b5022;backdrop-filter:blur(6px);pointer-events:auto}
.kit-icon{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:10px;background:transparent;color:#2c4a5e;cursor:pointer;text-decoration:none}.kit-icon[hidden]{display:none}
.kit-icon:hover,.kit-ver:hover{background:#2c4a5e14}.kit-icon:focus-visible,.kit-ver:focus-visible{outline:3px solid #6bc7ad;outline-offset:1px}
.kit-ver{position:relative;height:40px;padding:0 12px;margin-left:4px;border:0;border-left:1px solid #2c4a5e22;border-radius:0 10px 10px 0;background:transparent;color:#2c4a5e;font:14px Jua,sans-serif;cursor:pointer;white-space:nowrap}
.kit-dot{position:absolute;top:8px;right:5px;width:8px;height:8px;border-radius:50%;background:#e8573f;box-shadow:0 0 0 2px #fff}
.kit-footer{margin:0 0 0 auto;padding:7px 14px;border-radius:20px;background:#ffffffcc;color:#64748b;font-size:12px;text-align:center;pointer-events:auto}
.kit-footer a{color:inherit;text-decoration:none;font-weight:700}.kit-footer a:hover{text-decoration:underline}
.kit-sheet{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#0d1d2c88;backdrop-filter:blur(3px)}.kit-sheet[hidden]{display:none}
.kit-sheet-card{position:relative;width:min(440px,100%);max-height:80vh;overflow:auto;padding:26px 24px 22px;border-radius:18px;background:#fffaf0;color:#2b4456;box-shadow:0 20px 60px #0006;animation:board-in .2s ease-out}
.kit-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#2b44560f;color:#2b4456;font-size:15px;cursor:pointer}
.kit-sheet-body h2{font:24px Jua,sans-serif;margin:0 0 8px;color:#243c50}.kit-sheet-body h3{font:16px Jua,sans-serif;margin:18px 0 4px;color:#3c6b5d}.kit-sheet-body p{font-size:13px;line-height:1.7;margin:0}.kit-sheet-body small{display:block;margin-top:4px;font-size:12px;color:#64748b}
.kit-sheet-body details{border-top:1px solid #2b44561a;padding:10px 0}.kit-sheet-body summary{display:flex;justify-content:space-between;cursor:pointer;font:16px Jua,sans-serif}.kit-sheet-body summary span{font:12px sans-serif;color:#64748b}
.kit-sheet-body ul{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}.kit-sheet-body li{font-size:13px;line-height:1.5;display:flex;gap:8px;align-items:baseline}
.kit-sheet-body li em{flex:none;font-style:normal;font-size:11px;font-weight:800;padding:2px 7px;border-radius:9px}.kind-new{background:#d8f1e6;color:#21664c}.kind-up{background:#dbe8fb;color:#2c4f8a}.kind-fix{background:#fbe3d6;color:#8a3c1c}
.author-row{position:relative;display:flex;align-items:center;gap:12px;max-width:1500px;margin:26px auto 0;padding:12px 16px;border:1px solid #ffffff1c;border-radius:12px;background:#ffffff08;color:#c9dbe0;text-decoration:none}
.author-row>span{flex:1}.author-row b{display:block;font:15px Jua,sans-serif;color:#f1e6c3}.author-row small{font-size:11px;color:#9db6c2}.author-row:hover{background:#ffffff10}
.launch-landing .pet-meadow{bottom:72px;height:120px}.launch-landing .wandering-pet,.launch-landing .pet-sprite{width:112px;height:112px}.launch-landing #pet-name-tag{margin-left:30px}
@media(max-width:750px){.launch-landing .landing-copy{padding-top:58px}.launch-landing .title-art{width:100%}.launch-landing .landing-description{font-size:27px}.landing-dock{flex-direction:column;gap:8px;left:12px;right:12px;bottom:10px}.kit-footer{margin:0}.launch-landing .pet-meadow{bottom:122px}.launch-landing{min-height:844px}}
@media(prefers-reduced-motion:reduce){.launch-landing .title-art,.kit-sheet-card{animation:none}}

/* Landing: three mode cards at the lower right. */
.mode-stack{position:absolute;z-index:3;right:4%;bottom:76px;display:flex;gap:12px;margin:0;padding:0;list-style:none}
.mode-mini{animation:mini-bob 3.6s ease-in-out infinite;width:clamp(130px,12vw,176px);border-radius:16px;overflow:hidden;background:#fffaf0f0;border:2px solid #fff;box-shadow:0 10px 26px #1d3b5033;color:#284457;transition:transform .2s}
.mode-mini:nth-child(2){animation-delay:-1.2s}.mode-mini:nth-child(3){animation-delay:-2.4s}
.mode-mini:hover{animation-play-state:paused}
@keyframes mini-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.mode-mini-art{display:block;aspect-ratio:4/3;background-color:#274659;background-image:url('/public/ui/mode-covers.webp');background-repeat:no-repeat;background-size:300% 100%}
.mode-mini-text{display:block;padding:9px 12px 12px}
.mode-mini-text small{display:block;font:800 9px/1 sans-serif;letter-spacing:1.6px;color:#5f8f80}
.mode-mini-text b{display:block;font:clamp(17px,1.5vw,21px)/1.2 Jua,sans-serif;margin:5px 0 3px;white-space:nowrap}
.mode-mini-text i{display:block;font-style:normal;font-size:11px;color:#5d7584;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mode-mini.mode-creative b{color:#2f7a5e}.mode-mini.mode-lesson b{color:#b0457e}.mode-mini.mode-lesson small{color:#c0679a}.mode-mini.mode-survival b{color:#3d64a8}.mode-mini.mode-survival small{color:#5f7fbf}
@media(max-height:700px),(max-width:900px){.mode-stack{display:none}}
@media(prefers-reduced-motion:reduce){.mode-mini{transition:none;animation:none}}

/* Fit the boarding screen to the available height instead of stacking tall art. */
.launch-landing #today-start{display:inline-flex;vertical-align:middle}
.work-shortcuts{display:inline-flex;flex-direction:column;gap:6px;margin:0 0 0 12px;vertical-align:middle}.work-shortcuts button{border:1px solid #29495755;border-radius:10px;background:#fff9e9ed;color:#294957;padding:7px 14px;font:14px Jua,sans-serif}
@media(max-width:750px){.work-shortcuts{display:flex;margin:14px 0 0}.work-shortcuts button{max-width:380px;width:100%}}
.host-save-button,.resume-work{border:1px solid #8adac3;border-radius:8px;background:#d6f2df;color:#244b45;padding:7px 10px;font:13px Jua,sans-serif;white-space:nowrap}
.host-save-status{font-size:10px;color:#acd8c5;white-space:nowrap}.task-bar .host-save-status{color:#375e50}.save-failed,.task-bar .save-failed{color:#e98265}
.dialog-content .host-save-status{color:#326751;font-size:13px}.dialog-content .save-failed{color:#b34625}
.saved-work-list{display:grid;gap:10px;margin:14px 0}.saved-work-list article{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border:1px solid #b4c9c0;border-radius:10px;padding:12px;background:#f5faed}
.saved-work-list article>div{flex:1;min-width:180px}.saved-work-list b,.saved-work-list small{display:block}.saved-work-list small{font-size:11px;color:#617968;margin-top:5px}
.saved-work-list button{padding:7px 10px;border:1px solid #a2c0b4;border-radius:7px;background:#deeee2;font:13px Jua,sans-serif;color:#284f46}
.import-work input{width:100%;padding:10px;border:1px dashed #95b2a4;border-radius:10px;background:#f8faef}
.mode-hall .resume-work{flex-shrink:0;width:100%;min-height:36px}
.mode-hall .boarding-panel:has(.resume-work)>.demo-ticket{display:none}
.mode-hall{height:100svh;min-height:0;padding:0 clamp(16px,3vw,48px) 16px;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}
.mode-hall .hall-top,.mode-hall .hall-title,.mode-hall .hall-layout{width:100%;max-width:1500px;margin:0 auto}
.mode-hall .hall-top{height:58px;padding:5px 0;gap:10px}
.mode-hall .hall-top>.launch-options{position:static;padding:9px 12px;font-size:14px;box-shadow:none}
.mode-hall .hall-top img{width:160px;height:48px}
.mode-hall .hall-title{gap:12px}
.mode-hall .hall-title h1{font-size:clamp(24px,2.5vw,34px);margin:4px 0}
.mode-hall .hall-title p{margin:0;line-height:1.4}
.mode-hall .hall-party-count b{font-size:36px}
.mode-hall .hall-layout{grid-template-columns:minmax(0,1fr) clamp(280px,26vw,330px);gap:20px;min-height:0}
.mode-hall .mode-selection{display:flex;flex-direction:column;min-height:0;gap:8px}
.mode-hall .selection-caption{margin:0;min-height:28px;flex-shrink:0}
.mode-hall .game-mode-cards{flex:1;min-height:0;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));padding:0;margin:0;overflow:visible}
.mode-hall .game-mode-card{display:flex;flex-direction:column;min-height:0}
.mode-hall .game-mode-card:hover{transform:translateY(-2px)}
.mode-hall .mode-cover{flex:1;min-height:60px;height:auto;width:100%}
.mode-hall .mode-card-body{padding:5px 12px 12px;flex-shrink:0}
.mode-hall .mode-card-body h2{font-size:clamp(20px,2vw,28px);margin:4px 0}
.mode-hall .mode-card-body p{min-height:0;margin:0 0 8px;line-height:1.4}
.mode-hall .selection-explanation{min-height:0;margin:0;line-height:1.4;flex-shrink:0}
.mode-hall .hall-settings{padding:12px;flex-shrink:0}
.mode-hall .settings-heading{margin-bottom:8px}
.mode-hall .settings-heading span{font-size:17px}
.mode-hall .hall-settings-grid,.mode-hall .hall-map-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mode-hall .hall-settings-grid>label:last-child{grid-column:auto}
.mode-hall .hall-map-grid{margin-top:8px}
.mode-hall label{gap:4px}
.mode-hall select,.mode-hall input{min-height:34px;padding:6px 8px}
.mode-hall .settings-note{margin:6px 0 0}
.mode-hall .boarding-panel{padding:0;min-height:0;display:flex;flex-direction:column;gap:9px}
.mode-hall .qr-ticket{display:grid;grid-template-columns:128px minmax(0,1fr);gap:5px 12px;padding:12px;flex-shrink:0}
.mode-hall .ticket-heading{grid-column:1/-1;margin-bottom:3px}
.mode-hall .qr-frame{grid-column:1;grid-row:2/6;width:128px;align-self:center}
.mode-hall .qr-ticket h2,.mode-hall .ticket-code,.mode-hall .qr-ticket>p,.mode-hall #copy-join-link{grid-column:2;margin:0;align-self:center}
.mode-hall .qr-ticket h2{font-size:20px}
.mode-hall .ticket-code{font-size:23px;letter-spacing:2px}
.mode-hall .qr-ticket>p{line-height:1.4}
.mode-hall #copy-join-link{padding:8px 4px;font-size:12px}
.mode-hall .join-address{grid-column:1/-1;margin-top:3px}
.mode-hall .join-address[open]{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:10px 12px;border-radius:10px;background:#fff9e9;box-shadow:0 8px 24px #0005}
.mode-hall .boarding-students{margin:0;min-height:0;flex:1;display:flex;flex-direction:column;gap:5px}
.mode-hall .boarding-students h3{margin:0;font-size:15px;align-items:center}
.mode-hall #hall-roster{border:0;border-radius:6px;background:#ffffff12;color:#cbe5df;font:11px Jua,sans-serif;padding:6px 8px;margin-left:auto}
.mode-hall #boarding-roster{max-height:none;overflow:visible;gap:4px}
.mode-hall .boarding-player{padding:5px 8px;gap:7px;flex-wrap:nowrap}
.mode-hall .boarding-player>span{width:24px;height:24px;font-size:14px;flex-shrink:0}
.mode-hall .boarding-player small{width:auto}
.mode-hall .empty-boarding{padding:8px}
.mode-hall .empty-boarding span{display:none}
.mode-hall .empty-boarding p{margin:0}
.mode-hall .boarding-panel>.launch-cta{min-height:44px;padding:8px;font-size:20px;flex-shrink:0}
.mode-hall .launch-hint{margin:0;line-height:1.4}
.mode-hall .demo-ticket{margin:0;padding:8px 10px;flex-shrink:0}
.mode-hall .demo-ticket>span{font-size:12px}
.mode-hall .demo-ticket button{padding:9px 6px;margin:5px 0;font-size:16px}
.mode-hall .demo-ticket p{margin:0;line-height:1.4}
.mode-hall .student-ticket{padding:12px;gap:12px;flex-shrink:0}
.mode-hall .student-boarding{padding:14px;flex-shrink:0}
.mode-hall .boarding-star{font-size:42px;margin-bottom:5px}
.mode-hall .student-boarding h2{font-size:24px;margin:8px 0;line-height:1.3}
.mode-hall .waiting-pulse{margin:0}
.mode-hall .author-row{margin:0 auto;padding:8px 12px;width:100%}
@media(max-height:680px){
 .mode-hall{gap:8px;padding-bottom:10px}
 .mode-hall .hall-top{height:48px}.mode-hall .hall-top img{height:38px}
 .mode-hall .hall-title p,.mode-hall .settings-heading small,.mode-hall .settings-note,.mode-hall .demo-ticket p{display:none}
 .mode-hall .hall-title h1{font-size:26px}.mode-hall .hall-party-count b{font-size:28px}
 .mode-hall .mode-card-body{padding:4px 10px 8px}.mode-hall .mode-card-body p{margin-bottom:4px;font-size:10px}
 .mode-hall .hall-settings{padding:9px}.mode-hall .vote-track{margin-top:6px}
 .mode-hall .boarding-player{padding:3px 6px}.mode-hall .demo-ticket>span{display:none}
 .mode-hall .boarding-player:nth-child(n+3){display:none}
 .mode-hall .demo-ticket button{margin:0}.mode-hall .boarding-panel{gap:7px}
}
@media(max-width:900px){
 .mode-hall .hall-layout{grid-template-columns:minmax(0,1fr) 265px;gap:12px}
 .mode-hall .game-mode-cards{gap:7px}.mode-hall .mode-card-body{padding-left:8px;padding-right:8px}
 .mode-hall .mode-card-body h2{font-size:20px}.mode-hall .mode-card-body p{display:none}
 .mode-hall .mode-card-bottom>span{display:none}.mode-hall .settings-heading small{display:none}
 .mode-hall .qr-ticket{grid-template-columns:110px minmax(0,1fr);gap:5px 8px;padding:10px}
 .mode-hall .qr-frame{width:110px}.mode-hall .qr-ticket h2{font-size:18px}
}
@media(max-width:650px){
 .mode-hall{padding:0 12px 12px;gap:8px}.mode-hall .hall-title h1{font-size:23px}
 .mode-hall .hall-top img{width:105px}.mode-hall .hall-top>button{font-size:11px;padding:7px}
 .mode-hall .hall-top .host-save-status{display:none}.mode-hall .hall-top .host-save-button{font-size:10px;padding:6px}
 .mode-hall .hall-title p,.mode-hall .hall-party-count{display:none}
 .mode-hall .hall-layout{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:10px}
 .mode-hall .mode-card-body h2{font-size:clamp(14px,3.5vw,18px)}.mode-hall .mode-tag{font-size:8px;letter-spacing:1px}
 .mode-hall .boarding-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7px 10px}
 .mode-hall .qr-ticket,.mode-hall .student-boarding{grid-column:1;grid-row:1/4}
 .mode-hall .boarding-students{grid-column:2;grid-row:1}.mode-hall .boarding-panel>.launch-cta,.mode-hall .waiting-pulse{grid-column:2;grid-row:2}
 .mode-hall #boarding-roster{display:none}
 .mode-hall .demo-ticket>span,.mode-hall .demo-ticket p{display:none}
 .mode-hall .demo-ticket button{font-size:12px;white-space:nowrap;padding:9px 3px;margin:0}
 .mode-hall .boarding-panel>.launch-cta{font-size:17px}
 .mode-hall .launch-hint{display:none}.mode-hall .boarding-panel>.demo-ticket{grid-column:2;grid-row:3}
 .mode-hall .resume-work{grid-column:2;grid-row:3;font-size:12px;white-space:normal}.mode-hall .boarding-panel:has(.resume-work)>.demo-ticket{display:none}
 .mode-hall .qr-ticket{grid-template-columns:1fr;padding:8px;gap:3px}
 .mode-hall .qr-frame{grid-column:1;grid-row:2;width:100px}
 .mode-hall .qr-ticket h2,.mode-hall .qr-ticket>p,.mode-hall .ticket-heading{display:none}
 .mode-hall .ticket-code,.mode-hall #copy-join-link{grid-column:1;font-size:15px}
 .mode-hall .hall-settings-grid,.mode-hall .hall-map-grid{gap:6px}
 .mode-hall select{font-size:11px;padding:5px;min-height:32px}
 .mode-hall .boarding-player small{display:none}.mode-hall .student-boarding h2{font-size:20px}
}
@media(max-height:520px) and (min-width:651px){
 .mode-hall{gap:5px;padding-bottom:8px}.mode-hall .hall-top{height:40px}
 .mode-hall .hall-top img{height:32px}.mode-hall .hall-kicker{display:none}
 .mode-hall .hall-title h1{font-size:21px;margin:0}.mode-hall .hall-party-count b{font-size:24px}
 .mode-hall .mode-selection{gap:5px}.mode-hall .mode-cover{min-height:32px}
 .mode-hall .selection-caption{min-height:24px}.mode-hall .vote-auto{padding:5px 10px}
 .mode-hall .mode-card-body p{display:none}.mode-hall .mode-card-body h2{font-size:20px}
 .mode-hall .vote-track{display:none}
 .mode-hall .hall-settings{padding:7px}.mode-hall .settings-heading{margin-bottom:4px}
 .mode-hall .hall-map-grid{margin-top:5px}.mode-hall select{min-height:28px;padding:3px 6px}
 .mode-hall #boarding-roster{display:none}.mode-hall .boarding-students{flex:1}
 .mode-hall .qr-ticket{grid-template-columns:110px minmax(0,1fr);padding:8px;gap:3px 8px}
 .mode-hall .qr-frame{width:110px}.mode-hall .boarding-panel{gap:5px}
 .mode-hall .boarding-panel>.launch-cta{min-height:36px;padding:5px;font-size:18px}
 .mode-hall .demo-ticket{padding:5px}.mode-hall .demo-ticket button{padding:7px}
 .mode-hall .student-boarding{padding:10px}.mode-hall .boarding-star{font-size:26px}
}
