@font-face{font-family:system;src:local("Arial")}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:#f3f6fa;color:#192f48;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}a{color:#244fc1;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;border:1px solid #c1ccdb;border-radius:8px;padding:.6rem 1rem;background:white;color:#183451;cursor:pointer;text-decoration:none;font-weight:600}button:hover,.button:hover{background:#edf2fb;border-color:#7d91ac}button.primary,.button.primary{background:#244fc1;border-color:#244fc1;color:white}button.primary:hover,.button.primary:hover{background:#173fa7}button.danger{color:#983330;border-color:#caa5a4}button:disabled{cursor:not-allowed;color:#68778c;background:#edf0f5;border-color:#d1d9e5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b15408;outline-offset:4px}.skip{position:absolute;left:1rem;top:-5rem;z-index:5;padding:1rem;background:white}.skip:focus{top:1rem}.demo-banner{padding:.45rem 4%;background:#132e50;color:#fff;font-size:.875rem;letter-spacing:.04em;font-weight:700;display:flex;gap:1.3rem;flex-wrap:wrap}.demo-banner span{letter-spacing:0;font-weight:400;color:#e0e8f5}header{max-width:1320px;margin:auto;padding:1.3rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:flex;gap:.75rem;align-items:center;font-size:1.45rem;text-decoration:none;font-weight:750;color:#132e50}.brand-mark{width:45px;height:45px;display:grid;place-items:center;border:1px solid #294e7c;border-radius:50%;font-family:Georgia,serif}.brand small{display:block;font-size:.875rem;font-weight:400;margin-top:-.4rem}nav{display:flex;gap:1.75rem;flex-wrap:wrap}nav a{text-decoration:none;color:#435773;font-size:.95rem;padding:.6rem 0}nav a[aria-current=page]{color:#183b9f;border-bottom:2px solid #244fc1}#storage-status{max-width:1256px;margin:0 auto;padding:.2rem 0 .5rem;color:#4b6179;font-size:.875rem}#storage-status.error{background:#fff0e8;color:#803318;padding:1rem}main{max-width:1256px;margin:auto;padding:1.6rem 0 3rem;min-height:70vh}footer{padding:1.5rem 2rem;border-top:1px solid #ced8e5;text-align:center;font-size:.875rem;color:#52647b}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:750;color:#456089;margin:0 0 .5rem}h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3rem);font-weight:400;line-height:1.18;letter-spacing:-.025em;margin:.4rem 0 1rem}h2{font-size:1.3rem;line-height:1.35;margin:0 0 1rem;font-weight:650}h3{font-size:1.05rem;margin:0 0 .5rem}p{margin:.5rem 0 1rem}.muted{color:#52647b}.small{font-size:.875rem}.row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem}.card{background:white;border:1px solid #d3dce8;border-radius:12px;padding:1.65rem;margin-bottom:1.4rem}.feature{border-left:4px solid #244fc1}.card.dark{background:#183657;color:white;border-color:#183657}.dark .muted{color:#d2deed}.card.dark a{color:white}.large-number{font-family:Georgia,serif;font-size:2.6rem;line-height:1.2}.pill{display:inline-block;border:1px solid #c9d5e5;border-radius:5px;padding:.15rem .5rem;font-size:.8rem;line-height:1.5;color:#35547a;background:#f2f6fc}.pill.demo{color:#7b3a13;background:#fff2df;border-color:#ddbc8e}.notice{border-left:3px solid #b17b32;background:#fff7e9;padding:.9rem 1rem;margin:1rem 0;color:#62421f}.success{background:#eef6f7;border-color:#76999d;color:#27494c}.week-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:1.3rem 0}.week-tabs button{min-width:46px;padding:.45rem .7rem}.week-tabs button[aria-pressed=true]{background:#183657;color:white}.schedule{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem;margin:1rem 0 1.5rem}.day{min-height:146px;padding:.8rem;border:1px solid #d1dbe8;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#fff;text-decoration:none;color:inherit}.day strong{font-family:Georgia,serif;font-weight:400;font-size:1.7rem}.day small{font-size:.8rem;font-weight:400}.day.unavailable{background:#edf1f6;color:#637389}.day .availability{margin-top:auto;font-size:.75rem;line-height:1.3}.day.available{border-color:#889fc5}.day.available:hover{background:#edf3ff}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.stat-grid .card{padding:1.25rem}.stat-grid small{display:block;color:#4e627b}.list-row{padding:.9rem 0;border-bottom:1px solid #e0e6ef;display:flex;justify-content:space-between;gap:1rem;align-items:center}.list-row:last-child{border:0}details{border-top:1px solid #d5deea;padding:.85rem 0}summary{cursor:pointer;font-weight:600}details p,details .source-text{margin-top:1rem}.source-text{white-space:pre-line;line-height:1.75;max-width:78ch}.source-ref{font-size:.8rem;color:#546b86;margin:.7rem 0}.timer-panel{background:#183657;color:white;border-radius:12px;padding:1.5rem;margin-bottom:1rem}.timer{font-variant-numeric:tabular-nums;font-weight:350;font-size:clamp(3rem,6vw,4.4rem);line-height:1.2;letter-spacing:.04em}.timer-panel .muted{color:#cfdaea}.interval-name{min-height:2.5rem;font-size:1rem}.timer-panel progress{accent-color:#9eb9fa;width:100%;height:7px;margin-top:1rem}label{display:block;font-weight:600;font-size:.94rem;margin:.9rem 0 .4rem}input,select,textarea{display:block;width:100%;padding:.65rem .8rem;border:1px solid #9dacbf;border-radius:7px;background:#fff;color:#192f48;min-height:46px}textarea{resize:vertical;min-height:115px;font-weight:400}input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0}.checkbox{display:flex;align-items:flex-start;gap:.6rem;font-weight:400}.rating{max-width:160px}.step-list{padding:0;list-style:none;margin:0}.step-list li{border-bottom:1px solid #dee6ef;font-size:.875rem;padding:.55rem .7rem;display:flex;gap:.5rem}.step-list li.current{background:#eaf0fe;border-left:3px solid #244fc1;font-weight:650}.step-list .step-time{margin-left:auto;white-space:nowrap;color:#4c627c}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}th{background:#edf2f8;color:#38516f;font-weight:650}td,th{padding:.8rem;border-bottom:1px solid #d6e0eb;vertical-align:top;white-space:normal}td a{font-weight:600}.timeline{border-left:2px solid #c5d4e7;margin-left:.5rem;padding-left:1.2rem;max-height:490px;overflow:auto}.timeline p{margin:.1rem 0;font-size:.875rem}.timeline article{padding:.55rem 0 .8rem}.empty{color:#62738a;padding:1rem 0}.narrow{max-width:840px}.back{display:inline-block;margin-bottom:1rem;font-size:.9rem}.field-help{font-size:.85rem;color:#586b82;margin:.3rem 0}.radio-row{display:flex;gap:1rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.live-announcement{font-size:.9rem;margin:.8rem 0;color:#355c80}.programme-line{border-top:1px solid #d1dce9;padding-top:1rem}.danger-text{color:#893332}@media(max-width:1350px){main,#storage-status{margin-left:2rem;margin-right:2rem}}@media(max-width:950px){.layout{grid-template-columns:1fr}.layout>aside{order:2}.schedule{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}header{gap:1rem}nav{gap:1rem}}@media(max-width:600px){header{padding:1rem;align-items:flex-start;flex-direction:column;gap:.5rem}nav{width:100%;justify-content:space-between;gap:.5rem}nav a{font-size:.875rem}main,#storage-status{margin-left:1rem;margin-right:1rem}main{padding-top:1rem}.card{padding:1.2rem}.schedule{grid-template-columns:repeat(2,minmax(0,1fr))}.day{min-height:128px}.split{grid-template-columns:1fr}.stat-grid{gap:.5rem}.stat-grid .card{padding:.9rem}.large-number{font-size:2rem}.actions>*{flex:1 1 auto}.demo-banner{font-size:.75rem;gap:0;flex-direction:column}h1{font-size:2.2rem}.week-tabs{gap:.35rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{padding-bottom:5rem}#practice-controls{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:.75rem;background:#fff;border-top:1px solid #aabbce;box-shadow:0 -3px 18px #18365715;padding:.7rem 1rem}#practice-controls[hidden]{display:none}#practice-controls span{font-size:.9rem;margin-right:1rem}@media(max-width:600px){#practice-controls{flex-wrap:wrap;gap:.4rem}#practice-controls span{flex-basis:100%;text-align:center;font-size:.8rem;line-height:1.2}#practice-controls button{min-height:42px;padding:.4rem .8rem}body{padding-bottom:7rem}}
.source-text p{margin:.7rem 0 1.05rem;overflow-wrap:anywhere}.source-text p:last-child{margin-bottom:0}.day.completed{background:#eef6f2;border-color:#83a595}.day.waiting{background:#edf1f6;border-style:dashed;color:#52647b}.day.invalid{background:#fff7e9}.sound-controls{border-top:1px solid #758ba5;margin-top:1rem;padding-top:.8rem}.sound-controls button{width:100%;font-size:.9rem}.sound-controls p{font-size:.875rem;line-height:1.5;margin-top:.7rem}.break-instruction{font-size:1.2rem;background:#eef6f2;padding:1rem;border-radius:8px}#release-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem 1rem}#release-form label{grid-row:1}#release-form select{grid-row:2}#release-form .actions{grid-column:1/-1}.player-layout{align-items:start}.practice-body,.practice-side{min-width:0}.timer-panel .interval-name{min-height:0;margin:.6rem 0}.practice-side details{border:0;padding:0}.practice-side .card{padding:1.1rem}.material-details{margin-top:1rem}#experience{margin-top:1.4rem}#experience textarea{min-height:150px}#reflection label{margin-top:1.4rem}#reflection{border-left:4px solid #244fc1}#session-access{font-size:.9rem}@media(max-width:950px){.player-layout>.practice-side{order:0}.player-layout>.practice-body{order:1}.player-layout{gap:0}.practice-side>.card{margin-bottom:.75rem}.timer-panel{padding:1.1rem}.timer{font-size:3rem}.practice-side .sound-controls p{max-width:65ch}}@media(max-width:600px){#release-form{display:block}.timer-panel .eyebrow{font-size:.7rem}.timer-panel .sound-controls p{line-height:1.4}.player-layout .source-text{font-size:1rem}.card p{overflow-wrap:anywhere}.practice-side>.card{padding:.75rem 1rem}.practice-side .actions{margin:.7rem 0}}

.practice-primary{margin-bottom:1rem}.practice-reference .card{padding:1.1rem}.sound-controls.compact{padding-top:.6rem;margin-top:.6rem}.sound-controls.compact p{margin:.5rem 0;font-size:.875rem}.sound-card h2{font-size:1.1rem}@media(max-width:950px){.player-layout>.practice-side{display:contents}.player-layout .practice-primary{order:0}.player-layout .practice-body{order:1}.player-layout .practice-reference{order:2}.practice-primary .timer-panel p{margin:.4rem 0}.practice-primary .timer-panel .timer{font-size:2.6rem}.practice-primary .actions{margin:.5rem 0}.practice-primary .timer-panel{padding:1rem;margin-bottom:.5rem}}

.day[aria-disabled=true]{cursor:default}.day.completed,.day.waiting{border-color:#9daabd}.day .availability{font-size:.875rem}.demo-banner{font-size:.875rem}

.demo-links{display:grid;gap:.65rem;margin:1rem 0}.demo-links .button{display:block;text-align:left;font-size:.9rem;white-space:normal}

.session-heading{max-width:850px;margin-bottom:1.5rem}.session-purpose{font-size:1.15rem}.stage-outline{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 1.6rem;padding-left:1.6rem;font-size:.875rem}.stage-outline li{padding-left:.1rem}.stage-outline li span:last-child{white-space:nowrap;color:#546b86;margin-left:.5rem}.cycle-introduction h2{font-size:1.5rem}.cycle-introduction .button{margin-top:.8rem}.full-instructions>summary{color:#244fc1}.full-instructions details{margin-top:.5rem}.current-instructions{border-left:4px solid #244fc1}.next-instructions .eyebrow{letter-spacing:.04em}.session-preview details{scroll-margin-top:1rem}@media(max-width:600px){.stage-outline{grid-template-columns:1fr;gap:.25rem}.stage-outline li{display:list-item}.stage-outline li span:last-child{float:right}.session-duration{margin-bottom:0}.overview-layout{gap:0}.session-purpose{font-size:1rem}}

.dark .demo-links .button{color:#183451}

.reading-screen .notice{border-color:#244fc1;background:#edf3ff}.briefing-navigation{display:flex;gap:.6rem;margin:1rem 0;flex-wrap:wrap}.briefing-navigation button{flex:1}.briefing-content{border:1px solid #cdd8e6;background:#fff;border-radius:8px;padding:1.2rem;margin-bottom:1rem}.briefing-content h3{margin-top:0}.reading-status h2{color:white;font-size:1.4rem}.reading-status p{color:#e1eaf7}.briefing-host{border-left:4px solid #244fc1}.source-reflections{padding-left:1.4rem}@media(max-width:600px){.briefing-content{padding:1rem}.briefing-navigation button{font-size:.85rem;padding:.5rem}}

/* Research provenance hashes and qualified duration labels must fit their cards. */
.layout>section,.layout>aside{min-width:0}.card p{overflow-wrap:anywhere}

.reviewer-toggle{display:flex;align-items:flex-start;gap:.8rem;font-weight:600}.reviewer-toggle input[type=checkbox]{flex:0 0 auto;width:1.25rem;height:1.25rem;margin:.2rem 0 0}.reviewer-settings form{max-width:850px}

/* The welcome is an untimed entry page. All styling stays within this route. */
.welcome-page{background:#f6f7f9;padding-bottom:0}
.welcome-page:has(#practice-controls:not([hidden])){padding-bottom:5rem}
.welcome-page #storage-status:not(.error){display:none}
.welcome-page .brand-mark{flex:0 0 45px;line-height:1;font-size:1.35rem}
.welcome-page main{padding-top:2.8rem;padding-bottom:2.5rem;min-height:0}
.welcome-hero{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3.5rem;align-items:center;padding:1rem 0 3rem}
.welcome-copy{max-width:31rem;min-width:0}
.welcome-eyebrow{font-size:.875rem;letter-spacing:.13em;text-transform:uppercase;color:#356366;font-weight:650;margin:0 0 1.1rem}
.welcome-copy h1{font-size:clamp(5rem,8.9vw,8.2rem);line-height:.95;letter-spacing:-.06em;color:#132e50;margin:0 0 1.8rem}
.welcome-intro{font-size:1.25rem;line-height:1.65;color:#213d5b;margin:0 0 .8rem}
.welcome-description{font-size:1.0625rem;line-height:1.75;color:#50657b;margin:0 0 1.8rem}
.welcome-enter{min-width:185px;max-width:100%;min-height:54px;padding:.85rem clamp(.7rem,3vw,1.4rem);font-size:1.0625rem;gap:clamp(.5rem,4vw,2rem);border-radius:7px}
.welcome-enter span{font-size:1.4rem;line-height:1}
.welcome-return{font-size:.875rem;color:#50657b;max-width:30ch;margin:1rem 0 0}
.welcome-art{margin:0;min-width:0;aspect-ratio:4/3;overflow:hidden;border-radius:22px;background:#172f4c;box-shadow:0 16px 42px #17345310}
.welcome-art img{display:block;width:100%;height:100%;object-fit:cover;color:transparent}
.welcome-review{border-top:1px solid #d2dbe5;padding:1.35rem 0 0;display:flex;gap:1.5rem;align-items:baseline}
.welcome-review>span{flex:0 0 auto;font-size:.875rem;font-weight:650;color:#705127;border-left:3px solid #b58b50;padding-left:.75rem}
.welcome-review p{max-width:75ch;font-size:.875rem;line-height:1.7;color:#50657b;margin:0}
@media(max-width:1000px){.welcome-hero{gap:2rem}.welcome-copy h1{font-size:clamp(3rem,9vw,6rem)}.welcome-intro{font-size:1.125rem}}
@media(max-width:760px){.welcome-page main{padding-top:1.8rem}.welcome-hero{grid-template-columns:1fr;gap:2rem;padding:0 0 1.7rem}.welcome-copy{max-width:34rem}.welcome-copy h1{font-size:clamp(3rem,20vw,5.5rem);margin-bottom:1.3rem}.welcome-art{max-width:640px;width:100%;border-radius:16px}.welcome-review{flex-direction:column;gap:.7rem}.welcome-description{margin-bottom:1.4rem}}
@media(max-width:400px){.welcome-page header{padding-top:.6rem;padding-bottom:.6rem}.welcome-page main{padding-top:.6rem}.welcome-eyebrow{letter-spacing:.09em;font-size:.8125rem;margin-bottom:.8rem}.welcome-copy h1{font-size:clamp(3rem,20vw,4.7rem);margin-bottom:.8rem}.welcome-intro{font-size:1.0625rem;line-height:1.6}.welcome-description{font-size:1rem;line-height:1.6}.welcome-return{max-width:none}}
@media(max-width:600px){.welcome-page:has(#practice-controls:not([hidden])){padding-bottom:7rem}.welcome-page header>.brand{display:none}}

/* Account entry actions preserve the separate, untimed demonstration route. */
.welcome-actions{display:flex;flex-wrap:wrap;gap:.7rem}.welcome-actions .welcome-enter{min-width:0;gap:.5rem}.welcome-demo{margin-top:1.35rem}.welcome-demo>a{font-weight:600;display:inline-block;padding:.3rem 0}.welcome-demo p{font-size:.875rem;color:#50657b;max-width:40ch;margin:.35rem 0 0}@media(max-width:400px){.welcome-actions .welcome-enter{padding:.65rem .75rem;font-size:1rem;min-height:48px}}
