:root{--bg: #0d1729;--bg-raised: #152340;--bg-sunken: #0a1120;--line: #27395c;--line-soft: #1c2b49;--text: #eef2f8;--text-dim: #9aa9c2;--text-faint: #6b7c99;--accent: #dfbe72;--accent-fill: #c9a44c;--on-accent: #101c33;--accent-soft: rgba(201, 164, 76, .16);--accent-line: rgba(201, 164, 76, .38);--good: #5fbf8f;--warn: #dfbe72;--bad: #e08878;--info: #7fb0e0;--logo-gold: #dfbe72;--logo-page: #ffffff;--logo-page-mid: #dde4ef;--logo-page-back: #b9c5d8;--logo-book-light: #3a5c96;--logo-book: #24406e;--radius: 14px;--radius-lg: 20px;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .25);--serif: ui-serif, Georgia, "Iowan Old Style", "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--tabbar: 62px}@media (prefers-color-scheme: light){:root{--bg: #f4f2ed;--bg-raised: #ffffff;--bg-sunken: #eae7e0;--line: #d6d2c9;--line-soft: #e5e1d9;--text: #14233f;--text-dim: #4e5d78;--text-faint: #7d8ba3;--accent: #8a6a15;--accent-fill: #c9a44c;--on-accent: #101c33;--accent-soft: rgba(201, 164, 76, .16);--accent-line: rgba(160, 124, 44, .36);--good: #2e8b5f;--bad: #b8492f;--info: #2d5f96;--shadow: 0 1px 2px rgba(20, 35, 63, .06), 0 8px 24px rgba(20, 35, 63, .07);--logo-gold: #c9a44c;--logo-page: #ffffff;--logo-page-mid: #e8edf5;--logo-page-back: #c8d2e2;--logo-book-light: #2a4778;--logo-book: #1b3054}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none;padding:0;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4{margin:0;font-weight:620;letter-spacing:-.015em}p{margin:0}ul{margin:0;padding:0;list-style:none}.app{min-height:100dvh;display:flex;flex-direction:column}.screen{flex:1;width:100%;max-width:640px;margin:0 auto;padding:calc(var(--safe-top) + 18px) 18px calc(var(--safe-bottom) + var(--tabbar) + 28px)}.screen--session{padding-bottom:calc(var(--safe-bottom) + 28px)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;gap:2px;padding:6px 8px calc(var(--safe-bottom) + 6px);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line-soft)}.tabbar__item{flex:1 1 0;max-width:110px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:10px;color:var(--text-faint);font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;font-weight:600;transition:color .15s}.tabbar__item[aria-current=true]{color:var(--accent)}.tabbar__glyph{width:22px;height:22px;display:grid;place-items:center}.brand{display:flex;align-items:center;gap:10px}.brand__word{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);line-height:1.2}.brand__word strong{display:block;font-weight:750;letter-spacing:.11em;color:var(--text)}.brand-footer{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:8px}.brand-footer__tagline{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}.eyebrow{font-size:11px;font-weight:680;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint)}.eyebrow--accent{color:var(--accent)}.display{font-size:clamp(28px,8vw,36px);line-height:1.1;letter-spacing:-.03em}.title{font-size:21px;line-height:1.25}.subtitle{font-size:15px;color:var(--text-dim);line-height:1.55}.prompt-text{font-family:var(--serif);font-size:clamp(20px,5.4vw,25px);line-height:1.38;letter-spacing:-.01em}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.tiny{font-size:13px;line-height:1.5}.center{text-align:center}.card{background:var(--bg-raised);border:1px solid var(--line-soft);border-radius:var(--radius);padding:16px}.card--accent{border-color:var(--accent-line);background:linear-gradient(180deg,var(--accent-soft),color-mix(in srgb,var(--bg-raised) 92%,transparent))}.card--flat{background:var(--bg-sunken);border-color:transparent}.stack{display:flex;flex-direction:column}.stack-4>*+*{margin-top:4px}.stack-8>*+*{margin-top:8px}.stack-12>*+*{margin-top:12px}.stack-16>*+*{margin-top:16px}.stack-24>*+*{margin-top:24px}.stack-32>*+*{margin-top:32px}.row{display:flex;align-items:center;gap:10px}.row--between{justify-content:space-between}.spacer{flex:1}.divider{height:1px;background:var(--line-soft);border:0;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border-radius:12px;font-size:15px;font-weight:640;letter-spacing:.01em;background:var(--bg-raised);border:1px solid var(--line);color:var(--text);transition:transform .08s ease,opacity .15s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.4;cursor:default}.btn--primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim);min-height:42px}.btn--danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.btn--block{width:100%}.btn--sm{min-height:38px;padding:0 14px;font-size:13.5px;border-radius:10px}.btn--record{width:96px;height:96px;border-radius:50%;background:var(--accent-fill);border:none;display:grid;place-items:center;box-shadow:0 0 0 8px var(--accent-soft)}.btn--record[data-recording=true]{background:var(--bad);box-shadow:0 0 0 8px color-mix(in srgb,var(--bad) 18%,transparent);animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 8px color-mix(in srgb,var(--bad) 18%,transparent)}50%{box-shadow:0 0 0 18px color-mix(in srgb,var(--bad) 5%,transparent)}}@media (prefers-reduced-motion: reduce){.btn--record[data-recording=true]{animation:none}}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--bg-raised);font-size:12.5px;font-weight:560;color:var(--text-dim)}.chip--accent{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.chip--good{border-color:color-mix(in srgb,var(--good) 40%,transparent);background:color-mix(in srgb,var(--good) 12%,transparent);color:var(--good)}.chip--bad{border-color:color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.field{display:block}.field__label{display:block;margin-bottom:6px;font-size:11px;font-weight:680;letter-spacing:.11em;text-transform:uppercase;color:var(--accent)}.field__hint{display:block;margin-bottom:8px;font-size:13px;color:var(--text-faint)}.input,.textarea{width:100%;background:var(--bg-sunken);border:1px solid var(--line);border-radius:12px;padding:13px 14px;font-size:16px;line-height:1.5;resize:vertical;transition:border-color .15s}.input:focus,.textarea:focus{outline:none;border-color:var(--accent-line)}.textarea{min-height:110px}.textarea--tall{min-height:190px}.textarea--brain{font-family:var(--serif);font-size:17px;line-height:1.6}.steps{display:flex;gap:4px;margin-bottom:18px}.steps__pip{flex:1;height:3px;border-radius:2px;background:var(--line)}.steps__pip[data-state=done]{background:var(--accent-fill)}.steps__pip[data-state=active]{background:var(--accent-fill);opacity:.55}.timer{display:inline-flex;align-items:baseline;gap:4px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:30px;font-weight:500;letter-spacing:-.02em}.timer[data-low=true]{color:var(--bad)}.timer__unit{font-size:13px;color:var(--text-faint);font-family:var(--sans)}.ring{display:block}.ring__track{stroke:var(--line)}.ring__value{stroke:var(--accent-fill);transition:stroke-dashoffset .3s linear}.ring__value[data-low=true]{stroke:var(--bad)}.progress-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.progress-bar__fill{height:100%;border-radius:3px;background:var(--accent-fill);transition:width .4s ease}.score-row+.score-row{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}.score-pips{display:flex;gap:8px;margin-top:10px}.score-pip{flex:1;height:44px;border-radius:10px;border:1px solid var(--line);background:var(--bg-sunken);font-family:var(--mono);font-size:15px;color:var(--text-faint);transition:all .12s}.score-pip[aria-pressed=true]{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent);font-weight:700}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-grid--3{grid-template-columns:repeat(3,1fr)}.stat{background:var(--bg-raised);border:1px solid var(--line-soft);border-radius:var(--radius);padding:14px}.stat__value{font-size:26px;font-weight:660;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.stat__label{margin-top:3px;font-size:12px;color:var(--text-faint)}.meter{display:grid;grid-template-columns:84px 1fr 34px;align-items:center;gap:10px}.meter__label{font-size:13.5px;color:var(--text-dim)}.meter__track{display:block;height:8px;border-radius:4px;background:var(--line);overflow:hidden}.meter__fill{display:block;height:100%;border-radius:4px;background:var(--accent-fill);transition:width .5s ease}.meter__value{font-family:var(--mono);font-size:13px;text-align:right;color:var(--text-dim);font-variant-numeric:tabular-nums}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day-cell{aspect-ratio:1;border-radius:10px;border:1px solid var(--line-soft);background:var(--bg-sunken);display:grid;place-items:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-faint);position:relative}.day-cell[data-state=done]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:640}.day-cell[data-state=current]{border-color:var(--accent-fill);color:var(--text);font-weight:700;box-shadow:0 0 0 2px var(--accent-soft)}.day-cell[data-state=locked]{opacity:.42;cursor:default}.list-item{display:flex;align-items:flex-start;gap:12px;padding:14px 0;border-bottom:1px solid var(--line-soft);width:100%;text-align:left}.list-item:last-child{border-bottom:none}.bullet-list li{position:relative;padding-left:18px;margin-bottom:6px;font-size:14.5px;color:var(--text-dim);line-height:1.5}.bullet-list li:before{content:"";position:absolute;left:3px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--accent-fill)}.numbered{counter-reset:n}.numbered li{counter-increment:n;position:relative;padding-left:30px;margin-bottom:10px;color:var(--text-dim);font-size:14.5px}.numbered li:before{content:counter(n);position:absolute;left:0;top:1px;width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;display:grid;place-items:center}.quote{font-family:var(--serif);font-size:17px;line-height:1.5}.phrase-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;background:var(--bg-raised);border:1px solid var(--line-soft)}.icon-btn{width:34px;height:34px;flex:0 0 34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:var(--bg-sunken);color:var(--text-faint)}.icon-btn[aria-pressed=true]{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.coach-line{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--text-dim)}.coach-line:before{content:"";flex:0 0 6px;width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--accent-fill)}.strike{text-decoration:line-through;color:var(--text-faint)}.audio-player{width:100%;height:38px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sticky-actions{position:sticky;bottom:0;padding:14px 0 calc(var(--safe-bottom) + 10px);background:linear-gradient(to top,var(--bg) 62%,transparent);margin-top:8px}.fade-in{animation:fadeIn .28s ease both}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.fade-in{animation:none}}
