/* Calm, responsive training and invitation surfaces. */
.training-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:38px;background:#e9ece3;border:1px solid #dbe1d4;border-radius:28px;padding:38px}.training-hero h2{font-family:var(--serif);font-size:34px;letter-spacing:1px;margin:18px 0}.training-hero p{line-height:1.9;color:#687362}.training-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.training-tags span,.mode-tag,.room-label{font-size:11px;letter-spacing:.5px}.training-tags span{background:#fff9;padding:6px 10px;border-radius:20px;color:#64735f}.daily-card{padding:28px;background:#fffdf8;border:1px solid #dedfce;border-radius:22px;display:flex;flex-direction:column;justify-content:center}.daily-date{font-size:12px;letter-spacing:2px;color:#a47155}.daily-card h3{font:26px var(--serif);margin:18px 0 8px}.daily-card p{font-size:13px;margin-bottom:20px}.daily-card .primary{justify-content:space-between;width:100%}.daily-card small{color:#8c9485;font-size:11px;margin-top:13px}.training-stats{display:grid;grid-template-columns:repeat(4,1fr);padding:28px 0;margin-bottom:12px}.training-stats>div{display:flex;flex-direction:column;gap:8px;text-align:center;border-right:1px solid var(--line,#e5e5dd)}.training-stats>div:last-child{border:0}.training-stats strong{font-size:30px;font-weight:500;font-variant-numeric:tabular-nums;color:#425a40}.training-stats strong small{font-size:14px;color:#939b8f}.training-stats span{font-size:12px;color:#879180}.training-modes{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.training-mode{text-align:left;padding:24px 22px;border:1px solid #e2e5dc;border-radius:22px;background:#fffefb;min-height:238px;position:relative;transition:transform .18s,box-shadow .18s}.training-mode:hover{transform:translateY(-3px);box-shadow:0 10px 22px #30482a09}.mode-mark{display:block;width:52px;height:52px;border-radius:16px;background:#f3e6d6;color:#a56843;text-align:center;line-height:52px;font-size:20px;margin-bottom:24px}.mode-survival .mode-mark{background:#e6ecdf;color:#5d7754;font-size:32px}.mode-memory .mode-mark{background:#e5edf0;color:#5f788c;font:30px/52px var(--serif)}.mode-mistakes .mode-mark{background:#f1e8e5;color:#a77f71;font-size:29px}.mode-tag{display:block;color:#8d9484}.training-mode h3{font:20px var(--serif);margin:7px 0 10px}.training-mode p{font-size:12px;line-height:1.8;color:#8b9283;min-height:44px}.mode-link{display:block;font-size:12px;margin-top:18px;color:#566d4e}.training-collection,.training-badges{margin-top:42px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h2{font:25px var(--serif);margin:9px 0 20px}.section-title>span{font-size:12px;color:#899381}.training-filters{display:flex;gap:8px;margin:8px 0 22px;flex-wrap:wrap}.training-filters button{padding:9px 17px;border:1px solid #e1e4d9;border-radius:30px;color:#87907f;background:#fffefb;font-size:12px}.training-filters .active{color:#fff;background:#465e42;border-color:#465e42}.challenge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.challenge-card{display:flex;align-items:center;text-align:left;gap:16px;padding:19px;border:1px solid #e4e6dd;border-radius:17px;background:#fffefb;transition:border-color .2s}.challenge-card:hover{border-color:#9aa98c}.challenge-no{font-size:16px;color:#bdc4b4;font-variant-numeric:tabular-nums}.challenge-card small{display:block;font-size:10px;letter-spacing:.5px;color:#929989}.challenge-card strong{display:block;font:17px var(--serif);margin:8px 0}.challenge-card em{font-size:13px;letter-spacing:3px;color:#d1d5c8;font-style:normal}.challenge-card .earned{color:#b18a48}.challenge-arrow{margin-left:auto;color:#acb4a4}.training-empty{padding:32px;grid-column:1/-1;background:#ecefe6;border-radius:18px;color:#7b8870;font-size:14px}.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.training-badge{display:flex;flex-direction:column;align-items:center;padding:24px 10px;border:1px solid #e3e5dc;border-radius:20px;gap:10px;opacity:.64}.training-badge>span{font-size:25px;color:#a5af99}.training-badge strong{font:17px var(--serif)}.training-badge small{font-size:11px;color:#909884}.training-badge em{font-size:10px;font-style:normal;color:#87987a;border-radius:12px;background:#e8ecdf;padding:3px 10px}.training-badge.earned{opacity:1;background:#fffaf0;border-color:#eadfc6}.training-badge.earned>span{color:#b19762}.training-session-head{display:flex;align-items:center;gap:26px;margin-bottom:25px}.training-session-head>div{display:flex;flex-direction:column;gap:8px}.training-session-head strong{font-size:17px}.training-session-score{margin-left:auto;text-align:right}.training-session-score b{font-size:25px;font-weight:500;font-variant-numeric:tabular-nums}.training-session-score span,.training-session-score small{font-size:11px;color:#909887}.training-play-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:28px;align-items:start}.training-board-card{background:#fffefb;border:1px solid #e1e3d9;border-radius:24px;padding:24px}.training-board{width:min(100%,620px);margin:0 auto;aspect-ratio:9/10}.training-board-caption{font-size:14px;text-align:center;margin:0 0 20px;color:#58684e;line-height:1.7}.training-board-foot{font-size:11px;color:#8d9482;text-align:center;margin-top:19px;line-height:1.8}.training-board-foot b{font-size:17px;color:#b55c46}.training-session-aside{background:#eeeee3;border:1px solid #e1e2d2;border-radius:23px;padding:30px}.training-level{color:#a17c50;font-size:11px;letter-spacing:2px}.training-session-aside h2{font:26px var(--serif);margin:16px 0}.training-session-aside p{color:#7d8671;font-size:14px;line-height:1.95}.training-feedback{background:#fffdf6;border:1px solid #e4e0cd;border-radius:16px;padding:21px;font-size:14px;color:#868872;line-height:1.9;margin:24px 0;min-height:100px}.training-feedback.is-correct{background:#f7fbef;color:#557246;border-color:#dbe5cd}.training-feedback.is-wrong{background:#fdf5ed;color:#a77451}.training-next{width:100%;justify-content:center}.training-help{display:flex;gap:10px;flex-wrap:wrap}.training-help .secondary{font-size:12px}.training-rule-note{font-size:11px;line-height:2;color:#969b8a;margin-top:26px;border-top:1px solid #dddfd1;padding-top:20px}.training-results{max-width:700px;margin:0 auto;padding:48px;text-align:center}.training-results h2{font:28px var(--serif);margin:22px 0}.result-number{font-size:80px;font-weight:400;color:#50694a}.result-number small{font-size:16px;color:#8b987e}.training-results p{font-size:14px;color:#8c937f;line-height:1.9}.result-actions{display:flex;gap:12px;justify-content:center;margin:28px 0}.result-review{display:grid;gap:8px}.result-review button{display:flex;align-items:center;text-align:left;gap:12px;padding:15px;background:#f8f8f0;border-radius:12px}.result-review button>span:nth-child(2){font-size:14px}.result-review small{font-size:11px;color:#929983;margin-left:auto}.result-review .correct{color:#5b7c43}.result-review .wrong{color:#be865d}.replay-controls{flex-wrap:wrap}.replay-continue{font-size:12px;padding:9px 14px;white-space:nowrap}.online-lobby{max-width:none}.friend-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;width:100%;margin:25px 0;text-align:left}.friend-options>div{padding:23px;background:#f6f7f0;border:1px solid #e0e5d6;border-radius:20px}.friend-options h3{font:20px var(--serif);margin:11px 0 25px}.room-label{color:#839674}.friend-options label{font-size:12px!important;color:#829174}.friend-options select,.friend-options input{width:100%;border:1px solid #d9dfd0;background:#fffefb;padding:12px;border-radius:12px;font-size:14px;min-height:45px;max-width:none;color:#52664b}.friend-options button{margin-top:13px;width:100%;justify-content:center}.friend-options input{letter-spacing:2px}.public-match{display:flex;align-items:center;gap:20px;border-top:1px solid #e6e7dc;padding:22px 0;width:100%;justify-content:center}.public-match>span{font-size:13px;color:#8c957e}.online-lobby>small{line-height:1.9}.room-code-display{font-size:38px;font-weight:500;letter-spacing:6px;font-variant-numeric:tabular-nums;background:#eef1e7;border:1px solid #dce3d0;border-radius:18px;padding:24px;margin:10px 0 20px;color:#4b6743;user-select:all}.online-waiting>button{margin:12px auto}.invite-address{font-size:12px!important;word-break:break-all;user-select:all}.online-game-actions{flex-wrap:wrap}.online-game-actions .primary,.online-game-actions .secondary{font-size:12px}.online-lobby button:disabled{opacity:.5;cursor:wait}.training-board .board-svg g{stroke:var(--board-line);}.training-board .board-svg g[text-anchor]{stroke:none;fill:var(--board-river);}
@media(min-width:1500px){.training-mode{padding:30px}.challenge-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1150px){.training-modes{grid-template-columns:repeat(2,1fr)}.training-hero{gap:22px;padding:28px}.challenge-grid{grid-template-columns:repeat(2,1fr)}.training-play-layout{grid-template-columns:minmax(0,1.4fr) minmax(230px,1fr);gap:18px}.training-session-aside{padding:22px}}
@media(max-width:760px){.training-hero{grid-template-columns:1fr;padding:24px;gap:22px}.training-hero h2{font-size:28px}.training-hero p{font-size:13px}.daily-card{padding:23px}.training-stats{gap:12px;padding:24px 0}.training-stats strong{font-size:26px}.training-stats span{font-size:10px}.training-modes{gap:12px}.training-mode{padding:19px;min-height:225px}.training-mode h3{font-size:18px}.mode-mark{margin-bottom:19px}.challenge-grid{gap:10px}.challenge-card{padding:15px 12px;gap:10px}.challenge-card strong{font-size:15px}.challenge-no{font-size:12px}.challenge-arrow{display:none}.training-filters{gap:6px}.training-filters button{padding:8px 11px;font-size:11px}.section-title h2{font-size:22px}.badge-grid{grid-template-columns:repeat(2,1fr);gap:10px}.training-play-layout{grid-template-columns:1fr}.training-session-head{gap:15px}.training-session-head .secondary{padding:9px 12px;font-size:11px}.training-session-head .eyebrow{font-size:10px;letter-spacing:1px}.training-session-head strong{font-size:14px}.training-board-card{padding:17px 12px}.training-board-caption{font-size:12px}.training-session-aside{padding:25px}.training-results{padding:28px 20px}.training-results h2{font-size:23px}.friend-options{grid-template-columns:1fr;text-align:left}.public-match{flex-direction:column;gap:12px}.room-code-display{font-size:28px;letter-spacing:4px}.replay-controls input{min-width:65px}.replay-continue{margin-left:auto}.nav{overflow-x:auto}.nav button,.nav a{flex-shrink:0}.online-header nav{gap:12px}}
@media(prefers-reduced-motion:reduce){.training-mode,.challenge-card{transition:none}.training-mode:hover{transform:none}}
