@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-700.ttf') format('truetype');font-weight:700;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-800.ttf') format('truetype');font-weight:800;font-display:swap}
:root{font-family:Manrope,Arial,sans-serif;--bg:#061120;--panel:#0c1b2b;--line:#ffffff16;--gold:#d9bd79;--ivory:#f6f2e9;--muted:#9faebb;color-scheme:dark}
body{background:radial-gradient(ellipse 70% 40% at 50% 0,#16324c58,transparent 80%),var(--bg);font-weight:400;-webkit-font-smoothing:antialiased}
body:before{display:none}
.ui-icon{width:23px;height:23px;flex:0 0 auto;vertical-align:middle}
[hidden]{display:none!important}
button,.button{border-radius:6px;min-height:44px;padding:13px 20px;font-weight:600;font-size:14px;background:#ffffff05;transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
button:hover,.button:hover{border-color:#d9bd7970;background:#ffffff09}
.primary{background:var(--gold);border-color:var(--gold);color:#071422;font-weight:700}
.primary:hover{background:#ead39c;border-color:#ead39c;color:#071422;transform:translateY(-1px)}
.outline{border-color:#d9bd7950;background:transparent}
button:disabled{cursor:not-allowed}
header{max-width:1440px;margin:auto;min-height:94px;padding:18px 42px;gap:24px;border-bottom:1px solid var(--line);background:transparent}
.header-brand{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.header-brand img{width:38px;height:42px;object-fit:contain}
.header-brand span{font-size:22px;font-weight:600;letter-spacing:2.4px}
header nav{gap:24px;flex-wrap:nowrap;justify-content:center;font-size:12px;font-weight:500;white-space:nowrap}
header nav a{color:#b5c1cd;transition:color .2s}
header nav a:hover,header nav a[aria-current=page]{color:var(--gold)}
header select{min-height:40px;background:transparent;padding:8px;border:0;font-size:12px;width:58px;margin:0}
header #login,header .outline{font-size:12px;min-height:40px;padding:10px 16px}
main{max-width:1280px;padding:48px 48px 70px}
h1,h2,h3{font-weight:600}
h1{font-size:clamp(32px,4.4vw,60px);line-height:1.14;letter-spacing:-2px}
h2{font-size:clamp(25px,2.8vw,38px);line-height:1.25;letter-spacing:-1px}
h3{font-size:19px;line-height:1.4;letter-spacing:-.4px}
p{line-height:1.85}
.eyebrow{font-size:10px;letter-spacing:2.6px;line-height:1.8;font-weight:700}
.lead{font-size:18px;color:#b4c1cd;line-height:1.85;max-width:680px}
.card{border-radius:10px;border:1px solid var(--line);background:#0c1b2b;padding:28px;box-shadow:none}
.card h2{font-size:24px;letter-spacing:-.6px}
.cream{background:#eee7d7;color:#172637}
.cream p{color:#344654}
.grid{gap:22px}.two{gap:28px}
.workspace{grid-template-columns:195px minmax(0,1fr);gap:38px}
.sidebar{border-right:1px solid var(--line);padding-right:22px}
.sidebar a{border-radius:5px;font-size:13px;padding:12px 10px;color:#afbdca;border:0}
.sidebar a:hover{color:var(--gold);background:#ffffff05}
.stats .card{padding:22px;font-size:12px;color:#a9b8c5}
.stats .stat-number{font-size:36px;color:var(--ivory);font-weight:500}
.badge{border-radius:4px;border-color:#d9bd792b;font-size:11px;color:var(--gold)}
input,select,textarea{background:#071321;border:1px solid #ffffff20;border-radius:5px;padding:13px;color:var(--ivory);outline-offset:3px}
label{font-size:13px;font-weight:500}
label input,label select,label textarea{margin-top:9px}
.table-wrap{border-radius:7px}
th{font-weight:600;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
td{font-size:13px}
footer{max-width:1280px;margin:auto;padding:38px 48px 90px;border-top:1px solid var(--line);text-align:left;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted);font-size:12px}
footer .footer-links{display:flex;gap:24px;flex-wrap:wrap}
footer p{margin:8px 0}
.footer-brand{font-size:18px;letter-spacing:3px;color:var(--ivory)}
/* The public pages follow a quieter editorial rhythm. */
.editorial-home{max-width:none}
.hero-eyebrow{margin:6px 0 25px}
.tagline{font-size:clamp(38px,4.6vw,64px);font-weight:500;letter-spacing:-2.8px;line-height:1.14;margin:0}
.tagline span{color:var(--gold)}
.hero-intro{font-size:15px;line-height:1.8;color:#abbac8;max-width:600px;margin:22px auto 0}
.orbit{grid-template-columns:minmax(0,1fr) 260px minmax(0,1fr);gap:22px 36px;margin:38px 0 24px;position:relative}
.brand-stage{grid-column:2;grid-row:1/3;position:relative;min-height:280px;display:flex;align-items:center;justify-content:center}
.brand-hero{position:relative;width:210px;height:auto;grid-column:auto;grid-row:auto;filter:none;mix-blend-mode:screen;z-index:1}
.brand-orbit{position:absolute;inset:12px -4px;border:1px solid #d9bd791c;border-radius:50%;transform:rotate(-24deg);pointer-events:none}
.brand-orbit:before{content:'';position:absolute;inset:14px -15px;border:1px solid #d9bd790e;border-radius:50%;transform:rotate(60deg)}
.portal{min-width:0;min-height:124px;padding:23px 0;gap:17px;border:0;border-top:1px solid #ffffff24;border-radius:0;background:none;box-shadow:none;align-self:stretch;transition:border-color .25s,transform .25s}
.portal:hover{transform:translateY(-2px);border-color:#d9bd7990;background:transparent}
.portal-icon{color:var(--gold);align-self:flex-start;margin-top:4px}
.portal-icon .ui-icon{width:26px;height:26px}
.portal>div{flex:1;min-width:0}
.portal>.ui-icon{width:16px;height:16px;color:#a7b5c0;transition:transform .2s}
.portal:hover>.ui-icon{transform:translateX(4px);color:var(--gold)}
.portal strong{font-size:17px;line-height:1.45;font-weight:600;letter-spacing:-.3px;margin-bottom:6px}
.portal small{font-size:11px;line-height:1.8;color:#95a7b8}
.portal .portal-kicker{color:var(--gold);text-transform:uppercase;letter-spacing:1.7px;font-size:9px;margin-bottom:6px}
.hero-bottom{display:flex;align-items:center;justify-content:center;gap:20px;margin:26px 0 0}
.hero-bottom>span{font-size:11px;color:var(--muted)}
.scroll-link{display:inline-flex;align-items:center;gap:18px;margin-top:42px;font-size:10px;letter-spacing:1.5px;color:#889aa9;text-transform:uppercase}
.scroll-link span{color:var(--gold);font-size:18px}
.editorial-section{margin-top:100px;padding-top:64px;border-top:1px solid var(--line)}
.section-heading{max-width:650px;margin-bottom:42px}
.section-heading h2{margin-top:18px}
.method-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px}
.step-index{display:block;color:var(--gold);font-size:13px;font-weight:500;margin-bottom:26px;font-variant-numeric:tabular-nums}
.method-steps h3{font-size:20px;font-weight:600;margin-bottom:14px}
.method-steps p{font-size:14px;color:var(--muted);margin:0}
.about-split{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding-bottom:18px}
.about-signature h2{font-size:40px;margin:20px 0 30px}
.signature{font-size:22px;display:block;margin-bottom:5px;color:var(--gold)}
.about-signature>.muted{font-size:11px;letter-spacing:2px}
.about-copy p{font-size:15px;color:#b7c3cc;margin:0 0 20px}
.text-link{display:inline-flex;align-items:center;gap:12px;color:var(--gold);font-size:13px;font-weight:600;border-bottom:1px solid #d9bd7930;padding-bottom:6px;margin-top:8px;transition:border-color .2s}
.text-link:hover{border-color:var(--gold)}
.faq-section{display:grid;grid-template-columns:1fr 1.6fr;gap:70px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}
.faq-list summary{padding:22px 25px 22px 0;position:relative;list-style:none;font-size:14px;cursor:pointer;line-height:1.7;font-weight:500}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:'+';position:absolute;right:0;color:var(--gold);font-size:21px;top:17px;font-weight:400}
.faq-list details[open] summary:after{content:'−'}
.faq-list p{color:var(--muted);font-size:13px;margin:0;padding:0 15px 24px 0}
.closing-section{padding:70px 24px;margin-top:90px;text-align:center;border-top:1px solid var(--line);background:radial-gradient(ellipse at center,#18324a30,transparent 75%)}
.closing-section h2{font-size:40px;margin-top:16px}
.closing-section p{font-size:14px;color:var(--muted);max-width:580px;margin:18px auto 28px}
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:36px}
.testimonials figure{margin:0;padding:24px 0;border-top:1px solid #d9bd7930}
.review-rating{color:var(--gold);font-size:11px;letter-spacing:3px}
.testimonials blockquote{margin:20px 0;line-height:1.9;font-size:14px;color:#c3ced6}
.testimonials figcaption{font-size:12px;color:var(--gold)}
.page-intro{max-width:800px;margin:30px 0 64px}
.page-intro h1{margin-top:22px}
.page-intro .button{margin-top:15px}
.method-details article{display:grid;grid-template-columns:70px 1fr 70px;gap:26px;border-top:1px solid var(--line);padding:40px 0}
.method-details p{max-width:700px;color:var(--muted);font-size:15px}
.method-details .ui-icon{justify-self:end;color:var(--gold);width:35px;height:35px}
.service-steps{padding:36px 0}.service-steps .ui-icon{width:32px;height:32px;color:var(--gold);margin-bottom:28px}
.service-steps h2{font-size:23px}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:36px 0}
.contact-copy h1{margin-top:25px}.contact-copy .lead{font-size:17px}
.contact-email{display:flex;align-items:center;gap:16px;margin:42px 0 28px;color:var(--gold);font-size:17px;overflow-wrap:anywhere}
.contact-copy>.muted{font-size:12px;line-height:2}
.contact-form{border:1px solid var(--line);border-radius:10px;padding:32px;background:#0b1928}
.contact-form label{display:block;margin-bottom:20px}.contact-form .hint{font-size:11px;margin-bottom:24px}
.contact-form button{width:100%}
/* Learning workspace, quiz and seven-day plan. */
.quiz{max-width:840px;margin:20px auto}
.quiz h1{font-size:30px}.quiz .card{background:#0b1928}
.quiz .card h2{font-size:22px;line-height:1.65;font-weight:500}
.choice{border-radius:6px;padding:17px 20px;text-align:left;background:transparent;border-color:#ffffff1f;gap:16px;font-weight:400;font-size:15px;line-height:1.7}
.choice b{font-size:12px;color:var(--muted);min-width:25px;font-weight:600}
.choice.selected{border-color:var(--gold);background:#d9bd790d}
.choice.correct{border-color:#79bba3;background:#79bba30e}
.choice.wrong{border-color:#d08f8f;background:#d08f8f0d}
progress{height:3px;border:0;border-radius:0;accent-color:var(--gold);background:#ffffff13}
progress::-webkit-progress-bar{background:#ffffff13}progress::-webkit-progress-value{background:var(--gold)}progress::-moz-progress-bar{background:var(--gold)}
.diagnostic-intro{max-width:820px;margin:45px auto 80px}
.diagnostic-intro h1{margin-top:26px}
.diagnostic-facts{display:flex;gap:30px;padding:24px 0;margin:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:13px;color:var(--gold)}
.diagnostic-config{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:650px;margin:30px 0}
.diagnostic-config button{grid-column:1/-1;justify-self:start}
.diagnostic-quiz>.question-title{font-size:26px;line-height:1.65;letter-spacing:-.6px;margin:25px 0 34px}
.diagnostic-choices{margin:30px 0}.diagnostic-choices .choice{width:100%;margin-bottom:12px}
.diagnostic-results{max-width:960px;margin:auto}
.result-heading{display:grid;grid-template-columns:1fr 200px;gap:50px;align-items:center;margin:24px 0 45px}
.result-heading h1{font-size:45px}.result-heading .lead{font-size:16px}
.score-display{text-align:center;border-left:1px solid var(--line);padding-left:25px}
.score-display strong{font-size:70px;line-height:1.3;font-weight:500;color:var(--gold);display:block}
.score-display small{font-size:28px;color:var(--muted)}.score-display>span{font-size:11px;color:var(--muted)}
.topic-results{margin:30px 0}.topic-results>div{display:grid;grid-template-columns:1fr 150px 40px;gap:25px;padding:18px 0;border-top:1px solid var(--line);align-items:center;font-size:13px}.topic-results progress{width:100%}.topic-results strong{color:var(--gold);text-align:right}
.diagnostic-corrections{margin-top:45px}.diagnostic-corrections summary{cursor:pointer;color:var(--gold)}.diagnostic-corrections article{border-bottom:1px solid var(--line);padding:30px 0}.diagnostic-corrections h3{font-size:18px}.diagnostic-corrections p{font-size:14px}
.programme-days{margin-bottom:35px}
.programme-day{display:grid;grid-template-columns:75px 1fr 100px;gap:30px;border-top:1px solid var(--line);padding:30px 0;align-items:start}.programme-day h2{font-size:22px;letter-spacing:-.4px}.programme-day p{font-size:13px;color:var(--muted);margin:8px 0 15px}.programme-day .eyebrow{color:var(--gold);font-size:9px}.day-number strong{font-size:45px;line-height:1.4;font-weight:400;color:var(--gold);display:block}.day-number small{font-size:11px;color:var(--muted)}.day-done{display:flex;gap:8px;align-items:center;justify-content:end;font-size:11px;cursor:pointer}.day-done input{margin:0;width:auto;accent-color:var(--gold)}.programme-day.is-done .day-number strong{color:#79bba3}
.reader{gap:30px}.reader aside{background:transparent;border-right:1px solid var(--line);border-radius:0;padding-right:24px}.reader .toolbar{font-size:12px}.reader .toolbar button{font-size:11px;padding:8px 12px;min-height:36px}.book-area{border:1px solid #ffffff0f;border-radius:8px;background:#030b13;box-shadow:inset 0 10px 40px #0005}
.route-enter{animation:route-in .35s ease both}
@keyframes route-in{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.editorial-home{padding-top:22px}.orbit{margin-top:48px}}
@media(max-width:1100px){header{padding:18px 25px;gap:18px}header nav{gap:15px;font-size:11px}.header-brand span{font-size:18px}main{padding:40px 30px 60px}.orbit{grid-template-columns:minmax(0,1fr) 210px minmax(0,1fr);gap:20px}.brand-hero{width:180px}.portal{gap:12px}.portal strong{font-size:15px}.portal-icon .ui-icon{width:22px;height:22px}.about-split,.contact-layout{gap:55px}.workspace{gap:24px;grid-template-columns:160px minmax(0,1fr)}}
@media(max-width:900px){header{flex-wrap:wrap;gap:12px}header nav{order:3;width:100%;flex-basis:100%;justify-content:flex-start;gap:24px;overflow:auto;padding:12px 0 0;font-size:12px;scrollbar-width:none}header .header-brand{margin-right:auto}header select{margin-left:auto}.workspace{grid-template-columns:1fr}.sidebar{display:flex;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:0 0 15px;gap:5px}.method-steps{gap:28px}.about-split{gap:40px}.faq-section{grid-template-columns:1fr;gap:25px}.editorial-section{margin-top:70px;padding-top:45px}.contact-layout{gap:35px}.contact-copy h1{font-size:42px}.contact-form{padding:25px}}
@media(max-width:680px){header{padding:15px 20px}.header-brand img{width:29px;height:34px}.header-brand span{font-size:17px}header #login,header .outline{padding:8px 12px;font-size:11px}header nav{gap:22px}.hero-eyebrow{font-size:9px;letter-spacing:1.8px;max-width:300px;margin:0 auto 20px}main{padding:30px 20px 45px}.tagline{font-size:39px;letter-spacing:-1.8px}.hero-intro{font-size:13px;max-width:360px;margin-top:18px}.orbit{grid-template-columns:1fr 1fr;gap:0 22px;margin-top:20px}.brand-stage{grid-column:1/-1;grid-row:1;min-height:190px;margin-bottom:24px}.brand-hero{width:155px}.brand-orbit{inset:10px calc(50% - 100px)}.portal{padding:19px 0;min-height:135px;gap:9px;align-items:flex-start;flex-wrap:wrap}.portal-icon .ui-icon{width:21px;height:21px}.portal>div{flex-basis:100%;order:2}.portal>.ui-icon{margin-left:auto;align-self:center}.portal strong{font-size:14px}.portal small{font-size:11px}.portal .portal-kicker{font-size:8px;letter-spacing:1.2px}.hero-bottom{flex-direction:column;gap:12px;margin-top:26px}.hero-bottom .button{width:100%;max-width:360px}.scroll-link{margin-top:30px}.about-split,.contact-layout{grid-template-columns:1fr;gap:28px}.about-signature h2{font-size:34px}.method-steps{grid-template-columns:1fr;gap:30px}.method-steps article{position:relative;padding-left:44px}.method-steps .step-index{position:absolute;top:4px;left:0}.method-steps h3{font-size:19px}.method-steps p{font-size:13px}.testimonials{grid-template-columns:1fr;gap:15px}.closing-section{margin-top:55px;padding:45px 0}.closing-section h2{font-size:30px}.page-intro{margin:15px 0 40px}.page-intro h1{font-size:41px}.lead{font-size:16px}.method-details article{grid-template-columns:30px 1fr;gap:14px;padding:28px 0}.method-details .ui-icon{display:none}.method-details h2{font-size:24px}.service-steps article{padding-left:0}.service-steps .ui-icon{margin-bottom:10px}.contact-email{font-size:15px;margin:25px 0}.contact-form{padding:24px 20px}.contact-layout{padding:0}.diagnostic-intro{margin:15px 0 50px}.diagnostic-facts{gap:15px;flex-wrap:wrap;font-size:11px}.diagnostic-config{grid-template-columns:1fr;gap:15px}.diagnostic-config button{width:100%}.diagnostic-quiz>.question-title{font-size:22px}.choice{font-size:14px;padding:15px}.result-heading{grid-template-columns:1fr;gap:15px}.result-heading h1{font-size:34px}.score-display{border-left:0;border-top:1px solid var(--line);padding:15px 0;text-align:left}.score-display strong{font-size:60px}.topic-results>div{grid-template-columns:1fr 70px 30px;gap:12px;font-size:11px}.programme-day{grid-template-columns:40px 1fr;gap:15px}.programme-day h2{font-size:19px}.day-done{grid-column:2;justify-content:start}.day-number strong{font-size:35px}.card{padding:20px}.card h2{font-size:22px}footer{padding:28px 20px 90px;display:block}footer .footer-links{margin-top:22px;gap:18px}.quiz .card h2{font-size:19px}.reader .toolbar{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.theory-article{max-width:960px;margin:28px auto}.theory-article>h1{max-width:800px;font-size:38px;line-height:1.3;margin-bottom:30px}.theory-article .lead{font-size:16px}.theory-section{border-top:1px solid var(--line);padding-top:30px;margin-top:35px}.theory-article .formula{overflow-x:auto;padding:15px 0;color:var(--gold)}.formula-list>h3{margin-top:24px}.method-list{padding-left:22px;line-height:2;color:#bcc8d2}.method-list li{margin-bottom:10px;padding-left:8px}.worked-example{background:#ffffff03;padding:25px}.legacy-task{padding:15px 0;border-top:1px solid var(--line)}.legacy-task label{display:flex;align-items:center;gap:12px;line-height:1.7}.legacy-task input{width:auto;margin:0;flex:0 0 auto}
@media(max-width:680px){.theory-article>h1{font-size:27px}.worked-example{padding:15px}.theory-article p{font-size:14px}}
/* O’Phys RC73 atmosphere: original blue/gold light, stars and perspective grid. */
:root{--bg:#02050b;--gold:#e4c466;--muted:#aab5c8}
body{isolation:isolate;background:#02050b}
body:before{display:block;content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 50% 10%,rgba(20,65,104,.65),transparent 24%),radial-gradient(circle at 82% 16%,rgba(212,175,55,.12),transparent 28%),linear-gradient(180deg,#000,#02050b 45%,#061121)}
body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.28;background-image:radial-gradient(circle,rgba(255,255,255,.7) 0 1px,transparent 1.7px),linear-gradient(rgba(93,216,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(93,216,255,.06) 1px,transparent 1px);background-size:180px 180px,72px 72px,72px 72px;mask-image:linear-gradient(to bottom,black 0%,black 74%,transparent 100%)}
header{background:linear-gradient(180deg,#02050b9c,#02050b15);backdrop-filter:blur(14px)}
header nav{border:1px solid #ffffff12;border-radius:999px;padding:13px 20px;background:#ffffff04}
.editorial-home{position:relative;isolation:isolate;padding-bottom:32px}
.editorial-home:before{content:"";position:absolute;inset:45% -4% 0;z-index:-1;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(93,216,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(93,216,255,.13) 1px,transparent 1px),radial-gradient(circle,rgba(93,216,255,.45) 0 1px,transparent 2px);background-size:60px 60px,60px 60px,88px 88px;transform:perspective(750px) rotateX(58deg);transform-origin:bottom;mask-image:linear-gradient(transparent,black 45%,transparent)}
.brand-stage{filter:drop-shadow(0 0 25px #d4af3715)}
.portal{border:1px solid #ffffff14;border-radius:16px;padding:22px;background:linear-gradient(145deg,#d4af3709,#5dd8ff05),#07112178;box-shadow:0 15px 45px #0002;backdrop-filter:blur(8px)}
.portal:hover{background:linear-gradient(145deg,#d4af3713,#5dd8ff0c),#071121b0;border-color:#d4af3760;box-shadow:0 18px 48px #0004}
.portal-resources{border-color:#d4af3745}.card{background:linear-gradient(180deg,#ffffff07,#ffffff02),#071121d6;border-color:#ffffff16;box-shadow:0 18px 60px #0003}
.primary{border-radius:999px;background:linear-gradient(135deg,#f4d77b,#d4af37);box-shadow:0 10px 30px #d4af3725;border-color:#e4c466}
.primary:hover{background:linear-gradient(135deg,#ffe59d,#ddbd58);box-shadow:0 12px 36px #d4af3735}
.cream{background:#eee7d7;color:#172637}
.training-setup{max-width:900px;margin:25px auto}.training-setup h1{font-size:48px}.training-setup .card{margin-top:35px;padding:32px}.training-fields{display:grid;grid-template-columns:1fr 1fr;gap:24px}.training-fields label{display:block}.training-setup .hint{margin:25px 0}.training-setup .lead{font-size:16px}
@media(max-width:900px){header nav{padding:12px 16px;border-radius:12px}.portal{padding:17px;gap:10px}}
@media(max-width:680px){.portal{padding:16px 13px;margin-bottom:14px;border-radius:12px}.orbit{gap:0 14px}.editorial-home:before{inset:50% 0 0}.training-fields{grid-template-columns:1fr;gap:18px}.training-setup h1{font-size:34px}.training-setup .card{padding:22px}.training-setup .primary{width:100%}}

/* Public PDF library, matching the existing navy and gold identity. */
.books-shelf { margin: 3rem 0; }
.book-card { display:flex; flex-direction:column; align-items:flex-start; }
.book-card .button { margin-top:auto; }
.book-cover { width:min(100%,220px); min-height:280px; box-sizing:border-box; padding:24px 22px 24px 30px; margin:0 auto 20px; display:flex; flex-direction:column; justify-content:space-between; gap:28px; color:#ead6a0; background:radial-gradient(ellipse at top right,#234052,transparent 70%),#09121c; border:1px solid #9b824a; border-left:9px solid #b3985b; border-radius:3px 9px 9px 3px; box-shadow:8px 10px 0 -4px #d6cfc1,14px 18px 30px #0007; }
.book-cover span {font-size:.7rem;letter-spacing:.1em;}
.book-cover strong {font-size:1.35rem;line-height:1.3;overflow-wrap:anywhere;}

/* Teacher authoring workspace */
.editor-heading { max-width:780px; margin:2rem 0; }
.editor-local { border-left:3px solid var(--gold,#d6b65c); }
.editor-local p { margin-bottom:0; }
.editor-layout { display:grid; grid-template-columns:minmax(200px,280px) minmax(0,1fr); gap:24px; align-items:start; }
.editor-layout>aside { position:sticky;top:100px;max-height:75vh;overflow:auto; }
.editor-layout textarea { width:100%;box-sizing:border-box; }
.editor-actions { margin:20px 0;flex-wrap:wrap; }
.editor-block { margin:16px 0; padding:14px; border:1px solid #ffffff16;border-radius:12px; }
.editor-block summary { cursor:pointer; }
.editor-block label {margin-top:14px;}
.editor-question,.draft-row { padding:14px 0; border-bottom:1px solid #ffffff12; overflow-wrap:anywhere; }
.editor-question .row {margin-top:10px;}
.draft-row {display:flex;align-items:center;gap:8px;}
.draft-row button:first-child {flex:1;text-align:left;}
.preview-q {padding:18px;border:1px solid #c4a35d55;margin:20px 0;border-radius:12px;}
.preview-q button {display:block;width:100%;text-align:left;margin:8px 0;}
.editor-layout select {max-width:100%;}
@media(max-width:800px){.editor-layout{grid-template-columns:1fr;}.editor-layout>aside{position:static;max-height:none;}.editor-heading h1{font-size:2.3rem;}}
.ophys-companion{position:fixed;left:36px;bottom:12px;width:76px;height:60px;z-index:30;pointer-events:none;filter:drop-shadow(0 2px 5px #0005);}
.ophys-companion[hidden]{display:none;}
.ophys-companion svg{width:100%;height:100%;overflow:visible;}
.cat-leg{transform-box:fill-box;transform-origin:50% 0;animation:cat-step .7s ease-in-out infinite alternate;}
.cat-leg.front{animation-delay:-.7s;}
.cat-tail{transform-box:fill-box;transform-origin:right bottom;animation:cat-tail 2s ease-in-out infinite alternate;}
.cat-figure{animation:cat-breathe 1.4s ease-in-out infinite alternate;}
.cat-spark{opacity:0;}
.answer-error .cat-spark{opacity:1;}
.answer-error .cat-figure{animation:cat-jump .45s ease-out 2;}
.answer-good{filter:drop-shadow(0 0 9px #d4af3777);}
.companion-toggle{position:fixed;bottom:8px;left:12px;z-index:31;font-size:9px;padding:3px 7px;background:#07131ee6;color:#c6c1b0;border:1px solid #ffffff20;}
@keyframes cat-step{from{transform:rotate(-12deg)}to{transform:rotate(14deg)}}
@keyframes cat-tail{to{transform:rotate(12deg)}}
@keyframes cat-breathe{to{transform:translateY(-1px)}}
@keyframes cat-jump{50%{transform:translateY(-7px)}}
@media(prefers-reduced-motion:reduce){.ophys-companion *{animation:none!important;}}
@media(max-width:700px){.ophys-companion{width:58px;height:48px;bottom:19px}.companion-toggle{font-size:8px;}}
@media print{.ophys-companion,.companion-toggle{display:none;}}
.theory-callout{padding:20px 24px;border-left:3px solid #c9aa63;background:#c9aa630a;border-radius:0 14px 14px 0;margin:24px 0;}
.theory-callout h3{margin-top:0;color:#e0c483;}
.theory-callout p:last-child{margin-bottom:0;}

/* Resource subjects and compact, expandable chapter modules. */
.subject-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:32px 0 24px}
.subject-module{position:relative;display:flex;align-items:center;gap:22px;min-height:190px;padding:28px;border:1px solid #cfb46a35;border-radius:16px;background:linear-gradient(125deg,#102234ee,#09111ded);color:#f5f1e8;text-decoration:none;transition:border-color .2s,background .2s;overflow:hidden}
.subject-module:hover,.subject-module.is-active{border-color:#d5b665;background:linear-gradient(125deg,#173044,#101925)}
.subject-module:focus-visible,.chapter-tile:focus-visible,.chapter-group summary:focus-visible{outline:2px solid #e7c56c;outline-offset:4px}
.subject-symbol{font-family:Georgia,serif;font-size:64px;font-style:italic;color:#e3c679;flex-shrink:0;width:60px;text-align:center}
.subject-copy{display:flex;flex-direction:column;gap:10px;min-width:0}
.subject-copy .eyebrow{font-size:9px;letter-spacing:.12em;margin:0;color:#d4bd83}
.subject-copy>strong{font-size:27px;font-weight:650;letter-spacing:-.03em}
.subject-description{color:#b7c0c9;font-size:13px;line-height:1.6}
.subject-count{color:#dfcb98;font-size:12px}
.subject-arrow{align-self:flex-start;margin-left:auto;color:#e3c679;font-size:22px}
.resource-guidance{text-align:center;color:#aab8c4;font-size:14px;margin:26px 0 40px}
.catalog-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:36px 0 20px}
.catalog-heading h2{margin:4px 0;font-size:30px}.catalog-heading .eyebrow{margin:0}.catalog-heading>p{font-size:13px}
.chapter-group{margin:12px 0;border:1px solid #ffffff17;border-radius:12px;background:#0c1725dc;overflow:hidden}
.chapter-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px 22px;min-height:68px}
.chapter-group summary::-webkit-details-marker{display:none}
.group-number{font-size:12px;color:#d9bd78;font-variant-numeric:tabular-nums}.group-title{font-weight:600;font-size:16px}.group-count{margin-left:auto;color:#9dacbb;font-size:12px;white-space:nowrap}.group-chevron{color:#d9bd78;font-size:22px}.chapter-group[open] .group-chevron{transform:rotate(180deg)}
.chapter-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 20px 20px}
.chapter-tile{display:flex;flex-direction:column;justify-content:space-between;gap:20px;min-height:112px;padding:18px;background:#17243570;border:1px solid #ffffff12;border-radius:9px;text-decoration:none;color:#e9edf0}
.chapter-tile:hover{background:#20334a88;border-color:#c9aa6355}.chapter-tile strong{font-size:14px;line-height:1.55;font-weight:500}.chapter-tile>span{font-size:11px;color:#b5bdc6}.chapter-tile>span>span{float:right;color:#dcc17f}
@media(max-width:900px){.subject-module{padding:22px;gap:14px}.subject-symbol{font-size:48px;width:40px}.subject-copy>strong{font-size:23px}.chapter-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.subject-modules{grid-template-columns:1fr;gap:12px;margin-top:24px}.subject-module{min-height:142px;padding:20px}.subject-description{display:none}.subject-copy>strong{font-size:25px}.subject-copy .eyebrow{font-size:8px}.catalog-heading{display:block}.chapter-group summary{padding:16px 14px;gap:10px}.group-title{font-size:14px}.group-count{font-size:10px}.chapter-tiles{padding:0 12px 12px;gap:8px}.chapter-tile{padding:12px;min-height:125px}.chapter-tile strong{font-size:12px}.chapter-tile>span{font-size:10px}}
@media(max-width:350px){.chapter-tiles{grid-template-columns:1fr}}

/* Mobile layout: preserve readable content without shrinking the entire page. */
main,header,footer,.card,.grid>*,.two>*,.workspace>*,.row>*{min-width:0}
img,video{max-width:100%;height:auto}
.katex-display{overflow-x:auto;overflow-y:hidden;padding:5px 0}
.theory-article,.chapter-tile,.card p{overflow-wrap:break-word}
input,select,textarea{max-width:100%}
@media(max-width:900px){header nav{min-width:0;max-width:100%;white-space:normal;flex-wrap:wrap;overflow:visible;gap:4px 14px}header nav a{display:inline-flex;align-items:center;min-height:44px}header{position:relative}}
@media(max-width:680px){
 h1{font-size:clamp(27px,7.6vw,38px);line-height:1.18;overflow-wrap:break-word}
 input,select,textarea{font-size:16px!important}
 button,.button{min-height:44px;white-space:normal;text-align:center}
 .row{gap:10px}.row>.button{flex:1 1 140px}
 .two,.grid{grid-template-columns:minmax(0,1fr)}
 .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);padding:20px;overflow:auto}
 .reader .toolbar{flex-wrap:wrap}.reader .toolbar>*{max-width:100%}
 .subject-copy .eyebrow{line-height:1.6}.chapter-tile strong{font-size:14px}.chapter-tile>span{font-size:12px}
 .group-count{font-size:12px}.chapter-tiles{grid-template-columns:minmax(0,1fr)}.chapter-tile{min-height:100px}
 footer{padding-bottom:calc(95px + env(safe-area-inset-bottom))}
}
