@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./vendor/fonts/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./vendor/fonts/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./vendor/fonts/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./vendor/fonts/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Libre Caslon Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./vendor/fonts/font-4.ttf) format('truetype');
}

:root{--bg:#10231e;--panel:#1c3027;--panel-hi:#2b4434;--panel-low:#14271f;--scene:#10271f;--scene-glow:#456748;--backdrop-swatch:#456748;--gold:#d5bc85;--cream:#f4ebd8;--muted:#9aaea0;--line:rgba(197,215,178,.14);--sans:'DM Sans',system-ui,sans-serif;--serif:'Libre Caslon Display',Georgia,serif;color-scheme:dark;font-family:var(--sans);color:var(--cream);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 65% 18%,#203a2c66,transparent 50%),var(--bg)}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}button:disabled{cursor:default;opacity:.38}button:not(:disabled):hover{filter:brightness(1.13)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #92e4cc;outline-offset:5px}a{color:inherit;text-decoration:none}svg{width:22px;height:22px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}em{font-style:normal;color:var(--gold)}[hidden]{display:none!important}.app-shell{max-width:1560px;margin:auto;padding:0 64px}.header{height:108px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:22px;line-height:1.1;letter-spacing:3px;font-weight:600}.brand-sub{display:block;letter-spacing:2.5px;font-size:8px;margin-top:7px;font-weight:500}.brand-icon{width:44px;height:50px;color:var(--gold);display:grid;place-items:center;border:1px solid #b5a47566;border-radius:15px 15px 4px 4px}.brand-icon svg{width:30px;height:35px}.navigation{display:flex;height:100%;gap:34px;align-items:center}.nav{height:100%;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#9baea2;position:relative;padding:0 3px}.nav svg{width:18px;height:18px}.nav.active{color:var(--cream)}.nav.active:after{content:'';position:absolute;bottom:-1px;height:2px;background:var(--gold);left:0;right:0}.header-right{display:flex;gap:16px;align-items:center}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted)}.icon-button:hover{background:#b5cda411}.icon-button svg{width:18px;height:18px}.profile{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:30px;padding:8px 14px 8px 9px;font-size:12px;color:#d2decf}.profile>svg{padding:7px;background:#304735;border-radius:50%;width:32px;height:32px;color:#dfd1ac}.profile i{display:block;width:5px;height:5px;border-bottom:1px solid;border-right:1px solid;transform:rotate(45deg);margin:0 2px 3px 6px}.page-heading{padding:37px 0 32px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;letter-spacing:2.1px;font-weight:600;color:#a9b59e;display:flex;align-items:center;gap:8px}.tiny-star{color:var(--gold);font-size:15px;line-height:1}h1{font-size:60px;line-height:.99;letter-spacing:-1.7px;margin-top:16px}.heading-note{display:flex;align-items:center;gap:18px;font-size:12px;line-height:1.8;color:#a2b19f;align-self:flex-end;padding:0 4px 6px}.note-line{width:40px;height:1px;background:#a28f5f}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 336px;border:1px solid #82926f38;border-radius:16px;overflow:hidden;min-height:534px;background:#172d24;box-shadow:0 24px 80px #07100b2b}.scene-panel{position:relative;min-height:534px;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#49604355,transparent 66%),linear-gradient(150deg,#1d352b,#0d2521);isolation:isolate}.scene-panel.classic{background:radial-gradient(ellipse at 50% 42%,#56432b77,transparent 75%),#211f1c}.scene-panel:after{position:absolute;content:'';inset:0;box-shadow:inset 0 -20px 40px #10231e33;pointer-events:none;z-index:1}.scene-top,.scene-bottom{position:absolute;z-index:3;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:10px}.scene-top{top:21px}.scene-bottom{bottom:17px}.world-label{display:flex;align-items:center;gap:8px;color:#bdccb7;font-size:8px;letter-spacing:1.7px;font-weight:600;text-shadow:0 1px 5px #14291e}.status-dot{width:5px;height:5px;border-radius:50%;background:#c3c698;box-shadow:0 0 8px #b4d291}.board-themes{display:flex;padding:3px;border-radius:6px;background:#0917107a;border:1px solid #bac5ab21;backdrop-filter:blur(8px)}.board-themes button{font-size:10px;color:#97aa98;padding:6px 10px;border-radius:4px}.board-themes .selected{background:#344b37;color:#eee5ca}.board-stage{height:100%;min-height:534px;position:absolute;inset:0;touch-action:none}.board-stage canvas{display:block;width:100%;height:100%;touch-action:none}.training-label{font-size:10px;color:#adc0a8;display:flex;align-items:center;gap:7px}.training-label svg{width:14px;height:14px;color:var(--gold)}.scene-tools{display:flex;align-items:center;gap:2px}.scene-tools .icon-button{color:#c5cfba}.flat-toggle{font-size:9px;border:1px solid #a8b79555;padding:8px;border-radius:5px;color:#cad4bc;background:#0c1b1588}.lesson-panel{padding:25px 28px 22px;background:linear-gradient(135deg,#253b2d,#1c3027 75%);border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}.lesson-kicker{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;font-size:8px;letter-spacing:1.1px;color:#b9c4a8}.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border:1px solid #b3c89c24;border-radius:20px;font-size:8px;letter-spacing:0;white-space:nowrap;color:#c5cdb4}.pill svg{width:11px;height:11px}.lesson-badge{height:94px;width:94px;margin:25px 0 23px;position:relative;display:grid;place-items:center;color:#e5d1a1;background:radial-gradient(circle,#bcaa5133,transparent 70%)}.lesson-badge>svg{width:52px;height:58px;filter:drop-shadow(0 5px 6px #030b08a0)}.badge-orbit{position:absolute;inset:4px;border:1px solid #d6c49347;border-radius:50%;transform:rotate(-35deg)}.badge-orbit:before{content:'✦';font-size:14px;background:#253b2d;position:absolute;top:3px;left:6px;color:#d1bc83}.badge-orbit:after{content:'';position:absolute;inset:-5px;border:1px dotted #d6c49322;border-radius:50%}.chapter{font-size:8px;letter-spacing:1.7px;color:#d5bc85;font-weight:500;margin-bottom:10px}h2{font-size:44px;line-height:1.02;letter-spacing:-.5px}.lesson-description{font-size:11px;line-height:1.85;color:#adbea8;margin-top:15px;max-width:280px}.lesson-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px;margin-bottom:25px}.lesson-tags span{border:1px solid #bcc8a727;border-radius:4px;padding:5px 7px;font-size:8px;color:#bbc9ae}.primary{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:var(--gold);border:1px solid #e9d7a7;color:#243026;padding:14px 18px;border-radius:6px;font-size:11px;font-weight:700;box-shadow:0 5px 14px #0b1a1522;margin-top:auto;min-height:46px}.primary svg{width:17px;height:17px}.panel-foot{margin-top:13px;font-size:8px;color:#94a58e;display:flex;gap:6px;align-items:center;line-height:1.6}.panel-foot svg{width:12px;height:12px}.lesson-panel.started .lesson-badge{width:45px;height:45px;margin:20px 0 16px}.lesson-panel.started .lesson-badge>svg{width:28px;height:33px}.lesson-panel.started h2{font-size:33px;line-height:1.08}.lesson-panel.started .lesson-description{margin:12px 0 8px}.lesson-progress{width:100%;margin:8px 0 14px}.progress-track{width:100%;height:3px;background:#a8ba8f2b;border-radius:4px;overflow:hidden}.progress-track span{height:100%;display:block;background:var(--gold);transition:width .3s}.lesson-progress>span{font-size:9px;display:block;color:var(--muted);margin-top:8px}.coach{border:1px solid #c0cfa427;border-radius:8px;width:100%;padding:12px;background:#0e241a44;margin-bottom:18px}.coach-heading{display:flex;align-items:center;gap:6px;font-size:7px;letter-spacing:1.2px;color:var(--gold)}.coach-heading>svg{width:13px;height:13px}.coach-heading .icon-button{margin-left:auto;width:24px;height:24px}.coach p{font-size:12px;line-height:1.75;margin-top:4px;color:#e1e8d3;min-height:60px}.lesson-actions{display:flex;width:100%;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}.secondary{border:1px solid #9caf8b44;border-radius:6px;font-size:10px;padding:10px 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#d2dcc3;min-height:40px}.secondary svg,.text-button svg{width:14px;height:14px}.text-button{font-size:10px;display:inline-flex;align-items:center;gap:7px;color:#b8c5a7;padding:8px 0}.journey-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:34px 0 21px;gap:16px}.journey-heading .eyebrow{font-size:8px;letter-spacing:1.8px}h3{font-size:27px;margin-top:9px;letter-spacing:-.2px}.journey-heading>span{font-size:9px;color:#9cab92;display:flex;gap:9px;align-items:center}.journey-heading svg{width:15px;height:15px}.lesson-path{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));border:1px solid var(--line);border-radius:10px;padding:19px 10px 15px;background:#152a21;position:relative}.lesson-path:before{content:'';position:absolute;left:5%;right:5%;top:40px;height:1px;background:#b2bc8c25}.path-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0;padding:0 5px}.path-piece{background:#1c3127;width:43px;height:43px;display:grid;place-items:center;border:1px solid #abb79930;border-radius:50%;position:relative;color:#788c75}.path-piece svg{width:24px;height:24px;opacity:.65}.path-step.current .path-piece{color:#e2c686;background:#3e4930;border-color:#c3b377;box-shadow:0 0 0 5px #c7b5810b}.path-step.current .path-piece svg{opacity:1}.path-step.done .path-piece{background:#466d4e;color:#e6e2b7}.path-step:not(.current){opacity:.72}.path-step strong{font-size:8px;color:#b9c5ad;font-weight:500;white-space:nowrap}.path-step small{font-size:7px;color:#81967d;margin-top:-5px}.saved-game{display:flex;gap:18px;align-items:center;padding:20px 24px;margin-top:18px;border:1px solid var(--line);border-radius:10px;background:#193126}.saved-game>svg{color:var(--gold);width:27px;height:27px}.saved-game strong{font-size:12px}.saved-game p{font-size:10px;color:var(--muted);margin-top:5px}.saved-game .text-button{margin-left:auto}.footer{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px;padding-top:20px;border-top:1px solid var(--line);font-size:9px;color:#83977e}.footer>span{display:flex;align-items:center;gap:8px}.footer .tiny-star{font-size:12px}.footer .text-button{font-size:9px}.play-status-icon{color:var(--gold);margin:27px 0 20px}.play-status-icon svg{width:36px;height:36px}.play-panel h2{font-size:36px}.turn-indicator{display:flex;gap:8px;margin:18px 0;width:100%}.turn{display:flex;align-items:center;gap:7px;border:1px solid var(--line);padding:8px 12px;flex:1;border-radius:5px;font-size:10px;color:#8fa38c}.turn.active{background:#3b4e35;border-color:#b2ab784d;color:#f1e7c9}.turn i{width:10px;height:10px;border-radius:50%;border:1px solid #b6b98b}.white-piece{background:#f3e8cc}.black-piece{background:#293b35}.move-header{display:flex;justify-content:space-between;width:100%;font-size:8px;letter-spacing:1px;color:#a4b297}.move-header span+span{letter-spacing:0}.move-list{width:100%;height:105px;overflow:auto;margin:10px 0 16px;font-size:11px;scrollbar-width:thin;scrollbar-color:#5c7050 transparent}.move-list p{font-size:10px;color:#8fa389;line-height:1.7}.move-row{display:grid;grid-template-columns:28px 1fr 1fr;padding:6px 7px;border-radius:3px}.move-row:nth-child(odd){background:#0b201933}.move-row>span:first-child{color:#809577}.move-row>span:last-child{color:#c2cbb4}.play-buttons{display:flex;gap:8px;width:100%;margin-bottom:13px}.play-buttons>*{flex:1}.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.journey-card{padding:36px;background:linear-gradient(130deg,#243d2b,#182e23);border:1px solid var(--line);border-radius:14px;min-height:410px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}.journey-card .chapter{margin-bottom:0}.journey-card h2{font-size:43px}.journey-card>p{font-size:13px;color:var(--muted);line-height:1.8}.journey-card .primary{margin-top:12px;max-width:280px}.journey-emblem{border:1px solid #b9aa6955;border-radius:50%;padding:22px;background:#bca6610d}.journey-emblem svg{width:44px;height:44px;color:var(--gold)}#journey-stats{width:100%;margin:10px 0}.stat-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px;color:#b8c9ae}.stat-row strong{color:var(--cream);font-weight:500}.muted{color:var(--muted)!important}.flat-board{position:absolute;width:min(72%,440px);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(8,1fr);background:#e5d7b8;border:10px solid #334b3b;outline:1px solid #9c936b55;box-shadow:0 12px 45px #07130d88;z-index:2}.flat-board.flipped{transform:translate(-50%,-50%) rotate(180deg)}.flat-board.flipped .square{transform:rotate(180deg)}.square{position:relative;aspect-ratio:1;padding:2px;display:grid;place-items:center;border-radius:0;background:#bfc4a8;color:#1f342c}.square.dark{background:#496455;color:#e0dfb9}.classic .square{background:#e7d6b1}.classic .square.dark{background:#795238}.square svg{width:92%;height:92%;filter:drop-shadow(0 2px 1px #1115);pointer-events:none}.square .coordinate{position:absolute;left:3px;bottom:2px;font-size:8px;font-weight:600;z-index:2}.square.selected{box-shadow:inset 0 0 0 3px #75e5c7}.square.legal:after{content:'';position:absolute;width:18%;height:18%;background:#183e35aa;border:1px solid #a8e8c8;border-radius:50%}.square.capture:after{width:88%;height:88%;background:transparent;border:3px solid #e1ba7f}.square.target:before{content:'◆';position:absolute;font-size:20px;color:#f8c96e;text-shadow:0 1px 5px #342300;z-index:1}.square.target:has(svg):before{right:1px;top:0;font-size:12px}.square.check{box-shadow:inset 0 0 0 3px #d65b46}.square.last{box-shadow:inset 0 0 0 2px #d9c07f77}.square:focus-visible{z-index:3;outline-offset:-3px}dialog{border:1px solid #9daf7966;border-radius:16px;background:#1b3227;color:var(--cream);width:520px;max-width:calc(100% - 32px);padding:25px;box-shadow:0 30px 100px #020b07aa;max-height:90dvh;overflow:auto}dialog::backdrop{background:#05150ed9;backdrop-filter:blur(7px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.dialog-header .eyebrow{font-size:8px}dialog h2{font-size:38px;line-height:1.1;margin-bottom:16px}dialog p{font-size:13px;color:#b8c7ac;line-height:1.8;margin:10px 0 16px}dialog .primary{margin-top:20px}dialog .secondary{margin:8px 8px 0 0}dialog label{font-size:12px;color:#c7d5ba}dialog input[type=number]{width:100%;padding:13px;border:1px solid #8fa57588;border-radius:5px;background:#10251d;margin-top:10px;font:inherit;color:var(--cream)}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);gap:20px}.setting-row small{display:block;max-width:330px;font-size:10px;color:#8fa286;line-height:1.7;margin-top:4px}.setting-row input{accent-color:#d5bc85;width:18px;height:18px;flex-shrink:0}.success-emblem{height:100px;width:100px;border:1px solid #b8a96a;border-radius:50%;display:grid;place-items:center;margin:5px auto 25px;background:radial-gradient(circle,#c8b06433,#c8b06400)}.success-emblem svg{width:55px;height:55px;color:var(--gold)}.success{text-align:center}.success .eyebrow{justify-content:center}.success h2{font-size:43px;margin-top:14px}.success .primary{text-align:left}.backup-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.backup-actions button{font-size:10px}.promotion-choices{display:flex;gap:10px}.promotion-choices button{flex:1;background:#334e38;border-radius:7px;border:1px solid #b9c39355;padding:12px 5px;font-size:10px}.promotion-choices svg{width:45px;height:45px;display:block;margin:auto auto 8px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 24px;border:1px solid #c0b98277;border-radius:8px;background:#203c2df5;color:#eee5ce;box-shadow:0 8px 50px #020b0799;font-size:12px;z-index:20;max-width:90%;text-align:center;line-height:1.7}.shake{animation:shake .22s ease-in-out}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(min-width:1500px){.scene-panel,.game-layout{min-height:590px}.board-stage{min-height:590px}.lesson-panel{padding:30px 32px}.lesson-badge{margin-top:35px;margin-bottom:28px}.game-layout{grid-template-columns:minmax(0,1fr) 365px}.lesson-description{font-size:12px}.lesson-tags{margin-bottom:32px}}
@media(max-width:1100px){.app-shell{padding:0 30px}.header{height:90px}.navigation{gap:22px}.game-layout{grid-template-columns:minmax(0,1fr) 298px}.lesson-panel{padding:22px}.scene-top,.scene-bottom{left:16px;right:16px}.world-label{font-size:7px;letter-spacing:1px}.board-themes button{padding:6px 7px;font-size:9px}.scene-panel,.game-layout,.board-stage{min-height:520px}.flat-board{width:82%}h1{font-size:55px}.lesson-badge{margin-top:23px;margin-bottom:20px}.training-label{font-size:8px}.path-step strong{font-size:7px}}
@media(max-width:850px){.app-shell{padding:0 22px}.brand{font-size:18px;gap:8px}.brand-sub{font-size:6px}.brand-icon{width:37px;height:44px}.navigation{gap:16px}.nav{font-size:11px;gap:6px}.header-right{gap:5px}.profile-label,.profile i{display:none}.profile{padding:3px}.page-heading{padding:30px 0 26px}h1{font-size:48px}.heading-note{font-size:10px}.game-layout{grid-template-columns:minmax(0,1fr) 270px}.scene-panel,.game-layout,.board-stage{min-height:530px}.lesson-panel{padding:20px}.lesson-kicker{font-size:7px}.pill{font-size:7px}.scene-top{align-items:flex-start;flex-direction:column;gap:12px}.scene-bottom{align-items:flex-end}.training-label{display:none}.scene-tools{margin-left:auto}.lesson-path{overflow-x:auto;grid-template-columns:repeat(10,90px);padding:18px 8px 14px}.path-step strong{font-size:8px}.journey-heading>span{display:none}.journey-card{padding:26px}.flat-board{width:90%;border-width:6px}}
@media(max-width:650px){.app-shell{padding:0 16px}.header{height:78px;flex-wrap:wrap;position:relative;margin-bottom:50px}.brand{font-size:17px}.brand-sub{font-size:6px;margin-top:5px}.brand-icon{height:38px;width:33px}.brand-icon svg{width:25px;height:29px}.navigation{position:absolute;left:0;right:0;top:78px;height:50px;justify-content:space-around;gap:10px;border-bottom:1px solid var(--line)}.nav{font-size:12px;gap:8px;padding:0 10px}.header-right{gap:10px}.heading-note{display:none}.page-heading{padding:28px 0 22px}.eyebrow{font-size:8px;letter-spacing:1.7px}h1{font-size:47px;line-height:1.02;margin-top:13px}.game-layout{display:flex;flex-direction:column;min-height:0;border-radius:12px}.scene-panel{height:415px;min-height:415px;order:0}.board-stage{min-height:415px}.scene-top{flex-direction:row;align-items:center;left:15px;right:15px;top:15px}.scene-bottom{bottom:10px;left:15px;right:15px}.scene-panel:after{box-shadow:inset 0 -15px 30px #10231e33}.lesson-panel{border-left:0;border-top:1px solid var(--line);padding:22px;position:relative;min-height:305px}.lesson-badge{position:absolute;right:22px;top:44px;width:72px;height:72px;margin:0}.lesson-badge>svg{width:40px;height:45px}.chapter{margin-top:22px}.lesson-panel h2{font-size:38px;max-width:75%}.lesson-panel .lesson-description{max-width:85%;font-size:12px;line-height:1.7;margin-top:12px}.lesson-tags{margin:14px 0 20px}.primary{font-size:12px;min-height:48px}.panel-foot{font-size:9px}.lesson-panel.started .lesson-badge{right:22px;top:50px;margin:0}.lesson-panel.started h2{font-size:31px;max-width:80%}.lesson-panel.started .chapter{margin-top:20px}.lesson-panel.started .lesson-description{display:none}.lesson-progress{margin:15px 0 12px}.coach{margin-bottom:16px}.coach p{min-height:0;font-size:13px}.coach-heading{font-size:8px}.lesson-actions{margin-top:12px}.lesson-actions .secondary{font-size:11px}.lesson-actions .text-button{font-size:11px}.journey-heading{margin:27px 0 17px}h3{font-size:25px}.journey-heading .eyebrow{font-size:7px}.lesson-path{border-radius:8px}.footer{font-size:8px;gap:16px;margin:24px 0 16px}.footer .text-button{white-space:nowrap}.flat-board{width:min(80%,330px);border-width:8px;top:51%}.square .coordinate{font-size:7px}.play-status-icon{position:absolute;right:24px;top:40px}.play-panel .chapter{margin-top:20px}.play-panel h2{max-width:82%;font-size:36px}.play-panel .lesson-description{max-width:100%}.turn-indicator{margin:16px 0}.move-list{height:84px}.journey-grid{grid-template-columns:1fr}.journey-card{min-height:310px}.journey-card h2{font-size:37px}.journey-card .chapter{margin-top:0}.saved-game{padding:17px;gap:12px}.saved-game strong{font-size:11px}.saved-game p{font-size:9px}.saved-game .text-button{font-size:9px}.saved-game>svg{width:20px}dialog{padding:21px}.scene-tools .icon-button{width:30px;height:30px}.toast{bottom:15px;font-size:11px;padding:12px 16px;width:90%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition:none!important}

/* Independent atmosphere, figure selection and board-first focus layout. */
body{background:radial-gradient(ellipse at 65% 18%,color-mix(in srgb,var(--scene-glow) 24%,transparent),transparent 55%),var(--bg)}
.game-layout,.lesson-path{background:var(--panel-low)}
.scene-panel,.scene-panel.classic{background:radial-gradient(ellipse at 50% 42%,color-mix(in srgb,var(--scene-glow) 70%,transparent),transparent 75%),var(--scene)}
.lesson-panel,.journey-card{background:linear-gradient(135deg,var(--panel-hi),var(--panel) 75%)}
.profile>svg,.board-themes .selected,.turn.active{background:var(--panel-hi)}
.board-themes,.piece-switch{background:color-mix(in srgb,var(--panel-low) 80%,transparent)}
.lesson-badge .badge-orbit:before,.path-piece{background:var(--panel)}
.coach,.saved-game{background:color-mix(in srgb,var(--panel-low) 75%,transparent)}
.flat-board{border-color:var(--panel-hi)}
dialog,.toast{background:var(--panel)}
.scene-customise{position:absolute;top:62px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:10px;z-index:4}
.piece-switch{display:flex;gap:2px;padding:3px;border:1px solid #bac5ab30;border-radius:7px;backdrop-filter:blur(10px)}
.piece-switch button{display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;padding:8px 10px;border-radius:4px;color:#bcc9b7;min-height:33px}
.piece-switch button svg{width:14px;height:14px}
.piece-switch button.selected{background:var(--gold);color:#283227}
.background-button{display:flex;align-items:center;gap:7px;font-size:10px;min-height:38px;background:color-mix(in srgb,var(--panel-low) 85%,transparent);border:1px solid #bac5ab30;border-radius:7px;padding:8px 11px;color:#e1e7d4;backdrop-filter:blur(10px)}
.colour-dot{display:inline-block;width:15px;height:15px;border-radius:50%;background:var(--backdrop-swatch);border:1px solid #dacb9d99;box-shadow:inset 0 0 0 2px #ffffff18}
.fullscreen-button{display:flex;align-items:center;gap:7px;border-radius:6px;padding:9px 11px;min-height:36px;font-size:10px;color:#f3e6c9;background:var(--panel-low);border:1px solid #d2bd8555;margin-left:7px}
.fullscreen-button svg{width:15px;height:15px}
.background-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:20px 0 25px}
.background-choice{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:10px;color:#c6d1be;padding:4px;border-radius:8px;min-width:0}
.background-choice>span{display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:10px;border:1px solid #ffffff33}
.background-choice.chosen>span{outline:2px solid var(--gold);outline-offset:3px}
.background-choice.chosen{color:var(--gold)}
.background-choice svg{width:25px;height:25px;color:#f3e8cf;filter:drop-shadow(0 1px 3px #0009)}
.settings-caption{margin:15px 0 0!important;font-size:11px!important;color:var(--gold)!important}
body.board-expanded{overflow:hidden}
.game-layout.expanded{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;min-height:0;border-radius:0;border:0;z-index:50;grid-template-columns:minmax(0,1fr) clamp(280px,25vw,365px);display:grid;isolation:isolate;background:var(--scene)}
.game-layout:fullscreen{width:100vw;height:100dvh}
.expanded .scene-panel{height:100%;min-height:0;min-width:0}
.expanded .board-stage{height:100%;min-height:0}
.expanded .scene-top{top:max(24px,env(safe-area-inset-top));left:max(24px,env(safe-area-inset-left));right:24px}
.expanded .scene-customise{top:max(67px,calc(env(safe-area-inset-top) + 43px));left:max(24px,env(safe-area-inset-left));right:24px}
.expanded .scene-bottom{bottom:max(20px,env(safe-area-inset-bottom));left:max(24px,env(safe-area-inset-left));right:24px}
.expanded .lesson-panel{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:30px 26px;border-top:0;border-left:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#89967555 transparent}
.expanded .lesson-panel>*{flex-shrink:0}
.expanded .lesson-panel .primary{margin-top:auto}
.expanded .lesson-panel.started h2{font-size:36px}
.expanded .lesson-panel .lesson-description{font-size:12px;line-height:1.8}
.expanded .coach p{font-size:14px;line-height:1.8;min-height:100px}
.expanded .coach-heading{font-size:8px}
.expanded .lesson-actions{margin-top:16px;margin-bottom:6px}
.expanded .flat-board{width:min(calc(100% - 90px),calc(100dvh - 150px));max-width:none}
.expanded .move-list{flex:1;min-height:100px;height:150px;max-height:40vh}
.expanded .play-status-icon{margin-top:26px}
@media(max-width:850px){.scene-customise{left:16px;right:16px;top:95px}.piece-switch button{font-size:9px;padding:7px 8px}.background-button{font-size:9px;padding:8px}.scene-customise .piece-switch{gap:0}.fullscreen-button{font-size:9px;padding:8px;gap:5px}.training-label{display:none}.scene-tools{margin-left:auto}.expanded .scene-customise{top:72px;left:16px;right:16px}.expanded .scene-top,.expanded .scene-bottom{left:16px;right:16px}.expanded .scene-top{flex-direction:row;align-items:center}.expanded .lesson-panel{padding:24px 20px}.expanded .coach p{font-size:13px}}
@media(max-width:650px){.scene-customise{top:60px;left:15px;right:15px;gap:6px}.piece-switch button{font-size:9px;min-height:31px;padding:7px 8px;gap:5px}.piece-switch button svg{width:12px;height:12px}.background-button{min-height:36px;font-size:9px;padding:7px 9px;gap:5px}.colour-dot{width:13px;height:13px}.scene-tools{gap:5px}.fullscreen-button{font-size:9px;margin-left:3px;min-height:34px}.scene-tools .flat-toggle{font-size:9px}.background-choices{gap:7px}.background-choice{font-size:9px}.background-choice>span{border-radius:8px}.background-choice svg{width:19px;height:19px}}
@media(max-width:650px) and (orientation:portrait){
 .game-layout.expanded{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(190px,34dvh)}
 .expanded .scene-panel{height:100%;min-height:0}
 .expanded .flat-board{width:min(calc(100% - 64px),calc(66dvh - 125px));max-width:none;top:54%}
 .expanded .scene-top{top:max(14px,env(safe-area-inset-top))}
 .expanded .scene-customise{top:max(56px,calc(env(safe-area-inset-top) + 42px));left:14px;right:14px}
 .expanded .scene-bottom{bottom:9px;left:14px;right:14px}
 .expanded .lesson-panel{padding:16px 20px;border-left:0;border-top:1px solid var(--line);height:100%;display:block}
 .expanded .lesson-badge,.expanded .lesson-tags,.expanded .panel-foot,.expanded .lesson-panel .chapter,.expanded .play-status-icon,.expanded .lesson-panel .lesson-description{display:none!important}
 .expanded .lesson-panel .lesson-kicker{font-size:7px;margin-bottom:8px}
 .expanded .lesson-panel h2,.expanded .lesson-panel.started h2{font-size:24px;max-width:100%;margin:0 0 9px}
 .expanded .lesson-progress{margin:5px 0 8px}.expanded .progress-track{height:2px}.expanded .lesson-progress>span{font-size:8px;margin-top:5px}
 .expanded .coach{padding:8px 10px;margin-bottom:10px}.expanded .coach-heading{font-size:7px;height:19px}.expanded .coach p{font-size:12px;line-height:1.6;min-height:0;margin-top:1px}
 .expanded .lesson-panel .primary{margin-top:9px;min-height:39px;padding:9px 14px;font-size:11px}
 .expanded .lesson-actions{display:flex;margin-top:8px;margin-bottom:0}.expanded .lesson-actions>*{font-size:10px;min-height:32px;padding-top:7px;padding-bottom:7px}
 .expanded .turn-indicator{margin:8px 0}.expanded .turn{padding:6px 9px}.expanded .move-list{height:60px;min-height:45px;margin-bottom:8px;max-height:80px}.expanded .play-buttons{margin-bottom:8px}.expanded .play-buttons>*{min-height:33px;padding:7px 10px}
}
@media(max-height:560px) and (orientation:landscape){.expanded .scene-top{top:12px}.expanded .scene-customise{top:53px}.expanded .scene-bottom{bottom:9px}.expanded .lesson-panel{padding:18px}.expanded .lesson-badge{display:none}.expanded .lesson-panel .chapter{margin-top:12px}.expanded .lesson-panel h2{font-size:30px}.expanded .coach p{min-height:0;font-size:12px}.expanded .flat-board{width:min(calc(100% - 50px),calc(100dvh - 115px))}.expanded .scene-top .world-label{font-size:7px}}
body.board-expanded .header,body.board-expanded .footer,body.board-expanded #adventure-view,body.board-expanded #play-heading,body.board-expanded #adventure-bottom,body.board-expanded #journey-view{display:none!important}

/* THE ACADEMY / THE ARENA / THE CHRONICLE */
.app-shell{max-width:1680px;padding:0 54px}.header{height:98px}.navigation{gap:38px}.nav{font-size:12px;letter-spacing:.4px}.brand{font-size:20px}.page-heading{padding:32px 0 27px}h1{font-size:64px;line-height:1.03}.game-layout{position:relative;border-radius:12px;border-color:#d6bf8550;box-shadow:0 25px 80px #0004,inset 0 0 0 1px #d5b77e0b}.scene-panel{min-height:620px}.board-stage{min-height:620px}.scene-panel:after{box-shadow:inset 0 0 70px #0005;z-index:1}.lesson-panel{padding:30px;background-image:linear-gradient(155deg,#d8bf8812,transparent 45%),linear-gradient(135deg,var(--panel-hi),var(--panel));border-left-color:#d6bf852e}.primary{background:linear-gradient(115deg,#e7d2a1,#c9aa6d);box-shadow:0 4px 20px #c0a05b18;border-color:#e9d3a399;min-height:47px;border-radius:4px;letter-spacing:.15px}.coach,.story-dialogue{background:linear-gradient(145deg,#0001,#0003);border-color:#dac58d33}.lesson-panel.started .lesson-badge{margin-top:26px}.lesson-panel.started h2{font-size:36px}.footer{opacity:.8}
.mode-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}.mode-card{position:relative;text-align:left;overflow:hidden;border:1px solid #bca77538;border-radius:8px;padding:22px 24px;min-height:146px;display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(115deg,#142d2ae8,#1a2829d9);isolation:isolate;transition:border-color .2s,transform .2s}.mode-card:before{content:'';position:absolute;inset:0;z-index:-1;opacity:.45;transition:opacity .25s}.learn-card:before{background:radial-gradient(ellipse at 85% 70%,#c7b57766,transparent 70%),linear-gradient(125deg,#334b3a,#0e2224)}.match-card:before{background:radial-gradient(ellipse at 80% 50%,#8e8aaf55,transparent 65%),linear-gradient(125deg,#202f48,#181e2d)}.story-card:before{background:linear-gradient(90deg,#0c172dd9,#0c172d33),url('./assets/ember-bridge.webp') 68% 51%/cover;opacity:.8}.mode-card.active{border-color:#d7bd7b;box-shadow:inset 0 0 0 1px #d7bd7b22,0 10px 35px #0002}.mode-card.active:after{content:'';position:absolute;left:24px;bottom:0;width:50px;height:2px;background:#e8cf95}.mode-card:hover:before{opacity:.9}.mode-number{font-size:8px;letter-spacing:1.8px;color:#c9b986;margin-bottom:14px}.mode-name{font-family:var(--serif);font-size:31px;line-height:1;z-index:1}.mode-caption{font-size:10px;color:#c1c8b9;margin-top:9px;z-index:1}.mode-mark{position:absolute;right:20px;bottom:22px;color:#b8b79e33;transform:rotate(-8deg)}.mode-mark svg{width:58px;height:58px}.mode-card.active .mode-mark{color:#d8bf8566}
.story-hero{position:relative;border:1px solid #c6af7844;border-radius:12px;min-height:370px;margin:27px 0 22px;overflow:hidden;background:linear-gradient(90deg,#0d1727f2 0%,#0d1727c9 32%,#0d172730 65%),url('./assets/ember-bridge.webp') 61% 50%/cover;box-shadow:inset 0 0 100px #06111a77,0 20px 70px #0003}.story-hero-copy{padding:39px 45px;position:relative;z-index:1}.story-hero h1{font-size:79px;line-height:.96;margin:20px 0 18px}.story-hero p{font-size:13px;line-height:1.8;color:#d0d5ce}.story-hero .eyebrow{color:#c9b47e;font-size:9px}.story-seal{display:inline-block;font-size:8px;letter-spacing:1.8px;color:#cbb77f;margin-top:23px;padding:8px 10px;border:1px solid #bda26c44;background:#09132255}.hero-caption{position:absolute;bottom:23px;right:27px;font-size:8px;letter-spacing:1.6px;color:#e5dac6;text-shadow:0 2px 4px #000}
.board-view-controls{position:absolute;bottom:65px;left:24px;right:24px;z-index:4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;pointer-events:none}.board-view-controls>button,.zoom-switch{pointer-events:auto}.zoom-switch{display:flex;background:#07141adb;border:1px solid #dec28b38;border-radius:5px;padding:3px;backdrop-filter:blur(10px)}.zoom-switch button{padding:8px 12px;font-size:9px;border-radius:3px;color:#bcc8c6;min-height:31px}.zoom-switch button.selected{background:#d3bd88;color:#1c2727}.view-tool{padding:8px 10px;border:1px solid #dec28b38;border-radius:4px;background:#091821e6;color:#c9d4cd;font-size:9px;min-height:37px}.view-tool.selected{background:#d3bd88;color:#1c2727}#pan-help{font-size:8px;color:#e4decd;text-shadow:0 1px 4px #000;max-width:190px;line-height:1.7}.board-stage.is-dragging,.scene-panel:has(.drag-source){cursor:grabbing}.scene-panel{touch-action:none}.flat-board{--pan-x:0px;--pan-y:0px;--board-scale:1.02;transform:translate(calc(-50% + var(--pan-x)),calc(-50% + var(--pan-y))) scale(var(--board-scale))}.flat-board.flipped{transform:translate(calc(-50% + var(--pan-x)),calc(-50% + var(--pan-y))) scale(var(--board-scale)) rotate(180deg)}.flat-board[data-zoom=wide]{--board-scale:.9}.flat-board[data-zoom=close]{--board-scale:1.7}.square.blocked{background:repeating-linear-gradient(35deg,#333d43 0 8px,#465057 8px 10px)!important;box-shadow:inset 0 0 12px #0007}.square.blocked:after{content:'×';font-size:18px;color:#a8a58d;background:none;border:none}.piece-drag-ghost{position:fixed;z-index:120;pointer-events:none;transform:translate(-50%,-57%) scale(1.1);filter:drop-shadow(0 12px 6px #0008)}.piece-drag-ghost svg{width:100%;height:100%}.drag-source>svg{opacity:.2}
.opponent-options{width:100%;margin-top:19px;padding-bottom:5px}.opponent-options label{display:block;font-size:9px;letter-spacing:.3px;color:#c6bc9b;margin-bottom:10px}.opponent-options select{margin-top:6px;width:100%;padding:10px 9px;background:var(--panel-low);border:1px solid #baa46b44;color:#efe6d0;border-radius:4px;font:11px var(--sans);min-height:40px}.opponent-options p{font-size:9px;line-height:1.7;color:var(--muted)}.play-panel .play-status-icon{margin:13px 0 15px}.play-panel .chapter{margin-top:8px}.play-panel h2{font-size:34px}.play-panel .move-list{height:93px}.play-panel .lesson-description{font-size:11px}
.story-panel{background:linear-gradient(145deg,#a0783418,transparent 35%),linear-gradient(145deg,#26333d,#15242d);border-left-color:#cfb27144}.story-panel h2{font-size:39px;line-height:1.09}.story-crest{width:67px;height:77px;display:grid;place-items:center;border:1px solid #d9be7866;clip-path:polygon(0 0,100% 0,100% 73%,50% 100%,0 73%);color:#d6bc80;background:linear-gradient(145deg,#b59a5022,#22343f);margin:24px 0 25px}.story-crest svg{width:35px;height:35px}.story-objective{font-size:12px;line-height:1.9;color:#e0d4b6;margin:17px 0 19px}.story-dialogue{padding:17px;border:1px solid #c5ae7433;border-left:2px solid #c5ae7488;border-radius:2px;width:100%;margin-bottom:19px}.speaker{font-size:7px;letter-spacing:1.3px;color:#d3bd8b}.story-dialogue p{font-size:12px;line-height:1.9;color:#cad2d2;margin-top:11px}.story-dialogue .text-button{font-size:9px;margin-top:9px;color:#bcb69f}.chapter-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:17px}.chapter-steps span{display:flex;gap:9px;align-items:center;font-size:9px;color:#859597}.chapter-steps i{width:6px;height:6px;border:1px solid #83918e;border-radius:50%}.chapter-steps .current{color:#e4ce99}.chapter-steps .current i{background:#d0b578;border-color:#e6ce97;box-shadow:0 0 10px #ceae6944}.chapter-steps .done{color:#c0c8a3}.chapter-steps .done i{background:#a4ad84}.story-event{font-size:10px;line-height:1.8;color:#adb9ba;margin-bottom:17px}.story-side-actions{display:flex;justify-content:space-between;gap:15px;width:100%;margin-top:13px}.story-side-actions .text-button{font-size:8px}.story-world:before{content:'';position:absolute;inset:0;background:url('./assets/ember-bridge.webp') center/cover;opacity:.1;pointer-events:none;z-index:0}
.cinematic{position:absolute;inset:0;z-index:15;overflow:hidden;min-height:100%;isolation:isolate;display:flex;align-items:flex-end;background:#0b1521;border-radius:10px}.cinematic-art{position:absolute;inset:-3%;z-index:-3;background:url('./assets/ember-bridge.webp') 65% center/cover;animation:cinematic-drift 24s ease-out both}.cinematic-vignette{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#07101be6 0%,#07101ba8 45%,#07101b0a 80%),linear-gradient(0deg,#07101bf7 0%,#07101b22 70%,#07101b77);box-shadow:inset 0 0 100px #01071066}.cinematic:before,.cinematic:after{content:'';position:absolute;left:0;right:0;height:24px;background:#050a10e6;pointer-events:none}.cinematic:before{top:0}.cinematic:after{bottom:0}.cinematic-overline{position:absolute;left:44px;top:46px;font-size:8px;letter-spacing:2px;color:#d3b884}.cinematic-skip{position:absolute;right:35px;top:32px;border:1px solid #d3b88444;color:#ddd4c0;padding:10px 13px;border-radius:4px;font-size:10px;display:flex;align-items:center;gap:8px;background:#09131b77}.cinematic-skip svg{width:14px;height:14px}.cinematic-copy{padding:74px 50px 50px;width:min(660px,75%);position:relative}.cinematic-copy h2{font-size:57px;line-height:1.03;color:#f3e6c8;text-shadow:0 2px 20px #0008;letter-spacing:-1px}.cinematic-copy>p:not(.chapter){font-size:14px;line-height:1.95;color:#d4d8d5;margin:22px 0 25px;max-width:530px}.cinematic-copy .chapter{font-size:9px;margin-bottom:15px}.cinematic-copy .primary{width:220px;margin-top:24px}.cinematic-count{display:block;font-size:7px;letter-spacing:1.8px;color:#b1b6ac;margin-top:24px}.cinematic-choices{display:flex;gap:12px;margin-top:22px}.cinematic-choices button{padding:17px;text-align:left;flex:1;border:1px solid #c8aa6d66;border-radius:4px;background:#15242bcc;min-height:90px;backdrop-filter:blur(8px)}.cinematic-choices strong{display:block;font-size:12px;color:#ead6a5;font-weight:600;line-height:1.5}.cinematic-choices span{display:block;font-size:10px;line-height:1.8;color:#b2bebc;margin-top:6px}@keyframes cinematic-drift{from{transform:scale(1.015) translateX(-.5%)}to{transform:scale(1.07) translateX(.5%)}}
.expanded .board-view-controls{bottom:67px}.expanded .cinematic{border-radius:0}.expanded .cinematic-copy{padding:80px 70px 70px;width:min(720px,72%)}.expanded .story-panel{height:100%;overflow-y:auto}.expanded .story-panel .story-dialogue{min-height:140px}.expanded .story-panel .story-objective{font-size:14px}.expanded .story-panel .story-dialogue p{font-size:14px}.expanded .story-panel .chapter{margin-top:0}.expanded .story-panel .primary{margin-top:auto}.expanded .story-crest{margin-top:35px}.expanded .play-panel .move-list{min-height:70px}.expanded .scene-panel,.expanded .board-stage{min-height:0}
body.board-expanded .mode-gallery,body.board-expanded #story-heading{display:none!important}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 365px}.scene-panel,.board-stage{min-height:690px}.expanded .scene-panel,.expanded .board-stage{min-height:0}}
@media(max-width:1100px){.app-shell{padding:0 30px}.scene-panel,.board-stage{min-height:620px}.mode-card{padding:20px;min-height:139px}.mode-name{font-size:28px}.mode-caption{font-size:9px}.mode-mark svg{width:44px;height:44px}.cinematic-copy{padding:70px 35px 45px;width:75%}.cinematic-copy h2{font-size:49px}.story-hero h1{font-size:70px}.story-panel{padding:24px}.story-panel h2{font-size:34px}.board-view-controls{left:16px;right:16px}#pan-help{display:none!important}}
@media(max-width:850px){.header-right{gap:2px}.header-right .icon-button{width:30px}.navigation{gap:20px}.scene-panel,.board-stage{min-height:650px}.story-panel{padding:22px 20px}.story-panel h2{font-size:32px}.mode-gallery{gap:10px;margin-top:22px}.mode-card{padding:17px 15px;min-height:138px}.mode-name{font-size:27px}.mode-number{font-size:7px;letter-spacing:1px}.mode-mark{right:10px;bottom:19px;opacity:.5}.mode-caption{font-size:8px;max-width:125px;line-height:1.7}.mode-mark svg{width:35px;height:35px}.cinematic-copy{width:85%;padding:75px 30px 40px}.cinematic-copy h2{font-size:45px}.cinematic-overline{left:30px;top:38px}.cinematic-skip{right:20px;top:25px}.cinematic-copy>p:not(.chapter){font-size:13px}.story-hero-copy{padding:32px}.hero-caption{display:none}.story-hero{min-height:340px}}
@media(max-width:650px){.app-shell{padding:0 15px}.header{height:77px;margin-bottom:50px}.mode-gallery{gap:7px;margin-top:20px}.mode-card{min-height:125px;padding:15px 10px;border-radius:5px}.mode-number{font-size:6px;letter-spacing:.65px;margin-bottom:13px}.mode-name{font-size:24px}.mode-caption{font-size:7px;line-height:1.6;max-width:95px;margin-top:8px}.mode-mark{display:none}.mode-card.active:after{left:10px;width:28px}.navigation{top:77px;height:50px}.nav{font-size:12px}.page-heading{padding:25px 0 22px}h1{font-size:47px}.scene-panel,.board-stage{height:470px;min-height:470px}.board-view-controls{left:15px;right:15px;bottom:57px;gap:6px}.zoom-switch button{font-size:8px;padding:6px 9px;min-height:28px}.view-tool{padding:7px 8px;min-height:34px;font-size:8px}.lesson-panel{padding:24px;min-height:310px}.story-panel .story-crest{position:absolute;right:23px;top:48px;width:46px;height:55px;margin:0}.story-panel h2{font-size:33px;max-width:80%}.story-panel .chapter{margin-top:25px}.story-objective{font-size:12px;margin:15px 0;max-width:100%}.story-dialogue p{font-size:13px;line-height:1.8}.chapter-steps{flex-direction:row;gap:15px}.chapter-steps span{font-size:8px}.story-panel .primary{margin-top:8px}.story-hero{margin-top:23px;min-height:325px;background-position:64% center}.story-hero-copy{padding:28px 25px}.story-hero h1{font-size:62px}.story-hero p{font-size:11px}.story-hero .eyebrow{font-size:7px}.story-seal{font-size:6px;margin-top:20px}.opponent-options{padding-right:45px}.play-panel .play-status-icon{top:65px}.play-panel .chapter{margin-top:12px}.play-panel h2{font-size:34px}.cinematic{min-height:100%;align-items:flex-end}.cinematic-copy{padding:95px 25px 35px;width:100%;background:linear-gradient(0deg,#07111bdd,transparent)}.cinematic-copy h2{font-size:43px;max-width:320px}.cinematic-copy>p:not(.chapter){font-size:13px;margin:20px 0;line-height:1.9}.cinematic-copy .chapter{font-size:8px}.cinematic-overline{top:35px;left:23px;font-size:6px;letter-spacing:1.2px}.cinematic-skip{top:24px;right:18px;font-size:8px;padding:8px 9px;gap:5px}.cinematic-art{background-position:65% 40%;background-size:auto 100%}.cinematic-vignette{background:linear-gradient(0deg,#07101bfa 0%,#07101bc9 45%,#07101b11 100%)}.cinematic-choices{gap:9px;flex-direction:column}.cinematic-choices button{padding:14px;min-height:75px}.cinematic-copy .primary{width:100%}.cinematic-count{margin-top:19px;font-size:6px}.cinematic:before,.cinematic:after{height:15px}}
@media(max-width:650px) and (orientation:portrait){.expanded .scene-panel,.expanded .board-stage{height:100%;min-height:0}.expanded .story-crest{display:none}.expanded .story-panel .story-objective{font-size:12px;margin:8px 0}.expanded .story-panel .story-dialogue{padding:10px;min-height:0;margin-bottom:10px}.expanded .story-panel .story-dialogue p{font-size:12px;margin-top:7px}.expanded .story-side-actions{margin-top:8px}.expanded .story-panel .story-event{font-size:9px;margin-bottom:10px}.expanded .chapter-steps{display:none}.expanded .cinematic-copy{padding:90px 25px 35px;width:100%}.expanded .cinematic-copy h2{font-size:45px}.expanded .board-view-controls{bottom:53px;left:14px;right:14px}.expanded .opponent-options{padding-right:0;margin-top:7px}.expanded .opponent-options label{margin-bottom:7px}.expanded .opponent-options select{padding:7px;min-height:33px;font-size:10px}.expanded .opponent-options p{font-size:8px}.expanded .play-panel .chapter{display:none}.expanded .story-panel .chapter{display:none}}
@media(max-height:560px) and (orientation:landscape){.expanded .cinematic-copy{padding:55px 35px 30px;width:75%}.expanded .cinematic-copy h2{font-size:40px}.expanded .cinematic-copy>p:not(.chapter){font-size:12px;line-height:1.6;margin:15px 0}.expanded .cinematic-copy .primary{min-height:38px;padding:9px 14px;margin-top:15px}.expanded .cinematic-choices{margin-top:10px}.expanded .cinematic-choices button{padding:12px;min-height:72px}.expanded .cinematic-count{margin-top:12px}.expanded .board-view-controls{bottom:54px}.expanded .story-crest{display:none}.expanded .story-panel h2{font-size:29px}.expanded .story-panel .story-dialogue{min-height:0}}
body.in-cutscene{overflow:hidden}.cinematic{position:fixed;inset:0;width:100vw;height:100dvh;min-height:0;border-radius:0;z-index:70}.expanded .cinematic{position:absolute;width:100%;height:100%}.cinematic-close{position:absolute;top:32px;right:25px;width:39px;height:39px;color:#eadcbb;border:1px solid #d3b88444;background:#09131b77;border-radius:4px}.cinematic-skip{right:81px}
@media(max-width:650px){.cinematic-close{top:24px;right:18px;width:33px;height:33px}.cinematic-skip{right:62px}.cinematic-overline{max-width:45%;font-size:6px;line-height:1.8}}
.mode-name{max-width:100%;line-height:1.04}.zoom-switch button,.view-tool{user-select:none;-webkit-user-select:none}.scene-panel,.board-stage,.flat-board{-webkit-user-select:none;user-select:none}
.story-piece-key{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin:0 0 15px;background:#d4bd8610;border:1px solid #d4bd8644;border-radius:5px}.story-piece-key>svg{width:40px;height:43px;flex-shrink:0}.story-piece-key strong{display:block;font-size:12px;font-weight:600;color:#f2dfb7;text-transform:capitalize}.story-piece-key span{display:block;font-size:10px;margin-top:5px;line-height:1.6;color:#c2cdc8}.story-panel h2{font-size:35px}.scene-panel{background-image:radial-gradient(ellipse at 50% 38%,#ddd4b412,transparent 65%),linear-gradient(160deg,var(--scene),#080f16)}
@media(min-width:1100px){.flat-board{width:min(calc(100% - 70px),calc(100% - 120px));max-height:calc(100% - 120px);height:auto;aspect-ratio:1}.flat-board[data-zoom=wide]{--board-scale:.83}.flat-board[data-zoom=normal]{--board-scale:1}.flat-board[data-zoom=close]{--board-scale:1.7}.expanded .flat-board{width:min(calc(100% - 70px),calc(100dvh - 120px))}}
@media(max-width:650px) and (orientation:portrait){.expanded .story-piece-key{padding:7px 10px;margin-bottom:9px;gap:9px}.expanded .story-piece-key>svg{width:27px;height:30px}.expanded .story-piece-key strong{font-size:10px}.expanded .story-piece-key span{font-size:8px;margin-top:2px}}
.flat-board{width:var(--flat-size,min(80%,440px));height:var(--flat-size,auto);max-height:none;top:53.5%}.expanded .flat-board{width:var(--flat-size,min(calc(100% - 70px),calc(100dvh - 150px)));height:var(--flat-size,auto)}.flat-board[data-zoom=normal]{--board-scale:1}.flat-board[data-zoom=wide]{--board-scale:.83}.detail-mode{cursor:grab}.detail-mode .board-stage{cursor:grab}#pan-help:not([hidden]){display:inline!important;max-width:230px;font-size:9px;line-height:1.5}.story-objective{font-size:14px;line-height:1.75}.story-dialogue p{font-size:13px;line-height:1.8}
.objective-symbol{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#c68b23;opacity:.85;pointer-events:none}.square.dark .objective-symbol{color:#ffdc89}.objective-symbol svg{width:47%;height:47%;filter:drop-shadow(0 1px 2px #0004)}.objective-symbol small{text-transform:uppercase;letter-spacing:.5px;font-size:6px;font-weight:700;margin-top:1px}.square:has(.objective-symbol):before{display:none}.square:has(.objective-symbol)>svg{position:relative;z-index:1}.square:has(.objective-symbol)>svg+.coordinate{z-index:2}
/* Academy lesson answers and browser-local save status. */
.academy-answers,.academy-placement,.academy-match{width:100%}.lesson-badge>span:first-child>svg{width:52px;height:58px;filter:drop-shadow(0 5px 6px #030b08a0)}.lesson-panel.started .lesson-badge>span:first-child>svg{width:28px;height:33px}
.save-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;color:var(--muted);font-size:12px}.save-strip>span{display:flex;align-items:center;gap:8px}.save-strip .text-button{font-size:12px}#save-status[data-state=error]{color:#edb69b}.academy-answers{display:grid;gap:9px;margin:16px 0}.academy-answers .secondary{width:100%;white-space:normal;text-align:left;min-height:48px;line-height:1.45}.academy-placement{display:flex;align-items:center;gap:15px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:12px}.academy-placement>svg{width:55px;height:66px;flex:none}.academy-placement small,.academy-match small{display:block;color:var(--muted);font-size:12px;line-height:1.6}.academy-match{margin:16px 0;font-size:14px;line-height:1.7}.academy-match details{margin-top:14px}.academy-match details p{font-size:12px;max-height:140px;overflow:auto}.academy-match summary{cursor:pointer;color:var(--muted)}
