:root{--ink:#112420;--muted:#65736d;--paper:#f8f7f2;--card:#fff;--line:#e2e6df;--lime:#c9e968;--orange:#ff7856;--blue:#c6e5e6;--radius:22px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;padding-bottom:90px}.app{max-width:700px;margin:auto;padding:25px 18px 30px}.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.top p,.eyebrow{font-size:.74rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0}.profile{border:0;background:var(--ink);color:#fff;width:42px;height:42px;border-radius:50%;font-weight:700;cursor:pointer}.view h1{font:600 clamp(2.1rem,8vw,3.2rem)/.98 Fraunces,serif;letter-spacing:-.045em;margin:0 0 10px}.lede{color:var(--muted);line-height:1.5;margin:0}.hero{background:var(--ink);color:#fff;border-radius:var(--radius);padding:25px;margin:25px 0 30px;overflow:hidden;position:relative}.hero:after{content:'✦';position:absolute;right:20px;bottom:-31px;font:11rem Fraunces;color:rgba(201,233,104,.17)}.hero>*{position:relative;z-index:1}.hero .eyebrow{color:var(--lime)}.hero h2{font:500 2rem/1.06 Fraunces,serif;letter-spacing:-.04em;max-width:400px;margin:11px 0}.hero p{color:#d9e1dc;line-height:1.45;max-width:440px}.button{border:0;border-radius:13px;background:var(--lime);color:var(--ink);min-height:49px;padding:0 18px;font:700 .95rem 'DM Sans';cursor:pointer}.button.secondary{background:#edf1eb}.button.dark{background:var(--ink);color:#fff}.section{margin:30px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:14px}.section h2{font:600 1.45rem Fraunces,serif;letter-spacing:-.03em;margin:3px 0 0}.link{border:0;background:none;color:var(--muted);font-weight:700;padding:6px;cursor:pointer}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:10px 0}.continue{display:flex;gap:14px;align-items:center}.number{width:47px;height:47px;border-radius:14px;background:var(--blue);display:grid;place-items:center;font-weight:700;flex:none}.continue h3,.resource h3{font:600 1.08rem/1.18 Fraunces,serif;margin:0}.continue p,.resource p{color:var(--muted);line-height:1.4;margin:6px 0 0;font-size:.93rem}.continue .button{margin-left:auto;flex:none}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px}.chips button{white-space:nowrap;border:1px solid var(--line);background:var(--card);padding:9px 12px;border-radius:999px;color:var(--muted);font-weight:700;cursor:pointer}.chips button.active{background:var(--ink);border-color:var(--ink);color:#fff}.resource{position:relative}.resource-top{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.resource h3{margin-top:12px;font-size:1.25rem}.resource .meta{font-size:.8rem;margin:7px 0;color:var(--muted)}.resource-actions{display:flex;gap:9px;margin-top:15px}.mini{border:0;background:#edf1eb;border-radius:10px;padding:10px 12px;font-weight:700;color:var(--ink);cursor:pointer}.mini.primary{background:var(--lime)}.today-practice{background:#fff0e9;border-color:#ffd4c8}.progress{height:9px;background:#e9eee8;border-radius:99px;overflow:hidden;margin:12px 0 8px}.progress i{display:block;height:100%;background:var(--lime);border-radius:99px}.library-tools{position:sticky;top:0;background:var(--paper);padding:7px 0 12px;z-index:2}.search{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;font:1rem 'DM Sans';margin:18px 0 11px}.status{font-size:.73rem;background:#edf1eb;color:#44534c;padding:6px 9px;border-radius:999px;font-weight:700}.resource.external{cursor:pointer}.resource.external:hover{border-color:#91aea5}.practice-card h3{font:600 1.3rem Fraunces,serif;margin:9px 0}.practice-card p{line-height:1.5;color:var(--muted)}.practice-card.real{border-left:5px solid #66a89b}.practice-card.simulated{border-left:5px solid var(--orange)}.metric{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.metric:last-child{border:0}.metric span{color:var(--muted)}.source-note{font-size:.83rem;line-height:1.45;color:var(--muted);padding:14px;background:#edf1eb;border-radius:14px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:max(7px,env(safe-area-inset-bottom)) 8px 7px;z-index:5}.bottom-nav button{border:0;background:none;color:var(--muted);padding:7px 2px;font:700 .72rem 'DM Sans';display:grid;gap:3px;justify-items:center;cursor:pointer}.bottom-nav span{font-size:1.35rem}.bottom-nav button.active{color:var(--ink)}.bottom-nav button.active span{color:#41907d}.reader{position:fixed;inset:0;z-index:10;background:#fff;overflow:auto;padding:18px max(20px,calc((100vw - 700px)/2));padding-bottom:40px}.reader header{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.back,.reader-action{border:0;background:none;color:var(--ink);font-weight:700;font-size:.95rem;padding:8px 0;cursor:pointer}.reader article{font-size:1.08rem;line-height:1.72;max-width:620px}.reader h1{font:600 2.5rem/1.02 Fraunces,serif;letter-spacing:-.045em;margin:10px 0 18px}.reader h2{font:600 1.45rem/1.15 Fraunces,serif;margin:30px 0 9px}.reader p{margin:0 0 16px}.reader .eyebrow{margin-top:8px}.reader blockquote{border-left:4px solid var(--lime);margin:22px 0;padding:12px 17px;background:#f2f7e7;font-family:Fraunces,serif}.toast{position:fixed;z-index:20;bottom:100px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 8px 25px #0003}.hidden{display:none!important}@media(min-width:760px){body{padding-bottom:0}.app{padding:44px 30px 70px}.bottom-nav{top:0;bottom:0;right:auto;width:88px;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:20px;background:#fff}.app{margin-left:88px}.bottom-nav button{font-size:.67rem}.reader{padding-left:max(50px,calc((100vw - 660px)/2));padding-right:max(50px,calc((100vw - 660px)/2))}}
