@font-face{font-family:Nunito;src:url('assets/nunito-latin.woff2') format('woff2');font-style:normal;font-weight:200 1000;font-display:swap}
:root{--ink:#3e493e;--muted:#879084;--green:#537c59;--green-dark:#426b48;--sage:#eaf0e3;--cream:#faf9f4;--line:#e6e8df;--peach:#f0d4b7;--yellow:#f6df9e;--font:'Nunito',ui-rounded,'Arial Rounded MT Bold',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-weight:600;font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}button,a,summary{touch-action:manipulation}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #bd8744;outline-offset:4px}button{transition:background .16s,transform .16s,box-shadow .16s}button:not(:disabled):active{transform:translateY(1px)}h1,h2,h3,p{margin:0}svg{flex-shrink:0}img{max-width:100%}.site-header{height:93px;display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1440px;padding:0 49px;margin:auto;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:1000;letter-spacing:-1px;line-height:1}.brand>span:last-child{display:flex;gap:5px}.brand-mark{width:42px;height:44px;display:grid;place-items:center;background:#e8efdf;border-radius:14px;transform:rotate(-9deg);color:var(--green)}.brand-second{color:#b98554}.brand-dot{color:var(--green)}nav{display:flex;gap:12px;margin-left:20px}nav button{display:flex;align-items:center;gap:9px;padding:12px 17px;font-size:13px;font-weight:800;border-radius:11px;color:#8a9183}nav button.active{background:#e9efdf;color:#4b7049}nav button:hover{background:#eef0e9}.count{font-size:10px;background:#eee9dc;border-radius:5px;min-width:19px;padding:2px;color:#8d815f}.header-actions{display:flex;gap:10px}.icon-button{width:37px;height:37px;border:1px solid #e4e7dd;border-radius:50%;display:grid;place-items:center;color:#899081;background:#fffefa}.icon-button:hover{background:var(--sage)}main{max-width:1440px;margin:auto;padding:0 49px}.welcome{display:flex;align-items:center;justify-content:space-between;padding:31px 0 29px;gap:20px}.eyebrow,.section-kicker{font-size:10px;font-weight:900;letter-spacing:1.65px;color:#8a927e}.eyebrow{display:flex;align-items:center;gap:7px;color:#7d9573}.eyebrow>span{width:5px;height:5px;border-radius:50%;background:#8ba374}h1{font-size:34px;font-weight:900;letter-spacing:-1.15px;line-height:1.35;margin:8px 0 6px}h1 em{font-style:normal;color:#778e67}.welcome p,.page-title p{font-size:13px;color:#929586}.welcome-sticker{display:flex;align-items:center;gap:18px;position:relative;margin-right:8px;transform:rotate(5deg);color:#9a8968;padding:9px 19px;font-size:12px;text-align:center;line-height:1.35;background:#f4efdf;border:1px dashed #dcccab;border-radius:16px}.welcome-sticker b{font-size:10px;color:#b3a380}.welcome-sticker svg{color:#d6c89f;transform:rotate(-20deg)}.sticker-star{position:absolute;top:-12px;left:-10px;font-size:30px;color:#d8b772}.game-layout{display:grid;grid-template-columns:240px minmax(370px,1fr) 245px;gap:25px;align-items:start}.paper{background:#fffefa;border:1px solid var(--line);border-radius:19px;box-shadow:0 3px 0 #eeeFE780}.setup-card{padding:23px 20px 17px}.setup-card h2{font-size:20px;letter-spacing:-.4px;margin:5px 0 24px;font-weight:900}.field-label{display:block;font-size:11px;font-weight:800;margin:19px 0 9px;color:#818a77}.segmented{display:flex;background:#f1f2ec;padding:4px;border-radius:10px;gap:3px}.segmented button{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 6px;font-size:11px;flex:1;border-radius:7px;color:#8b9483}.segmented button.selected{background:white;color:#557347;box-shadow:0 2px 3px #3b563410}.opponents{display:flex;flex-direction:column;gap:8px}.opponent{display:flex;width:100%;align-items:center;text-align:left;gap:9px;border:1px solid #ecebe4;border-radius:11px;padding:9px 9px;background:#fffefa}.opponent.selected{background:#edf2e6;border-color:#b8c9a8}.opponent:hover{background:#f1f4ec}.opponent-face{width:34px;height:38px;background:#eee8dc;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.opponent-face img{width:34px;height:36px;object-fit:contain}.opponent-face.medium{background:#e9e2ef}.opponent-face.hard{background:#f0dece}.opponent b{font-size:12px;display:block}.opponent small{display:block;font-size:10px;font-weight:600;color:#98a08e;margin-top:1px}.difficulty{margin-left:auto;font-size:7px;letter-spacing:2px;color:#d2b273}.difficulty i{font-style:normal;color:#e8e5d9}.radio{width:12px;height:12px;border-radius:50%;border:1px solid #dce0d2;flex-shrink:0}.selected>.radio{border:3px solid #718e58;background:#fff}.team-selector{display:flex;gap:6px}.team-selector button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e6e7dc;padding:10px 2px;border-radius:9px;font-size:11px}.team-selector button.selected{background:#f5ead8;border-color:#d7bb90;color:#967143}.team-selector button[data-value=b].selected{background:#e8e5ef;border-color:#bfb5cb;color:#756985}.team-dot{width:13px;height:13px;border-radius:50%;border:1px solid #cdb085;background:#f1d8b5}.team-dot.alley{background:#aab0c0;border-color:#979daf}.primary{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--green);color:white;border-radius:11px;padding:14px 18px;font-size:13px;font-weight:800;box-shadow:0 4px 0 #3e6646;min-height:46px}.primary:hover{background:#618862}.new-game{width:100%;margin-top:24px;gap:8px;padding:13px 9px;font-size:12px}.new-game>span{margin-left:auto}.tiny{font-size:9px;color:#9a9f8c;line-height:1.5}.center{text-align:center}.setup-card>.tiny{margin-top:14px}.puzzle-card{position:relative;display:flex;align-items:center;text-align:left;width:100%;margin-top:18px;gap:10px;background:#f7eed6;border:1px solid #eaddb9;border-radius:16px;padding:18px 13px;color:#947746;box-shadow:0 3px 0 #eee5d3}.puzzle-icon{width:37px;height:41px;display:grid;place-items:center;background:#f2dfac;border-radius:12px;color:#b89442;flex-shrink:0}.puzzle-card .section-kicker{font-size:8px;letter-spacing:1.3px;color:#ae965f}.puzzle-card b{display:block;font-size:13px;margin:3px 0}.puzzle-card small{font-size:9px;font-weight:600;color:#a18f70}.puzzle-arrow{position:absolute;right:12px;top:10px;font-size:16px}.puzzle-card:hover{background:#f3e6c8;transform:rotate(-1deg)}.gentle-note{font-size:10px;line-height:1.5;color:#a5a891;display:flex;align-items:center;gap:7px;margin:17px 7px}.play-column{min-width:0}.player-bar{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 5px 10px}.player-bar#bottom-player{padding:14px 5px 0}.player-avatar{width:40px;height:40px;border:1px solid #d9d9d1;border-radius:13px;overflow:hidden;background:#e7e7eb;display:grid;place-items:center}.player-avatar.w{background:#f1e4ce;border-color:#e1ceb0}.player-avatar img{width:34px;height:37px;object-fit:contain}.player-info b{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:900}.player-info>span{display:block;margin-top:3px;font-size:10px;color:#99a08f}.you-label{display:inline-block;color:#a38852;font-size:7px;letter-spacing:.8px;background:#f2e8cf;padding:3px 5px;border-radius:4px}.turn-pill{margin-left:auto;font-size:9px;color:#c9cfc0;border-radius:6px;padding:5px 8px}.turn-pill.on{color:#648453;background:#e9efdf;font-weight:900}.turn-pill.on:before{content:'';display:inline-block;vertical-align:middle;width:5px;height:5px;background:#8da876;border-radius:50%;margin-right:4px}.captures{display:flex;gap:1px;font-size:15px;color:#9eaa99;margin-left:auto}.captures:empty{display:none}.board-shell{padding:12px;border-radius:16px;background:#7e9670;box-shadow:0 7px 0 #5e7952,0 13px 24px #4c634a19;border:1px solid #6f8b63}.chessboard,.lesson-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border-radius:7px;overflow:hidden;border:1px solid #617d5790}.square{aspect-ratio:1;min-width:0;position:relative;padding:3px 3px 9px;display:flex;align-items:center;justify-content:center;border-radius:0;outline-offset:-4px!important}.square.light{background:#f5efdb}.square.dark{background:#b7cba0}.square:hover{filter:brightness(1.035)}.square .cat-piece{position:relative;width:92%;height:92%;object-fit:contain;max-height:100%;z-index:2;filter:drop-shadow(0 2px 1px #5a604924);transition:transform .17s;pointer-events:none}.square:hover .cat-piece{transform:translateY(-2px) rotate(-3deg)}.square.chosen{background:#e9cf78;box-shadow:inset 0 0 0 3px #d8ad51}.square.chosen .cat-piece{transform:translateY(-3px) rotate(-5deg)}.square.last-move:not(.chosen){background:#e2d88e}.square.hinted{box-shadow:inset 0 0 0 3px #c89937;background:#f0d391}.piece-label{position:absolute;bottom:1px;left:0;right:0;font-size:7px;text-align:center;font-weight:900;letter-spacing:.1px;color:#625943c0;z-index:2;pointer-events:none}.rank-label,.file-label{position:absolute;font-size:8px;font-weight:900;color:#7b9566;line-height:1;z-index:3;pointer-events:none}.rank-label{top:4px;left:4px}.file-label{bottom:3px;right:4px}.dark .rank-label,.dark .file-label{color:#f8f6e9}.move-dot{position:absolute;width:25%;height:25%;border-radius:50%;background:#56794d55;z-index:3;pointer-events:none;box-shadow:inset 0 0 0 1px #557a4910}.legal:hover{background:#d3dea9}.capture-target:after{position:absolute;content:'';inset:3px;border:3px solid #d39156;border-radius:50%;z-index:4;pointer-events:none}.square.in-check{background:#e8a996;box-shadow:inset 0 0 0 3px #c46f53}.board-tools{display:flex;justify-content:center;margin-top:19px;gap:6px;padding:9px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.board-tools button{display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;color:#8b9481;padding:7px 11px;border-radius:8px}.board-tools button:hover{background:#ecefe3;color:var(--green)}.board-tools button:nth-child(2){color:#9d844b}.turn-banner{display:flex;align-items:center;justify-content:center;gap:7px;color:#8c9781;font-size:10px;text-align:center;line-height:1.6;margin:14px 0 0}.coach-card{background:#eef1e5;border:1px solid #e0e6d5;border-radius:19px;padding:17px 17px 11px;overflow:hidden;position:relative}.coach-top{display:flex;align-items:center;justify-content:space-between}.coach-top .section-kicker{font-size:8px;letter-spacing:1.6px}.coach-spark{font-size:26px;color:#b7bd9a;line-height:1}.coach-portrait{position:relative;height:159px;text-align:center;margin:0 0 11px}.coach-portrait:before{content:'';position:absolute;width:130px;height:130px;left:50%;top:10px;transform:translateX(-50%);border-radius:50%;background:#e3e9d5}.coach-portrait>img{width:171px;height:166px;object-fit:contain;position:relative;z-index:1;animation:breathe 5s ease-in-out infinite}.coach-name{position:absolute;bottom:0;left:50%;transform:translateX(-50%) rotate(-4deg);z-index:2;background:#fffcf2;padding:3px 16px;border:1px solid #e3dec7;border-radius:6px;box-shadow:0 2px 0 #d6dcca;color:#81795b;font-size:10px;font-weight:900}.portrait-orbit{position:absolute;color:#c9b373;z-index:2}.portrait-orbit.one{left:16px;top:37px;font-size:17px;transform:rotate(12deg)}.portrait-orbit.two{right:9px;top:87px;font-size:22px}.speech{position:relative;background:#fffefa;border:1px solid #e2e5d8;border-radius:12px;padding:15px 14px;color:#7f8872;font-size:11px;line-height:1.8}.speech:before{content:'';position:absolute;top:-7px;left:50%;width:11px;height:11px;transform:rotate(45deg);background:#fffefa;border-top:1px solid #e2e5d8;border-left:1px solid #e2e5d8}.speech>b{display:block;color:#5d7251;font-size:12px;margin-bottom:4px;font-weight:900}.speech p{line-height:1.85}.coach-bottom{display:flex;align-items:center;justify-content:center;gap:5px;font-size:9px;color:#9ca58a;margin-top:10px}.journal{margin-top:18px;padding:0 15px 6px;overflow:hidden}.journal-tabs{display:flex;border-bottom:1px solid var(--line);gap:16px;margin-bottom:10px}.journal-tabs button{padding:13px 0 11px;font-size:10px;white-space:nowrap;font-weight:800;color:#9fa592;border-bottom:2px solid transparent}.journal-tabs button.active{border-color:#92a477;color:#647a55}.hint-guide>div{display:flex;align-items:center;gap:10px;margin:13px 1px}.hint-guide b{display:block;font-size:10px;color:#7e8b70}.hint-guide small{font-size:9px;line-height:1.5;font-weight:500;color:#9aa18e;display:block;margin-top:2px}.legend-dot{width:12px;height:12px;border-radius:50%;background:#9fb18b;flex-shrink:0;margin:0 2px}.legend-ring{width:16px;height:16px;border:2px solid #d7a06a;border-radius:50%;flex-shrink:0}.legend-square{width:15px;height:15px;background:#e4d897;border-radius:3px;flex-shrink:0}.move-list{height:133px;overflow:auto}.move-list>div:not(.empty-history){display:grid;grid-template-columns:25px 1fr 1fr;padding:7px 6px;border-radius:4px;font-size:11px}.move-list>div:nth-child(even){background:#f0f2e9}.move-list span{color:#a3ab97}.empty-history{font-size:11px;color:#99a08e;line-height:1.8;text-align:center;margin:35px 0}.school-link{display:flex;align-items:center;gap:10px;margin:19px 4px;color:#a4aa96;text-align:left;font-size:10px;padding:0}.school-link b{display:block;font-size:10px;color:#859176;margin-top:4px}.school-link svg{color:#a5b196}.bottom-tips{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;border-top:1px dashed #dddFCF;margin:31px 0 0;padding:24px 23px}.bottom-tips>div{display:flex;align-items:center;gap:12px}.tip-number{font-size:13px;width:31px;height:31px;background:#efeee2;border:1px solid #e4e3d3;border-radius:50%;display:grid;place-items:center;color:#a29f83;font-weight:900;flex-shrink:0}.bottom-tips b{display:block;font-size:11px;color:#828c76}.bottom-tips small{display:block;font-size:10px;color:#a3a893;margin-top:4px}footer{max-width:1342px;margin:0 auto;display:flex;justify-content:space-between;border-top:1px solid #e7e8de;color:#b2b4a4;padding:20px 0;font-size:9px}footer>span:first-child{display:flex;align-items:center;gap:6px}.friend-note{padding:34px 8px 20px;text-align:center;color:#849873}.friend-note svg{margin-bottom:10px}.friend-note b{display:block;font-size:13px}.friend-note p{font-size:12px;line-height:1.8;color:#9ba28f;margin-top:10px}.page-title{padding:38px 0 32px}.page-title h1{font-size:38px}.learning-layout{display:grid;grid-template-columns:240px minmax(350px,1fr) 235px;gap:30px;padding-bottom:45px}.lesson-menu{padding:12px;height:fit-content}.lesson-menu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px;border-radius:12px}.lesson-menu button.selected{background:#edf1e4}.lesson-menu img{width:42px;height:48px;object-fit:contain}.lesson-menu b{display:block;font-size:14px}.lesson-menu small{display:block;font-size:11px;color:#9aa28c;margin-top:4px}.lesson-check{margin-left:auto;color:#8b9d60}.lesson-main{padding:25px}.lesson-main h2{font-size:22px;margin:9px 0}.lesson-main>div>p{font-size:13px;color:#8a957e;line-height:1.7}.lesson-board{max-width:370px;margin:24px auto 18px;border:7px solid #8ca47a;border-radius:11px;box-shadow:0 4px 0 #6d895d}.lesson-board .square{padding:3px}.lesson-tip{display:flex;gap:10px;background:#f6f0df;border-radius:10px;padding:13px;color:#9b895d;line-height:1.7;font-size:11px}#lesson-feedback{font-size:12px;text-align:center;margin-top:16px;color:#769063;min-height:24px}.learn-coach{text-align:center;padding-top:35px}.learn-coach>img{width:230px}.learn-coach .speech{text-align:left}.learn-coach .primary{margin-top:25px;width:100%}.collection-summary{display:flex;align-items:center;gap:24px;padding:12px 38px 12px 10px;background:#edf1e3;border:1px solid #dfe6d5;border-radius:24px;margin-bottom:28px}.collection-summary>img{width:150px;height:135px;object-fit:contain}.collection-summary h2{font-size:25px;margin:8px 0}.collection-summary p{font-size:12px;color:#939d85}.stat{text-align:center;margin-left:auto}.stat b{display:block;font-size:32px;color:#6d875b}.stat span{display:block;font-size:11px;color:#95a087;margin-top:5px}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.badge-card{text-align:center;padding:27px 22px;position:relative}.badge-art{display:grid;place-items:center;width:85px;height:85px;margin:0 auto 19px;border-radius:50%;font-size:40px;background:#f7e8b9;border:5px solid #f0ddb0;box-shadow:0 0 0 4px #faf2d7;transform:rotate(-5deg)}.badge-card.locked .badge-art{filter:grayscale(1);opacity:.35}.badge-status{font-size:8px;font-weight:900;letter-spacing:1.2px;color:#b2a279}.badge-card.locked .badge-status{color:#aab09e}.badge-card h2{font-size:18px;margin:8px 0}.badge-card p{font-size:12px;color:#929b85;line-height:1.8}.collection-action{display:flex;justify-content:center;padding:30px}.text-button{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#8c987c;font-weight:800;margin:19px auto 0}.text-button:hover{color:var(--green)}dialog{width:440px;max-width:calc(100% - 32px);max-height:90dvh;border:1px solid #e2e6d7;border-radius:23px;padding:32px;box-shadow:0 25px 80px #2d44272a;color:var(--ink);background:#fffdf6;overflow:auto}dialog.wide{width:570px}dialog::backdrop{background:#33422f65;backdrop-filter:blur(5px)}dialog h2{font-size:25px;letter-spacing:-.5px;font-weight:900;margin-right:20px;line-height:1.35;margin-bottom:14px}dialog p{font-size:13px;line-height:1.9;color:#8a957c}dialog .primary{width:100%;margin-top:24px}.modal-close{position:absolute;right:13px;top:13px;width:29px;height:29px;border:0}.modal-close svg{width:16px}.promotion-choices{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:23px}.promotion-choices button{background:#eef1e3;border-radius:10px;padding:10px 4px;font-size:10px}.promotion-choices img{width:100%;height:70px;object-fit:contain}.promotion-choices b{display:block}.promotion-choices button:hover{background:#e0e8ce}.result-cat{text-align:center;margin:8px 0}.result-cat img{height:155px;width:170px;object-fit:contain}.puzzle-options{margin-top:21px;display:flex;flex-direction:column;gap:10px}.puzzle-options button{display:flex;align-items:center;gap:13px;text-align:left;padding:14px;background:#f1f3e8;border:1px solid #e2e7d8;border-radius:13px}.puzzle-options b{display:block;font-size:13px}.puzzle-options small{font-size:10px;color:#949f83;display:block;margin-top:4px}.puzzle-options svg{margin-left:auto;color:#9cac89}.puzzle-number{display:grid;place-items:center;width:33px;height:33px;border-radius:50%;background:#e2e8d4;color:#8a9a6d;font-size:18px}.help-intro{display:flex;gap:16px;align-items:center}.help-intro svg{color:#98ac79}.help-steps{padding-left:21px;color:#86937a;font-size:13px;line-height:1.9}.help-steps li{padding:8px 0 8px 4px}.help-steps b{color:#647952}details{background:#f1f3e8;padding:14px 16px;border-radius:11px;font-size:12px;margin-top:15px}summary{cursor:pointer;font-weight:800;color:#6c805a}details p{font-size:12px;margin-top:12px}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);z-index:100;max-width:calc(100% - 30px);width:max-content;background:#4f7048;color:white;border:1px solid #6d895d;padding:14px 22px;border-radius:13px;box-shadow:0 6px 25px #3b56342a;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:13px;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.confetti{position:fixed;inset:0;pointer-events:none;z-index:1000;overflow:hidden}.confetti i{position:absolute;left:var(--x);top:-20px;background:var(--color);width:9px;height:16px;border-radius:3px;animation:confetti 2s var(--delay) both ease-in;transform:rotate(var(--r))}@keyframes confetti{to{top:110%;transform:rotate(calc(var(--r) + 400deg)) translateX(90px);opacity:.3}}@keyframes breathe{50%{transform:translateY(-4px) rotate(1deg)}}
@media(min-width:1500px){.game-layout{grid-template-columns:255px minmax(430px,1fr) 260px;gap:30px}.welcome{padding:35px 0}.site-header{height:100px}.coach-portrait{height:174px}.coach-portrait>img{height:185px;width:190px}.setup-card{padding:25px 22px}.setup-card h2{margin-bottom:26px}.opponent{padding:11px}.new-game{margin-top:27px}.coach-card{padding:20px}.square .piece-label{font-size:8px}}
@media(max-width:1180px){.site-header{padding:0 28px}main{padding:0 28px}.game-layout{grid-template-columns:210px minmax(320px,1fr) 210px;gap:18px}.setup-card{padding:19px 15px}.coach-card{padding:15px 12px}.coach-portrait{height:137px}.coach-portrait>img{height:145px;width:150px}.coach-portrait:before{width:113px;height:113px}.coach-name{font-size:9px}.speech{padding:12px;font-size:10px}.coach-top .section-kicker{font-size:7px}.journal{padding:0 12px 6px}.journal-tabs{gap:12px}.journal-tabs button{font-size:9px}.board-shell{padding:10px}.board-tools button{font-size:9px;padding:7px;gap:5px}.board-tools svg{width:16px}.difficulty{letter-spacing:1px}.bottom-tips{padding:23px 6px;gap:15px}.bottom-tips small{font-size:9px}.brand{font-size:22px}nav{gap:4px;margin:0}nav button{font-size:12px;padding:10px 12px}h1{font-size:30px}.welcome-sticker{font-size:10px}.piece-label{font-size:6px}.learning-layout{grid-template-columns:210px minmax(320px,1fr) 195px;gap:20px}footer{margin:0 28px}.collection-summary h2{font-size:21px}}
@media(max-width:990px){.companion-column{display:none}.game-layout{grid-template-columns:235px minmax(350px,1fr);gap:28px}.piece-label{font-size:8px}.welcome-sticker{display:none}.learning-layout{grid-template-columns:220px 1fr}.learn-coach{display:none}.site-header{gap:15px}.brand{font-size:20px}.brand-mark{width:34px;height:37px}.brand-mark svg{width:23px}.header-actions{gap:6px}.icon-button{width:32px;height:32px}nav button{font-size:11px;padding:10px}.count{display:none}.bottom-tips{gap:15px}.bottom-tips small{font-size:9px}.collection-summary{gap:15px;padding-right:20px}.collection-summary>img{width:100px}.collection-summary h2{font-size:19px}.stat b{font-size:26px}.stat span{font-size:9px}.badge-grid{gap:15px}.badge-card{padding:24px 15px}.badge-card h2{font-size:17px}}
@media(max-width:700px){.site-header{height:auto;min-height:114px;padding:16px 18px 0;gap:0;flex-wrap:wrap;position:relative}.brand{font-size:22px}.brand-mark{height:36px}.header-actions{margin-left:auto;gap:8px}nav{order:3;width:100%;justify-content:center;margin:13px 0 0;gap:15px;border-top:1px solid #e9eade;padding:6px 0}nav button{font-size:11px;padding:9px 10px;border-radius:8px}nav button svg{width:16px;height:16px}main{padding:0 18px}.welcome{padding:23px 0 20px}.eyebrow{font-size:8px;letter-spacing:1.35px}h1{font-size:26px;line-height:1.35;margin-top:8px;letter-spacing:-.7px}h1 em{display:block}.welcome p{font-size:11px;max-width:310px;line-height:1.8;margin-top:7px}.game-layout{display:flex;flex-direction:column;gap:22px}.play-column{width:100%;order:1}.setup-column{order:2;width:100%}.setup-card{padding:19px}.setup-card h2{margin-bottom:16px}.setup-card .field-label{margin:15px 0 8px}.opponents{flex-direction:row;gap:8px}.opponent{flex:1;flex-wrap:wrap;gap:5px;padding:9px 7px;justify-content:center;text-align:center;position:relative}.opponent-face{width:31px;height:36px}.opponent>span:nth-child(2){width:100%}.opponent small{font-size:9px}.difficulty{display:none}.radio{position:absolute;right:5px;top:5px;width:9px;height:9px}.selected>.radio{border-width:2px}.new-game{font-size:13px;margin-top:18px}.new-game>span{margin-left:0}.segmented button{font-size:12px}.team-selector button{font-size:12px}.setup-card .tiny{font-size:10px}.puzzle-card{margin-top:14px;padding:15px 17px;gap:14px}.puzzle-card .section-kicker{font-size:8px}.puzzle-card b{font-size:14px}.puzzle-card small{font-size:10px}.gentle-note{justify-content:center;font-size:10px;margin-bottom:0}.bottom-tips{grid-template-columns:1fr;margin-top:24px;padding:22px 10px;gap:19px}.bottom-tips small{font-size:11px}.bottom-tips b{font-size:12px}.bottom-tips .tip-number{width:34px;height:34px}.board-shell{padding:9px;border-radius:13px;box-shadow:0 5px 0 #5e7952,0 9px 20px #4c634a17}.player-bar{padding:0 3px 10px;min-height:48px}.player-avatar{width:36px;height:36px;border-radius:11px}.player-avatar img{width:32px;height:32px}.player-info b{font-size:12px}.player-info>span{font-size:10px}.board-tools{margin-top:16px;justify-content:space-between;padding:8px 0}.board-tools button{font-size:10px;gap:5px;padding:6px}.turn-banner{font-size:10px;min-height:30px;margin-top:10px;padding:0 7px}.square .cat-piece{width:94%;height:96%}.square{padding:1px 1px 7px}.piece-label{font-size:6px;line-height:1.3;bottom:1px}.file-label,.rank-label{font-size:7px}.file-label{right:2px;bottom:2px}.rank-label{left:2px;top:3px}footer{margin:0 18px;padding:17px 0 23px;flex-direction:column;align-items:center;gap:8px;font-size:9px}.page-title{padding:27px 0 23px}.page-title h1{font-size:28px}.page-title p{font-size:12px;line-height:1.8;margin-top:9px}.learning-layout{display:flex;flex-direction:column;gap:18px}.lesson-menu{display:grid;grid-template-columns:repeat(3,1fr);padding:6px;gap:4px}.lesson-menu button{flex-direction:column;text-align:center;padding:7px;gap:4px;position:relative}.lesson-menu img{width:34px;height:40px}.lesson-menu b{font-size:11px}.lesson-menu small{font-size:8px;margin-top:1px}.lesson-check{position:absolute;top:3px;right:5px}.lesson-main{padding:20px 17px}.lesson-main h2{font-size:20px}.lesson-main>div>p{font-size:12px}.lesson-tip{font-size:11px}.collection-summary{flex-wrap:wrap;padding:17px;gap:10px}.collection-summary>img{width:80px;height:90px}.collection-summary>div:nth-child(2){flex:1}.collection-summary .section-kicker{font-size:8px;letter-spacing:1px}.collection-summary h2{font-size:18px}.collection-summary p{font-size:10px;line-height:1.7}.stat{flex:1;margin:10px 0}.stat b{font-size:28px}.stat span{font-size:10px}.badge-grid{grid-template-columns:repeat(2,1fr);gap:12px}.badge-card{padding:22px 12px}.badge-art{width:65px;height:65px;font-size:30px}.badge-status{font-size:6px;letter-spacing:.7px}.badge-card h2{font-size:15px}.badge-card p{font-size:10px;line-height:1.8}.collection-action{padding:27px 0}dialog{padding:27px 23px}dialog h2{font-size:24px}dialog p{font-size:12px}.promotion-choices{gap:5px}.promotion-choices img{height:60px}.help-steps{font-size:12px}.welcome .eyebrow{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}
/* Keep the whole board comfortably within a laptop-sized play area. */
@media(min-width:1000px){main,.site-header{max-width:1200px;padding-left:30px;padding-right:30px}.site-header{height:79px}.welcome{padding:25px 0 24px}.welcome h1{font-size:30px}.game-layout{grid-template-columns:235px minmax(360px,1fr) 235px;gap:23px}footer{max-width:1140px}.coach-portrait{height:145px}.coach-portrait>img{height:154px;width:160px}.setup-card{padding:21px 18px}.bottom-tips{margin-top:25px}.puzzle-card{padding:15px 12px}.puzzle-card small{font-size:8px}}
@media(min-width:1000px) and (max-height:850px){main,.site-header{max-width:1000px;padding-left:23px;padding-right:23px}.site-header{height:71px}.welcome{padding:19px 0 21px}.welcome h1{font-size:28px;margin-top:6px}.welcome p{font-size:11px}.game-layout{grid-template-columns:220px minmax(300px,1fr) 220px;gap:20px}.setup-card{padding:18px 15px}.setup-card h2{margin-bottom:15px}.field-label{margin-top:15px}.opponent{padding:8px}.new-game{margin-top:19px}.coach-card{padding:14px}.coach-portrait{height:130px}.coach-portrait>img{width:140px;height:140px}.speech{font-size:10px;padding:12px}.board-shell{padding:10px}.journal{margin-top:15px}footer{max-width:1074px}}
.collection-action{flex-direction:column;align-items:center}.collection-action>.text-button{font-size:10px;color:#a5ad99}.capture-puff{position:absolute;inset:0;display:grid;place-items:center;font-size:36px;color:#cda64c;z-index:8;pointer-events:none;animation:puff .5s ease-out both}@keyframes puff{0%{transform:scale(.2) rotate(-20deg);opacity:1}100%{transform:scale(1.6) rotate(20deg);opacity:0}}
/* Royal & Rogue: exact artwork from the original concept sheet. */
.royal-sprite{display:block;overflow:hidden;pointer-events:none;user-select:none}
.square .royal-sprite{width:100%;height:100%;filter:drop-shadow(0 2px 1px #3c2e2530)}
.square .royal-sprite[data-sprite$="p"]{width:86%;height:86%;align-self:flex-end}
.opponent-face .royal-sprite{width:34px;height:36px}
.player-avatar .royal-sprite{width:34px;height:37px}
.lesson-menu .royal-sprite{width:42px;height:48px;flex-shrink:0}
.promotion-choices .royal-sprite{width:100%;height:85px}
.coach-portrait>.royal-sprite{width:171px;height:166px;margin:auto;position:relative;z-index:1;filter:drop-shadow(0 5px 4px #5a49301c);animation:breathe 5s ease-in-out infinite}
.learn-coach>.royal-sprite{width:200px;height:250px;margin:0 auto 15px}
.collection-summary>.royal-sprite{width:150px;height:145px;flex-shrink:0}
.result-cat>.royal-sprite{height:185px;width:200px;margin:auto;filter:drop-shadow(0 5px 5px #33271820)}
.welcome-sticker:hover{background:#efe5ce}
.roster-modal.wide{width:840px}
.roster-gallery{margin-top:24px}
.roster-gallery h3{font-size:14px;color:#76634b;margin:20px 0 12px;font-weight:800}
.roster-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;background:linear-gradient(160deg,#f2e8d5,#e5ddcd);padding:20px 12px 15px;border:1px solid #e1d5bf;border-radius:15px}
.roster-gallery section+section .roster-row{background:linear-gradient(160deg,#d9d6ce,#c7c4bc);border-color:#c3b9a8}
.roster-row figure{margin:0;min-width:0;text-align:center}
.roster-row .royal-sprite{width:100%;height:150px;filter:drop-shadow(0 3px 2px #33271822)}
.roster-row figcaption{margin-top:11px;font-size:11px;color:#77634d;font-weight:800}
@media(min-width:1000px){.coach-portrait>.royal-sprite{height:154px;width:160px}}
@media(min-width:1000px) and (max-height:850px){.coach-portrait>.royal-sprite{width:140px;height:140px}}
@media(max-width:1180px){.collection-summary>.royal-sprite{width:120px}}
@media(max-width:990px){.player-avatar .royal-sprite{width:32px;height:35px}.collection-summary>.royal-sprite{width:100px;height:115px}}
@media(max-width:700px){.lesson-menu .royal-sprite{width:34px;height:40px}.collection-summary>.royal-sprite{width:80px;height:100px}.promotion-choices .royal-sprite{height:75px}.roster-row{gap:10px;grid-template-columns:repeat(3,1fr)}.roster-row .royal-sprite{height:125px}.roster-row figcaption{font-size:11px;margin-top:6px}.roster-modal.wide{padding:25px 18px}}
.mobile-roster-link{display:none}@media(max-width:990px){.mobile-roster-link{display:flex;align-items:center;justify-content:center;gap:8px;margin:17px auto 3px;color:#877450;font-size:11px;font-weight:800}}
