

/* Self-hosted FTE fonts. See assets/fonts/NOTICE.md and OFL files. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: optional;
  src: url(fonts/dm-sans-variable-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: optional;
  src: url(fonts/dm-sans-variable-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/instrument-serif-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/instrument-serif-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/instrument-serif-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/instrument-serif-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* FTE notebook palette. Keep typography, surfaces and state colours within this scope. */
body.fgl-product-page { margin:0; background:#f7f8fb; }
.fgl-app { --fgl-ink:#1c244b; --fgl-blue:#2563eb; --fgl-blue-soft:#edf3ff; --fgl-canvas:#f7f8fb; --fgl-paper:#fff; --fgl-muted:#5c6782; --fgl-line:#e4e8f1; --fgl-input:#f7f9fc; --fgl-good:#176647; --fgl-good-soft:#eaf6ef; --fgl-warn:#943e2e; --fgl-warn-soft:#fff1eb; --fgl-hero:#eef3fb; --fgl-button:#1c244b; --fgl-on-button:#fff; font:400 15px/1.6 'DM Sans',sans-serif; color:var(--fgl-ink); background:var(--fgl-canvas); min-height:100vh; -webkit-font-smoothing:antialiased; }
.fgl-app[data-theme=dark] { --fgl-ink:#e4e9fa; --fgl-blue:#96b6ff; --fgl-blue-soft:#253453; --fgl-canvas:#151c2c; --fgl-paper:#192235; --fgl-muted:#b0bcd3; --fgl-line:#34415b; --fgl-input:#141d30; --fgl-good:#a3dbc1; --fgl-good-soft:#1f3a35; --fgl-warn:#ffc0ab; --fgl-warn-soft:#3a2b2c; --fgl-hero:#22304a; --fgl-button:#aac3ff; --fgl-on-button:#142345; color-scheme:dark; }
@media(prefers-color-scheme:dark) { .fgl-app[data-theme=system] { --fgl-ink:#e4e9fa; --fgl-blue:#96b6ff; --fgl-blue-soft:#253453; --fgl-canvas:#151c2c; --fgl-paper:#192235; --fgl-muted:#b0bcd3; --fgl-line:#34415b; --fgl-input:#141d30; --fgl-good:#a3dbc1; --fgl-good-soft:#1f3a35; --fgl-warn:#ffc0ab; --fgl-warn-soft:#3a2b2c; --fgl-hero:#22304a; --fgl-button:#aac3ff; --fgl-on-button:#142345; color-scheme:dark; } }
.fgl-app *, .fgl-app *::before,.fgl-app *::after { box-sizing:border-box; }
.fgl-app h1,.fgl-app h2,.fgl-app h3,.fgl-app p { margin-top:0; }
.fgl-app h1 { color:var(--fgl-ink); font-size:clamp(30px,3.2vw,42px); font-weight:700; line-height:1.16; letter-spacing:-.045em; margin-bottom:16px; text-wrap:balance; }
.fgl-app h2 { color:var(--fgl-ink); font-size:21px; line-height:1.3; letter-spacing:-.025em; font-weight:700; }
.fgl-app h3 { color:var(--fgl-ink); font-size:17px; font-weight:700; }
.fgl-app p { text-wrap:pretty; }
.fgl-app button,.fgl-app input,.fgl-app select,.fgl-app textarea { font-family:inherit; }
.fgl-app button { cursor:pointer; }
.fgl-app :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid var(--fgl-blue); outline-offset:4px; }
.fgl-app :is(main,section)[tabindex='-1']:focus { outline:none; }
.fgl-app button:disabled { opacity:.5; cursor:not-allowed; }
.fgl-app a { color:var(--fgl-blue); text-underline-offset:4px; }
.fgl-app svg { display:inline-block; flex-shrink:0; vertical-align:middle; }
.fgl-sr { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.fgl-skip { position:absolute; z-index:30; padding:12px 20px; background:var(--fgl-paper); transform:translateY(-150%); }.fgl-skip:focus { transform:translateY(0); }
.fgl-shell { display:grid; grid-template-columns:242px minmax(0,1fr); max-width:1640px; margin:auto; min-height:100vh; background:var(--fgl-canvas); }
.fgl-sidebar { padding:34px 18px 24px; border-right:1px solid var(--fgl-line); display:flex; flex-direction:column; min-height:100vh; }
.fgl-wordmark { padding:0 13px 42px; line-height:1.05; }.fgl-wordmark-main { display:block; max-width:180px; font-size:23px; font-weight:800; letter-spacing:-.07em; }.fgl-wordmark-main>span:not(.fgl-wordmark-dot) { display:block; color:var(--fgl-blue); }.fgl-wordmark-dot { color:var(--fgl-blue); }.fgl-wordmark small { display:block; margin-top:12px; color:var(--fgl-muted); font-size:10px; font-weight:600; letter-spacing:.06em; }
.fgl-nav { display:grid; gap:6px; }.fgl-nav-item { display:flex; align-items:center; gap:12px; min-height:48px; width:100%; padding:12px 14px; border:0; border-radius:9px; text-align:left; background:transparent; color:var(--fgl-muted); font-size:13px; font-weight:600; transition:background-color .15s,color .15s; }.fgl-nav-item.is-active { color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-nav-item:hover { background:var(--fgl-blue-soft); color:var(--fgl-ink); }.fgl-nav-item b { display:flex; align-items:center; justify-content:center; margin-left:auto; min-width:23px; height:23px; border-radius:7px; background:var(--fgl-paper); font-size:11px; font-weight:700; }
.fgl-sidebar-note { padding:72px 16px 40px; margin-top:auto; }.fgl-mini-line { width:24px; height:2px; display:block; background:var(--fgl-blue); margin-bottom:18px; }.fgl-sidebar-note p { font-family:'Instrument Serif',serif; font-size:25px; line-height:1.2; margin-bottom:12px; }.fgl-sidebar-note>span:last-child { color:var(--fgl-muted); font-size:11px; }.fgl-sidebar-foot { border-top:1px solid var(--fgl-line); padding:22px 14px 0; display:flex; align-items:center; gap:8px; color:var(--fgl-muted); font-size:11px; }.fgl-dot { width:6px; height:6px; border-radius:50%; background:var(--fgl-good); }
.fgl-workspace { min-width:0; }.fgl-topbar { display:flex; justify-content:space-between; align-items:center; min-height:80px; padding:0 48px; border-bottom:1px solid var(--fgl-line); }.fgl-topbar-label { font-size:12px; color:var(--fgl-muted); }.fgl-profile-link { display:flex; gap:10px; align-items:center; border:0; background:transparent; color:var(--fgl-ink); font-size:12px; font-weight:600; min-height:48px; }.fgl-avatar { display:inline-flex; justify-content:center; align-items:center; width:36px; height:36px; object-fit:cover; border-radius:50%; flex-shrink:0; font-size:12px; font-weight:700; background:#e6eaf3; color:#28385c; }.fgl-avatar--blue { background:#dae7ff; color:#2257ac; }.fgl-avatar--navy { background:#1c244b; color:white; }.fgl-avatar--rose { background:#f7e4ec; color:#8d3b5a; }.fgl-avatar--green { background:#dcefe5; color:#1e654a; }.fgl-avatar--gold { background:#f2e6c8; color:#785910; }
.fgl-main { width:100%; max-width:1210px; margin:auto; padding:44px 48px 76px; }.fgl-kicker { color:var(--fgl-blue); font-size:10px; font-weight:800; letter-spacing:.14em; margin-bottom:12px; }.fgl-eyebrow { display:block; font-size:10px; letter-spacing:.09em; font-weight:700; color:var(--fgl-muted); }.fgl-page-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:30px; }.fgl-page-heading h1 { margin-bottom:0; }.fgl-heading-note { color:var(--fgl-muted); font-size:12px; padding-bottom:3px; }.fgl-lead { max-width:720px; color:var(--fgl-muted); font-size:15px; line-height:1.7; margin-bottom:32px; }.fgl-small { color:var(--fgl-muted); font-size:12px; }
.fgl-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; padding:12px 19px; border:1px solid var(--fgl-button); border-radius:8px; background:var(--fgl-button); color:var(--fgl-on-button)!important; font-weight:700; font-size:13px; line-height:1.3; text-decoration:none!important; transition:transform .12s,opacity .12s,background-color .12s; }.fgl-button:hover:not(:disabled) { opacity:.88; }.fgl-button:active:not(:disabled) { transform:scale(.98); }.fgl-button--quiet { background:var(--fgl-paper); color:var(--fgl-ink)!important; border-color:var(--fgl-line); }.fgl-button--quiet:hover:not(:disabled) { background:var(--fgl-blue-soft); opacity:1; }.fgl-button--purchase { background:#e9ba3e; color:#1c244b!important; border:1px solid #1c244b; }.fgl-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }.fgl-text-button { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:8px 0; background:transparent; border:0; color:var(--fgl-blue); font-size:12px; font-weight:700; text-align:left; }.fgl-text-button:hover { text-decoration:underline; text-underline-offset:4px; }.fgl-text-button svg { width:16px; }
.fgl-hero { display:grid; grid-template-columns:minmax(0,1fr) 190px; align-items:center; gap:24px; padding:34px 40px; border:1px solid var(--fgl-line); border-radius:16px; background:var(--fgl-hero); overflow:hidden; }.fgl-hero h2 { font-family:'Instrument Serif',serif; font-size:clamp(36px,4.3vw,53px); font-weight:400; line-height:1.04; letter-spacing:-.035em; margin:16px 0 17px; }.fgl-hero p { max-width:470px; color:var(--fgl-muted); font-size:14px; line-height:1.7; margin-bottom:0; }.fgl-hero .fgl-actions { margin-top:23px; }.fgl-hero-meta { font-size:11px; color:var(--fgl-muted); margin-top:15px; }.fgl-margaux { width:170px; height:194px; object-fit:contain; justify-self:center; }
.fgl-session-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:22px 6px 28px; border-bottom:1px solid var(--fgl-line); }.fgl-session-steps>div { display:flex; gap:12px; align-items:center; }.fgl-session-steps>div>span { color:var(--fgl-blue); border:1px solid var(--fgl-line); background:var(--fgl-paper); display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; font-size:10px; font-weight:700; }.fgl-session-steps strong { display:block; font-size:12px; font-weight:700; }.fgl-session-steps small { font-size:11px; color:var(--fgl-muted); }
.fgl-today-grid { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(220px,1fr); gap:32px; margin-top:30px; }.fgl-section-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:8px; }.fgl-section-heading h2 { margin:0; font-size:18px; }.fgl-focus-row { width:100%; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 0; border:0; border-bottom:1px solid var(--fgl-line); color:var(--fgl-ink); background:transparent; text-align:left; }.fgl-focus-row>span { display:grid; gap:3px; }.fgl-focus-row small { color:var(--fgl-blue); font-size:10px; font-weight:700; }.fgl-focus-row strong { font-size:14px; line-height:1.45; }.fgl-focus-row span span { color:var(--fgl-muted); font-size:11px; line-height:1.5; }.fgl-focus-row>svg { color:var(--fgl-muted); width:17px; }.fgl-focus-row:hover strong { color:var(--fgl-blue); }.fgl-review-note { background:var(--fgl-paper); border:1px solid var(--fgl-line); padding:24px; border-radius:12px; }.fgl-review-note>strong { display:block; font-size:44px; font-weight:500; line-height:1; letter-spacing:-.05em; margin:20px 0 8px; font-variant-numeric:tabular-nums; }.fgl-review-note h2 { font-size:14px; }.fgl-review-note p { font-size:12px; color:var(--fgl-muted); }.fgl-review-note .fgl-button { width:100%; margin-top:5px; }
.fgl-empty-note { padding:24px 0; color:var(--fgl-muted); }.fgl-empty-note p { font-size:14px; margin-bottom:8px; }.fgl-empty-note>span { font-size:12px; }.fgl-week { display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid var(--fgl-line); margin-top:34px; padding-top:26px; }.fgl-week strong { display:block; font-size:18px; margin:5px 0; }.fgl-week p { color:var(--fgl-muted); font-size:11px; margin:0; }.fgl-week-days { display:flex; gap:9px; }.fgl-week-days>div { display:flex; align-items:center; flex-direction:column; gap:7px; font-size:10px; color:var(--fgl-muted); }.fgl-week-days b { display:flex; align-items:center; justify-content:center; width:32px; height:32px; border:1px solid var(--fgl-line); border-radius:50%; background:var(--fgl-paper); font-size:16px; }.fgl-week-days .is-done b { color:var(--fgl-good); border-color:transparent; background:var(--fgl-good-soft); }.fgl-week-days svg { width:16px; }
.fgl-oral-invite { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:30px; padding:26px; border:1px solid var(--fgl-line); background:var(--fgl-paper); border-radius:12px; }.fgl-oral-invite>div>svg { float:left; margin:4px 14px 18px 0; color:var(--fgl-blue); }.fgl-oral-invite h2 { font-size:15px; margin-bottom:6px; }.fgl-oral-invite p { font-size:12px; color:var(--fgl-muted); margin-bottom:0; }
/* Curriculum and retention record. */
.fgl-path-overview { display:flex; align-items:center; gap:35px; padding:24px 0; border-block:1px solid var(--fgl-line); margin:28px 0; }.fgl-path-overview>strong { font-size:28px; font-weight:500; line-height:1.2; font-variant-numeric:tabular-nums; }.fgl-path-overview strong>span { display:block; color:var(--fgl-muted); font-size:11px; font-weight:500; margin-top:6px; }.fgl-path-overview p { max-width:260px; color:var(--fgl-muted); font-size:12px; margin:0 0 0 auto; }.fgl-filters { display:grid; grid-template-columns:minmax(190px,1.5fr) 1fr 1fr; gap:10px; }.fgl-filters label { min-width:0; }.fgl-filters select,.fgl-filters input { width:100%; min-height:46px; border:1px solid var(--fgl-line); background:var(--fgl-paper); color:var(--fgl-ink); border-radius:8px; font-size:12px; padding:10px 13px; }.fgl-search { display:flex; position:relative; align-items:center; }.fgl-search svg { position:absolute; left:14px; width:16px; color:var(--fgl-muted); }.fgl-search input { padding-left:39px; }.fgl-result-heading { display:flex; justify-content:space-between; color:var(--fgl-muted); font-size:11px; margin:22px 0 12px; }.fgl-result-heading p { margin:0; font-weight:700; }.fgl-path-list { border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); overflow:hidden; }.fgl-path-row { display:flex; align-items:center; gap:18px; text-align:left; color:var(--fgl-ink); background:transparent; border:0; border-bottom:1px solid var(--fgl-line); padding:21px 22px; width:100%; }.fgl-path-row:last-child { border-bottom:0; }.fgl-path-row:hover { background:var(--fgl-blue-soft); }.fgl-path-number { color:var(--fgl-muted); font-size:11px; font-variant-numeric:tabular-nums; }.fgl-path-copy { flex:1; min-width:0; display:grid; gap:4px; }.fgl-path-copy>strong { font-size:14px; font-weight:700; }.fgl-path-copy>span:last-child { font-size:11px; color:var(--fgl-muted); }.fgl-path-row>svg { width:17px; color:var(--fgl-muted); }.fgl-status { display:inline-flex; flex-shrink:0; border-radius:5px; padding:4px 8px; background:var(--fgl-canvas); color:var(--fgl-muted); font-size:10px; font-weight:700; white-space:nowrap; }.fgl-status--acquired { background:var(--fgl-good-soft); color:var(--fgl-good); }.fgl-status--refresh,.fgl-status--supported { background:var(--fgl-warn-soft); color:var(--fgl-warn); }.fgl-status--recall,.fgl-status--consolidating { background:var(--fgl-blue-soft); color:var(--fgl-blue); }.fgl-pagination { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:24px; font-size:12px; color:var(--fgl-muted); }.fgl-detail-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr); gap:24px; }.fgl-lesson { background:var(--fgl-paper); padding:24px; border:1px solid var(--fgl-line); border-radius:12px; align-self:start; }.fgl-lesson-copy { color:var(--fgl-muted); font-size:14px; line-height:1.85; }.fgl-lesson-copy p { margin:18px 0; white-space:pre-line; }.fgl-lesson blockquote { margin:23px 0; padding:0 0 0 16px; border-left:2px solid var(--fgl-blue); font:italic 26px/1.35 'Instrument Serif',serif; color:var(--fgl-ink); }.fgl-guide-link { display:inline-block; font-size:12px; font-weight:700; padding:8px 0; }.fgl-lesson--full { padding:30px; }.fgl-lesson--full>.fgl-small { margin:16px 0 0; }.fgl-lesson summary { cursor:pointer; min-height:44px; }.fgl-lesson summary strong { display:block; font-size:17px; margin:7px 0; }.fgl-lesson summary>span:last-child { color:var(--fgl-blue); font-size:12px; }.fgl-evidence { padding:25px; background:var(--fgl-canvas); border:1px solid var(--fgl-line); border-radius:12px; align-self:start; }.fgl-evidence .fgl-status { margin:14px 0; }.fgl-evidence p { color:var(--fgl-muted); font-size:12px; }.fgl-evidence dl { margin:22px 0; }.fgl-evidence dl>div { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--fgl-line); font-size:11px; }.fgl-evidence dt { color:var(--fgl-muted); }.fgl-evidence dd { margin:0; font-weight:700; }.fgl-prerequisites { margin-top:30px; }.fgl-prerequisites .fgl-text-button { margin-right:24px; }
/* Practice has one clear prompt, followed by one clear next action. */
.fgl-practice-top { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--fgl-muted); font-size:12px; }.fgl-back { display:inline-flex; align-items:center; min-height:44px; padding:8px 0; margin-bottom:12px; background:transparent; border:0; color:var(--fgl-muted); font-size:12px; font-weight:600; }.fgl-back:hover { color:var(--fgl-blue); }.fgl-progress-track { height:5px; background:var(--fgl-line); border-radius:4px; margin:8px 0 44px; overflow:hidden; }.fgl-progress-track>span { display:block; height:100%; background:var(--fgl-blue); border-radius:4px; }.fgl-timer { font-variant-numeric:tabular-nums; font-size:12px; }.fgl-exercise-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(230px,1fr); gap:36px; }.fgl-exercise h1 { font-size:clamp(27px,3vw,37px); line-height:1.35; margin:18px 0 30px; letter-spacing:-.035em; }.fgl-selection-reason { font-size:11px; color:var(--fgl-muted); }.fgl-choices { display:grid; gap:10px; }.fgl-choice { display:flex; align-items:center; gap:16px; width:100%; min-height:59px; padding:12px 16px; text-align:left; border:1px solid var(--fgl-line); border-radius:9px; color:var(--fgl-ink); background:var(--fgl-paper); font-size:15px; font-weight:600; }.fgl-choice-key { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:25px; height:25px; border:1px solid var(--fgl-line); border-radius:5px; font-size:10px; color:var(--fgl-muted); }.fgl-choice:hover:not(:disabled),.fgl-choice.is-selected { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-choice.is-selected:disabled { opacity:1; }.fgl-choice>svg { margin-left:auto; color:var(--fgl-blue); }.fgl-answer-form label { display:block; font-size:12px; font-weight:700; margin-bottom:9px; }.fgl-answer-form textarea { width:100%; display:block; resize:vertical; min-height:110px; padding:16px; border:1px solid var(--fgl-line); border-radius:9px; background:var(--fgl-input); color:var(--fgl-ink); line-height:1.6; }.fgl-input-note { font-size:10px; color:var(--fgl-muted); margin:12px 0 22px; }.fgl-recall-note { padding:23px; border:1px dashed var(--fgl-line); border-radius:12px; align-self:start; }.fgl-recall-note h2 { font-family:'Instrument Serif',serif; font-size:28px; font-weight:400; margin:14px 0; }.fgl-recall-note p { color:var(--fgl-muted); font-size:12px; }.fgl-recall-note .fgl-button { font-size:11px; padding-inline:12px; }.fgl-feedback { margin-top:26px; padding:22px; border-radius:12px; background:var(--fgl-good-soft); border:1px solid var(--fgl-line); }.fgl-feedback.is-incorrect { background:var(--fgl-warn-soft); }.fgl-feedback-heading { display:flex; align-items:center; gap:10px; color:var(--fgl-good); }.fgl-feedback.is-incorrect .fgl-feedback-heading { color:var(--fgl-warn); }.fgl-feedback-heading>strong { font-size:16px; }.fgl-feedback>p { margin:13px 0; font-size:13px; line-height:1.7; }.fgl-feedback .fgl-actions { margin-top:20px; }.fgl-answer-key { padding-top:12px; }.fgl-answer-key span { display:block; color:var(--fgl-muted); font-size:10px; margin-bottom:5px; }.fgl-answer-key strong { font-size:16px; }.fgl-coach { margin-top:22px; padding-top:20px; border-top:1px solid var(--fgl-line); font-size:13px; }.fgl-coach p { margin:10px 0; }.fgl-coach blockquote { margin:16px 0; font-weight:600; }.fgl-coach small { display:block; color:var(--fgl-muted); font-size:10px; }.fgl-finish { max-width:670px; margin:0 auto; text-align:center; padding:22px 0; }.fgl-finish img { object-fit:contain; width:112px; height:128px; margin-bottom:23px; }.fgl-finish p { color:var(--fgl-muted); }.fgl-finish .fgl-actions { justify-content:center; }.fgl-result-note { display:grid; gap:6px; padding:21px; margin:26px 0; text-align:left; border:1px solid var(--fgl-line); border-radius:10px; background:var(--fgl-paper); }.fgl-result-note strong { font-size:14px; }.fgl-result-note span { font-size:12px; color:var(--fgl-muted); }
.fgl-practice-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }.fgl-practice-card { background:var(--fgl-paper); border:1px solid var(--fgl-line); border-radius:12px; padding:25px; display:flex; flex-direction:column; align-items:flex-start; }.fgl-card-icon { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; background:var(--fgl-blue-soft); color:var(--fgl-blue); margin-bottom:24px; }.fgl-practice-card h2 { font-size:17px; margin-bottom:12px; }.fgl-practice-card p { color:var(--fgl-muted); font-size:12px; margin-bottom:24px; }.fgl-practice-card .fgl-button { margin-top:auto; width:100%; font-size:12px; }.fgl-mistakes { margin-top:40px; }.fgl-history { margin-top:38px; }.fgl-history-list { margin-top:15px; border-top:1px solid var(--fgl-line); }.fgl-history-row { border-bottom:1px solid var(--fgl-line); }.fgl-history-row>summary { display:flex; justify-content:space-between; gap:20px; min-height:76px; padding:18px 0; cursor:pointer; font-size:12px; }.fgl-history-row>summary strong,.fgl-history-row>summary small { display:block; }.fgl-history-row>summary small { margin-top:5px; color:var(--fgl-muted); font-size:10px; }.fgl-history-row>div { padding:0 0 20px; font-size:13px; }.fgl-good { color:var(--fgl-good); }.fgl-needs-work { color:var(--fgl-warn); }.fgl-progress-summary { display:flex; align-items:center; justify-content:space-between; gap:35px; border:1px solid var(--fgl-line); border-radius:12px; padding:30px; background:var(--fgl-paper); }.fgl-progress-summary>div:first-child>strong { display:block; font-size:64px; font-weight:500; line-height:1.1; margin:15px 0; font-variant-numeric:tabular-nums; letter-spacing:-.06em; }.fgl-progress-summary>div:first-child>strong small { font-size:27px; color:var(--fgl-muted); }.fgl-progress-summary p { font-size:12px; color:var(--fgl-muted); margin:0; }.fgl-starting-point { display:grid; gap:7px; max-width:230px; border-left:1px solid var(--fgl-line); padding-left:28px; }.fgl-starting-point span { font-size:11px; color:var(--fgl-muted); }.fgl-starting-point strong { font-size:26px; }.fgl-starting-point small { font-size:10px; color:var(--fgl-muted); }.fgl-level-progress { padding:25px 0; }.fgl-level-progress>div { display:grid; grid-template-columns:200px 1fr 45px; align-items:center; gap:24px; min-height:50px; font-size:12px; }.fgl-level-progress strong { margin-right:10px; color:var(--fgl-blue); }.fgl-level-progress meter { width:100%; height:9px; border:0; border-radius:9px; overflow:hidden; background:var(--fgl-line); }.fgl-level-progress meter::-webkit-meter-bar { border:0; background:var(--fgl-line); }.fgl-level-progress meter::-webkit-meter-optimum-value { background:var(--fgl-blue); border-radius:9px; }.fgl-level-progress meter::-moz-meter-bar { background:var(--fgl-blue); }.fgl-acquisition-guide { background:var(--fgl-paper); border:1px solid var(--fgl-line); padding:18px 22px; border-radius:10px; color:var(--fgl-muted); font-size:12px; }.fgl-acquisition-guide summary { color:var(--fgl-ink); font-weight:700; min-height:30px; cursor:pointer; }.fgl-acquisition-guide li { padding:7px 0; }.fgl-acquisition-guide p { margin-bottom:0; }
/* Account sections share a label column and generous, native form controls. */
.fgl-settings>section { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(0,1.4fr); gap:40px; padding:32px 0; border-top:1px solid var(--fgl-line); }.fgl-settings-heading h2 { font-size:17px; margin:0 0 8px; }.fgl-settings-heading p { color:var(--fgl-muted); font-size:12px; }.fgl-settings-fields { min-width:0; }.fgl-settings-fields>label:not(.fgl-check) { display:block; font-size:12px; font-weight:700; margin-bottom:8px; }.fgl-settings-fields>input:not([type=checkbox]):not([type=radio]),.fgl-settings-fields>select { display:block; width:100%; min-height:46px; border:1px solid var(--fgl-line); border-radius:8px; padding:11px 13px; background:var(--fgl-input); color:var(--fgl-ink); font-size:13px; margin-bottom:22px; }.fgl-settings-fields input[type=file] { padding:10px 0!important; background:transparent!important; border:0!important; font-size:11px!important; }.fgl-settings fieldset { border:0; margin:22px 0; padding:0; min-width:0; }.fgl-settings legend { font-size:12px; font-weight:700; margin-bottom:10px; padding:0; }.fgl-avatar-options { display:flex; flex-wrap:wrap; gap:8px; }.fgl-avatar-options>label { display:flex; flex-direction:column; align-items:center; gap:7px; padding:8px; min-width:52px; border:1px solid transparent; border-radius:8px; font-size:9px; color:var(--fgl-muted); cursor:pointer; position:relative; }.fgl-avatar-options label:has(input:checked) { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); color:var(--fgl-blue); }.fgl-avatar-options input { position:absolute; opacity:0; width:1px; height:1px; }.fgl-avatar-options label:has(input:focus-visible) { outline:3px solid var(--fgl-blue); outline-offset:2px; }.fgl-avatar-preview { display:flex; align-items:center; gap:14px; margin-bottom:25px; }.fgl-avatar-preview .fgl-avatar { width:58px; height:58px; font-size:18px; }.fgl-avatar-preview strong { display:block; font-size:15px; }.fgl-avatar-preview span:not(.fgl-avatar) { display:block; font-size:11px; color:var(--fgl-muted); }.fgl-check { display:flex; align-items:flex-start; gap:12px; min-height:44px; padding:9px 0; font-size:12px; font-weight:600; cursor:pointer; }.fgl-check input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--fgl-blue); flex-shrink:0; }.fgl-check small { display:block; color:var(--fgl-muted); font-size:10px; font-weight:400; margin-top:5px; }.fgl-help { font-size:11px; color:var(--fgl-muted); margin:-12px 0 22px; }.fgl-save { display:flex; align-items:center; gap:20px; padding:22px 0 35px; }.fgl-save>span { font-size:12px; color:var(--fgl-good); }.fgl-account-admin { display:grid; grid-template-columns:1fr 1fr; gap:30px; border-top:1px solid var(--fgl-line); padding-top:30px; }.fgl-account-admin h2 { font-size:17px; }.fgl-account-admin p { color:var(--fgl-muted); font-size:12px; }.fgl-account-links { display:flex; flex-direction:column; align-items:flex-start; }.fgl-account-links>a { padding:10px 0; min-height:44px; font-size:12px; font-weight:600; }.fgl-privacy-confirm { padding:18px; border:1px solid var(--fgl-line); background:var(--fgl-paper); border-radius:8px; margin-top:15px; }
.fgl-alert,.fgl-notice { padding:16px 20px; border-radius:9px; border:1px solid var(--fgl-line); margin-bottom:24px; font-size:13px; }.fgl-alert { color:var(--fgl-warn); background:var(--fgl-warn-soft); }.fgl-notice { color:var(--fgl-good); background:var(--fgl-good-soft); }.fgl-loading { padding:100px 24px; text-align:center; color:var(--fgl-muted); }.fgl-loading-mark { display:inline-block; width:26px; height:26px; border:2px solid var(--fgl-line); border-top-color:var(--fgl-blue); border-radius:50%; animation:fgl-spin 1s linear infinite; }.fgl-loading p { margin-top:18px; font-size:13px; }@keyframes fgl-spin { to {transform:rotate(360deg)} }
.fgl-voice-panel { padding:26px; border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); margin-top:25px; }.fgl-voice-panel h2 { font-size:21px; }.fgl-voice-panel p { color:var(--fgl-muted); font-size:13px; }.fgl-voice-panel label { display:block; color:var(--fgl-ink); font-size:12px; font-weight:600; margin:15px 0 7px; }.fgl-voice-panel select { width:100%; max-width:480px; display:block; min-height:46px; padding:10px 13px; color:var(--fgl-ink); background:var(--fgl-input); border:1px solid var(--fgl-line); border-radius:8px; margin:8px 0 16px; }.fgl-voice-transcript { max-height:360px; overflow:auto; padding:20px; background:var(--fgl-canvas); border:1px solid var(--fgl-line); border-radius:8px; margin-top:24px; }.fgl-voice-transcript p { margin:12px 0; }.fgl-voice-recap { margin-top:24px; padding-top:20px; border-top:1px solid var(--fgl-line); }.fgl-voice-recap li { margin:12px 0; }.fgl-voice-panel [role=status] { margin:20px 0; font-size:12px; color:var(--fgl-blue); }
.fgl-app #fgl-billing-source { --sc-color-primary-500:#2563eb; --sc-color-primary-600:#1c244b; font-family:'DM Sans',sans-serif; }.fgl-app #fgl-billing-source[hidden] { display:none!important; }
.fgl-login { max-width:500px; margin:80px auto; padding:36px; border:1px solid #e4e8f1; border-radius:15px; background:#fff; color:#1c244b; font:14px/1.65 'DM Sans',sans-serif; }.fgl-login h1 { font-size:32px; letter-spacing:-.04em; line-height:1.2; }.fgl-login h2 { font-size:21px; }.fgl-login form label { display:block; font-size:12px; font-weight:700; margin-bottom:7px; }.fgl-login input:not([type=checkbox]):not([type=submit]) { width:100%; min-height:46px; margin-bottom:17px; border:1px solid #dce2ef; border-radius:7px; background:#f7f9fc; padding:10px 13px; font:inherit; }.fgl-login button,.fgl-login input[type=submit],.fgl-login-link { display:inline-flex; justify-content:center; min-height:46px; align-items:center; padding:11px 20px; border:0; border-radius:8px; color:#fff!important; background:#1c244b; font:700 13px 'DM Sans',sans-serif; cursor:pointer; text-decoration:none; }.fgl-login a { color:#2563eb; }.fgl-login details { border-top:1px solid #e4e8f1; margin-top:22px; padding-top:18px; }.fgl-login summary { cursor:pointer; min-height:44px; font-weight:700; }
.fgl-large-type { font-size:17px; }.fgl-large-type .fgl-lead,.fgl-large-type .fgl-lesson-copy,.fgl-large-type .fgl-feedback>p { font-size:17px; }.fgl-large-type .fgl-path-copy>strong,.fgl-large-type .fgl-focus-row strong { font-size:16px; }.fgl-large-type .fgl-path-copy>span:last-child,.fgl-large-type .fgl-focus-row span span,.fgl-large-type .fgl-small,.fgl-large-type .fgl-settings-fields>label:not(.fgl-check) { font-size:14px; }
@media(max-width:1150px) { .fgl-shell { grid-template-columns:202px minmax(0,1fr); }.fgl-main { padding:36px 30px 60px; }.fgl-topbar { padding-inline:30px; }.fgl-heading-note { display:none; }.fgl-hero { padding:30px; grid-template-columns:minmax(0,1fr) 140px; }.fgl-margaux { width:140px; }.fgl-today-grid { gap:24px; }.fgl-exercise-layout { grid-template-columns:minmax(0,1.4fr) minmax(210px,1fr); gap:22px; }.fgl-wordmark-main { font-size:21px; }.fgl-settings>section { gap:24px; } }
@media(max-width:900px) { .fgl-shell { grid-template-columns:180px minmax(0,1fr); }.fgl-sidebar { padding-inline:12px; }.fgl-nav-item { font-size:12px; padding-inline:10px; gap:9px; }.fgl-main { padding:30px 24px 60px; }.fgl-topbar { padding-inline:24px; }.fgl-hero { grid-template-columns:1fr 100px; padding:26px; }.fgl-margaux { width:108px; }.fgl-today-grid,.fgl-detail-grid,.fgl-exercise-layout { grid-template-columns:1fr; }.fgl-review-note { display:grid; grid-template-columns:auto 1fr auto; gap:4px 20px; align-items:center; }.fgl-review-note>.fgl-eyebrow { grid-column:1/-1; }.fgl-review-note>strong { grid-row:2/4; margin:12px 0 0; }.fgl-review-note h2 { margin:12px 0 0; }.fgl-review-note p { grid-column:2; margin:0; }.fgl-review-note .fgl-button { grid-column:3; grid-row:2/4; }.fgl-filters { grid-template-columns:1fr 1fr; }.fgl-filters .fgl-search { grid-column:1/-1; }.fgl-result-heading>span { display:none; }.fgl-path-overview { gap:24px; flex-wrap:wrap; }.fgl-path-overview p { flex:1 1 100%; max-width:none; }.fgl-settings>section { grid-template-columns:1fr; gap:15px; }.fgl-week { align-items:flex-start; flex-direction:column; gap:20px; }.fgl-week-days { width:100%; justify-content:space-between; }.fgl-session-steps { gap:10px; }.fgl-session-steps small { display:none; }.fgl-oral-invite { flex-direction:column; align-items:flex-start; }.fgl-path-row { gap:12px; padding:18px; }.fgl-path-copy>span:last-child { display:none; }.fgl-path-row>svg { display:none; }.fgl-level-progress>div { grid-template-columns:150px 1fr 40px; gap:12px; } }
@media(max-width:680px) { .fgl-shell { display:block; }.fgl-sidebar { display:block; min-height:0; padding:20px 18px 0; border-right:0; border-bottom:1px solid var(--fgl-line); }.fgl-wordmark { padding:0 0 17px; }.fgl-wordmark-main { font-size:19px; max-width:none; letter-spacing:-.055em; }.fgl-wordmark-main>span:not(.fgl-wordmark-dot) { display:inline; }.fgl-wordmark small,.fgl-sidebar-note,.fgl-sidebar-foot { display:none; }.fgl-nav { grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; padding-bottom:9px; }.fgl-nav-item { flex-direction:column; gap:5px; padding:9px 2px; min-height:55px; font-size:9px; text-align:center; justify-content:center; position:relative; }.fgl-nav-item svg { width:18px; height:18px; }.fgl-nav-item b { position:absolute; top:3px; right:5px; min-width:15px; height:15px; border-radius:50%; font-size:8px; }.fgl-topbar { min-height:58px; padding:0 19px; }.fgl-topbar-label { font-size:10px; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.fgl-profile-link { font-size:10px; gap:7px; }.fgl-profile-link .fgl-avatar { width:29px; height:29px; font-size:10px; }.fgl-main { padding:27px 19px 56px; }.fgl-page-heading { margin-bottom:23px; }.fgl-app h1 { font-size:30px; }.fgl-kicker { font-size:9px; margin-bottom:10px; }.fgl-hero { grid-template-columns:minmax(0,1fr) 85px; padding:24px; gap:8px; }.fgl-hero h2 { font-size:36px; }.fgl-hero p { font-size:12px; }.fgl-margaux { width:88px; height:115px; align-self:start; margin-top:28px; }.fgl-hero-meta { font-size:10px; }.fgl-hero .fgl-button { font-size:12px; }.fgl-session-steps { padding:19px 0 23px; gap:9px; }.fgl-session-steps>div { gap:7px; }.fgl-session-steps>div>span { width:24px; height:24px; font-size:8px; }.fgl-session-steps strong { font-size:10px; }.fgl-today-grid { margin-top:25px; gap:24px; }.fgl-section-heading h2 { font-size:17px; }.fgl-review-note { padding:20px; grid-template-columns:auto 1fr; }.fgl-review-note .fgl-button { grid-column:1/-1; grid-row:auto; margin-top:15px; }.fgl-practice-cards { grid-template-columns:1fr; }.fgl-practice-card { padding:24px; }.fgl-path-row { flex-wrap:wrap; position:relative; padding:19px 16px; gap:8px 12px; }.fgl-path-number { width:19px; align-self:flex-start; padding-top:3px; }.fgl-path-copy { flex-basis:calc(100% - 35px); }.fgl-path-copy>strong { font-size:13px; }.fgl-path-row>.fgl-status { margin-left:31px; font-size:9px; }.fgl-result-heading { margin-top:20px; }.fgl-path-overview { gap:29px; margin:23px 0; padding:20px 0; }.fgl-path-overview>strong { font-size:25px; }.fgl-path-overview p { font-size:11px; }.fgl-filters select { font-size:11px; }.fgl-lesson--full { padding:23px; }.fgl-lesson blockquote { font-size:25px; }.fgl-progress-summary { flex-direction:column; align-items:flex-start; gap:24px; padding:25px; }.fgl-progress-summary>div:first-child>strong { font-size:56px; }.fgl-starting-point { border-left:0; border-top:1px solid var(--fgl-line); padding:20px 0 0; max-width:none; width:100%; }.fgl-level-progress>div { grid-template-columns:130px 1fr 33px; gap:10px; font-size:10px; }.fgl-level-progress strong { margin-right:5px; }.fgl-account-admin { grid-template-columns:1fr; gap:25px; }.fgl-settings>section { padding:26px 0; }.fgl-settings-heading p { margin-bottom:5px; }.fgl-save { flex-direction:column; align-items:stretch; gap:12px; }.fgl-save .fgl-button { width:100%; }.fgl-practice-top { font-size:10px; gap:8px; flex-wrap:wrap; }.fgl-progress-track { margin-bottom:30px; }.fgl-exercise h1 { font-size:28px; }.fgl-feedback { padding:20px; }.fgl-feedback .fgl-button { width:100%; }.fgl-voice-panel { padding:21px; }.fgl-login { margin:24px 16px; padding:25px; }.fgl-finish { padding-top:15px; }.fgl-finish .fgl-actions>.fgl-button { width:100%; } }
@media(max-width:390px) { .fgl-margaux { display:none; }.fgl-hero { display:block; }.fgl-hero .fgl-button { width:100%; }.fgl-main { padding-inline:16px; }.fgl-topbar-label { max-width:130px; }.fgl-avatar-options { gap:2px; }.fgl-avatar-options>label { min-width:47px; padding:7px 5px; } }
@media(prefers-reduced-motion:reduce) { .fgl-app *, .fgl-app *::before,.fgl-app *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }
.fgl-reduce-motion *, .fgl-reduce-motion *::before,.fgl-reduce-motion *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
.fgl-accents { display:flex; flex-wrap:wrap; gap:4px; margin:9px 0 4px; }.fgl-accents button { min-width:32px; min-height:44px; padding:7px; border:1px solid var(--fgl-line); border-radius:5px; background:var(--fgl-paper); color:var(--fgl-ink); font-size:14px; }.fgl-accents button:hover { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-word-bank { margin:15px 0; }.fgl-word-bank p { font-size:12px; color:var(--fgl-muted); }.fgl-word-bank>div { display:flex; flex-wrap:wrap; gap:8px; }.fgl-word-bank>div>button { min-height:44px; padding:9px 14px; border:1px solid var(--fgl-line); border-radius:7px; background:var(--fgl-paper); color:var(--fgl-ink); font-size:14px; }
.fgl-auth-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }.fgl-login:has(.fgl-auth-grid) { max-width:960px; }.fgl-auth-grid>div { min-width:0; }.fgl-auth-grid input[type=checkbox] { accent-color:#2563eb; }.fgl-auth-grid button { width:100%; }.fgl-login label:has(input[type=checkbox]) { display:flex; align-items:flex-start; gap:10px; font-weight:400; line-height:1.5; margin:15px 0; }
.fgl-report { margin-top:18px; }.fgl-report label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; }.fgl-report textarea { display:block; width:100%; padding:12px; margin-bottom:12px; border:1px solid var(--fgl-line); border-radius:8px; background:var(--fgl-paper); color:var(--fgl-ink); }
.fgl-field-label { display:block; font-size:12px; font-weight:700; margin-bottom:8px; }.fgl-file-picker { display:flex; align-items:center; gap:12px; margin:8px 0 22px; }.fgl-file-button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 14px; border:1px solid var(--fgl-line); border-radius:7px; background:var(--fgl-paper); color:var(--fgl-ink); font-size:12px; font-weight:600; cursor:pointer; flex-shrink:0; }.fgl-file-button:hover { background:var(--fgl-blue-soft); }.fgl-file-picker:focus-within .fgl-file-button { outline:3px solid var(--fgl-blue); outline-offset:3px; }#fgl-photo-name { font-size:11px; color:var(--fgl-muted); overflow-wrap:anywhere; }.fgl-settings-fields .fgl-file-picker+.fgl-help { margin-top:0; }
.fgl-login .fgl-auth-brand { font-size:23px; font-weight:800; letter-spacing:-.065em; margin-bottom:34px; }.fgl-auth-brand span { color:#2563eb; }.fgl-login .fgl-kicker { color:#2563eb; font-size:10px; font-weight:700; letter-spacing:.13em; }.fgl-login .fgl-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 18px; border:1px solid #1c244b; border-radius:8px; background:#1c244b; color:#fff!important; font-weight:700; font-size:13px; text-decoration:none; }.fgl-login .fgl-button--quiet { background:#fff; color:#1c244b!important; border-color:#e4e8f1; }.fgl-login .fgl-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }.fgl-login :is(button,a,input,summary):focus-visible { outline:3px solid #2563eb; outline-offset:4px; }.fgl-login p { color:#5c6782; }.fgl-login .fgl-auth-reassurance { margin:25px 0 0; padding-top:20px; border-top:1px solid #e4e8f1; font-size:11px; color:#5c6782; }.fgl-login input[type=checkbox] { width:18px; height:18px; flex-shrink:0; }.fgl-login form { margin-top:24px; }
@media(max-width:680px) { .fgl-login .fgl-actions>.fgl-button { flex:1 1 100%; }.fgl-login .fgl-auth-brand { margin-bottom:25px; } }
@media(max-width:680px) { .fgl-nav-item { font-size:11px; min-height:62px; }.fgl-nav-item>span { line-height:1.2; }.fgl-path-row>.fgl-status { font-size:10px; }.fgl-topbar-label { font-size:11px; }.fgl-input-note { font-size:11px; }.fgl-focus-row span span { font-size:12px; } }
/* Personal portraits: generous on entry and in the profile, quiet in navigation. */
.fgl-profile-link .fgl-avatar { width:48px; height:48px; font-size:15px; border:2px solid var(--fgl-paper); }.fgl-profile-link { gap:12px; }.fgl-page-heading { align-items:center; gap:22px; }.fgl-page-heading>div { flex:1; }.fgl-home-avatar { display:flex; flex-direction:column; align-items:center; gap:7px; padding:0; border:0; color:var(--fgl-blue); background:transparent; flex-shrink:0; }.fgl-home-avatar .fgl-avatar { width:108px; height:108px; font-size:30px; padding:4px; border:1px solid #bed0f2; background:var(--fgl-blue-soft); box-shadow:0 0 0 5px var(--fgl-paper); }.fgl-home-avatar>span:last-child { font-size:10px; font-weight:600; }.fgl-home-avatar:hover .fgl-avatar { border-color:var(--fgl-blue); }.fgl-avatar-preview .fgl-avatar { width:112px; height:112px; font-size:32px; padding:4px; border:1px solid var(--fgl-line); background:var(--fgl-blue-soft); }.fgl-avatar-preview { gap:20px; margin-bottom:26px; }.fgl-avatar-preview strong { font-size:19px; }.fgl-avatar-preview span:not(.fgl-avatar) { margin-top:5px; font-size:12px; }
.fgl-portrait-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; max-width:490px; }.fgl-portrait-gallery label { position:relative; display:flex; flex-direction:column; align-items:center; gap:8px; padding:10px 7px; border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); cursor:pointer; transition:background-color .15s,border-color .15s; }.fgl-portrait-gallery img { display:block; width:76px; height:76px; max-width:100%; object-fit:contain; border-radius:50%; }.fgl-portrait-gallery input { position:absolute; width:1px; height:1px; opacity:0; }.fgl-portrait-gallery label:has(input:checked) { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-portrait-gallery label:has(input:focus-visible) { outline:3px solid var(--fgl-blue); outline-offset:3px; }.fgl-portrait-gallery label:hover { border-color:var(--fgl-blue); }.fgl-portrait-gallery label>span { color:var(--fgl-muted); font-size:10px; }.fgl-portrait-gallery label:has(input:checked)>span { color:var(--fgl-blue); font-weight:700; }.fgl-initials-options { margin:25px 0; color:var(--fgl-muted); font-size:12px; }.fgl-initials-options>summary { cursor:pointer; padding:8px 0; min-height:44px; }.fgl-settings .fgl-portrait-fieldset { margin-bottom:18px; }
.fgl-grammar-underline { position:relative; z-index:0; }.fgl-grammar-underline::after { content:''; position:absolute; bottom:2px; left:0; right:0; height:7px; background:#c1d5fa; z-index:-1; transform:rotate(-1deg); border-radius:30% 45% 35% 20%; }.fgl-hero-illustration { display:flex; flex-direction:column; align-items:center; gap:22px; }.fgl-grammar-note { display:flex; align-items:center; gap:6px; transform:rotate(-4deg); }.fgl-grammar-note>span { border:1px solid #c1d2ef; border-radius:6px; padding:5px 10px; background:var(--fgl-paper); color:var(--fgl-ink); font-size:13px; }.fgl-grammar-note>span:nth-child(2) { color:var(--fgl-blue); border-bottom:3px solid var(--fgl-blue); font-weight:700; }.fgl-hero { border-color:#d3def0; }.fgl-session-steps>div>span { background:var(--fgl-blue-soft); border-color:#d3def0; }.fgl-feedback.is-correct .fgl-feedback-heading>svg { animation:fgl-correct-in .2s ease-out; }@keyframes fgl-correct-in { from {transform:scale(.8);opacity:.3} to {transform:scale(1);opacity:1} }
@media(max-width:1150px) { .fgl-heading-note { display:none; }.fgl-home-avatar .fgl-avatar { width:96px; height:96px; }.fgl-grammar-note>span { padding:4px 7px; font-size:11px; }.fgl-portrait-gallery { gap:8px; }.fgl-portrait-gallery label { padding:8px 4px; }.fgl-portrait-gallery img { width:65px; height:65px; } }
@media(max-width:680px) { .fgl-profile-link .fgl-avatar { width:44px; height:44px; }.fgl-topbar { min-height:68px; }.fgl-page-heading { gap:16px; align-items:center; }.fgl-page-heading h1 { font-size:26px; }.fgl-page-heading .fgl-kicker { font-size:8px; letter-spacing:.09em; }.fgl-home-avatar .fgl-avatar { width:92px; height:92px; }.fgl-home-avatar>span:last-child { font-size:10px; }.fgl-avatar-preview .fgl-avatar { width:112px; height:112px; }.fgl-avatar-preview strong { font-size:18px; }.fgl-hero-illustration { gap:12px; }.fgl-hero-illustration .fgl-margaux { margin-top:20px; }.fgl-grammar-note { display:none; }.fgl-portrait-gallery { gap:8px; }.fgl-portrait-gallery img { width:62px; height:62px; }.fgl-portrait-gallery label { padding:8px 3px; }.fgl-portrait-gallery label>span { font-size:9px; } }
@media(max-width:390px) { .fgl-hero-illustration { display:none; } }
/* Optional profile symbols are chosen by the learner, never inferred. */
.fgl-avatar-stack { position:relative; display:inline-flex; flex-shrink:0; vertical-align:middle; }.fgl-profile-emblem { position:absolute; right:-3px; bottom:-1px; display:flex!important; align-items:center; justify-content:center; width:23px; height:23px; padding:3px; border:1px solid var(--fgl-line); border-radius:7px; background:var(--fgl-paper); line-height:1; }.fgl-profile-emblem img { display:block; width:100%; height:100%; object-fit:contain; border-radius:2px; }.fgl-home-avatar .fgl-profile-emblem { width:32px; height:29px; right:0; bottom:3px; border-radius:8px; }.fgl-avatar-preview .fgl-profile-emblem { width:35px; height:30px; right:0; bottom:3px; margin:0!important; }.fgl-home-avatar>.fgl-avatar-stack { font-size:inherit; }
.fgl-emblem-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; max-width:490px; }.fgl-emblem-gallery label { position:relative; display:flex; align-items:center; gap:9px; padding:10px; min-height:48px; border:1px solid var(--fgl-line); border-radius:8px; cursor:pointer; background:var(--fgl-paper); }.fgl-emblem-gallery input { position:absolute; width:1px; height:1px; opacity:0; }.fgl-emblem-gallery img { width:27px; height:22px; display:block; object-fit:contain; border-radius:3px; flex-shrink:0; }.fgl-emblem-gallery span { font-size:10px; line-height:1.3; color:var(--fgl-muted); }.fgl-emblem-gallery label:has(input:checked) { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-emblem-gallery label:has(input:checked) span { color:var(--fgl-blue); font-weight:700; }.fgl-emblem-gallery label:has(input:focus-visible) { outline:3px solid var(--fgl-blue); outline-offset:3px; }.fgl-emblem-gallery label:hover { border-color:var(--fgl-blue); }
.fgl-favourite-button { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 14px; border:1px solid var(--fgl-line); border-radius:8px; background:var(--fgl-paper); color:var(--fgl-muted); font-weight:600; font-size:12px; margin-bottom:20px; }.fgl-favourite-button[aria-pressed=true] { color:var(--fgl-blue); border-color:#bed0f2; background:var(--fgl-blue-soft); }.fgl-favourite-button:hover { border-color:var(--fgl-blue); }.fgl-favourite-button:active { transform:scale(.97); }.fgl-favourite-button [aria-hidden=true] { font-size:17px; }.fgl-button [aria-hidden=true] { font-size:16px; }.fgl-favourite-count { font-size:11px; color:var(--fgl-blue); background:var(--fgl-blue-soft); padding:5px 9px; border-radius:6px; }.fgl-path-row .fgl-favourite-mark { margin-left:6px; font-size:12px; }
@media(max-width:680px) { .fgl-emblem-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }.fgl-emblem-gallery label { padding:9px 7px; gap:6px; }.fgl-emblem-gallery span { font-size:10px; } }
@media(max-width:680px) { .fgl-auth-grid { grid-template-columns:1fr; }.fgl-auth-grid>div+div { border-top:1px solid #e4e8f1; padding-top:24px; } }
.fgl-practice-top>span { display:flex; align-items:center; gap:18px; }.fgl-practice-top strong { color:var(--fgl-ink); font-size:13px; }
.fgl-progress-segments { display:flex; gap:5px; height:8px; background:none; overflow:visible; margin:15px 0 22px; }.fgl-progress-segments>span { flex:1; height:100%; border-radius:3px; background:var(--fgl-line); transition:background-color .18s; }.fgl-progress-segments>span.is-done { background:var(--fgl-blue); }.fgl-progress-segments>span.is-current { background:#9cbdfa; box-shadow:0 0 0 2px var(--fgl-blue-soft); }
.fgl-challenge { display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; padding:16px 20px; margin:0 0 24px; border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); }.fgl-pace-choice { margin-right:auto; }.fgl-pace-choice>.fgl-eyebrow { margin-bottom:8px; }.fgl-pace-choice>div { display:flex; gap:3px; border-radius:8px; padding:3px; background:var(--fgl-canvas); }.fgl-pace-choice button { border:1px solid transparent; border-radius:6px; padding:9px 12px; min-height:42px; background:transparent; color:var(--fgl-muted); font:600 12px 'DM Sans',sans-serif; transition:background-color .18s,border-color .18s; }.fgl-pace-choice button[aria-pressed=true] { background:var(--fgl-paper); border-color:var(--fgl-line); color:var(--fgl-blue); box-shadow:0 1px 3px #1c244b0d; }.fgl-challenge>p { margin:0; color:var(--fgl-muted); font-size:12px; }.fgl-challenge-status { flex:1 1 100%; color:var(--fgl-muted); font-size:11px; line-height:1.6; }.fgl-challenge-status .fgl-text-button { font-size:11px; min-height:30px; margin-left:5px; padding:0; }
.fgl-countdown { width:68px; height:68px; border-radius:50%; background:conic-gradient(var(--fgl-blue) var(--remaining),var(--fgl-line) 0); display:grid; place-items:center; flex-shrink:0; }.fgl-countdown>span { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:var(--fgl-paper); font:700 19px 'DM Sans',sans-serif; color:var(--fgl-ink); font-variant-numeric:tabular-nums; }.fgl-challenge-settings { display:grid; justify-items:start; gap:0; }.fgl-challenge-settings select { min-height:35px; border:1px solid var(--fgl-line); border-radius:6px; background:var(--fgl-paper); color:var(--fgl-ink); padding:5px 9px; font:600 12px 'DM Sans',sans-serif; }.fgl-challenge-settings .fgl-text-button { min-height:30px; padding:3px 0; }
.fgl-exercise-layout { align-items:start; }.fgl-exercise { background:var(--fgl-paper); border:1px solid var(--fgl-line); border-top:3px solid var(--fgl-blue); border-radius:14px; padding:28px; animation:fgl-question-in .18s ease-out; }.fgl-exercise h1 { font-size:clamp(25px,2.6vw,35px); line-height:1.25; margin:21px 0 25px; }.fgl-exercise .fgl-selection-reason { padding-bottom:16px; border-bottom:1px solid var(--fgl-line); margin-bottom:15px; }.fgl-exercise .fgl-choice { transition:background-color .18s,border-color .18s,transform .18s; }.fgl-exercise .fgl-choice.is-selected { border-color:var(--fgl-blue); border-width:2px; padding:14px 15px; background:var(--fgl-blue-soft); transform:translateX(3px); opacity:1; }.fgl-choice.is-selected .fgl-choice-key { background:var(--fgl-blue); color:white; border-color:var(--fgl-blue); }.fgl-exercise .fgl-answer-form textarea:focus { border-color:var(--fgl-blue); box-shadow:0 0 0 3px var(--fgl-blue-soft); }.fgl-exercise>.fgl-feedback { margin:25px -10px -10px; animation:fgl-feedback-in .2s ease-out; border-left-width:4px; }.fgl-feedback-heading>svg,.fgl-feedback-heading>span { flex-shrink:0; }.fgl-feedback.is-correct { border-left-color:var(--fgl-good); }.fgl-feedback.is-incorrect { border-left-color:var(--fgl-blue); }.fgl-feedback .fgl-actions { margin-top:18px; }.fgl-feedback-practice { margin-top:8px; }.fgl-report { margin-top:18px; }
@keyframes fgl-question-in { from {opacity:.65;transform:translateY(5px)} to {opacity:1;transform:translateY(0)} }@keyframes fgl-feedback-in { from {opacity:.5;transform:translateY(7px)} to {opacity:1;transform:translateY(0)} }
@media(max-width:680px) { .fgl-practice-top { justify-content:space-between; }.fgl-practice-top>span { display:grid; gap:2px; text-align:right; }.fgl-practice-top strong { font-size:11px; }.fgl-progress-segments { margin:13px 0 16px; gap:3px; height:6px; }.fgl-challenge { padding:12px; gap:10px; margin-bottom:17px; }.fgl-pace-choice { flex:1 1 calc(100% - 64px); margin:0; }.fgl-pace-choice button { padding:8px 7px; font-size:10px; min-height:38px; }.fgl-pace-choice>.fgl-eyebrow { font-size:8px; margin-bottom:5px; }.fgl-countdown { width:53px; height:53px; }.fgl-countdown>span { width:45px; height:45px; font-size:16px; }.fgl-challenge-settings { display:flex; align-items:center; gap:15px; flex-basis:100%; }.fgl-challenge-status { font-size:10px; }.fgl-exercise { padding:20px 17px; border-radius:11px; }.fgl-exercise h1 { font-size:26px; margin:17px 0 20px; }.fgl-exercise .fgl-selection-reason { font-size:11px; padding-bottom:12px; }.fgl-exercise>.fgl-feedback { margin-inline:-6px; padding:16px; }.fgl-exercise .fgl-choice.is-selected { transform:none; }.fgl-exercise .fgl-kicker { line-height:1.7; } }
.fgl-onboarding { max-width:840px; margin:0 auto; }.fgl-onboarding-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:25px; }.fgl-onboarding-heading p { margin:0; font-size:13px; color:var(--fgl-muted); }.fgl-onboarding-heading img { object-fit:contain; }.fgl-onboarding-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:0; list-style:none; margin:0 0 30px; }.fgl-onboarding-steps li { border-top:3px solid var(--fgl-line); padding-top:12px; display:flex; gap:8px; align-items:center; font-size:11px; color:var(--fgl-muted); }.fgl-onboarding-steps li.is-current { border-color:var(--fgl-blue); color:var(--fgl-blue); }.fgl-onboarding-steps li.is-done { border-color:#91b1f1; }.fgl-onboarding-steps li>span { display:grid; place-items:center; border:1px solid var(--fgl-line); width:23px; height:23px; border-radius:50%; font-size:10px; flex-shrink:0; }.fgl-onboarding-steps .is-current>span { background:var(--fgl-blue); color:white; border-color:var(--fgl-blue); }.fgl-onboarding-body { border:1px solid var(--fgl-line); border-radius:15px; background:var(--fgl-paper); padding:30px; animation:fgl-question-in .18s ease-out; }.fgl-onboarding-body h1 { font-size:34px; max-width:650px; line-height:1.15; }.fgl-onboarding-body .fgl-lead { font-size:14px; margin-bottom:25px; }.fgl-onboarding-options { display:grid; gap:10px; margin:0; padding:0; border:0; }.fgl-onboarding-options legend,.fgl-minute-options legend { font-size:13px; font-weight:700; padding:0; margin-bottom:15px; }.fgl-onboarding-option { display:block; position:relative; cursor:pointer; }.fgl-onboarding-option>input,.fgl-context-options input,.fgl-minute-options input { position:absolute; width:1px; height:1px; opacity:0; }.fgl-onboarding-option>span { display:flex; align-items:center; gap:14px; padding:16px; min-height:76px; border:1px solid var(--fgl-line); border-radius:9px; transition:border-color .18s,background-color .18s; }.fgl-onboarding-option strong { display:block; font-size:14px; }.fgl-onboarding-option small { display:block; margin-top:4px; font-size:12px; color:var(--fgl-muted); }.fgl-onboarding-icon { display:grid; place-items:center; width:35px; height:35px; background:var(--fgl-canvas); border-radius:8px; font-size:18px; flex-shrink:0; }.fgl-option-check { margin-left:auto; color:transparent; font-size:15px; border:1px solid var(--fgl-line); border-radius:50%; width:21px; height:21px; display:grid; place-items:center; flex-shrink:0; }.fgl-onboarding-option input:checked+span { border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-onboarding-option input:checked+span>.fgl-option-check { background:var(--fgl-blue); border-color:var(--fgl-blue); color:white; }.fgl-onboarding-option input:focus-visible+span,.fgl-context-options input:focus-visible+span,.fgl-minute-options input:focus-visible+span { outline:3px solid var(--fgl-blue); outline-offset:3px; }
.fgl-context-options { border:0; padding:0; margin:28px 0 0; display:flex; flex-wrap:wrap; gap:8px; }.fgl-context-options legend { font-size:13px; font-weight:700; margin-bottom:13px; }.fgl-context-options legend>span { display:block; color:var(--fgl-muted); font-size:11px; font-weight:400; margin-top:3px; }.fgl-context-options label>span { display:block; min-height:42px; padding:10px 15px; border:1px solid var(--fgl-line); border-radius:7px; font-size:12px; cursor:pointer; }.fgl-context-options input:checked+span { color:var(--fgl-blue); border-color:var(--fgl-blue); background:var(--fgl-blue-soft); }.fgl-context-options input:disabled+span { opacity:.45; cursor:default; }.fgl-minute-options { display:flex; gap:9px; border:0; padding:0; margin:26px 0 32px; }.fgl-minute-options label { flex:1; position:relative; }.fgl-minute-options label>span { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:98px; border:1px solid var(--fgl-line); border-radius:9px; font-size:11px; color:var(--fgl-muted); cursor:pointer; }.fgl-minute-options strong { font-size:26px; color:var(--fgl-ink); line-height:1.3; }.fgl-minute-options small { font-size:9px; }.fgl-minute-options input:checked+span { background:var(--fgl-blue-soft); border-color:var(--fgl-blue); color:var(--fgl-blue); }.fgl-onboarding-note { padding:17px 19px; background:var(--fgl-canvas); border-left:3px solid var(--fgl-blue); border-radius:0 7px 7px 0; color:var(--fgl-muted); font-size:12px; line-height:1.8; margin:24px 0 0; }.fgl-onboarding-note p { margin:7px 0 0; }.fgl-onboarding-actions { display:flex; justify-content:flex-end; gap:12px; margin:23px 0 10px; }.fgl-onboarding-actions .fgl-button--quiet { margin-right:auto; }.fgl-onboarding-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:12px; margin-top:20px; border-top:1px solid var(--fgl-line); }.fgl-onboarding-form>.fgl-small { margin-top:10px; }.fgl-onboarding-ready { display:flex; gap:22px; align-items:center; }.fgl-onboarding-ready .fgl-avatar { width:86px; height:86px; }.fgl-onboarding-ready h1 { margin-bottom:0; font-size:31px; }.fgl-onboarding-recap { margin:30px 0 0; }.fgl-onboarding-recap>div { display:grid; grid-template-columns:145px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid var(--fgl-line); font-size:13px; }.fgl-onboarding-recap dt { color:var(--fgl-muted); }.fgl-onboarding-recap dd { margin:0; font-weight:600; }.fgl-foundation-choice { border:1px dashed var(--fgl-line); border-radius:10px; padding:17px; margin-top:20px; font-size:12px; color:var(--fgl-muted); }.fgl-foundation-choice p { margin-top:0; }
.fgl-plan-invite { display:flex; gap:25px; justify-content:space-between; align-items:center; padding:24px; margin:30px 0; border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); }.fgl-plan-invite h2 { font-size:18px; margin-bottom:8px; }.fgl-plan-invite p { font-size:12px; color:var(--fgl-muted); margin:0; }.fgl-plan-invite .fgl-actions { margin:0; }.fgl-learning-plan { text-align:left; margin:28px 0; }.fgl-plan-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }.fgl-plan-heading h2 { font:38px/1.1 'Instrument Serif',serif; margin:5px 0 15px; }.fgl-plan-level { font-size:23px; font-weight:700; }.fgl-plan-level small { display:block; font-size:10px; font-weight:400; color:var(--fgl-muted); }.fgl-plan-observations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.fgl-plan-observations>section { padding:23px 20px; border:1px solid var(--fgl-line); border-radius:11px; background:var(--fgl-paper); }.fgl-plan-observations>section>span { display:grid; place-items:center; width:28px; height:28px; background:var(--fgl-blue-soft); color:var(--fgl-blue); border-radius:7px; margin-bottom:14px; font-size:15px; }.fgl-plan-observations h3 { font-size:15px; margin:0 0 12px; }.fgl-plan-observations ul { padding-left:17px; margin:0; font-size:12px; line-height:1.9; }.fgl-plan-observations p,.fgl-plan-observations small { color:var(--fgl-muted); font-size:11px; }.fgl-plan-observations small { display:block; margin-top:15px; }.fgl-plan-priorities { margin:28px 0; }.fgl-plan-priorities h3 { font-size:17px; }.fgl-plan-priorities>div { display:flex; gap:18px; align-items:start; padding:16px 0; border-bottom:1px solid var(--fgl-line); }.fgl-plan-priorities>div>span { color:var(--fgl-blue); font-size:12px; font-weight:700; padding-top:2px; }.fgl-plan-priorities strong { font-size:14px; }.fgl-plan-priorities p { font-size:12px; color:var(--fgl-muted); margin:5px 0 0; }.fgl-finish:has(.fgl-learning-plan) { max-width:none; }.fgl-unknown-action { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:18px; }.fgl-unknown-action small { color:var(--fgl-muted); font-size:11px; }
.fgl-learning-coach { display:flex; align-items:start; gap:22px; margin:28px 0; padding:25px; border:1px solid #c9daf8; border-radius:13px; background:var(--fgl-blue-soft); text-align:left; }.fgl-learning-coach h2 { font-size:20px; margin:8px 0; }.fgl-learning-coach p { font-size:13px; color:var(--fgl-muted); margin:10px 0; }.fgl-learning-coach small { display:block; color:var(--fgl-muted); font-size:10px; margin-top:15px; }.fgl-learning-coach ol { margin:14px 0; padding-left:20px; font-size:12px; line-height:1.9; }.fgl-coach-avatar { width:64px; flex-shrink:0; }.fgl-coach-avatar img { width:64px; height:72px; object-fit:contain; }.fgl-learning-coach .fgl-actions { margin-top:16px; }
@media(max-width:680px){.fgl-onboarding-heading { margin-bottom:18px; }.fgl-onboarding-heading img { width:45px; height:53px; }.fgl-onboarding-steps { gap:5px; margin-bottom:20px; }.fgl-onboarding-steps li { display:grid; gap:5px; font-size:8px; line-height:1.4; align-content:start; }.fgl-onboarding-body { padding:21px 17px; }.fgl-onboarding-body h1 { font-size:27px; }.fgl-onboarding-body .fgl-lead { font-size:12px; }.fgl-onboarding-option>span { padding:13px 10px; gap:10px; }.fgl-onboarding-option strong { font-size:12px; }.fgl-onboarding-option small { font-size:10px; }.fgl-onboarding-icon { width:29px; height:29px; font-size:16px; }.fgl-onboarding-actions .fgl-button { font-size:12px; }.fgl-onboarding-footer { gap:0; }.fgl-onboarding-footer .fgl-text-button { font-size:11px; }.fgl-minute-options { flex-wrap:wrap; gap:7px; }.fgl-minute-options label { flex-basis:28%; }.fgl-minute-options label>span { min-height:80px; }.fgl-onboarding-ready { align-items:start; gap:12px; }.fgl-onboarding-ready .fgl-avatar { width:54px; height:54px; }.fgl-onboarding-ready h1 { font-size:25px; }.fgl-onboarding-recap>div { grid-template-columns:1fr; gap:5px; font-size:12px; }.fgl-plan-invite { flex-direction:column; align-items:start; padding:20px; }.fgl-plan-heading { flex-direction:column; align-items:start; gap:4px; margin-bottom:15px; }.fgl-plan-heading h2 { font-size:33px; }.fgl-plan-observations { grid-template-columns:1fr; gap:10px; }.fgl-plan-observations>section { padding:19px; }.fgl-learning-coach { padding:20px 17px; gap:12px; }.fgl-coach-avatar,.fgl-coach-avatar img { width:40px; }.fgl-coach-avatar img { height:48px; }.fgl-learning-coach h2 { font-size:18px; }.fgl-learning-coach p { font-size:12px; }.fgl-learning-coach .fgl-button { font-size:12px; }}
.fgl-prepared-listening { margin:32px 0; padding:28px; border:1px solid var(--fgl-line); border-radius:14px; background:var(--fgl-paper); }.fgl-listening-heading { display:flex; align-items:start; justify-content:space-between; gap:22px; }.fgl-listening-heading h2 { font:36px/1.1 'Instrument Serif',serif; margin:8px 0 12px; }.fgl-listening-heading p { color:var(--fgl-muted); font-size:13px; margin:0; }.fgl-listening-count { color:var(--fgl-blue); font-size:21px; font-weight:700; text-align:right; white-space:nowrap; }.fgl-listening-count small { color:var(--fgl-muted); display:block; font-size:10px; font-weight:400; }.fgl-listening-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:19px 0 24px; border-bottom:1px solid var(--fgl-line); }.fgl-listening-toolbar>span { color:var(--fgl-muted); font-size:11px; flex:1; }.fgl-listening-toolbar .fgl-button { min-height:40px; font-size:12px; }.fgl-listening-example { margin:24px 0 28px; padding:21px; border:1px solid #d3e0f6; border-radius:11px; background:var(--fgl-blue-soft); }.fgl-listening-example h3 { margin:0 0 18px; font-size:14px; }.fgl-listening-turn { display:flex; align-items:start; gap:13px; padding:20px 0; border-bottom:1px solid var(--fgl-line); }.fgl-listening-example .fgl-listening-turn { padding:0; border:0; }.fgl-listening-portrait { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--fgl-canvas); color:var(--fgl-blue); flex-shrink:0; object-fit:cover; border:1px solid var(--fgl-line); }.fgl-listening-turn-body { flex:1; min-width:0; }.fgl-listening-speaker { display:flex; align-items:center; gap:11px; min-height:28px; margin-bottom:7px; }.fgl-listening-speaker strong { font-size:13px; }.fgl-listening-speaker>span { color:var(--fgl-muted); font-size:10px; }.fgl-listening-turn audio { display:block; width:min(100%,440px); height:40px; margin:8px 0 0; accent-color:var(--fgl-blue); }.fgl-listening-turn audio[hidden] { display:none; }.fgl-listening-line { margin:12px 0 0; color:var(--fgl-ink); font-size:16px; line-height:1.7; }.fgl-listening-line[hidden] { display:none; }.fgl-audio-pending { display:inline-block; color:var(--fgl-muted); background:var(--fgl-canvas); border:1px solid var(--fgl-line); border-radius:5px; font-size:10px; padding:4px 8px; }.fgl-listening-dialogue { margin:25px 0; }.fgl-listening-dialogue-heading h3 { margin:8px 0; font-size:22px; }.fgl-listening-dialogue-heading p { margin:0 0 10px; color:var(--fgl-muted); font-size:13px; }.fgl-listening-dialogue .fgl-listening-turn:last-child { border-bottom:0; }.fgl-listening-reflection { display:grid; grid-template-columns:1fr 1fr; gap:23px; padding-top:23px; border-top:1px solid var(--fgl-line); }.fgl-listening-reflection>div { background:var(--fgl-canvas); padding:20px; border-radius:9px; }.fgl-listening-reflection h3 { font-size:14px; margin:9px 0; }.fgl-listening-reflection p { margin:0; font-size:12px; color:var(--fgl-muted); line-height:1.8; }.fgl-listening-reflection small { display:block; margin-top:13px; color:var(--fgl-muted); font-size:10px; }.fgl-audio-error { color:var(--fgl-muted); font-size:12px; }.fgl-audio-error p { margin-bottom:0; }
@media(max-width:680px){.fgl-prepared-listening { padding:20px 16px; margin-top:24px; }.fgl-listening-heading { gap:13px; }.fgl-listening-heading h2 { font-size:29px; }.fgl-listening-heading p { font-size:12px; }.fgl-listening-count { font-size:16px; }.fgl-listening-count small { font-size:8px; white-space:normal; max-width:68px; }.fgl-listening-toolbar { gap:10px; padding-bottom:17px; }.fgl-listening-toolbar>span { flex-basis:100%; }.fgl-listening-example { padding:16px 12px; }.fgl-listening-turn { gap:10px; }.fgl-listening-portrait { width:33px; height:33px; }.fgl-listening-speaker { flex-wrap:wrap; gap:3px 10px; margin-bottom:8px; }.fgl-listening-line { font-size:14px; }.fgl-listening-reflection { grid-template-columns:1fr; gap:12px; }.fgl-listening-reflection>div { padding:17px; }.fgl-listening-dialogue-heading h3 { font-size:20px; }.fgl-audio-pending { font-size:9px; }.fgl-listening-turn audio { height:44px; }}
.fgl-full-conversation { background:var(--fgl-blue-soft); border:1px solid var(--fgl-line); border-radius:10px; padding:18px 20px; margin:20px 0 4px; }.fgl-full-conversation h4 { margin:0 0 12px; font-size:14px; }.fgl-full-conversation audio { display:block; width:min(100%,500px); height:42px; }.fgl-full-conversation audio[hidden] { display:none; }.fgl-full-conversation>p { margin:11px 0 0; font-size:11px; color:var(--fgl-muted); }
.fgl-scene-browser { border:1px solid var(--fgl-line); border-radius:11px; padding:19px 20px; margin:24px 0; background:var(--fgl-canvas); }.fgl-scene-browser-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:13px; }.fgl-scene-browser-heading label { font-size:13px; font-weight:700; }.fgl-scene-browser-heading>span { color:var(--fgl-muted); font-size:11px; font-variant-numeric:tabular-nums; white-space:nowrap; }.fgl-scene-controls { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:10px; }.fgl-scene-controls select { min-height:45px; width:100%; border:1px solid var(--fgl-line); border-radius:7px; background:var(--fgl-paper); color:var(--fgl-ink); padding:9px 11px; font:600 12px 'DM Sans',sans-serif; }.fgl-scene-controls .fgl-button { padding:10px 12px; min-height:45px; font-size:12px; }.fgl-scene-context { display:inline-flex; color:var(--fgl-blue); background:var(--fgl-blue-soft); border-radius:5px; font-size:10px; padding:4px 8px; margin-top:12px; text-transform:capitalize; }#fgl-scene-status:not(:empty) { margin-top:13px; }.fgl-listening-dialogue[hidden],.fgl-listening-reflection[hidden] { display:none; }
@media(max-width:680px){.fgl-scene-browser { padding:16px 12px; }.fgl-scene-browser-heading { align-items:start; gap:10px; }.fgl-scene-browser-heading label { font-size:12px; }.fgl-scene-browser-heading>span { font-size:10px; }.fgl-scene-controls { grid-template-columns:1fr 1fr; gap:8px; }.fgl-scene-controls select { grid-column:1/-1; grid-row:1; font-size:11px; }.fgl-scene-controls .fgl-button { min-height:42px; }}
@media(max-width:680px){.fgl-scene-controls select { font-size:16px; min-height:48px; min-width:0; max-width:100%; text-overflow:ellipsis; }.fgl-scene-controls .fgl-button,.fgl-listening-toolbar .fgl-button { min-height:44px; }.fgl-listening-turn audio,.fgl-full-conversation audio { min-width:0; max-width:100%; }}
.fgl-profile-purpose,.fgl-profile-introduction { border:1px solid #d3e0f6; border-radius:10px; background:var(--fgl-blue-soft); padding:20px; margin:0 0 25px; }.fgl-profile-purpose strong { font-size:14px; }.fgl-profile-purpose p,.fgl-profile-introduction p { font-size:13px; color:var(--fgl-muted); margin:9px 0; line-height:1.7; }.fgl-profile-purpose>span,.fgl-profile-introduction small { display:block; font-size:11px; color:var(--fgl-muted); }.fgl-profile-introduction h2 { font-size:23px; line-height:1.25; }.fgl-profile-introduction ol { display:grid; grid-template-columns:1fr 1fr; gap:11px 26px; padding-left:19px; font-size:12px; margin:20px 0; }.fgl-recap-estimate { display:block; font-weight:400; color:var(--fgl-muted); margin-top:5px; font-size:11px; }
.fgl-assessment-phase { border:1px solid var(--fgl-line); border-radius:11px; background:var(--fgl-paper); padding:20px 22px; margin:0 0 23px; }.fgl-assessment-phase-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }.fgl-assessment-phase-heading h2 { font-size:20px; margin:0; }.fgl-assessment-phase-heading>span { font-size:12px; font-weight:700; text-align:right; }.fgl-assessment-phase-heading small { display:block; color:var(--fgl-muted); font-size:10px; font-weight:400; margin-top:4px; }.fgl-assessment-phase ol { list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; padding:0; margin:19px 0 14px; }.fgl-assessment-phase li { display:flex; align-items:center; gap:8px; color:var(--fgl-muted); font-size:10px; }.fgl-assessment-phase li>span { flex-shrink:0; display:grid; place-items:center; width:25px; height:25px; border-radius:50%; border:1px solid var(--fgl-line); font-size:10px; }.fgl-assessment-phase .is-current { color:var(--fgl-blue); }.fgl-assessment-phase .is-current>span { background:var(--fgl-blue); border-color:var(--fgl-blue); color:white; }.fgl-assessment-phase .is-done>span { background:var(--fgl-blue-soft); color:var(--fgl-blue); }.fgl-assessment-phase>p { color:var(--fgl-muted); font-size:11px; margin:0; }.fgl-assessment-break { margin-top:22px; padding:20px; border:1px solid var(--fgl-line); border-radius:10px; background:var(--fgl-paper); }.fgl-assessment-break h3 { font-size:19px; margin:7px 0 10px; }.fgl-assessment-break p { color:var(--fgl-muted); font-size:12px; }.fgl-assessment-break .fgl-actions { margin-top:15px; }
.fgl-assessment-report { border:1px solid var(--fgl-line); border-radius:12px; background:var(--fgl-paper); padding:23px; margin:25px 0; }.fgl-assessment-report-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }.fgl-assessment-report-heading h3 { font-size:21px; margin:8px 0; }.fgl-assessment-report-heading>strong { font-size:23px; white-space:nowrap; text-align:right; }.fgl-assessment-report-heading small { display:block; font-size:10px; font-weight:400; color:var(--fgl-muted); }.fgl-assessment-report>p { color:var(--fgl-muted); font-size:12px; }.fgl-assessment-domains { margin:20px 0; }.fgl-assessment-domains details { border-top:1px solid var(--fgl-line); padding:16px 0; }.fgl-assessment-domains summary { display:grid; grid-template-columns:minmax(0,1fr) auto 100px; gap:15px; align-items:center; min-height:44px; cursor:pointer; font-size:12px; }.fgl-assessment-domains summary>span { color:var(--fgl-muted); font-size:10px; }.fgl-assessment-domains meter { width:100%; height:8px; }.fgl-assessment-domains dl { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:12px 0 0; }.fgl-assessment-domains dl>div { border-radius:7px; padding:12px; background:var(--fgl-canvas); }.fgl-assessment-domains dt { color:var(--fgl-muted); font-size:10px; }.fgl-assessment-domains dd { margin:5px 0 0; font-size:19px; font-weight:700; }
.fgl-listening-skill-choice { padding:22px; border:1px solid var(--fgl-line); border-radius:11px; background:var(--fgl-paper); }.fgl-listening-skill-choice label { display:block; font-size:13px; font-weight:700; margin-bottom:12px; }.fgl-listening-skill-choice select { width:100%; min-width:0; min-height:48px; border:1px solid var(--fgl-line); border-radius:7px; background:var(--fgl-paper); color:var(--fgl-ink); padding:10px 12px; font:400 16px 'DM Sans',sans-serif; }.fgl-listening-skill-choice .fgl-text-button { margin-top:8px; }.fgl-scene-context+.fgl-scene-context { margin-left:7px; }
@media(max-width:680px){.fgl-profile-purpose,.fgl-profile-introduction { padding:16px; }.fgl-profile-purpose p,.fgl-profile-introduction p { font-size:12px; }.fgl-profile-introduction h2 { font-size:21px; }.fgl-profile-introduction ol { font-size:11px; gap:10px 20px; }.fgl-assessment-phase { padding:16px; }.fgl-assessment-phase-heading { gap:12px; }.fgl-assessment-phase-heading h2 { font-size:18px; }.fgl-assessment-phase-heading>span { font-size:10px; white-space:nowrap; }.fgl-assessment-phase ol { gap:7px; }.fgl-assessment-phase li { align-items:start; flex-direction:column; gap:5px; font-size:8px; }.fgl-assessment-phase>p { font-size:10px; }.fgl-assessment-break { padding:15px; }.fgl-assessment-report { padding:18px 16px; }.fgl-assessment-report-heading { align-items:start; gap:12px; }.fgl-assessment-report-heading h3 { font-size:20px; }.fgl-assessment-report-heading>strong { font-size:20px; }.fgl-assessment-domains summary { grid-template-columns:1fr auto; gap:8px; }.fgl-assessment-domains meter { grid-column:1/-1; }.fgl-assessment-domains dl { grid-template-columns:1fr 1fr; }.fgl-listening-skill-choice { padding:18px 15px; }}
.fgl-quiz-mission{display:flex;align-items:center;gap:18px;padding:20px 24px;margin:20px 0 16px;border:1px solid var(--fgl-line);border-radius:18px;background:linear-gradient(115deg,var(--fgl-blue-soft),var(--fgl-paper));color:var(--fgl-ink)}
.fgl-mission-symbol{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:16px;background:var(--fgl-blue);color:white;font-size:30px;box-shadow:0 5px 0 #1c244b15}
.fgl-mission-copy{flex:1}.fgl-mission-copy h2{font:600 21px/1.25 'DM Sans',sans-serif;margin:4px 0}.fgl-mission-copy p{font-size:14px;margin:0;color:var(--fgl-muted)}
.fgl-round-path{display:flex;gap:7px;flex-wrap:wrap;align-items:center;justify-content:flex-end;width:126px;flex:none}.fgl-round-path>span{width:30px;height:30px;border:1px solid var(--fgl-line);border-radius:50%;display:grid;place-items:center;background:var(--fgl-paper);font-size:12px;font-weight:700}.fgl-round-path>span.is-active{border:2px solid var(--fgl-blue);color:var(--fgl-blue);box-shadow:0 0 0 3px #2563eb12}.fgl-round-path>span.is-complete{background:var(--fgl-blue);border-color:var(--fgl-blue);color:white}.fgl-round-path small{width:100%;text-align:right;color:var(--fgl-muted);font-size:12px}
.fgl-response-moment{display:flex;align-items:center;gap:13px;margin:-4px 0 20px;padding-bottom:18px;border-bottom:1px solid #2563eb22;animation:fgl-response-arrive 200ms ease-out}.fgl-response-seal{display:grid;place-items:center;width:46px;height:46px;flex:none;border-radius:50%;background:var(--fgl-blue);color:white;font-size:26px;box-shadow:0 0 0 6px #2563eb10;animation:fgl-seal-pop 220ms ease-out}.fgl-response-moment>div{flex:1}.fgl-response-moment strong,.fgl-response-moment small{display:block}.fgl-response-moment strong{margin:4px 0;font-size:17px}.fgl-response-moment small{font-size:13px;color:var(--fgl-muted)}.fgl-response-rays{color:var(--fgl-blue);font-size:32px;animation:fgl-seal-pop 220ms ease-out}.fgl-response-moment.is-learning .fgl-response-seal{background:var(--fgl-ink)}.fgl-response-moment.is-learning .fgl-response-rays{display:none}
.fgl-choice{box-shadow:0 3px 0 #1c244b0c;transition:transform 150ms ease,background 150ms ease,border-color 150ms ease,box-shadow 150ms ease}.fgl-choice:not(:disabled):active{transform:translateY(2px);box-shadow:none}.fgl-choice.is-selected{box-shadow:0 3px 0 #2563eb30}.fgl-exercise:has(.fgl-choices){padding-bottom:24px}.fgl-answer-form>button,.fgl-exercise>.fgl-button{min-height:48px}.fgl-exercise h1{max-width:26ch}
@keyframes fgl-response-arrive{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes fgl-seal-pop{from{transform:scale(.82)}to{transform:scale(1)}}
@media(max-width:600px){.fgl-quiz-mission{gap:11px;padding:15px 13px;margin:12px 0;border-radius:14px;flex-wrap:wrap}.fgl-mission-symbol{width:38px;height:38px;border-radius:12px;font-size:23px}.fgl-mission-copy{min-width:170px}.fgl-mission-copy h2{font-size:18px}.fgl-mission-copy p{font-size:13px}.fgl-round-path{width:100%;justify-content:flex-start;padding-left:49px}.fgl-round-path>span{width:25px;height:25px}.fgl-round-path small{width:auto;margin-left:4px}.fgl-response-moment{gap:10px;align-items:flex-start}.fgl-response-seal{width:34px;height:34px;font-size:21px}.fgl-response-moment strong{font-size:16px}.fgl-response-rays{font-size:22px}.fgl-exercise>.fgl-button,.fgl-answer-form>button{width:100%}}
@media(prefers-reduced-motion:reduce){.fgl-response-moment,.fgl-response-seal,.fgl-response-rays{animation:none}.fgl-choice{transition:none}}.fgl-app.fgl-reduce-motion .fgl-response-moment,.fgl-app.fgl-reduce-motion .fgl-response-seal,.fgl-app.fgl-reduce-motion .fgl-response-rays{animation:none}

.fgl-quiz-mission{display:block;padding:0;overflow:hidden}.fgl-mission-task{display:flex;align-items:center;gap:18px;padding:17px 24px}.fgl-quiz-duo{display:flex;align-items:center;gap:20px;padding:13px 24px 10px;border-bottom:1px solid var(--fgl-line);background:var(--fgl-paper)}.fgl-duo-faces{display:flex;align-items:center;gap:7px;flex:none;height:68px}.fgl-duo-learner .fgl-avatar{width:62px;height:62px;border:3px solid var(--fgl-blue-soft)}.fgl-duo-link{color:var(--fgl-blue);font-size:22px;letter-spacing:2px}.fgl-duo-margaux{width:61px;height:68px;object-fit:contain;transform-origin:50% 85%}.fgl-quiz-duo p{font-size:14px;margin:3px 0 0;color:var(--fgl-muted)}.fgl-quiz-duo.is-correct .fgl-duo-margaux{animation:fgl-margaux-agreement 480ms ease-out}.fgl-quiz-duo.is-encourage .fgl-duo-margaux,.fgl-quiz-duo.is-help .fgl-duo-margaux{animation:fgl-margaux-attentive 400ms ease-out}.fgl-quiz-duo.is-correct .fgl-duo-learner{animation:fgl-seal-pop 220ms ease-out}.fgl-duo-learner .fgl-profile-emblem{width:22px;height:18px}
@keyframes fgl-margaux-agreement{0%{transform:translateY(0) rotate(0)}35%{transform:translateY(-5px) rotate(-4deg)}70%{transform:translateY(-1px) rotate(3deg)}100%{transform:none}}@keyframes fgl-margaux-attentive{0%{transform:rotate(0)}45%{transform:rotate(-5deg)}100%{transform:rotate(0)}}
@media(max-width:600px){.fgl-quiz-mission{padding:0}.fgl-quiz-duo{gap:12px;padding:11px 13px}.fgl-duo-faces{height:51px;gap:3px}.fgl-duo-learner .fgl-avatar{width:44px;height:44px;border-width:2px}.fgl-duo-margaux{width:44px;height:51px}.fgl-duo-link{font-size:16px;letter-spacing:0}.fgl-quiz-duo p{font-size:12px;line-height:1.45}.fgl-quiz-duo .fgl-kicker{font-size:9px}.fgl-mission-task{padding:13px;gap:11px;flex-wrap:wrap}.fgl-mission-copy{min-width:150px}}
@media(prefers-reduced-motion:reduce){.fgl-duo-margaux,.fgl-duo-learner{animation:none!important}}.fgl-app.fgl-reduce-motion .fgl-duo-margaux,.fgl-app.fgl-reduce-motion .fgl-duo-learner{animation:none!important}
@media(max-width:600px){.fgl-practising .fgl-topbar{display:none}.fgl-practising .fgl-main{padding-top:18px}.fgl-practising .fgl-practice-top{margin-bottom:12px}.fgl-practising .fgl-progress-track{margin-bottom:14px}.fgl-practising .fgl-mission-task{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;padding:11px 13px}.fgl-practising .fgl-mission-symbol{width:30px;height:34px;font-size:20px;border-radius:9px}.fgl-practising .fgl-mission-copy{min-width:0}.fgl-practising .fgl-mission-copy h2{font-size:16px}.fgl-practising .fgl-mission-copy p{display:none}.fgl-practising .fgl-round-path{width:70px;padding:0;gap:4px;justify-content:flex-end}.fgl-practising .fgl-round-path>span{width:20px;height:20px;font-size:10px}.fgl-practising .fgl-round-path small{width:100%;font-size:10px}.fgl-practising .fgl-challenge{padding:11px 13px;gap:8px 12px;margin-bottom:15px}.fgl-practising .fgl-pace-choice>.fgl-eyebrow{display:none}.fgl-practising .fgl-challenge-status{font-size:10px}.fgl-practising .fgl-challenge>p{display:none}.fgl-practising .fgl-exercise{padding:19px 17px}.fgl-practising .fgl-exercise h1{font-size:25px;margin:16px 0 22px}.fgl-practising .fgl-input-note{line-height:1.5}.fgl-practising .fgl-countdown{width:48px;height:48px}.fgl-practising .fgl-challenge-settings{flex:1 1 auto}.fgl-practising .fgl-challenge select{font-size:16px}}
.fgl-response-companions{display:flex;align-items:center;gap:9px;margin:-4px 0 15px;height:43px}.fgl-response-companions .fgl-avatar{width:37px;height:37px;border:2px solid var(--fgl-paper)}.fgl-response-companions .fgl-duo-margaux{width:38px;height:43px}.fgl-response-companions.is-correct .fgl-duo-margaux{animation:fgl-margaux-agreement 480ms ease-out}.fgl-response-companions.is-encourage .fgl-duo-margaux{animation:fgl-margaux-attentive 400ms ease-out}
.fgl-challenge,.fgl-practising .fgl-challenge{border:0;background:transparent;padding:0 2px 12px;gap:8px 14px;border-radius:0}.fgl-pace-choice{margin-right:auto}.fgl-challenge-settings{display:flex;align-items:center;gap:12px}.fgl-challenge-status:empty{display:none}.fgl-countdown{width:46px;height:46px}.fgl-countdown>span{width:40px;height:40px;font-size:15px}.fgl-challenge-settings select{min-height:44px}.fgl-challenge-settings .fgl-text-button{min-height:44px}.fgl-answer-form.is-short textarea{min-height:68px;height:68px}.fgl-answer-form.is-checked>.fgl-input-note,.fgl-answer-form.is-checked>button{display:none}.fgl-feedback:has(.fgl-response-moment)>.fgl-feedback-heading{display:none}.fgl-feedback:has(.fgl-response-moment){position:relative}.fgl-response-moment{margin:0 0 13px;padding:0 82px 13px 0;gap:11px;min-height:50px}.fgl-response-moment .fgl-kicker,.fgl-response-moment small,.fgl-response-rays{display:none}.fgl-response-moment strong{font-size:17px;line-height:1.4}.fgl-response-companions{position:absolute;right:16px;top:16px;gap:4px;margin:0}.fgl-response-companions .fgl-avatar{width:31px;height:31px}.fgl-response-companions .fgl-duo-margaux{width:31px;height:36px}.fgl-response-companions .fgl-profile-symbol{display:none}
@media(max-width:600px){.fgl-practising .fgl-challenge{display:flex;flex-wrap:wrap;margin:0 0 8px;padding:0 0 9px;gap:5px 8px}.fgl-practising .fgl-pace-choice button{font-size:11px;min-height:44px;padding:8px}.fgl-practising .fgl-countdown{width:42px;height:42px}.fgl-practising .fgl-countdown>span{width:36px;height:36px}.fgl-practising .fgl-challenge-settings{display:flex;flex:1 1 100%;justify-content:flex-end;gap:13px}.fgl-practising .fgl-challenge-settings select{font-size:16px;min-height:44px}.fgl-practising .fgl-answer-form.is-short textarea{height:68px;min-height:68px}.fgl-response-moment{padding-right:70px;gap:8px}.fgl-response-moment strong{font-size:15px}.fgl-response-moment .fgl-response-seal{width:28px;height:28px;font-size:19px}.fgl-response-companions{right:12px;top:18px}.fgl-practising .fgl-exercise h1{margin-top:12px;margin-bottom:18px}}
.fgl-mission-symbol,.fgl-round-path>span.is-complete,.fgl-response-seal{color:var(--fgl-on-button)}.fgl-response-moment.is-learning .fgl-response-seal{color:var(--fgl-paper)}
/* FGL PERSONALITY BUNDLE */
/* Original FGL avatar studio. All controls remain native radios and disclosures. */
.fgl-avatar-studio{--studio-ink:var(--fgl-ink,#1c244b);--studio-muted:var(--fgl-muted,#5c6782);--studio-line:var(--fgl-line,#e4e8f1);--studio-paper:var(--fgl-paper,#fff);--studio-blue:var(--fgl-blue,#2563eb);color:var(--studio-ink);font-family:'DM Sans',sans-serif;max-width:940px;min-width:0}
.fgl-avatar-studio *{box-sizing:border-box}.fgl-avatar-studio .fgl-studio-preview-panel{display:flex;align-items:center;gap:28px;padding:26px;background:var(--fgl-blue-soft,#edf3ff);border:1px solid var(--studio-line);border-radius:20px;margin-bottom:20px}.fgl-avatar-studio .fgl-studio-preview{width:180px;height:180px;flex:none;filter:drop-shadow(0 9px 0 #1c244b0a)}.fgl-avatar-studio svg{display:block;width:100%;height:auto}.fgl-avatar-studio .fgl-studio-preview-copy>span{font-size:10px;letter-spacing:.13em;font-weight:700;color:var(--studio-blue)}.fgl-avatar-studio h3{font:36px/1.12 'Instrument Serif',Georgia,serif;margin:7px 0 12px}.fgl-avatar-studio p{font-size:14px;line-height:1.6;color:var(--studio-muted);margin:0 0 15px;max-width:330px}.fgl-avatar-studio button{font:600 13px 'DM Sans',sans-serif;cursor:pointer;min-height:44px;padding:10px 16px;border:1px solid var(--studio-line);border-radius:9px;background:var(--studio-paper);color:var(--studio-ink)}.fgl-avatar-studio .fgl-studio-shuffle{display:inline-flex;align-items:center;gap:9px}.fgl-avatar-studio .fgl-studio-shuffle>span{font-size:23px;line-height:1}.fgl-avatar-studio button:hover{border-color:var(--studio-blue)}.fgl-avatar-studio button:active{transform:translateY(1px)}.fgl-avatar-studio button:focus-visible,.fgl-avatar-studio summary:focus-visible{outline:3px solid var(--studio-blue);outline-offset:3px}
.fgl-avatar-studio details{border:1px solid var(--studio-line);border-radius:13px;background:var(--studio-paper);margin-top:11px;overflow:clip}.fgl-avatar-studio summary{list-style:none;display:grid;grid-template-columns:27px 1fr auto;gap:9px;align-items:center;min-height:65px;padding:16px 20px;font-weight:700;font-size:14px;cursor:pointer}.fgl-avatar-studio summary::-webkit-details-marker{display:none}.fgl-avatar-studio summary::after{content:'+';font-size:20px;grid-column:3;grid-row:1/3;font-weight:400;color:var(--studio-muted)}.fgl-avatar-studio details[open]>summary::after{content:'−'}.fgl-avatar-studio summary>span{grid-row:1/3;font-size:11px;color:var(--studio-blue)}.fgl-avatar-studio summary>small{grid-column:2;font-size:11px;font-weight:400;color:var(--studio-muted);margin-top:-4px}.fgl-avatar-studio details>div{padding:0 20px 20px}.fgl-avatar-studio .fgl-studio-category{border:0;padding:0;margin:20px 0 0;min-width:0}.fgl-avatar-studio legend{font-size:12px;font-weight:700;margin-bottom:12px;padding:0}.fgl-avatar-studio .fgl-studio-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.fgl-avatar-studio .fgl-studio-option{position:relative;display:flex;align-items:center;flex-direction:column;gap:7px;min-width:0;padding:9px 6px;border:1px solid var(--studio-line);border-radius:11px;cursor:pointer;background:var(--studio-paper);transition:border-color 140ms,background-color 140ms,transform 140ms}.fgl-avatar-studio .fgl-studio-option:hover{border-color:var(--studio-blue)}.fgl-avatar-studio .fgl-studio-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fgl-avatar-studio .fgl-studio-option:has(input:checked){border:2px solid var(--studio-blue);padding:8px 5px;background:var(--fgl-blue-soft,#edf3ff)}.fgl-avatar-studio .fgl-studio-option:has(input:focus-visible){outline:3px solid var(--studio-blue);outline-offset:3px}.fgl-avatar-studio .fgl-studio-option-visual{display:block;position:relative;width:68px;max-width:100%;aspect-ratio:1}.fgl-avatar-studio .fgl-studio-option-visual>b{display:none;position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;background:#2563eb;color:#fff;border:2px solid var(--studio-paper);border-radius:50%;font-size:11px;text-align:center;line-height:16px}.fgl-avatar-studio input:checked+.fgl-studio-option-visual>b{display:block}.fgl-avatar-studio .fgl-studio-option-name{font-size:11px;text-align:center;line-height:1.25;color:var(--studio-muted)}.fgl-avatar-studio input:checked~.fgl-studio-option-name{color:var(--studio-blue);font-weight:700}.fgl-avatar-studio .is-swatches{grid-template-columns:repeat(6,minmax(0,1fr))}.fgl-avatar-studio .is-swatches .fgl-studio-option-visual{width:35px}.fgl-avatar-studio .fgl-studio-option-visual>i{display:block;width:100%;height:100%;border-radius:50%;background:var(--studio-swatch);box-shadow:inset 0 0 0 1px #1c244b15}.fgl-avatar-studio .fgl-studio-preview.is-updated{animation:fgl-avatar-studio-change 180ms ease-out}
@keyframes fgl-avatar-studio-change{from{transform:translateY(3px) scale(.98)}to{transform:none}}
@media(min-width:780px){.fgl-avatar-studio{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;align-items:start}.fgl-avatar-studio .fgl-studio-preview-panel{position:sticky;top:20px;flex-direction:column;text-align:center;gap:23px;padding:24px 19px}.fgl-avatar-studio .fgl-studio-preview-copy h3{font-size:31px}.fgl-avatar-studio .fgl-studio-preview-copy p{font-size:12px}.fgl-avatar-studio .fgl-studio-preview-copy>span{font-size:9px}.fgl-avatar-studio .fgl-studio-categories>details:first-child{margin-top:0}.fgl-avatar-studio .fgl-studio-preview-copy .fgl-studio-shuffle{justify-content:center;width:100%}}
@media(max-width:500px){.fgl-avatar-studio .fgl-studio-preview-panel{padding:18px 15px;gap:16px;border-radius:15px}.fgl-avatar-studio .fgl-studio-preview{width:104px;height:104px}.fgl-avatar-studio h3{font-size:27px}.fgl-avatar-studio .fgl-studio-preview-copy>span{font-size:8px;letter-spacing:.08em}.fgl-avatar-studio p{font-size:12px;line-height:1.45;margin-bottom:9px}.fgl-avatar-studio .fgl-studio-shuffle{font-size:11px;padding:7px 10px}.fgl-avatar-studio summary{padding:14px;font-size:13px}.fgl-avatar-studio summary>small{font-size:10px}.fgl-avatar-studio details>div{padding:0 13px 16px}.fgl-avatar-studio .fgl-studio-options{gap:7px}.fgl-avatar-studio .fgl-studio-option{padding:7px 4px;min-height:44px}.fgl-avatar-studio .fgl-studio-option:has(input:checked){padding:6px 3px}.fgl-avatar-studio .fgl-studio-option-visual{width:52px}.fgl-avatar-studio .fgl-studio-option-name{font-size:10px}.fgl-avatar-studio .is-swatches{grid-template-columns:repeat(3,minmax(0,1fr))}.fgl-avatar-studio .is-swatches .fgl-studio-option{flex-direction:row;gap:9px;padding:7px}.fgl-avatar-studio .is-swatches .fgl-studio-option:has(input:checked){padding:6px}.fgl-avatar-studio .is-swatches .fgl-studio-option-visual{width:26px;min-width:26px}.fgl-avatar-studio .is-swatches .fgl-studio-option-name{text-align:left;font-size:9px;min-width:0;overflow-wrap:anywhere}.fgl-avatar-studio .fgl-studio-option-visual>b{width:17px;height:17px;line-height:13px;font-size:9px}}
@media(max-width:350px){.fgl-avatar-studio .fgl-studio-preview-panel{gap:12px;padding:15px 11px}.fgl-avatar-studio .fgl-studio-preview{width:90px;height:90px}.fgl-avatar-studio h3{font-size:24px}.fgl-avatar-studio .fgl-studio-preview-copy>span{font-size:7px}.fgl-avatar-studio .is-swatches .fgl-studio-option{gap:5px}.fgl-avatar-studio .is-swatches .fgl-studio-option-visual{width:23px;min-width:23px}}
@media(prefers-reduced-motion:reduce){.fgl-avatar-studio *{transition:none!important;animation:none!important}}.fgl-reduce-motion .fgl-avatar-studio *{transition:none!important;animation:none!important}

/* Personal identity: a warm character studio, within the FTE learning space. */
.fgl-identity{max-width:1060px;margin:auto}.fgl-identity-heading{max-width:700px;margin-bottom:32px}.fgl-identity-heading h1{font-size:clamp(32px,4.2vw,54px);line-height:1.08;letter-spacing:-1.8px;margin:14px 0}.fgl-identity-heading h1 em{font-family:'Instrument Serif',serif;font-weight:400;color:var(--blue,#2563eb)}.fgl-identity-heading p{max-width:540px;color:var(--fgl-muted,#59647e);font-size:16px;line-height:1.6}.fgl-identity-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(245px,.85fr);gap:32px;align-items:start}.fgl-identity-controls>label:first-child{font-weight:700;display:block;margin-bottom:8px}.fgl-identity-controls>input{width:100%;box-sizing:border-box;min-height:48px;padding:12px 16px;border:1px solid var(--fgl-line,#dbe0eb);border-radius:12px;background:var(--fgl-paper,#fff);color:inherit;font:inherit}.fgl-studio-mode{display:flex;align-items:center;gap:10px;min-height:48px;font-weight:700;margin:16px 0 8px}.fgl-studio-mode input{width:20px;height:20px;accent-color:#2563eb}.fgl-identity-companion{position:sticky;top:24px;background:#edf0ff;border:1px solid #dde3f8;border-radius:24px;padding:28px 22px;color:#1c244b;text-align:center}.fgl-identity-duo{display:flex;align-items:center;justify-content:center;gap:4px;padding:22px 0 10px}.fgl-identity-duo [data-identity-portrait]{width:126px;height:126px;flex-shrink:1}.fgl-identity-duo [data-identity-portrait]>svg,.fgl-identity-duo [data-identity-portrait]>img{width:100%;height:100%;object-fit:cover;border-radius:24px}.fgl-identity-duo>img{max-width:42%;object-fit:contain}.fgl-duo-plus{font-size:24px;color:#6976a5}.fgl-margaux-bubble{background:#fff;border-radius:18px;padding:18px 10px;line-height:1.6;position:relative}.fgl-margaux-bubble:before{content:'';position:absolute;top:-9px;right:25%;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid #fff}.fgl-margaux-bubble span{display:block;font-size:11px;color:#67728d;margin-top:8px}.fgl-identity-pass{display:flex;align-items:center;gap:12px;text-align:left;border-top:1px dashed #bac4e6;margin-top:24px;padding-top:20px}.fgl-identity-pass>span{font-size:28px;color:#2563eb}.fgl-identity-pass small{font-size:9px;letter-spacing:1px}.fgl-identity-pass strong{display:block;font-size:22px;overflow-wrap:anywhere}.fgl-identity-pass p{font-size:11px;margin:5px 0}.fgl-identity-companion>.fgl-small{font-size:12px;line-height:1.6;margin:18px 0 0;color:#59647e}.fgl-identity-alternatives,.fgl-identity-symbols{border-top:1px solid var(--fgl-line,#dbe0eb);margin-top:18px;padding-top:12px}.fgl-identity summary{cursor:pointer;min-height:44px;align-content:center;font-weight:600}.fgl-identity-finish{margin-top:28px;padding-top:22px;border-top:1px solid var(--fgl-line,#dbe0eb)}.fgl-identity-finish .fgl-check{display:flex;align-items:center;gap:12px;min-height:44px;margin-bottom:16px}.fgl-identity-finish input{width:20px;height:20px;accent-color:#2563eb}.fgl-avatar--studio{overflow:hidden;padding:0!important;background:transparent!important;display:inline-flex}.fgl-avatar--studio svg{width:100%;height:100%;display:block}.fgl-identity .fgl-portrait-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}.fgl-identity .fgl-emblem-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:800px){.fgl-identity-layout{grid-template-columns:1fr;gap:20px}.fgl-identity-companion{position:static;display:grid;grid-template-columns:140px 1fr;gap:8px;padding:18px;text-align:left}.fgl-identity-companion>.fgl-kicker{grid-column:1/-1}.fgl-identity-duo{padding:0}.fgl-identity-duo [data-identity-portrait]{width:70px;height:70px}.fgl-identity-duo>img{width:65px;height:80px}.fgl-margaux-bubble{font-size:12px;padding:12px}.fgl-margaux-bubble span{font-size:10px}.fgl-identity-pass{grid-column:1/-1;margin-top:8px;padding-top:12px}.fgl-identity-companion>.fgl-small{grid-column:1/-1;margin-top:6px}.fgl-identity-heading{margin-bottom:20px}.fgl-identity-heading h1{letter-spacing:-1px}.fgl-identity .fgl-portrait-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:370px){.fgl-identity-companion{grid-template-columns:1fr}.fgl-identity-duo{justify-content:flex-start}.fgl-identity .fgl-emblem-gallery,.fgl-identity .fgl-portrait-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
.fgl-identity .fgl-avatar-studio{display:block}.fgl-identity .fgl-avatar-studio .fgl-studio-preview-panel{position:static;flex-direction:row;text-align:left;gap:20px;padding:20px}.fgl-identity .fgl-avatar-studio .fgl-studio-preview{width:104px;height:104px}.fgl-identity .fgl-avatar-studio .fgl-studio-preview-copy h3{font-size:27px}.fgl-identity .fgl-avatar-studio .fgl-studio-preview-copy .fgl-studio-shuffle{width:auto}
/* The next step stays visible while learners explore the studio. */
.fgl-identity-finish{position:sticky;bottom:0;z-index:20;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:16px;padding:12px 18px;box-shadow:0 -8px 24px #1c244b0a;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.fgl-identity-finish .fgl-identity-confirm-note{font-size:13px;margin:0}.fgl-identity-finish>.fgl-help{display:none}.fgl-identity-finish .fgl-actions{margin:0}.fgl-identity-finish .fgl-button{background:#2563eb;color:#fff}.fgl-emblem-fieldset>label{display:block;font-weight:600;font-size:13px;margin-top:12px}.fgl-emblem-fieldset input[type=search],.fgl-emblem-fieldset select{width:100%;box-sizing:border-box;border:1px solid var(--fgl-line);background:var(--fgl-paper);color:var(--fgl-ink);font:inherit;padding:12px;border-radius:10px;margin-top:8px}.fgl-emblem-fieldset select{height:190px}.fgl-emblem-fieldset option{padding:6px}.fgl-emblem-selected{display:flex;align-items:center;gap:12px;background:var(--fgl-blue-soft);border-radius:12px;padding:14px}.fgl-emblem-selected img{object-fit:contain}.fgl-symbol-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.fgl-symbol-shortcuts button{display:flex;align-items:center;gap:8px;min-height:44px;background:var(--fgl-paper);color:var(--fgl-ink);border:1px solid var(--fgl-line);border-radius:10px;padding:8px 12px;cursor:pointer}.fgl-symbol-shortcuts img{width:22px;height:22px}.fgl-symbol-shortcuts button[aria-pressed=true]{border-color:var(--fgl-blue);background:var(--fgl-blue-soft)}.fgl-studio-options.is-swatches .fgl-studio-option:has(input:checked){box-shadow:0 0 0 2px var(--studio-paper),0 0 0 4px var(--studio-blue)}
@media(max-width:680px){.fgl-identity-finish{bottom:8px;padding:10px 12px;gap:6px}.fgl-identity-finish .fgl-identity-confirm-note{font-size:11px}.fgl-identity-finish .fgl-actions{width:100%}.fgl-identity-finish .fgl-button{flex:1;justify-content:center}.fgl-identity-finish{margin-bottom:45px}.fgl-emblem-fieldset{min-width:0}}

.fgl-identity-symbols .fgl-emblem-fieldset{border:0;margin:0;padding:0}

/* One companion strip. The sentence remains the focal point. */
.fgl-practising .fgl-compact-mission{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0;margin:8px 0 16px;border:0;border-radius:0;background:none;overflow:visible}
.fgl-compact-mission .fgl-quiz-duo{display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;flex:0 1 auto;min-width:0}
.fgl-compact-mission .fgl-duo-faces{display:flex;align-items:center;gap:4px;height:44px;flex:none}
.fgl-compact-mission .fgl-duo-learner .fgl-avatar{width:38px;height:38px;border:2px solid var(--fgl-blue-soft)}
.fgl-compact-mission .fgl-duo-margaux{width:38px;height:44px;object-fit:contain;transform-origin:50% 85%}
.fgl-compact-mission .fgl-margaux-portrait{display:flex;align-items:center;flex:none}
.fgl-compact-mission .fgl-profile-emblem{width:16px;height:13px}
.fgl-duo-caption{font-size:12px;font-weight:600;color:var(--fgl-muted);white-space:nowrap}
.fgl-mission-progress{width:min(42%,240px);min-width:100px;display:grid;gap:7px}
.fgl-mission-count{font-size:12px;font-weight:600;color:var(--fgl-muted);font-variant-numeric:tabular-nums;text-align:right}
.fgl-practising .fgl-compact-mission .fgl-round-path{display:flex;align-items:center;justify-content:stretch;gap:4px;width:100%;padding:0;flex-wrap:nowrap}
.fgl-practising .fgl-compact-mission .fgl-round-path>span{height:6px;min-width:0;width:auto;flex:1;border:0;border-radius:3px;background:var(--fgl-line);box-shadow:none}
.fgl-practising .fgl-compact-mission .fgl-round-path>span.is-complete{background:var(--fgl-blue)}
.fgl-practising .fgl-compact-mission .fgl-round-path>span.is-active{background:var(--fgl-blue-soft);outline:1px solid var(--fgl-blue);outline-offset:-1px}
.fgl-compact-mission .fgl-quiz-duo.is-correct .fgl-duo-margaux{animation:fgl-companion-lift 240ms ease-out 1}
.fgl-compact-mission .fgl-quiz-duo.is-help .fgl-duo-margaux,.fgl-compact-mission .fgl-quiz-duo.is-supported .fgl-duo-margaux{animation:fgl-companion-nod 240ms ease-out 1}
.fgl-compact-mission .fgl-quiz-duo.is-encourage .fgl-duo-margaux{animation:none}
.fgl-feedback .fgl-response-moment{display:flex;align-items:center;gap:10px;padding:0;margin:0 0 8px;min-height:28px;border:0;background:none}
.fgl-feedback .fgl-response-moment strong{font-size:17px;line-height:1.4}
.fgl-feedback .fgl-response-seal{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;font-size:18px;border:0;box-shadow:none}
.fgl-response-moment.is-supported .fgl-response-seal{color:var(--fgl-blue);background:var(--fgl-blue-soft)}
@keyframes fgl-companion-lift{0%,100%{transform:translateY(0)}45%{transform:translateY(-3px)}}
@keyframes fgl-companion-nod{0%,100%{transform:rotate(0)}45%{transform:rotate(4deg)}}
@media(max-width:680px){.fgl-practising .fgl-compact-mission{gap:12px;padding:6px 0;margin:4px 0 12px}.fgl-compact-mission .fgl-duo-faces{height:40px}.fgl-compact-mission .fgl-duo-learner .fgl-avatar{width:34px;height:34px}.fgl-compact-mission .fgl-duo-margaux{width:34px;height:40px}.fgl-duo-caption{font-size:11px}.fgl-mission-progress{width:36%;min-width:90px}.fgl-mission-count{font-size:11px}.fgl-practising .fgl-compact-mission .fgl-round-path{gap:3px}}
@media(max-width:360px){.fgl-duo-caption{display:none}.fgl-mission-progress{width:50%}}
@media(prefers-reduced-motion:reduce){.fgl-compact-mission .fgl-duo-margaux{animation:none!important;transition:none!important}}
.fgl-reduce-motion .fgl-compact-mission .fgl-duo-margaux{animation:none!important;transition:none!important}

/* A concise instruction above the sentence. Input and feedback live in the same stage. */
.fgl-question{margin:12px 0 16px}
.fgl-exercise .fgl-question h1{font:700 clamp(20px,2.2vw,25px)/1.3 'DM Sans',sans-serif;letter-spacing:-.025em;margin:0 0 6px;text-wrap:initial}
.fgl-question-instruction{font-size:14px;line-height:1.5;max-width:65ch;color:var(--fgl-muted);margin:0 0 12px;white-space:pre-line}
.fgl-question-sentence{background:var(--fgl-input);border:1px solid var(--fgl-line);border-radius:12px;padding:16px 20px;margin:12px 0 0}
.fgl-question-sentence>p{font-size:clamp(23px,2.4vw,30px);font-weight:600;letter-spacing:-.02em;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere;margin:0;color:var(--fgl-ink)}
.fgl-question-sentence mark{background:var(--fgl-blue-soft);color:inherit;border-bottom:2px solid var(--fgl-blue);padding:0 3px;border-radius:4px}
.fgl-sentence-gap{display:inline-block;border-bottom:2px solid var(--fgl-blue);color:var(--fgl-blue);text-align:center;min-width:48px;padding:0 8px;line-height:1.25}
.fgl-question+.fgl-answer-form{margin-top:16px}.fgl-answer-form label{font-size:13px}.fgl-exercise .fgl-selection-reason{font-size:12px;line-height:1.5}
.fgl-profile-menu{position:relative;z-index:40}.fgl-profile-menu>summary{list-style:none;cursor:pointer;border:1px solid transparent;border-radius:12px;padding:5px 9px;min-height:48px;box-sizing:border-box}.fgl-profile-menu>summary::-webkit-details-marker{display:none}.fgl-profile-menu[open]>summary,.fgl-profile-menu>summary:hover{background:var(--fgl-paper);border-color:var(--fgl-line)}.fgl-profile-chevron{font-size:20px;color:var(--fgl-muted);margin-left:4px}.fgl-profile-popover{position:absolute;right:0;top:calc(100% + 10px);width:285px;max-width:calc(100vw - 32px);padding:9px;border:1px solid var(--fgl-line);border-radius:16px;background:var(--fgl-paper);color:var(--fgl-ink);box-shadow:0 12px 38px #1c244b1c;text-align:left}.fgl-profile-menu-heading{padding:9px 12px 14px;border-bottom:1px solid var(--fgl-line);margin-bottom:6px;overflow-wrap:anywhere}.fgl-profile-menu-heading strong{display:block;font-size:16px}.fgl-profile-menu-heading small{display:block;color:var(--fgl-muted);font-size:11px}.fgl-profile-popover button,.fgl-profile-popover a{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--fgl-ink);font:600 13px/1.4 'DM Sans',sans-serif;text-align:left;text-decoration:none;box-sizing:border-box;cursor:pointer}.fgl-profile-popover button:hover,.fgl-profile-popover a:hover{background:var(--fgl-blue-soft)}.fgl-profile-popover button svg{width:18px;height:18px;flex:0 0 18px}.fgl-profile-popover small{display:block;font-size:11px;font-weight:400;color:var(--fgl-muted);margin-top:3px}.fgl-profile-popover .fgl-profile-signout{border-top:1px solid var(--fgl-line);margin-top:6px;border-radius:0 0 10px 10px}.fgl-topbar{overflow:visible}
@media(max-width:680px){.fgl-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.fgl-profile-menu>summary>span:not(.fgl-avatar-stack):not(.fgl-profile-chevron){display:none}.fgl-profile-menu>summary{padding:3px 6px;gap:4px}.fgl-question-sentence{padding:16px}.fgl-question-instruction{font-size:14px}.fgl-exercise .fgl-question h1{font-size:23px}.fgl-question-sentence>p{font-size:25px}.fgl-question{margin-top:12px}.fgl-profile-popover{width:280px}}

/* Answer feedback is one brief result; details remain optional. */
.fgl-submitted-answer{margin:10px 0 12px;border-left:3px solid var(--fgl-line);padding-left:12px}.fgl-submitted-answer>span{display:block;color:var(--fgl-muted);font-size:11px}.fgl-submitted-answer>p{font-size:17px;font-weight:600;line-height:1.5;margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.fgl-feedback-reason{font-size:14px;line-height:1.5}.fgl-feedback-explanation{font-size:14px;margin:6px 0}.fgl-feedback-explanation summary{font-weight:600;min-height:44px;align-content:center;cursor:pointer}.fgl-feedback-explanation p{margin:6px 0}
.fgl-keyboard-next{font-size:11px;color:var(--fgl-muted);white-space:nowrap}.fgl-feedback .fgl-response-moment{padding:0;margin:0 0 8px;min-height:28px}.fgl-feedback .fgl-response-moment strong{font-size:17px}.fgl-feedback .fgl-feedback-practice{margin-top:8px}.fgl-feedback .fgl-feedback-practice button{font-size:12px;padding:8px 12px}.fgl-practice-top{scroll-margin-top:12px}.fgl-feedback .fgl-actions{align-items:center;gap:8px}
@media(max-width:680px){.fgl-practising .fgl-sidebar{display:none}.fgl-practising .fgl-main{padding-top:12px}.fgl-practising .fgl-exercise-layout{margin-top:8px}.fgl-question{margin:8px 0 12px}.fgl-exercise .fgl-question h1{font-size:21px;margin:0 0 6px}.fgl-question-instruction{font-size:14px;margin-bottom:10px}.fgl-question-sentence{padding:14px;margin-top:10px}.fgl-question-sentence>p{font-size:25px;line-height:1.45}.fgl-question+.fgl-answer-form{margin-top:12px}.fgl-answer-form textarea{min-height:60px}.fgl-keyboard-next{display:none}.fgl-feedback .fgl-actions>[data-action=next]{width:100%;justify-content:center;min-height:48px}.fgl-feedback .fgl-actions>[data-action=coach]{font-size:12px;padding:9px 12px}.fgl-feedback .fgl-feedback-practice{margin-top:6px}}

/* The active mission is one centered stage, not a dashboard beside a form. */
.fgl-practising .fgl-main:has(.fgl-compact-mission){width:100%;max-width:820px;margin-inline:auto;box-sizing:border-box}
.fgl-compact-mission~.fgl-exercise-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.fgl-compact-mission~.fgl-exercise-layout .fgl-exercise{padding:24px;border-top-width:1px}
.fgl-compact-mission~.fgl-exercise-layout .fgl-exercise>.fgl-kicker{letter-spacing:.06em;font-size:10px}
.fgl-compact-mission~.fgl-exercise-layout .fgl-lesson{padding:12px 16px;margin:0}
.fgl-lesson-compact{display:flex;justify-content:center;padding:0}
.fgl-lesson-compact .fgl-button{background:transparent;border-color:transparent;color:var(--fgl-muted);min-height:44px;padding:8px 14px;font-size:13px;box-shadow:none}
.fgl-lesson-compact .fgl-button:hover{color:var(--fgl-blue);background:var(--fgl-blue-soft)}
.fgl-pace-menu{margin:0 0 10px;font-size:12px;color:var(--fgl-muted)}
.fgl-pace-menu>summary{width:fit-content;min-height:44px;display:list-item;align-content:center;margin-left:auto;cursor:pointer;font-weight:500}
.fgl-pace-menu[open]{padding-bottom:8px}.fgl-pace-menu[open]>summary{margin-bottom:6px}
.fgl-pace-menu .fgl-challenge{margin:0;padding:8px 0 0}
.fgl-answer-form.is-inline{margin-top:8px}
.fgl-inline-sentence{padding:20px 16px;border:1px solid var(--fgl-line);border-radius:12px;background:var(--fgl-input);font-size:clamp(24px,2.5vw,30px);font-weight:600;line-height:2;color:var(--fgl-ink);overflow-wrap:anywhere}
.fgl-inline-sentence input{display:inline-block;vertical-align:baseline;width:clamp(92px,28%,160px);max-width:100%;min-height:48px;box-sizing:border-box;padding:3px 8px;border:0;border-bottom:3px solid var(--fgl-blue);border-radius:6px 6px 2px 2px;background:var(--fgl-paper);color:var(--fgl-ink);font:inherit;line-height:1.5;text-align:center;outline-offset:3px}
.fgl-inline-sentence input::placeholder{color:var(--fgl-blue)}
.fgl-inline-sentence input:focus{outline:2px solid var(--fgl-blue);box-shadow:none}
.fgl-answer-tools{margin:4px 0 8px;min-height:0}
.fgl-accent-tools{font-size:12px;color:var(--fgl-muted)}
.fgl-accent-tools>summary{min-height:44px;align-content:center;width:fit-content;cursor:pointer}
.fgl-accent-tools .fgl-accents{margin:0 0 12px;gap:5px}.fgl-accent-tools .fgl-accents button{min-width:36px}
.fgl-answer-action{display:flex;justify-content:flex-end;margin-top:12px}
.fgl-answer-action>.fgl-button{min-width:190px;min-height:48px;justify-content:center}
.fgl-built-sentence{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:88px;padding:16px;background:var(--fgl-input);border:1px solid var(--fgl-line);border-radius:12px}
.fgl-built-sentence>span{font-size:14px;color:var(--fgl-muted)}
.fgl-built-sentence>button{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:9px 13px;background:var(--fgl-paper);color:var(--fgl-ink);border:1px solid var(--fgl-blue);border-radius:8px;font:600 16px/1.4 'DM Sans',sans-serif;cursor:pointer}
.fgl-built-sentence>button>span{font-size:16px;color:var(--fgl-muted)}
.fgl-answer-form>.fgl-word-bank{margin:12px 0 8px}.fgl-answer-form>.fgl-word-bank>p{margin:0 0 8px}.fgl-answer-form>.fgl-word-bank>div>button{font-size:16px}
.fgl-answer-form>.fgl-word-bank>div>button:disabled{visibility:hidden}
.fgl-built-sentence>button:active,.fgl-answer-form>.fgl-word-bank>div>button:active{transform:scale(.97)}
.fgl-built-sentence>button:focus-visible,.fgl-answer-form>.fgl-word-bank>div>button:focus-visible{outline:3px solid var(--fgl-blue);outline-offset:3px}
.fgl-answer-form.is-checked .fgl-answer-action{display:none}
@media(max-width:680px){.fgl-practising .fgl-main:has(.fgl-compact-mission){padding:12px 16px 28px}.fgl-compact-mission~.fgl-exercise-layout .fgl-exercise{padding:18px 16px}.fgl-practising .fgl-practice-top{margin-bottom:0;gap:8px;font-size:11px}.fgl-practising .fgl-practice-top .fgl-back{margin-bottom:0;min-height:44px}.fgl-pace-menu{margin:0 0 4px}.fgl-pace-menu>summary{min-height:44px;padding:4px 0;box-sizing:border-box}.fgl-inline-sentence{padding:16px 12px;font-size:25px;line-height:2}.fgl-inline-sentence input{min-width:88px;width:112px;font-size:25px}.fgl-answer-action>.fgl-button{width:100%;min-width:0}.fgl-answer-action{margin-top:8px}.fgl-answer-tools{margin-bottom:0}.fgl-built-sentence{min-height:80px;padding:12px}.fgl-compact-mission~.fgl-exercise-layout .fgl-exercise>.fgl-feedback{margin:18px 0 0;padding:16px 14px}.fgl-practising .fgl-report{margin-top:10px}.fgl-practising .fgl-report>.fgl-text-button{font-size:11px}}

/* Grammar guidance stays a plain learning surface. Ticket styling belongs only to badges. */
.fgl-guided-home{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}.fgl-next-learning{padding:28px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-top:3px solid var(--fgl-blue);border-radius:20px;text-align:left}.fgl-next-learning h2{font-size:28px;line-height:1.2;margin:12px 0}.fgl-next-learning>p{font-size:15px;color:var(--fgl-muted);line-height:1.6;max-width:60ch}.fgl-next-size{display:inline-block;background:var(--fgl-blue-soft);color:var(--fgl-blue);padding:7px 10px;border-radius:8px;font-size:12px;font-weight:600}.fgl-next-learning>.fgl-actions{margin-top:18px}.fgl-next-learning [data-action=recommended]{white-space:normal;line-height:1.4;min-height:52px;text-align:left;justify-content:space-between;max-width:100%}.fgl-next-learning [data-action=recommended] svg{flex-shrink:0}.fgl-next-companion{display:flex;align-items:center;gap:14px;background:var(--fgl-blue-soft);border-radius:13px;padding:13px 16px;margin-top:16px}.fgl-next-companion img{object-fit:contain;flex:0 0 52px}.fgl-next-companion p{margin:0;font-size:13px;line-height:1.5}.fgl-other-learning,.fgl-coach-disclosure{font-size:13px;margin-top:10px}.fgl-other-learning>summary,.fgl-coach-disclosure>summary{min-height:44px;align-content:center;cursor:pointer;color:var(--fgl-ink)}.fgl-coach-disclosure{border-top:1px solid var(--fgl-line);padding-top:8px}.fgl-coach-personal{padding:10px 0;font-size:14px;line-height:1.6}.fgl-coach-personal small{color:var(--fgl-muted)}.fgl-guided-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0;font-size:12px;color:var(--fgl-muted)}.fgl-guided-sequence b{display:block;color:var(--fgl-ink);font-size:13px;margin-bottom:6px}.fgl-guided-home>aside>.fgl-text-button{display:block;min-height:44px}.fgl-finish .fgl-next-learning{margin-top:24px}.fgl-finish .fgl-next-learning h2{font-size:24px}
.fgl-badge-collection{margin:20px 0 26px;text-align:left}.fgl-badge-collection.is-compact{margin-top:0}.fgl-badge-collection .fgl-section-heading{align-items:start;gap:10px}.fgl-badge-collection h2{font-size:18px}.fgl-badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.fgl-badge-collection.is-compact .fgl-badge-grid{grid-template-columns:1fr}.fgl-badge-ticket{position:relative;border:1px solid #d5c7a7;border-radius:12px;background:#fff7e4;color:#343044;padding:19px 20px;box-shadow:0 4px 0 #e5ddcd}.fgl-badge-ticket.is-locked{background:#f3f1eb;color:#595564;box-shadow:0 3px 0 #e1ddd3}.fgl-badge-ticket:before,.fgl-badge-ticket:after{content:'';position:absolute;width:12px;height:20px;bottom:31px;border:1px solid #d5c7a7;background:var(--fgl-paper)}.fgl-badge-ticket:before{left:-1px;border-left:0;border-radius:0 12px 12px 0}.fgl-badge-ticket:after{right:-1px;border-right:0;border-radius:12px 0 0 12px}.fgl-badge-top{display:flex;align-items:center;justify-content:space-between;gap:9px;font-size:9px;font-weight:700;letter-spacing:.06em}.fgl-badge-top strong{padding:5px;border:1px solid #81745d;border-radius:3px;font-size:9px;white-space:nowrap}.is-earned .fgl-badge-top strong{color:#245c48;border:2px solid #54836c;transform:rotate(-4deg)}.fgl-badge-ticket h3{font-size:24px;letter-spacing:-.6px;line-height:1.2;margin:19px 0 5px}.fgl-badge-ticket>p{margin:0;font-size:13px;line-height:1.5}.fgl-badge-ticket details{margin-top:8px;font-size:12px}.fgl-badge-ticket summary{min-height:44px;align-content:center;cursor:pointer}.fgl-badge-ticket details p{font-size:12px;line-height:1.6}.fgl-badge-bottom{border-top:1px dashed #9d917b;margin-top:12px;padding-top:13px;display:flex;justify-content:space-between;gap:8px;font-size:9px;font-weight:600;letter-spacing:.06em}.fgl-badge-ticket:focus-within{outline:2px solid var(--fgl-blue);outline-offset:4px}.fgl-accents button{min-width:44px;min-height:44px}.fgl-next-learning summary:focus-visible{outline:3px solid var(--fgl-blue);outline-offset:3px}
@media(max-width:900px){.fgl-guided-home{grid-template-columns:1fr}.fgl-guided-home>aside{display:grid;grid-template-columns:1fr}.fgl-guided-home .fgl-badge-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.fgl-badge-grid{grid-template-columns:1fr}}
@media(max-width:680px){.fgl-next-learning{padding:21px 18px}.fgl-next-learning h2{font-size:25px}.fgl-next-learning [data-action=recommended]{width:100%}.fgl-guided-sequence{gap:10px}.fgl-badge-collection .fgl-section-heading{flex-wrap:wrap}.fgl-guided-home{gap:10px}.fgl-guided-home .fgl-badge-grid{grid-template-columns:1fr}.fgl-next-learning .fgl-next-companion{padding:12px}.fgl-next-learning .fgl-next-companion img{width:44px;height:52px;flex-basis:44px}.fgl-finish .fgl-next-learning{padding:18px}.fgl-finish>.fgl-actions{justify-content:flex-start}}
@media(prefers-reduced-motion:no-preference){.fgl-badge-ticket.is-earned:hover .fgl-badge-top strong{transform:rotate(0);transition:transform .15s ease-out}}
.fgl-reduce-motion .fgl-badge-top strong{transition:none!important}

.fgl-session-details{text-align:left;margin:16px 0 24px;border-bottom:1px solid var(--fgl-line)}.fgl-session-details>summary{min-height:48px;align-content:center;cursor:pointer;font-size:14px}.fgl-finish-compact>img{width:64px;height:72px;object-fit:contain}.fgl-finish-compact>h1{font-size:30px;margin:12px 0}.fgl-finish-compact>p{font-size:15px;margin:8px 0}.fgl-finish-compact .fgl-next-learning{margin-top:20px}
@media(max-width:680px){.fgl-finish-compact>h1{font-size:26px}.fgl-finish-compact>img{width:48px;height:54px}.fgl-finish-compact .fgl-next-learning h2{font-size:22px}}

/* The sentence leads; the existing avatar and official Margaux supply a quiet reply.
   Uses FTE theme tokens and a 4px spacing rhythm. No timers or blocking overlays. */
.fgl-learning-companion {
  --fgl-companion-quick: 220ms;
  --fgl-companion-celebrate: 280ms;
  --fgl-companion-ease: cubic-bezier(.23, 1, .32, 1);
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
  padding: 4px 0;
  color: var(--fgl-ink);
}
.fgl-learning-companion-faces {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 0 0 auto;
  min-height: 52px;
}
.fgl-learning-companion-learner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
.fgl-learning-companion-learner .fgl-avatar {
  width: 44px;
  height: 44px;
  border: 2px solid var(--fgl-blue-soft);
  box-sizing: border-box;
}
.fgl-learning-companion-learner .fgl-profile-emblem { width: 16px; height: 13px; }
.fgl-learning-companion-margaux {
  display: block;
  flex: 0 0 44px;
  width: 44px;
  height: 52px;
  object-fit: contain;
  transform-origin: 50% 85%;
}
.fgl-learning-companion-copy { min-width: 0; }
.fgl-learning-companion-name {
  display: block;
  color: var(--fgl-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
}
.fgl-learning-companion .fgl-learning-companion-caption {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 2px 0 0;
  color: var(--fgl-ink);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.fgl-learning-companion-caption > svg {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  color: var(--fgl-blue);
}
.fgl-learning-companion.is-correct .fgl-learning-companion-caption > svg,
.fgl-learning-companion.is-complete .fgl-learning-companion-caption > svg { color: var(--fgl-good); }
.fgl-learning-companion.is-correct .fgl-learning-companion-margaux {
  animation: fgl-learning-companion-lift var(--fgl-companion-quick) var(--fgl-companion-ease) 1;
}
.fgl-learning-companion.is-help .fgl-learning-companion-margaux {
  animation: fgl-learning-companion-nod var(--fgl-companion-quick) var(--fgl-companion-ease) 1;
}
.fgl-learning-companion.is-listening .fgl-learning-companion-caption > svg {
  animation: fgl-learning-companion-listen 500ms ease-out 1;
}
.fgl-learning-companion.is-complete .fgl-learning-companion-margaux,
.fgl-learning-companion.is-complete .fgl-learning-companion-learner {
  animation: fgl-learning-companion-lift var(--fgl-companion-celebrate) var(--fgl-companion-ease) 1;
}
.fgl-learning-companion.is-complete .fgl-learning-companion-learner { animation-delay: 40ms; }
@keyframes fgl-learning-companion-lift {
  0%, 100% { transform: translateY(0); }
  40% { transform: translateY(-3px); }
}
@keyframes fgl-learning-companion-nod {
  0%, 100% { transform: rotate(0); }
  45% { transform: rotate(3deg); }
}
@keyframes fgl-learning-companion-listen {
  0%, 100% { opacity: 1; }
  50% { opacity: .45; }
}
@media (max-width: 680px) {
  .fgl-learning-companion { gap: 8px; }
  .fgl-learning-companion-faces { min-height: 44px; }
  .fgl-learning-companion-learner,
  .fgl-learning-companion-learner .fgl-avatar { width: 36px; height: 36px; }
  .fgl-learning-companion-learner { flex-basis: 36px; }
  .fgl-learning-companion-margaux { width: 36px; height: 44px; flex-basis: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .fgl-learning-companion,
  .fgl-learning-companion * { animation: none !important; transition: none !important; }
}
.fgl-reduce-motion .fgl-learning-companion,
.fgl-reduce-motion .fgl-learning-companion *,
.fgl-learning-companion.fgl-reduce-motion,
.fgl-learning-companion.fgl-reduce-motion * { animation: none !important; transition: none !important; }

/* Motion tokens from animation-systems; no transition delays learning controls. */
.fgl-app{--fgl-motion-press:140ms;--fgl-motion-state:220ms;--fgl-motion-enter:280ms;--fgl-motion-ease:cubic-bezier(.2,.8,.2,1)}
.fgl-mission-heading{margin:10px 0 14px}.fgl-mission-heading h2{font-size:24px;line-height:1.2;margin:6px 0}.fgl-mission-heading .fgl-eyebrow{font-size:10px}.fgl-compact-mission .fgl-learning-companion{flex:1;min-width:0}.fgl-mission-progress{flex:0 0 132px}.fgl-mission-audio{background:var(--fgl-blue-soft);border:1px solid var(--fgl-line);padding:16px;border-radius:14px;margin:0 0 22px;text-align:left}.fgl-mission-audio-head{display:flex;align-items:center;gap:12px}.fgl-mission-audio h3{font-size:18px;line-height:1.3;margin:4px 0}.fgl-mission-audio small{font-size:12px}.fgl-mission-cast{display:flex;flex-shrink:0}.fgl-mission-cast img{border:2px solid var(--fgl-paper);border-radius:50%;width:38px;height:38px}.fgl-mission-cast img+img{margin-left:-9px}.fgl-mission-audio audio{display:block;width:100%;height:44px;margin:12px 0}.fgl-mission-audio summary{cursor:pointer;min-height:44px;align-content:center;font-size:13px}.fgl-mission-transcript p{display:grid;grid-template-columns:75px 1fr;gap:12px;font-size:14px;line-height:1.6}.fgl-mission-listening-note{font-size:12px!important;line-height:1.5;color:var(--fgl-muted);margin:6px 0 0!important}.fgl-retry-note{background:var(--fgl-blue-soft);padding:12px;border-radius:10px;font-size:14px;line-height:1.5}.fgl-mission-quests{border-top:1px solid var(--fgl-line);margin-top:22px;padding-top:18px}.fgl-mission-quests h2{font-size:20px;margin:0}.fgl-mission-quests>p{font-size:13px;color:var(--fgl-muted)}.fgl-mission-quests ul{padding:0;list-style:none;display:grid;gap:10px}.fgl-mission-quests li{display:flex;align-items:center;gap:12px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:12px;padding:12px 14px;font-size:14px}.fgl-mission-quests li>span:first-child{color:var(--fgl-blue);font-size:20px}.fgl-mission-quests small{display:block;color:#27614d;font-size:12px}.fgl-mission-quests .is-done{border-color:#bad9ca}
@media(prefers-reduced-motion:no-preference){.fgl-app:not(.fgl-reduce-motion) .fgl-exercise{animation:fgl-mission-enter var(--fgl-motion-enter) var(--fgl-motion-ease) both}.fgl-app:not(.fgl-reduce-motion) .fgl-feedback{animation:fgl-feedback-enter var(--fgl-motion-state) var(--fgl-motion-ease) both}.fgl-app:not(.fgl-reduce-motion) .fgl-button:active{transform:scale(.98);transition:transform var(--fgl-motion-press) var(--fgl-motion-ease)}}
@keyframes fgl-mission-enter{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fgl-feedback-enter{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:680px){.fgl-mission-heading h2{font-size:20px}.fgl-mission-progress{flex-basis:108px}.fgl-mission-audio{padding:12px}.fgl-mission-transcript p{grid-template-columns:60px 1fr;gap:8px}.fgl-compact-mission{align-items:center;gap:8px}.fgl-mission-audio h3{font-size:16px}}
.fgl-reduce-motion .fgl-exercise,.fgl-reduce-motion .fgl-feedback{animation:none!important}

@media(max-width:680px){.fgl-practising .fgl-compact-mission{padding:2px 0;margin:4px 0 2px}.fgl-mission-heading{margin:6px 0}.fgl-mission-audio{margin-bottom:14px}.fgl-mission-audio audio{margin:8px 0}.fgl-mission-listening-note{margin-top:0!important}.fgl-mission-audio-head{gap:8px}.fgl-compact-mission~.fgl-exercise-layout .fgl-exercise{padding-top:14px}}
/* Mobile learning stage: keep the next action close to the sentence.
   No controls are hidden or reordered; native audio and avatar identity remain. */
@media (max-width:680px) {
  .fgl-sidebar { padding-top:12px; }
  .fgl-wordmark { padding-bottom:10px; }
  .fgl-nav { padding-bottom:5px; }
  .fgl-nav-item { min-height:52px; padding-block:7px; }
  .fgl-topbar { min-height:56px; }
  .fgl-main { padding-top:18px; }
  .fgl-page-heading:has(.fgl-home-avatar) { gap:14px; margin-bottom:16px; }
  .fgl-home-avatar .fgl-avatar { width:64px; height:64px; }
  .fgl-home-avatar { gap:4px; }
  .fgl-home-avatar .fgl-profile-emblem { width:25px; height:23px; }
  .fgl-page-heading:has(.fgl-home-avatar) h1 { font-size:24px; line-height:1.2; }
  .fgl-page-heading:has(.fgl-home-avatar) .fgl-kicker { margin-bottom:6px; }
  .fgl-next-learning { padding:16px; }
  .fgl-next-learning h2 { font-size:24px; margin:8px 0; }
  .fgl-next-learning>p { line-height:1.5; margin-block:8px 12px; }
  .fgl-next-learning>.fgl-actions { margin-top:12px; }
  .fgl-next-size { padding:5px 8px; }
  .fgl-next-companion { margin-top:10px; gap:10px; }
  .fgl-next-learning .fgl-next-companion { padding:10px; }
  .fgl-guided-sequence { margin-block:16px; }

  .fgl-practising .fgl-main:has(.fgl-compact-mission) { padding-top:6px; }
  .fgl-practising .fgl-practice-top { align-items:center; }
  .fgl-mission-heading { margin:2px 0; }
  .fgl-mission-heading h2 { margin:3px 0; font-size:19px; }
  .fgl-mission-heading .fgl-eyebrow { line-height:1.3; }
  .fgl-practising .fgl-compact-mission { margin:2px 0; padding:0; }
  .fgl-pace-menu { margin-bottom:0; }
  .fgl-pace-menu>summary { padding-block:0; }
  .fgl-practising .fgl-exercise-layout { margin-top:2px; }
  .fgl-compact-mission~.fgl-exercise-layout .fgl-exercise { padding:12px; }
  .fgl-compact-mission~.fgl-exercise-layout .fgl-exercise>.fgl-kicker { margin-bottom:8px; }
  .fgl-mission-audio { padding:10px; margin-bottom:12px; }
  .fgl-mission-audio-head { gap:8px; }
  .fgl-mission-audio h3 { margin:2px 0; line-height:1.25; }
  .fgl-mission-audio audio { margin:6px 0 0; }
  .fgl-mission-audio summary { min-height:44px; }
  .fgl-mission-listening-note { font-size:12px!important; line-height:1.35; }
  .fgl-exercise .fgl-question:has(.fgl-question-sentence) h1,
  .fgl-exercise:has(.fgl-choices) .fgl-question h1 { font-size:14px; font-weight:500; color:var(--fgl-muted); line-height:1.4; margin-bottom:5px; }
  .fgl-exercise:has(.fgl-choices) .fgl-question-instruction { font-size:20px; line-height:1.35; font-weight:650; color:var(--fgl-ink); }
  .fgl-question { margin-block:8px 10px; }
  .fgl-question-sentence { padding:12px; margin-top:8px; }
  .fgl-question-sentence>p { font-size:25px; line-height:1.4; }
  .fgl-practising .fgl-input-note { margin-block:6px 0; }
  .fgl-practising .fgl-lesson-compact { margin:0; }

  .fgl-main:has(#fgl-profile-form)>.fgl-lead { margin-bottom:18px; }
  .fgl-main:has(#fgl-profile-form)>.fgl-badge-collection { margin-block:12px 20px; }
  .fgl-main:has(#fgl-profile-form) .fgl-badge-grid { gap:12px; }
  .fgl-main:has(#fgl-profile-form) .fgl-badge-ticket { padding:12px 14px; }
  .fgl-main:has(#fgl-profile-form) .fgl-badge-ticket h3 { font-size:20px; margin:9px 0 4px; }
  .fgl-main:has(#fgl-profile-form) .fgl-badge-ticket details { margin-top:2px; }
  .fgl-main:has(#fgl-profile-form) .fgl-badge-bottom { margin-top:4px; padding-top:8px; }
  .fgl-main:has(#fgl-profile-form) .fgl-settings>section { padding-block:20px; gap:12px; }
  .fgl-main:has(#fgl-profile-form) .fgl-avatar-preview { margin-bottom:18px; }
}

/* Paid entry: one next action, a readable sequence, then account controls. */
.fgl-access-entry { max-width:720px; padding:clamp(20px,4vw,40px); border:1px solid var(--fgl-border); border-top:3px solid var(--fgl-blue); border-radius:18px; background:var(--fgl-surface,#fff); }
.fgl-access-entry h1 { max-width:18ch; }
.fgl-access-steps { padding-left:24px; margin:24px 0; }
.fgl-access-steps li { padding-left:6px; margin-bottom:18px; }
.fgl-access-steps strong,.fgl-access-steps span { display:block; }
.fgl-access-steps span { color:var(--fgl-muted); margin-top:4px; line-height:1.5; }
.fgl-access-entry .fgl-button { white-space:normal; }
.fgl-account-badges { margin:24px 0; }
.fgl-account-badges>summary { padding:16px 0; cursor:pointer; font-weight:650; }
@media(max-width:600px){.fgl-access-entry{padding:20px 16px}.fgl-access-entry .fgl-actions{display:flex;flex-direction:column}.fgl-access-entry .fgl-button{width:100%}}

/* FTE product shell. Source bundle: edit here, never the generated app.css tail. */
.fgl-app{--fgl-motion-fast:160ms;--fgl-motion-enter:240ms;--fgl-ease:cubic-bezier(.23,1,.32,1)}
.fgl-app .fgl-shell{grid-template-columns:224px minmax(0,1fr)}
.fgl-app .fgl-sidebar{position:sticky;top:0;height:100svh;min-height:0;padding-top:30px}
.fgl-app .fgl-main{max-width:1240px;padding:36px 42px 76px}
.fgl-app .fgl-topbar{min-height:74px;border-bottom:1px solid var(--fgl-line)}
.fgl-app .fgl-nav-item{min-height:50px;font-size:13px;border-radius:12px}
.fgl-app .fgl-nav-item.is-active{box-shadow:inset 3px 0 var(--fgl-blue)}
.fgl-app .fgl-button{min-height:46px;border-radius:11px;transition:transform var(--fgl-motion-fast) var(--fgl-ease),background-color var(--fgl-motion-fast)}
.fgl-app .fgl-button:active:not(:disabled){transform:scale(.98)}
.fgl-app button:focus-visible,.fgl-app summary:focus-visible,.fgl-app a:focus-visible{outline:3px solid var(--fgl-blue);outline-offset:4px}
.fgl-app .fgl-guided-home{grid-template-columns:minmax(0,1.55fr) minmax(260px,1fr);gap:28px;align-items:start}
.fgl-app .fgl-next-learning{padding:30px;border:1px solid var(--fgl-line);border-top:3px solid var(--fgl-blue);border-radius:18px;background:var(--fgl-paper)}
.fgl-app .fgl-next-learning h2{font-size:clamp(26px,2.3vw,34px);line-height:1.18;letter-spacing:-.035em;max-width:22ch}
.fgl-app .fgl-next-companion{margin-top:24px;padding:16px;background:var(--fgl-blue-soft);border-radius:12px;align-items:center}
.fgl-app .fgl-next-companion img{width:68px;height:78px;object-fit:contain;flex-shrink:0}
.fgl-app .fgl-guided-sequence{gap:12px;padding:20px 0}
.fgl-app .fgl-guided-sequence span{line-height:1.55;font-size:12px}
.fgl-app .fgl-home-avatar .fgl-avatar{width:64px;height:64px}
.fgl-app .fgl-programme-pocket{border:1px solid var(--fgl-line);background:var(--fgl-paper);border-radius:18px;padding:24px;margin-bottom:22px}
.fgl-programme-pocket h2{font-size:22px;line-height:1.2;letter-spacing:-.03em}.fgl-programme-pocket p{color:var(--fgl-muted);font-size:13px}
.fgl-programme-pocket ol{list-style:none;padding:0;margin:24px 0;display:grid;gap:18px}.fgl-programme-pocket li{display:flex;gap:12px;align-items:flex-start}
.fgl-programme-pocket li>span{width:30px;height:30px;display:grid;place-items:center;background:var(--fgl-blue-soft);color:var(--fgl-blue);border-radius:50%;font-size:11px;font-weight:750;flex-shrink:0}
.fgl-programme-pocket li strong,.fgl-programme-pocket li small{display:block;line-height:1.4}.fgl-programme-pocket li strong{font-size:13px}.fgl-programme-pocket li small{font-size:11px;color:var(--fgl-muted);margin-top:4px}
.fgl-app .fgl-onboarding-v2{max-width:none;margin:0}.fgl-onboarding-v2 .fgl-onboarding-heading{margin-bottom:16px;align-items:center}.fgl-onboarding-v2 .fgl-onboarding-heading p{margin:0;font-size:13px}
.fgl-onboarding-save-note{color:var(--fgl-muted);font-size:12px}
.fgl-onboarding-v2 .fgl-onboarding-steps{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:30px;gap:10px}.fgl-onboarding-v2 .fgl-onboarding-steps li strong{font-size:11px;line-height:1.4}
.fgl-onboarding-layout{display:grid;grid-template-columns:minmax(0,1fr) 252px;gap:36px;align-items:start}.fgl-onboarding-layout form{min-width:0}
.fgl-onboarding-v2 .fgl-onboarding-body{padding:0;margin:0;border:0;background:none;min-width:0}
.fgl-onboarding-v2 h1{font-size:clamp(30px,3.5vw,43px);line-height:1.1;letter-spacing:-.04em;margin:0 0 16px}
.fgl-onboarding-v2 h1 em,.fgl-programme-heading h1 em{font-family:'Instrument Serif',serif;font-weight:400;color:var(--fgl-blue);letter-spacing:-.015em}
.fgl-onboarding-v2 .fgl-lead{font-size:14px;line-height:1.55;margin-bottom:24px;max-width:47ch}
.fgl-onboarding-v2 .fgl-onboarding-options{margin:0;gap:10px}.fgl-onboarding-v2 .fgl-onboarding-option>span{min-height:76px;padding:14px 16px;border-radius:12px;background:var(--fgl-paper);box-shadow:none}
.fgl-onboarding-v2 .fgl-onboarding-option strong{font-size:14px;font-weight:650;line-height:1.35}.fgl-onboarding-v2 .fgl-onboarding-option small{font-size:12px;line-height:1.45;margin-top:4px}
.fgl-onboarding-v2 .fgl-onboarding-option input:checked+span{border-color:var(--fgl-blue);background:var(--fgl-blue-soft);box-shadow:0 0 0 1px var(--fgl-blue)}
.fgl-onboarding-v2 .fgl-onboarding-icon{font-size:23px;width:32px;flex-shrink:0}.fgl-onboarding-v2 .fgl-option-check{flex-shrink:0}
.fgl-onboarding-extra{margin-top:18px;color:var(--fgl-muted);font-size:13px}.fgl-onboarding-extra summary{cursor:pointer;padding:10px 0;min-height:44px}.fgl-onboarding-extra summary span{font-size:11px;margin-left:8px}
.fgl-onboarding-companion{background:var(--fgl-blue-soft);border-radius:20px;padding:24px;position:sticky;top:24px}
.fgl-onboarding-duo{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 20px}.fgl-onboarding-duo .fgl-avatar{width:76px;height:76px;border-radius:24px}.fgl-onboarding-duo>img{width:90px;height:106px;object-fit:contain}.fgl-onboarding-duo>span:not(.fgl-avatar){color:var(--fgl-blue);font-size:18px}
.fgl-onboarding-companion h2{font-size:21px;line-height:1.25;letter-spacing:-.02em;margin-bottom:12px}.fgl-onboarding-companion p{font-size:13px;line-height:1.65;color:var(--fgl-muted)}.fgl-onboarding-companion small{display:block;color:var(--fgl-muted);font-size:11px;margin-top:24px}
.fgl-onboarding-route{list-style:none;padding:18px 0 0;margin:22px 0 0;border-top:1px solid var(--fgl-line);display:grid;gap:12px}.fgl-onboarding-route li{display:flex;justify-content:space-between;font-size:12px;color:var(--fgl-muted);gap:8px}.fgl-onboarding-route li.is-current{color:var(--fgl-blue);font-weight:700}
.fgl-app .fgl-onboarding-v2 .fgl-onboarding-actions{display:flex;justify-content:space-between;gap:12px;padding:16px 0;margin:18px 0 0;background:var(--fgl-canvas);position:sticky;bottom:0;border-top:1px solid var(--fgl-line);z-index:3}
.fgl-onboarding-first{color:var(--fgl-muted);font-size:12px;line-height:1.4}.fgl-onboarding-v2 .fgl-onboarding-footer{margin-top:4px;justify-content:space-between;gap:12px}.fgl-onboarding-v2 .fgl-onboarding-footer button{font-size:12px;min-height:44px}
.fgl-friction-options{border:0;padding:0;margin:0 0 24px;display:grid;gap:8px}.fgl-friction-options input,.fgl-day-options input{position:absolute;opacity:0;width:1px;height:1px}
.fgl-friction-options label>span{display:flex;gap:12px;align-items:center;min-height:48px;padding:12px 15px;border:1px solid var(--fgl-line);background:var(--fgl-paper);border-radius:10px;cursor:pointer;font-size:13px}.fgl-friction-options b{width:18px;color:var(--fgl-blue)}
.fgl-friction-options input:checked+span{border-color:var(--fgl-blue);background:var(--fgl-blue-soft)}.fgl-friction-options input:checked+span b{font-size:0}.fgl-friction-options input:checked+span b:after{content:'✓';font-size:14px}.fgl-friction-options input:disabled+span{opacity:.5;cursor:default}
.fgl-friction-options input:focus-visible+span,.fgl-day-options input:focus-visible+span{outline:3px solid var(--fgl-blue);outline-offset:3px}
.fgl-onboarding-v2 .fgl-support-options{gap:8px}.fgl-onboarding-v2 .fgl-support-options legend,.fgl-setting-options legend,.fgl-day-options legend,.fgl-minute-options legend{font-weight:650;font-size:14px;margin-bottom:12px}
.fgl-onboarding-v2 .fgl-support-options .fgl-onboarding-option>span{min-height:66px;padding:12px 14px}
.fgl-day-options{border:0;padding:0;margin:24px 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.fgl-day-options label>span{display:flex;flex-direction:column;align-items:center;padding:12px 3px;border:1px solid var(--fgl-line);border-radius:10px;font-size:19px;font-weight:650;background:var(--fgl-paper);cursor:pointer}.fgl-day-options small{font-size:9px;font-weight:400;color:var(--fgl-muted)}.fgl-day-options input:checked+span{color:var(--fgl-blue);background:var(--fgl-blue-soft);border-color:var(--fgl-blue)}
.fgl-onboarding-v2 .fgl-onboarding-recap{margin:24px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--fgl-line);background:var(--fgl-line);border-radius:14px;overflow:hidden}.fgl-onboarding-v2 .fgl-onboarding-recap>div{padding:18px;background:var(--fgl-paper)}.fgl-onboarding-v2 .fgl-onboarding-recap dt{font-size:11px;margin-bottom:6px}.fgl-onboarding-v2 .fgl-onboarding-recap dd{font-size:14px}
.fgl-onboarding-deliverable{padding:22px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:14px}.fgl-onboarding-deliverable h2{font-size:22px;line-height:1.2}.fgl-onboarding-deliverable p{font-size:14px;line-height:1.65;color:var(--fgl-muted)}.fgl-onboarding-deliverable small{font-size:12px;color:var(--fgl-muted)}.fgl-onboarding-deliverable ol{padding-left:22px;margin:24px 0;display:grid;gap:16px}.fgl-onboarding-deliverable li strong,.fgl-onboarding-deliverable li span{display:block;font-size:13px}.fgl-onboarding-deliverable li span{color:var(--fgl-muted);margin-top:4px}
.fgl-programme-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.fgl-programme-toolbar .fgl-actions{margin:0}.fgl-programme-toolbar .fgl-button{max-width:360px;font-size:12px}
.fgl-app .fgl-programme{padding:0;border:0;background:none;text-align:left}.fgl-programme-heading{display:grid;grid-template-columns:minmax(0,1fr) 154px;gap:32px;align-items:center}.fgl-programme-heading h1{font-size:clamp(30px,3.7vw,44px);line-height:1.1;letter-spacing:-.04em;margin:0 0 18px}.fgl-programme-heading p{max-width:60ch;font-size:14px;line-height:1.7;color:var(--fgl-muted)}
.fgl-programme-seal{padding:24px 16px;text-align:center;border:1px solid var(--fgl-line);border-radius:18px;background:var(--fgl-paper)}.fgl-programme-seal strong{display:block;font-size:42px;line-height:1.15;color:var(--fgl-blue)}.fgl-programme-seal span{font-size:12px;display:block;margin-top:8px;font-weight:650}.fgl-programme-seal small{font-size:10px;line-height:1.5;display:block;color:var(--fgl-muted);margin-top:8px}
.fgl-programme-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:24px 0;margin:12px 0 20px;border-block:1px solid var(--fgl-line)}.fgl-programme-facts span{font-size:12px;color:var(--fgl-muted)}.fgl-programme-facts strong{display:block;color:var(--fgl-ink);font-size:17px;margin-bottom:5px}
.fgl-programme-explain{display:flex;gap:14px;padding:16px 20px;background:var(--fgl-blue-soft);border-radius:12px;margin-bottom:24px}.fgl-programme-explain>span{font-size:26px;color:var(--fgl-blue)}.fgl-programme-explain p{font-size:13px;line-height:1.65;margin:0}
.fgl-programme-weeks{display:grid;gap:14px;margin-bottom:24px}.fgl-programme-week{background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:16px;overflow:hidden}.fgl-programme-week>summary{list-style:none;display:flex;align-items:center;gap:18px;cursor:pointer;padding:22px}.fgl-programme-week>summary::-webkit-details-marker{display:none}.fgl-programme-week>summary>span:nth-child(2){flex:1;min-width:0}.fgl-programme-week>summary small{display:block;font-size:10px;letter-spacing:.08em;color:var(--fgl-blue);margin-bottom:6px}.fgl-programme-week>summary strong{display:block;font-size:20px;line-height:1.3}.fgl-programme-week>summary>span:nth-child(2)>span{display:block;font-size:12px;margin-top:6px;color:var(--fgl-muted)}.fgl-programme-week>summary>b{font-size:11px;color:var(--fgl-muted);white-space:nowrap}
.fgl-programme-week-number{display:grid;place-items:center;width:48px;height:58px;background:var(--fgl-blue-soft);border-radius:7px;color:var(--fgl-blue);font-family:'Instrument Serif',serif;font-size:28px;flex-shrink:0}.fgl-programme-expand{color:var(--fgl-blue);font-size:24px}.fgl-programme-week[open] .fgl-programme-expand{transform:rotate(45deg)}
.fgl-programme-sessions{list-style:none;padding:0 24px 24px;margin:0}.fgl-programme-sessions>li{display:flex;gap:16px;padding:22px 0;border-top:1px solid var(--fgl-line)}.fgl-programme-session-number{width:27px;height:27px;display:grid;place-items:center;background:var(--fgl-input);border-radius:50%;font-size:12px;color:var(--fgl-muted);flex-shrink:0}.fgl-programme-sessions h3{font-size:17px;margin:7px 0 4px;line-height:1.4}.fgl-programme-sessions details{font-size:12px;color:var(--fgl-muted);margin-top:8px}.fgl-programme-sessions summary{cursor:pointer;min-height:36px;padding:8px 0}.fgl-programme-sessions ul{padding-left:18px;display:grid;gap:8px;margin-bottom:0}.fgl-programme-sessions .fgl-text-button{text-align:left;font-size:13px;min-height:40px}
.fgl-programme-evidence{padding:20px;border:1px solid var(--fgl-line);border-radius:14px;margin-bottom:20px}.fgl-programme-evidence>summary{font-size:14px;font-weight:650;cursor:pointer;min-height:32px}.fgl-programme-evidence>p{margin-top:20px}
.fgl-onboarding-heading-duo{display:none}.fgl-onboarding-v2 .fgl-onboarding-body,.fgl-programme-heading,.fgl-programme-week{animation:fgl-lab-enter var(--fgl-motion-enter) var(--fgl-ease) both}
@keyframes fgl-lab-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fgl-authored-lesson .fgl-rule-summary{font-size:16px;line-height:1.8;max-width:65ch}.fgl-authored-lesson h3{font-size:15px;margin:26px 0 16px;font-weight:700}.fgl-authored-lesson .fgl-rule-model{font-family:'DM Sans',sans-serif;font-size:clamp(22px,2.2vw,28px);line-height:1.5;border-left:3px solid var(--fgl-blue);background:var(--fgl-blue-soft);padding:18px 22px;border-radius:0 12px 12px 0;margin:24px 0;color:var(--fgl-ink)}
.fgl-rule-steps{list-style:none;padding:0;display:grid;gap:16px;margin:0 0 24px}.fgl-rule-steps li{display:flex;align-items:flex-start;gap:13px}.fgl-rule-steps li>span{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;border-radius:50%;background:var(--fgl-input);color:var(--fgl-blue);font-size:12px;font-weight:700}.fgl-rule-steps p{font-size:14px;margin:0;line-height:1.7}
.fgl-rule-detail{border-top:1px solid var(--fgl-line);padding:16px 0;margin:8px 0}.fgl-rule-detail>summary{font-size:14px;font-weight:650;cursor:pointer;min-height:34px;padding:5px 0}.fgl-rule-detail p,.fgl-rule-detail li{font-size:14px;line-height:1.75}.fgl-rule-detail .fgl-rule-label{font-size:11px;color:var(--fgl-muted);margin:16px 0 4px}.fgl-rule-detail .fgl-rule-incorrect{font-weight:650;color:var(--fgl-warn)}.fgl-rule-recall{padding:18px 20px;background:var(--fgl-input);border-radius:12px;margin:16px 0 24px}.fgl-rule-recall strong{font-size:12px;color:var(--fgl-blue)}.fgl-rule-recall p{font-size:14px;margin:6px 0 0;line-height:1.7}.fgl-foundation-guide{padding-top:8px}.fgl-app .fgl-lesson-copy>a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:1100px){.fgl-app .fgl-main{padding-inline:26px}.fgl-app .fgl-shell{grid-template-columns:190px minmax(0,1fr)}.fgl-onboarding-layout{grid-template-columns:minmax(0,1fr) 210px;gap:24px}.fgl-onboarding-companion{padding:20px}.fgl-programme-toolbar{align-items:flex-start;flex-direction:column}.fgl-app .fgl-guided-home{grid-template-columns:minmax(0,1fr)}.fgl-guided-home>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}}
@media(max-width:850px){.fgl-onboarding-layout{grid-template-columns:1fr}.fgl-onboarding-companion{position:static;display:none}.fgl-onboarding-heading-duo{display:flex;gap:8px;align-items:center}.fgl-onboarding-heading-duo .fgl-avatar{width:42px;height:42px}.fgl-onboarding-heading-duo>img{width:42px;height:50px;object-fit:contain}.fgl-onboarding-save-note{display:none}.fgl-programme-heading{gap:18px;grid-template-columns:minmax(0,1fr) 115px}.fgl-programme-seal{padding:16px 10px}}
@media(max-width:680px){.fgl-app .fgl-shell{display:block}.fgl-app .fgl-sidebar{position:static;height:auto;padding:18px 18px 0;border:0}.fgl-app .fgl-wordmark{padding-bottom:4px}.fgl-app .fgl-sidebar .fgl-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--fgl-line);background:var(--fgl-paper)}.fgl-app .fgl-nav-item{font-size:9px;min-height:54px;line-height:1.2;border-radius:9px;padding:7px 2px}.fgl-app .fgl-nav-item.is-active{box-shadow:inset 0 2px var(--fgl-blue)}.fgl-app .fgl-topbar{min-height:60px;padding-inline:18px}.fgl-app .fgl-main{padding:26px 18px calc(110px + env(safe-area-inset-bottom))}.fgl-app[data-view=onboarding] .fgl-main{padding-bottom:calc(205px + env(safe-area-inset-bottom))}.fgl-app .fgl-onboarding-v2 .fgl-onboarding-actions{position:fixed;bottom:calc(70px + env(safe-area-inset-bottom));left:12px;right:12px;padding:12px;border:1px solid var(--fgl-line);background:var(--fgl-paper);border-radius:14px;margin:0;box-shadow:0 5px 24px #1c244b14;z-index:29;align-items:center}.fgl-onboarding-actions .fgl-button{font-size:12px;padding-inline:14px}.fgl-onboarding-first{font-size:11px}.fgl-onboarding-v2 h1{font-size:35px}.fgl-onboarding-v2 .fgl-onboarding-steps{gap:5px;margin:14px 0 26px}.fgl-onboarding-v2 .fgl-onboarding-steps li{padding:0;gap:4px}.fgl-onboarding-v2 .fgl-onboarding-steps li strong{font-size:9px;max-width:65px}.fgl-onboarding-v2 .fgl-onboarding-option>span{min-height:74px;padding:13px}.fgl-onboarding-v2 .fgl-lead{font-size:14px}.fgl-onboarding-v2 .fgl-onboarding-footer{display:flex;flex-wrap:wrap;margin-top:20px}.fgl-onboarding-v2 .fgl-onboarding-recap>div{padding:14px}.fgl-day-options{gap:5px}.fgl-day-options small{font-size:8px}.fgl-onboarding-deliverable{padding:18px}.fgl-app .fgl-guided-home>aside{display:block}.fgl-app .fgl-next-learning{padding:23px}.fgl-app .fgl-next-learning h2{font-size:29px}.fgl-app .fgl-guided-sequence{display:grid;grid-template-columns:1fr}.fgl-app .fgl-guided-sequence span{font-size:13px}.fgl-programme-toolbar{gap:12px}.fgl-programme-toolbar .fgl-actions{display:grid;width:100%}.fgl-programme-toolbar .fgl-button{max-width:none}.fgl-programme-heading{display:block}.fgl-programme-heading h1{font-size:34px}.fgl-programme-seal{display:flex;gap:12px;align-items:center;text-align:left;padding:14px;margin-top:20px}.fgl-programme-seal strong{font-size:30px}.fgl-programme-seal span,.fgl-programme-seal small{margin:0}.fgl-programme-seal small{max-width:110px}.fgl-programme-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.fgl-programme-week>summary{padding:17px;gap:12px;flex-wrap:wrap}.fgl-programme-week>summary strong{font-size:18px}.fgl-programme-week>summary>b{display:none}.fgl-programme-week-number{width:36px;height:45px;font-size:23px}.fgl-programme-sessions{padding:0 17px 8px}.fgl-programme-sessions>li{gap:12px}.fgl-programme-explain{padding:16px}.fgl-programme-evidence{padding:16px}.fgl-programme-sessions .fgl-eyebrow{font-size:9px}.fgl-app .fgl-finish>.fgl-programme{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.fgl-onboarding-v2 .fgl-onboarding-body,.fgl-programme-heading,.fgl-programme-week{animation:none}.fgl-app .fgl-button{transition:none}.fgl-app .fgl-button:active{transform:none}}
.fgl-reduce-motion .fgl-onboarding-v2 .fgl-onboarding-body,.fgl-reduce-motion .fgl-programme-heading,.fgl-reduce-motion .fgl-programme-week{animation:none}
.fgl-large-type .fgl-onboarding-option strong,.fgl-large-type .fgl-friction-options label>span,.fgl-large-type .fgl-programme-sessions h3{font-size:18px}.fgl-large-type .fgl-onboarding-option small,.fgl-large-type .fgl-programme-sessions details,.fgl-large-type .fgl-onboarding-v2 .fgl-lead{font-size:16px}

/* Keep the country emblem inside the learner portrait at every viewport. */
.fgl-onboarding-heading-duo .fgl-profile-emblem img{width:100%;height:100%;object-fit:contain}

/* Personal notebook: an owned learning space, navy ink, blue annotations and practice stamps.
   Intent: welcome adult learners, then leave the next grammar activity as the main action.
   Hierarchy: name + portrait, quiet companion; earned activity precedes the planned route.
   Existing FTE tokens, DM Sans / Instrument Serif, 4px rhythm; no new reward currency. */
.fgl-app .fgl-personal-welcome{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:24px;align-items:center;margin:0 0 28px;padding:4px 0 28px;border-bottom:1px solid var(--fgl-line)}
.fgl-app .fgl-personal-portrait{padding:0;border:0;background:none;color:var(--fgl-muted);text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;font:inherit;flex-shrink:0}
.fgl-personal-portrait>.fgl-avatar-stack{width:84px;height:84px;display:block;position:relative;transform:rotate(-4deg);transition:transform 180ms ease-out}
.fgl-app .fgl-personal-portrait .fgl-avatar{width:84px;height:84px;border-radius:28px;box-shadow:0 0 0 5px var(--fgl-paper),0 0 0 6px var(--fgl-line);font-size:28px}
.fgl-app .fgl-personal-portrait .fgl-avatar svg{width:100%;height:100%}
.fgl-app .fgl-personal-portrait .fgl-profile-emblem{position:absolute;right:-3px;bottom:-3px;min-width:24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--fgl-paper);border:2px solid var(--fgl-paper);font-size:14px;line-height:1;overflow:hidden}
.fgl-app .fgl-personal-portrait .fgl-profile-emblem img{width:20px!important;height:15px!important;object-fit:cover;border-radius:2px}
.fgl-personal-portrait>span:last-child{font-size:11px;font-weight:650}
.fgl-app .fgl-personal-greeting h1{font-size:clamp(30px,3.3vw,43px);line-height:1.12;letter-spacing:-.045em;margin:8px 0 10px;text-wrap:balance}
.fgl-app .fgl-personal-greeting h1 em,.fgl-app .fgl-personal-section-title em{font-family:'Instrument Serif',Georgia,serif;font-weight:400;color:var(--fgl-blue)}
.fgl-app .fgl-personal-greeting p{font-size:14px;line-height:1.5;color:var(--fgl-muted);margin:0 0 10px}
.fgl-personal-routine{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:var(--fgl-muted)}
.fgl-personal-routine>span:first-child{font-size:17px;color:var(--fgl-blue)}
.fgl-personal-companion{display:flex;align-items:center;gap:8px;max-width:264px;padding-left:8px}
.fgl-personal-companion>div{padding:16px 0 12px 16px;border-left:2px solid var(--fgl-blue);transform:rotate(-2deg)}
.fgl-personal-companion>div>span{font-size:9px;letter-spacing:.055em;color:var(--fgl-muted);font-weight:700}
.fgl-app .fgl-personal-companion p{font-family:'Instrument Serif',Georgia,serif;font-size:22px;line-height:1.15;letter-spacing:-.01em;margin:8px 0 0;color:var(--fgl-ink)}
.fgl-app .fgl-personal-companion img{width:80px;height:104px;object-fit:contain;flex-shrink:0;transform-origin:center bottom;animation:fgl-personal-hello 450ms cubic-bezier(.2,.8,.2,1) both}
.fgl-personal-journal{margin-top:28px}
.fgl-personal-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.fgl-app .fgl-personal-section-title h2{font-size:25px;line-height:1.16;letter-spacing:-.035em;margin:8px 0 0}.fgl-personal-section-title>.fgl-text-button{flex-shrink:0;font-size:12px}
.fgl-personal-notebook{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:18px;overflow:hidden}
.fgl-personal-rhythm,.fgl-personal-route{padding:24px;min-width:0}.fgl-personal-route{border-left:1px dashed var(--fgl-line);background:linear-gradient(180deg,var(--fgl-blue-soft),var(--fgl-paper))}
.fgl-personal-rhythm-head>span,.fgl-personal-route-head>span:first-child{font-size:9px;letter-spacing:.075em;font-weight:750;color:var(--fgl-muted)}
.fgl-personal-rhythm-head>strong{display:block;font-size:36px;line-height:1.3;letter-spacing:-.05em;color:var(--fgl-ink);margin:8px 0 20px}
.fgl-personal-rhythm-head small{font-size:13px;font-weight:500;letter-spacing:0;color:var(--fgl-muted)}
.fgl-app .fgl-personal-days{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.fgl-personal-days li{min-width:0}.fgl-personal-days li>span:first-child{display:block;font-size:9px;color:var(--fgl-muted);font-weight:650}
.fgl-personal-day-stamp{display:grid;place-items:center;aspect-ratio:1;max-width:38px;margin:7px auto 5px;width:100%;border:1px dashed var(--fgl-line);border-radius:11px;color:var(--fgl-muted);font-size:20px;line-height:1}
.is-practised .fgl-personal-day-stamp{color:var(--fgl-good);background:var(--fgl-good-soft);border:1px solid transparent;transform:rotate(-5deg)}
.fgl-personal-days .is-today .fgl-personal-day-stamp{outline:2px solid var(--fgl-blue);outline-offset:2px}
.fgl-personal-days small{display:block;font-size:9px;color:var(--fgl-muted)}.fgl-personal-days .is-today small{color:var(--fgl-blue);font-weight:750}
.fgl-app .fgl-personal-rhythm>p{font-size:12px;line-height:1.65;color:var(--fgl-muted);margin:20px 0 0;max-width:34ch}.fgl-personal-rhythm>p strong{color:var(--fgl-ink);font-weight:700}
.fgl-personal-route-head{display:flex;gap:8px;align-items:center;justify-content:space-between}.fgl-personal-planned{font-size:9px;padding:2px 7px;border:1px solid var(--fgl-line);background:var(--fgl-paper);color:var(--fgl-muted);border-radius:5px}
.fgl-app .fgl-personal-route ol{list-style:none;margin:18px 0 16px;padding:0;display:grid;gap:0}
.fgl-personal-route li{display:flex;gap:12px;align-items:flex-start;position:relative;padding-bottom:18px}.fgl-personal-route li:last-child{padding-bottom:0}
.fgl-personal-route li:not(:last-child):before{content:'';position:absolute;left:13px;top:28px;bottom:0;border-left:1px dashed var(--fgl-line)}
.fgl-personal-route-dot{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--fgl-paper);border:1px solid var(--fgl-line);font-size:9px;font-weight:750;color:var(--fgl-blue);flex-shrink:0}
.fgl-personal-route li button{padding:2px 0 0;border:0;background:none;text-align:left;cursor:pointer;min-height:42px;color:var(--fgl-ink);font:inherit;min-width:0;flex:1}
.fgl-personal-route li strong{font-size:12px;line-height:1.45;display:block}.fgl-personal-route li button>span{font-size:10px;color:var(--fgl-muted);line-height:1.5;display:block;margin-top:3px}
.fgl-personal-route li button>span>span{color:var(--fgl-blue);margin-left:4px}.fgl-personal-route>.fgl-text-button{font-size:12px;min-height:40px}
.fgl-app .fgl-personal-route-note{font-size:10px;line-height:1.5;color:var(--fgl-muted);margin:4px 0 0}.fgl-app .fgl-personal-route>h3{font-size:18px;margin:24px 0 8px}.fgl-app .fgl-personal-route>p:not(.fgl-personal-route-note){font-size:12px;color:var(--fgl-muted);line-height:1.65}
@media(hover:hover){.fgl-personal-portrait:hover>.fgl-avatar-stack{transform:rotate(0) translateY(-2px)}.fgl-personal-route li button:hover strong{color:var(--fgl-blue)}.fgl-personal-route li button:hover>span>span{display:inline-block;transform:translate(2px,-2px)}}
@keyframes fgl-personal-hello{from{opacity:0;transform:translateY(8px) rotate(-4deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:1150px){.fgl-personal-companion>div{display:none}.fgl-personal-companion{padding-left:0}.fgl-app .fgl-personal-welcome{gap:20px}.fgl-personal-notebook{grid-template-columns:1fr}.fgl-personal-route{border-left:0;border-top:1px dashed var(--fgl-line)}.fgl-personal-days{max-width:380px}}
@media(max-width:680px){.fgl-app .fgl-personal-welcome{grid-template-columns:60px minmax(0,1fr);gap:16px;margin-bottom:22px;padding:0 0 24px;position:relative;align-items:start}.fgl-personal-portrait>.fgl-avatar-stack,.fgl-app .fgl-personal-portrait .fgl-avatar{width:56px;height:56px;border-radius:19px}.fgl-personal-portrait>span:last-child{font-size:9px}.fgl-app .fgl-personal-greeting h1{font-size:30px;line-height:1.1;margin:8px 0 10px}.fgl-personal-greeting>.fgl-kicker{font-size:8px;letter-spacing:.06em}.fgl-app .fgl-personal-greeting p{font-size:12px;max-width:26ch;margin-bottom:8px}.fgl-personal-routine{font-size:10px;gap:4px;max-width:24ch}.fgl-personal-companion{position:absolute;left:5px;top:90px}.fgl-app .fgl-personal-companion img{width:46px;height:56px}.fgl-personal-section-title{align-items:center;gap:10px}.fgl-app .fgl-personal-section-title h2{font-size:23px}.fgl-personal-section-title h2 em{display:block}.fgl-personal-section-title>.fgl-text-button{font-size:11px}.fgl-personal-section-title .fgl-kicker{font-size:8px;letter-spacing:.065em}.fgl-personal-journal{margin-top:24px}.fgl-personal-rhythm,.fgl-personal-route{padding:20px}.fgl-personal-rhythm-head>strong{margin-bottom:16px}.fgl-personal-days li>span:first-child,.fgl-personal-days small{font-size:10px}}
@media(max-width:360px){.fgl-personal-rhythm,.fgl-personal-route{padding:16px}.fgl-app .fgl-personal-greeting h1{font-size:27px}.fgl-personal-routine{font-size:9px}.fgl-personal-route-head>span:first-child{font-size:8px}.fgl-personal-days{gap:4px}}
.fgl-app.fgl-large-type .fgl-personal-companion{display:none}.fgl-app.fgl-large-type .fgl-personal-welcome{grid-template-columns:96px minmax(0,1fr)}
@media(prefers-reduced-motion:reduce){.fgl-personal-companion img,.fgl-personal-portrait>.fgl-avatar-stack{animation:none!important;transition:none!important;transform:none!important}}
.fgl-app.fgl-reduce-motion .fgl-personal-companion img,.fgl-app.fgl-reduce-motion .fgl-personal-portrait>.fgl-avatar-stack{animation:none!important;transition:none!important;transform:none!important}

@media(max-width:680px){.fgl-app.fgl-large-type .fgl-personal-welcome{grid-template-columns:60px minmax(0,1fr)}}

.fgl-app .fgl-personal-greeting h1{overflow-wrap:anywhere}.fgl-personal-days small{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* Keep the journal legible at dashboard density. */
.fgl-personal-companion>div>span,.fgl-personal-rhythm-head>span,.fgl-personal-route-head>span:first-child,.fgl-personal-planned,.fgl-personal-days li>span:first-child,.fgl-personal-days small,.fgl-personal-route-dot{font-size:10px}
.fgl-personal-route li strong{font-size:13px}.fgl-personal-route li button>span{font-size:11px}.fgl-app .fgl-personal-route-note{font-size:11px}
@media(max-width:360px){.fgl-personal-route-head>span:first-child{font-size:9px}}

/* V4 — returning adult learner: the next activity leads; identity stays personal,
   the notebook is supporting evidence. Navy ink / blue annotations, existing paper
   depth and DM Sans + Instrument Serif; 4px rhythm, 16–20px secondary surfaces. */
.fgl-app .fgl-personal-welcome{margin-bottom:20px;padding-bottom:20px;gap:20px}
.fgl-personal-journal{margin-top:24px}
.fgl-personal-rhythm,.fgl-personal-route{padding:20px}
.fgl-personal-rhythm-head>strong{font-size:32px;margin:6px 0 16px}
.fgl-app .fgl-personal-rhythm>p{margin-top:14px}
.fgl-personal-route li{padding-bottom:12px}
.fgl-personal-route li button{min-height:44px}
.fgl-personal-route>.fgl-text-button,.fgl-personal-section-title>.fgl-text-button{min-height:44px}
@media(min-width:681px) and (max-width:1100px){.fgl-personal-notebook{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fgl-personal-route{border-top:0;border-left:1px dashed var(--fgl-line)}}
@media(max-width:680px){
 .fgl-app .fgl-personal-welcome{grid-template-columns:48px minmax(0,1fr);gap:12px;margin-bottom:18px;padding-bottom:18px}
 .fgl-personal-portrait>.fgl-avatar-stack,.fgl-app .fgl-personal-portrait .fgl-avatar{width:46px;height:46px;border-radius:16px}
 .fgl-personal-portrait{gap:7px}.fgl-personal-portrait>span:last-child{font-size:9px}
 .fgl-app .fgl-personal-greeting h1{font-size:29px;margin:6px 0 7px}
 .fgl-personal-greeting>.fgl-kicker{font-size:8px;letter-spacing:.045em}
 .fgl-app .fgl-personal-greeting p{max-width:none;font-size:12px;line-height:1.4;margin-bottom:6px}
 .fgl-personal-routine{font-size:10px;max-width:none;line-height:1.5;gap:4px}
 .fgl-personal-companion{left:6px;top:83px}.fgl-app .fgl-personal-companion img{width:38px;height:44px}
 .fgl-personal-dashboard .fgl-next-learning{padding:20px}
 .fgl-app .fgl-personal-dashboard .fgl-next-learning h2{font-size:27px;margin-block:10px;line-height:1.12}
 .fgl-personal-dashboard .fgl-next-learning>p{font-size:13px;line-height:1.5;margin-block:10px}
 .fgl-personal-dashboard .fgl-next-learning .fgl-actions{margin-top:16px}
 .fgl-personal-dashboard .fgl-next-learning .fgl-actions>.fgl-button{width:100%;min-height:48px;justify-content:space-between;text-align:left;font-size:13px;padding-inline:14px;white-space:normal}
 .fgl-personal-dashboard .fgl-next-learning .fgl-actions>.fgl-button svg{flex-shrink:0}
 .fgl-personal-journal{margin-top:22px}.fgl-personal-section-title{margin-bottom:12px}
 .fgl-app .fgl-personal-section-title h2{font-size:22px}
 .fgl-personal-rhythm,.fgl-personal-route{padding:18px}
 .fgl-personal-rhythm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
 .fgl-personal-rhythm-head>strong{font-size:27px;margin:0;text-align:right;white-space:nowrap}
 .fgl-personal-rhythm-head small{font-size:11px;white-space:normal}
 .fgl-personal-rhythm-head>span{max-width:7ch;line-height:1.5}
 .fgl-app .fgl-personal-rhythm>p{font-size:11px;max-width:none;margin-top:12px}
 .fgl-app .fgl-personal-route ol{margin-top:12px;margin-bottom:8px}
 .fgl-personal-route li{padding-bottom:10px}
}
@media(max-width:360px){.fgl-app .fgl-personal-greeting h1{font-size:26px}.fgl-app .fgl-personal-greeting p{font-size:11px}.fgl-personal-routine{font-size:9px}.fgl-app .fgl-personal-dashboard .fgl-next-learning h2{font-size:25px}.fgl-personal-rhythm,.fgl-personal-route{padding:16px}.fgl-personal-rhythm-head small{font-size:10px}}
.fgl-app.fgl-large-type .fgl-personal-routine{font-size:12px}.fgl-app.fgl-large-type .fgl-personal-rhythm-head{flex-wrap:wrap}

/* French Grammar Lab passport. Skills are inked only from actual competency evidence. */
.fgl-garden{--garden-ease:cubic-bezier(.2,.7,.2,1);min-width:0}.fgl-garden *{box-sizing:border-box}.fgl-garden :is(button,summary){-webkit-tap-highlight-color:transparent}.fgl-garden :is(button,summary):focus-visible{outline:3px solid var(--fgl-blue);outline-offset:4px}.fgl-garden-eyebrow{display:block;font-size:10px;line-height:1.5;font-weight:750;letter-spacing:.13em;color:var(--fgl-blue)}
.fgl-garden-passport{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:24px;padding:36px 36px 30px;border:1px solid var(--fgl-line);border-radius:24px;background:var(--fgl-paper);isolation:isolate;overflow:hidden}.fgl-garden-passport:before{content:'';position:absolute;z-index:-1;right:-50px;top:-100px;width:350px;height:350px;border-radius:50%;border:1px solid var(--fgl-line);box-shadow:0 0 0 38px var(--fgl-canvas),0 0 0 39px var(--fgl-line),0 0 0 76px var(--fgl-canvas),0 0 0 77px var(--fgl-line);opacity:.65}.fgl-app .fgl-garden-passport h1{font-size:clamp(29px,3.25vw,46px);line-height:1.08;margin:16px 0;letter-spacing:-.04em}.fgl-garden-passport h1 em{font-family:'Instrument Serif',Georgia,serif;font-weight:400;color:var(--fgl-blue);letter-spacing:-.025em}.fgl-garden-passport-copy>p{font-size:14px;max-width:48ch;color:var(--fgl-muted);line-height:1.6;margin:0 0 22px}.fgl-garden-passport-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.fgl-garden-portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.fgl-garden-portrait>button{appearance:none;background:none;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--fgl-ink);font:inherit;cursor:pointer;max-width:100%}.fgl-garden-portrait .fgl-avatar{height:114px;width:114px;box-shadow:0 0 0 7px var(--fgl-paper),0 0 0 8px var(--fgl-line);transition:transform .22s var(--garden-ease)}.fgl-garden-portrait>button:hover .fgl-avatar{transform:rotate(-3deg)}.fgl-garden-name{font-size:15px;font-weight:700;max-width:180px;overflow-wrap:anywhere}.fgl-garden-passport-stamp{font-size:8px;letter-spacing:.15em;line-height:1.8;text-align:center;transform:rotate(-6deg);padding:8px 13px;border:1px solid var(--fgl-blue);border-radius:7px;color:var(--fgl-blue);background:var(--fgl-paper)}.fgl-garden-passport-stamp b{font-size:8px;font-weight:550}
.fgl-garden-scoreboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:20px 0 40px;padding:20px 0;border-bottom:1px solid var(--fgl-line)}.fgl-garden-scoreboard>div{padding:0 24px;border-right:1px solid var(--fgl-line)}.fgl-garden-scoreboard>div:first-child{padding-left:0}.fgl-garden-scoreboard>div:last-child{border:0}.fgl-garden-scoreboard dt{font-size:11px;font-weight:600;color:var(--fgl-muted);display:flex;align-items:center;gap:7px;line-height:1.5}.fgl-garden-scoreboard dd{font-size:32px;font-weight:750;letter-spacing:-.04em;line-height:1.2;margin:8px 0 0;font-variant-numeric:tabular-nums}.fgl-garden-scoreboard dd small{font-size:14px;font-weight:500;color:var(--fgl-muted);letter-spacing:0}.fgl-garden-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.fgl-garden-dot.is-acquired{background:var(--fgl-good)}.fgl-garden-dot.is-learning{background:var(--fgl-blue)}.fgl-garden-dot.is-refresh{background:var(--fgl-warn)}
.fgl-garden-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:20px}.fgl-app .fgl-garden-section-heading h2{font-size:26px;margin:8px 0 0;letter-spacing:-.03em}.fgl-garden-section-heading>p{font-size:12px;color:var(--fgl-muted);line-height:1.65;margin:0;max-width:290px}.fgl-garden-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--fgl-muted);margin:0 0 20px}.fgl-garden-legend>span{display:flex;gap:6px;align-items:center}.fgl-garden-legend i{width:18px;height:18px;display:grid;place-items:center;border-radius:5px;font-size:11px;font-style:normal}.fgl-garden-legend .is-acquired{color:var(--fgl-good);background:var(--fgl-good-soft)}.fgl-garden-legend .is-learning{color:var(--fgl-blue);background:var(--fgl-blue-soft)}.fgl-garden-legend .is-refresh{color:var(--fgl-warn);background:var(--fgl-warn-soft)}.fgl-garden-legend .is-new{border:1px solid var(--fgl-line);color:var(--fgl-muted);background:var(--fgl-canvas)}
.fgl-garden-domains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.fgl-garden-domain{background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:18px;padding:23px;min-width:0;animation:fgl-garden-enter .4s var(--garden-ease) both;animation-delay:calc(var(--garden-order,0)*35ms)}.fgl-garden-domain>header{display:flex;gap:11px;align-items:center;margin-bottom:20px;min-width:0}.fgl-garden-domain>header>div{min-width:0}.fgl-app .fgl-garden-domain h3{font-size:15px;margin:0;line-height:1.3;letter-spacing:-.02em}.fgl-garden-domain header p{font-size:11px;color:var(--fgl-muted);margin:4px 0 0;line-height:1.5}.fgl-garden-domain-mark{height:38px;width:38px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;background:var(--fgl-blue-soft);color:var(--fgl-blue);font:400 25px/1 'Instrument Serif',Georgia,serif}.fgl-garden-domain-number{align-self:start;margin-left:auto;color:var(--fgl-muted);font-size:10px;font-variant-numeric:tabular-nums}.fgl-garden-mosaic{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px;margin-bottom:16px;max-width:100%}.fgl-garden-skill{appearance:none;display:grid;place-items:center;height:38px;min-width:0;border-radius:8px;border:1px solid var(--fgl-line);background:var(--fgl-canvas);color:var(--fgl-muted);font:500 10px/1 'DM Sans',sans-serif;cursor:pointer;transition:transform .16s var(--garden-ease),border-color .16s;position:relative}.fgl-garden-skill:hover{transform:translateY(-3px);border-color:var(--fgl-blue)}.fgl-garden-skill:active{transform:scale(.96)}.fgl-garden-skill.is-acquired{border-color:var(--fgl-good);background:var(--fgl-good-soft);color:var(--fgl-good);font-size:15px;font-weight:750}.fgl-garden-skill.is-learning{background:var(--fgl-blue-soft);border-color:var(--fgl-blue);color:var(--fgl-blue)}.fgl-garden-skill.is-learning:after{content:'';position:absolute;bottom:5px;width:3px;height:3px;border-radius:50%;background:currentColor}.fgl-garden-skill.is-refresh{background:var(--fgl-warn-soft);border:1px dashed var(--fgl-warn);color:var(--fgl-warn);font-size:17px}.fgl-garden-domain-count{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;color:var(--fgl-muted);line-height:1.5}.fgl-garden-domain-count strong{font-size:15px;color:var(--fgl-ink)}.fgl-garden-domain-count strong span{font-size:11px;font-weight:500;color:var(--fgl-muted)}.fgl-garden-domain-details{margin-top:17px;border-top:1px solid var(--fgl-line)}.fgl-garden-domain-details>summary{padding:13px 0 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:650;color:var(--fgl-blue);cursor:pointer;min-height:40px}.fgl-garden-domain-details>summary::-webkit-details-marker{display:none}.fgl-garden-domain-details[open]>summary>span{transform:rotate(45deg)}.fgl-garden-domain-details ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:4px}.fgl-garden-domain-details li>button{appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:var(--fgl-canvas);border:0;border-radius:7px;padding:10px;color:var(--fgl-ink);font:500 11px/1.5 'DM Sans',sans-serif;cursor:pointer;min-height:44px}.fgl-garden-domain-details li>button:hover{background:var(--fgl-blue-soft)}.fgl-garden-domain-details li>button>span{min-width:0}.fgl-garden-domain-details small{font-size:9px;font-weight:650;margin-right:6px;color:var(--fgl-muted)}.fgl-garden-domain-details b{font-size:9px;font-weight:600;max-width:85px;text-align:right;flex-shrink:0}.fgl-garden-domain-details .is-acquired{color:var(--fgl-good)}.fgl-garden-domain-details .is-learning{color:var(--fgl-blue)}.fgl-garden-domain-details .is-refresh{color:var(--fgl-warn)}.fgl-garden-domain-details .is-new{color:var(--fgl-muted)}
.fgl-garden-bottom{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:22px;margin:28px 0 36px}.fgl-garden-companion{display:flex;align-items:center;gap:18px;padding:24px;border-radius:18px;background:var(--fgl-blue-soft)}.fgl-garden-companion>img{width:86px;height:106px;object-fit:contain;flex-shrink:0}.fgl-app .fgl-garden-companion h2,.fgl-app .fgl-garden-rhythm h2{font-size:19px;line-height:1.3;margin:9px 0}.fgl-garden-companion p,.fgl-garden-rhythm p{font-size:12px;line-height:1.6;color:var(--fgl-muted);margin:0 0 10px}.fgl-garden-companion .fgl-text-button{font-size:12px;text-align:left;min-height:44px}.fgl-garden-rhythm{padding:23px;border:1px solid var(--fgl-line);border-radius:18px;background:var(--fgl-paper)}.fgl-garden-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:18px}.fgl-garden-days>div{text-align:center;font-size:9px;color:var(--fgl-muted)}.fgl-garden-days b{display:grid;place-items:center;margin-top:7px;border-radius:8px;background:var(--fgl-canvas);border:1px solid var(--fgl-line);height:31px;font-size:13px;font-weight:650}.fgl-garden-days .is-practised b{background:var(--fgl-good-soft);color:var(--fgl-good);border-color:var(--fgl-good)}.fgl-garden-evidence{border-top:1px solid var(--fgl-line);margin-top:28px;padding-top:18px}.fgl-garden-evidence summary{font-size:12px;font-weight:650;cursor:pointer;min-height:44px}.fgl-garden-evidence p{font-size:12px;line-height:1.7;color:var(--fgl-muted);max-width:75ch}.fgl-garden :is(p,h1,h2,h3){overflow-wrap:anywhere}
@keyframes fgl-garden-enter{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(min-width:1250px){.fgl-garden-domains{grid-template-columns:repeat(3,minmax(0,1fr))}.fgl-garden-domain{padding:20px}.fgl-garden-domain>header{gap:9px}.fgl-garden-domain-mark{width:33px;height:33px;font-size:23px}.fgl-app .fgl-garden-domain h3{font-size:14px}}
@media(max-width:900px){.fgl-garden-passport{grid-template-columns:minmax(0,1fr) 130px;padding:28px;gap:16px}.fgl-garden-portrait .fgl-avatar{width:88px;height:88px}.fgl-garden-passport-stamp{font-size:7px;padding:7px;letter-spacing:.08em}.fgl-garden-passport-stamp b{font-size:7px}.fgl-garden-bottom{grid-template-columns:1fr}.fgl-garden-scoreboard>div{padding:0 15px}.fgl-garden-scoreboard dt{font-size:10px}.fgl-garden-section-heading>p{max-width:220px}}
@media(max-width:600px){.fgl-garden-passport{grid-template-columns:minmax(0,1fr) 64px;padding:23px 20px;gap:10px;border-radius:18px}.fgl-garden-passport:before{width:220px;height:220px;right:-150px;top:-40px}.fgl-garden-passport-copy{display:contents}.fgl-garden-passport-copy>.fgl-garden-eyebrow{grid-column:1/-1;font-size:8px}.fgl-app .fgl-garden-passport h1{grid-column:1;font-size:30px;margin:4px 0 12px}.fgl-garden-passport-copy>p{grid-column:1/-1;font-size:12px;margin:0 0 12px;max-width:none}.fgl-garden-passport-actions{grid-column:1/-1;gap:16px}.fgl-garden-passport-actions>.fgl-button{font-size:12px}.fgl-garden-passport-actions>.fgl-text-button{font-size:11px}.fgl-garden-portrait{grid-column:2;grid-row:2;align-self:start;gap:0;padding-top:10px}.fgl-garden-portrait .fgl-avatar{width:54px;height:54px;box-shadow:0 0 0 4px var(--fgl-paper),0 0 0 5px var(--fgl-line)}.fgl-garden-portrait .fgl-garden-name{font-size:9px;max-width:64px}.fgl-garden-portrait>button{gap:8px}.fgl-garden-passport-stamp{display:none}.fgl-garden-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:23px;margin:10px 0 29px;padding:20px 0}.fgl-garden-scoreboard>div{padding-left:20px}.fgl-garden-scoreboard>div:nth-child(3){padding-left:0}.fgl-garden-scoreboard>div:nth-child(2){border-right:0}.fgl-garden-scoreboard dt{font-size:11px}.fgl-garden-scoreboard dd{font-size:29px}.fgl-garden-section-heading{display:block;margin-bottom:18px}.fgl-app .fgl-garden-section-heading h2{font-size:23px}.fgl-garden-section-heading>p{margin-top:10px;max-width:none;font-size:11px}.fgl-garden-legend{gap:12px;font-size:10px}.fgl-garden-domains{grid-template-columns:1fr;gap:15px}.fgl-garden-domain{padding:20px}.fgl-garden-mosaic{grid-template-columns:repeat(auto-fill,minmax(39px,1fr));gap:7px}.fgl-garden-skill{height:42px}.fgl-garden-domain>header{margin-bottom:18px}.fgl-garden-companion{padding:20px;gap:13px;align-items:start}.fgl-garden-companion>img{width:56px;height:70px}.fgl-app .fgl-garden-companion h2{font-size:18px}.fgl-garden-eyebrow{font-size:9px}.fgl-garden-bottom{gap:16px;margin-top:22px}.fgl-garden-rhythm{padding:20px}}
@media(prefers-reduced-motion:reduce){.fgl-garden *{animation:none!important;transition:none!important}.fgl-garden-skill:hover,.fgl-garden-portrait>button:hover .fgl-avatar{transform:none}}.fgl-app[data-motion=reduce] .fgl-garden *,.fgl-app.is-reduced-motion .fgl-garden *{animation:none!important;transition:none!important}
.fgl-app.fgl-reduce-motion .fgl-garden *{animation:none!important;transition:none!important}.fgl-app.fgl-reduce-motion .fgl-garden-skill:hover,.fgl-app.fgl-reduce-motion .fgl-garden-portrait>button:hover .fgl-avatar{transform:none}.fgl-app.fgl-large-type .fgl-garden-domain-details li>button{font-size:14px}.fgl-app.fgl-large-type .fgl-garden :is(.fgl-garden-passport-copy>p,.fgl-garden-companion p,.fgl-garden-rhythm p,.fgl-garden-evidence p){font-size:15px}
.fgl-garden-filter{display:flex;align-items:center;gap:15px;margin:0 0 20px;min-width:0}.fgl-garden-filter label{font-size:12px;font-weight:650;flex-shrink:0}.fgl-garden-filter select{width:280px;max-width:100%;min-width:0;min-height:44px;padding:10px 34px 10px 12px;border:1px solid var(--fgl-line);border-radius:10px;background-color:var(--fgl-paper);color:var(--fgl-ink);font:500 12px/1.5 "DM Sans",sans-serif}.fgl-garden-domains.is-filtered{grid-template-columns:minmax(0,1fr)}.fgl-garden-domains.is-filtered .fgl-garden-domain{max-width:100%}@media(max-width:600px){.fgl-garden-filter{display:block}.fgl-garden-filter label{display:block;margin-bottom:8px}.fgl-garden-filter select{width:100%}}

/* Each grammar tile remains a comfortable touch target. */
.fgl-garden-mosaic{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.fgl-garden-skill{height:44px}

/* V4 — grammar families are readable destinations. The status band records evidence,
   the named point is the action, and the complete collection unfolds on demand.
   Existing FTE ink, paper and semantic colours; no percentage or invented XP. */
.fgl-garden-passport{padding:28px 30px;grid-template-columns:minmax(0,1fr) 150px;gap:20px}
.fgl-app .fgl-garden-passport h1{font-size:clamp(29px,3vw,40px);margin:12px 0}
.fgl-garden-passport-copy>p{margin-bottom:18px}
.fgl-garden-portrait .fgl-avatar{width:88px;height:88px}
.fgl-garden-passport-stamp{display:none}
.fgl-garden-scoreboard{margin:12px 0 28px;padding:18px 0}
.fgl-garden-scoreboard dd{font-size:29px;margin-top:6px}
.fgl-garden-domain{padding:20px;animation-duration:280ms}
.fgl-garden-domain>header{margin-bottom:18px}
.fgl-app .fgl-garden-domain h3{font-size:15px;line-height:1.35}
.fgl-garden-domain-count{font-size:11px;gap:8px}
.fgl-garden-domain-count strong{font-size:17px}
.fgl-garden-status-band{display:flex;gap:3px;height:8px;margin:10px 0 16px;overflow:hidden;border-radius:8px;background:var(--fgl-canvas)}
.fgl-garden-status-band>span{height:100%;min-width:2px;border-radius:2px}
.fgl-garden-status-band .is-acquired{background:var(--fgl-good)}
.fgl-garden-status-band .is-learning{background:var(--fgl-blue)}
.fgl-garden-status-band .is-refresh{background:var(--fgl-warn)}
.fgl-garden-status-band .is-new{background:var(--fgl-line)}
.fgl-garden-next-point{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:68px;padding:12px 13px;border:1px solid transparent;border-radius:12px;background:var(--fgl-blue-soft);color:var(--fgl-ink);font:inherit;text-align:left;cursor:pointer;transition:border-color 150ms ease-out,background 150ms ease-out}
.fgl-garden-next-point>span:first-child{min-width:0}
.fgl-garden-next-point small{display:block;font-size:9px;font-weight:700;letter-spacing:.035em;color:var(--fgl-blue);line-height:1.5;margin-bottom:4px}
.fgl-garden-next-point strong{display:block;font-size:13px;font-weight:650;line-height:1.45;overflow-wrap:anywhere}
.fgl-garden-next-arrow{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;background:var(--fgl-paper);border-radius:50%;font-size:15px;color:var(--fgl-blue)}
.fgl-garden-domain-details{margin-top:12px;border:0}
.fgl-garden-domain-details>summary{min-height:44px;padding:7px 0;font-size:12px;color:var(--fgl-muted)}
.fgl-garden-domain-details[open]>summary{color:var(--fgl-blue)}
.fgl-garden-domain-details li>button{font-size:12px;min-height:48px;padding:11px;line-height:1.5}
.fgl-garden-domain-details li>button>span{overflow-wrap:anywhere}
.fgl-garden-domain-details b{font-size:10px;max-width:78px}
.fgl-garden-domain-details small{font-size:10px}
.fgl-garden-section-heading{margin-bottom:16px}
.fgl-garden-filter select{min-height:46px}
@media(hover:hover){.fgl-garden-next-point:hover{border-color:var(--fgl-blue)}.fgl-garden-domain-details>summary:hover{color:var(--fgl-blue)}}
@media(max-width:600px){
 .fgl-garden-passport{grid-template-columns:minmax(0,1fr) 56px;padding:20px;gap:8px}
 .fgl-app .fgl-garden-passport h1{font-size:29px;line-height:1.08;margin:4px 0 8px}
 .fgl-garden-passport-copy>p{font-size:12px;line-height:1.5;margin-bottom:8px}
 .fgl-garden-portrait .fgl-avatar{width:48px;height:48px}
 .fgl-garden-portrait{padding-top:7px}
 .fgl-garden-passport-actions{gap:12px}
 .fgl-garden-passport-actions>.fgl-button{min-height:44px}
 .fgl-garden-passport-actions>.fgl-text-button{min-height:44px}
 .fgl-garden-scoreboard{row-gap:16px;margin:8px 0 22px;padding:16px 0}
 .fgl-garden-scoreboard dd{font-size:27px;margin-top:4px}
 .fgl-garden-scoreboard dt{font-size:10px}
 .fgl-garden-section-heading>p{font-size:12px;margin-top:8px}
 .fgl-garden-legend{gap:10px;font-size:10px;margin-bottom:14px}
 .fgl-garden-filter{margin-bottom:16px}
 .fgl-garden-domains{gap:12px}
 .fgl-garden-domain{padding:18px}
 .fgl-garden-domain>header{margin-bottom:14px}
 .fgl-garden-domain header p{font-size:11px}
 .fgl-garden-status-band{margin-bottom:12px}
 .fgl-garden-next-point{min-height:66px}
 .fgl-garden-domain-details{margin-top:6px}
 .fgl-garden-domain-details b{max-width:64px;font-size:9px}
}
.fgl-app.fgl-large-type .fgl-garden-next-point strong{font-size:16px}
.fgl-app.fgl-large-type .fgl-garden-next-point small{font-size:11px}

@media(max-width:600px){.fgl-app .fgl-garden-passport h1{font-size:26px}}
@media(max-width:360px){.fgl-app .fgl-garden-passport h1{font-size:24px}.fgl-garden-passport-actions{gap:8px}.fgl-garden-passport-actions>.fgl-button{padding-inline:12px}}

/* FTE enamel milestones. Only server-earned emblems receive the enamel fill.
   Intent: recognise a real learning step, then return to the next activity.
   Hierarchy: illustration -> title -> expandable criterion. 4px spacing rhythm.
   Established ink/blue/paper tokens; quiet tonal depth, no paper-ticket geometry. */
.fgl-app .fgl-emblem-collection{--emblem-metal:#25375b;--emblem-enamel:#2e62d7;--emblem-face:#477be6;--emblem-light:#e5efff;--emblem-spark:#ffe4a0;color:var(--fgl-ink);margin:28px 0 0}
.fgl-app .fgl-emblems-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.fgl-app .fgl-emblems-eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--fgl-muted);margin-bottom:8px}
.fgl-app .fgl-emblems-heading h2{font-size:26px;letter-spacing:-.035em;line-height:1.15;margin:0;text-wrap:balance}
.fgl-app .fgl-emblems-count{font-size:28px;font-weight:700;letter-spacing:-.05em;font-variant-numeric:tabular-nums;white-space:nowrap}
.fgl-app .fgl-emblems-count>span{font-size:14px;font-weight:500;color:var(--fgl-muted);letter-spacing:0}
.fgl-app .fgl-emblems-intro{font-size:14px;line-height:1.65;color:var(--fgl-muted);max-width:68ch;margin:0 0 24px;text-wrap:pretty}
.fgl-app .fgl-achievement-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.fgl-app .fgl-emblem-card{min-width:0;display:flex;flex-direction:column;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:20px;padding:24px 20px 16px;overflow:hidden}
.fgl-app .fgl-emblem-card-stage{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:24px}
.fgl-app .fgl-achievement-mark{--emblem-metal:#25375b;--emblem-enamel:#2e62d7;--emblem-face:#477be6;--emblem-light:#e5efff;--emblem-spark:#ffe4a0;display:inline-flex;position:relative;flex:none;width:88px;height:88px;align-items:center;justify-content:center;vertical-align:middle}
.fgl-app .fgl-achievement-mark>svg{width:100%;height:100%;overflow:visible;display:block;stroke-width:2}
.fgl-app .fgl-achievement-mark--orbit{--emblem-enamel:#167c74;--emblem-face:#32998c;--emblem-light:#d7fff0;--emblem-spark:#ffe4a0}
.fgl-app .fgl-achievement-mark--book{--emblem-enamel:#bf8333;--emblem-face:#e4b25f;--emblem-light:#fff2ca;--emblem-spark:#fff0b2}
.fgl-app .fgl-achievement-mark.is-mini{width:54px;height:54px}
.fgl-app .fgl-achievement-mark.is-hero{width:128px;height:128px}
.fgl-app .fgl-emblem-rim{fill:var(--emblem-metal);stroke:var(--emblem-metal);stroke-width:2}
.fgl-app .fgl-emblem-face{fill:var(--emblem-enamel);stroke:var(--emblem-face);stroke-width:2}
.fgl-app .fgl-emblem-symbol{fill:var(--emblem-light);stroke:var(--emblem-metal);stroke-width:2.2}
.fgl-app .fgl-emblem-detail{stroke:var(--emblem-metal);stroke-width:1.8;fill:none}
.fgl-app .fgl-emblem-spark{fill:var(--emblem-spark);stroke:var(--emblem-metal);stroke-width:1.6}
.fgl-app .fgl-emblem-glint{stroke:var(--emblem-light);stroke-width:2;opacity:.65;fill:none}
.fgl-app .fgl-emblem-orbit{stroke:var(--emblem-spark);stroke-width:2.3;fill:none}
.fgl-app .fgl-achievement-mark--orbit .fgl-emblem-symbol{fill:none;stroke:var(--emblem-light);stroke-width:4}
.fgl-app .fgl-achievement-mark--orbit .fgl-emblem-detail{stroke:var(--emblem-light);stroke-width:3}
.fgl-app .fgl-achievement-mark.is-earned>svg{filter:drop-shadow(0 3px 1px #15234816)}
.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-rim{fill:var(--fgl-canvas);stroke:var(--fgl-line)}
.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-face{fill:var(--fgl-paper);stroke:var(--fgl-line)}
.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-symbol,.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-spark{fill:var(--fgl-blue-soft);stroke:var(--fgl-muted)}
.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-detail,.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-orbit{stroke:var(--fgl-muted)}
.fgl-app .fgl-achievement-mark.is-locked .fgl-emblem-glint{stroke:var(--fgl-line)}
.fgl-app .fgl-achievement-mark--orbit.is-locked .fgl-emblem-symbol{fill:none;stroke:var(--fgl-muted);stroke-width:3}
.fgl-app .fgl-achievement-check{position:absolute;bottom:4px;right:4px;display:grid;place-items:center;width:24px;height:24px;border:3px solid var(--fgl-paper);border-radius:50%;background:var(--fgl-good-soft);color:var(--fgl-good);font:700 13px/1 'DM Sans',sans-serif}
.fgl-app .fgl-achievement-mark.is-mini .fgl-achievement-check{width:18px;height:18px;border-width:2px;font-size:10px;bottom:0;right:0}
.fgl-app .fgl-emblem-status{font-size:11px;font-weight:600;color:var(--fgl-muted);padding:5px 10px;border-radius:20px;background:var(--fgl-canvas)}
.fgl-app .fgl-emblem-card.is-earned .fgl-emblem-status{background:var(--fgl-good-soft);color:var(--fgl-good)}
.fgl-app .fgl-emblem-card-copy{flex:1;text-align:center}
.fgl-app .fgl-emblem-chapter{font-size:9px;letter-spacing:.12em;font-weight:700;color:var(--fgl-muted)}
.fgl-app .fgl-emblem-card h3{font-family:'Instrument Serif',Georgia,serif;font-size:30px;font-weight:400;letter-spacing:-.025em;line-height:1.1;margin:8px 0 12px;text-wrap:balance}
.fgl-app .fgl-emblem-card-copy>p{font-size:13px;line-height:1.6;color:var(--fgl-muted);margin:0 0 20px;text-wrap:pretty}
.fgl-app .fgl-emblem-rule{border-top:1px solid var(--fgl-line);margin:0}
.fgl-app .fgl-emblem-rule>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:12px;font-weight:600;color:var(--fgl-ink);cursor:pointer;list-style:none;border-radius:6px;transition:background-color 160ms}
.fgl-app .fgl-emblem-rule>summary::-webkit-details-marker{display:none}
.fgl-app .fgl-emblem-rule>summary>span{font-size:20px;font-weight:400;color:var(--fgl-muted);transition:transform 160ms cubic-bezier(.23,1,.32,1)}
.fgl-app .fgl-emblem-rule[open]>summary>span{transform:rotate(45deg)}
.fgl-app .fgl-emblem-rule>summary:hover{background:var(--fgl-canvas)}
.fgl-app .fgl-emblem-rule>summary:focus-visible{outline:3px solid var(--fgl-blue);outline-offset:3px}
.fgl-app .fgl-emblem-rule>p{font-size:12px;line-height:1.65;color:var(--fgl-muted);margin:0 0 16px;text-wrap:pretty}
.fgl-app .fgl-emblem-card-foot{font-size:10px;line-height:1.5;color:var(--fgl-muted);text-align:center;padding-top:8px}
.fgl-app .fgl-emblems-note{font-size:12px;color:var(--fgl-muted);line-height:1.65;margin:20px 0 0;text-wrap:pretty}
/* Dashboard: an actual small collection, not a second scrollable page. */
.fgl-app .fgl-emblem-collection.is-compact{margin:0;padding:20px;border:1px solid var(--fgl-line);border-radius:16px;background:var(--fgl-paper)}
.fgl-app .fgl-emblem-collection.is-compact .fgl-emblems-heading{margin-bottom:12px}
.fgl-app .fgl-emblem-collection.is-compact .fgl-emblems-eyebrow{font-size:9px;margin-bottom:6px}
.fgl-app .fgl-emblem-collection.is-compact .fgl-emblems-heading h2{font-size:18px;letter-spacing:-.025em}
.fgl-app .fgl-emblem-collection.is-compact .fgl-emblems-count{font-size:24px}
.fgl-app .fgl-emblem-mini-row{display:flex;align-items:center;justify-content:flex-start;gap:16px;padding:4px 0 16px;flex-wrap:wrap}
.fgl-app .fgl-emblem-mini{display:inline-flex;align-items:center;justify-content:center}
.fgl-app .fgl-emblem-next{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-bottom:12px}
.fgl-app .fgl-emblem-next>span{font-size:9px;letter-spacing:.08em;font-weight:700;color:var(--fgl-muted)}
.fgl-app .fgl-emblem-next>strong{font-size:14px;font-weight:700;color:var(--fgl-ink)}
.fgl-app .fgl-emblem-collection-link{min-height:44px;display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;padding:0!important;text-align:left}
.fgl-app .fgl-emblem-collection-link>span{transition:transform 160ms cubic-bezier(.23,1,.32,1)}
.fgl-app .fgl-emblem-collection-link:hover>span{transform:translateX(3px)}
.fgl-app .fgl-emblem-collection-link:active{transform:scale(.98)}
@media(max-width:780px){.fgl-app .fgl-achievement-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.fgl-app .fgl-emblem-card{padding:20px 12px 16px}.fgl-app .fgl-emblem-card h3{font-size:26px}.fgl-app .fgl-achievement-mark.is-hero{width:104px;height:104px}}
@media(max-width:560px){.fgl-app .fgl-achievement-gallery{grid-template-columns:1fr}.fgl-app .fgl-emblem-card{display:grid;grid-template-columns:80px minmax(0,1fr);gap:0 16px;padding:20px}.fgl-app .fgl-emblem-card-stage{grid-column:1;grid-row:1 / 3;margin:0;gap:8px}.fgl-app .fgl-achievement-mark.is-hero{width:80px;height:80px}.fgl-app .fgl-emblem-status{font-size:9px;padding:4px 6px;text-align:center}.fgl-app .fgl-emblem-card-copy{grid-column:2;text-align:left}.fgl-app .fgl-emblem-card h3{font-size:27px;margin:8px 0}.fgl-app .fgl-emblem-card-copy>p{font-size:12px;margin-bottom:16px}.fgl-app .fgl-emblem-rule{grid-column:2}.fgl-app .fgl-emblem-card-foot{grid-column:2;text-align:left;font-size:9px;padding-top:4px}.fgl-app .fgl-emblems-heading h2{font-size:24px}.fgl-app .fgl-emblems-intro{font-size:13px}.fgl-app .fgl-emblem-card .fgl-achievement-check{width:20px;height:20px;font-size:11px;border-width:2px}}
@media(max-width:350px){.fgl-app .fgl-emblem-card{padding:16px;grid-template-columns:64px minmax(0,1fr);gap:0 12px}.fgl-app .fgl-emblem-card .fgl-achievement-mark.is-hero{width:64px;height:64px}.fgl-app .fgl-emblem-card h3{font-size:24px}.fgl-app .fgl-emblem-status{font-size:8px}.fgl-app .fgl-emblem-collection.is-compact{padding:16px}.fgl-app .fgl-emblem-mini-row{gap:12px}}
.fgl-app[data-theme=dark] .fgl-achievement-mark.is-earned>svg{filter:none}
@media(prefers-color-scheme:dark){.fgl-app[data-theme=system] .fgl-achievement-mark.is-earned>svg{filter:none}}
@media(prefers-reduced-motion:reduce){.fgl-app .fgl-emblem-rule>summary>span,.fgl-app .fgl-emblem-collection-link>span{transition:none}.fgl-app .fgl-emblem-collection-link:hover>span,.fgl-app .fgl-emblem-collection-link:active{transform:none}}
.fgl-app.fgl-reduce-motion .fgl-emblem-rule>summary>span,.fgl-app.fgl-reduce-motion .fgl-emblem-collection-link>span{transition:none}
.fgl-app.fgl-reduce-motion .fgl-emblem-collection-link:hover>span,.fgl-app.fgl-reduce-motion .fgl-emblem-collection-link:active{transform:none}

.fgl-app .fgl-session-celebration{max-width:800px;margin:0 auto 28px;text-align:center}.fgl-celebration-duo{display:flex;align-items:center;justify-content:center;gap:18px;min-height:108px;margin-bottom:20px}.fgl-celebration-duo .fgl-avatar{width:76px;height:76px}.fgl-celebration-duo>img{width:76px;height:88px;object-fit:contain}.fgl-celebration-star{color:var(--fgl-blue);font-size:27px;animation:fgl-stamp-in .5s cubic-bezier(.2,.8,.2,1) both}.fgl-app .fgl-session-celebration h1{font-size:clamp(30px,3.5vw,44px);line-height:1.1;margin:12px 0 18px;letter-spacing:-.04em}.fgl-session-celebration h1 em{font-family:'Instrument Serif',serif;font-weight:400;color:var(--fgl-blue)}.fgl-session-celebration>p{font-size:15px;line-height:1.65;color:var(--fgl-muted)}.fgl-session-stamps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px auto;max-width:590px}.fgl-session-stamps>div{background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:14px;padding:18px 10px;animation:fgl-stamp-in .4s cubic-bezier(.2,.8,.2,1) both}.fgl-session-stamps>div:nth-child(2){animation-delay:60ms}.fgl-session-stamps>div:nth-child(3){animation-delay:120ms}.fgl-session-stamps strong{display:block;font-size:30px;color:var(--fgl-blue);font-variant-numeric:tabular-nums}.fgl-session-stamps span{display:block;font-size:11px;color:var(--fgl-muted);margin-top:7px}.fgl-earned-moment{display:flex;align-items:center;text-align:left;gap:16px;padding:20px;background:var(--fgl-blue-soft);border:1px solid var(--fgl-line);border-radius:14px;margin-bottom:20px}.fgl-earned-moment>span{font-size:32px;color:var(--fgl-blue)}.fgl-earned-moment>div{flex:1}.fgl-earned-moment small,.fgl-earned-moment strong{display:block}.fgl-earned-moment small{font-size:9px;letter-spacing:.07em;margin-bottom:6px;color:var(--fgl-muted)}.fgl-earned-moment strong{font-size:19px}.fgl-earned-moment button{min-height:44px}.fgl-session-changes{list-style:none;margin:0 0 24px;padding:0;text-align:left;border-block:1px solid var(--fgl-line)}.fgl-session-changes li{display:flex;gap:14px;justify-content:space-between;padding:14px 4px;font-size:12px}.fgl-session-changes strong{color:var(--fgl-blue);text-align:right}.fgl-session-celebration .fgl-celebration-note{font-size:12px;margin:16px 0}.fgl-app .fgl-finish-compact>.fgl-next-learning{text-align:left}.fgl-app .fgl-finish-compact{padding-top:12px}@keyframes fgl-stamp-in{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:680px){.fgl-session-stamps{gap:7px}.fgl-session-stamps>div{padding:15px 7px}.fgl-session-stamps strong{font-size:25px}.fgl-session-stamps span{font-size:10px}.fgl-earned-moment{flex-wrap:wrap;padding:16px}.fgl-earned-moment button{width:100%;text-align:left}.fgl-celebration-duo{margin-bottom:14px}}@media(prefers-reduced-motion:reduce){.fgl-celebration-star,.fgl-session-stamps>div{animation:none}}.fgl-reduce-motion .fgl-celebration-star,.fgl-reduce-motion .fgl-session-stamps>div{animation:none}

.fgl-celebration-next{margin:18px auto 24px;max-width:590px}.fgl-celebration-next .fgl-button{width:100%;justify-content:center;min-height:52px;font-size:14px}.fgl-app .fgl-finish-compact>.fgl-session-celebration{padding:0}@media(max-width:680px){.fgl-celebration-duo{min-height:84px;margin-bottom:14px}.fgl-celebration-duo .fgl-avatar{width:60px;height:60px}.fgl-celebration-duo>img{width:64px;height:76px}.fgl-session-stamps{margin:18px auto}.fgl-celebration-next .fgl-button{font-size:12px}}

.fgl-dashboard-programme{min-width:0;margin-bottom:22px}.fgl-dashboard-programme>summary{display:none}.fgl-dashboard-programme .fgl-programme-pocket{margin-bottom:0}.fgl-lesson-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0 28px;padding:16px 0;border-block:1px solid var(--fgl-line)}.fgl-lesson-entry>span{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fgl-lesson-entry small{font-size:12px;color:var(--fgl-muted)}.fgl-lesson-entry .fgl-button{flex-shrink:0}@media(max-width:680px){.fgl-dashboard-programme{background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:15px;margin-bottom:16px}.fgl-dashboard-programme>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px;list-style:none;min-height:64px;cursor:pointer}.fgl-dashboard-programme>summary::-webkit-details-marker{display:none}.fgl-dashboard-programme summary small{display:block;font-size:9px;letter-spacing:.08em;color:var(--fgl-muted);margin-bottom:7px}.fgl-dashboard-programme summary strong{font-size:16px}.fgl-dashboard-programme summary>span:last-child{font-size:23px;color:var(--fgl-blue)}.fgl-dashboard-programme[open] summary>span:last-child{transform:rotate(45deg)}.fgl-dashboard-programme .fgl-programme-pocket{border:0;padding:0 18px 18px;background:transparent}.fgl-dashboard-programme .fgl-programme-pocket>.fgl-kicker,.fgl-dashboard-programme .fgl-programme-pocket>h2{display:none}.fgl-lesson-entry{display:block;padding:14px 0;margin:18px 0 22px}.fgl-lesson-entry>span{margin-bottom:14px}.fgl-lesson-entry .fgl-button{width:100%;justify-content:center}.fgl-lesson-entry small{font-size:11px}}

/* A response belongs to the question already on screen; animate only the newly revealed feedback. */
.fgl-app[data-fgl-continuity=steady] .fgl-exercise,
.fgl-app[data-fgl-continuity=steady] .fgl-onboarding-body,
.fgl-app[data-fgl-continuity=steady] .fgl-programme-heading,
.fgl-app[data-fgl-continuity=steady] .fgl-programme-week{animation:none!important}
.fgl-request-status{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:1200;max-width:calc(100vw - 32px);padding:11px 17px;border:1px solid #dce5f4;border-radius:40px;background:#1c244b;color:#fff;box-shadow:0 8px 28px #12244b22;font:600 13px/1.4 'DM Sans',sans-serif;pointer-events:none;text-align:center}
.fgl-request-status:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#a8c8ff;margin-right:9px;vertical-align:1px}
.fgl-app[data-fgl-pending=true] button:disabled{cursor:wait}
@media(max-width:680px){.fgl-request-status{bottom:calc(88px + env(safe-area-inset-bottom))}}

/* The addressee is part of the question, always visible before the English sentence. */
.fgl-address-context{margin:16px 0;padding:14px 16px;border:1px solid var(--fgl-line,#dce3ef);border-left:3px solid var(--fgl-blue,#2563eb);border-radius:12px;background:var(--fgl-canvas,#f5f7fc);color:var(--fgl-ink,#1c244b);font-size:14px;line-height:1.55}
.fgl-address-context>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fgl-address-form{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:3px 10px;border-radius:8px;background:#e4ecff;color:#173e8e;font-size:18px;font-weight:800}
.fgl-address-context p{font-size:14px!important;line-height:1.55!important;margin:8px 0 0!important;color:inherit!important}
.fgl-address-context details{margin-top:4px}
.fgl-address-context summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.fgl-address-context summary:focus-visible{outline:2px solid #2563eb;outline-offset:3px}
.fgl-feedback.is-context{background:var(--fgl-canvas,#f5f7fc);border-left-color:var(--fgl-blue,#2563eb)}
[data-theme=dark] .fgl-address-context,[data-theme=dark] .fgl-feedback.is-context{background:#202c43;color:#e7edff;border-color:#526581}
[data-theme=dark] .fgl-address-form{background:#324972;color:#dce8ff}
@media(max-width:480px){.fgl-address-context{padding:12px;margin:12px 0}.fgl-address-context>div{gap:8px}.fgl-address-context p{font-size:13px!important}}

@media(prefers-color-scheme:dark){.fgl-app[data-theme=system] .fgl-address-form{background:#324972;color:#dce8ff}}

/* Recovery keeps the grammar task in place and uses the existing notebook tokens. */
.fgl-connection-status:empty{display:none}
.fgl-connection-note,.fgl-recovery{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 24px;padding:16px 20px;border:1px solid var(--fgl-line);border-radius:12px;background:var(--fgl-paper);color:var(--fgl-ink);font-size:14px;line-height:1.6}
.fgl-connection-note:before{content:'';width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--fgl-blue)}
.fgl-connection-note p,.fgl-recovery p{margin:0;flex:1 1 240px}
.fgl-recovery .fgl-button,.fgl-connection-note .fgl-button{flex:0 1 auto;min-height:44px;text-align:center}
.fgl-recovery--session{border-inline-start:3px solid var(--fgl-blue)}
.fgl-start-recovery{max-width:640px;margin:clamp(24px,8vw,96px) auto;padding:24px}
.fgl-start-recovery h1{font-size:28px;line-height:1.2;letter-spacing:-.025em}
.fgl-start-recovery p{color:var(--fgl-muted);line-height:1.65}
.fgl-start-recovery .fgl-actions{margin-top:24px}
@media(max-width:680px){.fgl-connection-note,.fgl-recovery{padding:16px;gap:12px}.fgl-recovery .fgl-button{width:100%}.fgl-start-recovery{margin:24px auto;padding:20px}.fgl-start-recovery h1{font-size:24px}}

/* Same paper, ink and blue as the learning surface; no new colour system. */
.fgl-listening-practice-entry{margin:24px 0;padding:24px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:16px}
.fgl-listening-practice-entry>summary{cursor:pointer;color:var(--fgl-blue);font-weight:700;min-height:44px;display:list-item;align-content:center}
.fgl-listening-practice{padding-top:24px;max-width:760px;margin:auto}
.fgl-listening-practice-head{display:flex;gap:24px;align-items:end;justify-content:space-between}
.fgl-listening-practice-head label{font-size:13px;color:var(--fgl-muted)}
.fgl-listening-practice select,.fgl-listening-practice textarea{display:block;width:100%;min-height:44px;border:1px solid var(--fgl-line);border-radius:10px;color:var(--fgl-ink);background:var(--fgl-input);padding:12px;font:inherit}
.fgl-listening-practice select{max-width:300px;margin-top:6px}
.fgl-listening-practice textarea{resize:vertical;min-height:110px;margin-top:8px;font-size:18px}
.fgl-listening-progress{display:flex;justify-content:space-between;gap:16px;color:var(--fgl-muted);font-size:13px;margin-top:24px;font-variant-numeric:tabular-nums}
.fgl-listening-practice progress{width:100%;height:6px;accent-color:var(--fgl-blue);margin:8px 0 24px}
.fgl-listening-instruction{font-size:17px;max-width:65ch}
.fgl-listening-example-box{padding:20px;border-radius:12px;background:var(--fgl-input);margin:20px 0}
.fgl-listening-example-box section+section{border-top:1px solid var(--fgl-line);padding-top:20px;margin-top:20px}
.fgl-listening-sentence{font-size:clamp(21px,3.5vw,28px);font-weight:600;line-height:1.45;color:var(--fgl-ink);overflow-wrap:anywhere}
.fgl-listening-practice mark{background:var(--fgl-blue-soft);color:var(--fgl-blue);border-radius:3px;padding:1px 3px}
.fgl-listening-practice audio{width:100%;max-width:100%;height:44px}
.fgl-listening-practice blockquote,.fgl-listening-context{border-left:3px solid var(--fgl-blue);margin:16px 0;padding:12px 16px;background:var(--fgl-blue-soft)}
.fgl-listening-actions,.fgl-listening-save{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}
.fgl-listening-save .fgl-listening-status{flex:1 1 230px;margin:0}
.fgl-listening-status[data-error=true]{color:var(--fgl-warn)}
.fgl-listening-practice button:disabled{opacity:.65;cursor:wait}
.fgl-listening-practice [tabindex="-1"]:focus{outline:0}
@media(max-width:600px){.fgl-listening-practice-entry{padding:16px}.fgl-listening-practice-head{display:block}.fgl-listening-practice-head label{display:block;margin-top:16px}.fgl-listening-practice select{max-width:none}.fgl-listening-actions>.fgl-button{width:100%}.fgl-listening-example-box{padding:16px}.fgl-listening-save{gap:6px 16px}}

/* Product refinement: preserve the French notebook, make every action readable. */
.fgl-app{--fgl-copy-size:16px;--fgl-control-size:14px;--fgl-note-size:12px}
.fgl-app .fgl-button{font-size:var(--fgl-control-size);line-height:1.45;font-weight:650;gap:10px;max-width:100%;white-space:normal;text-align:center;padding:12px 20px;min-height:48px}
.fgl-app .fgl-button svg{flex-shrink:0}
.fgl-app .fgl-text-button,.fgl-app .fgl-back{min-height:44px;font-size:var(--fgl-control-size);line-height:1.5;white-space:normal}
.fgl-app .fgl-actions{gap:12px;align-items:center}
.fgl-app .fgl-topbar-label{font-size:14px;font-weight:600;color:var(--fgl-muted)}
.fgl-app .fgl-profile-link{font-size:13px}
.fgl-app .fgl-profile-popover{min-width:260px;padding:12px}
.fgl-app .fgl-profile-popover small{font-size:12px;line-height:1.5}
.fgl-app .fgl-profile-popover button,.fgl-app .fgl-profile-popover>a{min-height:48px;font-size:14px}
.fgl-app .fgl-kicker,.fgl-app .fgl-eyebrow,.fgl-app .fgl-garden-eyebrow{font-size:11px;letter-spacing:.08em;line-height:1.6}
.fgl-app .fgl-lead{font-size:16px;line-height:1.7;max-width:65ch}
.fgl-app .fgl-small,.fgl-app .fgl-help{font-size:var(--fgl-note-size);line-height:1.65}
.fgl-app h1,.fgl-app h2,.fgl-app h3{text-wrap:balance}
.fgl-app .fgl-notice{font-size:14px;line-height:1.6;padding:14px 18px;border-radius:12px;margin-bottom:24px}

/* Today: keep the recommended sentence pattern above the secondary notebook. */
.fgl-app .fgl-next-learning{padding:28px 30px}
.fgl-app .fgl-next-learning>p{font-size:16px;line-height:1.65;max-width:58ch}
.fgl-app .fgl-next-learning>.fgl-actions{margin-top:20px;margin-bottom:12px}
.fgl-app .fgl-next-learning>.fgl-actions>.fgl-button{min-width:168px}
.fgl-app .fgl-next-size{font-size:12px;line-height:1.5}
.fgl-app .fgl-other-learning>summary,.fgl-app .fgl-coach-disclosure>summary{min-height:44px;padding-block:12px;font-size:14px;line-height:1.5;cursor:pointer}
.fgl-app .fgl-personal-greeting>p{font-size:15px;line-height:1.6}
.fgl-app .fgl-personal-routine,.fgl-app .fgl-personal-portrait>span:last-child{font-size:12px}
.fgl-app .fgl-personal-rhythm>p,.fgl-app .fgl-personal-route-note{font-size:13px;line-height:1.65}
.fgl-app .fgl-personal-route button strong{font-size:14px;line-height:1.45}
.fgl-app .fgl-personal-route button span,.fgl-app .fgl-personal-route-head,.fgl-app .fgl-personal-rhythm-head>span{font-size:12px;line-height:1.5}
.fgl-app .fgl-personal-days>li>span:first-child,.fgl-app .fgl-personal-days small{font-size:11px}
.fgl-app .fgl-personal-days small{white-space:nowrap}
@media(max-width:360px){.fgl-app .fgl-personal-days li:last-child small{text-align:right}}
.fgl-app .fgl-programme-pocket p,.fgl-app .fgl-programme-pocket li strong{font-size:14px;line-height:1.55}
.fgl-app .fgl-programme-pocket li small{font-size:12px;line-height:1.5}

/* Library, programme and progress share a legible supporting-text scale. */
.fgl-app .fgl-path-row{padding-block:20px}
.fgl-app .fgl-path-copy>strong{font-size:17px;line-height:1.45}
.fgl-app .fgl-path-copy>span:last-child{font-size:14px;line-height:1.6}
.fgl-app .fgl-path-row>.fgl-status,.fgl-app .fgl-status{font-size:12px;line-height:1.5;white-space:normal}
.fgl-app .fgl-result-heading{gap:12px;flex-wrap:wrap}
.fgl-app .fgl-result-heading p,.fgl-app .fgl-result-heading>span{font-size:13px;line-height:1.6}
.fgl-app .fgl-path-overview p{font-size:13px;line-height:1.6}
.fgl-app .fgl-filters select,.fgl-app .fgl-filters input{font-size:16px;min-height:48px}
.fgl-app .fgl-programme-heading p,.fgl-app .fgl-practice-card p{font-size:16px;line-height:1.7}
.fgl-app .fgl-programme-explain p,.fgl-app .fgl-programme-sessions li li{font-size:14px;line-height:1.65}
.fgl-app .fgl-programme-week>summary>span:nth-child(2)>span,.fgl-app .fgl-programme-facts span,.fgl-app .fgl-programme-seal small{font-size:12px;line-height:1.6}
.fgl-app .fgl-programme-sessions summary,.fgl-app .fgl-programme-evidence>summary{min-height:44px;align-content:center;font-size:14px}
.fgl-app .fgl-programme-toolbar .fgl-button{font-size:14px}
.fgl-app .fgl-practice-card{display:flex;flex-direction:column;align-items:flex-start}
.fgl-app .fgl-practice-card>.fgl-button{margin-top:auto}
.fgl-app .fgl-history-row summary{min-height:56px}
.fgl-app .fgl-history-row small,.fgl-app .fgl-garden-filter label{font-size:12px;line-height:1.6}

/* Questions: distinct instruction, sentence, response and explanation. */
.fgl-app .fgl-answer-error{padding:12px 16px;margin:16px 0 0;border-left:3px solid var(--fgl-warn);border-radius:8px;background:var(--fgl-warn-soft);color:var(--fgl-warn);font-size:14px;line-height:1.6}
.fgl-app #fgl-response[aria-invalid=true]{border-color:var(--fgl-warn)}
.fgl-app .fgl-question h1{font-size:clamp(23px,2.3vw,30px);line-height:1.3;letter-spacing:-.025em;margin-bottom:12px}
.fgl-app .fgl-question-instruction{font-size:16px;line-height:1.65;color:var(--fgl-muted);max-width:60ch}
.fgl-app .fgl-question-sentence p{font-size:clamp(24px,2.6vw,32px);line-height:1.5;letter-spacing:-.015em}
.fgl-app .fgl-answer-form textarea{font-size:18px;line-height:1.6;min-height:104px}
.fgl-app .fgl-answer-action{margin-top:16px}
.fgl-app .fgl-feedback-reason,.fgl-app .fgl-feedback>p,.fgl-app .fgl-feedback-explanation p{font-size:16px;line-height:1.7}
.fgl-app .fgl-submitted-answer>span,.fgl-app .fgl-answer-key>span,.fgl-app .fgl-input-note{font-size:12px;line-height:1.6}
.fgl-app .fgl-feedback-explanation summary,.fgl-app .fgl-accent-tools summary,.fgl-app .fgl-pace-menu summary{min-height:44px;font-size:14px;align-content:center;cursor:pointer}
.fgl-app .fgl-choice{min-height:56px;font-size:17px;line-height:1.5}
.fgl-app .fgl-unknown-action .fgl-button{font-size:14px}
.fgl-app .fgl-unknown-action small,.fgl-app .fgl-practice-top{font-size:12px;line-height:1.5}
.fgl-app .fgl-lesson-compact{padding-block:8px}
.fgl-app .fgl-listening-turn audio{width:100%;max-width:100%}
.fgl-app .fgl-listening-toolbar>span,.fgl-app .fgl-listening-speaker,.fgl-app .fgl-scene-context{font-size:12px;line-height:1.6}
.fgl-app .fgl-listening-skill-choice select,.fgl-app .fgl-scene-controls select{font-size:16px;min-height:48px}

/* Preferences: comfortable labels, large inputs and a clear save action. */
.fgl-app .fgl-settings-heading p,.fgl-app .fgl-settings-fields>label,.fgl-app .fgl-account-admin p{font-size:14px;line-height:1.65}
.fgl-app .fgl-settings-fields input:not([type=radio]):not([type=checkbox]),.fgl-app .fgl-settings-fields select{font-size:16px;min-height:48px}
.fgl-app .fgl-settings-fields summary{min-height:44px;align-content:center;font-size:14px;cursor:pointer}
.fgl-app .fgl-check small{font-size:12px;line-height:1.6}
.fgl-app .fgl-account-links>a,.fgl-app .fgl-account-links>.fgl-text-button{font-size:14px;line-height:1.5;min-height:44px;display:inline-flex;align-items:center}
.fgl-app .fgl-save{padding:20px 0;gap:16px;border-top:1px solid var(--fgl-line)}
.fgl-app #fgl-save-status.is-error{color:var(--fgl-warn);font-size:14px;line-height:1.6}
.fgl-app .fgl-onboarding-option small{font-size:13px;line-height:1.55}
.fgl-app .fgl-onboarding-option strong{font-size:16px;line-height:1.45}
.fgl-app.fgl-large-type .fgl-onboarding-option strong{font-size:18px}
.fgl-app.fgl-large-type .fgl-onboarding-option small{font-size:16px}
#fgl-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.fgl-app .fgl-context-options label>span,.fgl-app .fgl-minute-options label>span,.fgl-app .fgl-day-options label>span{position:relative}
.fgl-app .fgl-context-options label>span,.fgl-app .fgl-minute-options label>span{padding-right:26px}
.fgl-app .fgl-day-options label>span{padding-top:22px}
.fgl-app .fgl-chip-check{position:absolute;top:5px;right:5px;width:12px;height:12px;font:700 11px/12px 'DM Sans',sans-serif;visibility:hidden}
.fgl-app input:checked+span>.fgl-chip-check{visibility:visible}
.fgl-app .fgl-onboarding-steps .is-current>span,.fgl-app .fgl-onboarding-option input:checked+span>.fgl-option-check{color:var(--fgl-on-button,#fff)}
.fgl-app .fgl-onboarding-v2 .fgl-onboarding-steps li strong{font-size:11px;line-height:1.4}
.fgl-app .fgl-onboarding-v2 .fgl-onboarding-recap dt,.fgl-app .fgl-onboarding-route,.fgl-app .fgl-day-options small{font-size:12px;line-height:1.5}
.fgl-app .fgl-onboarding-deliverable p,.fgl-app .fgl-onboarding-deliverable li span{font-size:14px;line-height:1.65}

@media(max-width:680px){
 .fgl-app .fgl-nav-item{font-size:11px;min-height:58px;padding:8px 2px;gap:5px}
 .fgl-app .fgl-nav-item b{font-size:10px;min-width:18px;height:18px}
 .fgl-app .fgl-topbar-label{font-size:13px;max-width:55vw}
 .fgl-app .fgl-profile-popover{max-width:calc(100vw - 36px);min-width:min(260px,calc(100vw - 36px))}
 .fgl-app .fgl-main{padding-inline:18px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
 .fgl-app .fgl-personal-greeting h1{font-size:32px}
 .fgl-app .fgl-personal-greeting>p{font-size:14px}
 .fgl-app .fgl-personal-portrait>span:last-child{font-size:11px;white-space:nowrap}
 .fgl-app .fgl-next-learning{padding:22px 20px}
 .fgl-app .fgl-next-learning h2{font-size:27px}
 .fgl-app .fgl-next-learning>.fgl-actions>.fgl-button{width:100%}
 .fgl-app .fgl-other-learning>summary{font-size:13px}
 .fgl-app .fgl-personal-section-title{gap:12px;flex-wrap:wrap}
 .fgl-app .fgl-personal-section-title h2{font-size:25px}
 .fgl-app .fgl-path-copy>strong{font-size:16px}
 .fgl-app .fgl-path-row>.fgl-status{font-size:12px}
 .fgl-app .fgl-onboarding-v2 .fgl-onboarding-steps li strong{font-size:10px}
 .fgl-app .fgl-onboarding-actions .fgl-button{font-size:13px;padding-inline:12px;min-height:48px}
 .fgl-app .fgl-onboarding-v2 .fgl-onboarding-actions{bottom:calc(82px + env(safe-area-inset-bottom))}
 .fgl-app .fgl-identity-finish{position:fixed;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom));margin:0}
 .fgl-app[data-view=identity] .fgl-main{padding-bottom:calc(220px + env(safe-area-inset-bottom))}
 .fgl-app .fgl-day-options small{font-size:10px}
 .fgl-app .fgl-feedback .fgl-actions{display:grid;grid-template-columns:minmax(0,1fr)}
 .fgl-app .fgl-feedback .fgl-keyboard-next{display:none}
 .fgl-app .fgl-settings>section{padding-block:24px}
 .fgl-app .fgl-access-entry .fgl-actions>.fgl-button{width:100%}
}
.fgl-app.fgl-large-type{--fgl-control-size:16px;--fgl-note-size:14px}
.fgl-app.fgl-large-type .fgl-question-instruction,.fgl-app.fgl-large-type .fgl-feedback-reason,.fgl-app.fgl-large-type .fgl-next-learning>p{font-size:18px}
/* Reserve visible space above the fixed mobile navigation during keyboard scrolling. */
.fgl-app .fgl-membership-recovery{border-block:1px solid var(--fgl-line);padding:20px 0;margin:24px 0}
.fgl-app .fgl-membership-recovery>strong{font-size:15px}
.fgl-app .fgl-membership-recovery>p{font-size:14px;line-height:1.7;color:var(--fgl-muted);margin:8px 0 12px}
.fgl-app .fgl-membership-recovery .fgl-text-button{font-size:14px;min-height:44px;display:inline-flex;align-items:center}
.fgl-app #fgl-billing-mount{scroll-margin-top:24px}
.fgl-app .fgl-lesson-compact>.fgl-help{margin:8px 0 0;text-align:center;font-size:13px;line-height:1.6}
.fgl-app #fgl-onboarding-unsaved{flex-basis:100%;font-size:13px;line-height:1.6;margin:0}
@media(max-width:680px){
 html:has(#fgl-app){scroll-padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 html:has(#fgl-app[data-view=onboarding]){scroll-padding-bottom:calc(205px + env(safe-area-inset-bottom))}
 html:has(#fgl-app[data-view=identity]){scroll-padding-bottom:calc(220px + env(safe-area-inset-bottom))}
}

/* 0.3.5: a compact practice stage, with the French sentence as its focal point. */
.fgl-app.fgl-practising .fgl-practice-top{margin-bottom:8px;align-items:center}
.fgl-app.fgl-practising .fgl-practice-top>.fgl-back{margin:0}
.fgl-app.fgl-practising .fgl-compact-mission{margin:0 0 8px;padding:8px 0;gap:16px}
.fgl-app.fgl-practising .fgl-learning-companion-copy{min-width:0}
.fgl-app.fgl-practising .fgl-mission-count{font-variant-numeric:tabular-nums;font-size:12px;line-height:1.5}
.fgl-app.fgl-practising .fgl-round-path>span{height:8px;border-radius:4px}
.fgl-app.fgl-practising .fgl-exercise-layout{margin-top:0}
.fgl-app.fgl-practising .fgl-exercise .fgl-question h1{font-size:26px;font-weight:700;line-height:1.3;color:var(--fgl-ink);margin:0 0 12px;text-wrap:balance}
.fgl-app.fgl-practising .fgl-exercise>.fgl-kicker{font-size:11px;line-height:1.6;letter-spacing:.06em}
.fgl-app .fgl-answer-label{display:block;margin:0 0 8px;font-size:13px;font-weight:600;color:var(--fgl-muted)}
.fgl-app .fgl-inline-sentence input{width:calc(var(--fgl-answer-ch,4ch) + 24px);min-width:4ch;max-width:100%;font-size:inherit}
.fgl-app .fgl-inline-sentence{line-height:1.9}
.fgl-app .fgl-choice-instruction{font-size:13px;line-height:1.6;color:var(--fgl-muted);margin:16px 0 10px}
.fgl-app .fgl-choice{border-radius:12px;padding:16px;gap:14px;align-items:center;text-align:left}
.fgl-app .fgl-choice>span[lang]{min-width:0;overflow-wrap:anywhere}
.fgl-app .fgl-choice-key{flex-shrink:0;font-variant-numeric:tabular-nums}
.fgl-app .fgl-choice.is-selected{border-color:var(--fgl-blue);box-shadow:inset 0 0 0 1px var(--fgl-blue)}
.fgl-app .fgl-choice.is-selected .fgl-choice-key{color:var(--fgl-on-button)}
.fgl-app .fgl-built-sentence{border-style:dashed;border-color:var(--fgl-line);gap:8px;align-items:center}
.fgl-app .fgl-built-sentence:has(button){border-style:solid;border-color:var(--fgl-blue)}
.fgl-app .fgl-built-sentence>span{font-size:15px;color:var(--fgl-muted);line-height:1.6}
.fgl-app .fgl-lesson-compact{align-items:center;gap:8px 16px;flex-wrap:wrap;margin:8px 0}
.fgl-app .fgl-lesson-compact>.fgl-help{margin:0;max-width:32ch;text-align:left}
.fgl-app .fgl-submitted-answer{background:var(--fgl-input);border:0;border-radius:10px;padding:12px 16px;margin:16px 0}
.fgl-app .fgl-feedback .fgl-answer-key{border-top:1px solid var(--fgl-line);padding-top:16px;margin-top:16px}
.fgl-app .fgl-feedback .fgl-answer-key>strong{font-size:clamp(20px,2vw,26px);line-height:1.5;overflow-wrap:anywhere}
.fgl-app .fgl-feedback .fgl-actions{margin-top:20px}
.fgl-app .fgl-personal-routine{flex-wrap:wrap;line-height:1.6}
@media(min-width:1101px){
 .fgl-app .fgl-guided-home{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}
}
@media(min-width:900px){
 .fgl-app.fgl-practising .fgl-main:has(.fgl-compact-mission){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;padding-top:24px}
 .fgl-app.fgl-practising .fgl-main:has(.fgl-compact-mission)>*{grid-column:1/-1}
 .fgl-app.fgl-practising .fgl-main:has(.fgl-compact-mission)>.fgl-compact-mission{grid-column:1;min-width:0;margin:0;padding:12px 0 20px}
 .fgl-app.fgl-practising .fgl-main:has(.fgl-compact-mission)>.fgl-pace-menu{grid-column:2;align-self:center;margin:0 0 8px}
 .fgl-app.fgl-practising .fgl-main:has(.fgl-compact-mission)>.fgl-pace-menu[open]{grid-column:1/-1;grid-row:auto}
 .fgl-app.fgl-practising .fgl-main:has(.fgl-pace-menu[open])>.fgl-compact-mission{grid-column:1/-1}
}
@media(max-width:680px){
 .fgl-app.fgl-practising .fgl-exercise .fgl-question h1{font-size:21px;line-height:1.35;font-weight:700}
 .fgl-app.fgl-practising .fgl-exercise .fgl-question-instruction{font-size:16px;line-height:1.55;font-weight:400;color:var(--fgl-muted)}
 .fgl-app.fgl-practising .fgl-question-sentence p{font-size:26px;line-height:1.5}
 .fgl-app .fgl-choice{padding:14px 12px;font-size:17px;gap:12px}
 .fgl-app .fgl-choice-shortcuts{display:none}
 .fgl-app .fgl-input-note:has(.fgl-choice-shortcuts){display:none}
 .fgl-app .fgl-lesson-compact{gap:0;flex-direction:column;padding-block:8px}
 .fgl-app .fgl-lesson-compact>.fgl-help{text-align:center;max-width:36ch}
}
.fgl-app.fgl-large-type.fgl-practising .fgl-exercise .fgl-question-instruction{font-size:18px}

/* Personal settings: current identity first, detailed choices on demand. */
.fgl-app .fgl-settings-jumps{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;padding:12px 0;margin:20px 0 4px;border-block:1px solid var(--fgl-line)}
.fgl-app .fgl-settings-jumps>span{font-size:12px;color:var(--fgl-muted);margin-right:8px}
.fgl-app .fgl-settings-jumps>button{min-height:44px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--fgl-blue);font:600 14px/1.5 'DM Sans',sans-serif;text-align:left;cursor:pointer}
.fgl-app .fgl-settings-jumps>button:hover{background:var(--fgl-blue-soft)}
.fgl-app [id^=fgl-settings-]{scroll-margin-top:28px}
.fgl-app .fgl-country-options{border-block:1px solid var(--fgl-line);padding-block:4px}
.fgl-app .fgl-country-options>summary{font-weight:600}
.fgl-app .fgl-country-options[open]{padding-bottom:16px}
.fgl-app .fgl-settings-fields>details>summary{list-style-position:outside;margin-left:16px}
.fgl-app .fgl-settings-fields>details[open]>summary{margin-bottom:12px}
.fgl-app .fgl-settings-heading h2{font-size:18px;line-height:1.4;letter-spacing:-.02em}
@media(min-width:681px){
 .fgl-app .fgl-sidebar{overflow-y:auto;overscroll-behavior:contain}
 .fgl-app .fgl-sidebar .fgl-nav{flex-shrink:0}
}
@media(min-width:681px) and (max-height:780px){
 .fgl-app .fgl-sidebar-note{display:none}
 .fgl-app .fgl-sidebar-foot{margin-top:auto;flex-shrink:0}
}
@media(max-width:680px){
 .fgl-app .fgl-settings-jumps{gap:4px;margin-top:12px;padding-block:8px}
 .fgl-app .fgl-settings-jumps>span{flex-basis:100%;margin:0 8px}
 .fgl-app .fgl-settings-jumps>button{font-size:13px;padding-inline:8px}
}

.fgl-app .fgl-inline-sentence input{transition:none;margin-inline:4px;max-width:calc(100% - 8px)}
.fgl-app .fgl-address-context p{font-size:16px!important;line-height:1.6!important}
.fgl-app.fgl-large-type .fgl-address-context p{font-size:18px!important}
.fgl-app.fgl-large-type .fgl-address-context{font-size:18px}
.fgl-app .fgl-avatar-preview>div{min-width:0;flex:1}
.fgl-app .fgl-avatar-preview strong{overflow-wrap:anywhere}
@media(min-width:901px){.fgl-app #fgl-profile-form>.fgl-save{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(0,1.4fr);column-gap:40px;row-gap:12px}.fgl-app #fgl-profile-form>.fgl-save>*{grid-column:2;justify-self:start}}
@media(min-width:901px) and (max-width:1150px){.fgl-app #fgl-profile-form>.fgl-save{column-gap:24px}}
/* Reading preferences and prepared programme composition. */
.fgl-app .fgl-lesson-copy,.fgl-app .fgl-rule-steps p,.fgl-app .fgl-rule-detail p,.fgl-app .fgl-rule-detail li,.fgl-app .fgl-rule-recall p{font-size:16px;line-height:1.7}
.fgl-app .fgl-programme-explain p{font-size:16px;line-height:1.65;max-width:70ch}
.fgl-app.fgl-large-type .fgl-lead,.fgl-app.fgl-large-type .fgl-lesson-copy,.fgl-app.fgl-large-type .fgl-rule-summary,.fgl-app.fgl-large-type .fgl-rule-steps p,.fgl-app.fgl-large-type .fgl-rule-detail p,.fgl-app.fgl-large-type .fgl-rule-detail li,.fgl-app.fgl-large-type .fgl-rule-recall p,.fgl-app.fgl-large-type .fgl-programme-explain p{font-size:18px}
.fgl-app .fgl-onboarding-overview{font-size:14px;line-height:1.65;color:var(--fgl-muted);max-width:76ch;margin:12px 0 24px}
.fgl-onboarding-overview strong{color:var(--fgl-ink)}.fgl-onboarding-overview span{display:block}
.fgl-app .fgl-programme-sessions>li>div{min-width:0;flex:1}
@media(min-width:851px){.fgl-app .fgl-programme-sessions>li>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:start}.fgl-app .fgl-programme-sessions>li>div>.fgl-eyebrow,.fgl-app .fgl-programme-sessions>li>div>h3{grid-column:1}.fgl-app .fgl-programme-sessions>li>div>.fgl-programme-session-actions{grid-column:2;grid-row:1 / span 2;align-self:center;justify-self:end;display:grid;justify-items:end;gap:0}.fgl-app .fgl-programme-sessions>li>div>details{grid-column:1 / -1}}
@media(max-width:680px){.fgl-app .fgl-programme-week>summary{display:grid;grid-template-columns:36px minmax(0,1fr) 20px;column-gap:12px;row-gap:6px}.fgl-app .fgl-programme-week-number{grid-column:1;grid-row:1 / span 2}.fgl-app .fgl-programme-week>summary>span:nth-child(2){grid-column:2;grid-row:1}.fgl-app .fgl-programme-week>summary>b{display:block;grid-column:2;grid-row:2;font-size:12px;white-space:normal;font-weight:500}.fgl-app .fgl-programme-expand{grid-column:3;grid-row:1}}

.fgl-app .fgl-path-overview{margin-block:20px;padding-block:16px}.fgl-app #fgl-library-results-heading{scroll-margin-block-start:24px}
@media(min-width:901px){.fgl-app .fgl-path-row{padding-block:16px}}

.fgl-app .fgl-programme-next-context{display:grid;gap:4px;max-width:30ch}.fgl-programme-next-context small{font-size:12px;color:var(--fgl-muted)}.fgl-programme-next-context strong{font-size:14px;line-height:1.5;font-weight:600}.fgl-app .fgl-garden-next-label{flex-basis:100%;font-size:14px;line-height:1.5;color:var(--fgl-muted)}.fgl-garden-next-label strong{font-weight:500;color:var(--fgl-ink)}.fgl-app .fgl-emblem-next-subtitle{font-size:13px;line-height:1.5;color:var(--fgl-muted);margin:0 0 12px}.fgl-app.fgl-large-type .fgl-emblem-next-subtitle{font-size:15px}
@media(max-width:680px){.fgl-app .fgl-programme-next-context{flex-basis:100%;max-width:none}.fgl-app .fgl-programme-toolbar .fgl-actions{width:100%}}

.fgl-app .fgl-tile-hint{font-size:13px;line-height:1.55;color:var(--fgl-muted);margin:8px 0 12px}.fgl-app.fgl-large-type .fgl-tile-hint{font-size:15px}

@media(max-width:500px){.fgl-app .fgl-avatar-studio .is-swatches{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fgl-app .fgl-avatar-studio .is-swatches .fgl-studio-option-name{font-size:12px;line-height:1.3}.fgl-app.fgl-large-type .fgl-avatar-studio .is-swatches .fgl-studio-option-name{font-size:14px}}

.fgl-app .fgl-selection-note{font-size:12px;line-height:1.6;color:var(--fgl-muted);margin:8px 0;font-variant-numeric:tabular-nums}.fgl-app.fgl-large-type .fgl-selection-note{font-size:14px}

.fgl-app .fgl-answer-alternatives li{font-size:16px;line-height:1.6;overflow-wrap:anywhere;margin-block:8px}.fgl-app.fgl-large-type .fgl-answer-alternatives li{font-size:18px}.fgl-app .fgl-response-moment+.fgl-answer-key{margin-top:12px;padding-top:12px}
.fgl-app .fgl-session-stamps span{font-size:12px;line-height:1.5}
.fgl-app .fgl-celebration-next .fgl-button{font-size:14px}
.fgl-app .fgl-earned-moment small{font-size:12px;line-height:1.5;letter-spacing:.04em}
.fgl-app.fgl-large-type .fgl-session-stamps span,.fgl-app.fgl-large-type .fgl-earned-moment small{font-size:14px}
.fgl-app.fgl-large-type .fgl-celebration-next .fgl-button{font-size:16px}

/* Keep alternative programme actions distinct at every width. */
.fgl-app .fgl-programme-session-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}.fgl-app .fgl-programme-session-actions>.fgl-text-button{min-height:44px;max-width:100%;white-space:normal}

/* Preserve initials as a first-class avatar choice in the character editor. */
#fgl-app [data-identity-portrait] > .fgl-avatar { width:100%; height:100%; font-size:clamp(28px,4vw,44px); }

/* Give the next session and newly earned achievements their useful context. */
.fgl-app .fgl-celebration-next-context{display:grid;gap:4px;margin:0 0 12px;overflow-wrap:anywhere}
.fgl-app .fgl-celebration-next-context span{font-size:12px;line-height:1.5;color:var(--fgl-muted)}
.fgl-app .fgl-celebration-next-context strong{font-size:16px;line-height:1.5;font-weight:600;color:var(--fgl-ink)}
.fgl-app .fgl-earned-moment>div{min-width:0}
.fgl-app .fgl-earned-badges{display:grid;gap:12px;list-style:none;padding:0;margin:0;overflow-wrap:anywhere}
.fgl-app .fgl-earned-badges span{display:block;font-size:14px;line-height:1.5;color:var(--fgl-muted);margin-top:4px}
.fgl-app.fgl-large-type .fgl-celebration-next-context span{font-size:14px}
.fgl-app.fgl-large-type .fgl-celebration-next-context strong{font-size:18px}
.fgl-app.fgl-large-type .fgl-earned-badges span{font-size:16px}
.fgl-app .fgl-session-purpose{margin:0 0 8px;padding:0;max-width:68ch}
.fgl-app .fgl-session-purpose .fgl-eyebrow{font-size:11px;letter-spacing:.08em;color:var(--fgl-muted)}
.fgl-app .fgl-session-purpose p{font-size:16px;line-height:1.55;font-weight:500;color:var(--fgl-navy);margin:6px 0 0;text-wrap:pretty}
.fgl-app .fgl-session-takeaway{max-width:590px;margin:18px auto 20px;padding:20px 24px;text-align:left;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:14px}
.fgl-app .fgl-session-takeaway h2{font-size:18px;line-height:1.4;margin:8px 0 12px;letter-spacing:-.02em}
.fgl-app .fgl-session-takeaway blockquote{font-size:22px;font-weight:600;line-height:1.5;color:var(--fgl-navy);margin:0;padding:0;border:0;overflow-wrap:anywhere}
.fgl-app .fgl-session-takeaway p{font-size:13px;color:var(--fgl-muted);margin:12px 0 8px}
.fgl-app .fgl-session-takeaway small{display:block;font-size:12px;line-height:1.6;color:var(--fgl-muted)}
.fgl-app .fgl-start-route{display:grid;gap:20px;margin:20px 0}
.fgl-app .fgl-start-route>div+div{padding-top:20px;border-top:1px solid var(--fgl-line)}
.fgl-app .fgl-start-route h3{font-size:18px;line-height:1.4;margin:0 0 8px}
.fgl-app .fgl-start-route .fgl-button{margin-top:8px;min-height:44px;white-space:normal}
.fgl-app.fgl-large-type .fgl-session-purpose p,.fgl-app.fgl-large-type .fgl-start-route p,.fgl-app.fgl-large-type .fgl-feedback-explanation p{font-size:18px}
.fgl-app.fgl-large-type .fgl-session-takeaway small{font-size:14px}
@media(max-width:680px){.fgl-app .fgl-session-purpose{margin-bottom:4px}.fgl-app .fgl-session-takeaway{padding:18px 16px}.fgl-app .fgl-session-takeaway blockquote{font-size:20px}}
.fgl-app .fgl-foundation-check{margin:20px 0;padding:20px 24px;border:1px solid var(--fgl-line);border-radius:14px;background:var(--fgl-paper)}
.fgl-app .fgl-foundation-check h2{font-size:20px;line-height:1.4;margin:8px 0}
.fgl-app .fgl-foundation-check p{font-size:14px;line-height:1.65;color:var(--fgl-muted);max-width:68ch;margin:0 0 16px}
.fgl-app .fgl-foundation-check .fgl-button{min-height:44px;white-space:normal}
.fgl-app.fgl-large-type .fgl-foundation-check p{font-size:18px}

/* Transparent membership pricing in the signed-in access gate. */
.fgl-membership-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 12px}.fgl-membership-prices>div{background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:12px;padding:16px}.fgl-membership-prices span{display:block;font-size:12px;color:var(--fgl-muted);margin-bottom:8px}.fgl-membership-prices strong{font-size:28px;letter-spacing:-.04em}.fgl-membership-prices small{font-size:12px;font-weight:400;color:var(--fgl-muted);letter-spacing:0}@media(max-width:400px){.fgl-membership-prices strong{font-size:24px}.fgl-membership-prices>div{padding:12px}}

/* Keep library scope and account save state visible without changing the notebook hierarchy. */
.fgl-app .fgl-filters>label{display:grid;align-content:start;gap:8px}
.fgl-app .fgl-filter-label{font-size:13px;font-weight:600;line-height:1.4;color:var(--fgl-ink)}
.fgl-app .fgl-search-field{display:flex;position:relative;align-items:center;min-width:0}
.fgl-app .fgl-search-field input{padding-left:40px}
.fgl-app .fgl-library-filter-state{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin-top:12px;padding:4px 0;border-bottom:1px solid var(--fgl-line)}
.fgl-app .fgl-library-filter-state p{flex:1 1 180px;min-width:0;margin:0;font-size:13px;line-height:1.6;color:var(--fgl-muted);overflow-wrap:anywhere}
.fgl-app .fgl-library-filter-state button{min-height:44px;flex:0 0 auto}
.fgl-app .fgl-unsaved-preferences{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:16px;margin:16px 0;background:var(--fgl-blue-soft);border:1px solid var(--fgl-line);border-radius:8px}
.fgl-app .fgl-unsaved-preferences[hidden]{display:none}
.fgl-app .fgl-unsaved-preferences p{font-size:14px;line-height:1.6;margin:0;color:var(--fgl-ink)}
.fgl-app .fgl-unsaved-preferences button{min-height:44px}
.fgl-app.fgl-large-type .fgl-filter-label,.fgl-app.fgl-large-type .fgl-library-filter-state p{font-size:15px}
.fgl-app.fgl-large-type .fgl-unsaved-preferences p{font-size:16px}

/* Paid programme entry. Quiet chrome, one offer, visible grammar evidence. */
.fgl-app .fgl-button--purchase{background:var(--fgl-button);border-color:var(--fgl-button);color:var(--fgl-on-button)!important}
.fgl-app.fgl-enrolling .fgl-shell{display:block;max-width:none}
.fgl-app.fgl-enrolling .fgl-sidebar{display:none}
.fgl-app.fgl-enrolling .fgl-topbar{max-width:1200px;margin:auto;padding:0 40px;min-height:90px;border-bottom:0}
.fgl-app.fgl-enrolling .fgl-main{max-width:1200px;padding:0 40px 64px}
.fgl-app .fgl-enrol-wordmark{font-size:24px;font-weight:780;letter-spacing:-1.1px;color:var(--fgl-ink)}
.fgl-enrol-wordmark>span{color:var(--fgl-blue)}
.fgl-app .fgl-enrol-steps{list-style:none;display:flex;align-items:center;gap:24px;margin:0 0 38px;padding:18px 0;border-top:1px solid var(--fgl-line);border-bottom:1px solid var(--fgl-line)}
.fgl-enrol-steps li{display:flex;align-items:center;gap:9px;color:var(--fgl-muted);font-size:12px;line-height:1.4}
.fgl-enrol-steps li>span{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:var(--fgl-paper);border:1px solid var(--fgl-line);font-size:11px}
.fgl-enrol-steps li>strong{font-weight:500}
.fgl-enrol-steps li[aria-current]{color:var(--fgl-ink)}
.fgl-enrol-steps li[aria-current]>span{background:var(--fgl-button);border-color:var(--fgl-button);color:var(--fgl-on-button)}
.fgl-enrol-steps li[aria-current]>strong{font-weight:700}
.fgl-enrol-steps li.is-complete>span{color:var(--fgl-blue);background:var(--fgl-blue-soft);border-color:transparent}
.fgl-app .fgl-enrol-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.9fr);grid-template-areas:'intro offer' 'example offer' 'scope offer';gap:24px 64px;align-items:start}
.fgl-enrol-intro{grid-area:intro;padding-top:8px}
.fgl-app .fgl-enrol-intro .fgl-enrol-byline{color:var(--fgl-blue);font-size:13px;font-weight:600;margin:0 0 18px;line-height:1.5}
.fgl-app .fgl-enrol-intro h1{font-size:clamp(34px,3.7vw,48px);line-height:1.08;letter-spacing:-.05em;font-weight:750;max-width:20ch;text-wrap:initial;margin:0 0 20px}
.fgl-app .fgl-enrol-intro>p:last-child{font-size:16px;color:var(--fgl-muted);line-height:1.7;max-width:47ch;margin:0}
.fgl-enrol-offer{grid-area:offer;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:20px;padding:28px;box-shadow:0 12px 40px #1c244b07}
.fgl-enrol-offer-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.fgl-enrol-lab-mark{display:grid;place-items:center;width:44px;height:48px;flex:none;border-radius:12px 12px 12px 3px;background:var(--fgl-blue-soft);color:var(--fgl-blue);font-size:23px;font-weight:750;letter-spacing:-1.3px}
.fgl-app .fgl-enrol-offer h2{font-size:21px;line-height:1.25;letter-spacing:-.035em;margin:0 0 5px}
.fgl-app .fgl-enrol-offer-heading p{font-size:12px;line-height:1.6;color:var(--fgl-muted);margin:0}
.fgl-app .fgl-enrol-rates{display:block;margin:0 0 20px}
.fgl-app .fgl-enrol-rates>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:var(--fgl-canvas);border-radius:10px;padding:16px;margin:0 0 8px}
.fgl-app .fgl-enrol-rates>div:last-child{background:var(--fgl-blue-soft)}
.fgl-app .fgl-enrol-rates span{display:flex;align-items:center;gap:8px;color:var(--fgl-ink);font-size:13px;line-height:1.5;font-weight:650;margin:0 0 4px;flex-wrap:wrap}
.fgl-app .fgl-enrol-rates b{color:var(--fgl-blue);font-size:10px;font-weight:650;line-height:1.6;background:var(--fgl-paper);padding:1px 6px;border-radius:4px;white-space:nowrap}
.fgl-app .fgl-enrol-rates small{font-size:11px;line-height:1.5;color:var(--fgl-muted);font-weight:450;letter-spacing:0}
.fgl-app .fgl-enrol-rates strong{font-size:28px;line-height:1.2;font-weight:750;letter-spacing:-.045em;text-align:right;white-space:nowrap}
.fgl-app .fgl-enrol-rates strong small{display:block;text-align:right;font-size:11px;letter-spacing:0;margin-top:4px}
.fgl-enrol-includes{list-style:none;margin:20px 0 24px;padding:0;display:grid;gap:10px}
.fgl-enrol-includes li{position:relative;padding-left:23px;font-size:14px;line-height:1.55}
.fgl-enrol-includes li:before{content:'✓';position:absolute;left:0;top:0;font-weight:700;color:var(--fgl-blue)}
.fgl-app .fgl-enrol-offer .fgl-button--purchase{width:100%;min-height:54px;font-size:15px;font-weight:650;border-radius:10px;box-shadow:0 3px 0 #0c1430;transition:background-color 160ms ease,box-shadow 160ms ease}
.fgl-app .fgl-enrol-offer .fgl-button--purchase:hover{opacity:1;background:#2d3a70;box-shadow:0 3px 0 #0c1430}
.fgl-app .fgl-enrol-offer .fgl-button--purchase:active{transform:translateY(1px);box-shadow:0 2px 0 #0c1430}
.fgl-app .fgl-enrol-checkout-note{text-align:center;font-size:11px;line-height:1.7;color:var(--fgl-muted);margin:14px 0 18px}
.fgl-app .fgl-enrol-terms{font-size:11px;line-height:1.7;color:var(--fgl-muted);padding-top:16px;border-top:1px solid var(--fgl-line);margin:0}
.fgl-enrol-example{grid-area:example;padding:22px 24px 18px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:16px;position:relative;overflow:hidden}
.fgl-enrol-example:before{position:absolute;content:'';left:0;top:0;bottom:0;width:3px;background:var(--fgl-blue)}
.fgl-enrol-example-header{display:flex;justify-content:space-between;gap:12px;color:var(--fgl-muted);font-size:11px;line-height:1.5}
.fgl-enrol-example-header>span:first-child{color:var(--fgl-blue);font-weight:600}
.fgl-app .fgl-enrol-example-thought{font-size:12px;line-height:1.6;color:var(--fgl-muted);margin:22px 0 6px}
.fgl-app .fgl-enrol-sentence{font-size:clamp(22px,2.25vw,29px);font-weight:650;line-height:1.6;letter-spacing:-.035em;color:var(--fgl-ink);margin:0 0 20px}
.fgl-enrol-sentence mark{color:var(--fgl-blue);background:var(--fgl-blue-soft);border-bottom:2px solid var(--fgl-blue);padding:1px 3px;border-radius:4px 4px 0 0}
.fgl-enrol-explanation{display:flex;align-items:center;gap:14px;padding-top:16px;border-top:1px solid var(--fgl-line)}
.fgl-enrol-explanation>img{object-fit:contain;width:60px;height:72px;flex:none}
.fgl-enrol-explanation strong{font-size:13px;line-height:1.5}
.fgl-app .fgl-enrol-explanation p{font-size:13px;line-height:1.7;margin:6px 0 0;color:var(--fgl-muted)}
.fgl-app .fgl-enrol-example-footer{font-size:11px;color:var(--fgl-muted);margin:18px 0 0}
.fgl-enrol-scope{grid-area:scope;display:flex;flex-wrap:wrap;gap:10px 22px;color:var(--fgl-muted);font-size:11px;line-height:1.5;padding:0 2px}
.fgl-enrol-scope strong{color:var(--fgl-ink);font-weight:650}
.fgl-enrol-next{margin:46px 0 28px;padding-top:28px;border-top:1px solid var(--fgl-line)}
.fgl-app .fgl-enrol-next h2{font-size:20px;margin:0 0 22px;line-height:1.35}
.fgl-enrol-next>ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;list-style:none;margin:0;padding:0}
.fgl-enrol-next li{display:flex;align-items:flex-start;gap:12px}
.fgl-enrol-next li>span{display:grid;place-items:center;width:26px;height:26px;background:var(--fgl-blue-soft);color:var(--fgl-blue);border-radius:8px;flex:none;font-size:11px;font-weight:650}
.fgl-enrol-next strong{font-size:13px;line-height:1.5}
.fgl-app .fgl-enrol-next p{font-size:12px;line-height:1.65;color:var(--fgl-muted);margin:6px 0 0}
.fgl-enrol-recovery{border:1px solid var(--fgl-line);border-radius:12px;background:var(--fgl-paper)}
.fgl-enrol-recovery>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:15px 20px;font-size:13px;font-weight:550;cursor:pointer;list-style:none}
.fgl-enrol-recovery>summary::-webkit-details-marker{display:none}
.fgl-enrol-recovery>summary>span{font-size:17px;color:var(--fgl-muted)}
.fgl-enrol-recovery[open]>summary>span{transform:rotate(45deg)}
.fgl-enrol-recovery>div{padding:0 20px 20px;border-top:1px solid var(--fgl-line)}
.fgl-app .fgl-enrol-recovery p{font-size:13px;line-height:1.7;max-width:72ch;margin:16px 0 0;color:var(--fgl-muted)}
.fgl-enrol-recovery .fgl-actions{margin-top:16px}
.fgl-app .fgl-enrol-help{font-size:12px!important}
.fgl-enrol-billing-heading{margin-top:28px}
.fgl-enrol-billing-heading p{color:var(--fgl-muted);font-size:14px}
.fgl-enrol-reconnect{max-width:600px;margin:56px auto;padding:36px;background:var(--fgl-paper);border:1px solid var(--fgl-line);border-radius:18px}
.fgl-enrol-status-icon{display:grid;place-items:center;width:48px;height:48px;background:var(--fgl-blue-soft);border-radius:12px;color:var(--fgl-blue);font-size:26px;margin-bottom:24px}
.fgl-app .fgl-enrol-reconnect h1{font-size:34px}
.fgl-app .fgl-enrol-reconnect p{font-size:15px;line-height:1.7;color:var(--fgl-muted)}
.fgl-enrol-reconnect>a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;margin-top:20px}
.fgl-app.fgl-large-type :is(.fgl-enrol-intro>p:last-child,.fgl-enrol-includes li,.fgl-enrol-explanation p,.fgl-enrol-next p,.fgl-enrol-recovery p){font-size:18px}
.fgl-app.fgl-large-type :is(.fgl-enrol-checkout-note,.fgl-enrol-terms,.fgl-enrol-rates small){font-size:14px}
@media(min-width:761px) and (max-width:1050px){.fgl-app .fgl-enrol-layout{gap:24px 28px;grid-template-columns:minmax(0,1fr) minmax(310px,.9fr)}.fgl-enrol-offer{padding:22px}.fgl-app .fgl-enrol-intro h1{font-size:38px}}
@media(max-width:760px){
 .fgl-app.fgl-enrolling .fgl-topbar{padding:0 22px;min-height:76px}
 .fgl-app.fgl-enrolling .fgl-main{padding:0 22px 36px}
 .fgl-app .fgl-enrol-wordmark{font-size:22px}
 .fgl-app .fgl-enrol-steps{gap:15px;margin-bottom:26px;padding:15px 0;justify-content:space-between}
 .fgl-enrol-steps li{gap:6px;font-size:10px}.fgl-enrol-steps li>span{width:21px;height:21px;font-size:10px}
 .fgl-app .fgl-enrol-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:'intro' 'offer' 'example' 'scope';gap:26px;max-width:520px;margin:auto}
 .fgl-enrol-intro{padding-top:0}.fgl-app .fgl-enrol-intro .fgl-enrol-byline{font-size:12px;margin-bottom:14px}
 .fgl-app .fgl-enrol-intro h1{font-size:38px;line-height:1.09;max-width:none;margin-bottom:16px}
 .fgl-app .fgl-enrol-intro>p:last-child{font-size:15px;line-height:1.65;max-width:45ch}
 .fgl-enrol-offer{padding:24px;border-radius:16px}.fgl-enrol-offer-heading{margin-bottom:20px}
 .fgl-app .fgl-enrol-rates>div{padding:14px}.fgl-enrol-includes{margin-bottom:20px;gap:9px}
 .fgl-enrol-example{padding:20px}.fgl-app .fgl-enrol-sentence{font-size:25px}
 .fgl-enrol-scope{font-size:11px;gap:8px 16px}
 .fgl-enrol-next{max-width:520px;margin:30px auto 24px;padding-top:24px}.fgl-enrol-next>ol{grid-template-columns:minmax(0,1fr);gap:20px}
 .fgl-enrol-recovery{max-width:520px;margin:auto}.fgl-enrol-recovery>summary{padding:14px 16px;font-size:12px}.fgl-enrol-recovery>div{padding:0 16px 16px}
 .fgl-enrol-recovery .fgl-actions{display:grid;grid-template-columns:minmax(0,1fr)}.fgl-enrol-recovery .fgl-button{width:100%;white-space:normal}
 .fgl-enrol-reconnect{margin:24px auto;padding:24px}.fgl-app .fgl-enrol-reconnect h1{font-size:29px}
 .fgl-enrol-reconnect .fgl-actions{display:grid}.fgl-app.fgl-enrolling .fgl-topbar-label{max-width:none}
}
@media(max-width:450px){.fgl-enrolling .fgl-profile-link>span:not(.fgl-avatar-stack):not(.fgl-profile-chevron){display:none}.fgl-app .fgl-enrol-intro h1{font-size:35px}.fgl-enrol-steps li>strong{max-width:80px}.fgl-app .fgl-enrol-rates span{gap:5px}.fgl-enrol-example-header{font-size:10px;gap:8px}}
@media(max-width:359px){.fgl-app.fgl-enrolling .fgl-topbar{padding:0 16px}.fgl-app.fgl-enrolling .fgl-main{padding:0 16px 32px}.fgl-app .fgl-enrol-wordmark{font-size:20px}.fgl-app .fgl-enrol-steps{gap:8px}.fgl-enrol-steps li{font-size:9px;gap:4px}.fgl-app .fgl-enrol-intro h1{font-size:31px}.fgl-enrol-offer{padding:18px}.fgl-enrol-example{padding:18px 16px}.fgl-app .fgl-enrol-sentence{font-size:23px}.fgl-enrol-explanation{gap:10px}.fgl-enrol-explanation>img{width:48px;height:58px}.fgl-app .fgl-enrol-rates>div{padding:12px}.fgl-app .fgl-enrol-rates span{font-size:12px}.fgl-app .fgl-enrol-rates strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){.fgl-app .fgl-enrol-offer .fgl-button--purchase{transition:none}}
.fgl-app.fgl-reduce-motion .fgl-enrol-offer .fgl-button--purchase{transition:none}

/* Immersion layer, 26 October 2026: waveform listening, measured practice and sound.
   Durable source, bundled last by frontend/build.mjs. Uses the existing theme tokens.
   Chart palette validated (light on #fff, dark on #192235): rings red/blue/teal pass
   CVD and normal-vision floors on all pairs; the practice ramp is one hue, monotone. */
.fgl-app{--fgl-viz-rhythm:#e5484d;--fgl-viz-rhythm-soft:#fbe3e3;--fgl-viz-recall:#2563eb;--fgl-viz-recall-soft:#dde7fd;--fgl-viz-coverage:#0e9f8e;--fgl-viz-coverage-soft:#d6f1ed;--fgl-heat-0:#eef1f7;--fgl-heat-1:#8fb0f6;--fgl-heat-2:#5a8bef;--fgl-heat-3:#2563eb;--fgl-heat-4:#1a3fa3;--fgl-viz-grid:#e9edf5;--fgl-wave-rest:#c8d2e5;--fgl-wave-played:var(--fgl-blue)}
.fgl-app[data-theme=dark]{--fgl-viz-rhythm:#e65a5e;--fgl-viz-rhythm-soft:#3f2a37;--fgl-viz-recall:#5f8ff0;--fgl-viz-recall-soft:#233458;--fgl-viz-coverage:#12a08f;--fgl-viz-coverage-soft:#183a3f;--fgl-heat-0:#222d44;--fgl-heat-1:#3f63b8;--fgl-heat-2:#5b8def;--fgl-heat-3:#8fb0ff;--fgl-heat-4:#c9d9ff;--fgl-viz-grid:#2a3650;--fgl-wave-rest:#3b4a68;--fgl-wave-played:#96b6ff}
@media(prefers-color-scheme:dark){.fgl-app[data-theme=system]{--fgl-viz-rhythm:#e65a5e;--fgl-viz-rhythm-soft:#3f2a37;--fgl-viz-recall:#5f8ff0;--fgl-viz-recall-soft:#233458;--fgl-viz-coverage:#12a08f;--fgl-viz-coverage-soft:#183a3f;--fgl-heat-0:#222d44;--fgl-heat-1:#3f63b8;--fgl-heat-2:#5b8def;--fgl-heat-3:#8fb0ff;--fgl-heat-4:#c9d9ff;--fgl-viz-grid:#2a3650;--fgl-wave-rest:#3b4a68;--fgl-wave-played:#96b6ff}}

/* ---------- Waveform player ---------- */
.fgl-app .fgl-wave{display:flex;align-items:center;gap:12px;width:100%;max-width:100%;min-height:56px;margin:8px 0 4px;padding:6px 8px 6px 6px;border:1px solid var(--fgl-line);border-radius:999px;background:var(--fgl-paper);box-shadow:0 1px 2px rgba(28,36,75,.05);box-sizing:border-box}
.fgl-app .fgl-wave[hidden]{display:none}
.fgl-wave-play{position:relative;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;padding:0;background:var(--fgl-button);color:var(--fgl-on-button);display:grid;place-items:center;cursor:pointer;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.fgl-wave-play:hover{transform:scale(1.05);box-shadow:0 6px 16px rgba(28,36,75,.18)}
.fgl-wave-play:active{transform:scale(.96)}
.fgl-wave-play:focus-visible,.fgl-wave-track:focus-visible,.fgl-wave-speed:focus-visible{outline:2px solid var(--fgl-blue);outline-offset:3px}
.fgl-wave-play svg{position:relative;z-index:1}
.fgl-wave-play svg path,.fgl-wave-play svg rect{fill:currentColor}
.fgl-wave-play .fgl-wave-icon-replay{fill:none}
.fgl-wave-icon-pause,.fgl-wave-icon-replay{display:none}
.fgl-wave[data-state=playing] .fgl-wave-icon-play,.fgl-wave[data-state=loading] .fgl-wave-icon-play,.fgl-wave[data-state=ended] .fgl-wave-icon-play{display:none}
.fgl-wave[data-state=playing] .fgl-wave-icon-pause,.fgl-wave[data-state=loading] .fgl-wave-icon-pause{display:inline}
.fgl-wave[data-state=ended] .fgl-wave-icon-replay{display:inline}
.fgl-wave-ring{position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--fgl-blue);opacity:calc(var(--fgl-level,0)*1.1);transform:scale(calc(1 + var(--fgl-level,0)*.16));transition:opacity .09s linear,transform .09s linear;pointer-events:none}
.fgl-wave[data-state=loading] .fgl-wave-ring{opacity:1;transform:none;border-color:var(--fgl-blue) transparent transparent transparent;animation:fgl-wave-spin .8s linear infinite}
@keyframes fgl-wave-spin{to{transform:rotate(360deg)}}
.fgl-wave-track{position:relative;flex:1 1 auto;min-width:60px;height:40px;cursor:pointer;touch-action:none;border-radius:8px;-webkit-tap-highlight-color:transparent}
.fgl-wave-bars{position:absolute;inset:0 2px;display:flex;align-items:center;gap:2px}
.fgl-wave-bars i{flex:1 1 0;min-width:1.5px;max-width:6px;height:max(3px,calc(var(--h,.1)*100%));border-radius:2px;background:var(--fgl-wave-rest);transition:height .55s cubic-bezier(.2,.8,.2,1),background-color .18s}
.fgl-wave.is-revealing .fgl-wave-bars i{transition-delay:calc(var(--i,0)*9ms),0s}
.fgl-wave-bars i.is-played{background:var(--fgl-wave-played)}
.fgl-wave-track:hover .fgl-wave-bars i:not(.is-played){background:color-mix(in srgb,var(--fgl-wave-rest) 70%,var(--fgl-blue))}
.fgl-wave-head{position:absolute;top:3px;bottom:3px;left:calc(2px + var(--fgl-progress,0)*(100% - 4px));width:2px;margin-left:-1px;border-radius:2px;background:var(--fgl-ink);opacity:0;transition:opacity .2s;pointer-events:none}
.fgl-wave:not([data-state=idle]) .fgl-wave-head{opacity:.8}
.fgl-wave-time{flex:0 0 auto;min-width:70px;color:var(--fgl-muted);font:600 12px/1 'DM Sans',sans-serif;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.fgl-wave-speed{flex:0 0 auto;min-width:48px;height:32px;padding:0 10px;border:1px solid var(--fgl-line);border-radius:999px;background:transparent;color:var(--fgl-ink);font:650 12px/1 'DM Sans',sans-serif;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .18s,color .18s}
.fgl-wave-speed:hover{background:var(--fgl-blue-soft)}
.fgl-wave-speed.is-slow{border-color:transparent;background:var(--fgl-blue-soft);color:var(--fgl-blue)}
.fgl-full-conversation .fgl-wave,.fgl-mission-audio .fgl-wave{min-height:64px;border-color:transparent;box-shadow:0 2px 10px rgba(37,99,235,.10)}
.fgl-full-conversation .fgl-wave-play,.fgl-mission-audio .fgl-wave-play{flex-basis:50px;width:50px;height:50px}
.fgl-full-conversation .fgl-wave-track,.fgl-mission-audio .fgl-wave-track{height:46px}
.fgl-listening-turn .fgl-listening-portrait{transition:box-shadow .09s linear}
.fgl-listening-turn .fgl-listening-portrait{box-shadow:0 0 0 calc(var(--fgl-level,0)*7px) rgba(37,99,235,.2)}
@media(max-width:520px){.fgl-app .fgl-wave{gap:8px;padding:5px 6px 5px 5px}.fgl-wave-time{min-width:0;font-size:11px}.fgl-listening-turn .fgl-wave-speed{display:none}.fgl-wave-speed{min-width:44px;padding:0 8px}}
@media(max-width:360px){.fgl-listening-turn .fgl-wave-time{display:none}}

/* ---------- Charts: shared ---------- */
.fgl-insights{margin:8px 0 46px}
.fgl-insights-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}
.fgl-viz-card{position:relative;grid-column:span 6;min-width:0;padding:24px;border:1px solid var(--fgl-line);border-radius:18px;background:var(--fgl-paper);box-shadow:0 1px 2px rgba(28,36,75,.04)}
.fgl-viz-card--rings{grid-column:span 5}.fgl-viz-card--heat{grid-column:span 7}.fgl-viz-card--trend{grid-column:span 7}.fgl-viz-card--forecast{grid-column:span 5}
.fgl-viz-card>header{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:6px 16px;margin-bottom:16px}
.fgl-viz-card>header>span{flex-basis:100%}
.fgl-viz-eyebrow{display:block;color:var(--fgl-blue);font-size:11px;font-weight:750;letter-spacing:.09em}
.fgl-app .fgl-viz-card h3{margin:0;font-size:19px;line-height:1.25;letter-spacing:-.02em;color:var(--fgl-ink)}
.fgl-viz-note{margin:-6px 0 16px;color:var(--fgl-muted);font-size:13px;line-height:1.5}
.fgl-viz-note strong{color:var(--fgl-ink)}
.fgl-viz-empty{margin:12px 0 0;color:var(--fgl-muted);font-size:13px}
.fgl-viz-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;list-style:none;color:var(--fgl-muted);font-size:12px}
.fgl-viz-legend li{display:flex;align-items:center;gap:6px}
.fgl-viz-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.fgl-viz-legend i.is-bar{background:var(--fgl-heat-1)}
.fgl-viz-legend i.is-line{width:16px;height:2px;border-radius:2px;background:var(--fgl-ink)}
.fgl-viz-legend i.is-explored{background:var(--fgl-viz-recall)}
.fgl-viz-legend i.is-acquired{background:var(--fgl-good)}
.fgl-viz-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.fgl-viz-stats.is-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.fgl-viz-stats div{min-width:0}
.fgl-viz-stats dt{color:var(--fgl-muted);font-size:11px;font-weight:650;letter-spacing:.02em}
.fgl-viz-stats dd{margin:4px 0 0;color:var(--fgl-ink);font-size:24px;font-weight:700;line-height:1.1;letter-spacing:-.02em}
.fgl-viz-stats dd small{font-size:12px;font-weight:600;color:var(--fgl-muted);letter-spacing:0}
.fgl-viz-stats dd em{display:block;margin-top:4px;font-style:normal;font-size:11.5px;font-weight:600;letter-spacing:0;color:var(--fgl-muted)}
.fgl-viz-stats dd em.is-up{color:var(--fgl-good)}
.fgl-viz-table{margin-top:16px;border-top:1px solid var(--fgl-line);padding-top:10px}
.fgl-viz-table summary{display:inline-flex;align-items:center;min-height:36px;cursor:pointer;color:var(--fgl-blue);font-size:12.5px;font-weight:650}
.fgl-viz-table table{width:100%;border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums}
.fgl-viz-table th,.fgl-viz-table td{padding:6px 8px;border-bottom:1px solid var(--fgl-line);text-align:left}
.fgl-viz-table td{text-align:right}
.fgl-viz-table thead th{color:var(--fgl-muted);font-weight:650}
.fgl-viz-table tbody{display:block;max-height:240px;overflow:auto}
.fgl-viz-table thead,.fgl-viz-table tbody tr{display:table;width:100%;table-layout:fixed}
.fgl-viz-tip{position:fixed;left:0;top:0;z-index:80;display:grid;gap:2px;max-width:260px;padding:9px 12px;border-radius:10px;background:var(--fgl-ink);color:var(--fgl-canvas);box-shadow:0 10px 28px rgba(12,18,40,.24);pointer-events:none;opacity:0;transition:opacity .12s}
.fgl-viz-tip.is-on{opacity:1}
.fgl-viz-tip strong{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.fgl-viz-tip span{font-size:11.5px;opacity:.78}
[data-viz-motion=on] .fgl-viz-card{animation:fgl-viz-rise .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--card,0ms) - var(--viz-elapsed,0ms))}
.fgl-viz-card:nth-child(2){--card:60ms}.fgl-viz-card:nth-child(3){--card:120ms}.fgl-viz-card:nth-child(4){--card:180ms}.fgl-viz-card:nth-child(5){--card:240ms}.fgl-viz-card:nth-child(6){--card:300ms}
@keyframes fgl-viz-rise{from{opacity:0;transform:translateY(10px)}}

/* ---------- Rings ---------- */
.fgl-rings{display:block;flex:none;overflow:visible}
.fgl-ring-track{fill:none;stroke:var(--ring-soft)}
.fgl-ring-arc{fill:none;stroke:var(--ring);stroke-linecap:round}
.fgl-ring.is-rhythm{--ring:var(--fgl-viz-rhythm);--ring-soft:var(--fgl-viz-rhythm-soft)}
.fgl-ring.is-recall{--ring:var(--fgl-viz-recall);--ring-soft:var(--fgl-viz-recall-soft)}
.fgl-ring.is-coverage{--ring:var(--fgl-viz-coverage);--ring-soft:var(--fgl-viz-coverage-soft)}
.fgl-ring.is-hover .fgl-ring-arc{filter:brightness(1.08)}
[data-viz-motion=on] .fgl-ring-arc{animation:fgl-ring-fill 1.2s cubic-bezier(.22,.8,.2,1) both;animation-delay:calc(var(--d,0ms) - var(--viz-elapsed,0ms))}
@keyframes fgl-ring-fill{from{stroke-dashoffset:var(--len)}}
.fgl-viz-rings-body{display:flex;align-items:center;gap:24px}
.fgl-ring-legend{display:grid;gap:14px;margin:0;padding:0;list-style:none;min-width:0}
.fgl-ring-legend li{display:grid;grid-template-columns:12px minmax(0,1fr);column-gap:10px;align-items:baseline}
.fgl-ring-legend i{width:10px;height:10px;border-radius:50%;background:var(--ring);transform:translateY(1px)}
.fgl-ring-legend li.is-rhythm{--ring:var(--fgl-viz-rhythm)}.fgl-ring-legend li.is-recall{--ring:var(--fgl-viz-recall)}.fgl-ring-legend li.is-coverage{--ring:var(--fgl-viz-coverage)}
.fgl-ring-legend span{color:var(--fgl-muted);font-size:12px;font-weight:650}
.fgl-ring-legend strong{grid-column:2;color:var(--fgl-ink);font-size:17px;font-weight:700;letter-spacing:-.01em}
.fgl-ring-legend small{grid-column:2;margin-top:2px;color:var(--fgl-muted);font-size:11.5px;line-height:1.45}
.fgl-ring-legend.is-compact{gap:9px}
.fgl-ring-legend.is-compact strong{font-size:13.5px}
.fgl-ring-legend.is-compact span{font-size:11px}

/* ---------- Today pulse ---------- */
.fgl-pulse-card{margin-bottom:18px;padding:20px;border:1px solid var(--fgl-line);border-radius:18px;background:var(--fgl-paper);box-shadow:0 1px 2px rgba(28,36,75,.04)}
.fgl-app .fgl-pulse-head h2{margin:6px 0 14px;font-size:19px;letter-spacing:-.02em}
.fgl-pulse-body{display:flex;align-items:center;gap:16px}
.fgl-pulse-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;margin-top:16px;padding:10px 12px;border:0;border-radius:12px;background:var(--fgl-blue-soft);color:var(--fgl-ink);font:600 13px/1.3 'DM Sans',sans-serif;text-align:left;cursor:pointer;transition:background-color .18s,transform .16s}
.fgl-pulse-foot b{color:var(--fgl-blue);font-size:15px}
.fgl-pulse-foot:hover{transform:translateY(-1px)}
.fgl-pulse-foot>span:last-child{color:var(--fgl-blue);font-weight:700}
.fgl-personal-day-meter{display:block;position:relative;height:26px;margin:5px auto 3px;width:8px;border-radius:4px;background:var(--fgl-heat-0)}
.fgl-personal-day-meter>span{position:absolute;left:0;right:0;bottom:0;height:calc(var(--v,0)*100%);min-height:0;border-radius:4px;background:var(--fgl-blue)}
.fgl-personal-days .is-today .fgl-personal-day-meter>span{background:var(--fgl-viz-rhythm)}
.fgl-app[data-fgl-continuity=enter] .fgl-personal-day-meter>span{animation:fgl-grow .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--d,0ms);transform-origin:bottom}
@keyframes fgl-grow{from{transform:scaleY(0)}}

/* ---------- Heatmap ---------- */
.fgl-heat{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;row-gap:6px;max-width:560px}
.fgl-heat-months{grid-column:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:4px;color:var(--fgl-muted);font-size:11px;font-weight:600;white-space:nowrap}
.fgl-heat-days{grid-column:1;display:grid;grid-template-rows:repeat(7,minmax(0,1fr));row-gap:4px;color:var(--fgl-muted);font-size:10.5px;font-weight:600;align-items:center}
.fgl-heat-grid{grid-column:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(7,auto);grid-auto-flow:column;gap:4px}
.fgl-heat-cell{display:block;aspect-ratio:1;border-radius:4px;background:var(--fgl-heat-0);transition:transform .12s,box-shadow .12s}
.fgl-heat-cell.is-l1{background:var(--fgl-heat-1)}.fgl-heat-cell.is-l2{background:var(--fgl-heat-2)}.fgl-heat-cell.is-l3{background:var(--fgl-heat-3)}.fgl-heat-cell.is-l4{background:var(--fgl-heat-4)}
.fgl-heat-cell.is-future{visibility:hidden}
.fgl-heat-cell.is-hover{transform:scale(1.18);box-shadow:0 0 0 2px var(--fgl-paper),0 0 0 3.5px var(--fgl-ink)}
[data-viz-motion=on] .fgl-heat-cell:not(.is-future){animation:fgl-pop .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d,0ms) - var(--viz-elapsed,0ms))}
@keyframes fgl-pop{from{opacity:0;transform:scale(.4)}}
.fgl-heat-legend{display:flex;align-items:center;justify-content:flex-end;gap:4px;max-width:560px;margin-top:12px;color:var(--fgl-muted);font-size:11px}
.fgl-heat-legend i{width:12px;height:12px;border-radius:3px;background:var(--fgl-heat-0)}
.fgl-heat-legend i.is-l1{background:var(--fgl-heat-1)}.fgl-heat-legend i.is-l2{background:var(--fgl-heat-2)}.fgl-heat-legend i.is-l3{background:var(--fgl-heat-3)}.fgl-heat-legend i.is-l4{background:var(--fgl-heat-4)}
.fgl-heat-legend span:first-child{margin-right:4px}.fgl-heat-legend span:last-child{margin-left:4px}

/* ---------- Trend ---------- */
.fgl-trend-plot{position:relative;height:170px;margin:4px 0 0 34px}
.fgl-trend-grid span{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--fgl-viz-grid)}
.fgl-trend-grid b{position:absolute;right:calc(100% + 8px);top:-8px;color:var(--fgl-muted);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.fgl-trend-cols{position:absolute;inset:0;display:flex;margin:0;padding:0;list-style:none}
.fgl-trend-cols li{position:relative;flex:1 1 0;min-width:0;height:100%;cursor:default}
.fgl-trend-cols li::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--fgl-ink);opacity:0;transition:opacity .1s}
.fgl-trend-cols li.is-hover::before{opacity:.25}
.fgl-trend-cols i{position:absolute;left:50%;bottom:0;width:min(14px,60%);height:calc(var(--v,0)*100%);transform:translateX(-50%);border-radius:3px 3px 0 0;background:var(--fgl-heat-1);transition:background-color .12s}
.fgl-trend-cols li.is-hover i{background:var(--fgl-heat-3)}
.fgl-trend-cols li:last-child i{background:var(--fgl-heat-3)}
[data-viz-motion=on] .fgl-trend-cols i{animation:fgl-grow-x .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d,0ms) - var(--viz-elapsed,0ms));transform-origin:bottom}
@keyframes fgl-grow-x{from{transform:translateX(-50%) scaleY(0)}}
.fgl-trend-avg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.fgl-trend-avg path{fill:none;stroke:var(--fgl-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
[data-viz-motion=on] .fgl-trend-avg{animation:fgl-wipe 1.1s cubic-bezier(.4,0,.2,1) both;animation-delay:calc(450ms - var(--viz-elapsed,0ms))}
@keyframes fgl-wipe{from{clip-path:inset(-10% 100% -10% 0)}to{clip-path:inset(-10% 0 -10% 0)}}
.fgl-trend-end{position:absolute;width:10px;height:10px;margin:0 0 -5px -5px;border-radius:50%;background:var(--fgl-ink);box-shadow:0 0 0 2px var(--fgl-paper);pointer-events:none}
.fgl-trend-x{display:flex;justify-content:space-between;margin:8px 0 0 34px;color:var(--fgl-muted);font-size:11px;font-weight:600}
.fgl-trend-x span:last-child{color:var(--fgl-ink)}

/* ---------- Forecast columns ---------- */
.fgl-columns{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;height:178px;margin:0;padding:0;list-style:none;align-items:end}
.fgl-columns li{display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:6px;height:100%;min-width:0;border-radius:10px;padding:4px 0;transition:background-color .12s}
.fgl-columns li.is-hover{background:var(--fgl-blue-soft)}
.fgl-columns strong{color:var(--fgl-ink);font-size:13px;font-variant-numeric:tabular-nums}
.fgl-columns li.is-zero strong{color:var(--fgl-muted);font-weight:500}
.fgl-column-track{position:relative;width:min(22px,70%);height:100%}
.fgl-column-bar{position:absolute;left:0;right:0;bottom:0;height:max(3px,calc(var(--v,0)*100%));border-radius:4px 4px 0 0;background:var(--fgl-heat-2)}
.fgl-columns li.is-zero .fgl-column-bar{height:3px;background:var(--fgl-heat-0);border-radius:2px}
.fgl-columns li.is-accent .fgl-column-bar{background:var(--fgl-blue)}
.fgl-columns small{color:var(--fgl-muted);font-size:11px;font-weight:650}
.fgl-columns li.is-accent small{color:var(--fgl-blue)}
[data-viz-motion=on] .fgl-column-bar{animation:fgl-grow .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d,0ms) + 200ms - var(--viz-elapsed,0ms));transform-origin:bottom}

/* ---------- Radar ---------- */
.fgl-radar{display:block;width:100%;max-width:380px;height:auto;margin:0 auto;overflow:visible}
.fgl-radar .fgl-viz-grid{fill:none;stroke:var(--fgl-viz-grid);stroke-width:1}
.fgl-radar-area{stroke-width:2;stroke-linejoin:round}
.fgl-radar-area.is-explored{fill:color-mix(in srgb,var(--fgl-viz-recall) 12%,transparent);stroke:var(--fgl-viz-recall)}
.fgl-radar-area.is-acquired{fill:color-mix(in srgb,var(--fgl-good) 18%,transparent);stroke:var(--fgl-good)}
.fgl-radar-dot{stroke:var(--fgl-paper);stroke-width:2}
.fgl-radar-dot.is-explored{fill:var(--fgl-viz-recall)}.fgl-radar-dot.is-acquired{fill:var(--fgl-good)}
.fgl-viz-label{fill:var(--fgl-muted);font:650 12px 'DM Sans',sans-serif}
.fgl-radar-axis{cursor:default;outline:none}
.fgl-radar-axis.is-hover .fgl-viz-label,.fgl-radar-axis:focus-visible .fgl-viz-label{fill:var(--fgl-ink);text-decoration:underline}
[data-viz-motion=on] .fgl-radar-shape{animation:fgl-radar-in .9s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(200ms - var(--viz-elapsed,0ms));transform-origin:50% 51.3%;transform-box:view-box}
@keyframes fgl-radar-in{from{opacity:0;transform:scale(.2) rotate(-12deg)}}

/* ---------- Pipeline ---------- */
.fgl-pipeline-bar{display:flex;gap:2px;height:22px;border-radius:6px;overflow:hidden;background:var(--fgl-paper)}
.fgl-pipeline-seg{min-width:4px;background:var(--seg);transition:filter .12s}
.fgl-pipeline-seg.is-hover{filter:brightness(1.12) saturate(1.1)}
.fgl-pipeline-seg:first-child{border-radius:6px 0 0 6px}.fgl-pipeline-seg:last-child{border-radius:0 6px 6px 0}.fgl-pipeline-seg:only-child{border-radius:6px}
[data-viz-motion=on] .fgl-pipeline-seg{animation:fgl-seg .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--d,0ms) + 150ms - var(--viz-elapsed,0ms));transform-origin:left}
@keyframes fgl-seg{from{transform:scaleX(0);opacity:.2}}
.fgl-pipeline .is-new{--seg:var(--fgl-heat-0)}.fgl-pipeline .is-discovered{--seg:var(--fgl-heat-1)}.fgl-pipeline .is-supported{--seg:var(--fgl-heat-2)}.fgl-pipeline .is-recall{--seg:var(--fgl-heat-3)}.fgl-pipeline .is-consolidating{--seg:var(--fgl-heat-4)}.fgl-pipeline .is-acquired{--seg:var(--fgl-good)}.fgl-pipeline .is-refresh{--seg:var(--fgl-warn)}
.fgl-pipeline-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:18px 0 0;padding:0;list-style:none}
.fgl-pipeline-legend li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:30px;color:var(--fgl-ink);font-size:13px}
.fgl-pipeline-legend li.is-empty{color:var(--fgl-muted)}
.fgl-pipeline-legend i{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--seg);color:#fff;font:700 10px/1 'DM Sans',sans-serif;font-style:normal}
.fgl-pipeline-legend i.is-new,.fgl-pipeline-legend i.is-discovered{color:var(--fgl-ink)}
.fgl-pipeline-legend strong{font-variant-numeric:tabular-nums}

/* ---------- Quiz: sound toggle, run chip, completion ---------- */
.fgl-sound-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 10px;border:1px solid var(--fgl-line);border-radius:999px;background:var(--fgl-paper);color:var(--fgl-ink);font:650 12px/1 'DM Sans',sans-serif;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.fgl-sound-toggle:hover{background:var(--fgl-blue-soft)}
.fgl-sound-toggle.is-off{color:var(--fgl-muted)}
.fgl-sound-toggle:focus-visible{outline:2px solid var(--fgl-blue);outline-offset:2px}
.fgl-practice-top>span{margin-left:auto}
.fgl-practice-top .fgl-sound-toggle{order:3;flex:none}
.fgl-menu-sound small{display:block;color:var(--fgl-muted);font-weight:500;font-size:12px}
.fgl-run-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:5px 11px 5px 9px;border-radius:999px;background:var(--fgl-blue-soft);color:var(--fgl-blue);font:700 12px/1.2 'DM Sans',sans-serif;letter-spacing:.01em;animation:fgl-chip .5s cubic-bezier(.2,1.2,.3,1) both}
.fgl-run-chip.is-hot{background:var(--fgl-button);color:var(--fgl-on-button)}
.fgl-run-chip>span{display:inline-block;animation:fgl-chip-spark 1s ease-out both}
@keyframes fgl-chip{from{opacity:0;transform:translateY(4px) scale(.9)}}
@keyframes fgl-chip-spark{0%{transform:scale(.4) rotate(-40deg)}60%{transform:scale(1.25) rotate(10deg)}100%{transform:none}}
.fgl-app[data-fgl-continuity=steady] .fgl-run-chip,.fgl-app[data-fgl-continuity=steady] .fgl-run-chip>span{animation:none}
.fgl-session-stamp-ring{position:relative;display:grid;justify-items:center}
.fgl-session-ring{display:block;width:62px;height:62px;margin:-6px auto 2px}
.fgl-session-ring .fgl-ring-track{stroke:var(--fgl-viz-recall-soft)}
.fgl-session-ring .fgl-ring-arc{stroke:var(--fgl-viz-recall)}
.fgl-session-stamps .fgl-session-stamp-ring>strong{position:absolute;top:13px;left:0;right:0;font-size:19px;line-height:1}
.fgl-session-stamps .fgl-session-stamp-ring>strong small{font-size:11px;color:var(--fgl-muted);font-weight:600}
.fgl-session-stamps .fgl-session-stamp-ring>span{margin-top:2px}
.fgl-session-timeline{display:grid;justify-items:center;gap:8px;max-width:590px;margin:-6px auto 22px}
.fgl-session-timeline>span{color:var(--fgl-muted);font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}
.fgl-session-timeline ol{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none}
.fgl-session-timeline li{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font:700 13px/1 'DM Sans',sans-serif;animation:fgl-pop .45s cubic-bezier(.2,1.1,.3,1) both;animation-delay:var(--d,0ms)}
.fgl-session-timeline li.is-correct{background:var(--fgl-good-soft);color:var(--fgl-good)}
.fgl-session-timeline li.is-supported{background:var(--fgl-blue-soft);color:var(--fgl-blue)}
.fgl-session-timeline li.is-learning{background:var(--fgl-warn-soft);color:var(--fgl-warn)}
.fgl-session-timeline li.is-hover{box-shadow:0 0 0 2px var(--fgl-paper),0 0 0 3.5px currentColor}

/* ---------- Layout ---------- */
@media(max-width:1180px){.fgl-viz-card--rings,.fgl-viz-card--heat,.fgl-viz-card--trend,.fgl-viz-card--forecast,.fgl-viz-card{grid-column:span 12}.fgl-viz-card--radar,.fgl-viz-card--pipeline{grid-column:span 6}}
@media(max-width:900px){.fgl-viz-card--radar,.fgl-viz-card--pipeline{grid-column:span 12}}
@media(max-width:600px){.fgl-insights-grid{gap:14px}.fgl-viz-card{padding:18px 16px;border-radius:16px}.fgl-viz-rings-body{flex-direction:column;align-items:flex-start;gap:18px}.fgl-viz-rings-body .fgl-rings{align-self:center}.fgl-viz-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}.fgl-viz-stats dd{font-size:21px}.fgl-pipeline-legend{grid-template-columns:1fr}.fgl-trend-plot{height:150px}.fgl-columns{height:160px;gap:3px}.fgl-pulse-body{gap:14px}}
@media(max-width:360px){.fgl-pulse-body{flex-direction:column;align-items:flex-start}.fgl-pulse-body .fgl-rings{align-self:center}}
@media(prefers-reduced-motion:reduce){.fgl-wave-bars i,.fgl-wave-ring,.fgl-wave-play{transition:none}.fgl-run-chip,.fgl-run-chip>span,.fgl-session-timeline li{animation:none}}
.fgl-app.fgl-reduce-motion .fgl-wave-bars i,.fgl-app.fgl-reduce-motion .fgl-wave-ring{transition:none}
@media(forced-colors:active){.fgl-heat-cell,.fgl-wave-bars i,.fgl-column-bar,.fgl-pipeline-seg{forced-color-adjust:none}}

/* ---------- Card composition, refined 26 Oct ---------- */
.fgl-viz-card--rings{display:flex;flex-direction:column}
.fgl-viz-card--rings .fgl-viz-rings-body{flex:1;justify-content:center}
.fgl-heat-layout{display:grid;grid-template-columns:minmax(0,384px) minmax(150px,1fr);gap:28px;align-items:start}
.fgl-heat-wrap{min-width:0}
.fgl-heat-wrap .fgl-heat,.fgl-heat-wrap .fgl-heat-legend{max-width:none}
.fgl-viz-stats.is-column{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px;margin:22px 0 0}
.fgl-viz-action{display:grid;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid var(--fgl-line)}
.fgl-viz-action>span{color:var(--fgl-muted);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}
.fgl-viz-action ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.fgl-viz-point{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:9px 12px;border:1px solid var(--fgl-line);border-radius:12px;background:var(--fgl-paper);color:var(--fgl-ink);font:600 13.5px/1.35 'DM Sans',sans-serif;text-align:left;cursor:pointer;transition:border-color .16s,background-color .16s,transform .16s}
.fgl-viz-point:hover{border-color:var(--fgl-blue);background:var(--fgl-blue-soft);transform:translateY(-1px)}
.fgl-viz-point>span:last-child{color:var(--fgl-blue);font-weight:700}
.fgl-viz-point strong{display:block;font-weight:650}
.fgl-viz-point small{display:block;margin-top:2px;color:var(--fgl-muted);font-size:11.5px;font-weight:500}
.fgl-viz-action>.fgl-button{justify-self:start;margin-top:6px}
@media(max-width:760px){.fgl-heat-layout{grid-template-columns:1fr;gap:18px}.fgl-viz-stats.is-column{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}}
@media(max-width:600px){.fgl-viz-stats.is-column{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fgl-viz-card--trend{display:flex;flex-direction:column}
.fgl-viz-card--trend>.fgl-trend{flex:1;display:flex;flex-direction:column}
.fgl-viz-card--trend .fgl-trend-plot{flex:1;min-height:170px}
.fgl-viz-card--radar{display:flex;flex-direction:column}
.fgl-viz-card--radar>.fgl-radar{flex:1;max-width:440px;align-self:center}
@media(max-width:600px){.fgl-viz-card--trend .fgl-trend-plot{min-height:150px}}
.fgl-viz-card--trend .fgl-trend-plot{max-height:250px}
.fgl-viz-card--trend>.fgl-trend{justify-content:center}
.fgl-viz-action ul.is-pills{display:flex;flex-wrap:wrap;gap:6px}
.fgl-viz-pill{min-height:36px;padding:7px 12px;border:1px solid var(--fgl-line);border-radius:999px;background:var(--fgl-paper);color:var(--fgl-ink);font:600 12.5px/1.25 'DM Sans',sans-serif;text-align:left;cursor:pointer;transition:border-color .16s,background-color .16s}
.fgl-viz-pill:hover{border-color:var(--fgl-blue);background:var(--fgl-blue-soft)}
@media(pointer:coarse){.fgl-viz-pill{min-height:44px}}
.fgl-app[data-theme=dark] .fgl-pipeline-legend i{color:#142345}
.fgl-app[data-theme=dark] .fgl-pipeline-legend i.is-new{color:var(--fgl-ink)}
.fgl-app[data-theme=dark] .fgl-pipeline-legend i.is-discovered,.fgl-app[data-theme=dark] .fgl-pipeline-legend i.is-supported{color:#fff}
@media(prefers-color-scheme:dark){.fgl-app[data-theme=system] .fgl-pipeline-legend i{color:#142345}.fgl-app[data-theme=system] .fgl-pipeline-legend i.is-new{color:var(--fgl-ink)}.fgl-app[data-theme=system] .fgl-pipeline-legend i.is-discovered,.fgl-app[data-theme=system] .fgl-pipeline-legend i.is-supported{color:#fff}}
.fgl-session-stamps .fgl-session-ring-wrap{position:relative;display:grid;place-items:center;width:62px;height:62px;margin:-8px auto 0}
.fgl-session-ring-wrap .fgl-session-ring{grid-area:1/1;margin:0}
.fgl-session-stamps .fgl-session-ring-wrap>strong{position:static;grid-area:1/1;font-size:19px;line-height:1;letter-spacing:-.02em}
.fgl-session-stamps .fgl-session-stamp-ring>span:last-child{margin-top:4px}
/* Bars are counted from the real track width (one every 5px). */
.fgl-wave-bars{justify-content:space-between}
.fgl-wave-bars i{flex:0 0 3px;width:3px;min-width:0;max-width:none}
.fgl-listening-turn .fgl-wave[data-state=idle] .fgl-wave-speed{display:none}
.fgl-wave[data-state=idle]:not(.has-duration) .fgl-wave-time{visibility:hidden}
@media(max-width:520px){.fgl-full-conversation .fgl-wave-time,.fgl-mission-audio .fgl-wave-time{font-size:11px}}
@media(max-width:400px){.fgl-full-conversation .fgl-wave-play,.fgl-mission-audio .fgl-wave-play{flex-basis:44px;width:44px;height:44px}}
@media(max-width:520px){
 .fgl-app .fgl-full-conversation .fgl-wave,.fgl-app .fgl-mission-audio .fgl-wave{display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;row-gap:0;align-items:center;border-radius:24px;padding:8px 12px 6px 8px}
 .fgl-full-conversation .fgl-wave-play,.fgl-mission-audio .fgl-wave-play{grid-row:1/3;flex-basis:auto;width:50px;height:50px}
 .fgl-full-conversation .fgl-wave-track,.fgl-mission-audio .fgl-wave-track{grid-column:2;grid-row:1;height:40px}
 .fgl-full-conversation .fgl-wave-time,.fgl-mission-audio .fgl-wave-time{grid-column:2;grid-row:2;justify-self:start;min-width:0;padding-left:2px}
 .fgl-full-conversation .fgl-wave-speed,.fgl-mission-audio .fgl-wave-speed{grid-column:2;grid-row:2;justify-self:end;height:30px}
}
@media(max-width:600px){
 .fgl-session-stamps .fgl-session-ring-wrap{width:46px;height:46px;margin:-4px auto -2px}
 .fgl-session-ring{width:46px;height:46px}
 .fgl-session-stamps .fgl-session-ring-wrap>strong{font-size:15px}
 .fgl-session-stamps .fgl-session-ring-wrap>strong small{font-size:9px}
 .fgl-session-timeline{margin:-10px auto 12px;gap:0}
 .fgl-session-timeline>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .fgl-session-timeline li{width:24px;height:24px;font-size:11px}
}
.fgl-celebration-next+.fgl-session-timeline{margin:18px auto 6px}
@media(max-width:600px){.fgl-celebration-next+.fgl-session-timeline{margin:14px auto 4px}.fgl-celebration-next+.fgl-session-timeline>span{position:static;width:auto;height:auto;overflow:visible;clip:auto;margin-bottom:6px}}

/* Optional help and progressive disclosure. Never gate Next on a coach request. */
.fgl-app .fgl-item-help{margin-top:16px;padding-top:16px;border-top:1px solid var(--fgl-line);min-width:0}
.fgl-app .fgl-item-help>.fgl-button{min-height:44px;max-width:100%;white-space:normal;text-align:left}
.fgl-app .fgl-help-pending,.fgl-app .fgl-help-error{max-width:58ch;margin:10px 0 0;color:var(--fgl-muted);font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.fgl-app .fgl-help-pending:focus{outline:2px solid var(--fgl-blue);outline-offset:4px;border-radius:4px}
.fgl-app .fgl-item-help .fgl-coach{margin-top:16px}
.fgl-app .fgl-progress-disclosure{margin:24px 0;border:1px solid var(--fgl-line);border-radius:16px;background:var(--fgl-paper);min-width:0}
.fgl-app .fgl-progress-disclosure>summary{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:68px;padding:16px 52px 16px 20px;box-sizing:border-box;list-style:none;color:var(--fgl-ink);font-weight:700;line-height:1.45;cursor:pointer}
.fgl-app .fgl-progress-disclosure>summary::-webkit-details-marker{display:none}
.fgl-app .fgl-progress-disclosure>summary:after{content:'+';position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:400;color:var(--fgl-blue)}
.fgl-app .fgl-progress-disclosure[open]>summary:after{content:'−'}
.fgl-app .fgl-progress-disclosure>summary>span{display:block;color:var(--fgl-muted);font-size:13px;font-weight:400;line-height:1.5;margin-top:3px}
.fgl-app .fgl-progress-disclosure>summary:focus-visible{outline:2px solid var(--fgl-blue);outline-offset:3px;border-radius:14px}
.fgl-app .fgl-progress-disclosure>.fgl-insights-grid,.fgl-app .fgl-progress-disclosure>.fgl-garden-atlas,.fgl-app .fgl-progress-disclosure-body{padding:0 20px 20px;margin-top:8px;min-width:0}
@media(max-width:680px){.fgl-app .fgl-progress-disclosure>summary{padding-left:16px;padding-right:44px}.fgl-app .fgl-progress-disclosure>summary:after{right:16px}.fgl-app .fgl-progress-disclosure>.fgl-insights-grid,.fgl-app .fgl-progress-disclosure>.fgl-garden-atlas,.fgl-app .fgl-progress-disclosure-body{padding-left:12px;padding-right:12px}.fgl-app .fgl-item-help>.fgl-button{width:100%;justify-content:center;text-align:center}}

/* Optional grammar scaffolding: existing notebook, native disclosures, no autoplay. */
.fgl-grammar-support{margin:20px 0;border:1px solid var(--fgl-line,#dfe5f2);border-radius:12px;background:var(--fgl-paper,#fff)}
.fgl-grammar-support>summary{padding:16px 18px;cursor:pointer;font-size:16px;font-weight:700;line-height:1.5;color:var(--fgl-ink,#1c244b);min-height:52px}
.fgl-grammar-support>summary>span{color:var(--fgl-blue,#2563eb);margin-right:8px}
.fgl-grammar-support>summary small{display:block;font-size:12px;font-weight:400;margin:3px 0 0 25px;color:var(--fgl-muted,#626e87)}
.fgl-grammar-support-body{padding:0 18px 18px}.fgl-support-modes{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 18px}
.fgl-support-modes .fgl-button{font-size:12px;min-height:44px;padding:8px 12px}.fgl-support-modes [aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--fgl-blue,#2563eb);color:var(--fgl-blue,#2563eb)}
.fgl-support-content h3{font-size:18px;line-height:1.35;margin:0 0 10px}.fgl-support-content p{font-size:16px;line-height:1.6;margin:10px 0}
.fgl-support-contrast{border-left:3px solid var(--fgl-blue,#2563eb);padding:2px 14px;margin:16px 0;background:var(--fgl-input,#f6f8fc)}
.fgl-support-contrast p{font-size:18px;font-weight:600;margin:8px 0}.fgl-support-content audio{width:100%;max-width:440px;margin:8px 0}
.fgl-support-transcript>summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px;font-weight:600}.fgl-support-apply{border-top:1px solid var(--fgl-line,#dfe5f2);padding-top:14px}
.fgl-grammar-support .fgl-support-note{font-size:12px;line-height:1.5;margin:16px 0 0;color:var(--fgl-muted,#626e87)}
.fgl-grammar-support button:focus-visible,.fgl-grammar-support summary:focus-visible{outline:3px solid var(--fgl-blue,#2563eb);outline-offset:3px}
@media(max-width:420px){.fgl-grammar-support>summary{padding:14px}.fgl-grammar-support-body{padding:0 14px 14px}.fgl-support-modes .fgl-button{flex:1 1 100%;text-align:left}.fgl-support-contrast p{font-size:17px}}

.fgl-large-type .fgl-support-content p{font-size:18px}.fgl-large-type .fgl-support-modes .fgl-button{font-size:15px}.fgl-large-type .fgl-grammar-support>summary{font-size:18px}

.fgl-support-contrast-label{display:block;font-size:12px;font-weight:500;line-height:1.4;color:var(--fgl-muted);margin-bottom:4px}.fgl-large-type .fgl-support-contrast-label{font-size:15px}

.fgl-support-content .fgl-support-context{font-size:14px;line-height:1.5;color:var(--fgl-muted)}.fgl-large-type .fgl-support-content .fgl-support-context{font-size:16px}

.fgl-support-modes [data-support-purpose][hidden]{display:none!important}
