@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Roboto:wght@400;500;600;700&display=swap');

:root { --navy:#0b2236; --ink:#172c3d; --gold:#b59046; --gold-light:#e3c987; --paper:#f7f4ed; --line:#d7d5ce; --muted:#73808a; --nav-height:76px; --dock-height:90px; color-scheme:light; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:160px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'Roboto','Noto Sans JP',sans-serif; font-weight:400; line-height:1.8; padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom)); }
body.has-dock { padding-bottom:calc(var(--nav-height) + var(--dock-height) + env(safe-area-inset-bottom)); }
body:has(dialog[open]) { overflow:hidden; }
[hidden] { display:none!important; }
button,input,textarea,select { font:inherit; color:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.38; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--gold); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
svg { width:24px; height:24px; flex-shrink:0; vertical-align:middle; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { line-height:1.5; word-break:normal; overflow-wrap:anywhere; }
h1 { font-size:clamp(26px,3vw,36px); font-weight:700; }
h2 { font-size:23px; font-weight:700; }
h3 { font-size:19px; font-weight:600; }
p+p { margin-top:1em; }
.muted,.subtle { color:var(--muted); }
.subtle { font-size:13px; }
.eyebrow { font-size:13px; color:var(--gold); font-weight:600; margin-bottom:10px; }
.lede { font-size:17px; margin:0 0 32px; }
.page { width:min(100%,930px); padding:38px 24px 60px; margin:auto; }
.page-title { margin-bottom:28px; }
.page-title::after { content:''; display:block; width:38px; height:3px; background:var(--gold); margin-top:14px; }
.section { margin-top:42px; padding-top:28px; border-top:1px solid var(--line); }
.section>h2 { margin-bottom:18px; }
.section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:12px; }
.section-head a { font-size:13px; white-space:nowrap; }
.section-head a svg { width:16px; }
.topbar { background:var(--navy); padding:18px 24px; }
.topbar>a { display:flex; align-items:center; gap:16px; max-width:882px; margin:auto; color:white; }
.topbar img { width:170px; }
.topbar span { border-left:1px solid #83939c; padding-left:16px; font-size:17px; font-weight:600; letter-spacing:.06em; }
.primary { border:0; display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:54px; padding:14px 20px; border-radius:7px; background:var(--navy); color:#fff; font-weight:600; line-height:1.5; text-align:center; }
.primary:hover { background:#183c54; color:#fff; }
.primary svg:first-child { color:var(--gold-light); }
.primary small { font-weight:400; }
.quiet { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:transparent; padding:10px 14px; min-height:44px; border:1px solid var(--line); border-radius:6px; }
.text-link { display:inline-flex; align-items:center; gap:12px; padding:12px 0; font-weight:600; }
.icon-button { border:0; background:transparent; padding:10px; min-width:44px; min-height:44px; }
.circle { border:0; border-radius:50%; background:var(--navy); color:var(--gold-light); width:44px; height:44px; min-width:44px; display:grid; place-items:center; padding:0; }
.back { display:inline-flex; align-items:center; min-height:44px; gap:6px; font-size:14px; }
.back svg { width:18px; }
.bottom-nav { position:fixed; z-index:20; bottom:0; left:0; right:0; min-height:var(--nav-height); display:flex; justify-content:center; background:#faf8f2f5; backdrop-filter:blur(20px); border-top:1px solid var(--line); padding:7px 0 calc(8px + env(safe-area-inset-bottom)); transition:transform .3s,opacity .3s; }
.bottom-nav>a { flex:1; max-width:190px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; position:relative; color:#7a858d; min-height:52px; font-size:12px; font-weight:500; }
.bottom-nav svg { width:24px; height:24px; }
.bottom-nav [aria-current] { color:var(--navy); font-weight:700; }
.bottom-nav [aria-current]::after { content:''; width:36px; height:3px; background:var(--gold); border-radius:2px; position:absolute; bottom:-3px; }
.immersive .bottom-nav { transform:translateY(110%); opacity:0; pointer-events:none; }
.hero { height:100svh; min-height:600px; position:relative; background:var(--navy); overflow:hidden; }
.hero>img { width:100%; height:100%; object-fit:cover; object-position:center 51%; animation:hero-arrive 1s ease-out both; }
.scroll-cue { position:absolute; bottom:max(36px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); border:0; background:transparent; color:white; padding:16px 22px 8px; font-family:'Roboto',sans-serif; font-weight:500; letter-spacing:.2em; font-size:11px; white-space:nowrap; text-shadow:0 1px 6px #0009; }
.scroll-cue>span { display:block; font-size:24px; margin-top:8px; animation:cue 2.3s ease-in-out infinite; }
.home-content { padding-top:36px; }
.resume h2 { font-size:clamp(25px,3.5vw,33px); margin-bottom:16px; }
.resume .primary { margin-top:24px; }
.home-podcast { display:flex; align-items:center; gap:24px; }
.home-podcast h2 { font-size:22px; }
.sound-art { width:120px; height:120px; display:grid; place-items:center; background:var(--navy); color:var(--gold-light); border-radius:50%; flex-shrink:0; }
.sound-art svg { width:42px; height:42px; }
.book { display:flex; align-items:center; gap:20px; border-bottom:1px solid var(--line); padding:26px 0; }
.book>img { width:100px; aspect-ratio:1.26; object-fit:cover; border-radius:3px; box-shadow:0 4px 12px #182b3d16; }
.book>div { flex:1; min-width:0; }
.book small { color:var(--gold); font-size:11px; }
.book h3 { margin:4px 0 12px; }
.book>svg { width:18px; color:var(--muted); }
.format-tags { display:flex; flex-wrap:wrap; gap:5px; }
.format-tags span { border:1px solid var(--line); padding:2px 7px; border-radius:30px; display:inline-flex; align-items:center; gap:4px; font-size:10px; white-space:nowrap; }
.format-tags svg { width:12px; height:12px; }
.search { display:flex; align-items:center; gap:10px; border:1px solid #c4c8c9; border-radius:7px; padding:10px 14px; margin-bottom:32px; }
.search svg { width:19px; color:var(--muted); }
.search input { min-width:0; flex:1; border:0; background:transparent; padding:3px; font-size:16px; outline:none; }
.preparing { margin-top:34px; }
summary { cursor:pointer; font-weight:600; padding:16px 0; }
.preparing summary { display:flex; justify-content:space-between; gap:8px; border-bottom:1px solid var(--line); }
.preparing summary::after { content:'⌄'; }
.preparing-list>div { padding:18px 0; border-bottom:1px solid var(--line); opacity:.57; }
.preparing-list small,.preparing-list span { font-size:11px; color:var(--muted); }
.empty { padding:48px 8px; text-align:center; color:var(--muted); }
.empty h3 { color:var(--ink); font-weight:500; margin-bottom:14px; }
.empty p { font-size:14px; }
.lesson-shell { width:min(100%,850px); margin:auto; padding:0 24px 60px; }
.lesson-heading { padding:12px 0 18px; }
.lesson-heading h1 { font-size:25px; margin-top:10px; }
.format-switch { position:sticky; top:0; background:var(--paper); padding:10px 0; display:flex; z-index:10; }
.format-switch::before { content:''; position:absolute; inset:10px 0; border:1px solid #c7cdcf; border-radius:7px; pointer-events:none; }
.format-switch a { flex:1; display:flex; align-items:center; justify-content:center; gap:8px; min-height:49px; font-weight:600; font-size:15px; border-right:1px solid #c7cdcf; }
.format-switch a:last-child { border-right:0; }
.format-switch a[aria-current] { background:var(--navy); color:white; border-radius:6px; }
.format-switch svg { width:20px; height:20px; }
.audio-player { padding:26px 0 12px; text-align:center; }
.audio-player .eyebrow { text-align:left; }
.audio-player h2 { text-align:left; font-size:25px; min-height:76px; }
.scrubber { margin-top:26px; }
input[type=range] { width:100%; accent-color:var(--gold); min-height:24px; cursor:pointer; }
.times { display:flex; justify-content:space-between; font-size:13px; color:var(--muted); }
.play-controls { display:flex; align-items:center; justify-content:center; gap:32px; margin:22px 0; }
.play-main { width:78px; height:78px; }
.play-main svg { width:31px; height:31px; }
.skip { position:relative; border:0; background:transparent; width:48px; height:55px; font-size:43px; line-height:1; }
.skip small { display:block; position:absolute; top:25px; left:0; right:0; font:500 12px 'Roboto',sans-serif; }
.speed-label { display:flex; align-items:center; justify-content:center; gap:14px; font-size:12px; color:var(--muted); }
.speed-label select { border:1px solid var(--line); background:transparent; min-height:42px; border-radius:5px; padding:6px 12px; }
.error { font-size:13px; color:#ad4439; margin-top:16px; }
.chapters { padding:0; list-style:none; margin:24px 0; }
.chapters li { display:flex; align-items:center; gap:12px; padding:20px 10px 20px 0; position:relative; border-bottom:1px solid var(--line); }
.chapters li.selected { background:#b5904613; border-radius:7px; }
.chapter-marker { align-self:stretch; display:grid; align-content:start; justify-items:center; min-width:24px; padding-top:3px; color:var(--gold); font-size:14px; }
.chapter-marker svg { width:19px; }
.chapter-copy { border:0; text-align:left; background:transparent; flex:1; min-width:0; padding:0; }
.chapter-copy small { display:block; font-size:12px; color:var(--muted); margin-bottom:5px; }
.chapter-copy strong { display:block; font-size:15px; font-weight:600; line-height:1.7; }
.chapter-time { font-size:12px; color:var(--muted); }
.chapter-play { min-width:39px; width:39px; height:39px; }
.figure-view { padding-top:20px; }
.figure-view .eyebrow { display:flex; gap:16px; }
.figure-image { border:0; padding:0; width:100%; background:transparent; cursor:zoom-in; }
.figure-image>img { width:100%; }
.zoom-link { display:flex; margin:16px auto 26px; }
.figure-paging { display:flex; align-items:center; justify-content:space-between; gap:7px; font-size:13px; }
.figure-paging button { padding:9px 8px; font-size:12px; }
.figure-paging svg { width:16px; }
.figure-view .section p { margin-bottom:18px; }
.article { max-width:680px; margin:24px auto 0; font-size:16px; line-height:2.1; }
.article header h2 { font-size:28px; }
.article-subtitle { font-size:17px; margin-top:14px; }
.byline { color:var(--muted); font-size:13px; margin-top:20px; }
.toc { margin:28px 0; border-block:1px solid var(--line); font-size:13px; }
.toc>a { display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-top:1px solid var(--line); }
.toc svg { width:14px; }
.article-lead { font-weight:500; font-size:18px; }
.article section { margin-top:42px; }
.article h2 { margin:36px 0 22px; font-size:23px; }
.article h3 { margin:24px 0 14px; font-size:18px; }
.article p { margin-bottom:18px; }
.article figure { margin:26px 0; }
.article figure img { width:100%; }
.article figcaption { font-size:12px; color:var(--muted); line-height:1.8; margin-top:10px; }
.article blockquote { margin:24px 0; padding:20px; background:#ebe7dc; border-left:2px solid var(--gold); }
.voice { padding:22px 0; margin:30px 0; border-block:1px solid var(--line); }
.voice small { color:var(--gold); }
.voice p { margin-top:12px; }
.table-scroll { overflow:auto; margin:24px 0; }
table { border-collapse:collapse; font-size:13px; min-width:500px; }
th,td { padding:14px; text-align:left; border:1px solid var(--line); }
th { background:#eae6db; font-weight:600; }
.reflection { border-top:1px solid var(--line); margin-top:48px; padding-top:30px; }
.reflection>p { margin-bottom:18px; }
.reflection>h2 { margin-bottom:12px; }
.reflection .primary { margin-top:24px; }
.dashboard { background:linear-gradient(100deg,#0a2336eb,#0a2336cc),url('/assets/hero-lab-foil-v03-20261107.png') right 45% / cover; padding:26px; color:white; border-radius:8px; }
.dashboard .eyebrow { color:#d8c8a4; }
.large-number { font:500 70px/1.4 'Roboto',sans-serif; }
.large-number span { font-size:25px; margin-left:14px; }
.segmented-progress { display:flex; gap:5px; margin:14px 0 8px; }
.segmented-progress i { height:9px; flex:1; border-radius:2px; background:#577083; }
.segmented-progress i.filled { background:linear-gradient(90deg,#b59046,#e4c77f); }
.percent { font-size:12px; color:#e2e5e6; }
.dashboard-meta { display:flex; padding:20px 0; border-bottom:1px solid var(--line); }
.dashboard-meta p { flex:1; text-align:center; font-size:13px; margin:0; }
.dashboard-meta p+p { border-left:1px solid var(--line); }
.dashboard-meta strong { font-size:25px; margin-left:8px; }
.streak { display:flex; align-items:center; justify-content:space-between; padding:18px 0; border-bottom:1px solid var(--line); gap:12px; font-size:13px; }
.streak strong { font-size:27px; }
.streak strong small { margin-left:8px; font-size:13px; font-weight:400; }
.streak>div { display:flex; gap:5px; }
.streak i { height:6px; width:6px; border-radius:50%; background:var(--line); }
.streak i.filled { background:var(--gold); }
.compact { margin-top:26px; }
.compact h2 { font-size:24px; }
.learning-path { list-style:none; padding:0 0 0 18px; margin:28px 0 0; }
.learning-path li { border-left:1px solid var(--line); padding:0 0 32px 24px; position:relative; }
.learning-path li:last-child { border-left:0; padding-bottom:0; }
.path-dot { position:absolute; left:-9px; top:3px; width:17px; height:17px; border:1.5px solid #a7aeb1; border-radius:50%; background:var(--paper); }
.submitted .path-dot { background:var(--gold); color:#fff; border-color:var(--gold); display:grid; place-items:center; }
.path-dot svg { width:12px; height:12px; }
.started .path-dot { border:4px solid var(--gold); }
.learning-path small { font-size:12px; color:var(--muted); }
.learning-path h3 { margin:9px 0; }
.learning-path .text-link,.learning-path button { font-size:13px; }
.media-log>div { display:flex; gap:24px; }
.media-log p { margin:0; font-size:12px; flex:1; }
.media-log strong { display:block; font-size:29px; font-weight:500; margin-top:8px; }
.media-log small { font-size:13px; margin-left:6px; }
.media-log .format-name { font-size:23px; }
.local-note { font-size:12px; color:var(--muted); border-top:1px solid var(--line); padding-top:22px; margin-top:36px; }
.podcast-art { min-height:200px; background:var(--navy); color:var(--gold-light); display:grid; place-items:center; padding:30px; position:relative; overflow:hidden; }
.podcast-art>svg { width:38px; height:38px; }
.wave { display:flex; align-items:center; justify-content:center; height:90px; gap:4px; }
.wave i { width:3px; background:linear-gradient(0deg,#b5904655,#dfc98e); border-radius:2px; }
.episode { display:flex; align-items:center; gap:16px; padding:24px 0; border-bottom:1px solid var(--line); }
.episode>div:nth-child(2) { flex:1; }
.episode small { color:var(--muted); }
.episode h3 { margin-top:7px; }
video { width:100%; margin-top:28px; background:#000; border-radius:7px; }
audio[controls] { width:100%; margin:24px 0; }
.dock { position:fixed; bottom:calc(var(--nav-height) + env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); width:min(100% - 20px,900px); height:82px; background:var(--navy); color:white; z-index:22; display:flex; align-items:center; padding:12px; gap:7px; border-radius:9px; box-shadow:0 3px 20px #0002; }
.dock-copy { display:flex; align-items:center; gap:12px; background:transparent; color:white; border:0; min-width:0; flex:1; text-align:left; padding:0; }
.dock-copy img { width:44px; height:44px; object-fit:cover; border-radius:3px; }
.dock-copy span { display:block; min-width:0; }
.dock-copy small { font-size:10px; color:#aebcc6; display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dock-copy strong { font-size:12px; font-weight:500; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dock .circle { background:#243f53; }
.dock .icon-button { color:white; padding:7px; width:34px; min-width:34px; }
.dock .icon-button svg { width:18px; }
.dock progress { position:absolute; bottom:0; left:10px; width:calc(100% - 20px); height:3px; border:0; appearance:none; }
progress::-webkit-progress-bar { background:#526273; }
progress::-webkit-progress-value { background:var(--gold-light); }
.notice { position:fixed; z-index:60; bottom:calc(var(--nav-height) + var(--dock-height) + 20px); left:50%; transform:translateX(-50%); width:min(92%,500px); background:#0a2336f2; color:white; padding:14px 20px; border-radius:7px; font-size:13px; box-shadow:0 4px 15px #0002; }
dialog { border:0; background:var(--paper); color:var(--ink); padding:24px; border-radius:10px; }
dialog::backdrop { background:#041728c4; backdrop-filter:blur(5px); }
.zoom { width:95vw; max-width:1200px; height:92dvh; max-height:92dvh; padding:0; }
.zoom-toolbar { display:flex; align-items:center; justify-content:space-between; padding:10px 16px; position:sticky; top:0; background:var(--paper); font-size:12px; }
.zoom-canvas { overflow:auto; height:calc(100% - 67px); }
.zoom-canvas img { width:1050px; max-width:none; margin:0 auto; }
.answer-dialog { width:calc(100% - 32px); max-width:620px; max-height:90dvh; }
.answer-dialog .close { position:absolute; top:8px; right:8px; font-size:24px; }
.answer-dialog h2 { margin-bottom:14px; padding-right:20px; }
.answer-dialog>p { color:var(--muted); font-size:14px; margin-bottom:24px; }
.answer-dialog label { font-size:14px; display:block; font-weight:500; margin-bottom:12px; }
textarea { width:100%; padding:14px; border:1px solid var(--line); border-radius:5px; background:#fff; resize:vertical; font-size:16px; }
.answer-meta { display:flex; justify-content:space-between; font-size:12px; color:var(--muted); }
.answer-dialog .subtle { margin:16px 0; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link:focus { position:fixed; top:5px; left:5px; z-index:100; padding:10px; background:white; }
@keyframes hero-arrive { from { transform:scale(1.025); } to { transform:scale(1); } }
@keyframes cue { 50% { transform:translateY(5px); } }
@media(min-width:760px) {
  body { --nav-height:82px; }
  .hero { background:#071b2a; height:100svh; min-height:720px; }
  .hero>img { object-fit:contain; }
  .hero::before,.hero::after { content:''; position:absolute; inset:0 auto 0 0; width:20%; background:linear-gradient(90deg,#071b2a,transparent); z-index:1; pointer-events:none; }
  .hero::after { left:auto; right:0; transform:rotate(180deg); }
  .scroll-cue { z-index:2; }
  .page { padding-top:48px; }
  .home-content { max-width:930px; }
  .home-content .resume { max-width:600px; }
  .book { gap:28px; padding:30px 0; }
  .book>img { width:145px; }
  .book h3 { font-size:24px; }
  .book small { font-size:13px; }
  .format-tags span { font-size:12px; padding:4px 10px; }
  .lesson-shell { padding-top:16px; }
  .lesson-heading h1 { font-size:32px; }
  .audio-player { max-width:620px; margin:0 auto; padding:35px 0; }
  .figure-view { max-width:680px; margin:auto; }
  .chapter-copy strong { font-size:20px; }
  .chapter-time { margin:0 12px; }
  .chapter-play { width:46px; height:46px; }
  .dashboard { padding:35px 40px; }
  .large-number { font-size:88px; }
  .dashboard-meta,.streak { padding-block:24px; }
}
@media(max-width:360px) {
  .page,.lesson-shell { padding-inline:18px; }
  .book { gap:13px; }
  .book>img { width:79px; }
  .book h3 { font-size:17px; }
  .book>svg { display:none; }
  .chapter-time { display:none; }
  .streak>div { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}

/* The approved artwork supplies the identity; the interface follows daily use. */
:root { --paper:#faf9f5; --gold:#a88336; --line:#e1e2dd; --muted:#7a858b; }
html { scroll-padding-top:74px; }
.page { width:min(100%,1040px); padding-top:32px; }
.topbar { padding:16px 24px; background:transparent; }
.topbar>a { color:var(--navy); }
.topbar img { filter:none; width:132px; }
.topbar span { font-size:14px; padding-left:12px; border-left-color:#c8cccf; }
.page-title { font-size:29px; margin-bottom:24px; letter-spacing:-.03em; }
.page-title::after { display:none; }
.section { margin-top:36px; padding-top:0; border:0; }
.section-head { margin-bottom:20px; }
.section h2,.section-head h2 { font-size:19px; }
.primary { min-height:51px; border-radius:10px; font-size:14px; padding:14px 18px; }
.primary svg { width:19px; height:19px; }
.primary small { margin-left:auto; opacity:.7; font-size:12px; }
.primary:active,.circle:active { transform:scale(.98); }
.bottom-nav { box-shadow:0 -6px 22px #24374805; border-top-color:#e1e2dd; }
.bottom-nav>a { font-size:11px; gap:5px; }
.bottom-nav [aria-current]::after { display:none; }
.bottom-nav [aria-current] svg { color:var(--gold); }
.bottom-nav svg { width:23px; height:23px; }
.home-content { padding-top:32px; }
.resume .eyebrow { font-family:'Roboto',sans-serif; letter-spacing:.13em; font-size:10px; margin-bottom:10px; }
.resume h2 { font-size:26px; letter-spacing:-.03em; line-height:1.6; margin-bottom:8px; }
.resume-detail { font-size:13px; line-height:1.8; max-width:42em; }
.resume .primary { margin-top:20px; }
.book-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 18px; }
.book { display:block; padding:0; border:0; min-width:0; }
.book>img { width:100%; aspect-ratio:1.39; border-radius:5px; box-shadow:0 3px 12px #2437480d; transition:transform .2s; }
.book:hover>img { transform:translateY(-2px); }
.book>div { margin-top:12px; }
.book small { font-size:10px; color:var(--muted); }
.book h3 { font-size:15px; line-height:1.65; margin:4px 0 10px; letter-spacing:-.025em; }
.book>svg { display:none; }
.format-tags { gap:6px; }
.format-tags span { padding:0; border:0; color:#849097; font-size:9px; gap:2px; }
.format-tags svg { width:11px; height:11px; }
.home-podcast { background:#f0f1ec; margin-top:38px; padding:25px 22px; border-radius:12px; justify-content:space-between; }
.home-podcast .eyebrow { font-size:10px; letter-spacing:.08em; }
.home-podcast h2 { font-size:18px; line-height:1.7; }
.home-podcast .text-link { font-size:12px; padding-top:16px; }
.sound-art { background:transparent; color:var(--gold); width:58px; height:70px; }
.sound-art svg { width:34px; height:34px; }
.search { background:#f0f1ed; border:0; margin-bottom:28px; padding:11px 15px; border-radius:10px; }
.search input { font-size:14px; }
.preparing { padding-top:18px; margin-top:34px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.preparing summary { border:0; }
.lesson-heading { padding-top:12px; padding-bottom:10px; }
.lesson-heading h1 { font-size:22px; margin:5px 0; line-height:1.6; letter-spacing:-.035em; }
.lesson-heading .back { color:var(--muted); font-size:12px; }
.format-switch { padding-block:9px; gap:5px; }
.format-switch::before { background:#edeee9; border:0; border-radius:10px; z-index:-1; }
.format-switch a { border:0; min-height:45px; font-size:13px; padding:7px; }
.format-switch a[aria-current] { background:white; color:var(--navy); box-shadow:0 2px 6px #1b344513; border-radius:8px; }
.format-switch svg { width:18px; height:18px; }
.audio-player { padding-top:24px; }
.audio-player h2 { font-size:23px; min-height:0; line-height:1.65; letter-spacing:-.025em; }
.audio-player .eyebrow { font-size:11px; margin-bottom:10px; }
.play-main { width:69px; height:69px; }
.play-main svg { width:26px; height:26px; }
.play-controls { gap:32px; margin:18px 0 20px; }
.scrubber { margin-top:22px; }
.chapters { margin:18px 0 24px; }
.chapters li { padding:18px 5px; gap:10px; }
.chapter-copy strong { font-size:14px; }
.chapter-copy small { font-size:10px; }
.chapter-marker { display:none; }
.chapters .selected { background:transparent; }
.chapters .selected .chapter-copy small { color:var(--gold); }
.chapter-play { width:37px; height:37px; min-width:37px; background:#e9edea; color:var(--navy); }
.chapter-play svg { width:18px; height:18px; }
.chapter-time { font-size:11px; }
.reflection { background:#efefea; border:0; padding:25px 22px; border-radius:12px; }
.reflection h2 { font-size:18px; }
.reflection .primary { margin-top:18px; }
.figure-paging .quiet { border:0; }
.article header h2 { font-size:27px; }
.article .eyebrow { letter-spacing:.14em; font-size:10px; }
.article-subtitle { font-size:15px; }
.article-lead { font-size:17px; line-height:2; }
.article .toc { border-radius:8px; background:#f0f1ec; padding:0 15px; border:0; }
.article section { padding-top:5px; }
.dashboard { border-radius:12px; padding:27px 25px; background:linear-gradient(100deg,#092337f7,#09233780),url('/assets/hero-lab-foil-v03-20261107.png') right 41%/cover; }
.large-number { font-size:65px; font-weight:400; }
.dashboard .eyebrow { font-size:11px; margin-bottom:4px; }
.large-number span { font-size:20px; opacity:.7; }
.segmented-progress { gap:4px; max-width:230px; }
.segmented-progress i { height:5px; }
.percent { font-size:10px; margin-top:8px; }
.dashboard-meta p { font-size:11px; }
.dashboard-meta strong { font-size:24px; font-weight:500; }
.streak { font-size:12px; }
.streak strong { font-size:23px; }
.streak>div { gap:5px; }
.streak i { width:5px; height:5px; }
.learning-path h3 { font-size:17px; }
.learning-path li { padding-left:22px; padding-bottom:29px; }
.learning-path .quiet { border:0; padding:8px 0; }
.learning-path .quiet svg { width:17px; height:17px; }
.local-note { font-size:11px; }
.podcast-art { min-height:150px; border-radius:12px; }
.podcast-art>svg { width:27px; height:27px; }
.wave { height:70px; }
.empty { padding:30px 0; text-align:left; }
.empty h3 { font-size:17px; }
.empty p { font-size:13px; }
.dock { padding:11px 12px; border-radius:12px; }
@media(min-width:760px) {
  .home-content { padding-top:44px; }
  .home-content .resume { max-width:620px; }
  .resume h2 { font-size:32px; }
  .book-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
  .home-content .book-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:720px; }
  .book h3 { font-size:19px; }
  .format-tags span { font-size:11px; }
  .lesson-heading h1 { font-size:27px; }
  .chapter-copy strong { font-size:17px; }
  .chapter-copy small { font-size:12px; }
  .home-podcast { padding:32px; }
}

/* Actions and reading positions are designed for everyday, one-handed use. */
:root { --muted:#64717b; }
h1,h2,h3 { text-wrap:balance; overflow-wrap:break-word; }
.resume { max-width:620px; }
.resume-label { font-size:12px; color:var(--muted); margin-bottom:12px; font-weight:500; }
.resume h2 { font-size:24px; line-height:1.6; letter-spacing:-.025em; max-width:26em; }
.resume-location { display:flex; align-items:flex-start; gap:10px; margin-top:15px; color:var(--muted); line-height:1.7; font-size:13px; }
.resume-location>svg { width:19px; height:19px; margin-top:2px; }
.resume-location>span { min-width:0; }
.resume-location b { font-weight:500; color:var(--ink); padding-right:10px; }
.resume-location>span>span { color:var(--muted); }
.resume .primary { margin-top:20px; }
.resume-action { justify-content:flex-start; }
.resume-action>span { flex:1; }
.resume-action svg:last-child { width:16px; color:#e9dfc5; }
.resume-alternatives { display:flex; gap:10px; margin-top:10px; }
.resume-alternatives a { flex:1; display:flex; gap:8px; align-items:center; justify-content:center; min-height:44px; font-size:13px; color:#50606b; border-radius:7px; }
.resume-alternatives svg { width:17px; height:17px; }
.resume-alternatives a:hover { background:#eef0ea; }
.podcast-entry { display:flex; align-items:center; gap:14px; padding:22px 18px; margin-top:36px; background:#f0f1ec; border-radius:10px; min-height:92px; }
.entry-icon { width:42px; height:42px; display:grid; place-items:center; flex-shrink:0; color:var(--gold); }
.entry-icon svg { width:27px; height:27px; }
.entry-copy { min-width:0; flex:1; }
.entry-copy strong { display:block; font-size:19px; font-weight:600; line-height:1.4; }
.entry-copy>span { display:block; font-size:13px; margin-top:6px; color:var(--muted); line-height:1.6; }
.podcast-entry>svg { width:17px; height:17px; color:var(--muted); }
.podcast-entry:hover { background:#e9ece5; color:var(--ink); }
.podcast-empty { padding:38px 0; max-width:560px; }
.podcast-empty .entry-icon { background:#f0f1ec; width:60px; height:60px; border-radius:50%; margin-bottom:22px; }
.podcast-empty h2 { font-size:20px; text-wrap:balance; }
.podcast-empty p { font-size:14px; color:var(--muted); line-height:1.9; margin-top:16px; }
.podcast-empty .quiet { margin-top:24px; font-size:14px; }
.episode h2 { font-size:17px; }
.book small { font-size:11px; }
.format-tags span { font-size:11px; color:#65737b; }
.format-tags { column-gap:7px; row-gap:4px; }
.section-head>a { min-height:44px; display:flex; align-items:center; padding-left:12px; }
.bottom-nav>a { font-size:12px; }
.chapter { width:100%; border:0; padding:16px 0; background:transparent; display:flex; align-items:center; gap:14px; text-align:left; min-height:76px; border-radius:5px; }
.chapters li { padding:0; }
.chapters li.selected .chapter { background:#f1f1ea; padding-inline:12px; }
.chapter-copy { display:block; }
.chapter-copy strong { font-size:15px; }
.chapter-copy small { font-size:12px; }
.chapter-play { width:44px; height:44px; min-width:44px; }
.chapter[aria-pressed=true] .chapter-play { background:var(--navy); color:var(--gold-light); }
.chapter-time { font-size:12px; }
.related-format { display:flex; font-size:13px; justify-content:space-between; border:0; background:#ecefe9; width:100%; min-height:50px; }
.related-format svg { width:19px; height:19px; }
.figure-tabs { display:flex; align-items:center; gap:8px; margin:0 0 16px; }
.figure-tabs button { flex:1; border:1px solid #cdd2d1; background:transparent; min-height:44px; border-radius:7px; font-size:13px; }
.figure-tabs [aria-pressed=true] { background:var(--navy); border-color:var(--navy); color:white; }
.figure-counter { font-size:12px; color:var(--muted); margin-bottom:14px; }
.figure-view { scroll-margin-top:74px; }
.article figure img { height:auto; }
.article header h2 { font-size:25px; line-height:1.75; }
.article p { line-height:2.05; }
.article section { scroll-margin-top:80px; }
.article [data-reading] { scroll-margin-top:100px; }
.zoom { width:min(95vw,1050px); }
.zoom-canvas img { width:100%; max-width:100%; height:auto; }
.zoom.is-enlarged .zoom-canvas img { width:1500px; max-width:none; }
.zoom-toolbar { gap:12px; }
.zoom-toolbar>div { display:flex; gap:8px; }
.zoom-toolbar .quiet { font-size:13px; }
.dock .icon-button { min-width:44px; width:44px; }
.streak>div { gap:6px; }
.streak i { width:7px; height:7px; }
.local-note { font-size:12px; }
.phrase { display:inline-block; max-width:100%; }
.audio-player h2,.resume h2,.book h3,.chapter-copy strong { text-wrap:wrap; }
.skip { display:grid; place-items:center; }
.skip svg { width:34px; height:34px; }
.skip text { font:500 11px 'Roboto',sans-serif; }
input[type=range] { appearance:none; background:transparent; padding:0; height:28px; }
input[type=range]::-webkit-slider-runnable-track { height:4px; border-radius:5px; background:#d7dcd7; }
input[type=range]::-webkit-slider-thumb { appearance:none; width:18px; height:18px; border-radius:50%; background:var(--gold); border:2px solid var(--paper); margin-top:-7px; box-shadow:0 0 0 1px #a8833640; }
input[type=range]::-moz-range-track { height:4px; border-radius:5px; background:#d7dcd7; }
input[type=range]::-moz-range-thumb { width:15px; height:15px; border-radius:50%; background:var(--gold); border:2px solid var(--paper); }
@media(max-width:360px) {
  .resume h2 { font-size:22px; }
  .podcast-entry { padding:20px 14px; gap:10px; }
  .entry-copy>span { font-size:12px; }
  .book h3 { font-size:15px; }
  .chapter-time { display:none; }
}
@media(min-width:760px) {
  .resume h2 { font-size:29px; }
  .resume-alternatives { justify-content:flex-start; }
  .resume-alternatives a { flex:0 1 180px; }
  .podcast-entry { max-width:720px; padding:24px; }
}


/* Available and forthcoming contents share the same shelf. */
.catalog-summary { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:12px; margin:-8px 0 26px; }
.book--pending { cursor:default; }
.book--pending>div.pending-cover { position:relative; margin:0; width:100%; aspect-ratio:1.39; background:#f0eee7; border-radius:5px; overflow:hidden; }
.pending-cover img { width:100%; height:100%; object-fit:cover; opacity:.38; }
.pending-cover>span { position:absolute; left:10px; bottom:10px; color:#53636b; background:#faf9f5e8; font-size:11px; padding:2px 8px; border-radius:4px; }
.book--pending h3 { color:#56646d; }
.book--pending:hover { color:inherit; }
/* 2026-11-07: phone journeys, visible choices and stable player controls. */
html { scroll-padding-bottom:calc(var(--nav-height) + 18px + env(safe-area-inset-bottom)); }
html:has(body.has-dock) { scroll-padding-bottom:calc(var(--nav-height) + var(--dock-height) + 18px + env(safe-area-inset-bottom)); }
.topbar { padding-top:calc(16px + env(safe-area-inset-top)); }
.topbar>a { min-height:44px; }
.home-progress { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:48px; padding-bottom:16px; margin-bottom:24px; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
.home-progress>span { display:flex; align-items:center; gap:8px; }
.home-progress svg { width:17px; height:17px; }
.home-progress b { color:var(--ink); font-size:18px; font-weight:600; }
.search { min-height:54px; padding:3px 8px 3px 15px; margin-bottom:18px; }
.search input { min-height:46px; font-size:16px; width:100%; }
.search .icon-button { flex-shrink:0; }
.search .icon-button svg { width:17px; height:17px; }
.shelf-filters { display:flex; align-items:center; gap:8px; margin-bottom:28px; }
.shelf-filters button { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; min-height:46px; padding:8px; border:1px solid #d1d6d4; background:transparent; border-radius:8px; font-size:13px; white-space:nowrap; font-weight:500; }
.shelf-filters button span { font:500 12px 'Roboto',sans-serif; opacity:.75; }
.shelf-filters [aria-pressed=true] { color:white; background:var(--navy); border-color:var(--navy); }
.book-state { font-size:11px; color:var(--muted); margin-top:7px; }
.format-tags { gap:3px 8px; }
.book>img { height:auto; }
.book:active { opacity:.8; }
.book--pending:active { opacity:1; }
.lesson-heading { padding-top:calc(12px + env(safe-area-inset-top)); }
.audio-player { scroll-margin-top:74px; }
.chapter-steps { display:flex; gap:8px; padding-bottom:23px; }
.chapter-steps button { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; min-height:44px; padding:7px 5px; border:0; border-radius:7px; background:#edeee9; color:#5e6b73; font-size:13px; }
.chapter-steps button>span { font-family:'Roboto',sans-serif; font-weight:600; }
.chapter-steps svg { width:15px; height:15px; }
.chapter-steps [aria-current] { background:var(--navy); color:#f4e5bb; }
.audio-player .eyebrow { display:flex; align-items:center; justify-content:space-between; font-size:12px; }
.audio-player .eyebrow>span { color:var(--muted); font:400 12px 'Roboto',sans-serif; }
.audio-player h2 { font-size:22px; }
.audio-player .error:empty,.player-state:empty { display:none; }
.player-sequence { color:var(--muted); font-size:12px; margin-top:16px; }
.player-state { color:var(--muted); font-size:13px; margin-top:12px; }
.speed-label { font-size:13px; }
.speed-label select { min-width:88px; min-height:44px; font-size:16px; }
input[type=range] { height:44px; min-height:44px; margin-block:0; }
input[type=range]::-webkit-slider-runnable-track { background:linear-gradient(to right,var(--gold) var(--position,0%),#d7dcd7 var(--position,0%)); }
input[type=range]::-moz-range-progress { height:4px; border-radius:5px; background:var(--gold); }
.times { font-size:13px; }
.chapter-copy small { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.chapter-copy small .listened { color:#466757; font-size:11px; }
.chapter:active { background:#eceee8; }
.dashboard-totals { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:center; }
.stat-label { color:#e0e6e8; font-size:12px; }
.dashboard .eyebrow { font-size:13px; margin-bottom:14px; color:var(--gold-light); }
.large-number { font-size:54px; line-height:1.25; margin-top:7px; }
.large-number span { font-size:18px; margin-left:7px; opacity:1; }
.large-number small,.listening-total small { font-size:12px; margin-left:3px; }
.listening-total { border-left:1px solid #e0e7eb38; padding-left:18px; }
.listening-total strong { display:block; font:500 32px/1.5 'Roboto',sans-serif; color:#f5e4b2; margin-top:7px; }
.listening-total strong>span { font-size:17px; color:#e0e6e8; margin-left:6px; font-weight:400; }
.dashboard .segmented-progress { max-width:none; margin-top:20px; }
.dashboard .percent { font-size:12px; margin-top:9px; }
.dashboard+.resume.compact { margin-top:30px; padding-top:0; }
.resume.compact h2 { font-size:22px; }
.resume.compact .resume-label { margin-bottom:7px; }
.resume.compact .resume-location { margin-top:10px; }
.activity-section { margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.activity-section .section-head h2 { font-size:17px; }
.activity-section .section-head>span { font-size:12px; color:var(--muted); }
.activity-section b { font-size:17px; color:var(--ink); margin-inline:4px; }
.activity-week { display:flex; justify-content:space-between; list-style:none; margin:0; padding:0; gap:8px; }
.activity-week li { display:flex; align-items:center; flex-direction:column; font-size:12px; flex:1; gap:6px; color:var(--muted); }
.activity-week i { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#e8eae4; color:white; }
.activity-week .active i { background:var(--gold); }
.activity-week .today i { outline:1px solid var(--gold); outline-offset:3px; }
.activity-week svg { width:17px; height:17px; }
.activity-week small { font-size:11px; }
.activity-week .today small { color:var(--gold); font-weight:600; }
.dashboard-meta { margin-top:15px; }
.dashboard-meta p { font-size:13px; }
.path-chapters { display:flex; gap:14px; flex-wrap:wrap; margin:10px 0 3px; font-size:12px; color:var(--muted); }
.path-chapters span { display:flex; align-items:center; gap:3px; }
.path-chapters .listened { color:#466757; font-weight:500; }
.path-chapters svg { width:14px; height:14px; }
.dock-copy { min-height:48px; }
.dock-copy small { font-size:11px; }
.dock-copy strong { font-size:13px; }
.immersive.has-dock .bottom-nav { transform:none; opacity:1; pointer-events:auto; }
@media(max-width:360px) {
  .shelf-filters { gap:6px; }
  .shelf-filters button { gap:5px; font-size:12px; padding-inline:5px; }
  .dashboard { padding:24px 20px; }
  .stat-label { font-size:11px; }
  .listening-total { padding-left:12px; }
  .dashboard-totals { gap:12px; }
  .activity-week { gap:5px; }
}
@media(min-width:760px) {
  .shelf-filters { max-width:480px; }
  .home-progress { max-width:620px; }
  .dashboard { max-width:700px; }
  .dashboard-totals { max-width:480px; }
  .large-number { font-size:68px; }
  .listening-total strong { font-size:40px; }
  .dashboard .segmented-progress { max-width:480px; }
  .activity-section,.dashboard-meta { max-width:620px; }
  .chapter-steps { max-width:440px; }
}

#search::-webkit-search-cancel-button { appearance:none; }

/* A consistent reading scale: title, body, and compact metadata. */
:root { --type-caption:12px; --type-meta:14px; --type-body:16px; --type-book:18px; --type-section:21px; --space-section:40px; }
body { font-size:var(--type-body); line-height:1.8; }
.page { padding-top:24px; padding-inline:20px; }
.lesson-shell { padding-inline:20px; }
h1,h2,h3,.chapter-copy strong { letter-spacing:0; }
.page-title { margin-bottom:24px; }
.section { margin-top:var(--space-section); }
.section>h2,.section-head h2 { font-size:var(--type-section); line-height:1.5; }
.section-head { margin-bottom:20px; gap:12px; }
.section-head>a,.section-head>span { font-size:var(--type-meta); }
.primary { min-height:56px; padding:16px 18px; font-size:var(--type-body); line-height:1.5; }
.quiet,.back,.text-link { font-size:var(--type-meta); }
.book-grid { gap:36px 16px; }
.book>div { margin-top:14px; }
.book small { font-size:var(--type-caption); line-height:1.65; }
.book h3 { font-size:var(--type-book); line-height:1.55; font-weight:600; margin:7px 0 12px; letter-spacing:0; }
.format-tags { gap:6px; align-items:center; }
.format-tags span { display:inline-flex; padding:2px 6px; border:1px solid #d6dcd6; border-radius:20px; background:#f0f2ec; color:#3f5360; font-size:var(--type-caption); line-height:1.65; white-space:nowrap; }
.book-state { margin-top:9px; font-size:var(--type-caption); line-height:1.65; }
.pending-cover>span { font-size:var(--type-caption); line-height:1.6; padding:3px 8px; }
.shelf-filters { margin-bottom:28px; }
.shelf-filters button { font-size:var(--type-meta); min-height:48px; gap:7px; }
.shelf-filters button span { font-size:13px; opacity:.9; }
.home-content { padding-top:28px; }
.home-progress { font-size:var(--type-meta); margin-bottom:28px; }
.resume-label { font-size:var(--type-meta); margin-bottom:10px; }
.resume h2,.resume.compact h2 { font-size:24px; line-height:1.55; letter-spacing:0; }
.resume-location { font-size:var(--type-meta); margin-top:14px; line-height:1.75; }
.resume-alternatives { margin-top:12px; gap:12px; }
.resume-alternatives a { font-size:var(--type-meta); min-height:48px; }
.podcast-entry { margin-top:var(--space-section); padding:24px 20px; }
.entry-copy>span { font-size:var(--type-meta); }
.lesson-heading h1 { font-size:24px; line-height:1.55; letter-spacing:0; margin:8px 0 12px; }
.lesson-heading .back { font-size:var(--type-meta); }
.format-switch a { font-size:15px; min-height:50px; }
.format-switch svg { width:20px; height:20px; }
.chapter-steps { gap:8px; padding-bottom:24px; }
.chapter-steps button { font-size:15px; min-height:46px; }
.audio-player .eyebrow,.audio-player .eyebrow>span { font-size:var(--type-meta); }
.audio-player h2 { font-size:24px; line-height:1.6; letter-spacing:0; }
.audio-player { padding-bottom:8px; }
.scrubber { margin-top:24px; }
.times,.speed-label { font-size:var(--type-meta); }
.play-controls { margin:18px 0 22px; }
.player-sequence,.player-state { font-size:13px; line-height:1.75; }
.chapter { padding-block:20px; gap:12px; }
.chapter-copy small { font-size:13px; line-height:1.6; margin-bottom:7px; }
.chapter-copy small .listened { font-size:var(--type-caption); }
.chapter-copy strong { font-size:17px; line-height:1.65; letter-spacing:0; }
.chapter-time { font-size:13px; }
.related-format { min-height:54px; padding:12px; font-size:var(--type-meta); }
.reflection { padding:26px 20px; margin-top:var(--space-section); }
.reflection h2 { font-size:20px; line-height:1.65; }
.figure-tabs button { font-size:var(--type-meta); min-height:46px; }
.figure-counter { font-size:var(--type-meta); }
.figure-paging,.figure-paging button { font-size:var(--type-meta); }
.article { font-size:17px; line-height:1.95; }
.article p { line-height:1.95; margin-bottom:20px; }
.article header h2 { font-size:26px; line-height:1.65; }
.article h2 { font-size:23px; line-height:1.65; margin-bottom:20px; }
.article h3 { font-size:19px; line-height:1.65; }
.article-lead { font-size:18px; }
.byline,.toc { font-size:var(--type-meta); }
.toc>a { padding:12px 0; line-height:1.8; }
.article figcaption { font-size:13px; }
table { font-size:var(--type-meta); }
.dashboard { padding:26px 24px; }
.dashboard .eyebrow,.stat-label,.dashboard .percent { font-size:var(--type-meta); line-height:1.65; }
.dashboard+.resume.compact { margin-top:32px; }
.activity-section { margin-top:32px; padding-top:26px; }
.activity-section .section-head h2 { font-size:19px; }
.activity-section .section-head>span { font-size:13px; }
.activity-week li { font-size:var(--type-meta); gap:8px; }
.activity-week small { font-size:var(--type-caption); }
.activity-week i { width:30px; height:30px; }
.dashboard-meta p { font-size:var(--type-meta); }
.learning-path h3 { font-size:19px; line-height:1.65; margin-top:5px; }
.learning-path small,.path-chapters { font-size:13px; }
.learning-path li { padding-bottom:36px; }
.path-chapters { gap:12px; margin-top:12px; }
.local-note,.subtle { font-size:13px; line-height:1.8; }
.dock-copy small { font-size:var(--type-caption); }
.dock-copy strong { font-size:var(--type-meta); }
.answer-dialog>p,.answer-dialog label { font-size:15px; }
.answer-meta { font-size:13px; }
.zoom-toolbar,.zoom-toolbar .quiet { font-size:var(--type-meta); }
.bottom-nav>a { font-size:13px; line-height:1.5; }
@media(max-width:360px) {
  :root { --type-book:17px; }
  .page,.lesson-shell { padding-inline:18px; }
  .shelf-filters { gap:6px; }
  .shelf-filters button { padding-inline:6px; gap:5px; }
  .home-progress { font-size:13px; }
  .home-progress>span { gap:6px; }
  .resume h2,.resume.compact h2 { font-size:23px; }
  .chapter-time { display:none; }
  .dashboard { padding:24px 18px; }
  .dashboard-totals { gap:10px; }
  .listening-total { padding-left:10px; }
  .stat-label { font-size:13px; }
  .activity-section .section-head h2 { font-size:18px; }
  .activity-week { gap:5px; }
}
@media(min-width:760px) {
  .page { padding-top:36px; padding-inline:32px; }
  .lesson-shell { padding-inline:32px; }
  .book-grid { gap:40px 28px; }
  .book h3 { font-size:20px; }
  .book small,.book-state { font-size:13px; }
  .format-tags span { font-size:13px; padding:3px 8px; }
  .resume h2,.resume.compact h2 { font-size:29px; }
  .lesson-heading h1 { font-size:28px; }
  .chapter-copy strong { font-size:19px; }
  .dashboard { padding:30px; }
}

/* Retain the review article's author and spoken-comment identity. */
.byline { display:flex; align-items:center; gap:12px; line-height:1.7; }
.ricky-portrait { display:block; flex-shrink:0; width:48px; height:48px; border-radius:50%; overflow:hidden; background:#e5e3dc; }
.ricky-portrait img { width:100%; height:100%; object-fit:cover; transform:scale(1.6); transform-origin:50% 0%; }
.voice { display:flex; align-items:flex-start; gap:16px; padding:0; border:0; margin:32px 0; }
.voice-person { display:flex; flex-direction:column; align-items:center; gap:7px; width:52px; flex-shrink:0; }
.voice-person .ricky-portrait { width:52px; height:52px; }
.voice-person small { color:var(--muted); font-size:12px; line-height:1.6; white-space:nowrap; }
.article .voice-bubble { position:relative; flex:1; min-width:0; background:#efeee7; padding:18px; border-radius:10px; margin:0; font-size:17px; line-height:1.9; font-weight:500; }
.voice-bubble::before { content:''; position:absolute; left:-9px; top:18px; border-top:7px solid transparent; border-bottom:7px solid transparent; border-right:10px solid #efeee7; }
@media(max-width:360px) {
  .voice { gap:12px; }
  .voice-person { width:48px; }
  .voice-person .ricky-portrait { width:48px; height:48px; }
  .article .voice-bubble { padding:16px; }
}

/* Review-to-member parity: context, chapter objectives and the next learning step. */
.lesson-category { color:var(--gold); font-size:13px; margin:10px 0 0; }
.lesson-overview { font-size:14px; line-height:1.8; margin-bottom:10px; }
.lesson-overview summary { min-height:44px; display:flex; align-items:center; gap:8px; cursor:pointer; color:var(--muted); }
.lesson-overview summary::before { content:'+'; font-size:20px; color:var(--gold); }
.lesson-overview[open] summary::before { content:'−'; }
.lesson-overview p { margin:0 0 14px; }
.format-switch a { gap:6px; }
.format-switch small { font-size:12px; font-weight:400; }
.player-sequence { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; cursor:pointer; }
.player-sequence input { width:18px; height:18px; accent-color:var(--gold); flex-shrink:0; }
.chapter-intro { color:var(--muted); font-size:14px; line-height:1.8; margin:12px 0 0; }
.chapter-takeaway { display:block; font-size:14px; color:var(--muted); font-weight:400; line-height:1.8; margin-top:9px; }
.stage-next { margin-top:24px; border:1px solid var(--line); padding:20px; border-radius:12px; }
.stage-next p { margin:0 0 12px; font-size:14px; color:var(--muted); }
.stage-next .primary { width:100%; }
.figure-title { font-size:21px; line-height:1.7; margin:12px 0 20px; }
.article-points { padding-left:26px; margin:24px 0; }
.article-points li { padding-left:5px; margin-bottom:24px; }
.article-points li::marker { color:var(--gold); font-family:'Roboto',sans-serif; font-weight:600; }
.article-points strong { font-size:18px; font-weight:600; }
.article-points p { margin-top:10px; }
.question-example { border-left:2px solid var(--gold); padding:18px; margin:24px 0; background:#efeee7; border-radius:0 8px 8px 0; }
.article .question-example p { margin:10px 0 0; }
@media(max-width:360px) {
  .format-switch a { gap:4px; }
  .format-switch small { font-size:11px; }
  .format-switch svg { width:18px; height:18px; }
}

.chapter-copy small time { margin-left:auto; font-family:'Roboto',sans-serif; font-size:13px; color:var(--muted); font-weight:400; }
.chapter-copy small .listened { margin-left:0; }

/* Adopted SALES ASSET LAB lockup, 2026-11-07. Preserve the image itself. */
.topbar img { display:block; width:220px; max-width:100%; height:56px; object-fit:cover; object-position:center; filter:none; }

/* Opening the LAB: linen, a bound book and a quiet compass. */
.loading { position:fixed; z-index:50; inset:0; overflow:hidden; display:grid; place-items:center; padding:28px 20px; background:#081c2d; color:#fff; transition:opacity .45s ease; }
.loading.loaded { opacity:0; pointer-events:none; }
.loading-ambient { position:absolute; inset:0; background-image:linear-gradient(180deg,#081c2dbd,#081c2de6 62%,#081c2dfc),url('/assets/hero-lab-foil-v03-20261107.png'); background-position:center,left top; background-size:cover,auto 300%; background-repeat:no-repeat; opacity:.9; }
.loading::after { content:''; position:absolute; width:min(98vw,680px); height:min(98vw,680px); border-radius:50%; background:radial-gradient(circle,#25415c42 0%,#0b23350a 58%,transparent 70%); top:45%; left:50%; transform:translate(-50%,-50%); pointer-events:none; }
.loading-content { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; width:100%; transform:translateY(-16px); transition:transform .45s ease,opacity .45s ease; }
.loading.loaded .loading-content { opacity:0; transform:translateY(-25px); }
.loading-emblem { width:224px; height:224px; margin-bottom:14px; animation:lab-arrive .8s both ease-out; }
.loading-emblem svg { display:block; width:100%; height:100%; overflow:visible; }
.compass-edge { stroke:#c0a469; stroke-opacity:.25; stroke-width:.8; }
.compass-inner { stroke:#c0a469; stroke-opacity:.14; stroke-width:.6; }
.compass-ticks { stroke:#c6ad73; stroke-width:.8; }
.compass-ticks .major { opacity:.8; }
.compass-ticks .minor { opacity:.36; }
.compass-orbit { stroke:#e0c78d; stroke-width:1.5; stroke-linecap:round; stroke-dasharray:76 716; transform-origin:140px 140px; animation:lab-orbit 18s linear infinite; }
.compass-cardinals { fill:#cbb37b; fill-opacity:.7; font-family:'Roboto',sans-serif; font-size:9px; text-anchor:middle; }
.compass-needle { fill:#e0c78d; transform-origin:140px 140px; animation:lab-needle 5s ease-in-out infinite; }
.needle-south { opacity:.3; }
.compass-axis { stroke:#ceb574; stroke-opacity:.45; stroke-width:.9; }
.loading-book { filter:drop-shadow(0 8px 10px #0005); }
.book-cover { fill:#0b253a; stroke:#cbb37b; stroke-width:1.3; }
.book-spine { stroke:#cbb37b; stroke-opacity:.6; stroke-width:1; }
.book-pages { fill:#d8cfaf; }
.book-page-lines { stroke:#64717c; stroke-width:.5; stroke-opacity:.7; }
.book-emboss { stroke:#d4bc83; stroke-width:1.4; stroke-linecap:round; }
.book-mark { fill:#b99550; stroke:#b99550; stroke-width:.7; }
.loading-brand { display:block; width:min(82%,330px); animation:lab-arrive .7s .12s both ease-out; }
.loading-brand img { display:block; width:100%; height:auto; filter:brightness(0) invert(1); }
.loading-feedback { width:min(76%,270px); text-align:center; margin-top:8px; animation:lab-arrive .7s .2s both ease-out; }
.loading .loading-label { display:flex; align-items:center; justify-content:center; gap:7px; margin:0; color:#e6e9ed; font-family:'Roboto',sans-serif; font-size:12px; font-weight:500; letter-spacing:.18em; }
.loading-dots { display:inline-flex; gap:3px; padding-top:7px; }
.loading-dots i { width:2px; height:2px; border-radius:50%; background:#d8c28e; animation:lab-dot 1.5s ease-in-out infinite; }
.loading-dots i:nth-child(2) { animation-delay:.18s; }
.loading-dots i:nth-child(3) { animation-delay:.36s; }
.loading .loading-detail { margin:12px 0 0; color:#aab9c5; font-size:12px; font-weight:400; line-height:1.8; letter-spacing:0; }
.loading-track { width:148px; height:2px; margin:22px auto 0; overflow:hidden; background:#a7b4bf25; }
.loading-track i { display:block; width:38%; height:100%; background:#d6bc7e; transform:translateX(-110%); animation:lab-track 1.7s cubic-bezier(.5,.05,.35,.95) infinite; }
.loading-signature { position:absolute; z-index:1; bottom:calc(28px + env(safe-area-inset-bottom)); color:#bfa97080; font-family:'Roboto',sans-serif; font-size:10px; letter-spacing:.22em; }
@keyframes lab-arrive { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@keyframes lab-orbit { to { transform:rotate(360deg); } }
@keyframes lab-needle { 0%,100% { transform:rotate(-4deg); } 50% { transform:rotate(4deg); } }
@keyframes lab-dot { 0%,80%,100% { opacity:.25; } 35% { opacity:1; } }
@keyframes lab-track { to { transform:translateX(365%); } }
@media(max-width:360px),(max-height:700px) {
  .loading-emblem { width:190px; height:190px; margin-bottom:8px; }
  .loading-brand { width:min(84%,290px); }
  .loading-feedback { margin-top:4px; }
}
@media(prefers-reduced-motion:reduce) {
  .loading-content,.loading-emblem,.loading-brand,.loading-feedback { animation:none; }
  .compass-orbit,.compass-needle,.loading-dots i,.loading-track i { animation:none; }
  .loading-track i { transform:translateX(82%); }
}


/* Learning format and audio chapters are separate levels of navigation. */
.lesson-heading { padding-bottom:12px; }
.lesson-summary { font-size:14px; line-height:1.85; color:var(--muted); margin:0 0 4px; max-width:48em; }
.format-switch { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:10px 0; background:var(--paper); }
.format-switch::before { display:none; }
.format-switch a { display:flex; flex-direction:column; gap:5px; min-width:0; min-height:74px; padding:10px 4px; border:1px solid #cbd0d0; border-radius:9px; background:#fff; color:var(--ink); box-shadow:none; transition:background .15s,border-color .15s; }
.format-switch a:hover { background:#f0f2ee; border-color:var(--navy); color:var(--navy); }
.format-switch a[aria-current] { background:var(--navy); border-color:var(--navy); color:#fff; border-radius:9px; box-shadow:none; }
.format-name { font-size:15px; line-height:1.45; font-weight:600; white-space:nowrap; }
.format-meta { display:flex; gap:5px; align-items:center; font-size:12px; line-height:1.4; font-weight:400; color:var(--muted); }
.format-meta svg { width:16px; height:16px; }
.format-switch [aria-current] .format-meta { color:#e0c98d; }

/* One learning sequence; playback controls belong to the chapter being heard. */
.learning-sequence { max-width:700px; margin:22px auto 0; }
.sequence-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:6px 12px; }
.sequence-heading h2 { font-size:19px; line-height:1.6; }
.sequence-heading>span { font-size:12px; color:var(--muted); white-space:nowrap; }
.sequence-intro { font-size:13px; line-height:1.8; color:var(--muted); margin:7px 0 16px; }
.sequence-steps { list-style:none; padding:0; margin:0; }
.sequence-step { position:relative; padding-bottom:16px; scroll-margin-top:108px; }
.sequence-step:not(:last-child)::before { content:''; position:absolute; left:15px; top:48px; bottom:0; width:1px; background:#c9c7b9; pointer-events:none; }
.sequence-step:not(:last-child)::after { content:''; position:absolute; left:12px; bottom:3px; width:6px; height:6px; border-right:1px solid #a69b80; border-bottom:1px solid #a69b80; transform:rotate(45deg); pointer-events:none; }
.step-trigger { display:grid; grid-template-columns:32px minmax(0,1fr) 44px; gap:12px; align-items:start; width:100%; min-height:84px; padding:14px 0 16px; border:0; background:transparent; text-align:left; color:var(--ink); }
.step-trigger:hover .step-title { text-decoration:underline; text-underline-offset:5px; }
.step-letter { display:grid; place-items:center; width:32px; height:32px; margin-top:1px; border:1px solid #afb9bd; border-radius:50%; color:var(--navy); background:var(--paper); font:500 16px 'Roboto',sans-serif; }
.is-expanded .step-letter { background:var(--navy); color:#e0c98d; border-color:var(--navy); }
.is-complete:not(.is-expanded) .step-letter { border-color:#637b69; color:#466757; }
.step-copy { display:block; min-width:0; }
.step-meta { display:flex; align-items:center; flex-wrap:wrap; gap:5px 9px; margin-bottom:5px; font-size:12px; line-height:1.6; color:var(--muted); }
.step-meta>strong { font-weight:600; font-size:14px; color:var(--gold); }
.step-meta>time { font-family:'Roboto',sans-serif; }
.step-state { font-size:11px; font-weight:500; color:var(--muted); }
.is-playing .step-state { color:var(--navy); }
.step-title { display:block; font-size:17px; line-height:1.6; font-weight:600; }
.step-trigger .chapter-play { width:44px; height:44px; min-width:44px; margin-top:10px; background:var(--navy); color:#e0c98d; }
.step-trigger .chapter-play svg { width:20px; height:20px; }
.step-controls { margin-left:44px; padding-bottom:10px; }
.step-controls[hidden] { display:none; }
.step-controls .audio-player { max-width:none; margin:0; padding:15px 16px 4px; text-align:center; background:#edeee7; border-radius:8px; }
.step-takeaway { font-size:14px; line-height:1.85; text-align:left; color:var(--muted); }
.inline-audio-player .scrubber { margin-top:12px; }
.inline-audio-player .times { font-size:12px; color:var(--muted); }
.inline-audio-player .play-controls { margin:10px 0 12px; gap:23px; }
.inline-audio-player .play-main { width:60px; height:60px; min-width:60px; background:var(--navy); color:#e0c98d; }
.inline-audio-player .play-main svg { width:27px; height:27px; }
.inline-audio-player .skip { color:var(--navy); width:44px; height:48px; }
.inline-audio-player .speed-label { font-size:13px; }
.inline-audio-player .speed-label select { background:var(--paper); }
.inline-audio-player .next-audio-step { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:54px; padding:14px 0 11px; margin-top:16px; background:transparent; border:0; border-top:1px solid #cbd0c7; color:var(--navy); text-align:left; font-size:13px; }
.next-audio-step strong { font-size:14px; font-weight:600; margin-left:10px; }
.next-audio-step svg { width:17px; height:17px; color:var(--gold); }
.learning-sequence>.player-sequence { justify-content:flex-start; font-size:13px; color:var(--muted); margin:8px 0 0 44px; min-height:44px; gap:9px; }
.learning-sequence>.player-sequence input { width:18px; height:18px; accent-color:var(--gold); flex-shrink:0; }
@media(min-width:760px) {
  .lesson-heading { padding-bottom:18px; }
  .lesson-summary { font-size:16px; }
  .format-name { font-size:17px; }
  .format-meta { font-size:13px; }
  .learning-sequence { margin-top:26px; }
  .sequence-heading h2 { font-size:21px; }
  .sequence-heading>span,.sequence-intro { font-size:14px; }
  .step-title { font-size:20px; }
  .step-meta { font-size:13px; }
  .step-meta>strong { font-size:15px; }
  .step-controls .audio-player { padding-inline:24px; }
}
@media(max-width:360px) {
  .lesson-heading .back { min-height:40px; }
  .lesson-category { margin-top:6px; }
  .lesson-heading h1 { font-size:22px; line-height:1.5; }
  .lesson-summary { font-size:13px; line-height:1.7; }
  .format-switch { gap:6px; }
  .format-name { font-size:14px; }
  .format-switch a { min-height:68px; }
  .sequence-heading h2 { font-size:17px; }
  .sequence-intro { font-size:12px; }
  .step-trigger { grid-template-columns:30px minmax(0,1fr) 44px; gap:9px; }
  .step-letter { width:30px; height:30px; }
  .sequence-step:not(:last-child)::before { left:14px; }
  .sequence-step:not(:last-child)::after { left:11px; }
  .step-title { font-size:16px; }
  .step-meta { gap:4px 7px; }
  .step-controls { margin-left:39px; }
  .step-controls .audio-player { padding-inline:12px; }
  .step-takeaway { font-size:13px; }
  .learning-sequence>.player-sequence { margin-left:39px; }
}

/* The chapter row is the only play/pause button. */
.inline-audio-player .inline-options { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:8px 0; }
.inline-options .play-controls { margin:0; gap:4px; }
.inline-options .speed-label { gap:7px; font-size:12px; }
.inline-options .speed-label select { min-width:78px; }

/* Connected learning: explicit format actions, visible review and honest records. */
.book-cover-link { display:block; }
.book-cover-link img { display:block; width:100%; height:auto; aspect-ratio:1.39; object-fit:cover; border-radius:5px; box-shadow:0 3px 12px #2437480d; }
.book--ready h3 a { color:inherit; display:block; }
.book--ready h3 a:hover { color:var(--gold); }
.book--ready .format-tags { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.format-tags a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0; min-width:0; min-height:56px; padding:6px 0; border:1px solid #cfd5d0; border-radius:7px; background:#fffdf9; color:var(--ink); font-size:13px; line-height:1.45; }
.format-tags a:hover { background:#e9ede7; border-color:var(--gold); }
.format-tags a>svg { display:none; }
.format-tags a>span { display:block; border:0; background:none; padding:0; color:inherit; font-size:13px; line-height:1.5; }
.format-tags a>small { color:#596974; font-size:12px; line-height:1.5; }
.book-resume { display:flex; align-items:center; gap:5px; font-size:12px; min-height:44px; color:#526776; margin-top:4px; }
.book-resume svg { width:15px; height:15px; flex-shrink:0; }
.book-resume svg:last-child { width:12px; margin-left:auto; }
.book--ready:active { opacity:1; }
.book--ready a:active { opacity:.8; }
.figure-intro h2 { font-size:20px; line-height:1.6; margin:0 0 8px; }
.figure-intro>p { font-size:14px; color:#586b77; margin:0 0 20px; }
.figure-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; list-style:none; padding:0; margin:0 0 32px; align-items:stretch; }
.figure-overview li { min-width:0; }
.figure-overview button { width:100%; height:100%; display:flex; flex-direction:column; padding:0 0 10px; text-align:left; color:var(--ink); border:0; border-bottom:3px solid #d8ddd6; border-radius:0; background:transparent; }
.figure-overview [aria-pressed=true] { border-bottom-color:var(--navy); }
.figure-overview img { display:block; width:100%; aspect-ratio:1; object-fit:contain; background:#ebe7dc; border:1px solid #d8d5ca; border-radius:4px; }
.figure-overview [aria-pressed=true] img { border-color:var(--navy); }
.figure-thumb-meta { display:flex; align-items:center; justify-content:space-between; width:100%; gap:2px; font-size:13px; color:#69777d; margin-top:10px; }
.figure-thumb-meta b { font-weight:500; }
.figure-thumb-meta svg { width:14px; height:14px; color:#3b6857; flex-shrink:0; }
.figure-overview [aria-pressed=true] .figure-thumb-meta { color:var(--navy); }
.figure-thumb-title { display:block; font-size:13px; font-weight:500; line-height:1.65; margin-top:5px; }
.selected-figure,.reflection,.article-finish,.next-learning { scroll-margin-top:110px; }
.selected-figure .figure-counter { display:flex; justify-content:space-between; align-items:center; gap:10px; color:var(--gold); font-size:14px; margin-bottom:8px; }
.figure-counter span { color:#61717a; font-size:12px; }
.figure-title { margin-bottom:20px; }
.figure-takeaway { font-size:16px; line-height:1.9; margin:22px 0; }
.completion-button { display:flex; align-items:center; gap:12px; padding:14px 16px; min-height:66px; width:100%; text-align:left; border:1px solid #bac5bd; border-radius:7px; background:#fffdf8; color:var(--ink); font-size:15px; line-height:1.6; }
.completion-button>svg { flex-shrink:0; width:24px; height:24px; padding:3px; border:1px solid #9bab9f; border-radius:50%; color:transparent; }
.completion-button small { display:block; margin-top:3px; color:#617069; font-size:12px; }
.completion-button.is-confirmed { background:#eaf0e8; border-color:#668271; }
.completion-button.is-confirmed>svg { background:#355e4b; border-color:#355e4b; color:white; }
.figure-paging { margin:20px 0 18px; padding:0; gap:12px; }
.figure-paging .quiet { min-height:48px; padding:8px 0; }
.selected-figure>.text-link { font-size:14px; }
.article-finish { margin:40px 0 12px; border-top:1px solid var(--line); padding-top:28px; }
.article-finish h2 { font-size:20px; line-height:1.65; }
.article-finish .text-link { min-height:48px; margin-top:8px; }
.article-top { min-height:44px; font-size:13px; }
.reflection { padding:26px 20px; background:#efeee7; border-radius:10px; }
.reflection>.eyebrow { margin:0 0 6px; font-size:12px; }
.reflection h2 { margin:0 0 20px; font-size:20px; }
#reflection-form label { display:block; font-size:14px; font-weight:500; margin-bottom:10px; }
#reflection-text { display:block; width:100%; min-height:144px; padding:13px; border:1px solid #aeb8b4; border-radius:6px; background:#fffefa; color:var(--ink); font:400 16px/1.9 'Roboto','Noto Sans JP',sans-serif; resize:vertical; }
#reflection-form .answer-meta { margin-top:8px; color:#596b73; font-size:12px; }
.reflection-storage { font-size:12px; line-height:1.8; color:#536670; margin:10px 0; }
#reflection-status { min-height:22px; font-size:12px; color:#416050; margin:8px 0 0; }
.reflection .local-note { font-size:12px; text-align:left; padding:0; margin:10px 0 0; color:#536670; }
.reflection-saved-label { display:flex; align-items:center; gap:6px; font-size:13px; color:#416050; }
.reflection-saved-label svg { width:17px; height:17px; }
.saved-reflection { white-space:pre-wrap; overflow-wrap:anywhere; font-size:16px; line-height:1.9; }
.reflection-actions { display:flex; flex-wrap:wrap; gap:4px 18px; }
.reflection-actions .quiet,.reflection-actions .text-link { padding:8px 0; min-height:44px; font-size:14px; border:0; }
.next-learning { padding-top:28px; margin-top:36px; border-top:1px solid var(--line); }
.next-learning-link { display:flex; gap:18px; align-items:center; margin:14px 0; min-height:100px; }
.next-learning-link>img { width:96px; height:80px; object-fit:cover; border-radius:4px; }
.next-learning-link>span { min-width:0; }
.next-learning-link strong { display:block; font-size:18px; font-weight:600; line-height:1.6; }
.next-learning-link>span>span { display:flex; align-items:center; gap:8px; font-size:13px; margin-top:8px; }
.next-learning-link svg { width:15px; height:15px; }
.dashboard--formats { padding:26px 22px; }
.dashboard--formats>.eyebrow { font-size:18px; color:#f4e1ac; margin:0 0 3px; }
.dashboard-caption { font-size:13px; color:#d2dce0; margin:0 0 22px; }
.format-metrics { display:grid; grid-template-columns:1fr 1fr; gap:24px 20px; }
.format-metric { min-width:0; }
.format-metric .stat-label { display:flex; align-items:center; gap:5px; font-size:12px; color:#e0e5e8; }
.format-metric .stat-label svg { width:15px; height:15px; }
.format-metric>strong { display:block; font-size:34px; font-weight:500; line-height:1.7; }
.format-metric>strong>span { font-size:17px; color:#d3dde0; font-weight:400; }
.format-metric small { font-size:12px; margin-left:3px; }
.format-metric>progress { display:block; width:100%; height:4px; appearance:none; border:0; background:#ffffff30; border-radius:4px; overflow:hidden; }
.format-metric>progress::-webkit-progress-bar { background:#ffffff30; }
.format-metric>progress::-webkit-progress-value { background:#dfc780; }
.format-metric>progress::-moz-progress-bar { background:#dfc780; }
.progress-note { color:#5d707b; font-size:12px; margin:12px 0 28px; line-height:1.8; }
.path-intro { font-size:14px; color:#5d707b; margin:8px 0 0; }
.learning-path h3>.path-title-link { display:grid; grid-template-columns:minmax(0,1fr) 16px; align-items:center; column-gap:16px; min-height:44px; }
.path-title-text { display:block; min-width:0; text-align:left; }
.learning-path h3>a>svg { width:16px; height:16px; flex-shrink:0; }
.path-chapters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:12px 0; }
.path-chapters>a { min-height:44px; display:flex; justify-content:center; align-items:center; gap:4px; font-size:13px; color:var(--ink); background:#eeeee7; border:1px solid #cfd5d0; border-radius:5px; }
.path-chapters>a.listened { background:#e9eee6; color:#355f4d; border-color:#aebeb0; }
.path-chapters>a:hover { border-color:var(--gold); }
.path-chapters>a svg { width:13px; height:13px; }
.path-formats { display:flex; flex-wrap:wrap; gap:4px 18px; margin:0 0 10px; }
.path-formats>a { display:flex; align-items:center; gap:6px; min-height:44px; font-size:14px; }
.path-formats svg { width:16px; height:16px; }
.path-formats span { color:#526776; font-size:12px; }
.learning-path .text-link { min-height:44px; font-size:14px; }
@media (min-width:768px) {
  .book--ready .format-tags { max-width:310px; gap:8px; }
  .format-tags a { flex-direction:row; gap:5px; min-height:46px; }
  .format-tags a>svg { display:block; width:14px; height:14px; }
  .book-resume { font-size:13px; max-width:310px; }
  .figure-overview { gap:20px; }
  .figure-overview img { aspect-ratio:1.35; }
  .figure-thumb-title { font-size:15px; }
  .figure-thumb-meta { font-size:14px; }
  .selected-figure { max-width:760px; margin-inline:auto; }
  .reflection { padding:32px; }
  .format-metric .stat-label { font-size:14px; }
  .dashboard--formats { max-width:700px; padding:30px; }
  .path-chapters { max-width:400px; }
}
@media (max-width:359px) {
  .figure-overview { gap:7px; }
  .figure-thumb-meta,.figure-thumb-title { font-size:12px; }
  .path-chapters { gap:5px; }
  .path-chapters>a { font-size:12px; gap:2px; }
  .dashboard--formats { padding:22px 16px; }
  .format-metrics { gap:20px 12px; }
  .format-metric .stat-label { font-size:11px; gap:3px; }
  .next-learning-link { gap:12px; }
  .next-learning-link>img { width:72px; height:72px; }
  .next-learning-link strong { font-size:17px; }
}
@media (max-width:359px) {
  .book--ready .format-tags { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .book--ready .format-tags a:last-child { grid-column:1 / -1; flex-direction:row; gap:5px; min-height:44px; }
}

/* Account access fits the adopted LAB header and learning record screen. */
.topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:1050px; margin:auto; }
.topbar>a:first-child { flex:1; min-width:0; margin:0; }
.topbar .account-entry { display:flex; flex-direction:column; justify-content:center; flex:0 0 auto; gap:3px; min-width:52px; min-height:48px; margin:0; font-size:12px; line-height:1.4; color:var(--ink); }
.topbar .account-entry svg { width:21px; height:21px; }
.topbar .account-entry span { padding:0; border:0; font-size:11px; font-weight:500; letter-spacing:0; }
.topbar img { width:min(100%,245px); height:auto; }
.account-panel { margin:0 0 32px; padding:24px 0 28px; border-bottom:1px solid var(--line); scroll-margin-top:100px; }
.account-panel>.eyebrow { font-size:11px; letter-spacing:.1em; margin:0 0 8px; }
.account-panel h2 { font-size:21px; line-height:1.7; margin:0 0 10px; }
.account-panel>p { font-size:14px; line-height:1.9; }
#google-signin { width:100%; max-width:340px; min-height:0; margin:20px 0 10px; }
#google-login-status { color:#596e79; font-size:13px; min-height:24px; margin:8px 0; }
.google-pending { width:100%; max-width:340px; min-height:46px; padding:10px; border:1px solid #bcc7c8; border-radius:5px; font-size:15px; font-weight:500; background:#f0f1ec; color:#6e7b80; cursor:default; }
.account-panel .account-local-note { font-size:12px; color:#586d76; line-height:1.9; margin:14px 0 10px; }
.account-person { display:flex; align-items:center; gap:14px; }
.account-avatar { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--navy); color:#e3cb8d; flex-shrink:0; }
.account-avatar svg { width:24px; height:24px; }
.account-person>div { min-width:0; }
.account-person h2 { margin:0 0 2px; font-size:18px; }
.account-person p { font-size:13px; margin:0; overflow-wrap:anywhere; color:#5b6e77; }
.account-panel .quiet { font-size:13px; min-height:44px; }
.import-records { border-top:1px solid var(--line); padding-top:14px; margin-top:20px; font-size:14px; }
.import-records .quiet { width:100%; line-height:1.7; }
.auth-gate { padding-bottom:0; }
.auth-gate #nav { display:none; }
.auth-gate .page { max-width:560px; padding-top:20px; }
.auth-gate .page-title { font-size:25px; }
.auth-gate .account-entry { display:none; }
@media (max-width:359px) {
  .topbar { gap:10px; }
  .topbar img { max-width:210px; }
  .topbar .account-entry { min-width:45px; }
}

/* Return visits begin with the learner's continuation, while the first cover stays intact. */
.home-return { padding-top:12px; }
.home-return-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.home-return-heading h1 { font-size:22px; font-weight:600; line-height:1.5; }
.cover-link { min-height:44px; padding:5px 0 5px 12px; border:0; background:none; font-size:13px; color:var(--muted); text-decoration:underline; text-underline-offset:5px; }
.home-return .resume { max-width:680px; padding:22px 20px 12px; border:1px solid #dfe2dc; border-radius:12px; background:#fffefa; box-shadow:0 5px 20px #132b3c05; }
.home-return .resume-label { font-size:13px; color:var(--gold); margin-bottom:9px; }
.home-return .resume h2 { font-size:25px; line-height:1.55; }
.resume-chapters { display:flex; gap:6px; list-style:none; padding:0; margin:19px 0 0; }
.resume-chapters li { flex:1; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:5px; min-height:44px; padding:7px 2px; border-bottom:2px solid #d9ddd7; color:var(--muted); font-size:13px; }
.resume-chapters b { font-family:'Roboto',sans-serif; font-weight:500; }
.resume-chapters svg { width:15px; height:15px; flex-shrink:0; }
.resume-chapters .is-complete { color:#426450; border-color:#849a86; }
.resume-chapters .is-current { color:var(--navy); border-color:var(--gold); background:#f5f0e3; }
.resume-chapters small { width:100%; text-align:center; font-size:10px; line-height:1.2; color:#80601f; }
.home-content .home-progress { margin:20px 0 0; padding:8px 0 18px; max-width:680px; font-size:13px; }
.home-return .resume-location { margin-top:17px; font-size:13px; }
.home-return .resume .primary { min-height:56px; margin-top:18px; font-size:16px; }
.home-return .resume-alternatives { margin-top:7px; }
.home-return .resume-alternatives a { font-size:13px; }
.home-content>.section { margin-top:32px; }

/* Current position is part of the sequence, not a second navigation bar. */
.sequence-location { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:7px 12px; padding:11px 0 13px; margin:0 0 8px; border-bottom:1px solid var(--line); font-size:13px; color:var(--navy); }
.sequence-location>span:first-child { font-weight:600; }
.sequence-location small,.sequence-location>span:last-child { font-size:12px; font-weight:400; color:var(--muted); }
.sequence-step.is-current>.step-trigger { background:linear-gradient(90deg,transparent 40px,#f1efe5 40px); border-radius:8px; }
.step-trigger { padding-right:9px; }
.is-current .step-letter { border-color:var(--gold); background:var(--navy); color:#e0c98d; }
.step-letter svg { width:18px; height:18px; }
.is-complete:not(.is-current) .step-letter { background:#eef2eb; }
.step-state { font-size:12px; line-height:1.7; }
.is-current .step-state { color:#775b1d; font-weight:600; }
.is-complete:not(.is-current) .step-state { color:#426450; }
.inline-audio-player .next-audio-step { min-height:82px; padding:14px 15px; margin:13px 0 9px; border:1px solid var(--navy); border-radius:7px; background:var(--navy); color:#fff; gap:14px; }
.inline-audio-player .next-audio-step:hover { background:#16364b; }
.next-audio-step>span { display:flex; flex-direction:column; gap:3px; min-width:0; }
.next-audio-step small { font-size:11px; line-height:1.5; color:#dec994; }
.next-audio-step strong { margin:0; font-size:15px; line-height:1.6; font-weight:600; }
.next-audio-step>span>span { font-size:12px; line-height:1.6; color:#d2dbe0; }
.next-audio-step>svg { width:18px; height:18px; flex-shrink:0; color:#dec994; }
@media(max-width:360px) {
  .home-return .resume { padding-inline:16px; }
  .home-return .resume h2 { font-size:22px; }
  .home-return-heading h1 { font-size:21px; }
  .resume-chapters li { font-size:12px; }
  .sequence-step.is-current>.step-trigger { background:linear-gradient(90deg,transparent 35px,#f1efe5 35px); }
  .step-trigger { padding-right:6px; }
  .step-state { font-size:11px; }
  .next-audio-step strong { font-size:14px; }
}
@media(min-width:760px) {
  .home-return .resume { padding:30px 32px 18px; }
  .home-return .resume h2 { font-size:30px; }
  .home-return-heading { max-width:680px; }
}
.step-letter { position:relative; }
.step-letter i { position:absolute; right:-5px; bottom:-4px; width:15px; height:15px; display:grid; place-items:center; border-radius:50%; background:#426450; color:#fff; border:1px solid var(--paper); }
.step-letter i svg { width:10px; height:10px; }

/* The shelf offers one direct availability filter instead of three competing boxes. */
body[data-page="shelf"] .page-title { margin-bottom:8px; }
.shelf-overview { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; margin:0 0 22px; font-size:12px; color:var(--muted); }
.shelf-overview>span:first-child { color:var(--ink); font-size:13px; }
.shelf-overview strong { font:500 22px 'Roboto',sans-serif; margin:0 4px; }
.shelf-availability { margin:3px 0 26px; border-bottom:1px solid var(--line); }
.shelf-availability label { position:relative; display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:76px; padding:12px 0; cursor:pointer; }
.shelf-availability label>span:first-child { font-size:15px; font-weight:500; line-height:1.65; }
.shelf-availability small { display:block; margin-top:2px; font-size:12px; font-weight:400; color:var(--muted); }
.shelf-availability input { position:absolute; right:0; top:50%; transform:translateY(-50%); width:48px; height:44px; margin:0; opacity:0; cursor:pointer; }
.availability-track { position:relative; flex:0 0 44px; height:26px; border:1px solid #aeb9bd; border-radius:20px; background:#e1e5e2; transition:background .18s; pointer-events:none; }
.availability-track::after { content:''; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #102a3b26; transition:transform .18s; }
.shelf-availability input:checked+.availability-track { background:var(--navy); border-color:var(--navy); }
.shelf-availability input:checked+.availability-track::after { transform:translateX(18px); background:#dcc58c; }
.shelf-availability input:focus-visible+.availability-track { outline:3px solid var(--gold); outline-offset:4px; }
.book--ready .format-tags a>svg { display:block; width:17px; height:17px; margin-bottom:3px; color:var(--gold); }
.format-name { font-size:17px; }

/* A compact continuation with the actual cover anchors the home in the library. */
.home-return { padding-top:12px; }
.resume-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:17px; }
.resume-topline .resume-label { margin:0; font-size:13px; }
.resume-summary { display:grid; grid-template-columns:88px minmax(0,1fr); align-items:center; gap:16px; }
.resume-cover { display:block; width:88px; height:auto; aspect-ratio:1.39; object-fit:cover; border-radius:4px; }
.resume-category { font-size:11px; line-height:1.5; margin:0 0 5px; color:var(--gold); }
.resume-summary h2 { font-size:21px; line-height:1.55; margin:0; }
.home-content .resume.resume-home { max-width:720px; padding:19px 20px 18px; border:0; border-radius:10px; color:#f5f5ee; background:linear-gradient(105deg,#0b2236 36%,#0b2236f0),url('/assets/hero-lab-foil-v03-20261107.png') right 48%/cover; box-shadow:0 8px 24px #0b22360d; }
.resume-home .resume-label { color:#dec68d; font-weight:500; }
.resume-home .cover-link { min-height:32px; padding:0 0 0 8px; font-size:11px; color:#c5ced2; text-decoration:none; }
.resume-home .cover-link:hover { text-decoration:underline; }
.resume-home .resume-category { color:#c1b087; }
.home-content .resume-home h2 { color:#fff; font-size:21px; line-height:1.55; }
.home-content .resume-home .resume-location { margin-top:18px; padding-top:13px; border-top:1px solid #ffffff21; font-size:13px; line-height:1.8; color:#cfdae0; }
.resume-home .resume-location>span>span { color:#b9c7cf; }
.resume-home .resume-location b { color:#f5f5ee; font-weight:500; }
.resume-home .resume-location>svg { color:#dec68d; }
.home-content .resume-home .resume-action { min-height:52px; margin-top:15px; padding:12px 16px; border-radius:6px; background:#dcc58c; color:var(--navy); font-size:16px; box-shadow:none; }
.resume-home .resume-action:hover { background:#e5d09b; }
.resume-home .resume-action svg:last-child { color:var(--navy); }
.home-content .resume-home .resume-alternatives { margin-top:10px; gap:10px; }
.home-content .resume-home .resume-alternatives a { flex:1; min-height:40px; border:1px solid #ffffff2b; border-radius:6px; font-size:13px; color:#dae1e3; }
.resume-home .resume-alternatives a:hover { background:#ffffff0d; }
.resume-home .resume-chapters { margin-top:18px; }
.resume-home .resume-chapters li { border-color:#ffffff30; color:#bac8ce; }
.resume-home .resume-chapters .is-complete { color:#d7dfcc; border-color:#a4b18d66; }
.resume-home .resume-chapters .is-current { color:#efdaad; border-color:#dcc58c; background:#dcc58c14; }
.resume-home .resume-chapters small { color:#dec68d; }
.home-content .home-progress { max-width:720px; }
@media(max-width:360px) {
  .home-content .resume.resume-home { padding-inline:16px; }
  .resume-summary { grid-template-columns:72px minmax(0,1fr); gap:12px; }
  .resume-cover { width:72px; }
  .home-content .resume-home h2,.resume-summary h2 { font-size:19px; }
  .shelf-availability label>span:first-child { font-size:14px; }
  .shelf-overview { row-gap:0; }
}
@media(min-width:760px) {
  .home-content .resume.resume-home { padding:24px 28px 22px; }
  .resume-summary { grid-template-columns:112px minmax(0,1fr); gap:22px; }
  .resume-cover { width:112px; }
  .home-content .resume-home h2 { font-size:27px; }
  .resume-category { font-size:13px; }
  .shelf-overview { max-width:690px; }
  .shelf-availability { max-width:690px; }
}
@media(prefers-reduced-motion:reduce) { .availability-track,.availability-track::after { transition:none; } }

/* Learning invitations: a brass compass for moving on, paper edges for choosing a format. */
.direction-arrow { display:grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border:1px solid currentColor; border-radius:50%; font-style:normal; }
.direction-arrow svg { width:13px; height:13px; }
.lab-action .action-emblem { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; font-style:normal; }
.lab-action .action-emblem svg { width:34px; height:34px; }
.lab-action .action-copy { display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; text-align:left; }
.lab-action .action-label { font-size:17px; line-height:1.5; font-weight:600; }
.lab-action .action-hint { display:block; margin:0; opacity:1; font-size:12px; font-weight:400; line-height:1.6; color:inherit; }
.home-content .resume-home .lab-action,.resume.compact .lab-action { position:relative; gap:11px; min-height:78px; padding:13px 15px; border-radius:3px; border-bottom:3px solid #a98a4c; background:linear-gradient(115deg,#e6d4a4,#d8bf82); color:var(--navy); }
.home-content .resume-home .lab-action::after { content:''; position:absolute; top:0; right:0; width:8px; height:8px; background:linear-gradient(45deg,#bda05e 50%,#0b2236 51%); }
.home-content .resume-home .lab-action .direction-arrow,.resume.compact .lab-action .direction-arrow { width:28px; height:28px; flex-basis:28px; border-color:#0b223640; }
.home-content .resume-home .lab-action .action-hint { color:#3a4350; }
.home-content .resume-home .resume-alternatives { gap:10px; margin-top:14px; }
.home-content .resume-home .format-invitation { position:relative; display:grid; grid-template-columns:28px minmax(0,1fr); gap:9px; align-items:center; justify-content:start; min-height:71px; padding:11px 10px; border:0; border-top:1px solid #c7ba914d; border-bottom:1px solid #c7ba914d; border-radius:0; background:#fffefa08; text-align:left; }
.format-invitation .invitation-icon { display:grid; place-items:center; width:28px; height:34px; font-style:normal; border:1px solid #cbb57b7a; border-radius:2px 2px 6px 2px; color:#dfc889; }
.format-invitation .invitation-icon svg { width:18px; height:18px; }
.format-invitation>span { min-width:0; }
.format-invitation strong { display:block; font-size:14px; font-weight:600; line-height:1.5; }
.format-invitation small { display:block; margin-top:3px; color:#b8c9d1; font-size:11px; line-height:1.6; }
.resume.compact .format-invitation { text-align:left; justify-content:flex-start; }
.resume.compact .invitation-icon { color:var(--gold); }
.resume.compact .format-invitation small { color:var(--muted); }
.library-index-link { gap:9px; color:var(--navy); }
.library-index-link .direction-arrow { width:27px; height:27px; flex-basis:27px; border-color:#b39a5e80; color:var(--gold); }
.library-index-link .direction-arrow svg { width:11px; }

.shelf-availability { border:0; border-top:1px solid #a98a4c66; border-bottom:1px solid #a98a4c66; background:linear-gradient(110deg,#f4efdf,#faf8f1); }
.shelf-availability label { display:grid; grid-template-columns:34px minmax(0,1fr) 44px; gap:12px; min-height:87px; padding:13px 13px; }
.shelf-availability label>span:first-of-type { font-size:15px; color:var(--navy); }
.availability-emblem { display:grid; place-items:center; width:34px; height:38px; font-style:normal; color:var(--gold); }
.availability-emblem svg { width:29px; height:29px; }
.shelf-availability input { right:12px; }
.shelf-availability small { font-size:12px; color:#657079; }
.shelf-availability:has(input:checked) { border-color:#0b223680; background:#e9ede8; }
.shelf-availability:has(input:checked) .availability-emblem { color:var(--navy); }

/* The ready content has one primary invitation, with two quieter ways to explore it. */
.book-actions { margin-top:14px; }
.book-listen { position:relative; display:grid; grid-template-columns:17px minmax(0,1fr) 12px; gap:7px; align-items:center; width:100%; min-height:65px; padding:11px 9px; background:var(--navy); color:#fff; border-bottom:2px solid #b49854; border-radius:3px; }
.book-listen::after { content:''; position:absolute; top:0; right:0; width:6px; height:6px; background:linear-gradient(45deg,#b49854 50%,var(--paper) 51%); }
.book-listen>svg { width:17px; height:17px; color:#e0c98d; }
.book-listen>svg:last-child { width:12px; height:12px; }
.book-listen>span { font-size:14px; font-weight:600; line-height:1.5; min-width:0; }
.book-listen small { display:block; font-size:11px; font-weight:400; line-height:1.5; color:#c5d0d5; margin-top:3px; }
.book-other-formats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding-top:7px; }
.book-other-formats a { display:flex; justify-content:center; align-items:center; gap:6px; min-width:0; min-height:55px; padding:5px 0; border-bottom:1px solid #bcad8973; color:var(--navy); }
.book-other-formats svg { flex-shrink:0; width:17px; height:17px; color:var(--gold); }
.book-other-formats span { font-size:14px; line-height:1.4; font-weight:500; }
.book-other-formats small { display:block; font-size:11px; line-height:1.5; font-weight:400; color:var(--muted); }

.format-switch { padding:9px 0; gap:9px; }
.format-switch .format-bookmark { position:relative; display:flex; flex-direction:column; gap:4px; min-height:91px; padding:11px 5px 10px; border-radius:3px 3px 0 0; border:1px solid #c8c9bc; border-bottom:3px solid #b9b39b; background:linear-gradient(125deg,#fffefa,#f3efdf); box-shadow:2px 2px 0 #d7d7c44d; }
.format-bookmark::after { content:''; position:absolute; right:0; bottom:0; border-left:9px solid transparent; border-bottom:9px solid #cfc3a0; }
.format-switch .format-bookmark[aria-current] { border-color:var(--navy); border-bottom-color:#bba366; border-radius:3px 3px 0 0; background:var(--navy); color:#fff; box-shadow:2px 2px 0 #c7b78980; }
.format-switch .format-bookmark[aria-current]::after { border-bottom-color:#d8bd79; }
.format-title { display:flex; align-items:center; gap:7px; }
.format-title svg { width:20px; height:20px; color:var(--gold); }
.format-title strong { font-size:17px; line-height:1.4; font-weight:600; }
.format-cue { font-size:12px; line-height:1.5; font-weight:400; color:#50606c; }
.format-switch .format-meta { font-size:11px; line-height:1.5; color:#6d736e; }
.format-switch [aria-current] .format-title svg { color:#dfc889; }
.format-switch [aria-current] .format-cue { color:#eee3c8; }
.format-switch [aria-current] .format-meta { color:#adbec9; }
.learning-sequence { margin-top:18px; }
.sequence-intro { margin-bottom:10px; }
.sequence-location { padding-top:8px; padding-bottom:10px; }

.inline-audio-player .chapter-invitation { display:grid; grid-template-columns:28px minmax(0,1fr) 26px; gap:10px; padding:15px 12px; border-radius:3px; border-bottom:3px solid #ac914f; background:linear-gradient(125deg,#112f44,#0b2236); }
.next-chapter-letter { display:grid; place-items:center; align-self:start; width:28px; min-height:32px; margin-top:4px; font:500 25px 'Roboto',sans-serif; color:#dfc889; font-style:normal; border-bottom:1px solid #bca360; }
.next-chapter-letter svg { width:24px; height:24px; }
.chapter-invitation>.direction-arrow { width:26px; height:26px; min-width:0; color:#c8b278; border-color:#bda56666; }
.chapter-invitation .direction-arrow svg { width:12px; height:12px; }
.chapter-invitation>span { display:flex; flex-direction:column; gap:4px; min-width:0; }
.chapter-invitation>span>strong { font-size:15px; }
.chapter-invitation>span>span { font-size:12px; }
.lab-action:focus-visible,.format-invitation:focus-visible,.book-actions a:focus-visible,.format-bookmark:focus-visible,.chapter-invitation:focus-visible { outline:3px solid #b58c2e; outline-offset:4px; }
@media(hover:hover) {
  .lab-action,.book-listen,.format-invitation,.format-bookmark { transition:transform .18s,box-shadow .18s,background .18s; }
  .lab-action:hover,.book-listen:hover { transform:translateY(-2px); box-shadow:0 5px 12px #0b22361f; }
  .book-listen:hover { color:#fff; background:#15394f; }
  .home-content .resume-home .format-invitation:hover { background:#fffefa12; }
  .format-switch .format-bookmark:hover { transform:translateY(-2px); }
  .direction-arrow svg { transition:transform .18s; }
  a:hover>.direction-arrow svg,button:hover>.direction-arrow svg { transform:translateX(2px); }
}
@media(max-width:360px) {
  .home-content .resume-home .lab-action { padding-inline:11px; gap:8px; }
  .lab-action .action-emblem { flex-basis:30px; width:30px; }
  .lab-action .action-emblem svg { width:29px; height:29px; }
  .lab-action .action-label { font-size:15px; }
  .lab-action .action-hint { font-size:11px; }
  .home-content .resume-home .format-invitation { grid-template-columns:24px minmax(0,1fr); gap:7px; padding-inline:8px; }
  .format-invitation .invitation-icon { width:24px; height:31px; }
  .shelf-availability label { padding-inline:10px; gap:9px; grid-template-columns:28px minmax(0,1fr) 42px; }
  .availability-emblem { width:28px; }
  .availability-emblem svg { width:25px; }
  .shelf-availability label>span:first-of-type { font-size:14px; }
  .shelf-availability small { font-size:11px; }
  .book-listen { gap:6px; padding-inline:8px; grid-template-columns:15px minmax(0,1fr) 10px; }
  .book-listen>svg { width:15px; }
  .book-listen>svg:last-child { width:10px; }
  .book-other-formats { gap:6px; }
  .book-other-formats a { gap:4px; }
  .book-other-formats svg { width:15px; height:15px; }
  .format-switch { gap:7px; }
  .format-switch .format-bookmark { min-height:87px; padding-inline:3px; }
  .format-title { gap:5px; }
  .format-title strong { font-size:16px; }
  .format-title svg { width:18px; height:18px; }
  .format-cue,.format-switch .format-meta { font-size:11px; }
  .inline-audio-player .chapter-invitation { grid-template-columns:25px minmax(0,1fr) 23px; gap:8px; padding-inline:10px; }
  .next-chapter-letter { width:25px; font-size:22px; }
  .chapter-invitation>.direction-arrow { width:23px; height:23px; }
}
@media(prefers-reduced-motion:reduce) {
  .lab-action,.book-listen,.format-invitation,.format-bookmark,.direction-arrow svg { transition:none; transform:none; }
}

/* Keep reading groups intact and cap desktop sections at a comfortable width. */
@media(min-width:900px) {
  body[data-page="mypage"] .page { width:min(100%,840px); }
  body[data-page="mypage"] .dashboard--formats,
  body[data-page="mypage"] .resume.compact { max-width:none; width:100%; }
  .learning-path h3 { font-size:22px; line-height:1.6; margin:7px 0 10px; }
  .learning-path li { padding-bottom:30px; }
  .path-chapters { max-width:480px; }
  .path-chapters>a { min-height:48px; font-size:14px; }
  .path-formats { gap:6px 24px; }
  .path-formats>a,.learning-path .text-link { font-size:15px; }
  .home-content>.section { max-width:720px; }
  body[data-page="shelf"] .shelf-overview,
  body[data-page="shelf"] .shelf-availability { max-width:none; }
}

/* Podcast — a casual journal of Riki's own voice, independent of the course. */
.podcast-page,.podcast-detail { max-width:860px; }
.podcast-heading { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:24px; }
.podcast-heading .eyebrow { flex-basis:100%; margin:0 0 -6px; font-size:12px; letter-spacing:.12em; }
.podcast-heading .page-title { margin:0; }
.sample-tag { display:inline-flex; align-items:center; background:#eae5d9; border:1px solid #d8cfb9; color:#725c2f; font-size:12px; font-weight:500; border-radius:99px; padding:3px 10px; white-space:nowrap; }
.voice-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); background:var(--navy); color:white; overflow:hidden; border-radius:16px; }
.voice-intro>img { height:100%; min-height:255px; width:100%; object-fit:cover; object-position:43% center; }
.voice-intro>div { padding:28px 24px; align-self:center; }
.voice-intro>div>p:first-child { color:var(--gold-light); font-size:13px; font-weight:500; margin-bottom:12px; }
.voice-intro h2 { font-size:clamp(22px,3.5vw,29px); line-height:1.65; font-weight:600; }
.voice-intro h2+p { color:#c6d0d6; margin-top:15px; font-size:13px; line-height:1.9; }
.sample-notice { border-left:3px solid var(--gold); margin:25px 0 36px; padding:0 0 0 14px; }
.sample-notice strong { font-size:14px; font-weight:600; }
.sample-notice p { margin-top:5px; font-size:13px; color:#63717b; line-height:1.8; }
.voice-feed-heading { display:flex; gap:16px; align-items:center; margin-bottom:18px; }
.voice-feed-heading h2 { font-size:19px; font-weight:600; }
.voice-feed-heading>span { color:var(--muted); font-size:14px; }
.voice-feed { display:grid; gap:20px; }
.voice-note { background:#fffefa; border:1px solid #deded6; border-radius:14px; overflow:hidden; }
.voice-note-body { padding:23px 24px 21px; min-width:0; }
.voice-note-meta { display:flex; gap:12px; justify-content:space-between; align-items:center; margin-bottom:13px; color:#697782; font-size:13px; }
.voice-note-meta>span { display:flex; align-items:center; gap:7px; }
.voice-note-meta svg { width:17px; height:17px; }
.voice-note-meta small { font-size:11px; color:#8a918f; }
.voice-note h2 { font-size:21px; line-height:1.65; font-weight:600; }
.voice-note h2 a { display:block; }
.voice-note-body>p { color:#697782; font-size:14px; margin-top:10px; line-height:1.9; }
.voice-note-bottom { display:flex; gap:16px; align-items:center; justify-content:space-between; margin-top:22px; }
.voice-author { display:flex; align-items:center; gap:8px; color:#687783; font-size:13px; white-space:nowrap; }
.voice-author img,.episode-author>img { width:36px; height:36px; object-fit:cover; object-position:50% 27%; border-radius:50%; }
.voice-listen { display:flex; gap:10px; align-items:center; border:0; border-radius:99px; background:var(--navy); color:white; min-height:46px; padding:5px 6px 5px 18px; font-size:14px; font-weight:500; }
.voice-listen:hover { background:#173a52; color:white; }
.voice-listen i { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; color:var(--gold-light); background:#ffffff0e; }
.voice-listen svg { width:16px; height:16px; }
.voice-note-poster { display:block; position:relative; background:var(--navy); }
.voice-note-poster>img { width:100%; aspect-ratio:16/8; object-fit:cover; object-position:50% 40%; }
.voice-note-poster>span { position:absolute; left:16px; bottom:14px; display:flex; align-items:center; gap:7px; padding:7px 13px; border-radius:99px; background:#0b2236eb; color:white; font-size:12px; }
.voice-note-poster svg { width:14px; height:14px; color:var(--gold-light); }
.podcast-footnote { margin-top:26px; color:#76828a; font-size:13px; line-height:1.9; }
.podcast-detail>.back { margin-bottom:24px; font-size:14px; }
.episode-meta { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:13px; margin-bottom:13px; }
.podcast-detail>h1 { font-size:clamp(25px,4vw,32px); line-height:1.65; }
.episode-author { display:flex; align-items:center; gap:10px; margin:20px 0 28px; }
.episode-author>img { width:43px; height:43px; }
.episode-author strong,.episode-author small { display:block; }
.episode-author strong { font-size:14px; font-weight:600; }
.episode-author small { color:#75838c; font-size:12px; }
.voice-player { background:var(--navy); color:white; padding:28px 30px 20px; border-radius:16px; }
.voice-player-caption { color:var(--gold-light); font-size:12px; letter-spacing:.04em; }
.voice-player-track { display:flex; gap:14px; align-items:center; margin:19px 0 26px; }
.voice-player-track>span { flex:0 0 48px; height:48px; display:grid; place-items:center; background:#ffffff10; color:var(--gold-light); border-radius:50%; }
.voice-player-track small { display:block; color:#aabcc8; font-size:11px; margin-bottom:2px; }
.voice-player-track strong { display:block; font-size:17px; font-weight:500; line-height:1.7; }
.voice-seek input { width:100%; accent-color:var(--gold-light); cursor:pointer; min-height:30px; margin:0; }
.voice-times { display:flex; justify-content:space-between; font-size:12px; color:#bbcad2; font-variant-numeric:tabular-nums; }
.voice-controls { display:flex; justify-content:center; align-items:center; gap:26px; margin:20px 0; }
.voice-controls>button { display:flex; gap:1px; justify-content:center; align-items:center; padding:0; border:0; background:transparent; color:#c7d3db; min-width:44px; min-height:44px; font-size:12px; }
.voice-controls>button>svg { width:18px; }
.voice-controls>.voice-main-play { border-radius:50%; width:74px; height:74px; background:var(--gold-light); color:var(--navy); box-shadow:0 0 0 7px #e3c98708; }
.voice-controls>.voice-main-play svg { width:26px; height:26px; }
.voice-speed { display:flex; align-items:center; justify-content:center; gap:12px; color:#bbcad2; font-size:13px; }
.voice-speed select { min-height:44px; min-width:82px; font-size:16px; padding:5px 8px; background:#102c41; color:white; border:1px solid #4b6274; border-radius:7px; }
.voice-status { min-height:1.8em; font-size:12px; text-align:center; color:var(--gold-light); margin-top:10px; }
.voice-video video { width:100%; display:block; max-height:500px; border-radius:12px; background:#091927; }
.voice-video>p { font-size:12px; color:var(--muted); margin-top:10px; }
.episode-description { padding:30px 0; }
.episode-description h2 { font-size:17px; font-weight:600; margin-bottom:10px; }
.episode-description>p { font-size:15px; line-height:1.9; }
.episode-description>.episode-sample-note { font-size:13px; color:var(--muted); margin-top:14px; }
.next-voice { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.next-voice small { display:block; font-size:12px; color:var(--gold); margin-bottom:5px; }
.next-voice strong { display:block; font-size:16px; font-weight:600; }
.next-voice>svg { color:var(--gold); width:20px; }
.voice-back-list { display:block; text-align:center; min-height:48px; padding:12px; margin:20px 0 0; color:#62727d; font-size:14px; }
@media(min-width:760px) {
  .voice-feed { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .voice-note--video { grid-column:2; grid-row:1 / span 2; }
  .voice-note-body { padding:24px; }
  .voice-note h2 { font-size:20px; }
  .podcast-detail { max-width:760px; }
}
@media(max-width:480px) {
  .voice-intro { grid-template-columns:110px minmax(0,1fr); }
  .voice-intro>img { min-height:220px; object-position:47% center; }
  .voice-intro>div { padding:22px 17px; }
  .voice-intro h2 { font-size:22px; line-height:1.65; }
  .voice-intro>div>p:first-child { font-size:11px; margin-bottom:9px; }
  .voice-intro h2+p { font-size:12px; margin-top:11px; }
  .voice-intro h2+p br { display:none; }
  .voice-note-body { padding:20px; }
  .voice-note h2 { font-size:20px; }
  .voice-player { padding:23px 22px 16px; }
  .voice-note-meta { font-size:12px; }
}
@media(max-width:350px) {
  .voice-intro { grid-template-columns:90px minmax(0,1fr); }
  .voice-intro>div { padding-inline:14px; }
  .voice-intro h2 { font-size:20px; }
  .voice-note-body { padding:18px 16px; }
  .voice-note-bottom { gap:8px; }
  .voice-author { font-size:12px; }
  .voice-listen { font-size:13px; padding-left:13px; }
  .voice-controls { gap:18px; }
}

/* Approved suit portrait; retain the torso rather than zooming the face. */
.voice-intro { margin-bottom:32px; }
.voice-intro>img { object-position:50% 25%; }
.voice-author img,.episode-author>img { object-position:50% 30%; }
@media(max-width:480px) { .voice-intro>img { object-position:50% center; } }


/* One content, three formats: one enclosing surface connects cover, title and actions. */
.book.book--ready { position:relative; display:flex; flex-direction:column; align-items:stretch; gap:0; background:#fbf7ec; border:1px solid #d8ceb8; border-radius:3px 10px 10px 3px; overflow:hidden; box-shadow:2px 3px 0 #e8e0cf,4px 5px 0 -1px #c8bea8,0 8px 17px #172c3d09; }
.book.book--ready::before { content:""; position:absolute; z-index:1; top:0; bottom:0; left:0; width:4px; background:linear-gradient(90deg,#102b40,#40515b99); pointer-events:none; }
.book--ready .book-cover-link { margin:0; flex:0 0 auto; overflow:hidden; }
.book--ready .book-cover-link img { width:100%; aspect-ratio:1.39; border-radius:0; box-shadow:none; }
.book--ready>.book-body { display:flex; flex-direction:column; gap:0; width:100%; margin:0; padding:19px 20px 16px; flex:1; background:linear-gradient(90deg,#d9cfb544,#fbf7ec 15px); }
.book--ready .book-category { display:block; color:#8e743f; font-size:12px; font-weight:500; line-height:1.6; }
.book--ready h3 { font-size:20px; line-height:1.6; margin:6px 0 0; font-weight:600; }
.book-contents { margin-top:18px; }
.book-contents-label { font-size:12px; font-weight:500; color:#8b7444; line-height:1.65; margin:0 0 10px; padding-bottom:7px; border-bottom:1px solid #d9cfb8; }
.book--ready .book-actions { margin:0; }
.book--ready .book-listen { min-height:64px; padding:10px 13px; gap:9px; border-radius:4px; grid-template-columns:19px minmax(0,1fr) 14px; }
.book--ready .book-listen::after { display:none; }
.book--ready .book-listen>span { font-size:16px; }
.book--ready .book-listen small { font-size:12px; margin-top:1px; }
.book--ready .book-listen>svg { width:19px; height:19px; }
.book--ready .book-listen>svg:last-child { width:13px; }
.book--ready .book-other-formats { gap:9px; padding-top:9px; }
.book--ready .book-other-formats a { background:#fffdf570; border:1px solid #d9cfb9; border-radius:4px; min-height:57px; padding:9px 7px; gap:8px; }
.book--ready .book-other-formats a:hover { background:#eae5d7; color:var(--navy); }
.book--ready .book-other-formats span { font-size:15px; line-height:1.5; }
.book--ready .book-other-formats small { font-size:12px; }
.book--ready .book-other-formats svg { width:19px; height:19px; }
.book--ready .book-resume { min-height:46px; max-width:none; width:100%; margin:15px 0 0; padding-top:10px; border-top:1px solid #e6e1d5; font-size:13px; gap:7px; color:#586e7b; }
.book.book--pending { background:#f1efe8; border:1px solid #e1ded5; border-radius:10px; overflow:hidden; }
.book--pending>div.pending-cover { border-radius:0; }
.book--pending>div:not(.pending-cover) { margin:0; padding:12px 14px 15px; }
.book--pending h3 { margin-bottom:0; }
@media(max-width:619px) {
  .book-grid { gap:22px 14px; }
  .book--ready { grid-column:1 / -1; }
  .book--ready>.book-body { padding:18px 18px 14px; }
  .book--ready h3 { font-size:21px; }
  .book--ready .book-cover-link img { aspect-ratio:1.39; }
  .book--pending h3 { font-size:16px; }
}
@media(max-width:350px) {
  .book--ready>.book-body { padding:16px 15px 12px; }
  .book--ready h3 { font-size:19px; }
  .book--ready .book-listen>span { font-size:15px; }
}
@media(min-width:760px) {
  .book-grid { gap:28px 22px; }
  .book--ready>.book-body { padding:18px 18px 15px; }
  .book--ready h3 { font-size:19px; }
  .book--ready .book-listen>span { font-size:15px; }
  .book-contents-label { font-size:11px; }
}

/* Compact lesson: a short format selector and one connected audio table of contents. */
.lesson-compact .lesson-heading { padding:14px 0 10px; }
.lesson-topline { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.lesson-compact .lesson-topline .back { min-height:40px; font-size:14px; }
.lesson-compact .lesson-category { margin:0; font-size:13px; }
.lesson-compact .lesson-heading h1 { font-size:24px; line-height:1.55; margin:8px 0 12px; font-weight:700; }
.lesson-compact .format-switch { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:6px 0; margin:0; border-bottom:1px solid #d7d7cb; background:var(--paper); }
.lesson-compact .format-switch .format-bookmark { display:flex; align-items:center; justify-content:center; min-height:52px; padding:10px 6px; border:0; border-bottom:2px solid transparent; border-radius:3px 3px 0 0; background:transparent; box-shadow:none; transform:none; }
.lesson-compact .format-bookmark::after { content:none; }
.lesson-compact .format-switch .format-bookmark[aria-current] { border-bottom-color:var(--gold-light); background:var(--navy); color:#fff; box-shadow:none; }
.lesson-compact .format-bookmark:hover { background:#edede5; }
.lesson-compact .format-title { gap:8px; }
.lesson-compact .format-title strong { font-size:16px; line-height:1.5; }
.lesson-compact .format-title svg { width:21px; height:21px; }
.lesson-compact .learning-sequence { margin-top:20px; max-width:none; }
.lesson-compact .sequence-heading { align-items:center; gap:10px; margin:0 0 12px; }
.lesson-compact .sequence-heading h2 { font-size:15px; font-weight:600; margin:0; line-height:1.5; }
.lesson-compact .sequence-heading h2>span { color:var(--muted); font-weight:400; font-size:13px; }
.lesson-compact .player-sequence { position:relative; display:flex; align-items:center; justify-content:flex-end; gap:7px; min-height:44px; margin:0; color:var(--muted); font-size:12px; cursor:pointer; }
.lesson-compact .player-sequence input { position:absolute; right:0; width:32px; height:24px; margin:0; opacity:0; z-index:1; cursor:pointer; }
.lesson-compact .player-sequence i { position:relative; width:32px; height:20px; border-radius:12px; border:1px solid #a4aeaf; background:#d4d9d5; }
.lesson-compact .player-sequence i::after { content:''; position:absolute; width:14px; height:14px; top:2px; left:2px; border-radius:50%; background:#fff; box-shadow:0 1px 3px #102b4033; transition:transform .18s; }
.lesson-compact .player-sequence input:checked~i { background:var(--navy); border-color:var(--navy); }
.lesson-compact .player-sequence input:checked~i::after { transform:translateX(12px); background:#e4cd8a; }
.lesson-compact .player-sequence input:focus-visible~i { outline:3px solid var(--gold); outline-offset:4px; }
.lesson-compact .sequence-steps { padding:0; margin:0; }
.lesson-compact .sequence-step { padding:0 0 14px; }
.lesson-compact .sequence-step:not(:last-child)::before { left:17px; top:40px; bottom:0; background:#c7c3af; }
.lesson-compact .sequence-step:not(:last-child)::after { left:14px; bottom:2px; }
.lesson-compact .step-trigger { grid-template-columns:36px minmax(0,1fr) 44px; align-items:center; gap:12px; min-height:112px; padding:14px 12px 14px 0; border-radius:4px; }
.lesson-compact .step-letter { position:relative; width:36px; height:36px; margin:0; font-size:18px; background:var(--paper); }
.lesson-compact .is-current .step-letter { background:var(--navy); border-color:var(--gold); color:#e8d293; }
.lesson-compact .is-current .step-copy { color:var(--navy); }
.lesson-compact .is-current .step-trigger { background:linear-gradient(90deg,transparent 43px,#ece6d54d 44px,#ece6d54d); }
.lesson-compact .is-expanded .step-trigger { background:linear-gradient(90deg,transparent 43px,#ece6d599 44px,#ece6d599); }
.lesson-compact .step-meta { gap:5px 9px; margin:0 0 5px; font-size:12px; line-height:1.4; }
.lesson-compact .step-meta>strong { font-size:13px; font-weight:500; color:#96742f; }
.lesson-compact .step-meta>time { margin-left:auto; color:var(--muted); font-size:12px; }
.lesson-compact .step-state { display:none; }
.lesson-compact .step-state:not(:empty) { display:inline; font-size:11px; color:#596b73; }
.lesson-compact .is-playing .step-state { color:var(--gold); }
.lesson-compact .step-title { font-size:16px; font-weight:600; line-height:1.6; }
.lesson-compact .step-title .title-chunk { display:inline; }
.lesson-compact .step-trigger .chapter-play { margin:0; width:44px; height:44px; min-width:44px; }
.lesson-compact .step-trigger:hover .step-title { text-decoration:none; }
.lesson-compact .step-trigger:focus-visible { outline:3px solid var(--gold); outline-offset:2px; }
.lesson-compact .step-controls { margin-left:48px; padding:0 0 8px; }
.lesson-compact .step-controls .audio-player { padding:12px 12px 0; background:#eeeee6; border-radius:0 0 4px 4px; }
.lesson-compact .inline-audio-player .scrubber { margin-top:4px; }
.lesson-compact .inline-audio-player .inline-options { margin:3px 0; }
.lesson-compact .player-state:empty,.lesson-compact .error:empty { display:none; }
.lesson-compact .inline-audio-player .chapter-invitation { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-height:52px; padding:10px 12px; margin-top:10px; border:0; border-bottom:2px solid #b49b5b; border-radius:2px; background:var(--navy); color:#fff; }
.lesson-compact .chapter-invitation .next-step-label { display:block; font-size:11px; color:#ccbd96; }
.lesson-compact .chapter-invitation strong { display:flex; align-items:center; gap:6px; margin:0; font-size:14px; }
.lesson-compact .chapter-invitation>svg { margin-left:auto; color:#e2cd91; width:17px; height:17px; }
.lesson-compact .chapter-invitation strong svg { width:17px; height:17px; }
.lesson-compact .figure-intro h2 { display:flex; align-items:center; gap:10px; font-size:15px; margin:22px 0 14px; }
.lesson-compact .figure-intro h2 span { font-size:13px; color:var(--muted); font-weight:400; }
.lesson-compact .figure-overview { margin-bottom:22px; }
.lesson-compact .figure-thumb-meta { margin-top:7px; }
.lesson-compact .selected-figure .figure-counter { font-size:13px; }
.lesson-compact .selected-figure .figure-title { font-size:20px; line-height:1.6; }
.lesson-compact .completion-button { min-height:52px; }
@media(min-width:760px) {
  .lesson-compact { max-width:790px; }
  .lesson-compact .lesson-heading { padding-top:20px; }
  .lesson-compact .lesson-heading h1 { font-size:30px; margin-bottom:18px; }
  .lesson-compact .format-switch .format-bookmark { min-height:56px; }
  .lesson-compact .learning-sequence { margin-top:26px; }
  .lesson-compact .step-trigger { min-height:114px; padding-right:18px; gap:16px; }
  .lesson-compact .step-title { font-size:19px; }
  .lesson-compact .step-controls { margin-left:52px; }
}
@media(max-width:360px) {
  .lesson-compact .lesson-heading h1 { font-size:22px; }
  .lesson-compact .format-title { gap:6px; }
  .lesson-compact .format-title strong { font-size:15px; }
  .lesson-compact .step-trigger { grid-template-columns:32px minmax(0,1fr) 44px; gap:9px; padding-right:5px; }
  .lesson-compact .step-letter { width:32px; height:32px; font-size:16px; }
  .lesson-compact .step-title { font-size:15px; }
  .lesson-compact .step-meta { gap:5px 7px; }
  .lesson-compact .step-meta>strong { font-size:12px; }
  .lesson-compact .step-meta>time { font-size:11px; }
  .lesson-compact .sequence-step:not(:last-child)::before { left:15px; }
  .lesson-compact .sequence-step:not(:last-child)::after { left:12px; }
  .lesson-compact .step-controls { margin-left:41px; }
  .lesson-compact .sequence-heading h2 { font-size:14px; }
}


/* 2026-11-08: My Page gives the learner one clear next action before records. */
body[data-page="mypage"] .page { width:min(100%,900px); }
.my-next { padding:24px; border:1px solid #d8d4c6; border-top:3px solid var(--gold); border-radius:10px; background:#fffefa; box-shadow:0 8px 28px #172c3d05; }
.my-next-heading,.my-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.my-next-heading { margin-bottom:23px; }
.my-next-heading h2 { font-size:19px; }
.my-next-heading>span,.my-section-heading>span { font-size:13px; color:#66757d; }
.my-next-content { display:grid; grid-template-columns:86px minmax(0,1fr); gap:17px; align-items:center; }
.my-next-content>img { width:86px; aspect-ratio:1.39; height:auto; object-fit:cover; border-radius:3px; }
.my-next-content p { font-size:12px; color:#96732f; margin:0 0 4px; }
.my-next-content h3 { font-size:21px; line-height:1.55; margin:0; }
.my-next-target { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; margin:24px 0 12px; }
.my-next-format { display:flex; align-items:center; gap:8px; font-size:14px; }
.my-next-format svg { width:18px; height:18px; color:#8c733c; }
.my-next-format b { font-weight:500; }
.my-next-position { font-size:12px; color:#687780; }
.my-next-action { display:flex; align-items:center; gap:14px; width:100%; min-height:80px; padding:16px 18px; background:var(--navy); color:#fff; border-radius:6px; border-bottom:3px solid #b19451; text-align:left; }
.my-next-action>i { width:39px; height:39px; border:1px solid #d5bd793d; border-radius:50%; display:grid; place-items:center; color:var(--gold-light); }
.my-next-action>i svg { width:19px; height:19px; }
.my-next-action>span { flex:1; min-width:0; }
.my-next-action strong { display:block; font-size:18px; font-weight:600; line-height:1.6; }
.my-next-action small { display:block; color:#c5cfd4; font-size:12px; line-height:1.6; margin-top:2px; }
.my-next-action>svg { width:18px; height:18px; color:var(--gold-light); }
.my-next-action:hover { background:#173b50; color:white; }
.my-next-alternatives { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:16px; }
.my-next-alternatives>a { display:flex; align-items:center; justify-content:center; gap:7px; min-height:48px; font-size:14px; color:#415561; border:1px solid #dce0d9; border-radius:5px; }
.my-next-alternatives>a>svg { width:17px; height:17px; color:#96732f; }
.my-next-alternatives>a>svg:last-child { width:12px; height:12px; color:#77868c; }
.my-next-alternatives>a:hover { background:#f1efe6; }
.my-section-heading h2 { font-size:20px; }
.my-section-heading>a { display:flex; align-items:center; gap:4px; font-size:13px; color:#536672; min-height:44px; }
.my-section-heading>a>svg { width:13px; height:13px; }
.my-records { margin-top:38px; padding:24px 0; border-block:1px solid var(--line); }
.my-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin:22px 0 0; }
.my-metrics>div { min-width:0; }
.my-metrics dt { display:flex; align-items:center; gap:6px; font-size:13px; color:#536672; }
.my-metrics dt>svg { width:16px; height:16px; color:#8c733c; }
.my-metrics dd { margin:7px 0 9px; line-height:1.4; white-space:nowrap; }
.my-metrics strong { font-size:30px; font-weight:500; }
.my-metrics dd>span { font-size:12px; color:#6b7880; }
.my-metrics progress { display:block; width:100%; height:4px; appearance:none; border:0; border-radius:3px; overflow:hidden; background:#e6e7df; }
.my-metrics progress::-webkit-progress-bar { background:#e6e7df; }
.my-metrics progress::-webkit-progress-value { background:#ad8a3e; }
.my-metrics progress::-moz-progress-bar { background:#ad8a3e; }
.my-week { margin-top:25px; padding-top:20px; border-top:1px solid #e3e3da; }
.my-week .my-section-heading { margin-bottom:16px; }
.my-week h3 { font-size:14px; font-weight:500; color:#536672; }
.my-week .my-section-heading>span { font-size:12px; }
.my-week .my-section-heading b { font-weight:500; color:var(--ink); }
.my-week .activity-week li { font-size:12px; gap:5px; }
.my-week .activity-week i { width:25px; height:25px; }
.my-week .activity-week small { font-size:11px; }
.my-library { margin-top:32px; }
.my-content-list { list-style:none; padding:0; margin:12px 0 0; }
.my-content-list>li { border-bottom:1px solid var(--line); }
.my-content-link { display:grid; grid-template-columns:68px minmax(0,1fr) 16px; gap:15px; align-items:center; padding:21px 0; }
.my-content-link>img { width:68px; aspect-ratio:1.39; height:auto; object-fit:cover; border-radius:3px; }
.my-content-status { display:block; font-size:11px; color:#687780; margin-bottom:3px; }
.my-content-status.is-complete { color:#416450; }
.my-content-link h3 { font-size:17px; line-height:1.6; }
.my-content-link p { display:flex; flex-wrap:wrap; gap:3px 13px; margin:7px 0 0; color:#63737d; font-size:12px; }
.my-content-link>svg { width:16px; height:16px; color:#96732f; }
.my-reflection-link { display:flex; align-items:center; gap:8px; min-height:44px; margin:-3px 0 13px 83px; font-size:13px; color:#536672; }
.my-reflection-link>svg { width:16px; height:16px; }
.my-reflection-link>svg:last-child { margin-left:auto; width:13px; height:13px; }
.my-account { margin-top:40px; }
.my-account .account-panel { margin:0; padding:20px 0 0; border:0; border-top:1px solid var(--line); }
@media(min-width:760px) {
  .my-next { padding:27px 32px 26px; }
  .my-next-content { grid-template-columns:108px minmax(0,1fr); gap:22px; }
  .my-next-content>img { width:108px; }
  .my-next-content h3 { font-size:26px; }
  .my-next-target { margin-top:26px; }
  .my-next-action { min-height:84px; padding-inline:22px; }
  .my-next-action strong { font-size:20px; }
  .my-next-alternatives>a { min-height:48px; }
  .my-content-link { grid-template-columns:92px minmax(0,1fr) 18px; gap:20px; }
  .my-content-link>img { width:92px; }
  .my-content-link h3 { font-size:20px; }
  .my-content-link p { font-size:13px; }
  .my-reflection-link { margin-left:112px; }
}
@media(max-width:370px) {
  .my-next { padding:20px 16px; }
  .my-next-heading h2 { font-size:17px; }
  .my-next-heading>span { font-size:11px; }
  .my-next-content { grid-template-columns:64px minmax(0,1fr); gap:12px; }
  .my-next-content>img { width:64px; }
  .my-next-content h3 { font-size:18px; }
  .my-next-action { padding-inline:12px; gap:10px; }
  .my-next-action strong { font-size:17px; }
  .my-next-alternatives { gap:8px; }
  .my-next-alternatives>a { font-size:12px; gap:4px; }
  .my-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
  .my-content-link { grid-template-columns:54px minmax(0,1fr) 12px; gap:12px; }
  .my-content-link>img { width:54px; }
  .my-content-link h3 { font-size:16px; }
  .my-reflection-link { margin-left:66px; }
}


/* Verified Google profile: personal identity above the learning journey. */
.member-avatar { position:relative; display:inline-grid; place-items:center; overflow:hidden; width:48px; height:48px; flex:none; border-radius:50%; background:#eae6da; color:#193748; border:1px solid #c9bc98; }
.member-avatar>.member-initial { display:block; font-size:21px; font-weight:500; }
.member-avatar>img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; }
.topbar .account-entry .member-avatar--small { width:30px; height:30px; padding:0; border:1px solid #d1c39c; }
.topbar .account-entry .member-avatar--small .member-initial { font-size:14px; padding:0; }
.member-profile { display:grid; grid-template-columns:72px minmax(0,1fr) 38px; gap:17px; align-items:center; margin:0 0 30px; }
.member-profile .member-avatar--large { width:72px; height:72px; box-shadow:0 0 0 4px #c4ad6d16; border:2px solid #c5ad6c; }
.member-avatar--large>.member-initial { font-size:30px; }
.member-profile-copy { min-width:0; }
.member-profile-label { font-size:10px; font-weight:600; color:#96732f; letter-spacing:.12em; margin:0 0 4px; }
.member-profile h2 { font-size:22px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
.member-profile h2 small { font-size:12px; font-weight:400; margin-left:6px; white-space:nowrap; color:#677982; }
.member-profile-email { margin:4px 0 0; font-size:12px; color:#657680; overflow-wrap:anywhere; line-height:1.6; }
.member-settings { display:grid; place-items:center; padding:0; width:38px; min-height:44px; border:0; background:transparent; color:#6c7d85; }
.member-settings>svg { width:21px; height:21px; }
.member-settings:hover { color:var(--gold); }
.account-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:15px; }
.profile-sync { margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.profile-sync>p { font-size:12px; color:#627680; margin:8px 0; }
@media(min-width:760px) {
  .member-profile { grid-template-columns:84px minmax(0,1fr) 44px; gap:22px; margin-bottom:34px; }
  .member-profile .member-avatar--large { width:84px; height:84px; }
  .member-profile h2 { font-size:28px; }
  .member-profile-email { font-size:14px; }
}
@media(max-width:370px) {
  .member-profile { grid-template-columns:58px minmax(0,1fr) 28px; gap:12px; }
  .member-profile .member-avatar--large { width:58px; height:58px; }
  .member-profile h2 { font-size:19px; }
  .member-profile-email { font-size:11px; }
  .member-settings { width:28px; }
}

/* 2026-11-09: use one centered column below the full-bleed home cover. */
.page.home-content { width:min(100%,784px); max-width:784px; }
.home-content .resume.resume-home,
.home-content>.home-progress,
.home-content>.section,
.home-content>.podcast-entry { width:100%; max-width:none; }


/* The member entrance: one centered paper surface within the LAB book world. */
.auth-gate { background:#081d2c; }
.auth-gate #main { min-height:100svh; }
.login-stage { position:relative; isolation:isolate; display:grid; place-items:center; min-height:100svh; overflow:hidden; padding:48px 24px; padding-top:max(48px,env(safe-area-inset-top)); padding-bottom:max(32px,env(safe-area-inset-bottom)); }
.login-backdrop { position:absolute; z-index:-2; inset:0; background:linear-gradient(110deg,#061b2ade 5%,#0a2033ba 54%,#071c2ee8),url('/assets/hero-lab-foil-v03-20261107.png') center 44%/cover; }
.login-backdrop::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 40%,transparent 10%,#04152166 100%); }
.login-compass { position:absolute; z-index:-1; left:50%; top:46%; width:min(108vw,820px); aspect-ratio:1; transform:translate(-50%,-50%) rotate(18deg); color:#c1a169; opacity:.12; pointer-events:none; }
.login-compass svg { display:block; width:100%; height:100%; stroke-width:.18; }
.login-center { width:min(100%,460px); position:relative; text-align:center; }
.login-paper { position:relative; padding:30px 40px 24px; background:#faf8f1; border:1px solid #d0c4a9; border-radius:4px; box-shadow:0 25px 80px #020b1459; }
.login-paper::before,.login-paper::after { content:''; position:absolute; z-index:-1; inset:6px 6px -6px; background:#e5ddce; border:1px solid #bcb09a; border-radius:3px; pointer-events:none; }
.login-paper::after { z-index:-2; inset:11px 12px -11px; background:#c9bfa9; }
.login-logo { width:min(100%,310px); height:auto; margin:0 auto 16px; filter:none; }
.login-intro { color:var(--navy); font-size:25px; line-height:1.65; font-weight:600; margin:0 auto 27px; }
.auth-gate .login-paper .account-panel { border:0; padding:24px 0 0; margin:0; border-top:1px solid #c8b78c80; scroll-margin-top:24px; }
.auth-gate .login-paper .account-panel h2 { font-size:17px; font-weight:600; margin:0 0 7px; line-height:1.7; }
.auth-gate .login-paper .account-panel>p { font-size:12px; font-weight:400; color:#687780; line-height:1.85; }
.auth-gate #google-signin { display:flex; justify-content:center; width:100%; max-width:340px; margin:22px auto 0; min-height:44px; }
.auth-gate #google-login-status { color:#936843; margin:10px 0 0; min-height:0; }
.auth-gate #google-login-status:not(:empty) { padding-top:2px; }
.auth-gate .login-paper .account-local-note { border-top:1px solid #d6d0c280; padding-top:16px; margin:20px 0 0; font-size:11px; color:#6c777a; }
.auth-gate .google-pending { margin:20px auto 0; }
.auth-gate .account-panel>.primary,.auth-gate #retry-google-login { margin:18px auto 0; max-width:340px; font-size:14px; }
.login-signature { margin:29px 0 0; font-family:'Roboto',sans-serif; font-size:10px; font-weight:400; letter-spacing:.18em; color:#c4b082; }
@media(min-width:900px) {
  .login-backdrop { background-position:center,left 37%; background-size:cover,cover; }
  .login-paper { padding-top:34px; padding-bottom:27px; }
  .login-intro { font-size:27px; margin-bottom:30px; }
}
@media(max-width:380px) {
  .login-stage { padding:30px 18px; }
  .login-paper { padding:24px 22px 22px; }
  .login-logo { margin-bottom:13px; }
  .login-intro { font-size:22px; margin-bottom:23px; }
  .auth-gate .login-paper .account-panel { padding-top:20px; }
  .auth-gate .login-paper .account-panel h2 { font-size:16px; }
}
@media(max-height:650px) and (min-width:600px) {
  .login-stage { padding-block:24px; }
  .login-paper { padding-block:20px; }
  .login-logo { width:245px; margin-bottom:8px; }
  .login-intro { font-size:22px; margin-bottom:17px; }
  .auth-gate .login-paper .account-panel { padding-top:16px; }
  .login-signature { margin-top:23px; }
}

.login-stage { grid-template-columns:minmax(0,1fr); }
.login-center { width:100%; max-width:460px; min-width:0; }
.login-paper { width:100%; min-width:0; }

/* LINE hands sign-in to the user's ordinary browser, before loading Google. */
.auth-gate #google-signin.browser-login { display:flex; flex-direction:column; gap:14px; }
.browser-login-message { margin:0; font-size:14px; line-height:1.8; color:#536776; }
.browser-login-open { display:flex; align-items:center; justify-content:center; min-height:52px; padding:13px 16px; border-radius:4px; background:#0b2236; color:#f1d489; font-size:16px; font-weight:600; text-decoration:none; }
.browser-login-open:focus-visible { outline:3px solid #b18a36; outline-offset:4px; }
.browser-login-open:hover { background:#17394e; }
.browser-login-help { margin:0; font-size:12px; line-height:1.8; color:#687780; }
