/* Shared identity and four-frame character animation. */
.brand-logo{display:block;width:142px;height:auto;max-height:32px;object-fit:contain}.brand{gap:8px!important}.brand>span{font-size:11px;letter-spacing:2px}.sprite{display:block;width:170px;aspect-ratio:1;background-image:var(--sheet);background-size:200% 200%;background-repeat:no-repeat;flex:none}.frame-0{background-position:0 0}.frame-1{background-position:100% 0}.frame-2{background-position:0 100%}.frame-3{background-position:100% 100%}.sprite-play{animation:spriteAct .7s steps(1) 3}.sprite-walk{animation:spriteWalk .5s steps(1) infinite}@keyframes spriteAct{0%,100%{background-position:0 0}50%{background-position:100% 0}}@keyframes spriteWalk{0%,100%{background-position:100% 0}50%{background-position:0 100%}}
.guard .sprite{width:100%;padding:0;border:0;border-radius:0;box-shadow:none;background-color:transparent;margin:0;filter:drop-shadow(0 7px 5px #0005)}.competitor .sprite{width:100%;padding:0;border:0;background-color:transparent}.rival:before{display:none!important}
/* Expeditions use a compact board and an adjacent field notebook. */
.expedition{--ink:#25383b;--paper:#f5f0e4;--accent:#b05b34;background:var(--paper);color:var(--ink);font-family:"PingFang TC","Noto Sans TC",system-ui,sans-serif;margin:0}.expedition *{box-sizing:border-box}.expedition button,.expedition select,.expedition input{font:inherit}.expedition button{cursor:pointer}.expedition button:disabled{cursor:default;opacity:.45}.expedition :focus-visible{outline:3px solid #d68536;outline-offset:4px}.expedition .site-head{height:76px;max-width:1440px;margin:auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #25383b20}.expedition .brand{display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;color:inherit}.expedition nav{display:flex;gap:8px}.expedition .icon-button{font-size:13px;white-space:nowrap;text-decoration:none;color:inherit;border:1px solid #25383b35;padding:10px 13px;border-radius:30px;background:transparent}.quest-shell{max-width:1440px;margin:auto;padding:24px 36px}.quest-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px;gap:20px}.quest-heading h1{font-size:clamp(26px,3vw,43px);margin:6px 0 0;letter-spacing:2px}.quest-heading p{font-size:14px;line-height:1.7;margin:0;color:#63706d}.quest-eyebrow{font:11px/1.4 ui-monospace,monospace;letter-spacing:2px;color:#9e613d}.quest-layout{display:grid;grid-template-columns:minmax(0,1fr) 338px;gap:22px;align-items:stretch}.quest-scene{position:relative;min-height:480px;border-radius:24px;overflow:hidden;background:#263f43;color:#fcf4df;isolation:isolate;box-shadow:0 12px 24px #25383b14}.quest-scene:before,.quest-scene:after{content:"";position:absolute;z-index:-1;pointer-events:none}.quest-scene:before{inset:0;background:radial-gradient(ellipse at 72% 18%,#c8e9ed28,transparent 55%)}.board-hud{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:1px;z-index:3}.scene-message{position:absolute;bottom:18px;left:22px;right:22px;margin:0;padding:12px 15px;border:1px solid #ffffff30;border-radius:12px;background:#142c37d9;color:#fff6e5;font-size:14px;line-height:1.6;z-index:5}.scene-message.success{background:#234f42f0;border-color:#e9c37d}.field-book{display:flex;flex-direction:column;border:1px solid #d7d5c8;border-radius:20px;padding:24px;background:#fffcf4}.field-book h2{font-size:22px;margin:9px 0 10px;line-height:1.5}.field-book .brief{font-size:14px;line-height:1.8;color:#64706c;margin:0 0 14px}.field-book label{display:block;font-size:13px;margin:10px 0 6px}.field-book select,.field-book input[type=number]{width:100%;padding:10px;border:1px solid #b9c4bb;background:#fffef8;color:#25383b;border-radius:8px}.field-book input[type=range]{width:100%;accent-color:#a35c39}.field-book .primary{display:block;width:100%;padding:13px 10px;background:#27483f;border:0;border-radius:10px;color:#fff9e8;font-weight:600;margin:12px 0}.field-book .secondary{border:1px solid #b4bdb0;background:#f4f2e7;color:#2b493f;border-radius:9px;min-height:42px;padding:8px 12px}.actions-row{display:flex;gap:6px;margin:8px 0}.actions-row>*{flex:1}.notebook-foot{margin-top:auto;padding-top:15px}.quest-status{font-size:13px;color:#627367;line-height:1.6;margin:0 0 10px;min-height:21px}.quest-tools{display:flex;justify-content:space-between;gap:6px}.quest-tools button{background:none;border:0;color:#416051;font-size:13px;padding:8px 2px}.metrics{display:flex;gap:16px;border-block:1px solid #deddd0;padding:12px 0;margin:0 0 12px}.metrics>span{font-size:12px;color:#617066}.metrics strong{display:block;font-size:28px;font-weight:500;color:#304d42}.record{font-size:12px;line-height:1.7;max-height:58px;overflow:auto;margin:8px 0;color:#6a6e5f}.quest-footer{display:flex;justify-content:space-between;margin-top:16px;font-size:12px;color:#7b8275}.quest-footer a{color:inherit}.scene-mascot{position:absolute;bottom:86px;left:24px;width:clamp(120px,18vw,215px);z-index:2}.expedition dialog{width:min(580px,calc(100% - 28px));max-height:85dvh;overflow:auto;border:0;border-radius:20px;background:#fffaf0;color:#25383b;padding:30px;line-height:1.9;box-shadow:0 20px 100px #0005}.expedition dialog::backdrop{background:#142a35a6;backdrop-filter:blur(4px)}.expedition dialog h2{margin-top:8px;font-size:26px}.expedition dialog a{color:#326358}.expedition .close{float:right;border:1px solid #ccc6b4;border-radius:50%;width:35px;height:35px;background:transparent;font-size:23px}.expedition dialog table{width:100%;border-collapse:collapse;font-size:14px}.expedition dialog td,.expedition dialog th{padding:8px;border-bottom:1px solid #ded6c7;text-align:left}.expedition dialog details{margin:15px 0}.expedition dialog summary{cursor:pointer;font-weight:600}.badge{display:inline-block;padding:4px 10px;background:#ffffff16;border:1px solid #ffffff30;border-radius:20px;font-size:12px}
/* Mist valley: one lantern moves with the crossing group. */
.bridge .quest-scene{background:linear-gradient(#203b49,#577b79)}.bridge .quest-scene:after{inset:20% -10% 0;background:linear-gradient(150deg,transparent 36%,#283f46 36% 56%,transparent 56%),linear-gradient(30deg,transparent 42%,#365655 42% 62%,transparent 62%);opacity:.8}.bridge-deck{position:absolute;left:13%;right:13%;top:52%;height:47px;background:repeating-linear-gradient(90deg,#9c7453 0 20px,#3b292b 21px 24px);border-block:5px solid #aab396;transform:perspective(350px) rotateX(35deg);box-shadow:0 22px 35px #10282a88}.bank-label{position:absolute;top:24%;font-size:12px;letter-spacing:3px}.bank-label.start{left:8%}.bank-label.finish{right:8%}.walkers{position:absolute;inset:0}.walker{position:absolute;top:35%;left:calc(4% + var(--i)*8%);width:clamp(62px,8vw,108px);padding:0;border:0;background:none;color:#fff4db;z-index:2;transition:left .7s ease,top .7s ease}.walker[data-side="1"]{left:calc(61% + var(--i)*7%)}.walker .sprite{width:100%;filter:drop-shadow(0 8px 4px #0004)}.walker .time-tag{display:inline-block;background:#243d42;border:1px solid #dfc997;border-radius:14px;padding:4px 8px;font-size:12px}.walker[aria-pressed=true] .time-tag{background:#f1ca75;color:#2e403a}.walker:disabled{opacity:.7}.lantern{position:absolute;top:64%;left:17%;font-size:25px;filter:drop-shadow(0 0 14px #ffc067);transition:left .7s ease;z-index:2}.lantern.right{left:78%}.lantern small{font-size:10px;display:block}.mist{position:absolute;bottom:19%;left:-25%;width:150%;height:80px;background:radial-gradient(ellipse,#daf6ec45,transparent 65%);animation:mist 12s ease-in-out infinite alternate;pointer-events:none}@keyframes mist{to{transform:translateX(10%)}}
/* Crystal mine. */
.mine .quest-scene{background:radial-gradient(ellipse at 50% 30%,#385868,#162c3d 74%)}.mine .quest-scene:after{inset:0;background:linear-gradient(145deg,#17212d 17%,transparent 17%),linear-gradient(215deg,#18232f 20%,transparent 20%);z-index:-1}.mine .scene-mascot{left:1%;bottom:90px;width:24%}.balance{position:absolute;left:30%;right:8%;top:18%;height:120px}.beam{position:absolute;top:26px;left:0;right:0;height:7px;background:#c9ad7a;border-radius:5px;transition:transform .6s}.balance[data-result="1"] .beam{transform:rotate(-8deg)}.balance[data-result="-1"] .beam{transform:rotate(8deg)}.balance:before{content:"";position:absolute;left:49%;top:22px;width:8px;height:114px;background:#c9ad7a}.balance:after{content:"";position:absolute;left:36%;top:128px;width:29%;height:7px;background:#c9ad7a}.pan{position:absolute;top:26px;width:37%;height:73px;border:2px solid #c9ad7a;border-top:0;border-radius:0 0 50% 50%;display:flex;align-items:end;justify-content:center;padding-bottom:6px;font-size:12px;transition:transform .6s}.pan-left{left:-9%}.pan-right{right:-9%}.balance[data-result="1"] .pan-left,.balance[data-result="-1"] .pan-right{transform:translateY(20px)}.balance[data-result="1"] .pan-right,.balance[data-result="-1"] .pan-left{transform:translateY(-20px)}.crystals{position:absolute;left:30%;right:7%;top:51%;display:grid;grid-template-columns:repeat(9,1fr);gap:5px}.crystal{border:1px solid #a0d9e352;color:#d1f7ff;background:#4686a329;border-radius:8px;padding:8px 0 5px;min-height:69px;font-size:13px}.crystal:before{content:"◆";display:block;font-size:25px;color:#93def8;text-shadow:0 0 15px #79ddff}.crystal small{display:block;font-size:10px;color:#f5d696}.crystal[aria-pressed=true]{background:#a8dbea;color:#1d3a46;border:2px solid #f2d993}.crystal[aria-pressed=true]:before{color:#225a7b}.crystal[aria-pressed=true] small{color:#264740}.pan-count{position:absolute;left:30%;right:7%;top:73%;text-align:center;font-size:12px;color:#aed0d7}
/* Observatory. */
.observatory .quest-scene{background:radial-gradient(ellipse at 60% 20%,#365565,#172e3c 75%)}.observatory .quest-scene:after{inset:0;background-image:radial-gradient(circle,#d0e8dd70 1px,transparent 1px);background-size:53px 61px;opacity:.5}.station-door{position:absolute;left:40%;top:16%;width:39%;height:55%;border:9px solid #526875;border-bottom:0;border-radius:100px 100px 0 0;background:repeating-linear-gradient(0deg,#253b48 0 34px,#293f4a 35px 36px);box-shadow:0 0 0 2px #889488 inset;display:grid;place-items:center;text-align:center;color:#b7c3bd;font-size:13px;letter-spacing:3px}.station-door.inside{background:#0f202d}.bulb{position:relative;width:72px;height:90px;border:2px solid #829791;border-radius:50% 50% 40% 40%;background:#60766b20}.bulb:before{content:"";position:absolute;left:24px;top:-80px;width:6px;height:79px;background:#647674}.bulb:after{content:"";position:absolute;left:17px;bottom:-14px;width:35px;height:18px;border-radius:4px;background:#95a296}.bulb.lit{background:#ffe8a0;box-shadow:0 0 60px 20px #fce9a55c}.switch-row{display:flex;gap:8px}.switch-button{flex:1;background:#ebe8dc;border:1px solid #a9b5a7;border-radius:10px;padding:11px 0;color:#3e574a;font-size:14px}.switch-button[aria-pressed=true]{background:#365848;color:#fff6d9}.switch-button small{display:block;margin-top:5px;font-size:11px}.room-readout{position:absolute;left:38%;right:16%;top:75%;text-align:center;font-size:13px;color:#e4cf97}
/* Nine-star drawing board. */
.starmap .quest-scene{background:radial-gradient(ellipse at 65% 40%,#324267,#141f37 80%)}.starmap .quest-scene:after{inset:0;background-image:radial-gradient(circle,#ffffff60 1px,transparent 1px);background-size:43px 57px}.starmap .scene-mascot{width:23%;left:1%;bottom:95px}.star-board{position:absolute;top:12%;right:9%;height:70%;aspect-ratio:1;max-width:69%;border:1px solid #8dadd536;border-radius:50%;background:radial-gradient(circle,#688bbc0d,transparent)}.star-board svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.star-path{fill:none;stroke:#9eece5;stroke-width:.028;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 .05px #fff)}.star-point{position:absolute;left:calc(10% + var(--x)*20%);top:calc(10% + var(--y)*20%);transform:translate(-50%,-50%);width:38px;height:38px;background:transparent;color:#7793ac;border:0;border-radius:50%;padding:0;font-size:19px;z-index:1}.star-point.dot{font-size:25px;color:#ecd699;text-shadow:0 0 14px #f2d08565}.star-point.hit{color:#b4fff1;text-shadow:0 0 16px #8cfff4}.star-point.startpoint{outline:1px solid #b4fff1}.star-point:hover{background:#fff2}.star-help{position:absolute;left:22px;top:65px;max-width:100px;font-size:12px;line-height:1.8;color:#96b4c9}
/* Cloud test tower. */
.tower .quest-scene{background:linear-gradient(#73949e,#c0d4cb);color:#233e46}.tower .quest-scene:after{inset:0;background:radial-gradient(ellipse at 10% 75%,#edf6e995 0 15%,transparent 16%),radial-gradient(ellipse at 85% 67%,#edf6e995 0 14%,transparent 15%)}.tower .scene-message{background:#284950ef}.tower-building{position:absolute;left:43%;top:13%;bottom:21%;width:30%;display:flex;flex-direction:column-reverse;border:5px solid #465767;border-radius:10px 10px 0 0;background:#d5dbcc;box-shadow:15px 15px 0 #3a5b6033}.floor-band{flex:1;border-top:1px solid #58747a70;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:10px;color:#36515b;background:linear-gradient(90deg,transparent 15%,#607f8740 15% 25%,transparent 25% 65%,#607f8740 65% 75%,transparent 75%)}.floor-band.safe{background-color:#98c9a6}.floor-band.danger{background-color:#dda088}.floor-band.current{box-shadow:inset 0 0 0 2px #f4d277}.test-orb{position:absolute;width:23px;height:23px;left:77%;top:var(--drop-top,20%);border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#d9bcfc 30%,#8b6cb1);box-shadow:0 0 17px #ddcbff;transition:top .55s ease-in;z-index:3}.test-orb.falling{top:76%!important}.tower .scene-mascot{bottom:77px;left:3%;width:30%}.floor-readout{position:absolute;right:5%;top:13%;font-size:13px;font-weight:600}.tower-legend{position:absolute;left:23px;top:67px;font-size:11px;line-height:2}.tower-legend b{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:2px}.tower-legend .safe-key{background:#98c9a6}.tower-legend .danger-key{background:#dda088}
/* Seven-quest lobby. */
.academy{background:#eee9dc;color:#273f3c}.academy-hero{max-width:1368px;margin:0 auto;padding:42px 36px 28px;display:flex;justify-content:space-between;gap:30px;align-items:center}.academy-hero h1{font-size:clamp(35px,5vw,64px);line-height:1.2;margin:12px 0 18px;letter-spacing:3px}.academy-hero p{line-height:1.9;font-size:15px;color:#68756b;max-width:500px}.academy-hero .sprite{width:250px;filter:drop-shadow(0 20px 10px #6c614e20)}.quest-cards{max-width:1368px;margin:auto;padding:0 36px 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.quest-card{position:relative;text-decoration:none;color:inherit;background:#faf6eb;border:1px solid #d9d6c9;border-radius:20px;overflow:hidden;transition:transform .25s,box-shadow .25s}.quest-card:hover{transform:translateY(-5px);box-shadow:0 12px 20px #253d3215}.card-art{height:176px;position:relative;display:flex;justify-content:flex-end;align-items:center;background:var(--card-bg);overflow:hidden}.card-art:before{content:attr(data-mark);position:absolute;left:22px;top:16px;font:72px Georgia,serif;color:#ffefc53d}.card-art .sprite{height:164px;width:164px;margin-right:25px;transition:transform .3s}.quest-card:hover .sprite{transform:rotate(-4deg)}.card-copy{padding:18px 22px 22px}.card-copy h2{font-size:23px;margin:6px 0 9px}.card-copy p{color:#6f7a71;font-size:13px;line-height:1.8;margin:0 0 14px;min-height:47px}.card-copy small{font-size:11px;color:#9c6b45;letter-spacing:1px}.card-enter{display:flex;justify-content:space-between;border-top:1px solid #dedccf;padding-top:12px;font-size:12px;color:#40624d}.academy-end{max-width:1296px;margin:0 auto 30px;padding:18px;border-top:1px solid #c8cfc0;font-size:12px;color:#70806e;display:flex;justify-content:space-between}
@media(min-width:1000px) and (min-height:800px){.quest-scene{min-height:560px}.field-book{padding:28px}}
@media(max-width:1050px){.quest-layout{grid-template-columns:minmax(0,1fr) 295px;gap:16px}.quest-shell{padding:20px}.expedition .site-head{padding:0 22px}.field-book{padding:20px}.star-board{right:4%;max-width:76%;height:auto;width:76%;top:17%}.crystals{left:24%;right:4%;gap:3px}.balance{left:30%;right:13%}.scene-mascot{width:145px}.quest-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.brand-logo{width:113px;max-height:24px}.brand>span{font-size:9px;letter-spacing:1px}.expedition .site-head{height:64px;padding:0 16px}.expedition .icon-button{font-size:11px;padding:8px 9px}.expedition nav{gap:5px}.quest-shell{padding:17px 14px}.quest-heading{margin-bottom:14px}.quest-heading h1{font-size:27px}.quest-heading p{display:none}.quest-eyebrow{font-size:10px;letter-spacing:1.5px}.quest-layout{display:flex;flex-direction:column;gap:12px}.quest-scene{min-height:315px;border-radius:18px}.board-hud{top:15px;left:18px;right:18px;font-size:10px}.scene-message{left:13px;right:13px;bottom:12px;font-size:12px;padding:9px 12px}.field-book{padding:18px 20px}.field-book h2{font-size:21px;margin:6px 0}.field-book .brief{font-size:13px;margin-bottom:10px}.field-book .primary{min-height:45px}.metrics{margin-bottom:6px;padding:7px 0}.metrics strong{font-size:24px}.scene-mascot{bottom:72px;width:110px;left:10px}.quest-footer{font-size:10px;margin-top:14px;gap:10px}.walker{width:64px;left:calc(1% + var(--i)*8%);top:35%}.walker[data-side="1"]{left:calc(57% + var(--i)*8%)}.walker .time-tag{font-size:10px;padding:3px 6px}.lantern{top:65%;font-size:20px}.bank-label{top:24%;font-size:10px}.bridge-deck{height:32px;top:54%}.mine .scene-mascot{width:25%;bottom:77px;left:0}.balance{height:70px;top:20%;left:33%;right:15%;transform:scaleY(.75);transform-origin:top}.crystals{top:56%;left:26%;right:4%;gap:3px}.crystal{min-height:52px;font-size:11px;padding:3px 0}.crystal:before{font-size:17px}.crystal small{font-size:9px}.pan-count{top:75%;font-size:10px;left:26%}.mine .scene-message{font-size:11px}.station-door{top:19%;height:51%;width:40%;left:42%}.bulb{width:48px;height:60px}.bulb:before{height:40px;top:-41px;left:17px;width:4px}.bulb:after{width:25px;left:10px}.room-readout{font-size:11px;top:74%;left:38%;right:8%}.starmap .quest-scene{min-height:350px}.star-board{width:75%;height:auto;max-width:none;right:3%;top:12%}.star-point{width:40px;height:40px;font-size:16px}.star-point.dot{font-size:22px}.star-help{left:14px;top:54px;width:65px;font-size:10px}.starmap .scene-mascot{width:25%;bottom:79px;left:0}.tower-building{top:15%;left:44%;width:31%;bottom:23%}.tower .scene-mascot{width:34%;left:0;bottom:64px}.tower-legend{left:14px;top:50px;font-size:10px}.floor-band{font-size:9px;padding:0 6px}.floor-readout{font-size:10px;top:18%;right:4%}.academy-hero{padding:27px 20px 18px;gap:0}.academy-hero h1{font-size:35px;letter-spacing:1px}.academy-hero p{font-size:13px}.academy-hero .sprite{width:125px}.quest-cards{padding:0 16px 24px;gap:14px}.card-art{height:130px}.card-art .sprite{width:130px;height:130px;margin:0}.card-art:before{font-size:45px;left:12px}.card-copy{padding:13px}.card-copy h2{font-size:19px}.card-copy p{font-size:12px;min-height:64px}.card-copy small{font-size:9px;letter-spacing:0}.academy-end{margin:0 16px 20px;display:block;line-height:1.8}.academy-end span{display:block}}
@media(max-width:380px){.quest-cards{grid-template-columns:1fr}.brand>span{display:none}.expedition .icon-button{padding:8px}.star-board{right:1%;width:77%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.sprite-play{background-position:100% 0}.sprite-walk{background-position:100% 0}}
/* Keep the action and result visible together on narrow and short screens. */
@media(max-width:760px){
 .expedition:not(.academy) .site-head{height:56px}.quest-shell{padding:10px 14px}.quest-heading{margin-bottom:10px}.quest-heading h1{font-size:26px;margin-top:4px}.quest-scene{min-height:260px}.field-book{padding:12px 16px}.field-book> .quest-eyebrow,.field-book> .brief,.field-book #controls>.brief{display:none}.field-book h2{font-size:16px;line-height:1.5;margin:0 0 8px}.metrics{padding:6px 0;margin-bottom:6px;gap:22px}.metrics strong{display:inline;font-size:22px;margin-left:9px}.metrics>span{font-size:11px}.notebook-foot{padding-top:9px}.quest-status{font-size:12px;margin:0 0 3px;line-height:1.5}.quest-tools button{font-size:12px;padding:5px 0;min-height:32px}.field-book .primary{padding:9px;min-height:42px;margin:8px 0}.field-book .secondary{min-height:40px;font-size:13px}.record{margin:5px 0;font-size:11px;max-height:33px}.quest-footer{margin-top:10px}.bridge #controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}.bridge .metrics,.bridge .record{grid-column:span 2}.bridge #controls>button{margin:0}.mine #controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mine .metrics,.mine .actions-row,.mine #weigh{grid-column:span 2;margin:0}.mine #controls>label,.mine #record{display:none}.mine #accuse{min-width:0;font-size:13px;padding:8px}.mine #identify{padding:5px}.mine .quest-scene{min-height:255px}.mine .scene-message{font-size:11px;bottom:10px}.mine .crystals{left:25%;right:3%;top:52%}.mine .pan-count{top:71%;font-size:10px}.mine .balance{top:17%;transform:scaleY(.62)}.observatory .quest-scene{min-height:260px}.observatory #outside-controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}.observatory #outside-controls[hidden],.observatory #inside-controls[hidden]{display:none}.observatory .switch-row{grid-column:span 2}.observatory #heat-record{grid-column:span 2;grid-row:3;margin:0}.observatory #wait-heat,.observatory #enter-room{margin:0!important;font-size:12px}.observatory .switch-button{padding:7px}.observatory .switch-button small{margin-top:3px}.observatory #inside-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.observatory #thermometer{grid-column:span 2}.observatory #inside-controls label{display:none}.observatory #confirm-switch{margin:0}.observatory #switch-answer{font-size:13px;min-width:0}.starmap .quest-scene{min-height:320px}.starmap #controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.starmap .metrics{grid-column:span 2;margin:0}.starmap #controls>button{margin:0}.tower #controls{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}.tower .metrics{grid-column:span 2;margin:0}.tower #controls>label{display:none}.tower #tower-mode{grid-column:span 2;padding:7px;font-size:12px}.tower #controls>.actions-row{margin:0}.tower #floor-number{font-size:14px;padding:8px}.tower #floor-slider{min-width:0;margin:0}.tower #drop{grid-column:span 2;margin:0}.tower #record{display:none}.tower .quest-scene{min-height:250px}
}
@media(max-width:760px) and (max-height:740px){.quest-scene{min-height:235px}.mine .quest-scene{min-height:225px}.observatory .quest-scene{min-height:235px}.tower .quest-scene{min-height:225px}.starmap .quest-scene{min-height:285px}.starmap .star-board{width:68%;right:4%;top:10%}.starmap .star-point{width:38px;height:38px}.quest-heading h1{font-size:23px}.quest-heading .quest-eyebrow{font-size:9px}.field-book h2{font-size:15px}.quest-footer{display:none}.scene-message{font-size:11px}.bridge .scene-message{font-size:11px}.mine .scene-mascot{bottom:60px}.scene-mascot{bottom:62px}.walker{top:31%}.bridge .lantern{top:62%}.bridge-deck{top:56%}.bank-label{top:23%}.room-readout{top:70%}.station-door{top:17%;height:52%}.tower .scene-mascot{bottom:54px}}
@media(min-width:761px) and (max-height:700px){.expedition .site-head{height:58px}.quest-shell{padding-top:13px}.quest-heading{margin-bottom:12px}.quest-heading h1{font-size:28px}.quest-scene{min-height:430px}.field-book{padding:16px}.field-book h2{font-size:18px;margin:6px 0}.field-book .brief{font-size:12px;margin-bottom:7px}.metrics{padding:7px 0}.metrics strong{font-size:23px}.field-book .primary{padding:10px;margin:9px 0}.notebook-foot{padding-top:8px}.quest-footer{margin-top:10px}}
.lantern svg{display:block;width:31px;height:40px;margin:auto}.lantern small{text-align:center}
@media(min-width:761px){.mine #controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mine .metrics,.mine .actions-row,.mine #weigh,.mine #record{grid-column:span 2;margin:0}.mine #controls>label{display:none}.mine #accuse{min-width:0;font-size:13px;padding:8px}.mine #identify{font-size:13px;padding:5px}.mine .field-book .brief{margin-bottom:10px}.tower #controls{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:center}.tower .metrics,.tower #tower-mode,.tower #drop,.tower #record{grid-column:span 2;margin:0}.tower #controls>label{display:none}.tower #controls>.actions-row{margin:0}.tower #floor-slider{min-width:0}.tower #tower-mode{font-size:12px;padding:9px}.tower .field-book .brief{font-size:13px;margin-bottom:10px}.tower .field-book h2{font-size:20px}}
@media(max-width:760px){.mine .crystals{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;left:36%;right:5%;top:21%}.mine .crystal{min-height:38px;height:38px;padding:4px;font-size:12px}.mine .crystal:before{display:inline;font-size:15px;margin-right:5px}.mine .crystal small{display:inline;font-size:10px;margin-left:5px}.mine .balance{left:10%;right:auto;width:19%;top:22%;transform:scaleY(.5)}.mine .pan{font-size:8px}.mine .pan-count{display:none}.mine .scene-mascot{width:25%;left:1%;bottom:57px}.starmap .star-board{width:65%;right:5%;top:4%}.starmap .star-help{top:44px}.tower .tower-legend{top:47px;font-size:9px}.tower .scene-mascot{width:31%;bottom:55px}}
@media(max-width:760px) and (max-height:740px){.starmap .star-board{width:60%;right:6%;top:5%}.mine .crystals{top:20%}.mine .scene-mascot{width:23%;bottom:47px}.mine .balance{top:20%;width:19%}}
@media(max-width:760px){.bridge .quest-scene{min-height:260px}.bridge .walker{width:52px;left:calc(3% + var(--col)*17%);top:calc(24% + var(--row)*27%)}.bridge .walker[data-side="1"]{left:calc(65% + var(--col)*17%)}.bridge .walker .time-tag{font-size:10px;padding:2px 5px}.bridge .bank-label{top:16%;font-size:9px}.bridge .lantern{top:50%;left:40%;font-size:18px}.bridge .lantern.right{left:50%}.bridge .lantern svg{width:22px;height:30px}.bridge .lantern small{font-size:9px}.bridge .bridge-deck{left:27%;right:27%;top:51%;height:30px}.bridge .mist{bottom:20%}}
@media(min-width:761px){.starmap .star-board{height:66%;width:auto;max-width:72%;top:10%;right:6%}}
@media(min-width:761px) and (max-height:700px){.tower .field-book>.quest-eyebrow{display:none}.tower .field-book h2{font-size:18px}.tower .field-book .brief{font-size:12px;line-height:1.7;margin-bottom:6px}.tower .quest-status{font-size:12px}.tower .notebook-foot{padding-top:4px}}
@media(max-width:760px){.quest-status{max-height:36px;overflow:auto}}
@media(max-width:760px) and (max-height:740px){.mine .crystals{top:16%}}

/* Bridge level controls stay beside the scene and preserve room for feedback. */
.bridge-level-picker{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin-bottom:12px;align-items:center}
.bridge-level-picker label{grid-column:span 2;margin:0;font-size:12px}
.bridge .bridge-level-picker select{min-width:0;padding:9px;font-size:14px;min-height:44px}
#bridge-progress{font-size:12px;color:#536c5d;white-space:nowrap}
.bridge .quest-tools{align-items:center;gap:8px}
.bridge #next-level{border:1px solid #b4bdb0;border-radius:8px;padding:7px 10px;min-height:40px;background:#e9efdf;font-weight:600}
.bridge .quest-status{min-height:42px}
@media(max-width:760px){
 .bridge-level-picker{margin-bottom:8px;gap:4px 8px}
 .bridge-level-picker label{display:none}
 .bridge .bridge-level-picker select{font-size:13px;padding:7px}
 .bridge .quest-status{height:36px;min-height:36px}
 .bridge .quest-tools button{min-height:40px}
 .bridge .record{height:33px}
}
@media(max-width:760px) and (max-height:740px){
 .bridge .quest-scene{min-height:235px}
 .bridge .field-book{padding:10px 14px}
 .bridge .quest-heading{margin-bottom:7px}
 .bridge .notebook-foot{padding-top:5px}
}
@media(max-width:760px) and (max-height:740px){
 .bridge .quest-scene{min-height:250px}
 .bridge .walker{width:48px;top:calc(20% + var(--row)*29%)}
 .bridge .metrics{padding:4px 0;margin-bottom:0}
 .bridge .metrics strong{font-size:20px;line-height:1.2}
 .bridge .record{margin:2px 0}
 .bridge .notebook-foot{padding-top:3px}
 .bridge .quest-heading{margin-bottom:5px}
}
@media(min-width:761px){
 .bridge .field-book{padding:18px}
 .bridge .field-book>.quest-eyebrow{display:none}
 .bridge .field-book h2{font-size:18px;margin:5px 0 8px}
 .bridge .field-book .brief{font-size:13px;line-height:1.7;margin-bottom:8px}
 .bridge #controls{display:grid;grid-template-columns:1fr 1fr;gap:6px}
 .bridge #controls>.brief,.bridge .metrics,.bridge .record{grid-column:span 2}
 .bridge #controls>button{margin:0;min-height:44px;font-size:13px;padding:8px}
 .bridge .metrics{padding:7px 0;margin-bottom:0}
 .bridge .metrics strong{display:inline;font-size:23px;margin-left:8px}
 .bridge .record{height:40px;margin:2px 0}
 .bridge .notebook-foot{padding-top:8px}
 .bridge .quest-tools button{font-size:12px;min-height:40px}
 .bridge .walker{width:clamp(62px,5vw,85px)}
}
@media(min-width:761px) and (max-width:1050px){
 .bridge .walker{width:68px;left:calc(6% + var(--col)*17%);top:calc(29% + var(--row)*22%)}
 .bridge .walker[data-side="1"]{left:calc(62% + var(--col)*17%)}
}
/* All seven games share replay navigation; each keeps its own scene. */
.campaign-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 9px;align-items:center;margin-bottom:10px}
.campaign-bar label{grid-column:span 2!important;margin:0!important;font-size:12px!important;color:#587064}
.campaign-bar select{min-width:0;width:100%;min-height:44px;padding:8px!important;border:1px solid #b9c4bb;border-radius:8px;background:#fffef8;color:#25383b;font:inherit;font-size:13px!important}
#level-progress{font-size:11px;white-space:nowrap;color:#54695a}
#campaign-next{border:1px solid #b4bdb0;border-radius:8px;background:#e9efdf;padding:7px 9px;min-height:40px;color:#294d3d;font-weight:600}
.utility,.quest-tools{align-items:center;gap:5px!important}
.utility button,.quest-tools button{white-space:nowrap}
.walker .time-tag{font-size:10px;padding:4px 5px;white-space:nowrap}
.mine .crystals{grid-template-columns:repeat(6,minmax(0,1fr));top:46%;gap:6px}
.mine .crystal{min-height:52px}
.mine .pan-count{top:78%}
#return-room{grid-column:span 2;width:100%;margin-top:6px}
.observatory #inside-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.observatory #inside-controls[hidden]{display:none}
.observatory #thermometer{grid-column:span 2}
.observatory #inside-controls label{display:none}
.observatory #switch-answer{min-width:0;font-size:13px}
.observatory #confirm-switch{margin:0}
@media(min-width:761px){
 .field-book{padding:18px}.field-book>.quest-eyebrow{display:none}
 .field-book h2{font-size:18px;margin:4px 0 8px}
 .field-book>.brief{font-size:13px;line-height:1.6;margin-bottom:8px}
 .field-book .primary{margin:8px 0;padding:11px}
 .metrics{padding:7px 0}.metrics strong{display:inline;font-size:23px;margin-left:8px}
 .quest-tools button,.utility button{font-size:12px;min-height:40px}
 .notebook-foot{padding-top:7px}
 .console{padding:22px}
 .console>.intro{line-height:1.6}
}
@media(max-width:760px){
 .campaign-bar{margin-bottom:7px;gap:4px 6px}.campaign-bar label{display:none}
 .campaign-bar select{font-size:12px!important;padding:7px!important}
 #level-progress{font-size:10px}#campaign-next{font-size:11px;min-height:40px;padding:6px 8px}
 .quest-tools button,.utility button{min-height:40px;font-size:11px}
 .field-book>.brief{display:none}
 .mine .crystals{grid-template-columns:repeat(3,minmax(0,1fr));top:15%;gap:4px}
 .mine .crystal{height:38px;min-height:38px}
 .mine .quest-scene{min-height:270px}
 .starmap .quest-scene{min-height:285px}
 .starmap .star-board{width:65%;right:5%;top:6%}
 .bridge .walker .time-tag{display:flex;flex-direction:column;font-size:9px;padding:3px 2px;white-space:normal}
 .bridge .walker{width:56px}
 .observatory #return-room{margin:0}
}
@media(max-width:760px) and (max-height:740px){
 .quest-shell{padding-top:7px}.quest-heading{margin-bottom:6px}
 .field-book{padding:10px 14px}.notebook-foot{padding-top:3px}
 .starmap .quest-scene{min-height:270px}
 .starmap .star-board{width:65%;top:6%}
 .bridge .quest-scene{min-height:250px}.bridge .walker{width:48px}
 .mine .quest-scene{min-height:270px}
 .quest-heading .quest-eyebrow{display:none}
 .mine .field-book h2{margin-bottom:6px}
}
.walker .time-tag{display:grid;gap:2px;white-space:nowrap;max-width:100%;font-size:10px}
.walker .time-tag b{font-weight:500}
@media(max-width:760px){.bridge .walker .time-tag{display:grid;font-size:9px}.mine .notebook-foot{padding-top:3px}.mine .quest-status{height:18px;min-height:18px;max-height:18px}}
@media(max-width:760px) and (max-height:740px){.mine .metrics{padding:4px 0}.mine .field-book h2{font-size:14px;line-height:1.4}.mine .actions-row{margin:0}.mine .quest-tools{margin-top:0}.mine .quest-status{display:none}.mine .field-book{padding:9px 14px}.starmap .quest-scene{min-height:305px}.starmap .star-board{top:5%;width:63%}}
@media(max-width:760px) and (max-height:740px){.mine .quest-scene{min-height:250px}.bridge .walker{top:calc(18% + var(--row)*28%)}}
.walkers.resetting .walker{transition:none}
/* Keep labels and the thermometer result clear of the feedback strip. */
.mine .pan-count{display:none}
@media(max-width:760px){
 .game-page.lava .guard-row{bottom:23%}.forest .competitors{bottom:23%}
 .observatory .station-door{top:17%;height:45%}
 .observatory .room-readout{top:65%;margin:0;font-size:12px;left:35%;right:5%}
 .bridge .quest-scene{min-height:280px}
 .bridge .walker{top:calc(16% + var(--row)*32%)}
 .bridge .walker .time-tag{padding:2px;gap:1px;white-space:nowrap}
 .bridge .walker .time-tag span,.bridge .walker .time-tag b{line-height:11px;white-space:nowrap}
 .bridge #record{display:none}
}

/* Advanced lessons extend the existing boards; unrelated games keep their layout. */
.learning-lab{max-width:1180px;margin:24px auto 60px;padding:28px 32px;background:#fffdf5;border:1px solid #c9cdbd;border-radius:18px;color:#253d35;scroll-margin-top:18px}
.learning-lab h2{font-size:26px;margin:8px 0 12px;line-height:1.4}.learning-lab p{font-size:16px;line-height:1.8;margin:12px 0}
.learning-lab button,.guide-content button,.guide-nav button,.guide-primary{min-height:44px;border:1px solid #758e79;border-radius:8px;background:#edf1e3;color:#294c3c;font:inherit;padding:9px 14px;cursor:pointer}
.guide-progress{font-size:13px!important;color:#657563;margin:6px 0 10px!important}.guide-content p{font-size:16px;line-height:1.8;margin:12px 0}.guide-content input{font:inherit;max-width:100%;min-height:44px;border:1px solid #9aa892;background:#fffdf6;border-radius:8px;padding:8px 12px;color:#294c3c}
[data-guide-title]{font-size:23px;line-height:1.5;margin:10px 0 15px;outline-offset:4px}.guide-equation{font-size:clamp(19px,2.5vw,28px)!important;font-weight:600;color:#285746;background:#eaf0df;border:1px solid #c9d3bd;border-radius:9px;padding:14px;overflow-wrap:anywhere}
.guide-nav{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #d9decd;margin-top:22px;padding-top:16px}.guide-nav [data-guide-next],.guide-primary,#learn-start{background:#2d5948;color:#fffdf0;border-color:#2d5948}.guide-nav button:disabled{opacity:.4;cursor:default}
.pair-demo label{display:block;font-size:15px;margin:14px 0 6px}.pair-demo input{width:100px}.subtraction-demo button{margin:4px 6px 4px 0}
.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.config-grid label{display:block;font-size:14px}.config-grid input{display:block;min-width:0;width:100%;min-height:46px;border:1px solid #9aa892;border-radius:8px;padding:8px;background:#fffdf6;font:inherit;color:#294c3c}.config-grid label input{margin-top:7px}#config-error,#take-error{color:#9c3226;font-size:14px}
.forest #configure{font-size:13px;min-height:40px}.take-range>label{font-size:13px;margin:0 0 6px}.take-range>div{display:flex;gap:8px}.take-range input{min-width:0;width:90px;min-height:44px;font:inherit;border:1px solid #879d7e;border-radius:8px;padding:8px;background:#fffdf7}.take-range button{flex:1;min-height:44px;font:inherit;color:#fffdf1;background:#315d49;border:0;border-radius:8px}.take-range p{margin:4px 0 0}
.orb-scale{position:absolute;top:27%;left:6%;right:6%;text-align:center;font-size:11px;line-height:1.5;color:#eadfbf;margin:0;pointer-events:none}.orb.partial{background:linear-gradient(90deg,#f9dd88 var(--fill),#64836966 var(--fill))}
.bridge[data-party-size="5"] .walker,.bridge[data-party-size="6"] .walker{top:calc(14% + var(--row)*23%);width:clamp(58px,5vw,74px)}
.bridge[data-party-size="5"] .lantern,.bridge[data-party-size="6"] .lantern{top:40%;left:39%}.bridge[data-party-size="5"] .lantern.right,.bridge[data-party-size="6"] .lantern.right{left:53%}
.advanced-star .star-board{height:72%;max-width:82%;right:4%;top:8%}.advanced-star .star-help{display:none}.advanced-star .star-path{stroke-width:.035}.star-point[data-marker]:after{content:attr(data-marker);position:absolute;top:0;right:-3px;padding:0 3px;background:#f1d38e;color:#172b37;border-radius:4px;font-size:10px;font-weight:700}.star-point.black-hole{opacity:1!important;color:#eea19b;border:1px solid #cd7f7d;background:radial-gradient(circle,#090e20 35%,#b16a7838 68%,transparent);font-size:22px}.star-point[data-marker]{outline:1px solid #efd38e}
@media(max-width:760px){
 .learning-lab{margin:24px 14px 40px;padding:22px 18px}.learning-lab h2{font-size:23px}[data-guide-title]{font-size:21px}.guide-content p{font-size:16px}.guide-equation{padding:12px}.guide-nav{gap:10px}.config-grid{gap:8px}.config-grid label{font-size:13px}.config-grid input{padding:8px 6px}
 .forest .orb-scale{top:25%;font-size:10px}
 .bridge[data-party-size="5"] .quest-scene,.bridge[data-party-size="6"] .quest-scene{min-height:320px}
 .bridge[data-party-size="5"] .walker,.bridge[data-party-size="6"] .walker{top:calc(14% + var(--row)*23%);width:48px}
 .advanced-star .quest-scene{min-height:370px}.advanced-star .star-board{height:auto;width:80%;max-width:none;right:3%;top:6%}.advanced-star .scene-mascot{width:50px;left:0;bottom:75px;pointer-events:none}.advanced-star .field-book>.brief{display:none}.advanced-star .field-book h2{margin-top:3px;margin-bottom:7px}.advanced-star #controls>.brief{font-size:13px;line-height:1.5;margin-bottom:7px}.advanced-star .notebook-foot{padding-top:5px}
}
@media(max-width:760px) and (max-height:740px){.advanced-star .field-book{padding:10px 14px}.advanced-star .quest-status{display:none}.advanced-star .metrics{padding:5px 0}.advanced-star .quest-footer{display:none}.bridge[data-party-size="5"] .quest-footer,.bridge[data-party-size="6"] .quest-footer{display:none}}
/* First viewport correction: keep new mobile controls visible. */
.forest .orb-scale{display:none}.forest .campaign-bar>#configure{width:auto;margin:0;padding:7px 10px;min-height:44px;text-decoration:none;border:1px solid #b8c4b0;border-radius:8px;background:#eef2e4;font-size:12px}
@media(max-width:760px){.bridge[data-party-size="5"] .walker,.bridge[data-party-size="6"] .walker{top:calc(14% + var(--row)*22%)}}
@media(max-width:760px) and (max-height:740px){.advanced-star .quest-scene{min-height:350px}.advanced-star .star-board{width:75%}.advanced-star .star-point{width:38px;height:38px}}
