/* Approved learner direction A: warm daylight, quiet green and readable white surfaces. */
@font-face{font-family:'Source Sans 3';src:url('assets/fonts/source-sans-3.ttf') format('truetype');font-weight:200 900;font-display:swap}
html[data-theme="light"][data-appearance="matcha"]{--bg:#f8f7f2;--panel:#fff;--text:#202c29;--muted:#65716a;--line:#e0e5de;--accent:#224f42;--appearance-tint:#edf3ed;--appearance-hover:#e5eee5;--appearance-primary-hover:#183c31}
.portal-shell{--cinema-shadow:0 8px 32px #253f2d05}
html[data-appearance] .portal-shell{font-family:'Source Sans 3',Arial,sans-serif;font-size:17px}
html[data-appearance] .portal-shell :is(h1,h2,h3){color:var(--text);font-weight:400;letter-spacing:-.035em}
html[data-appearance] .portal-shell h1{font-size:clamp(32px,3.3vw,48px);line-height:1.16}
html[data-appearance] .portal-shell h2{font-size:clamp(23px,2.3vw,30px);line-height:1.2}
html[data-appearance] .portal-shell h3{font-size:23px}
html[data-appearance] .portal-shell .portal-header{background:var(--panel);color:var(--text);border-bottom:1px solid var(--line);padding:20px max(28px,calc((100vw - 1340px)/2));gap:32px;min-height:92px;box-shadow:none}
html[data-appearance] .portal-shell .portal-header :is(.brand,.portal-nav a,.portal-sign-in,.portal-user-menu summary){color:var(--text)}
html[data-appearance] .portal-shell .portal-header .brand{color:var(--accent);font-size:30px;white-space:nowrap}
html[data-appearance] .portal-shell .portal-header .brand-logo{filter:grayscale(1) sepia(.3) hue-rotate(78deg) brightness(.55);width:40px;height:40px}
.portal-shell .learner-brand-copy small{display:none}
html[data-appearance] .portal-shell .portal-nav{gap:22px}
html[data-appearance] .portal-shell .portal-nav a{padding:13px 0;border-radius:0;background:transparent;border-bottom:2px solid transparent;font-size:17px;font-weight:500}
html[data-appearance] .portal-shell .portal-nav a.active{background:transparent;color:var(--accent);border:0;border-bottom:2px solid var(--accent);border-radius:0}
html[data-appearance] .portal-shell .portal-nav a:hover{background:transparent;color:var(--accent);border-bottom-color:var(--line)}
html[data-appearance] .portal-shell .portal-header :focus-visible{outline-color:var(--accent)}
.portal-shell .portal-header-actions{gap:20px;margin-left:auto}
.cinema-help-link{color:var(--muted);white-space:nowrap;font-size:16px}
html[data-appearance] .portal-shell .portal-user-menu summary{border:0;background:var(--appearance-tint);padding:10px 15px;border-radius:24px}
html[data-appearance] .portal-shell .portal-page{max-width:1340px;width:100%;padding:44px 32px 0;margin:0 auto;min-height:calc(100vh - 92px)}
.portal-shell .portal-footer{margin-top:64px;padding-top:28px;font-size:14px;opacity:.85}
html[data-appearance] .portal-shell :is(.panel,.journey-current-material,.journey-book,.journey-next-action,.journey-progress-lesson,.journey-progress-book,.catalog-card){border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--cinema-shadow)}
html[data-appearance] .portal-shell :is(.btn,.scope-choice,.phrase-audio){border-radius:8px}
html[data-appearance] .portal-shell .btn{font-family:inherit;font-weight:600;font-size:17px;min-height:44px;padding:12px 20px}
.portal-shell .text-link{font-size:16px;text-underline-offset:4px}
.portal-shell .journey-eyebrow{font-size:11px;letter-spacing:.16em;font-weight:600;color:var(--muted)}
.portal-shell .journey-heading{align-items:center;margin-bottom:30px}
.portal-shell .journey-heading p{margin-top:14px;max-width:64ch}
.portal-shell .journey-page{max-width:none}
.portal-shell .journey-current-material{overflow:hidden}
html[data-appearance] .portal-shell .journey-resume{border:0;background:var(--panel);padding:30px;grid-template-columns:160px minmax(0,1fr);gap:30px;align-items:start}
.portal-shell .journey-resume-cover{grid-row:1 / span 2}
.portal-shell .journey-resume-action{grid-column:2;align-items:flex-start}
.portal-shell .journey-resume-bars{gap:15px}
.portal-shell .journey-resume-book-title{font-family:inherit;font-size:25px;font-weight:600}
.portal-shell .journey-resume-lesson{margin:12px 0}
.portal-shell .journey-resume-stage{font-size:16px}
.portal-shell .journey-contents{border-top:1px solid var(--line);padding:17px 28px}
.portal-shell .journey-material-footer{padding:16px 28px}
.portal-shell .journey-next-action{margin-top:22px;border-left:0;padding:28px}
.portal-shell .journey-next-action h2{margin:10px 0}
.cinema-dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:26px;align-items:start}
.cinema-dashboard-main{min-width:0}
.cinema-progress-aside{position:sticky;top:24px;padding:26px}
.cinema-progress-aside h2{margin-bottom:24px}
.cinema-progress-aside .journey-resume-progress{margin:22px 0}
.cinema-progress-aside .journey-progress-label{font-size:15px;gap:8px;flex-wrap:wrap}
.cinema-progress-aside .help{font-size:14px;line-height:1.6}
.cinema-progress-aside hr{margin:24px 0;border:0;border-top:1px solid var(--line)}
.portal-shell .journey-progress-track{height:7px;background:#e4e9e2;border-radius:10px}
.portal-shell .journey-progress-track span{border-radius:10px;background:var(--accent)}
.portal-shell .journey-book{padding:22px}
.portal-shell .journey-section{margin-top:32px}
.portal-shell .journey-progress-summary{background:transparent;border:0;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-shell .journey-progress-summary>div{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.portal-shell .journey-progress-summary strong{color:var(--accent);font-weight:500;font-size:32px}
.portal-shell .journey-progress-summary span{line-height:1.5}
.portal-shell .journey-progress-summary small{font-size:18px}
.cinema-retention{padding:26px;margin:24px 0}
.cinema-retention>p{margin:12px 0}
.cinema-blocks{padding:28px 0 32px;border-top:1px solid var(--line);margin-top:30px}
.cinema-blocks>p{color:var(--muted);margin:10px 0 20px}
.cinema-block-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.cinema-block-grid button{display:flex;flex-direction:column;text-align:left;gap:14px;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--text);cursor:pointer;font:inherit;min-height:142px}
.cinema-block-grid strong{font-size:20px;font-weight:600}
.cinema-block-grid small{color:var(--muted);font-size:11px;letter-spacing:.1em}
.cinema-block-grid span{font-size:14px;color:var(--muted)}
.cinema-block-grid button[aria-pressed="true"],.cinema-blocks button[aria-pressed="true"]{background:var(--appearance-tint);border-color:var(--accent)}
.portal-shell .scope-picker{margin:24px 0}
.portal-shell .scope-choice{padding:20px}
.portal-shell .lesson-overview-layout{grid-template-columns:minmax(0,1fr) 270px;gap:24px}
.portal-shell .lesson-phrase-panel{padding:24px}
.portal-shell .lesson-phrase-table th{font-size:11px;letter-spacing:.035em}
.portal-shell .lesson-phrase-table td{padding:20px 8px}
.portal-shell .phrase-copy>span{font-size:19px}
.portal-shell .phrase-copy p{font-size:15px;font-weight:400;color:var(--muted);margin-top:8px}
.portal-shell .phrase-audio{min-width:49px;font-size:13px;padding:7px;min-height:36px}
.portal-shell .phrase-select input{accent-color:var(--accent);width:18px;height:18px}
.portal-shell .lesson-progress-card{padding:24px}
.portal-shell .lesson-stage-toolbar{gap:14px;margin:22px 0}
.portal-shell .steps{font-size:14px}
.portal-shell .steps a{padding:12px 18px;min-height:44px}
.portal-shell .memory-page{max-width:none}
.portal-shell .memory-layout{grid-template-columns:minmax(0,1fr) 250px;gap:28px}
.portal-shell .memory-sidebar{grid-column:2;grid-row:1}
.portal-shell .memory-workspace{grid-column:1;grid-row:1}
.portal-shell :is(.cycle-check-workspace,.memory-finish){background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:32px}
.portal-shell .cycle-source{font-size:clamp(25px,2.5vw,38px);line-height:1.45}
.portal-shell .cycle-translation{color:var(--muted)}
.portal-shell .cycle-audio-options .btn span{display:none}
.portal-shell .cycle-audio-options .btn{padding:9px 14px;min-height:40px;gap:8px}
.portal-shell .cycle-audio-options{gap:10px}
.cinema-timer{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 22px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px}
.cinema-timer>div:first-child{display:flex;gap:20px;align-items:center;font-size:15px}
[data-learning-clock]{color:var(--muted);font-variant-numeric:tabular-nums}
[data-learning-reminder]:not([hidden]){display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line);flex-basis:100%}
[data-learning-reminder]>span{flex:1;font-size:15px}
.cinema-paused{opacity:.4;filter:blur(2px);pointer-events:none;user-select:none}
.cinema-session-setup,.cinema-session-result{max-width:920px;margin:24px auto;padding:40px!important}
.cinema-session-setup>p,.cinema-session-result>p{margin:18px 0;line-height:1.65}
.cinema-session-setup fieldset{border:0;padding:0;margin:30px 0}
.cinema-session-setup legend{font-weight:600;margin-bottom:16px}
.cinema-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cinema-options label{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:20px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.cinema-options label:has(input:checked){background:var(--appearance-tint);border-color:var(--accent)}
.cinema-options input{width:18px;height:18px;margin:3px 0;accent-color:var(--accent)}
.cinema-options small{grid-column:2;color:var(--muted);font-size:14px}
.cinema-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}
.cinema-fields label{display:grid;gap:10px;font-size:15px}
.cinema-fields select{width:100%;min-height:46px}
.cinema-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.cinema-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:32px 0}
.cinema-result-grid>div{padding:26px;border:1px solid var(--line);border-radius:12px;display:grid;gap:12px}
.cinema-result-grid strong{font-size:36px;color:var(--accent)}
.cinema-settings{margin:30px 0;padding:30px}
.cinema-settings h2{margin-top:8px}
.cinema-checkbox{display:flex;gap:10px;align-items:center}
.cinema-checkbox input{width:19px;height:19px;accent-color:var(--accent)}
.cinema-help-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}
.cinema-help-grid .panel{padding:28px}
.cinema-help-grid p{margin:16px 0;color:var(--muted);line-height:1.65}
.cinema-help-grid h2{font-size:24px!important}
.cinema-help>section{padding:28px}
.portal-shell .account-entry-card{max-width:550px;margin:50px auto;padding:42px;box-shadow:0 16px 70px #5a664610;position:relative}
.portal-page:has(.account-entry-card){background:linear-gradient(115deg,#f8f7f220,#f8f7f2e8 40%),url('assets/warm-studio.webp') left center/cover;border-radius:20px;max-width:1280px!important;margin:30px auto!important}
.portal-shell .journey-onboarding{max-width:900px;margin:25px auto;padding:44px;background:var(--panel);border:1px solid var(--line);border-radius:16px}
.cinema-start-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:30px 0}
.cinema-start-paths button{display:grid;align-content:start;gap:16px;text-align:left;font:inherit;background:var(--panel);color:var(--text);padding:24px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.cinema-start-paths button:hover{background:var(--appearance-tint);border-color:var(--accent)}
.cinema-start-paths strong{font-size:20px;font-weight:600}
.cinema-start-paths span{color:var(--muted);font-size:15px;line-height:1.5}
.learning-large-text .portal-shell :is(.phrase-copy>span,.cycle-source,.cycle-translation,#cycle-input,#review-answer){font-size:1.4em}
@media(min-width:1500px){html[data-appearance] .portal-shell{background:linear-gradient(90deg,#e4dfcc75 0,transparent 10%,transparent 90%,#e4dfcc30 100%)}.portal-shell .portal-page{background:var(--bg)}}
@media(max-width:1100px){html[data-appearance] .portal-shell .portal-header{gap:20px;padding:18px 24px}.portal-shell .portal-nav{gap:16px!important}.cinema-dashboard-grid{grid-template-columns:minmax(0,1fr) 245px}.portal-shell .lesson-overview-layout{grid-template-columns:1fr}.portal-shell .lesson-overview-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-shell .lesson-progress-card{grid-row:span 2}}
@media(max-width:820px){.cinema-dashboard-grid,.portal-shell .memory-layout{grid-template-columns:1fr}.cinema-progress-aside{position:static}.portal-shell .memory-sidebar,.portal-shell .memory-workspace{grid-column:auto;grid-row:auto}.portal-shell .memory-sidebar{order:2}.cinema-help-link{display:none}.cinema-fields{grid-template-columns:1fr}.cinema-options{grid-template-columns:1fr}.cinema-start-paths{grid-template-columns:1fr}.cinema-start-paths button{padding:22px}.cinema-help-grid{grid-template-columns:1fr}.portal-shell .journey-progress-summary{grid-template-columns:1fr}}
@media(max-width:600px){html[data-appearance] .portal-shell .portal-header{padding:14px 16px;min-height:76px;gap:8px}.portal-shell .portal-header-actions{gap:8px}html[data-appearance] .portal-shell .portal-header .brand{font-size:25px}html[data-appearance] .portal-shell .portal-page{padding:26px 16px 0}.portal-shell .portal-user-menu summary{max-width:130px!important;padding:8px!important}.portal-shell .journey-resume{grid-template-columns:85px minmax(0,1fr)!important;padding:22px!important;gap:16px!important}.portal-shell .journey-resume-action{grid-column:1 / -1}.portal-shell .journey-resume-cover{grid-row:1}.portal-shell .journey-resume-book-title{font-size:21px}.portal-shell .lesson-overview-sidebar{display:block}.portal-shell .lesson-phrase-panel{padding:18px 14px}.portal-shell .lesson-phrase-table td{padding:10px 6px}.cinema-session-setup,.cinema-session-result{padding:24px!important}.cinema-result-grid{grid-template-columns:1fr}.cinema-timer{padding:14px}.cinema-timer>div:first-child{gap:10px;flex-wrap:wrap}.cinema-settings{padding:22px}.portal-shell .journey-onboarding{padding:26px 20px}.portal-shell .account-entry-card{padding:28px 22px;margin:20px auto}.cinema-blocks .section-head{align-items:flex-start;gap:14px;flex-wrap:wrap}.portal-shell :is(.cycle-check-workspace,.memory-finish){padding:22px}.portal-page:has(.account-entry-card){margin:0!important}.portal-shell .portal-footer{gap:16px}}
@media(prefers-reduced-motion:reduce){.portal-shell *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
