.study-hero,.campaign-hero{background:#263f4b;color:#fff4da;border:2px solid #2b3544;border-radius:4px;display:flex;align-items:center;gap:40px;padding:38px 42px;position:relative;overflow:hidden;margin-bottom:28px}.study-hero:after,.campaign-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#243c4ef5,#243c4e92),url('/assets/tokyo-night-1988.png') 70% 50%/cover;z-index:0}.study-hero>* , .campaign-hero>*{position:relative;z-index:1}.study-hero h2,.campaign-hero h2{font:30px/1.6 var(--serif);letter-spacing:2px;margin:8px 0 12px}.study-hero p,.campaign-hero p{color:#d0ddd7;font-size:12px;line-height:1.9}.study-hero .eyebrow,.campaign-hero .eyebrow{color:#efbd9d}.study-stamp{font:90px Georgia;display:block;color:#f2c795;text-align:center;min-width:120px}.study-stamp small{display:block;font:10px var(--sans);letter-spacing:2px;color:#dad0b7}.study-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.study-card{border:2px solid #2c3d4a;border-radius:4px;background:#fffaf0;padding:27px 23px;box-shadow:4px 4px 0 #22394c18}.study-card h2{font:23px var(--serif);margin:12px 0}.study-card p{font-size:12px;color:#66757a;line-height:2}.study-index{font-size:10.5px;font-weight:700;color:#8e5d50;letter-spacing:1.7px}.study-symbol{display:block;font:bold 55px Georgia;color:#b65c51;height:105px;padding:20px 0}.study-symbol span{font-size:35px;margin-left:10px}.probability{color:#547e7b}.ghost-symbol{color:#796286}.learning-footnote{display:flex;justify-content:space-between;gap:15px;color:#778481;font-size:11px;margin:25px 0}.beginner-layout,.ghost-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:24px}.beginner-layout h2,.ghost-layout h2,.lab-output h3{font:22px var(--serif);margin:12px 0 20px}.beginner-layout p,.ghost-layout p{font-size:12px;line-height:2;color:#637279}.lesson-cards{display:flex;gap:7px;align-items:center;margin:25px 0}.lesson-cards .playing-card{width:52px;height:72px;font-size:20px}.lesson-cards .playing-card .suit{font-size:26px}.lesson-ranks{margin:20px 0 32px;font-size:12px}.lesson-ranks summary,.range-explanation summary{cursor:pointer;padding:10px 0}.lesson-ranks ol{columns:2;line-height:2.2;padding-left:20px}.action-dictionary>div{display:grid;grid-template-columns:84px 1fr;border-top:1px solid #d8d5c8;padding:16px 0;font-size:12px;line-height:1.8}.action-dictionary dt{font-weight:700}.action-dictionary dd{margin:0;color:#637279}.first-hand{align-self:start}.quiz-options{display:grid;gap:9px;margin-top:25px}.lesson-feedback{padding:18px;background:#e8efea;border-left:3px solid #557c75;font-size:12px;line-height:1.9;margin:20px 0}.coach-strip{display:flex;width:100%;text-align:left;align-items:center;gap:9px;background:#e6eee8;color:#38595b;border:0;border-radius:3px;padding:10px 12px;margin-bottom:10px;font-size:11px;line-height:1.6;min-height:44px}.coach-strip b{white-space:nowrap;font-size:10.5px}.coach-strip>span{margin-left:auto}.lab-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:25px}.lab-presets{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:22px}.lab-presets .btn{font-size:11px}.lab-card-group{margin:20px 0}.lab-card-group>label{font-size:12px;font-weight:700}.lab-card-group small{color:#7a827e;margin-left:12px;font-weight:400}.lab-cards{display:flex;gap:7px;margin-top:10px}.lab-card-slot{border:0;padding:0;background:transparent;border-radius:4px}.lab-card-slot .playing-card,.lab-card-slot .empty-slot{width:57px;height:80px;font-size:22px}.lab-card-slot .suit{font-size:29px}.empty-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px dashed #91a6a0;border-radius:4px;background:#e4eee550;color:#7f9793;gap:4px}.empty-slot small{font-size:10.5px;margin:0}.lab-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0;align-items:end}.lab-fields label,.ghost-name{font-size:11px;line-height:1.8;font-weight:700;display:block;color:#516675}.lab-fields select,.lab-fields input,.ghost-name input{width:100%;display:block;border:1px solid #acb6ae;background:#fffdf6;border-radius:3px;padding:12px 10px;margin-top:7px;min-height:44px;font-size:13px;color:#293c48}.range-explanation{font-size:11px;line-height:1.9;color:#647579;border-top:1px solid #d8dccc;border-bottom:1px solid #d8dccc}.range-explanation p{margin:12px 0}.lab-empty{display:flex;min-height:420px;align-items:center;justify-content:center;flex-direction:column;text-align:center}.lab-empty>span{font:80px Georgia;color:#a5b8b1}.lab-empty h2{font:22px var(--serif);margin:20px 0}.lab-empty p{font-size:12px;line-height:2;color:#687b7b}.equity-number{font:700 66px Georgia,serif;color:#416e68;margin:20px 0}.equity-number small{font:11px var(--sans);display:block;margin-top:10px;color:#75817d}.equity-track{height:13px;display:flex;border-radius:3px;overflow:hidden;background:#ddd4c9}.equity-track span:nth-child(1){background:#56837c}.equity-track span:nth-child(2){background:#d3ad72}.equity-track span:nth-child(3){background:#d6cbc0}.equity-legend{display:flex;justify-content:space-between;font-size:11px;color:#7c8680;margin:15px 0}.equity-legend b{display:block;font:700 18px Georgia;color:#334956;margin-top:4px}.odds-note{border:1px solid #d4d4c5;background:#f2eddf;padding:18px;margin:22px 0}.odds-note>span{font-size:11px}.odds-note strong{float:right;color:#9b6750;font:700 23px Georgia}.odds-note small{display:block;font-size:11px;margin-top:8px;color:#7e8071}.odds-note p{font-size:11px;line-height:1.8;margin-top:12px;color:#738079}.role-probabilities>div{display:grid;grid-template-columns:126px 1fr 48px;align-items:center;gap:7px;margin:10px 0;font-size:11px}.role-probabilities b{text-align:right;font-size:11px}.role-probabilities meter{width:100%;height:6px}.card-picker{display:grid;grid-template-columns:repeat(13,1fr);gap:5px}.card-picker button{background:none;border:0;padding:0;border-radius:4px}.card-picker .playing-card.compact{width:100%;height:54px;font-size:15px;min-width:0}.card-picker .suit{font-size:19px}.card-picker button:disabled{opacity:.2}.card-picker button[aria-pressed=true]{outline:3px solid #b76253;outline-offset:1px}.ghost-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:15px 0}.ghost-stats strong{display:block;font:700 34px Georgia;color:#436e72}.ghost-stats small{display:block;font-size:11px;margin-top:7px;color:#70817b}.ghost-name{margin:23px 0 12px}.ghost-profile{display:flex;align-items:center;gap:13px;padding:18px 0;border-bottom:1px solid #d4d7cc}.ghost-profile h3{font-size:14px}.ghost-profile p{font-size:11px;margin:5px 0}.ghost-profile small{font-size:10.5px;color:#8b9387}.ghost-profile-icon{font:35px Georgia;color:#846787}.ghost-actions{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;justify-content:end;max-width:180px}.ghost-actions .btn{font-size:10.5px;padding:8px;min-height:36px}.ghost-empty{font:65px Georgia;text-align:center;padding:25px 0;color:#92a8a0}.ghost-import{margin-top:28px}.ghost-import h3{font:19px var(--serif)}.ghost-import .checkbox-label{font-size:11px}.campaign-hero{justify-content:space-between;min-height:320px}.campaign-hero .btn{margin-top:20px}.passport{width:240px;flex-shrink:0;background:#faf0d6;color:#4b5d5f;padding:23px;box-shadow:5px 6px 0 #0f233c66;transform:rotate(2deg);border:1px solid #fff3da}.passport>small{font-size:10px;letter-spacing:3px}.passport>strong{font:65px Georgia;display:block;margin-top:8px;color:#9f5c4d}.passport>strong>span{font-size:20px;color:#829089}.passport p{color:#6f7970;margin:5px 0 15px;font-size:11px}.passport-stamps{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.passport-stamps span{display:flex;align-items:center;justify-content:center;height:23px;border:1px dashed #b9b69e;font:10.5px Georgia;color:#a9aa97}.passport-stamps .stamped{background:#4d7870;color:#fff6d9;border:1px solid #426d60}.district-route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:35px 0}.route-chapter{grid-column:1/-1;font:19px var(--serif);padding:10px 0 0;margin:7px 0}.district-card{display:flex;align-items:center;text-align:left;gap:16px;border:1px solid #9ea9a2;border-radius:3px;background:#fffaf0;padding:21px 16px;color:#394c56;min-height:108px;box-shadow:2px 3px 0 #29433c10}.district-number{font:29px Georgia;color:#c9b18a;min-width:34px}.district-name{font-size:11px;color:#72857c}.district-card strong{display:block;font:15px var(--serif);margin:7px 0}.district-card small{font-size:10.5px;color:#87918b}.district-arrow{margin-left:auto}.district-card.next{border:2px solid #b77359;background:#fff1d5;box-shadow:3px 3px 0 #d0a17d40}.district-card.next .district-number{color:#b65c50}.district-card.cleared .district-number{color:#4d8174}.district-card.locked{opacity:.55}.district-intro{font:16px/2.2 var(--serif);margin:20px 0}.district-goal{background:#e5eee7;padding:15px;font-size:12px;line-height:1.9}.campaign-banner{background:#233e49;color:#f2e5ce;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 25px;border-radius:3px;margin:28px 0}.campaign-banner h3{font:22px var(--serif);margin:7px 0}.campaign-banner small{font-size:10.5px;color:#cbcab5}.campaign-banner p{font-size:11px;color:#aebfb4}.campaign-progress-bar{background:#e5e6da;border-radius:3px;padding:8px 10px;font-size:11px;margin-bottom:9px;color:#436663;display:flex;justify-content:space-between;gap:10px}.training-table .arena-screen{min-height:760px}.brand-text{font-size:15px}
@media(max-width:1150px){.study-grid{gap:13px}.study-card{padding:23px 18px}.lab-layout{grid-template-columns:1fr}.lab-empty{min-height:230px}.district-route{grid-template-columns:1fr 1fr}.ghost-layout{grid-template-columns:1fr}.ghost-actions{max-width:none}.beginner-layout{grid-template-columns:1fr}.study-hero h2,.campaign-hero h2{font-size:26px}}
@media(max-width:650px){.study-hero,.campaign-hero{padding:26px 22px;gap:18px}.study-stamp{display:none}.study-hero h2,.campaign-hero h2{font-size:23px;letter-spacing:1px}.study-hero p,.campaign-hero p{font-size:11px}.study-grid{grid-template-columns:1fr}.study-card{display:grid;grid-template-columns:1fr 58px}.study-card .study-index,.study-card .btn{grid-column:1/-1}.study-card h2{font-size:21px}.study-card p{grid-column:1;font-size:11px}.study-symbol{grid-column:2;grid-row:2/4;font-size:45px;height:auto;align-self:center;padding:0}.study-symbol span{display:none}.study-card .btn{margin-top:20px}.learning-footnote{flex-direction:column;line-height:1.9}.lesson-cards{gap:5px}.lesson-cards .playing-card{width:43px;height:60px;font-size:16px}.lesson-cards .suit{font-size:22px}.lab-inputs,.lab-output{padding:20px 16px}.lab-presets .btn{padding:9px 8px}.lab-card-slot .playing-card,.lab-card-slot .empty-slot{width:49px;height:69px;font-size:18px}.lab-card-slot .suit{font-size:24px}.lab-cards{gap:5px}.lab-fields{gap:10px}.lab-fields label{font-size:10.5px}.lab-fields select,.lab-fields input{font-size:12px;padding:10px 7px}.lab-run .btn{font-size:11px;padding:12px 8px;min-height:44px}.equity-number{font-size:58px}.card-picker{grid-template-columns:repeat(7,1fr);gap:6px}.card-picker .playing-card.compact{height:50px}.ghost-profile{flex-wrap:wrap}.ghost-actions{width:100%;justify-content:start;margin-left:0}.ghost-actions .btn{min-height:44px}.campaign-hero{display:block}.passport{width:100%;margin-top:26px;transform:none;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.passport>strong{font-size:45px;grid-column:1;grid-row:2}.passport p{grid-column:1;grid-row:3;margin-top:-5px}.passport-stamps{grid-column:2;grid-row:1/4;align-self:center;grid-template-columns:repeat(5,1fr)}.passport-stamps span{height:21px}.district-route{grid-template-columns:1fr;gap:10px}.district-card{padding:16px;min-height:95px}.campaign-banner{display:block;padding:22px}.campaign-banner .btn{margin-top:16px}.campaign-banner h3{font-size:20px}.coach-strip{font-size:11px;padding:7px 9px;gap:7px;margin-bottom:7px}.coach-strip b{display:none}.training-table .arena-screen{min-height:730px}.campaign-progress-bar{font-size:10.5px}.mobile-brand{font-size:11px}}

.mobile-label{display:none}
@media(max-width:650px){.nav a{min-width:0;padding:8px 2px}.nav a .label,.nav a .tiny{display:none}.nav a .mobile-label{display:block;font-size:10.5px;white-space:nowrap}.campaign-title-end{display:block}}
/* The lesson playlist banner (ui/social.js lessonsBanner): thumbnail and text, one link to YouTube. */
.lessons-banner{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:26px;align-items:center;margin:0 0 22px;padding:16px;border:1px solid #5a2a4a;border-radius:8px;background:linear-gradient(110deg,#1d0f22,#0d1328 70%);color:#f1f4fb;text-decoration:none;transition:border-color .2s,transform .2s}
.lessons-banner:hover{border-color:#ff5aa8;transform:translateY(-2px)}
.lessons-banner:focus-visible{outline:2px solid #85d4f7;outline-offset:3px}
.lessons-banner img{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:5px}
.lessons-banner-text{display:flex;flex-direction:column;gap:6px;min-width:0}
.lessons-banner-text small{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:1.5px;color:#ff9fd0}
.lessons-banner-text b{font-size:22px;letter-spacing:.06em;line-height:1.4}
.lessons-banner-text span{font-size:14px;line-height:1.8;color:#c9d2e4}
.lessons-banner-text em{font-style:normal;font-weight:700;font-size:14px;color:#85d4f7;margin-top:4px}
@media(max-width:650px){.lessons-banner{grid-template-columns:1fr;gap:12px;padding:12px}.lessons-banner-text b{font-size:19px}}
