/* Student journey: calm landscape, readable cards, generous touch targets. */
body.student-theme,body.student-theme[data-screen]{--student-ink:#234b32;--student-cream:#fffdf0;background:#edf2dd url('/lam-son-landscape.webp') center/cover fixed;color:var(--student-ink)}
body.student-theme>header,body.student-theme[data-screen]>header{height:56px;min-height:56px;padding:0 3%;background:#fbfdefed;border-bottom:1px solid #bdce9e;gap:16px}.student-theme .brand{color:#285133;font-size:11px}.student-theme .brand small{font-size:7px;color:#799363}.student-theme .seal{border-color:#9bb779;color:#597d44;width:31px;height:31px;font-size:13px}.student-theme .demo{font-size:9px;letter-spacing:1px;color:#80906c}.student-theme header .quiet{border:1px solid #bfceaa;background:#fffdf3;border-radius:20px;padding:8px 14px;font-size:10px;color:#547146}.student-theme .sync-strip{position:static;display:block;background:#e8efdbef;border-bottom:1px solid #cbd8b6;color:#637d4d;font-size:10px;letter-spacing:.15px;padding:8px 14px;min-height:30px}.student-theme .sync-strip.offline{background:#fff0d7;color:#9a6836}.student-theme[data-screen=intro] .sync-strip:empty{display:none}
.student-theme .welcome-screen,.student-theme .tutorial-screen{min-height:calc(100svh - 86px);padding:30px 20px;background:transparent}.student-theme .welcome-landscape{background:url('/lam-son-landscape.webp') center/cover}.student-theme .welcome-landscape svg{display:none}.student-theme .welcome-screen:after{background:linear-gradient(90deg,#e9f0d71a,#f7fae84d,#e9f0d71a)}.student-theme .welcome-content{width:min(100%,580px)}.student-seal,.student-theme .welcome-emblem{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid #779d59;outline:3px double #b8d195;outline-offset:4px;background:#f7fce8;color:#37623b;font:700 20px Arial,sans-serif;margin:0 auto 22px}.student-theme .welcome-content .eyebrow{font-size:10px;letter-spacing:3px;font-weight:600;color:#66884b;margin-bottom:10px}.student-theme .welcome-content h1{font:700 clamp(25px,3vw,37px)/1.16 Georgia,'Times New Roman',serif;color:#214a2d;margin:0}.join-intro{font-size:11px;line-height:1.8;color:#71865e;margin:14px 0 23px}.student-theme .name-panel{width:min(100%,410px);gap:12px;padding:25px 30px;border-radius:18px 5px 18px 5px;background:#fffff4f5;border:1px solid #a9c38b;outline:3px double #cfddba;outline-offset:4px;box-shadow:0 15px 45px #405e2920}.student-theme .name-panel label{text-align:left;font-size:12px;color:#4f6c3f;font-weight:600}.student-theme .name-panel input{margin:0;border-radius:8px;border:1px solid #bacc9d;background:#fbfdef;min-height:49px;font-size:16px;padding:13px;text-align:left}.student-theme .name-panel input[name=code]{font-size:28px;letter-spacing:7px;text-align:center;font-weight:700;min-height:62px;color:#2a5d3d;background:#eef5df}.student-theme .name-panel input[name=code]::placeholder{font-size:15px;letter-spacing:2px;color:#a1b18b}.student-theme .name-panel input:focus{outline:3px solid #d3e6b8;border-color:#6b9b52}.student-theme .name-panel .primary{border-radius:25px;background:linear-gradient(#447a48,#285d3b);color:#ffffee;padding:14px;font-size:12px;min-height:48px;letter-spacing:1px;box-shadow:inset 0 1px 0 #ffffff35}.student-theme .name-panel small{font-size:9px;color:#8b997a}.student-theme .welcome-subtitle{font-size:12px;color:#71845d}.student-theme .welcome-meta{margin-top:23px;font-size:10px}
.student-theme .tutorial-screen:after{background:#f4f8e7b3}.student-theme .tutorial-screen .welcome-landscape{filter:none;transform:none}.student-theme .tutorial-content{max-width:1050px}.student-theme .tutorial-content>h1{font:700 33px Arial,sans-serif;color:#214b2f}.student-theme .tutorial-intro{font-size:12px;color:#748661;margin-bottom:22px}.student-theme .lesson-cards{gap:17px}.student-theme .lesson-cards article{border:1px solid #b7cd9b;border-radius:15px 4px 15px 4px;background:#fffef2f2;padding:20px;box-shadow:0 5px 18px #34572b12}.student-theme .lesson-number{border-radius:50%;background:#e1edcc;color:#5b7a42;width:29px;height:29px;display:grid;place-items:center;padding:0}.student-theme .lesson-cards svg{height:130px;margin:5px 0 10px}.student-theme .lesson-cards h3{font-size:15px;color:#355737}.student-theme .lesson-cards p{font-size:11px;line-height:1.8;color:#6c805c}.student-theme .start-game{border-radius:30px;padding:14px 25px;font-size:12px;min-height:48px;background:linear-gradient(#477d48,#2d623b);border:1px solid #426e3a;outline:3px double #bbd39b;outline-offset:3px}.student-theme .tutorial-finish{margin:19px 0}.student-theme .tutorial-note{font-size:10px;max-width:650px;margin:10px auto}.student-theme .tutorial-timing{font-size:10px;margin-top:17px}
.student-theme[data-screen=lobby] main{max-width:none;padding:35px 20px}.student-lobby{width:min(100%,600px);margin:20px auto;text-align:center;padding:34px;border:1px solid #a5c184;outline:3px double #c4d8a7;outline-offset:4px;border-radius:24px 6px 24px 6px;background:#fffef1f5;box-shadow:0 15px 55px #36542b20}.lobby-emblem{font-size:38px;color:#4b8145;width:70px;height:70px;border:1px solid #bfce9d;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:#eff5dc}.student-lobby .eyebrow{font-size:10px;letter-spacing:2px;color:#819569}.student-lobby h1{font:700 36px Arial,sans-serif;margin:10px 0 18px;color:#234d30;overflow-wrap:anywhere}.ready-badge{display:inline-block;font-size:11px;padding:8px 17px;background:#e1efd4;border:1px solid #c0d6a6;border-radius:25px;color:#4d7d3d}.student-lobby h2{font-size:18px;margin:25px 0 12px;color:#3c5d35}.student-lobby>p:not(.eyebrow){font-size:12px;line-height:1.9;color:#7d8d6b}.lobby-roster{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:23px 0}.lobby-roster span{padding:8px 13px;border:1px solid #d2dcc2;border-radius:8px;font-size:11px;color:#8c997a;background:#f7f9ef}.lobby-roster .ready{color:#47713a;border-color:#b9cf9d;background:#edf5df}.lobby-tip{background:#f0f4e3;border-radius:10px;padding:17px;font-size:11px;color:#778961;line-height:1.9}.lobby-tip b{display:block;color:#4b713b;margin-bottom:5px}.student-loading{text-align:center;padding:100px 20px;color:#65824d}.student-loading span{font-size:45px}.student-loading p{font-size:13px}
body.student-theme:has(.forest-game) main{max-width:1450px;padding:18px 3%}.student-theme .forest-game{padding:18px;background:#fafdece8;border:1px solid #93b66f;outline:3px double #b8cb91;outline-offset:3px;border-radius:22px 6px 22px 6px;box-shadow:0 12px 40px #365b2920}.student-theme .instruction-bar{color:#365d39;gap:12px;margin-bottom:15px}.student-theme .step-badge{width:44px;height:44px;border:1px solid #bad29a;box-shadow:inset 0 0 0 3px #edf5da;background:#dcecc3;color:#426637;font-size:16px}.student-theme .instruction-bar h2{background:none;padding:0;font:700 23px Arial,sans-serif;color:#285230;border-radius:0}.student-theme .instruction-bar p{font-size:10px;color:#7e8f6a;line-height:1.7;max-width:230px;text-align:right}.student-theme .board-shell{border:1px solid #a0bb80;border-radius:13px;box-shadow:0 2px 8px #314d2410;background:#f0f5df}.student-theme .board-heading{min-height:75px;padding:10px 15px;gap:15px;background:linear-gradient(90deg,#e1eccb,#fffdeb,#e7efd4);border-bottom:1px solid #c4d6aa}.student-theme .board-heading h1{font:700 22px/1.1 Arial,sans-serif;color:#25502f}.student-theme .board-heading h1 i{font-size:18px;line-height:1.2;margin-bottom:3px}.student-theme .team-plaque{background:#fffdf0;border:1px solid #b4c492;box-shadow:none;padding:8px 12px;font-size:11px;border-radius:8px;max-width:240px}.student-theme .team-plaque>span{color:#79954b;font-size:24px}.student-theme .board-heading .clock{font-size:24px;color:#70582c;background:#fff9e4;border:1px solid #bbaa76;box-shadow:inset 0 0 0 3px #f4edce;border-radius:8px;padding:8px 14px}.student-theme .board-heading .clock:before{color:#8d7b46;font-size:23px}.student-theme .clock small{font-size:7px;letter-spacing:.7px}.student-theme .historical-board{height:365px;margin:0;border-radius:0}.student-theme .board-landscape{background:url('/lam-son-landscape.webp') center 65%/cover;opacity:.25}.student-theme .board-landscape svg{display:none}.student-theme .era{padding:12px 10px;border-radius:0;border:0;border-right:1px solid #d5e0c5;background:linear-gradient(#edf1e8ef,#edf1e891);transition:background .3s}.student-theme .era:last-child{border:0}.student-theme .era-complete{background:linear-gradient(color-mix(in srgb,var(--stage-color) 75%,#ffffef),color-mix(in srgb,var(--stage-color) 45%,#ffffef))}.student-theme .era h3{font-size:17px;color:#173c24;line-height:1.25;margin-bottom:13px}.student-theme .era h3 strong{font:700 16px Arial,sans-serif;margin:4px 0}.student-theme .era h3 small{font-size:10px;color:#547047;font-weight:500}.student-theme .board-slot.main-slot{min-height:74px;max-width:none;background:#fffdf2d9;border:1.5px dashed #a8bb91;border-radius:9px;padding:12px 8px;box-shadow:none;font-size:12px;color:#42643b;line-height:1.65}.student-theme .era:last-child .board-slot.main-slot{min-height:74px;padding:10px 8px;font-size:11px}.student-theme .board-slot.main-slot.filled{border:1px solid #a4c082;background:#fffef4;color:#24492f;box-shadow:0 3px 9px #31572c0b}.student-theme .board-slot:hover,.student-theme .board-slot.hover{outline:2px solid #779e55;outline-offset:1px}.student-theme .historical-board .trend-slots .integrated-target:not(.filled){min-height:44px;background:#fbfdef;border:1px dashed #94ac78;border-radius:8px;color:#74945a;font-size:10px}.student-theme .historical-board .integrated-target.filled:hover{outline:1px dashed #6d914e}.student-theme .year-labels{background:#f4f8e7ed;border-top:1px solid #ccdab8;color:#43643b;padding:5px 10px;font-size:11px}.student-theme .board-banks{grid-template-columns:.75fr 1.5fr;gap:14px;margin-top:14px}.student-theme .board-banks>section{background:#fffdf0;border:1px solid #b9cca1;box-shadow:0 3px 8px #33552708;border-radius:13px;padding:13px}.student-theme .board-banks h3{font-size:12px;color:#355b38;display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:13px}.chest-step{background:#e1edcc;border:1px solid #c0d5a5;border-radius:5px;padding:4px 6px;font-size:8px;color:#65824b}.student-theme .board-banks h3 small{font-size:9px;font-weight:400;margin-left:auto;color:#899975}.student-theme .board-content{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.student-theme .board-content .card{font-size:11px;line-height:1.6;min-height:62px;padding:9px 8px;background:#f8fbed;border:1px solid #c4d3b0;color:#365735;box-shadow:0 2px 0 #e1e8d5;border-radius:8px}.student-theme .board-arrows .arrow-card{height:135px;background:#f8fbed;border:1px solid #c4d3b0;border-radius:9px;box-shadow:0 2px 0 #e1e8d5;padding:6px}.student-theme .board-arrows .arrow-card svg{height:92px}.student-theme .board-arrows:empty:after{min-height:135px;background:#f4f7e9;border-color:#c9d7b7;color:#81966d}.student-theme .card.selected{outline:3px solid #6d9c48;outline-offset:1px;background:#e7f2d5;box-shadow:0 4px 12px #456f3020}.student-theme .card.used{opacity:.43;box-shadow:none}.student-theme .used-mark{background:#608b4b}.student-theme .board-actions{color:#536e45;margin-top:14px}.student-theme .board-actions p{font-size:10px}.student-theme .board-actions small{color:#859674;opacity:1}.student-theme .board-actions .secondary{background:#f9fcee;border:1px solid #c2d2aa;border-radius:20px;color:#597a46;padding:9px 15px;font-size:10px}.student-theme .board-actions .primary{background:linear-gradient(#e5f2cb,#c9dfa7);color:#2c5732;border:1px solid #a2bd7e;border-radius:24px;font-size:12px;padding:11px 20px}.student-theme .game-result{border:1px solid #a6bf7e;border-radius:15px;background:linear-gradient(110deg,#fff9de,#ebf5d5);box-shadow:inset 0 0 0 4px #f7f9e3;margin-bottom:18px;padding:21px}.student-theme .game-result h2{font-family:Arial,sans-serif;font-size:29px;color:#2e5732}.student-theme .game-score{color:#3c6636}.student-theme .game-score b{font-size:47px}.student-theme .result-emblem{background:#e7d899;color:#806b2d}.student-theme .frozen-message{background:#fff8dd;border:1px solid #d4c38b;color:#847235;border-radius:12px;font-size:12px;margin:0 0 17px}.student-theme #toast{border:1px solid #9bbd78;background:#315e3b;border-radius:12px;box-shadow:0 5px 25px #234a2c30;font-size:12px;z-index:100}.student-theme #guide{background:#fffef0;border:1px solid #a9c184;border-radius:18px;box-shadow:0 20px 60px #26472b33}.student-theme button:focus-visible{outline:3px solid #729a50;outline-offset:3px}
@media(min-width:1500px){.student-theme .historical-board{height:400px}.student-theme .board-slot.main-slot{font-size:14px}.student-theme .era:last-child .board-slot.main-slot{font-size:13px}.student-theme .board-content .card{font-size:13px;min-height:70px}.student-theme .board-arrows .arrow-card{height:155px}}
@media(max-width:950px){.student-theme .instruction-bar h2{font-size:20px}.student-theme .instruction-bar p{font-size:9px;max-width:170px}.student-theme .forest-game{padding:13px}.student-theme .board-heading h1{font-size:18px}.student-theme .board-heading h1 i{font-size:16px}.student-theme .team-plaque{font-size:10px;padding:7px}.student-theme .board-heading .clock{font-size:21px;padding:8px 10px}.student-theme .era h3 strong{font-size:14px}.student-theme .board-slot.main-slot{font-size:11px}.student-theme .era:last-child .board-slot.main-slot{font-size:10px}.student-theme .board-banks{grid-template-columns:.7fr 1.3fr;gap:10px}.student-theme .board-banks>section{padding:11px}.student-theme .board-banks h3 small{width:100%;margin-left:0;font-size:8px}.student-theme .board-content .card{font-size:10px}.student-theme .board-arrows .arrow-card{height:142px}.student-theme .board-arrows{gap:5px}.student-theme .board-arrows .arrow-card svg{height:73px}}
@media(max-width:620px){body.student-theme>header,body.student-theme[data-screen]>header{padding:0 12px;gap:8px;height:54px}.student-theme header .brand{font-size:9px}.student-theme header .brand small{font-size:6px}.student-theme header .quiet{font-size:9px;padding:7px 10px}.student-theme .sync-strip{font-size:8px;padding:7px 8px}.student-theme .welcome-screen{padding:25px 20px}.student-theme .welcome-content h1{font-size:27px}.student-theme .name-panel{padding:22px}.student-theme .join-intro{font-size:10px}.student-theme .tutorial-content>h1{font-size:27px}.student-theme .lesson-cards article{padding:15px;grid-template-columns:85px 1fr}.student-theme .lesson-cards svg{height:90px;margin:0}.student-theme .lesson-cards h3{font-size:13px}.student-theme .lesson-cards p{font-size:10px}.student-theme .tutorial-screen{padding:25px 18px}.student-lobby{padding:25px 20px;margin:10px auto}.student-lobby h1{font-size:30px}.student-lobby>p:not(.eyebrow){font-size:11px}body.student-theme:has(.forest-game) main{padding:15px 10px}.student-theme .forest-game{padding:10px 8px}.student-theme .instruction-bar{gap:8px}.student-theme .instruction-bar h2{font-size:17px}.student-theme .step-badge{height:36px;width:36px;font-size:13px}.student-theme .instruction-bar p{width:100%;max-width:none;text-align:left;margin:0 0 0 44px;font-size:9px}.student-theme .board-heading{padding:9px;gap:8px}.student-theme .board-heading h1{font-size:20px;grid-row:1;grid-column:1/-1}.student-theme .team-plaque{font-size:10px}.student-theme .board-heading .clock{font-size:20px}.student-theme .historical-board{min-width:690px;height:365px}.student-theme .board-slot.main-slot{font-size:12px}.student-theme .era:last-child .board-slot.main-slot{font-size:11px}.student-theme .board-banks{grid-template-columns:1fr}.student-theme .board-banks h3 small{width:auto;margin-left:auto;font-size:8px}.student-theme .board-arrows .arrow-card{height:74px}.student-theme .board-arrows .arrow-card svg{height:58px}.student-theme .board-arrows:empty:after{min-height:74px}.student-theme .board-content{grid-template-columns:repeat(2,minmax(0,1fr))}.student-theme .board-content .card{min-height:65px;font-size:11px}.student-theme .game-result{padding:16px;gap:12px}.student-theme .game-result h2{font-size:24px}.student-theme .game-score b{font-size:37px}.student-theme .board-actions{gap:9px}.student-theme .result-emblem{width:48px;height:48px;font-size:28px}}
