@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-BOOGhInR.woff2) format("woff2"),url(/assets/inter-latin-400-normal-gitzw0hO.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-D2bGa7uu.woff2) format("woff2"),url(/assets/inter-latin-500-normal-deR1Tlfd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-D273HNI0.woff2) format("woff2"),url(/assets/inter-latin-600-normal-B5cFAncS.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-DtUIId4r.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-Btx04WmO.woff) format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-DUDKB872.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-XTACPmcu.woff) format("woff")}:root{--ground: #0F1115;--ground-deep: #0B0D11;--surface: #171A20;--surface-2: #1D2129;--line: #2A2E36;--line-strong: #3A3F49;--ink: #F4F1EA;--ink-2: #C9CDD4;--mute: #9AA0AA;--signal: #F2A541;--signal-ink: #1A1308;--signal-soft: #241C10;--signal-deep: #3D2E12;--signal-text: #F2A541;--evidence: #7FE0B4;--evidence-bg: #1B2A22;--practice: #F5C77E;--practice-bg: #2A2216;--interp: #A9C3FF;--interp-bg: #1E2433;--phil: #D9C2FF;--phil-bg: #2A2236;--display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;--body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark}:root[data-look=day]{--ground: #F6F4EF;--ground-deep: #ECE9E2;--surface: #FFFFFF;--surface-2: #F1EEE8;--line: #E2DED6;--line-strong: #CBC6BC;--ink: #1A1C21;--ink-2: #3D4250;--mute: #5F6473;--signal-soft: #FCEBD0;--signal-text: #9A5C08;--evidence: #1C6E4A;--evidence-bg: #DFF2E8;--practice: #835410;--practice-bg: #FBEBD3;--interp: #2B55AE;--interp-bg: #E3EAFA;--phil: #6A3D9E;--phil-bg: #EFE6FB;color-scheme:light}:root[data-ctx=home]{--signal: #F2967E;--signal-ink: #2A120C;--signal-deep: #5A2A1E;--signal-soft: #2A1A17;--signal-text: #F2967E}:root[data-ctx=money]{--signal: #5FD3A6;--signal-ink: #0B2219;--signal-deep: #154233;--signal-soft: #12261F;--signal-text: #5FD3A6}:root[data-look=day][data-ctx=home]{--signal-soft: #FBE3DC;--signal-text: #A8432C}:root[data-look=day][data-ctx=money]{--signal-soft: #DDF3E9;--signal-text: #1C6E4A}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--ground-deep);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:root{--sat: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sab: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sal: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--sar: var(--safe-area-inset-right, env(safe-area-inset-right, 0px))}#app{max-width:480px;height:100%;margin:0 auto;padding-top:var(--sat);padding-bottom:var(--sab);background:var(--ground);display:flex;flex-direction:column;position:relative}@media (min-width: 520px){#app{border-left:1px solid var(--line);border-right:1px solid var(--line)}}.gutter{padding-left:max(20px,var(--sal));padding-right:max(20px,var(--sar))}.screen{flex:1;overflow-y:auto;padding-top:16px;padding-bottom:28px;display:flex;flex-direction:column;gap:22px;-webkit-overflow-scrolling:touch}.screen.enter{animation:rise .35s cubic-bezier(.2,.8,.2,1)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:44px}.wordmark{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.02em}.wordmark i{font-style:normal;color:var(--signal-text)}.meta{font-size:13px;color:var(--mute);text-align:right}.iconbtn{background:none;border:none;min-width:44px;min-height:44px;display:grid;place-items:center;color:var(--mute);border-radius:12px}.label{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-text);display:inline-flex;gap:6px;align-items:center}.label.blue{color:var(--interp)}.h1{font-family:var(--display);font-weight:700;font-size:32px;line-height:1.12;letter-spacing:-.015em;margin:0;text-wrap:balance}.h2{font-family:var(--display);font-weight:500;font-size:24px;line-height:1.28;margin:0;text-wrap:balance}.h3{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.3;margin:0}.p{margin:0;color:var(--ink-2)}.small{font-size:13px;color:var(--mute);margin:0}.stack{display:flex;flex-direction:column;gap:10px}.grow{flex:1}.progress{display:flex;gap:6px}.progress i{flex:1;height:4px;border-radius:2px;background:var(--line);transition:background .3s}.progress i.on{background:var(--signal)}.opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:15px 16px;min-height:52px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-weight:500;transition:border-color .15s,background .15s,transform .1s}.opt:active{transform:scale(.99)}.opt .k{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--ink-2);margin-top:-1px;text-transform:uppercase}.opt[aria-pressed=true]{border:2px solid var(--signal);background:var(--signal-soft);padding:14px 15px;font-weight:600}.opt[aria-pressed=true] .k{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.opt:disabled{opacity:.45;cursor:default}.big{min-height:62px;align-items:center}.cta{width:100%;min-height:56px;border-radius:16px;border:none;background:var(--signal);color:var(--signal-ink);font-family:var(--display);font-weight:700;font-size:17px;transition:transform .1s,opacity .2s}.cta:active{transform:scale(.985)}.cta:disabled{background:var(--line);color:var(--mute);cursor:not-allowed}.ghost{width:100%;min-height:52px;border-radius:16px;border:1px solid var(--line-strong);background:var(--surface);font-weight:600;font-size:16px}.light{width:100%;min-height:56px;border-radius:16px;border:none;background:var(--ink);color:var(--ground);font-family:var(--display);font-weight:700;font-size:16px}.linkish{background:none;border:none;color:var(--mute);font-size:14px;min-height:44px;text-decoration:underline;text-underline-offset:3px}.pair{display:flex;gap:12px}.pair>*{flex:1}.conf-row{display:flex;justify-content:space-between;align-items:baseline}.conf-val{font-family:var(--display);font-weight:700;font-size:18px;color:var(--signal-text);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--signal);height:32px}.twist{flex:1;min-height:320px;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:30px 24px;border-radius:24px;background:var(--signal);color:var(--signal-ink);touch-action:pan-y;user-select:none;transition:transform .2s}.twist .tl{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.12em}.twist .line{margin:0;font-family:var(--display);font-weight:700;font-size:28px;line-height:1.18;letter-spacing:-.01em;text-wrap:balance}.twist .sub{margin:0;font-size:14px;color:var(--signal-deep)}.pop{animation:pop .45s cubic-bezier(.2,.9,.3,1.2)}@keyframes pop{0%{transform:scale(.94) rotate(-1deg);opacity:.4}to{transform:none;opacity:1}}.panel{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}.chip{align-self:flex-start;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.chip.evidence{background:var(--evidence-bg);color:var(--evidence)}.chip.practice{background:var(--practice-bg);color:var(--practice)}.chip.interp,.chip.interpretation{background:var(--interp-bg);color:var(--interp)}.chip.phil{background:var(--phil-bg);color:var(--phil)}.chip.check{background:transparent;border:1px solid var(--line-strong);color:var(--ink-2)}.chips{display:flex;flex-wrap:wrap;gap:6px}.src{font-size:12px;color:var(--mute);line-height:1.45}.action{display:flex;flex-direction:column;gap:8px;padding:18px;border-radius:18px;border:2px solid var(--signal)}.action p{margin:0;font-family:var(--display);font-weight:500;font-size:19px;line-height:1.3}.lesson{display:flex;flex-direction:column;gap:22px}.lens{display:flex;flex-direction:column;gap:8px;padding-bottom:22px;border-bottom:1px solid var(--line)}.lens:last-child{border-bottom:none;padding-bottom:0}.lens p{margin:0;font-size:16px;line-height:1.62}.lens .who{font-family:var(--display);font-weight:700;font-size:18px}.offer{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}textarea{width:100%;min-height:80px;resize:vertical;border-radius:14px;border:1px solid var(--line-strong);background:var(--surface);padding:12px 14px;font-size:15px}textarea::placeholder{color:var(--mute)}input.text{width:100%;min-height:52px;border-radius:14px;border:1px solid var(--line-strong);background:var(--surface);padding:12px 14px;font-size:17px}input.text::placeholder{color:var(--mute)}.row input.text{width:60%;min-height:40px;font-size:15px;padding:8px 10px;border-radius:10px;text-align:right}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.week div{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;color:var(--mute)}.week span{width:100%;aspect-ratio:1;max-width:44px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:14px;color:var(--mute)}.week .done span{background:var(--signal);border-color:var(--signal);color:var(--signal-ink)}.week .part span{background:var(--signal-soft);border-color:var(--signal);color:var(--signal-text)}.week .skip span{border-style:dashed;color:var(--ink-2)}.week .rep span{border-color:var(--line-strong);color:var(--ink-2)}.week .today span{border:2px solid var(--ink);color:var(--ink)}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}.stat b{display:block;font-family:var(--display);font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.stat small{font-size:13px;color:var(--mute)}.log{display:flex;flex-direction:column}.log-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding-block:12px;border-bottom:1px solid var(--line)}.log-row:last-child{border-bottom:none}.log-row .t{font-weight:500;min-width:0}.log-row .t small{display:block;color:var(--mute);font-weight:400;font-size:13px}.pill{font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap}.pill.on{background:var(--signal);border-color:var(--signal);color:var(--signal-ink);font-weight:600}.notice{font-size:14px;color:var(--ink-2);padding:12px 14px;border-radius:12px;border:1px dashed var(--line-strong);margin:0}.tabs{display:flex;border-top:1px solid var(--line);background:var(--ground)}.tabs button{flex:1;min-height:58px;border:none;background:none;color:var(--mute);font-weight:600;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.tabs button[aria-current=page]{color:var(--ink)}.tabs button[aria-current=page] svg{stroke:var(--signal)}.hero-line{font-family:var(--display);font-weight:700;font-size:40px;line-height:1.05;letter-spacing:-.02em;margin:0}.hero-line em{font-style:normal;color:var(--signal-text)}.plan{list-style:none;margin:0;padding:0}.plan li{display:flex;gap:12px;align-items:baseline;padding-block:9px;border-bottom:1px solid var(--line)}.plan .n{font-size:12px;color:var(--mute);width:46px;flex:none;font-variant-numeric:tabular-nums}.plan .f{margin-left:auto;font-size:12px;color:var(--mute)}.checkin{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;border:1px dashed var(--signal);font-size:14px}.chipbtn{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:6px 14px;min-height:40px}.chipbtn[aria-pressed=true]{background:var(--signal);color:var(--signal-ink);border-color:var(--signal);font-weight:600}.quarter{display:flex;flex-direction:column}.qname{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding-block:8px}.month{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:start;padding-block:10px;border-top:1px solid var(--line)}.month .mn{font-family:var(--display);font-weight:700;color:var(--mute);font-variant-numeric:tabular-nums}.month .mt{display:flex;flex-direction:column;gap:2px;min-width:0}.month .mt b{font-weight:600;color:var(--ink-2)}.month .mt small{font-size:13px;color:var(--mute)}.month .ms{font-size:12px;font-weight:600;color:var(--signal-text)}.month.now .mn,.month.now .mt b{color:var(--ink)}.mbar{display:block;height:4px;border-radius:2px;background:var(--line);margin-top:6px}.mbar i{display:block;height:100%;border-radius:2px;background:var(--signal)}.seg{display:flex;gap:6px;padding:4px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.seg button{flex:1;min-height:44px;border:none;border-radius:10px;background:transparent;font-weight:600;color:var(--mute)}.seg button[aria-pressed=true]{background:var(--ink);color:var(--ground)}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row select,.row input[type=time]{background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:8px 10px;min-height:40px}.switch{position:relative;width:50px;height:30px;border-radius:15px;border:none;background:var(--line-strong);transition:background .2s;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--ink);transition:transform .2s}.switch[aria-checked=true]{background:var(--signal)}.switch[aria-checked=true]:after{transform:translate(20px);background:var(--signal-ink)}.danger{color:#e5735f}.toast{position:fixed;left:50%;bottom:calc(80px + var(--sab));transform:translate(-50%);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:12px;font-size:14px;font-weight:600;z-index:20;animation:rise .25s}.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ticks li{display:flex;gap:10px;align-items:baseline;color:var(--ink-2)}.ticks li:before{content:"✓";color:var(--signal-text);font-weight:700}.opt.price{align-items:center}.opt.price .grow{flex:1}.opt .tag{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--signal);color:var(--signal-ink);white-space:nowrap}.ob-top{display:flex;align-items:center;gap:8px;min-height:44px;margin-left:-12px}.ob-top .progress{flex:1}.opt .sub{display:block;font-size:13px;font-weight:400;color:var(--mute);margin-top:2px}.seg.four button{font-variant-numeric:tabular-nums}.building{display:flex;flex-direction:column;gap:16px}.b-row{display:flex;align-items:center;gap:12px;margin:0;font-family:var(--display);font-size:20px;font-weight:500;color:var(--line-strong);transition:color .3s}.b-row .dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line-strong);flex:none;display:grid;place-items:center;transition:all .3s}.b-row.now{color:var(--ink-2)}.b-row.now .dot{border-color:var(--signal);border-top-color:transparent;animation:spin .8s linear infinite}.b-row.on{color:var(--ink)}.b-row.on .dot{background:var(--signal);border-color:var(--signal)}.b-row.on .dot:after{content:"";width:8px;height:5px;border:solid var(--signal-ink);border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}@keyframes spin{to{transform:rotate(360deg)}}.plan-card{display:flex;flex-direction:column;border-radius:20px;background:var(--surface);border:1px solid var(--line);animation:rise .45s cubic-bezier(.2,.8,.2,1)}.plan-card>div{display:flex;flex-direction:column;gap:2px;padding:14px 18px;border-bottom:1px solid var(--line)}.plan-card>div:last-child{border-bottom:none}.plan-card small{font-size:12px;color:var(--mute);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.plan-card b{font-family:var(--display);font-size:18px;font-weight:700}.wgoal{display:flex;align-items:center;gap:14px}.wgoal .segs{display:flex;gap:4px;flex:1}.wgoal .segs i{flex:1;height:6px;border-radius:3px;background:var(--line);transition:background .4s}.wgoal .segs i.on{background:var(--signal)}.wgoal .wt{font-size:13px;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.wgoal .wt b{color:var(--ink)}.streak{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--signal-text)}.done-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding-top:12px}.ring{width:112px;height:112px}.ring circle{fill:none;stroke-width:8}.ring .bg{stroke:var(--line)}.ring .fg{stroke:var(--signal);stroke-linecap:round;stroke-dasharray:302;stroke-dashoffset:302;transform:rotate(-90deg);transform-origin:center;animation:fill .9s cubic-bezier(.3,.8,.3,1) .1s forwards}.ring path{fill:none;stroke:var(--signal);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;animation:draw .35s ease-out .85s forwards}@keyframes fill{to{stroke-dashoffset:0}}@keyframes draw{to{stroke-dashoffset:0}}.fade-up{opacity:0;animation:rise .45s cubic-bezier(.2,.8,.2,1) forwards}.d1{animation-delay:.5s}.d2{animation-delay:.8s}.d3{animation-delay:1.1s}.badge{align-self:center;padding:8px 14px;border-radius:999px;background:var(--signal-soft);color:var(--signal-text);font-weight:600;font-size:14px;border:1px solid var(--signal)}@media (prefers-reduced-motion: reduce){.ring .fg,.ring path{stroke-dashoffset:0}.fade-up{opacity:1}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.glyph{flex:none;overflow:visible}.glyph>*{fill:none;stroke:var(--signal);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s cubic-bezier(.45,.1,.25,1) .15s forwards}.glyph>:nth-child(2){animation-delay:.55s}.glyph>:nth-child(3){animation-delay:.75s}.glyph>:nth-child(4){animation-delay:.9s}.glyph.soft>*{stroke:var(--ink-2)}.panel-mark{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.stagger>*{opacity:0;animation:rise .45s cubic-bezier(.2,.8,.2,1) forwards}.stagger>:nth-child(2){animation-delay:.08s}.stagger>:nth-child(3){animation-delay:.16s}.stagger>:nth-child(4){animation-delay:.24s}.stagger>:nth-child(5){animation-delay:.32s}.stagger>:nth-child(6){animation-delay:.4s}.stagger>:nth-child(n+7){animation-delay:.46s}.wgoal .segs i.on{animation:grow .6s cubic-bezier(.2,.8,.2,1) both;transform-origin:left}@keyframes grow{0%{transform:scaleX(0)}to{transform:none}}.opt,.cta,.ghost,.light{transition:transform .12s ease,background .2s,border-color .2s}.opt:active,.cta:active,.ghost:active,.light:active{transform:scale(.98)}@media (prefers-reduced-motion: reduce){.glyph>*{stroke-dashoffset:0}.stagger>*{opacity:1}}.intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--ground);transition:opacity .3s ease}.intro.out{opacity:0;pointer-events:none}.intro-word{font-family:var(--display);font-weight:700;font-size:44px;letter-spacing:-.02em;color:var(--ink);opacity:0;transform:translateY(6px);display:inline-flex;align-items:baseline}.intro.go .intro-word{animation:introWord .5s cubic-bezier(.2,.8,.2,1) forwards}.intro-dot{position:relative;display:inline-block;width:.2em;height:.2em;margin-left:.07em;border-radius:50%;background:var(--signal);opacity:0;transform:scale(.4)}.intro.go .intro-dot{animation:introDot .45s cubic-bezier(.2,.9,.3,1.3) .5s forwards}.intro-dot i{position:absolute;inset:0;border-radius:50%;border:2px solid var(--signal);opacity:0}.intro.go .intro-dot i{animation:introPing .9s cubic-bezier(.2,.7,.3,1) .55s forwards}.intro.still .intro-word,.intro.still .intro-dot{opacity:1;transform:none;animation:none!important}@keyframes introWord{to{opacity:1;transform:none}}@keyframes introDot{to{opacity:1;transform:none}}@keyframes introPing{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(6)}}
