:root{--ink:#173553;--muted:#637985;--blue:#1956a5;--blue-dark:#164489;--sky:#e4effc;--line:#dbe5e8;--paper:#f5f9fc;--yellow:#ffcf35}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:14px}button,input,select{font:inherit}button,a,select,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{transition:background .2s,transform .2s,box-shadow .2s}button:hover:not(:disabled){filter:brightness(.97)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3873b8;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}.site-header{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:#ffffff}.brand{display:flex;gap:13px;align-items:center;font-size:23px;font-weight:800;letter-spacing:-1px}.brand-icon{font-size:49px;color:var(--blue);line-height:1}.brand strong{font-size:18px;letter-spacing:1.6px}.brand-light{font-weight:400;color:#687787;margin:0 9px}.brand small{display:block;font-size:8px;letter-spacing:1.7px;margin-top:7px;color:#687787}.site-header nav{display:flex;align-items:center;gap:28px}.text-button{border:0;background:transparent;padding:10px 0;font-size:12px;font-weight:600}.text-button span{margin-left:12px}.teacher-button{border:1px solid #d4d9df;border-radius:8px;background:transparent;padding:12px 16px;font-size:12px}.teacher-button span{font-size:19px;margin-right:8px}main{max-width:1330px;margin:auto;padding:0 48px}.intro{display:flex;align-items:center;justify-content:space-between;padding:48px 0 37px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;line-height:1.5}.intro .eyebrow{color:#677689;display:flex;align-items:center;gap:8px}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--blue)}h1{font-size:clamp(32px,3.6vw,52px);line-height:1.14;letter-spacing:-2px;margin:16px 0 15px;font-weight:750}h1 span{color:var(--blue)}.intro p{color:#687787;line-height:1.8;margin:0;font-size:13px}.intro-art{width:260px;height:205px;position:relative;margin-right:32px}.art-orbit{width:183px;height:183px;border:1px dashed #d1dae4;position:absolute;border-radius:50%;left:30px;top:0}.art-piece{position:absolute;font-size:150px;line-height:1;text-shadow:0 9px 0 #c5d9f1}.art-piece.blue{color:#1956a5;left:19px;top:7px;transform:rotate(-18deg)}.art-piece.green{color:#7cbb3c;left:118px;top:58px;transform:rotate(16deg);text-shadow:0 8px 0 #53902e}.art-spark{position:absolute;color:#4c74a4;font-size:33px}.art-spark.one{right:15px;top:0}.art-spark.two{left:2px;bottom:25px}.art-caption{position:absolute;bottom:-15px;left:47px;font-family:Georgia,serif;font-style:italic;color:#687787;font-size:14px;transform:rotate(-5deg)}.challenge-bar{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px 24px;display:flex;align-items:center;gap:17px}.challenge-icon{height:43px;width:43px;border-radius:10px;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:26px}.challenge-copy{flex:1}.challenge-copy .eyebrow{font-size:8px;color:#687787}h2{font-size:17px;margin:0;letter-spacing:-.4px}.challenge-copy h2{font-size:15px;margin-top:6px}.challenge-bar label{display:flex;flex-direction:column;gap:7px;font-size:9px;font-weight:bold;color:#687787;letter-spacing:.5px}.challenge-bar select{background:#f9fafb;border:1px solid var(--line);padding:10px 30px 10px 11px;border-radius:6px;font-size:11px;color:var(--ink);min-width:135px;max-width:245px}.mode-section{margin:31px 0 28px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.section-heading h2,.game-heading h2{font-size:15px}.section-heading h2>span,.game-heading h2>span{color:#687787;font-size:11px;margin-right:11px;font-weight:400}.quiet{font-size:10px;color:var(--muted)}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.mode-card{text-align:left;position:relative;border:1px solid #dce1e7;border-radius:11px;padding:23px 16px;background:#fcfbf9;display:flex;align-items:center;gap:13px;min-height:111px}.mode-card.selected{border:1.5px solid #1956a5;background:#edf4ff;box-shadow:0 0 0 2px #e3edfa}.mode-symbol{display:grid;place-items:center;width:47px;height:47px;border-radius:12px;flex-shrink:0;font-size:36px}.cave{background:#e4effc;color:#1956a5}.learning{background:#edf5df;color:#347d35}.einstein{background:#fff0dc;color:#d9781e}.mode-info{display:flex;flex-direction:column;gap:7px}.mode-kicker{font-size:7px;letter-spacing:1.5px;color:#687787;font-weight:700}.mode-info strong{font-size:14px}.mode-info small{font-size:9px;color:#687787;white-space:nowrap}.mode-info b{margin:0 3px}.mode-radio{border:1px solid #d3d9e1;border-radius:50%;height:12px;width:12px;position:absolute;right:13px;top:13px}.selected .mode-radio{background:var(--blue);border:3px solid #e9f0f9;box-shadow:0 0 0 1px var(--blue)}.difficulty-bars{position:absolute;right:14px;bottom:19px;display:flex;gap:2px;align-items:flex-end}.difficulty-bars i{height:4px;width:3px;background:#d4d9df}.difficulty-bars i:nth-child(2){height:7px}.difficulty-bars i:nth-child(3){height:10px}.mode-card:nth-child(1) i:first-child{background:#51759f}.mode-card:nth-child(2) i:not(:last-child){background:#92a06c}.mode-card:nth-child(3) i{background:#be945e}.play-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);gap:24px;align-items:start}.game-panel,.leaderboard{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.game-heading{display:flex;justify-content:space-between;align-items:center;padding:22px 24px}.status-pill{font-size:7px;letter-spacing:1px;color:#687787;background:#f1f4f8;border-radius:20px;padding:7px 10px}.status-pill.playing{color:#176045;background:#eaf5e9}.game-stats{display:flex;align-items:center;margin:0 24px 20px;border:1px solid #e9ecef;border-radius:9px;padding:15px 17px;gap:25px}.game-stats>div:first-child{min-width:103px}.game-stats>div:nth-child(2){padding:0 25px;border-left:1px solid var(--line);border-right:1px solid var(--line)}.game-stats span{display:block;font-size:7px;font-weight:700;letter-spacing:1.1px;color:#687787}.game-stats strong{display:block;font-size:27px;font-weight:500;letter-spacing:-1px;margin-top:5px;font-variant-numeric:tabular-nums}.game-stats strong span{display:inline;color:#687787;font-size:20px;font-weight:400;letter-spacing:-1px}.progress-stat{flex:1}.progress-stat span{display:flex;justify-content:space-between;gap:8px;font-size:6px;letter-spacing:.7px}.progress-stat b{white-space:nowrap;color:var(--blue)}.progress-track{height:5px;background:#eaeef3;border-radius:4px;margin-top:14px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:#76b736;transition:width .3s}.board-wrap{position:relative;margin:0 24px;border:7px solid #f0f3f7;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#e4eaf1;isolation:isolate}.board{display:grid;grid-template-columns:repeat(var(--size,4),1fr);width:100%;height:100%;gap:3px;background:#f0f3f7}.tile{position:relative;border:0;padding:0;background:#d3d9e1;overflow:hidden;touch-action:manipulation;min-width:0;min-height:0;border-radius:3px}.tile-image{position:absolute;inset:0;background-repeat:no-repeat;background-size:calc(var(--size) * 100%) calc(var(--size) * 100%);pointer-events:none;transition:transform .17s}.tile.selected{outline:3px solid #ffcf35;outline-offset:-3px;z-index:2;box-shadow:inset 0 0 0 5px #173553}.tile.correct::after{content:'✓';position:absolute;bottom:3px;right:3px;font-size:7px;color:white;background:#39492e99;border-radius:50%;width:12px;height:12px;display:grid;place-items:center;pointer-events:none}.tile:focus-visible{outline:3px solid #ffcf35;outline-offset:-3px;z-index:3}.tile.drag-over{outline:4px solid #ffcf35;outline-offset:-4px}.start-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:linear-gradient(180deg,#16375477,#0c294cdd);color:#fff;backdrop-filter:blur(2px)}.overlay-icon{font-size:43px;color:#dee9f6;line-height:1;margin-bottom:20px}.start-overlay .eyebrow{font-size:7px;letter-spacing:1.8px;color:#d9e2ed}.start-overlay h3{font-size:clamp(22px,2.6vw,35px);font-weight:500;letter-spacing:-1px;line-height:1.17;margin:15px 0 8px}.start-overlay p{font-size:11px;color:#dde4ec;margin:6px 0 25px}.primary-button{background:var(--blue);color:#fff;border:0;border-radius:7px;padding:15px 20px;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:30px}.start-overlay .primary-button{background:#ffcf35;color:#18344e;min-width:230px;box-shadow:0 4px 14px #0001}.start-overlay small{font-size:8px;color:#d5dce5;margin-top:17px}.board-controls{padding:17px 24px;display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:9px;color:#687787}.board-controls>div{display:flex;align-items:center;gap:8px}.key-cap{border:1px solid #d6dde5;border-radius:3px;padding:1px 4px;margin-right:3px}.small-button,.icon-button{border:1px solid #dfe5eb;background:#f9fafc;padding:9px 11px;border-radius:6px;font-size:10px;white-space:nowrap}.small-button span{background:#e1e9f3;color:var(--blue);padding:2px 5px;margin-left:5px;border-radius:3px}.icon-button{font-size:16px;padding:5px 10px}.tip{margin:0 24px 22px;background:#f8f7f3;border-radius:7px;padding:13px;display:flex;align-items:center;gap:10px}.tip>span{color:#5a7596;font-size:18px}.tip p{font-size:9px;line-height:1.7;color:#687787;margin:0}.tip strong{font-weight:600;color:#606d7c}.leaderboard{padding:24px 22px}.leader-heading{display:flex;align-items:center;gap:11px}.leader-heading .eyebrow{font-size:6px;letter-spacing:1px;color:#687787}.leader-heading h2{font-size:20px;margin-top:6px}.trophy-icon{font-size:26px;color:#4d74a3;background:#edf3f9;border-radius:10px;padding:6px 10px}.spark{margin-left:auto;color:#4f75a0;font-size:26px}.leaderboard>p{font-size:10px;color:#687787;margin:18px 0}.leader-tabs{display:flex;background:#f3f5f8;border-radius:7px;padding:4px;gap:3px}.leader-tabs button{flex:1;border:0;background:transparent;border-radius:5px;padding:9px 4px;font-size:9px;color:#687787}.leader-tabs .active{background:white;box-shadow:0 2px 5px #232f3d0a;color:var(--blue);font-weight:700}.leader-context{display:flex;justify-content:space-between;align-items:center;font-size:8px;color:#687787;padding:20px 0 12px;border-bottom:1px solid #eaeef2;gap:10px}.leader-context span:last-child{font-size:6px;letter-spacing:1px;white-space:nowrap}.score-list{min-height:230px}.empty-scores{text-align:center;padding:34px 12px}.empty-art{font-size:44px;color:#50759f;display:block;margin-bottom:15px}.empty-scores strong{display:block;font-size:14px;font-weight:500}.empty-scores p{font-size:11px;line-height:1.8;color:#687787;max-width:210px;margin:10px auto}.empty-tag{display:inline-block;font-size:7px;letter-spacing:1px;color:#5e7691;border:1px dashed #cdd8e5;border-radius:20px;padding:8px 12px;margin-top:7px}.score-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid #edf0f4;gap:12px}.score-rank{color:#677689;font-size:11px;width:18px;text-align:center}.avatar{width:31px;height:31px;border-radius:50%;background:#eaf0f8;color:#577599;display:grid;place-items:center;font-size:11px}.score-name{flex:1;min-width:0}.score-name strong{font-size:11px;display:block;overflow-wrap:anywhere}.score-name small{color:#52759e;font-size:10px;letter-spacing:2px;display:block;margin-top:5px}.score-time{font-size:12px;font-variant-numeric:tabular-nums}.score-row:first-child .score-rank{color:#9b670b}.leader-footer{border-top:1px solid #e9edf2;padding-top:20px;display:flex;align-items:center;gap:12px}.leader-footer>span{font-size:34px;color:#4c74a3}.leader-footer p{font-size:10px;line-height:1.8;color:#687787;margin:0}.leader-footer strong{font-weight:400;color:#687787}.fair-play{display:flex;gap:10px;background:#f7f8fa;border-radius:7px;padding:12px;margin-top:22px;color:#687787;font-size:9px;line-height:1.6}.fair-play>span:first-child{font-size:19px;color:#5c7694}.bottom-note{display:flex;gap:18px;align-items:center;margin:35px 0 40px;padding:25px 5px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.bottom-note>span:first-child{font-size:36px;color:#52759d}.bottom-note strong{font-size:12px;font-weight:500}.bottom-note p{font-size:10px;color:#687787;margin:7px 0 0}.note-tag{margin-left:auto;font-size:7px;letter-spacing:1px;color:#65768b}footer{display:flex;justify-content:space-between;align-items:center;padding:0 max(5vw,24px) 25px;color:#687787;font-size:8px;letter-spacing:1px}footer b{margin:0 6px}.footer-flower{font-size:23px;vertical-align:middle;margin-left:15px}dialog{border:1px solid var(--line);border-radius:18px;padding:35px;max-width:490px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 30px 100px #17355333}dialog::backdrop{background:#17355377;backdrop-filter:blur(4px)}dialog h2{font-size:30px;letter-spacing:-1px;margin:12px 0 14px}dialog p{font-size:12px;color:#687787;line-height:1.7}.dialog-close{position:absolute;top:12px;right:15px;background:none;border:0;font-size:25px;color:#677689}.instructions{padding-left:20px;color:#687787;font-size:12px;line-height:1.8}.instructions li{padding:8px 0}.instructions strong{color:#44505f}.dialog-note{background:#f3f6fa;padding:14px;border-radius:8px}dialog .eyebrow{color:var(--blue)}form{display:flex;flex-direction:column;gap:15px}form label{font-size:11px;display:flex;flex-direction:column;gap:8px;color:#687787}input{border:1px solid #dce2e9;border-radius:7px;padding:12px;background:#fbfcfe;color:var(--ink);min-width:0;width:100%}.form-row{display:flex;gap:12px}.form-row label{flex:1;min-width:0}.upload-zone{border:1px dashed #53759d;padding:17px;border-radius:9px;text-align:center;background:#f3f7fc;align-items:center;font-size:22px;color:var(--blue)}.upload-zone strong{font-size:12px}.upload-zone span{font-size:10px}.upload-zone input{font-size:10px;padding:5px;background:white}.checkbox-label{flex-direction:row;align-items:center;font-size:10px;line-height:1.5}.checkbox-label input{width:auto}.form-error{color:#bd4d64;font-size:11px;margin:0}#upload-preview{width:100%;max-height:150px;object-fit:contain;border-radius:7px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:14px 22px;border-radius:9px;z-index:10;font-size:12px;max-width:90vw;box-shadow:0 10px 30px #0002}.celebration{text-align:center;font-size:55px;color:#4774a9;letter-spacing:14px}#complete-dialog{text-align:center}#complete-dialog label{text-align:left}.result-time{font-size:49px;letter-spacing:-2px;margin-top:10px;font-variant-numeric:tabular-nums}.result-stars{color:#a96d08;font-size:27px;letter-spacing:6px;margin:5px 0 25px}#score-form small{font-size:9px;color:#687787;text-align:left}.replay-button{margin-top:18px;color:var(--blue)}#saved-result{background:#eaf5e9;color:#176045;padding:18px;border-radius:9px;line-height:1.8}.confirm-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:25px}.peek-overlay{position:absolute;inset:0;background-size:100% 100%;z-index:4;display:flex;align-items:flex-end;justify-content:center}.peek-overlay span{background:#173553dd;color:white;padding:9px 16px;border-radius:6px;margin:15px;font-size:9px;letter-spacing:1px}[hidden]{display:none!important}@media(min-width:1450px){main{padding:0 30px}}@media(max-width:1000px){main{padding:0 25px}.mode-card{padding:20px 12px;gap:8px}.mode-symbol{width:33px;height:36px;font-size:28px}.mode-info strong{font-size:12px}.mode-info small{font-size:7px}.difficulty-bars{display:none}.play-layout{grid-template-columns:minmax(0,1.5fr) minmax(265px,1fr);gap:17px}.game-stats{gap:13px;padding:13px}.game-stats>div:nth-child(2){padding:0 13px}.board-controls{flex-wrap:wrap}.intro-art{margin-right:0}.progress-stat span{font-size:5px}}@media(max-width:760px){.site-header{height:80px;padding:0 20px}.brand{font-size:18px;gap:8px}.brand strong{font-size:13px}.brand-icon{font-size:36px}.brand small{font-size:6px;letter-spacing:1px}.site-header nav{gap:10px}.site-header nav .text-button{display:none}.teacher-button{font-size:10px;padding:9px}.teacher-button span{display:none}main{padding:0 18px}.intro{padding:32px 0}.intro-art{display:none}h1{font-size:39px}.intro p{font-size:12px}.challenge-bar{flex-wrap:wrap;padding:17px;gap:12px}.challenge-copy{flex-basis:70%}.challenge-bar label{flex:1;min-width:0}.challenge-bar select{width:100%;min-width:0;max-width:100%}.quiet{display:none}.mode-grid{gap:8px}.mode-card{padding:15px 9px;display:block}.mode-symbol{margin-bottom:12px}.mode-kicker{font-size:6px;letter-spacing:.7px}.mode-info strong{font-size:12px;min-height:28px}.mode-info small{white-space:normal;font-size:9px;line-height:1.6}.mode-info b{margin:0}.play-layout{grid-template-columns:1fr}.game-heading{padding:20px 16px}.game-stats{margin:0 16px 16px}.board-wrap{margin:0 16px}.board-controls{padding:16px;font-size:8px}.tip{margin:0 16px 16px}.start-overlay h3{font-size:31px}.leaderboard{padding:22px}.score-list{min-height:150px}.bottom-note{margin:25px 0;gap:12px}.bottom-note p{line-height:1.6}.note-tag{display:none}footer{padding:0 18px 20px;font-size:6px;gap:15px;line-height:1.7}.game-stats strong{font-size:26px}.progress-stat span{font-size:6px}.progress-stat span b{font-size:7px}.game-stats{gap:15px}.game-stats>div:nth-child(2){padding:0 18px}dialog{padding:28px 22px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.challenge-copy{flex:1 1 calc(100% - 60px)}.challenge-bar label{flex:1 1 calc(50% - 12px)}}

/* Class and section filters share a flexible row at every viewport size. */
.challenge-bar{flex-wrap:wrap}.challenge-copy{flex:1 1 260px}.challenge-bar label{flex:1 1 130px}.challenge-bar select{width:100%;max-width:none;min-width:0}
@media(max-width:760px){.challenge-copy{flex:1 1 calc(100% - 60px)}.challenge-bar label{flex:1 1 calc(50% - 12px)}}

.directory-note{font-size:11px;color:#687787;margin:10px 4px 0;line-height:1.6}.photo-pending .start-overlay{background:linear-gradient(135deg,#1956a5,#155c45);backdrop-filter:none}.photo-pending .primary-button:disabled{opacity:.8;cursor:default}.photo-pending .start-overlay h3{max-width:340px}.photo-pending .start-overlay p{max-width:290px;line-height:1.8}

.panoramic .start-overlay{padding:12px}.panoramic .overlay-icon,.panoramic .start-overlay>.eyebrow,.panoramic .start-overlay>small{display:none}.panoramic .start-overlay h3{font-size:23px;margin:0 0 8px;max-width:420px}.panoramic .start-overlay p{margin:0 0 12px}.panoramic .primary-button{padding:12px 18px}@media(max-width:760px){.panoramic .start-overlay h3{display:none}.panoramic .start-overlay p{font-size:10px;margin:0 0 8px}.panoramic .primary-button{padding:10px 14px;min-width:0;font-size:11px}}

/* School harmony palette: blue, green, yellow and orange. */
:root{--green:#176045;--leaf:#7cbb3c;--sun:#ffcf35;--orange:#df7c20}
h1{color:var(--blue)}h1 span{color:var(--green)}.intro .eyebrow,.live-dot{color:var(--green)}.live-dot{background:var(--leaf)}.brand-icon{color:var(--green)}.brand strong{color:var(--blue)}.art-spark.one{color:var(--sun)}.art-spark.two{color:var(--orange)}.art-caption{color:var(--green)}.art-orbit{border-color:#afcfaa}.mode-card[data-mode="learning"].selected{border-color:var(--green);background:#edf6e9;box-shadow:0 0 0 2px #dfeddb}.mode-card[data-mode="einstein"].selected{border-color:var(--orange);background:#fff3e4;box-shadow:0 0 0 2px #f9e5cc}.learning{color:var(--green)}.einstein{color:#b65a0e}.mode-card:nth-child(1) i:first-child{background:var(--blue)}.mode-card:nth-child(2) i:not(:last-child){background:var(--leaf)}.mode-card:nth-child(3) i{background:var(--orange)}.mode-card[data-mode="learning"].selected .mode-radio{background:var(--green);box-shadow:0 0 0 1px var(--green)}.mode-card[data-mode="einstein"].selected .mode-radio{background:var(--orange);box-shadow:0 0 0 1px var(--orange)}.trophy-icon{background:#fff5cf;color:#966400}.spark,.celebration{color:var(--orange)}.bottom-note>span:first-child,.footer-flower{color:var(--green)}.tip{background:#f0f6e8}.tip>span{color:#438230}.tip strong{color:var(--green)}.leader-footer>span{color:#75a83a}.leader-tabs .active{color:var(--blue)}.challenge-icon{background:#e4effc;color:var(--blue)}.result-stars{color:#a96d08}.start-overlay .primary-button{background:var(--sun);color:#173553}.start-overlay .primary-button:hover{background:#ffdc66}.teacher-button{border-color:#bccedc;color:var(--blue)}.status-pill.playing{color:var(--green);background:#e8f3df}

/* School-blue upper ribbon. */
.site-header{background:var(--blue);border-bottom-color:var(--blue-dark);color:#fff}
.site-header .brand-icon{color:var(--sun)}
.site-header .brand strong,.site-header .brand small,.site-header .text-button{color:#fff}
.site-header .brand-light{color:#c7def8}
.site-header .teacher-button{color:#fff;border-color:#ffffff80;background:#ffffff0d}
.site-header .teacher-button:hover:not(:disabled){background:#ffffff20;filter:none}
.site-header button:focus-visible,.site-header a:focus-visible{outline-color:var(--sun)}

/* Portal-blue ribbons link the filters, game and leaderboard to the school header. */
.challenge-bar{border-top:5px solid var(--blue)}
.section-heading{background:var(--blue);color:#fff;padding:15px 18px;border-radius:8px}
.section-heading h2>span,.section-heading .quiet{color:#dceaff}
.game-heading{background:var(--blue);color:#fff;margin-bottom:20px;gap:12px;flex-wrap:wrap}
.game-heading h2>span{color:#dceaff}
.game-heading .status-pill{background:#ffffff20;color:#fff}
.game-heading .status-pill.playing{background:#eaf4dc;color:var(--green)}
.game-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.expand-button{border:1px solid #ffffff88;background:#ffffff12;color:#fff;border-radius:6px;padding:8px 10px;font-size:11px;font-weight:600;white-space:nowrap}
.expand-button:focus-visible{outline-color:var(--sun)}
.leader-heading{background:var(--blue);color:#fff;margin:-24px -22px 0;padding:22px}
.leader-heading .eyebrow{color:#deebfc}.leader-heading .spark{color:var(--sun)}
.leader-tabs .active{background:var(--blue);color:#fff}
.bottom-note{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:24px}
.bottom-note p,.bottom-note .note-tag{color:#e1ecfb}.bottom-note>span:first-child{color:var(--sun)}
.board-controls .small-button{color:var(--blue);border-color:#b9cfe8;background:#edf4fc}
body.puzzle-expanded{overflow:hidden}
.puzzle-expanded .game-panel{position:fixed;inset:0;z-index:50;border:0;border-radius:0;overflow:auto;background:#f3f7fc;display:flex;flex-direction:column;align-items:stretch;padding-bottom:12px}
.puzzle-expanded .game-heading{flex-shrink:0;margin-bottom:12px;padding:12px 24px}
.puzzle-expanded .game-stats{flex-shrink:0;width:min(850px,calc(100% - 48px));align-self:center;margin-bottom:12px;padding:10px 16px}
.puzzle-expanded .board-wrap{flex-shrink:0;width:min(calc(100% - 48px),calc(max(180px,100dvh - 230px)*var(--photo-ratio,1)));align-self:center;margin:0;max-width:1600px}
.puzzle-expanded .board-controls{flex-shrink:0;align-self:center;width:min(1100px,100%);padding:14px 24px}
.puzzle-expanded .tip{display:none}
@media(max-width:760px){.leader-heading{margin-top:-22px}.section-heading{padding:13px}.game-heading-actions{gap:7px}.game-heading .status-pill{display:none}.expand-button{font-size:10px}.bottom-note{padding:18px}.puzzle-expanded .game-heading{padding:12px 16px}.puzzle-expanded .board-wrap{width:min(calc(100% - 20px),calc(max(160px,100dvh - 230px)*var(--photo-ratio,1)))}.puzzle-expanded .board-controls{flex-wrap:wrap;padding:12px}.puzzle-expanded .game-stats{width:calc(100% - 24px)}}

/* Guided year / class / section selection. */
.challenge-bar.class-picker{display:block;padding:0;border:1px solid #cbdbea;border-radius:14px;overflow:hidden;background:#fff}
.picker-heading{display:flex;align-items:center;justify-content:space-between;background:var(--blue);color:#fff;padding:20px 25px}
.picker-heading .eyebrow{color:#d8e8ff;font-size:9px}.picker-heading h2{font-size:20px;margin-top:7px;font-weight:600}.picker-heading-icon{font-size:32px;color:var(--sun)}
.picker-steps{display:grid;grid-template-columns:1.2fr 1fr 1fr;padding:25px;gap:25px}
.picker-step{min-width:0}.picker-step+.picker-step{border-left:1px solid #e1eaf2;padding-left:25px}
.step-label{display:flex;align-items:center;gap:9px}.step-label>span{display:grid;place-items:center;background:#e7f0fc;color:var(--blue);width:27px;height:27px;border-radius:50%;font-size:12px;font-weight:bold}.step-label h3{font-size:16px;margin:0;color:#173553}
.picker-step>p{font-size:11px;color:#647888;line-height:1.5;margin:8px 0 16px}
.class-picker .picker-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden;clip-path:inset(50%)}
.year-options{display:flex;flex-direction:column;gap:7px}.picker-choice{border:1px solid #d4e0ec;background:#f8fbfe;color:#3d566d;border-radius:8px;text-align:left;padding:10px 13px;display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px}
.picker-choice strong{font-size:13px;white-space:nowrap}.picker-choice small{font-size:9px;line-height:1.4;text-align:right}.picker-choice[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 7px #1956a51c}
.class-picker #class-select{font-size:19px;font-weight:600;padding:14px;border-color:#b6cbe0;background:#f5f9ff;min-height:53px;color:var(--blue)}
.class-cycle{display:block;color:var(--green);font-size:11px;margin-top:13px;line-height:1.5}
.section-options{display:flex;flex-wrap:wrap;gap:9px}.section-options .picker-choice{justify-content:center;min-width:48px;min-height:48px;padding:10px}.section-options .picker-choice strong{font-size:18px}.section-options .picker-choice[aria-pressed=true]{background:var(--green);border-color:var(--green);box-shadow:0 2px 7px #17604522}
.selection-summary{display:flex;align-items:center;gap:16px;padding:19px 25px;background:#edf4fc;border-top:1px solid #dbe6f1}
#selection-thumbnail{width:90px;height:60px;object-fit:contain;background:#dce8f4;border-radius:7px;border:1px solid #c9daeb}
.selection-summary-copy{flex:1;min-width:0}.selection-summary .eyebrow{color:#637f9b;font-size:8px}.selection-summary h2{font-size:22px;color:var(--blue);margin:5px 0}.selection-summary #photo-title{font-size:11px;color:#62778a}
.selection-state{color:var(--green);background:#e2efdc;border-radius:20px;padding:8px 12px;font-size:10px;white-space:nowrap}.selection-state.pending{color:#8b5e11;background:#fff1ce}.selection-summary label{flex:0 1 220px}
@media(max-width:900px){.picker-steps{gap:17px;padding:20px}.picker-step+.picker-step{padding-left:17px}.year-options .picker-choice{display:block}.year-options .picker-choice small{display:block;text-align:left;margin-top:4px}.picker-heading h2{font-size:18px}}
@media(max-width:600px){.picker-heading{padding:18px}.picker-heading h2{font-size:17px;line-height:1.4}.picker-steps{grid-template-columns:1fr 1fr;gap:20px;padding:18px}.year-step{grid-column:1/-1}.year-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.year-options .picker-choice{padding:10px 8px}.year-options .picker-choice strong{font-size:11px}.year-options .picker-choice small{font-size:8px}.picker-step+.picker-step{border-left:0;padding-left:0}.picker-step:last-child{border-left:1px solid #e1eaf2;padding-left:15px}.step-label h3{font-size:14px}.picker-step>p{font-size:10px}.section-options{gap:6px}.section-options .picker-choice{min-width:40px;min-height:40px}.selection-summary{padding:16px;gap:11px;flex-wrap:wrap}.selection-summary h2{font-size:19px}#selection-thumbnail{width:65px;height:50px}.selection-state{font-size:9px}.selection-summary label{flex-basis:100%}}

/* Academic ladder: consistent class choices within each successive cycle. */
.picker-steps{grid-template-columns:minmax(160px,.7fr) minmax(350px,1.8fr) minmax(140px,.65fr);align-items:start}
.class-ladder{position:relative;display:flex;flex-direction:column;gap:12px}.class-ladder::before{content:'';position:absolute;left:13px;top:20px;bottom:30px;width:2px;background:#cbdcee}
.ladder-stage{display:flex;gap:11px;position:relative}.ladder-marker{flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e7eff9;border:2px solid #fff;color:#607c99;font-size:11px;font-weight:700;z-index:1;margin-top:11px}
.ladder-content{flex:1;min-width:0;background:#f5f8fc;border:1px solid #e0e8f1;border-radius:9px;padding:12px}.ladder-stage.current-stage .ladder-content{border-color:#8cb4dd;background:#edf4fd}.ladder-stage.current-stage .ladder-marker{background:var(--green);color:#fff}
.ladder-stage-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.ladder-stage-heading strong{font-size:12px;color:var(--blue)}.ladder-stage-heading small{font-size:9px;color:#697d8f}
.ladder-level{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ladder-level+.ladder-level{margin-top:8px;padding-top:8px;border-top:1px dashed #d2dfeb}.ladder-level .picker-choice{min-height:36px;padding:8px 9px;border-radius:6px;justify-content:center;background:white}.ladder-level .picker-choice strong{font-size:11px}.ladder-level .picker-choice[aria-pressed=true]{background:var(--blue);color:#fff}.year-options .picker-choice{display:block}.year-options .picker-choice small{display:block;text-align:left;margin-top:5px}
@media(max-width:1000px){.picker-steps{grid-template-columns:1fr 1fr}.year-step{grid-column:1/-1}.year-options{display:flex;flex-direction:row}.year-options .picker-choice{flex:1}.ladder-step{grid-column:1;min-width:0}.picker-step.ladder-step{border-left:0;padding-left:0}.ladder-stage-heading{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:600px){.picker-steps{grid-template-columns:1fr}.year-step,.ladder-step{grid-column:1}.picker-step:last-child{border-left:0;border-top:1px solid #e1eaf2;padding:18px 0 0}.year-options{display:grid;grid-template-columns:repeat(3,1fr)}.ladder-stage-heading{flex-direction:row;align-items:center}.ladder-content{padding:10px}.ladder-level .picker-choice{min-height:40px;padding:9px 10px}.ladder-level .picker-choice strong{font-size:12px}.section-options .picker-choice{min-width:46px;min-height:44px}}

/* One character, one challenge: the brainpower carousel. */
.mascot-slider{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:12px;background:linear-gradient(120deg,#fff9e8,#edf5ff 65%,#eaf4ec);border:1px solid #d5e2ed;border-radius:16px;padding:18px 24px 14px;overflow:hidden;position:relative}
.mascot-arrow{width:46px;height:46px;border-radius:50%;border:1px solid #c5d7ec;background:white;color:var(--blue);font-size:23px;cursor:pointer;box-shadow:0 4px 12px #1735530a;transition:background .2s,transform .2s}.mascot-arrow:hover{background:var(--blue);color:white;transform:scale(1.07)}.mascot-slider :focus-visible{outline:3px solid var(--orange);outline-offset:4px}
.mascot-stage{min-width:0;touch-action:pan-y;user-select:none}.mascot-scene{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);align-items:center;gap:30px;max-width:840px;margin:auto;animation:mascot-enter .45s ease-out both}
.mascot-portrait{height:280px;position:relative;display:grid;place-items:center}.mascot-portrait img{height:265px;width:100%;object-fit:contain;position:relative;z-index:1;animation:mascot-bob 4s ease-in-out infinite;filter:drop-shadow(0 12px 8px #17355314)}.mascot-halo{position:absolute;width:215px;height:215px;border-radius:50%;background:#ffcf3535;border:1px solid #e9ba4330}.mascot-scene[data-character=learning] .mascot-halo{background:#1956a519}.mascot-scene[data-character=einstein] .mascot-halo{background:#7cbb3c25}.mascot-spark{position:absolute;color:var(--orange);font-size:30px;animation:mascot-twinkle 3s ease-in-out infinite}.spark-one{left:9%;top:20%}.spark-two{right:8%;bottom:19%;color:var(--blue);animation-delay:1s}
.mascot-kicker{font-size:10px;letter-spacing:2px;font-weight:800;color:var(--green)}.mascot-copy h3{font-size:clamp(25px,3.2vw,38px);letter-spacing:-1px;color:var(--blue);margin:8px 0 12px}.mascot-copy>strong{font-size:15px;line-height:1.5}.mascot-copy p{font-size:13px;line-height:1.7;color:#5a6e82;max-width:420px;margin:10px 0 16px}.mascot-facts{display:flex;flex-wrap:wrap;gap:7px}.mascot-facts span{padding:7px 10px;border:1px solid #cfdeeb;background:#ffffffb8;border-radius:7px;color:var(--ink);font-size:11px;font-weight:700}.mascot-selected{display:block;color:var(--green);font-size:10px;font-weight:700;margin-top:15px}.mascot-navigation{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:18px;color:#62768a;font-size:10px;padding-top:8px}.mascot-navigation>span:first-child{font-weight:800;color:var(--blue);font-variant-numeric:tabular-nums}.mascot-dots{display:flex;gap:0}.mascot-dots button{width:32px;height:32px;border:0;background:transparent;cursor:pointer;position:relative}.mascot-dots button::after{content:'';display:block;width:8px;height:8px;border-radius:10px;background:#b1c4d8;margin:auto;transition:width .25s,background .25s}.mascot-dots button[aria-pressed=true]::after{width:24px;background:var(--blue)}
@keyframes mascot-enter{from{opacity:0;transform:translateX(var(--slide-from,55px))}to{opacity:1;transform:translateX(0)}}
@keyframes mascot-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}
@keyframes mascot-twinkle{0%,100%{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
@media(max-width:650px){.mascot-slider{grid-template-columns:36px minmax(0,1fr) 36px;gap:5px;padding:12px 8px}.mascot-arrow{width:36px;height:40px;font-size:20px}.mascot-scene{grid-template-columns:1fr;gap:5px;text-align:center}.mascot-portrait{height:215px}.mascot-portrait img{height:205px}.mascot-halo{width:175px;height:175px}.mascot-copy h3{font-size:26px;margin:6px 0 8px}.mascot-copy>strong{font-size:13px}.mascot-copy p{font-size:12px;margin:8px auto 12px}.mascot-facts{justify-content:center;gap:5px}.mascot-facts span{font-size:10px;padding:6px 7px}.mascot-selected{margin-top:12px}.mascot-navigation{gap:10px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.mascot-scene,.mascot-portrait img,.mascot-spark{animation:none}.mascot-arrow,.mascot-dots button::after{transition:none}}

/* Original eight-pose acting animation. */
button.mascot-portrait{width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;isolation:isolate;font:inherit}
.mascot-tap{position:absolute;bottom:0;right:0;border-radius:20px;padding:5px 9px;font-size:9px;background:white;color:var(--blue);border:1px solid #d5e2ed;transform:rotate(-7deg);z-index:3;pointer-events:none}
.mascot-actor{display:block;width:265px;max-width:100%;aspect-ratio:1;position:relative;z-index:1;pointer-events:none}
.mascot-frames{display:block;width:100%;height:100%;background-size:400% 200%;background-repeat:no-repeat;animation:cave-acting 5.6s step-end infinite}
[data-character=learning] .mascot-frames{animation-name:learning-acting;animation-duration:6s}
[data-character=einstein] .mascot-frames{animation-name:einstein-acting;animation-duration:6.4s}
.mascot-slider .mascot-halo{animation:none}
@media(max-width:650px){.mascot-actor{width:205px}}
@keyframes cave-acting{0%{background-position:0.00000% 0%;transform:translateX(0%)}18%{background-position:33.33333% 0%;transform:translateX(0%)}23%{background-position:66.66667% 0%;transform:translateX(0%)}28%{background-position:100.00000% 0%;transform:translateX(0%)}33%{background-position:0.00000% 100%;transform:translateX(0%)}38%{background-position:33.33333% 100%;transform:translateX(0%)}43%{background-position:0.00000% 100%;transform:translateX(0%)}48%{background-position:100.00000% 0%;transform:translateX(0%)}53%{background-position:0.00000% 100%;transform:translateX(0%)}58%{background-position:33.33333% 100%;transform:translateX(0%)}66%{background-position:66.66667% 100%;transform:translateX(0%)}82%{background-position:100.00000% 100%;transform:translateX(0%)}100%{background-position:0.00000% 0%;transform:translateX(0%)}}
@keyframes learning-acting{0%{background-position:0.00000% 0%;transform:translateX(-15%)}14%{background-position:33.33333% 0%;transform:translateX(-7%)}24%{background-position:66.66667% 0%;transform:translateX(1%)}36%{background-position:100.00000% 0%;transform:translateX(9%)}48%{background-position:0.00000% 100%;transform:translateX(-15%)}60%{background-position:33.33333% 100%;transform:translateX(-7%)}70%{background-position:66.66667% 100%;transform:translateX(1%)}84%{background-position:100.00000% 100%;transform:translateX(9%)}100%{background-position:0.00000% 0%;transform:translateX(-15%)}}
@keyframes einstein-acting{0%{background-position:0.00000% 0%;transform:translateX(-11%)}16%{background-position:33.33333% 0%;transform:translateX(-5%)}27%{background-position:66.66667% 0%;transform:translateX(1%)}38%{background-position:100.00000% 0%;transform:translateX(7%)}48%{background-position:0.00000% 100%;transform:translateX(-11%)}60%{background-position:33.33333% 100%;transform:translateX(-5%)}70%{background-position:66.66667% 100%;transform:translateX(1%)}84%{background-position:100.00000% 100%;transform:translateX(7%)}100%{background-position:0.00000% 0%;transform:translateX(-11%)}}
@media(prefers-reduced-motion:reduce){.mascot-slider .mascot-frames{animation:none;background-position:0 0;transform:none}.mascot-tap{display:none}}

/* Mascot challenge stations: warm cave, curious classroom, twilight laboratory. */
.game-panel{--arena-accent:#c56d29;--arena-dark:#63432e;--arena-paper:#fffaf1;--arena-wash:#f4e8d6;--arena-line:#e8d6bb;--arena-highlight:#ffcf35;border:1px solid var(--arena-line);border-radius:22px;box-shadow:0 12px 34px #1735530a;overflow:hidden;background:#fff}
.game-panel[data-theme=learning]{--arena-accent:#287a60;--arena-dark:#214f4c;--arena-paper:#f3faf6;--arena-wash:#deeee5;--arena-line:#c7dfd1;--arena-highlight:#bde377}
.game-panel[data-theme=einstein]{--arena-accent:#7561b7;--arena-dark:#2c345b;--arena-paper:#f7f5ff;--arena-wash:#e6e2f4;--arena-line:#d6cfeb;--arena-highlight:#ffcf35}
.play-layout{grid-template-columns:minmax(0,1.95fr) minmax(285px,.85fr);gap:24px;scroll-margin-top:24px}
.game-panel .game-heading{background:linear-gradient(115deg,#194b8d,#17395f);padding:23px 26px;margin:0;gap:18px;position:relative;border-bottom:4px solid var(--arena-highlight)}
.station-heading{display:flex;align-items:center;gap:14px;min-width:0}.station-emblem{display:grid;place-items:center;flex-shrink:0;width:50px;height:54px;background:var(--arena-highlight);color:#23415b;border:2px solid #fff6;border-radius:15px 15px 20px 20px;box-shadow:0 4px 0 #071a3533;font-size:33px;line-height:1;transform:rotate(-5deg)}
.station-eyebrow{display:block;color:#dce6f2;font-size:8px;letter-spacing:1.7px;margin-bottom:7px;font-weight:700}.station-heading h2{font-size:25px;font-weight:750;letter-spacing:-.7px;color:white;margin:0}.game-panel .game-heading-actions{justify-content:flex-end;gap:8px}.game-panel .game-heading-actions .status-pill{font-size:7px;letter-spacing:.8px;display:block;background:#ffffff14;border:1px solid #ffffff26;padding:8px 10px}.game-panel .expand-button{border-color:#ffffff45;background:#fff1;border-radius:9px;padding:10px 12px;font-size:10px}
.game-panel .game-stats{display:grid;grid-template-columns:1.25fr .85fr 1.2fr;gap:10px;margin:0;padding:20px 24px;border:0;border-radius:0;background:#fff;align-items:stretch}
.game-panel .game-stats>.stat-card{display:flex;align-items:center;gap:11px;min-width:0;min-height:94px;margin:0;padding:15px 14px;border:1px solid #dfe8f0;border-bottom:3px solid #d3dfeb;border-radius:13px;background:#f7fafd}
.game-panel .game-stats>.time-card{background:#edf3fd;border-color:#d0dff0;border-bottom-color:#b0c9e9}.game-panel .game-stats .stat-icon{width:23px;height:26px;color:#426ca1;flex-shrink:0}.game-panel .game-stats span{font-size:7px;letter-spacing:1px;color:#667c91}.game-panel .game-stats strong{font-size:29px;font-weight:750;line-height:1.1;color:#203e60;margin-top:7px;letter-spacing:-1px}.game-panel .game-stats #timer{font-size:31px;white-space:nowrap}.game-panel .game-stats #timer>span{font-size:18px;letter-spacing:-.5px;color:#7186a1;font-weight:500;display:inline}
.game-panel .game-stats>.progress-stat{display:block;padding:13px 14px;background:var(--arena-paper);border-color:var(--arena-line)}.game-panel .progress-heading{display:flex;align-items:center;justify-content:space-between;gap:4px}.game-panel .progress-heading>span{font-size:6px;letter-spacing:.8px}.game-panel #progress-percent{font-size:24px;margin:0;color:var(--arena-accent)}.game-panel #progress-percent small{font-size:12px;margin-left:1px;font-weight:500;letter-spacing:0}.game-panel .progress-track{margin:9px 0 7px;height:7px;background:var(--arena-wash);border-radius:8px}.game-panel .progress-track i{background:var(--arena-accent);border-radius:8px}.game-panel #progress-label{font-size:8px;color:var(--arena-accent);white-space:nowrap}.game-panel .progress-suffix{font-size:7px;letter-spacing:0;display:inline;margin-left:4px;font-weight:400;color:#77828e}
.puzzle-workspace{padding:0 24px 19px;background:linear-gradient(180deg,#fff,var(--arena-paper) 40%)}
.board-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:3px 2px 14px}.board-caption>div{display:flex;align-items:center;gap:9px;min-width:0}.board-photo-mark{display:grid;place-items:center;font-size:24px;flex-shrink:0;color:var(--arena-accent)}.board-caption strong{display:block;font-size:12px;color:#28435c;overflow-wrap:anywhere}.board-caption #board-photo-year{display:block;font-size:7px;letter-spacing:1px;color:#7b8994;margin-top:4px}.board-caption>#board-caption-state{font-size:7px;letter-spacing:.9px;color:var(--arena-accent);font-weight:750;text-align:right}
.board-frame{position:relative;padding:17px;border-radius:19px;background:var(--arena-dark);box-shadow:0 5px 0 color-mix(in srgb,var(--arena-dark) 80%,#000),0 12px 18px #17355314,inset 0 1px 0 #ffffff30;border:1px solid #fff2}
.frame-pin{position:absolute;width:5px;height:5px;background:#ffffff75;border-radius:50%;box-shadow:0 1px 1px #0005;pointer-events:none}.pin-tl{top:7px;left:7px}.pin-tr{top:7px;right:7px}.pin-bl{bottom:7px;left:7px}.pin-br{bottom:7px;right:7px}
.game-panel .board-wrap{margin:0;width:100%;border:0;border-radius:6px;background:var(--arena-wash);box-shadow:0 0 0 2px #0002;overflow:hidden;isolation:isolate}
.game-panel .board{background:var(--arena-dark);gap:3px}.game-panel .tile{border-radius:2px;opacity:1;box-shadow:inset 0 0 0 1px #ffffff26}.game-panel .tile:disabled{opacity:1;cursor:default}.game-panel[data-state=ready] .board{gap:0}.game-panel[data-state=ready] .tile{border-radius:0}.game-panel .tile.correct::after{background:#1b6a48e6;box-shadow:0 1px 3px #0002}.game-panel .tile.selected{outline:3px solid var(--sun);outline-offset:-3px}.game-panel .tile-image{transition:transform .17s}
.game-panel .mission-launch{position:relative;inset:auto;margin:21px 0 0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;text-align:left;gap:12px;padding:15px;background:#fff;border:1px solid var(--arena-line);border-radius:13px;color:var(--ink);backdrop-filter:none;box-shadow:0 3px 0 #17355304}.launch-mark{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;background:var(--arena-wash);color:var(--arena-accent);font-size:22px}.launch-copy{flex:1;min-width:0}.game-panel .mission-launch h3{font-size:12px;font-weight:750;line-height:1.4;letter-spacing:0;margin:0;color:#2d465b}.game-panel .mission-launch p{font-size:10px;line-height:1.5;color:#728394;margin:4px 0 0}.game-panel .mission-launch small{display:block;font-size:8px;line-height:1.5;color:#8493a0;margin:5px 0 0}.game-panel .mission-launch .primary-button{min-width:0;background:var(--arena-highlight);border:1px solid #0000000a;border-bottom:3px solid #00000022;color:#243e50;font-size:11px;font-weight:750;padding:13px 14px;gap:12px;border-radius:10px;box-shadow:none;line-height:1.35;max-width:205px;flex-shrink:0}.game-panel .mission-launch .primary-button:hover{filter:brightness(1.035);transform:translateY(-1px)}.game-panel .mission-launch .primary-button:disabled{transform:none}
.game-panel .board-controls{padding:19px 24px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;background:#fff;border-top:1px solid var(--arena-line)}.play-instruction{display:flex;align-items:center;gap:9px}.gesture-symbol{display:grid;place-items:center;background:#eef3f9;color:#48698d;width:32px;height:32px;border-radius:8px;font-size:20px}.play-instruction strong{display:block;font-size:10px;color:#4c637a;font-weight:650}.play-instruction small{display:block;font-size:8px;margin-top:4px;line-height:1.5;color:#81909e}.game-panel .puzzle-tools{gap:7px;flex-wrap:wrap}.game-panel .puzzle-tools button{min-height:38px;border-radius:9px;border:1px solid #d3deea;border-bottom:3px solid #c8d6e4;background:#f6f9fd;color:#3a5f89;font-size:10px;padding:9px 12px}.game-panel .puzzle-tools .icon-button{font-size:17px;padding:4px 10px}.game-panel .puzzle-tools button:enabled:hover{background:#e8f0fa;border-color:#a9bfd8}.game-panel .puzzle-tools button:enabled:active{border-bottom-width:1px;transform:translateY(2px)}.game-panel .puzzle-tools button:disabled{opacity:.5}.game-panel .puzzle-tools button>span{background:#e0eaf7;border-radius:5px}
.game-panel .coach-note{display:flex;align-items:center;gap:13px;margin:0 24px 23px;padding:12px 15px;background:var(--arena-paper);border:1px dashed var(--arena-line);border-radius:13px;overflow:hidden}.coach-avatar{width:46px;height:53px;flex-shrink:0;position:relative;display:grid;place-items:center}.coach-avatar::before{content:'';position:absolute;width:43px;height:43px;border-radius:50%;background:var(--arena-wash)}.coach-avatar img{width:51px;height:58px;object-fit:contain;position:relative}.coach-label{font-size:7px;font-weight:800;letter-spacing:1px;color:var(--arena-accent)}.game-panel .coach-note p{font-size:10px;line-height:1.7;margin:4px 0 0;color:#71808e}
/* A compact trophy cabinet beside the challenge station. */
.play-layout>.leaderboard{border-radius:22px;border-color:#d8e3ef;box-shadow:0 12px 34px #17355308;padding:24px 22px;background:linear-gradient(180deg,#fff 65%,#f7faff)}.play-layout .leader-heading{padding:24px 22px;background:linear-gradient(115deg,#194b8d,#17395f);border-bottom:4px solid var(--sun)}.play-layout .leader-heading h2{font-size:23px;font-weight:750;letter-spacing:-.5px;margin-top:7px}.play-layout .leader-heading .eyebrow{font-size:6px}.play-layout .trophy-icon{border-radius:13px;background:#ffdb64;color:#80551a;box-shadow:0 3px 0 #0002;padding:7px 10px;transform:rotate(-5deg)}.play-layout .leader-tabs{padding:5px;border:1px solid #dfE8f1;border-radius:11px;background:#eef3fa}.play-layout .leader-tabs button{border-radius:7px;min-height:35px;font-weight:600}.play-layout .leader-tabs .active{box-shadow:0 2px 0 #123562}.play-layout .empty-scores{margin:16px 0 20px;padding:28px 10px;border:1px dashed #ccdbea;border-radius:13px;background:#f5f9fe}.play-layout .empty-art{color:#7795b5;font-size:37px;margin-bottom:12px}.play-layout .empty-scores strong{font-size:14px;font-weight:650}.play-layout .empty-scores p{font-size:10px}.play-layout .empty-tag{font-size:6px;background:#fff;border:1px solid #d8e5f0;padding:8px 9px;letter-spacing:.7px}.play-layout .fair-play{background:#edf3fa;border-radius:10px}
/* The same station expands, including panoramic class photographs. */
.puzzle-expanded .game-panel{border:0;border-radius:0;background:var(--arena-paper)}.puzzle-expanded .game-panel .game-heading{padding:13px 24px;margin:0}.puzzle-expanded .game-panel .station-emblem{height:38px;width:38px;font-size:25px;border-radius:10px}.puzzle-expanded .game-panel .station-heading h2{font-size:22px}.puzzle-expanded .game-panel .game-stats{width:min(1000px,100%);align-self:center;padding:12px 24px;margin:0;background:transparent;gap:10px}.puzzle-expanded .game-panel .game-stats>.stat-card{min-height:72px;padding:10px 14px}.puzzle-expanded .game-panel .puzzle-workspace{padding:0 24px 14px;display:flex;align-items:center;flex-direction:column;background:none;flex:1}.puzzle-expanded .game-panel .board-caption{width:min(100%,1400px);padding-bottom:10px}.puzzle-expanded .game-panel .board-frame{width:min(100%,calc(max(140px,100dvh - 320px)*var(--photo-ratio,1)));max-width:1400px;flex-shrink:0}.puzzle-expanded .game-panel[data-state=ready] .board-frame{width:min(100%,calc(max(140px,100dvh - 425px)*var(--photo-ratio,1)))}.puzzle-expanded .game-panel .board-wrap{width:100%;margin:0;max-width:none}.puzzle-expanded .game-panel .mission-launch{width:min(100%,1000px);margin-top:17px}.puzzle-expanded .game-panel .board-controls{width:100%;max-width:1400px;align-self:center;background:transparent;padding:12px 24px;border:0}.puzzle-expanded .game-panel .coach-note{display:none}
@media(max-width:1100px) and (min-width:761px){.play-layout{grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:18px}.game-panel .game-heading{padding:20px}.station-heading h2{font-size:22px}.game-panel .game-stats{padding:17px;gap:7px}.game-panel .game-stats>.stat-card{gap:7px;padding:12px 10px}.game-panel .game-stats .stat-icon{width:19px}.game-panel .game-stats #timer{font-size:26px}.game-panel .progress-suffix{display:none}.puzzle-workspace{padding:0 17px 17px}.game-panel .mission-launch{flex-wrap:wrap}.game-panel .mission-launch .primary-button{max-width:none;margin-left:44px;flex:1}.game-panel .coach-note{margin:0 17px 20px}.game-panel .board-controls{padding:17px}.play-layout>.leaderboard{padding:24px 18px}.play-layout .leader-heading{margin-left:-18px;margin-right:-18px;padding:23px 18px}}
@media(max-width:760px){.play-layout{grid-template-columns:1fr;gap:22px}.game-panel{border-radius:18px}.game-panel .game-heading{padding:18px;gap:14px}.station-emblem{width:43px;height:47px;font-size:29px}.station-heading{gap:11px}.station-heading h2{font-size:23px}.station-eyebrow{font-size:7px;letter-spacing:1.2px}.game-panel .game-heading-actions{margin-left:auto}.game-panel .game-heading-actions .status-pill{display:none}.game-panel .game-stats{padding:16px;gap:8px;grid-template-columns:1.25fr .8fr 1.1fr}.game-panel .game-stats>.stat-card{padding:12px 10px;gap:7px;min-height:87px}.game-panel .game-stats .stat-icon{display:none}.game-panel .game-stats span{font-size:6px;letter-spacing:.7px}.game-panel .game-stats #timer{font-size:29px}.game-panel .game-stats #timer>span{font-size:16px}.game-panel .game-stats #moves{font-size:27px}.game-panel .game-stats>.progress-stat{padding:11px 9px}.game-panel .progress-heading{align-items:flex-start;gap:3px;flex-direction:column}.game-panel #progress-percent{font-size:21px;margin-top:4px}.game-panel .progress-heading>span{font-size:5px;letter-spacing:.6px}.game-panel .progress-track{margin:6px 0}.game-panel #progress-label{font-size:7px}.game-panel .progress-suffix{display:none}.puzzle-workspace{padding:0 16px 17px}.board-caption{padding-bottom:12px}.board-caption strong{font-size:11px}.board-caption>#board-caption-state{font-size:6px;max-width:85px;line-height:1.6}.board-frame{padding:12px;border-radius:14px}.frame-pin{width:4px;height:4px}.pin-tl{left:4px;top:4px}.pin-tr{right:4px;top:4px}.pin-bl{left:4px;bottom:4px}.pin-br{right:4px;bottom:4px}.game-panel .board{gap:2px}.game-panel .mission-launch{margin-top:18px;gap:10px;flex-wrap:wrap;padding:13px}.launch-mark{width:29px;height:29px;font-size:20px}.game-panel .mission-launch h3{font-size:12px}.game-panel .mission-launch .primary-button{flex-basis:100%;max-width:none;justify-content:center;margin-top:2px;min-height:45px}.game-panel .mission-launch small{font-size:8px}.game-panel .board-controls{padding:16px;gap:14px}.game-panel .puzzle-tools{gap:7px;width:100%}.game-panel .puzzle-tools button{flex:1;min-height:41px;font-size:11px;padding:10px}.game-panel .puzzle-tools .icon-button{flex:0 0 41px}.play-instruction strong{font-size:11px}.play-instruction small{font-size:9px}.game-panel .coach-note{margin:0 16px 18px;padding:10px 12px;gap:10px}.game-panel .coach-note p{font-size:10px}.play-layout .leader-heading{margin-top:-24px}.puzzle-expanded .game-panel .puzzle-workspace{padding:0 12px 12px}.puzzle-expanded .game-panel .game-heading{padding:12px 16px}.puzzle-expanded .game-panel .game-stats{padding:10px 12px}.puzzle-expanded .game-panel .board-controls{padding:12px}.puzzle-expanded .game-panel .board-frame{width:min(100%,calc(max(140px,100dvh - 340px)*var(--photo-ratio,1)))}.puzzle-expanded .game-panel[data-state=ready] .board-frame{width:min(100%,calc(max(140px,100dvh - 465px)*var(--photo-ratio,1)))}.puzzle-expanded .game-panel .mission-launch{padding:11px;margin-top:15px}.puzzle-expanded .game-panel .launch-mark{display:none}.puzzle-expanded .game-panel .mission-launch small{display:none}}
.game-panel .game-heading-actions .status-pill.playing{background:#e7f3df;color:#245d3d;border-color:#c3dcb4}

/* Mobile expansion gives the photograph the whole viewport. */
.mobile-exit-button{display:none}
.mobile-puzzle-expanded .game-panel{padding:0!important;background:#101b29!important;min-height:100dvh;overflow:hidden}
.mobile-puzzle-expanded .game-panel .game-heading,.mobile-puzzle-expanded .game-panel .game-stats,.mobile-puzzle-expanded .game-panel .board-caption,.mobile-puzzle-expanded .game-panel .mission-launch,.mobile-puzzle-expanded .game-panel .board-controls,.mobile-puzzle-expanded .game-panel .coach-note{display:none!important}
.mobile-puzzle-expanded .game-panel .puzzle-workspace{padding:0!important;margin:0;flex:1;width:100%;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent}
.mobile-puzzle-expanded .game-panel .board-frame,.mobile-puzzle-expanded .game-panel[data-state=ready] .board-frame{width:min(100vw,calc(100dvh * var(--photo-ratio,1)))!important;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;margin:0;flex-shrink:0}
.mobile-puzzle-expanded .game-panel .board-wrap{width:100%;border-radius:0;box-shadow:none}.mobile-puzzle-expanded .frame-pin{display:none}
.mobile-puzzle-expanded .mobile-exit-button{display:grid;place-items:center;position:fixed;right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:60;width:38px;height:38px;padding:0;border-radius:50%;border:1px solid #ffffff70;background:#12243dcc;color:#fff;font-size:27px;line-height:1;box-shadow:0 2px 10px #0002}
.mobile-puzzle-expanded .mobile-exit-button:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.game-panel[data-state=ready] .tile{box-shadow:none}

/* Correct the two original sprite windows without changing their eight poses. */
.mascot-frames.registered-frames{animation:none!important;background:none!important;transform:none!important}
.registered-mascot{width:100%;height:100%;display:block;overflow:hidden}
.registered-mascot .mascot-pose{visibility:hidden;animation-timing-function:step-end;animation-iteration-count:infinite}
[data-character=learning] .pose-0{animation-name:learning-pose-0;animation-duration:6s}
@keyframes learning-pose-0{0%{visibility:visible}14%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-1{animation-name:learning-pose-1;animation-duration:6s}
@keyframes learning-pose-1{0%{visibility:hidden}14%{visibility:visible}24%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-2{animation-name:learning-pose-2;animation-duration:6s}
@keyframes learning-pose-2{0%{visibility:hidden}24%{visibility:visible}36%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-3{animation-name:learning-pose-3;animation-duration:6s}
@keyframes learning-pose-3{0%{visibility:hidden}36%{visibility:visible}48%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-4{animation-name:learning-pose-4;animation-duration:6s}
@keyframes learning-pose-4{0%{visibility:hidden}48%{visibility:visible}60%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-5{animation-name:learning-pose-5;animation-duration:6s}
@keyframes learning-pose-5{0%{visibility:hidden}60%{visibility:visible}70%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-6{animation-name:learning-pose-6;animation-duration:6s}
@keyframes learning-pose-6{0%{visibility:hidden}70%{visibility:visible}84%{visibility:hidden}100%{visibility:hidden}}
[data-character=learning] .pose-7{animation-name:learning-pose-7;animation-duration:6s}
@keyframes learning-pose-7{0%{visibility:hidden}84%{visibility:visible}100%{visibility:hidden}}
[data-character=einstein] .pose-0{animation-name:einstein-pose-0;animation-duration:6.4s}
@keyframes einstein-pose-0{0%{visibility:visible}16%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-1{animation-name:einstein-pose-1;animation-duration:6.4s}
@keyframes einstein-pose-1{0%{visibility:hidden}16%{visibility:visible}27%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-2{animation-name:einstein-pose-2;animation-duration:6.4s}
@keyframes einstein-pose-2{0%{visibility:hidden}27%{visibility:visible}38%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-3{animation-name:einstein-pose-3;animation-duration:6.4s}
@keyframes einstein-pose-3{0%{visibility:hidden}38%{visibility:visible}48%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-4{animation-name:einstein-pose-4;animation-duration:6.4s}
@keyframes einstein-pose-4{0%{visibility:hidden}48%{visibility:visible}60%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-5{animation-name:einstein-pose-5;animation-duration:6.4s}
@keyframes einstein-pose-5{0%{visibility:hidden}60%{visibility:visible}70%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-6{animation-name:einstein-pose-6;animation-duration:6.4s}
@keyframes einstein-pose-6{0%{visibility:hidden}70%{visibility:visible}84%{visibility:hidden}100%{visibility:hidden}}
[data-character=einstein] .pose-7{animation-name:einstein-pose-7;animation-duration:6.4s}
@keyframes einstein-pose-7{0%{visibility:hidden}84%{visibility:visible}100%{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.registered-mascot .mascot-pose{animation:none!important;visibility:hidden}.registered-mascot .pose-0{visibility:visible}}

/* A brief visit from the current mascot, outside the playable photo. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-panel .mascot-coach{position:relative;border:0;background:transparent;align-items:center;gap:12px;padding:0 10px 0 0;min-height:94px;animation:coach-hello .25s ease-out both}
.game-panel .mascot-coach .coach-avatar{width:77px;height:90px;flex-shrink:0}.mascot-coach .coach-avatar::before{width:66px;height:66px;background:var(--arena-wash)}.mascot-coach .coach-avatar img{width:78px;height:88px;object-fit:contain}
.mascot-coach>.coach-avatar+div{position:relative;flex:1;border:1px solid var(--arena-line);background:var(--arena-paper);border-radius:15px;padding:14px 33px 14px 16px;box-shadow:0 3px 0 #17355306}
.mascot-coach>.coach-avatar+div::before{content:'';position:absolute;top:30px;left:-6px;width:10px;height:10px;background:var(--arena-paper);border-left:1px solid var(--arena-line);border-bottom:1px solid var(--arena-line);transform:rotate(45deg)}
.game-panel .mascot-coach p{font-size:12px;line-height:1.65;color:#465f74;margin-top:5px}.coach-dismiss{position:absolute;right:16px;top:12px;width:27px;height:27px;border:0;background:transparent;color:#718396;font-size:21px;border-radius:50%;padding:0;display:grid;place-items:center}.coach-dismiss:hover{background:#1735530a}.game-panel .puzzle-tools #coach-trigger{background:var(--arena-paper);border-color:var(--arena-line);color:var(--arena-accent)}
#complete-dialog .celebration{height:95px;display:grid;place-items:center;letter-spacing:8px;font-size:45px}
.completion-coach{display:flex;align-items:center;gap:12px;text-align:left;letter-spacing:0;width:100%;animation:coach-hello .25s ease-out both}.completion-coach img{width:80px;height:90px;object-fit:contain;flex-shrink:0}.completion-coach p{margin:0;background:#eef5fc;border:1px solid #d6e4f1;border-radius:13px;padding:12px 14px;font-size:12px!important;font-weight:600;color:var(--blue);line-height:1.6}
@keyframes coach-hello{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.game-panel .mascot-coach{padding-right:0;gap:8px}.game-panel .mascot-coach .coach-avatar{width:62px;height:82px}.mascot-coach .coach-avatar img{width:64px;height:80px}.mascot-coach .coach-avatar::before{width:55px;height:55px}.mascot-coach>.coach-avatar+div{padding:12px 28px 12px 13px}.game-panel .mascot-coach p{font-size:11px}.mascot-coach .coach-label{font-size:6px;letter-spacing:.8px}.coach-dismiss{right:4px;top:9px}.completion-coach{gap:8px}.completion-coach img{width:64px;height:80px}.completion-coach p{padding:10px 12px;font-size:11px!important}.game-panel .puzzle-tools #coach-trigger{font-size:10px}}
@media(prefers-reduced-motion:reduce){.mascot-coach,.completion-coach{animation:none!important}}

/* Mascot visits are also visible in expanded desktop and mobile play. */
.fullscreen-coach-trigger{display:none}
.puzzle-expanded .game-panel #mascot-coach:not([hidden]){display:flex!important;position:fixed;right:12px;bottom:12px;top:auto;left:auto;z-index:65;width:min(420px,calc(100vw - 24px));max-width:none;min-height:0;margin:0!important;padding:0;gap:10px;pointer-events:none}
.puzzle-expanded #mascot-coach .coach-avatar{width:62px;height:72px}.puzzle-expanded #mascot-coach .coach-avatar img{width:64px;height:72px}.puzzle-expanded #mascot-coach .coach-avatar::before{width:54px;height:54px}
.puzzle-expanded #mascot-coach #coach-dismiss{pointer-events:auto}
.puzzle-expanded #mascot-coach.coach-compact{gap:7px}.puzzle-expanded #mascot-coach.coach-compact .coach-avatar{width:40px;height:44px}.puzzle-expanded #mascot-coach.coach-compact .coach-avatar img{width:42px;height:44px}.puzzle-expanded #mascot-coach.coach-compact .coach-avatar::before{width:36px;height:36px}.puzzle-expanded #mascot-coach.coach-compact .coach-avatar+div{padding:7px 28px 7px 10px;border-radius:10px}.puzzle-expanded #mascot-coach.coach-compact .coach-label{display:none}.puzzle-expanded #mascot-coach.coach-compact p{font-size:10px;line-height:1.35;margin:0}.puzzle-expanded #mascot-coach.coach-compact .coach-avatar+div::before{top:18px}.puzzle-expanded #mascot-coach.coach-compact #coach-dismiss{top:calc(50% - 14px);right:3px}
.mobile-puzzle-expanded .fullscreen-coach-trigger{position:fixed;display:grid;place-items:center;left:max(12px,env(safe-area-inset-left));top:max(12px,env(safe-area-inset-top));z-index:60;width:38px;height:38px;border-radius:50%;border:1px solid #ffffff70;background:#12243dcc;color:#ffcf35;font-size:24px;padding:0;box-shadow:0 2px 10px #0002}
.mobile-puzzle-expanded .fullscreen-coach-trigger:focus-visible{outline:3px solid var(--sun);outline-offset:3px}

/* A visible, explicit call button for laptop full-screen play. */
.desktop-coach-trigger{display:none}
.puzzle-expanded:not(.mobile-puzzle-expanded) #desktop-coach-trigger{display:inline-flex;align-items:center;gap:5px;background:#ffcf35;color:#203c57;border-color:#ffdf7a;font-weight:750;white-space:nowrap}
.puzzle-expanded #coach-trigger{display:none}
.puzzle-expanded .game-panel .game-heading{position:sticky;top:0;z-index:55}

/* Native full-screen messages belong to the browser's top display layer. */
.puzzle-expanded .game-panel #mascot-coach[popover]{overflow:visible;background:transparent;border:0;box-shadow:none;max-height:none;color:var(--ink)}
#mascot-coach[popover]::backdrop{background:transparent;pointer-events:none}

/* Laptop tips use a dedicated panel anchored directly to the visible call button. */
.fullscreen-mascot-message{display:none}
.puzzle-expanded:not(.mobile-puzzle-expanded) #fullscreen-mascot-message:not([hidden]){display:flex!important;position:fixed;z-index:90;left:auto;right:auto;top:76px;width:min(420px,calc(100vw - 24px));align-items:center;gap:13px;padding:14px 33px 14px 14px;border:2px solid var(--arena-accent);border-radius:16px;background:var(--arena-paper);color:var(--ink);box-shadow:0 12px 38px #12294240;animation:none}
#fullscreen-mascot-message::before{content:'';position:absolute;top:-8px;left:var(--tip-arrow,50%);width:12px;height:12px;transform:rotate(45deg);background:var(--arena-paper);border-left:2px solid var(--arena-accent);border-top:2px solid var(--arena-accent)}
#fullscreen-mascot-message img{width:72px;height:88px;object-fit:contain;flex-shrink:0}
#fullscreen-mascot-message strong{display:block;font-size:8px;letter-spacing:1px;color:var(--arena-accent)}
#fullscreen-mascot-message p{font-size:13px;line-height:1.6;margin:7px 0 0;color:#345069}
#fullscreen-mascot-close{position:absolute;right:5px;top:5px;width:29px;height:29px;border:0;background:transparent;color:#45607a;font-size:23px;border-radius:50%;padding:0}
#fullscreen-mascot-close:hover{background:#17355312}
.puzzle-expanded #desktop-coach-trigger[aria-expanded=true]{background:#fff0b7;box-shadow:0 0 0 2px #ffcf3566}
.scoreboard-shortcut{color:#fff;background:#ffffff17;border:1px solid #ffffff45;padding:8px 11px;border-radius:7px;font-size:10px;font-weight:650;text-decoration:none;white-space:nowrap}.school-standings-link{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:13px 0 18px;font-size:10px;font-weight:700;text-decoration:none;color:var(--blue)}
@media(max-width:760px){.scoreboard-shortcut{font-size:8px;padding:7px 9px}}

/* Generic CSJ puzzle mascot replaces the decorative introduction graphic. */
.intro-mascot{display:grid;place-items:center;isolation:isolate;flex-shrink:0}.intro-mascot-halo{position:absolute;z-index:-1;width:184px;height:184px;top:4px;left:38px;border-radius:50%;border:1px solid #d8e6d0;background:linear-gradient(135deg,#edf5df,#e4f0fc)}.intro-mascot picture{display:block;width:215px;height:215px;margin-top:-12px}.intro-mascot img{display:block;width:100%;height:100%;object-fit:contain}.intro-mascot .art-caption{left:0;right:0;bottom:-16px;text-align:center}.intro-mascot-toggle{position:absolute;right:4px;top:0;width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid #c9dbea;border-radius:50%;background:#fff;color:#496d8d;font-size:12px;box-shadow:0 2px 5px #17355309}
@media(max-width:760px){.intro{flex-wrap:wrap}.intro>div:first-child{width:100%}.intro-mascot{display:grid;width:150px;height:150px;margin:20px auto 13px}.intro-mascot picture{width:150px;height:150px;margin-top:0}.intro-mascot-halo{width:130px;height:130px;left:10px;top:8px}.intro-mascot .art-caption{font-size:11px;bottom:-12px;white-space:nowrap}.intro-mascot-toggle{right:-15px;top:3px;width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.intro-mascot-toggle{display:none}}

/* Puzzle Pal is the shared animated brand mark. */
.brand-mascot{display:block;width:60px;height:60px;flex:0 0 60px;background:#edf4fc;border-radius:50%}.brand-mascot img{display:block;width:100%;height:100%;object-fit:contain}@media(max-width:760px){.brand-mascot{width:44px;height:44px;flex-basis:44px}}

.ladder-streams{margin-top:12px;padding-top:11px;border-top:1px dashed #d2dfeb}.stream-label{display:block;color:#637d94;font-size:10px;margin-bottom:8px}.ladder-streams .picker-choice{min-width:42px}

.standalone-competitions{padding:18px;margin-bottom:24px;border:1px solid #cbdcf0;border-radius:14px;background:#f5f8fc}.standalone-competitions .section-options{margin-top:12px}.picker-step[hidden]{display:none}

.picker-steps.standalone-selected{grid-template-columns:1fr}.standalone-selected .year-options{display:flex;flex-wrap:wrap;gap:10px}.standalone-selected .year-options .picker-choice{flex:1;min-width:150px}

/* Sharing works without social trackers or embedded third-party widgets. */
.share-dialog{max-width:600px;width:calc(100% - 32px);box-sizing:border-box}.share-dialog textarea{width:100%;box-sizing:border-box;font:inherit;padding:14px;border:1px solid #b8cbd9;border-radius:10px;resize:vertical;line-height:1.6}.share-dialog p{line-height:1.6}.share-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.share-local{padding:12px;background:#fff3d5;border-radius:10px}.share-dialog button:disabled{opacity:.45;cursor:not-allowed}.result-share{margin:20px 0 0}.share-invite{margin:12px 0}

/* Raster jigsaw pieces overlap their cells so matching tabs join when solved. */
.game-panel .board.jigsaw-board{gap:0;isolation:isolate;background:#d7e3ef;overflow:hidden}.board .tile.jigsaw-tile{overflow:visible;background:transparent;border-radius:0;box-shadow:none}.jigsaw-tile .tile-image{filter:drop-shadow(0 1px 1px #17355350)}.jigsaw-tile.selected{z-index:5}.jigsaw-tile:focus-visible{z-index:6}.jigsaw-tile.drag-over{z-index:7}

/* Readable school identity and developer credit, including on narrow screens. */
.site-footer{max-width:1440px;margin:0 auto;padding:30px max(5vw,24px);gap:24px;color:#405b73;font-size:13px;line-height:1.7;letter-spacing:0;flex-wrap:wrap}
.footer-identity{display:flex;flex-direction:column;gap:5px;min-width:0}
.footer-school{font-size:12px;font-weight:600;letter-spacing:.35px;overflow-wrap:anywhere}
.footer-credit{font-size:12px;color:#536b80}
.footer-motto{display:flex;align-items:center;gap:16px;font-size:12px}
.site-footer .footer-flower{margin:0;flex-shrink:0}
@media(max-width:600px){.site-footer{padding:24px 20px;gap:16px;align-items:flex-start;flex-direction:column}.footer-school{font-size:12px;line-height:1.8}.footer-motto{gap:12px}}

.site-footer a.footer-credit{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a6b8c8;width:fit-content}.site-footer a.footer-credit:hover{color:var(--blue);text-decoration-color:currentColor}
