:root{background:#f2f2f7}
.page>header{min-height:44px;margin-bottom:22px;padding-right:100px}
.header-context{font-size:.8125rem;white-space:nowrap}
.site-menu-trigger{position:fixed;right:max(16px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:30;background:#ffffffed;border:1px solid #e3e3ea;box-shadow:0 3px 16px #18213a0b;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:9px 14px;min-height:44px;border-radius:24px;font-size:.9375rem;color:#25252a;display:flex;align-items:center;gap:7px}
.home-launch{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:4px 0 20px}
.home-launch h1{font-size:1.9rem;line-height:1.15;margin:6px 0;letter-spacing:-.04em}
.home-kicker{font-size:.75rem;letter-spacing:.05em;font-weight:600;color:#6b6b74;margin:0}
#home-start{flex:none;width:auto;min-width:116px;margin:0;padding:13px 20px;border-radius:24px;display:flex;gap:18px;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 5px 15px #0066d620}
#home-start span{font-size:1.4rem;line-height:1}
.home-cards{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
.home-card{background:#fff;border:1px solid #e9e9f0;border-radius:24px;padding:22px;box-shadow:0 5px 22px #1c1c1e04;min-width:0}
.home-card h2{font-size:1.3rem;line-height:1.25;margin:10px 0 12px;letter-spacing:-.03em;overflow-wrap:normal}
.home-card>p:not(.card-label):not(.card-signature){font-size:1rem;line-height:1.5;margin:10px 0}
.card-label{font-size:.75rem;font-weight:650;letter-spacing:.04em;color:#74747d;line-height:1.35;margin:0}
.card-signature{font-size:.8125rem;font-weight:700;letter-spacing:.08em;color:#333;margin:14px 0 8px}
.home-card small{font-size:.8125rem;line-height:1.4;color:#777}
.home-checklist{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr);gap:24px;align-items:start;margin:14px 0 4px;padding:20px 22px;background:#15233a;color:#fff;border-radius:24px;box-shadow:0 8px 26px #17233b16}
.home-checklist .card-label{color:#b9c8dc}.home-checklist h2{font-size:1.2rem;line-height:1.25;letter-spacing:-.025em;margin:8px 0 0}.home-checklist ol{margin:0;padding-left:21px;display:grid;gap:8px;color:#e6edf7;font-size:.9375rem;line-height:1.45}.home-checklist li::marker{color:#85b5ff;font-weight:700}
.modes-card{background:#f9fbff}
.modes-card dl{margin:0;display:grid;gap:10px}
.modes-card dt{font-weight:600;font-size:.9375rem;color:#25252a;line-height:1.4}
.modes-card dd{margin:0;font-size:.875rem;color:#686873;line-height:1.4}
.modes-card dt span{display:inline-block;font-size:.75rem;font-weight:500;background:#e6f3ea;border-radius:6px;padding:1px 5px;color:#226548;vertical-align:middle}
#home-modes{font-size:.875rem;padding:8px 0;margin-top:5px;min-height:44px;background:transparent;text-align:left}
#home .reviews-section{margin-top:20px;padding-top:16px}
#home .reviews-section h2{font-size:1.15rem;margin:0}
#home .community-caption{margin:5px 0;font-size:.875rem}
#home #review-summary{font-size:.875rem;margin:4px 0 10px}
#home #reviews-list{max-height:240px;overflow:auto}
#user-dialog{max-width:460px}
#user-dialog>.muted{font-size:.9375rem;line-height:1.5;margin:10px 0 18px}
#user-dialog #profiles{max-height:40dvh;overflow:auto;padding:2px}
#user-dialog .profile{border:1px solid #e7e7ee}
#user-dialog #new-user{position:sticky;bottom:0}
.dialog-menu-trigger{position:absolute;right:48px;top:-8px;min-height:44px;padding:8px 10px;font-size:.875rem;border-radius:20px;background:#eaeaef;color:#4e4e59}
#site-menu{position:fixed;inset:12px 12px auto auto;margin:0;width:min(300px,calc(100% - 24px));max-height:calc(var(--visible-height,100dvh) - 24px);padding:20px;border-radius:26px;background:#f9f9fceF;box-shadow:0 20px 70px #0e17282b}
#site-menu h2{text-align:left;margin:0 0 8px;font-size:1.4rem}
#menu-person{margin:0 0 16px;font-size:.875rem;overflow-wrap:anywhere}
#site-menu nav{display:grid;gap:4px}
#site-menu nav button{text-align:left;border-radius:12px;padding:11px 14px;background:#fff;color:#25252a;min-height:46px;font-size:1rem}
#site-menu nav button:hover{background:#eaf1fc}
#site-menu nav .menu-delete{color:#b3262b;background:#fff1f0;margin-top:10px}
#support-dialog,#delete-dialog{max-width:460px}
.contact-email{display:block;padding:18px 12px;background:#eaf1fc;color:#0066d6;border-radius:16px;text-align:center;font-size:1rem;text-underline-offset:4px;overflow-wrap:anywhere;margin:20px 0}
.delete-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.delete-actions button{flex:1}
.danger{background:#b3262b;color:white}.danger:hover{background:#982025}
.support button{font-size:.875rem}
@media screen and (max-width:600px){
 .page>header{min-height:46px;margin-bottom:8px;padding-right:84px}
 .header-context{display:none}
 .site-menu-trigger{right:max(14px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));padding:8px 12px;font-size:.875rem}
 .home-launch{flex:none;margin:2px 0 12px;gap:10px}
 #home .home-launch h1{font-size:1.5rem;margin:5px 0;line-height:1.15}
 .home-kicker{font-size:.75rem;letter-spacing:.025em}
 #home-start{min-width:103px;padding:11px 16px;gap:10px}
 .home-cards{flex:none;gap:10px}
 .home-card{border-radius:20px;padding:14px}
 .home-card h2{font-size:1.1rem;margin:8px 0;line-height:1.25}
 .home-card>p:not(.card-label):not(.card-signature){font-size:.875rem;line-height:1.45;margin:8px 0}
 .card-label{font-size:.75rem;letter-spacing:.015em}
 .card-signature{font-size:.75rem;margin:10px 0 6px}
 .home-card small{font-size:.75rem;line-height:1.35}
 .home-checklist{grid-template-columns:1fr;gap:10px;border-radius:20px;padding:16px;margin:10px 0 2px}.home-checklist h2{font-size:1.1rem}.home-checklist ol{font-size:.875rem;gap:6px}
 .modes-card dl{gap:8px}
 .modes-card dt,.modes-card dd{font-size:.875rem;line-height:1.35}
 #home-modes{margin:2px 0 0;font-size:.875rem;min-height:44px;padding:8px 0}
 .page>#home{display:flex;flex-direction:column}
 #home .reviews-section{flex:1;min-height:130px;display:flex;flex-direction:column;margin-top:12px;padding-top:10px}
 #home .review-heading,#home #review-summary,#home .community-caption{flex:none}
 #home .review-heading h2{font-size:1.1rem}
 #home .review-heading button{padding:8px 12px;min-height:44px}
 #home .community-caption{display:none}
 #home #reviews-list{flex:1;min-height:0;max-height:none;overflow:auto}
 #home .review-card{padding:12px 14px}
 #home .review-card p{margin:5px 0}
 #home #reviews-more,#home #reviews-retry{flex:none;margin-top:6px;min-height:44px;padding:8px}
 #user-dialog #profiles{max-height:38dvh}
 #user-dialog #new-user{margin-top:12px;padding:12px}
}
@media screen and (max-width:340px){.home-card{padding:11px}.home-cards{gap:8px}.home-launch{gap:8px}#home-start{min-width:90px;padding:10px 12px}.home-kicker{letter-spacing:0}#home .home-launch h1{font-size:1.3rem}}
@media print{.site-menu-trigger,#site-menu{display:none!important}}

/* One natural document scroll, including small screens and the keyboard. */
html,body{height:auto;overflow:visible}
.page{height:auto;min-height:100svh;overflow:visible}
.page>section,.page>#practice,.page>#home{display:block;overflow:visible;min-height:0}
.practice-stage{display:block;overflow:visible;padding-bottom:16px}
.practice-dock{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0 8px;border-top:1px solid #dedee7;margin-top:20px;scroll-margin:24px}
.practice-dock #next{width:100%;margin:0;min-height:50px}
.practice-dock #skip-free,.practice-dock #finish-free{flex:1;min-height:46px}
#home #reviews-list{max-height:none;overflow:visible;flex:none}
#home .reviews-section{display:block;min-height:0}
#profile-form>.row{position:static}
#notice{max-height:none;overflow:visible}
.support{margin-top:24px;margin-bottom:20px}
#question-panel,#complete{scroll-margin-top:20px}
#scroll-cue{position:fixed;z-index:20;bottom:max(16px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);border-radius:24px;padding:12px 18px;background:#0066d6;color:white;border:1px solid #ffffff70;box-shadow:0 8px 30px #00397438;font-size:.9375rem;line-height:1.4;min-height:48px;text-align:center}
#scroll-cue:hover{background:#0055b3}
body:has(#scroll-cue:not([hidden])) .page{padding-bottom:90px}
@media screen and (max-width:600px){
 .page{display:block;padding:12px 16px max(24px,env(safe-area-inset-bottom))}
 .page>.support{display:flex}
 .practice-stage{padding-top:8px}
 #greeting{display:block;white-space:normal;margin-top:10px}
 .progress-label{margin:16px 0 8px}
 .home-card>p:not(.card-label):not(.card-signature),.modes-card dd{font-size:1rem}
}
@media screen and (max-width:380px){.home-cards{grid-template-columns:1fr}}
@media print{#scroll-cue{display:none!important}}

.profile-eyebrow{font-size:.75rem;letter-spacing:.07em;color:#6d6d78;margin:16px 0 6px}
#editor>h1{margin:8px 0 18px;font-size:2rem}
.profile-intro{padding:24px;border-radius:24px;background:linear-gradient(135deg,#fff,#edf4ff);border:1px solid #e1e8f2}
.profile-intro h2,.profile-context h2{font-size:1.25rem;letter-spacing:-.025em;margin:0 0 10px}
.profile-intro p,.profile-context p{font-size:1rem;line-height:1.6;margin:8px 0;color:#51515c}
.profile-intro .note,.profile-context .note{font-size:.875rem}
.profile-context{margin:28px 2px 18px}
#profile-context-count{color:#0066d6;font-weight:550}
.profile-group{background:#fff;border:1px solid #e3e3eb;border-radius:20px;margin:12px 0;padding:0 20px;box-shadow:0 3px 16px #15152803}
.profile-group>summary{padding:20px 0;font-weight:600;font-size:1rem;line-height:1.5;min-height:60px;color:#23232c}
.profile-group[open]>summary{border-bottom:1px solid #eeeef3}
.profile-group .note{margin-top:16px}
.profile-group .fields{margin:20px 0 24px;gap:20px}
#profile-form input,#profile-form select{border:1px solid #e1e1e9;border-radius:12px;background:#f7f7fa;padding:13px;font-size:1rem;min-height:48px}
#profile-form label{font-size:.9375rem;line-height:1.45;gap:8px}
#profile-form>.fields{margin:20px 0;border-radius:24px}
#profile-form>.row{margin-top:24px;gap:12px;padding-bottom:16px}
@media(max-width:600px){.profile-intro{padding:20px}.profile-group{padding:0 16px}.profile-group .fields{grid-template-columns:1fr}.profile-context{margin-top:24px}}
.save-state{font-size:.875rem;line-height:1.5;color:#52685c;margin:12px 0;min-height:21px}
.save-state[data-error="true"]{color:#a52222;font-weight:600}
#resume-section{background:#edf3fc;border:1px solid #d6e2f4;border-radius:18px;padding:16px;margin:18px 0}
#resume-section h3{font-size:1rem;margin:0 0 12px}#resume-section button{text-align:left;font-size:.9375rem}
#backup-dialog{max-width:560px}#backup-dialog label{margin-top:24px}#backup-preview p{padding:12px;background:#eef2f8;border-radius:12px;overflow-wrap:anywhere}#backup-message{line-height:1.5}
textarea:focus-visible,a:focus-visible{outline:3px solid #4675dc;outline-offset:3px}
:root[data-custom="true"] #resume-section,:root[data-custom="true"] #backup-preview p{background:#252525;border-color:#444}
:root[data-custom="true"] .save-state{color:#b5cbbc}:root[data-custom="true"] .save-state[data-error="true"]{color:#ffb9b9}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{animation:none!important;transition:none!important}}
#scroll-cue{position:static;transform:none;width:100%;max-width:none;margin:14px 0;box-shadow:none;border-radius:14px}
body:has(#scroll-cue:not([hidden])) .page{padding-bottom:24px}
