@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_646807{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_646807{--font-sans:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/287637279c44650d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b387097da7407747-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cb9f64d62d112b41-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_ae2eaa{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_ae2eaa{--font-display:"Fraunces","Fraunces Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{color-scheme:light;--ground:#FDF7F4;--surface:#FFFDFC;--raised:#FFFFFF;--sunk:#F4EBE6;--veil:rgba(255,255,255,.72);--ink:#2E2029;--ink-2:#6B5967;--ink-3:#A2909D;--line:#EFE2DC;--line-soft:#F5ECE8;--rose:#E1567C;--rose-deep:#C33C64;--rose-soft:#FDE8EE;--violet:#7B5CF0;--violet-soft:#EDE8FE;--mint:#0FA98F;--mint-soft:#D7F3EC;--amber:#DE8A0B;--amber-soft:#FCEED5;--clay:#D0553C;--clay-soft:#FBE3DC;--on-accent:#FFFFFF;--shadow-xs:0 1px 2px rgba(80,40,60,.05);--shadow-sm:0 1px 2px rgba(80,40,60,.05),0 4px 12px rgba(80,40,60,.05);--shadow-md:0 2px 6px rgba(80,40,60,.06),0 14px 34px rgba(80,40,60,.09);--shadow-lg:0 4px 10px rgba(80,40,60,.07),0 26px 60px rgba(80,40,60,.13);--glow-rose:0 6px 20px rgba(225,86,124,.28);--r-xs:7px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--fs-xs:0.6875rem;--fs-sm:0.8125rem;--fs-base:0.9375rem;--fs-md:1.0625rem;--fs-lg:1.3125rem;--fs-xl:1.75rem;--fs-2xl:2.5rem;--sans:var(--font-sans),ui-sans-serif,system-ui,"Helvetica Neue",Arial,sans-serif;--display:var(--font-display),Georgia,"Times New Roman",serif;--mono:var(--font-mono),ui-monospace,SFMono-Regular,Menlo,monospace;--spring:cubic-bezier(.34,1.56,.64,1);--ease:cubic-bezier(.32,.72,0,1);--maxw:1180px}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:var(--fs-base);line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(58rem 30rem at 12% -8%,rgba(225,86,124,.16),transparent 62%),radial-gradient(48rem 26rem at 88% -2%,rgba(123,92,240,.14),transparent 60%),radial-gradient(40rem 24rem at 60% 108%,rgba(15,169,143,.1),transparent 60%)}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.015em;text-wrap:balance}a{color:var(--rose-deep);-webkit-text-decoration-color:color-mix(in srgb,var(--rose) 32%,transparent);text-decoration-color:color-mix(in srgb,var(--rose) 32%,transparent);text-underline-offset:2px;transition:color .18s var(--ease),-webkit-text-decoration-color .18s var(--ease);transition:color .18s var(--ease),text-decoration-color .18s var(--ease);transition:color .18s var(--ease),text-decoration-color .18s var(--ease),-webkit-text-decoration-color .18s var(--ease)}a:hover{color:var(--rose);-webkit-text-decoration-color:var(--rose);text-decoration-color:var(--rose)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:4px}::selection{background:var(--rose-soft);color:var(--rose-deep)}.app{max-width:var(--maxw);margin:0 auto;padding:0 clamp(14px,3vw,30px) 110px}.topbar{display:flex;gap:12px;padding:22px 0 4px}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:8px;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.brand:before{content:"";width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,var(--rose),var(--violet));box-shadow:0 0 0 3px var(--rose-soft)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.who{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.04em;max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:620px){.who{display:none}}.greet{padding:10px 0 26px}.greet h1{font-family:var(--display);font-weight:600;font-size:clamp(1.9rem,5.2vw,3rem);line-height:1.1;letter-spacing:-.03em;background:linear-gradient(112deg,var(--ink) 12%,var(--rose-deep) 58%,var(--violet) 96%);-webkit-background-clip:text;background-clip:text;color:transparent}.greet h1 .heart{-webkit-text-fill-color:initial;color:initial;display:inline-block;margin-left:.18em;animation:beat 2.6s var(--ease) infinite;transform-origin:center}@keyframes beat{0%,62%,to{transform:scale(1)}72%{transform:scale(1.22)}82%{transform:scale(1.04)}90%{transform:scale(1.13)}}.greet p{margin:9px 0 0;font-size:var(--fs-md);color:var(--ink-2);max-width:56ch}.statbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:22px}@media (max-width:700px){.statbar{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{position:relative;overflow:hidden;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px 15px;min-width:0;box-shadow:var(--shadow-xs);transition:transform .3s var(--spring),box-shadow .3s var(--ease)}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.stat-k{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.stat-v{margin-top:4px;font-family:var(--display);font-size:1.7rem;font-weight:600;letter-spacing:-.02em;line-height:1.05}.stat-v small{font-family:var(--sans);font-size:.48em;font-weight:500;color:var(--ink-3);margin-left:4px;letter-spacing:0}.meter{height:5px;background:var(--sunk);margin-top:11px;overflow:hidden}.meter,.meter i{border-radius:99px}.meter i{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--violet));transition:width .7s var(--ease)}.meter.mint i{background:linear-gradient(90deg,var(--mint),#63D3B8)}.meter.amber i{background:linear-gradient(90deg,var(--amber),#F3C45E)}.meter.violet i{background:linear-gradient(90deg,var(--violet),#A78BFA)}.nav{display:flex;gap:4px;padding:5px;margin-bottom:22px;background:var(--veil);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:99px;overflow-x:auto;scrollbar-width:none;position:-webkit-sticky;position:sticky;top:10px;z-index:30;box-shadow:var(--shadow-sm)}.nav::-webkit-scrollbar{display:none}.navlink{flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:99px;font-size:var(--fs-sm);font-weight:550;color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:background .2s var(--ease),color .2s var(--ease),transform .3s var(--spring)}.navlink:hover{background:var(--sunk);color:var(--ink);transform:translateY(-1px)}.navlink[aria-current=page]{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:var(--on-accent);box-shadow:var(--glow-rose)}.navlink[aria-current=page]:hover{color:var(--on-accent)}.navlink .badge{min-width:19px;padding:1px 6px;border-radius:99px;background:var(--rose-soft);color:var(--rose-deep);font-family:var(--mono);font-size:10px;font-weight:600;text-align:center}.navlink[aria-current=page] .badge{background:rgba(255,255,255,.28);color:var(--on-accent)}.card{background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-pad{padding:clamp(17px,2.6vw,26px)}.card-lift{transition:transform .3s var(--spring),box-shadow .3s var(--ease)}.card-lift:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.section-head{margin:34px 0 14px}.section-head:first-child{margin-top:0}.section-head h2{font-family:var(--display);font-size:var(--fs-xl);letter-spacing:-.025em}.section-head p{margin:5px 0 0;font-size:var(--fs-base);color:var(--ink-2);max-width:68ch}.label{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.prose{font-size:var(--fs-base);line-height:1.68;color:var(--ink-2);max-width:66ch}.prose strong{color:var(--ink);font-weight:600}.prose p{margin:0 0 11px}.prose p:last-child{margin-bottom:0}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;border:1px solid var(--line);background:var(--sunk);font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink-2);white-space:nowrap}.pill.rose{background:var(--rose-soft);color:var(--rose-deep);border-color:color-mix(in srgb,var(--rose) 22%,transparent)}.pill.violet{background:var(--violet-soft);color:var(--violet);border-color:color-mix(in srgb,var(--violet) 22%,transparent)}.pill.mint{background:var(--mint-soft);color:var(--mint);border-color:color-mix(in srgb,var(--mint) 24%,transparent)}.pill.amber{background:var(--amber-soft);color:var(--amber);border-color:color-mix(in srgb,var(--amber) 28%,transparent)}.pill.clay{background:var(--clay-soft);color:var(--clay);border-color:color-mix(in srgb,var(--clay) 24%,transparent)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 17px;border-radius:99px;border:1px solid var(--line);background:var(--raised);font-size:var(--fs-sm);font-weight:600;color:var(--ink);box-shadow:var(--shadow-xs);transition:transform .25s var(--spring),box-shadow .25s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--ink-3)}.btn:active{transform:translateY(0) scale(.97)}.btn.primary{background:linear-gradient(135deg,var(--rose),var(--rose-deep));border-color:transparent;color:var(--on-accent);box-shadow:var(--glow-rose)}.btn.primary:hover{box-shadow:0 10px 26px rgba(225,86,124,.36)}.btn.violet{background:linear-gradient(135deg,var(--violet),#6247D8);border-color:transparent;color:var(--on-accent);box-shadow:0 6px 20px rgba(123,92,240,.28)}.btn.ghost{background:transparent;color:var(--ink-3);padding:7px 11px}.btn.ghost,.btn.ghost:hover{border-color:transparent;box-shadow:none}.btn.ghost:hover{background:var(--sunk);color:var(--ink)}.btn.sm{padding:5px 12px;font-size:var(--fs-xs)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}input:where(:not([type=checkbox],[type=radio],[type=submit])),select,textarea{width:100%;padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-base);transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease)}input:where(:not([type=checkbox])):hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--rose) 30%,var(--line))}input:where(:not([type=checkbox])):focus,select:focus,textarea:focus{outline:none;background:var(--raised);border-color:var(--rose);box-shadow:0 0 0 3px var(--rose-soft)}textarea{resize:vertical;min-height:74px}input::placeholder,textarea::placeholder{color:var(--ink-3)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.field label{display:block;font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}.rise{animation:rise .42s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.today-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:18px;gap:18px;align-items:start}@media (max-width:960px){.today-grid{grid-template-columns:minmax(0,1fr)}}.daybar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:17px 20px;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,color-mix(in srgb,var(--rose-soft) 45%,transparent),transparent)}.daybar h2{font-family:var(--display);font-size:var(--fs-lg)}.daybar .date{font-family:var(--mono);font-size:var(--fs-sm);color:var(--ink-3);margin-top:2px}.daynav{margin-left:auto;display:flex;gap:3px;align-items:center}.blocks{list-style:none;margin:0;padding:0}.block{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:6px 13px;gap:6px 13px;padding:15px 20px;border-bottom:1px solid var(--line-soft)}.block,.block:before{transition:background .3s var(--ease)}.block:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}.block:last-child{border-bottom:0}.block:hover{background:color-mix(in srgb,var(--sunk) 45%,transparent)}.block.done{background:color-mix(in srgb,var(--mint) 6%,transparent)}.block.done:before{background:var(--mint)}.block.active{background:color-mix(in srgb,var(--amber) 9%,transparent)}.block.active:before{background:var(--amber)}.tick{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;width:22px;height:22px;flex:none;margin:0;border:2px solid var(--line);border-radius:8px;background:var(--surface);position:relative;transition:background .25s var(--ease),border-color .25s var(--ease),transform .3s var(--spring)}.tick:hover{border-color:var(--mint);transform:scale(1.08)}.tick:checked{background:linear-gradient(135deg,var(--mint),#45C7AC);border-color:transparent}.tick:checked:after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--on-accent);border-width:0 2.5px 2.5px 0;transform:rotate(43deg);animation:pop .3s var(--spring)}@keyframes pop{0%{transform:rotate(43deg) scale(.2);opacity:0}to{transform:rotate(43deg) scale(1);opacity:1}}.block-name{font-weight:600;font-size:var(--fs-base);align-self:center}.block.done .block-name{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,transparent);text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,transparent)}.block-task{grid-column:2/-1;font-size:var(--fs-base);color:var(--ink-2);line-height:1.55}.block-task b{color:var(--ink);font-weight:600}.block-side{display:flex;align-items:center;gap:7px}.min-in{width:62px;padding:5px 8px;text-align:right;font-size:var(--fs-sm);border-radius:var(--r-xs)}.block-min,.min-in{font-family:var(--mono)}.block-min{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}.timer-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink-2);transition:transform .3s var(--spring),background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.timer-btn:hover{border-color:var(--rose);color:var(--rose);transform:scale(1.1)}.timer-btn.running{background:linear-gradient(135deg,var(--amber),#F2B33F);border-color:transparent;color:var(--on-accent);animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(222,138,11,.45)}60%{box-shadow:0 0 0 9px rgba(222,138,11,0)}}@media (max-width:560px){.block{grid-template-columns:auto minmax(0,1fr)}.block-side{grid-column:1/-1;justify-content:flex-end}}.habits{display:grid;grid-gap:8px;gap:8px}.habit{display:flex;align-items:center;gap:11px;padding:10px 13px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:left;width:100%;transition:transform .3s var(--spring),border-color .2s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}.habit:hover{transform:translateX(3px);border-color:color-mix(in srgb,var(--violet) 35%,var(--line));box-shadow:var(--shadow-xs)}.habit .emo{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:11px;background:var(--violet-soft);font-size:17px;transition:transform .35s var(--spring),background .25s var(--ease)}.habit.on{background:var(--mint-soft);border-color:color-mix(in srgb,var(--mint) 34%,transparent)}.habit.on .emo{background:var(--raised);transform:rotate(-8deg) scale(1.06)}.habit .nm{font-weight:600;font-size:var(--fs-sm);min-width:0}.habit.on .nm{color:var(--mint)}.habit .run{margin-left:auto;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}.habit.on .run{color:var(--mint)}.rail{display:grid;grid-gap:16px;gap:16px;position:-webkit-sticky;position:sticky;top:76px}@media (max-width:960px){.rail{position:static}}.ring-wrap{display:flex;align-items:center;gap:18px}.ring{flex:none}.ring-track{stroke:var(--sunk)}.ring-fill{transition:stroke-dashoffset .8s var(--ease)}.ring-num{font-family:var(--display);font-size:22px;font-weight:600;fill:var(--ink)}.ring-den{font-family:var(--mono);font-size:9.5px;fill:var(--ink-3);letter-spacing:.08em}.streakflame{font-family:var(--display);font-size:2.1rem;font-weight:600;line-height:1;background:linear-gradient(135deg,var(--amber),var(--rose));-webkit-background-clip:text;background-clip:text;color:transparent}.mini-rows{display:grid;grid-gap:10px;gap:10px}.mini-row{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-sm);align-items:baseline}.mini-row span:first-child{color:var(--ink-3)}.mini-row span:last-child{font-family:var(--mono);font-weight:600;text-align:right}.energy{display:flex;gap:6px}.energy button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;flex:1 1;padding:9px 0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:17px;line-height:1;filter:grayscale(1) opacity(.5);transition:transform .3s var(--spring),filter .25s var(--ease),background .25s var(--ease),border-color .2s var(--ease)}.energy button:hover{transform:translateY(-3px) scale(1.06);filter:grayscale(0) opacity(1)}.energy button[aria-pressed=true]{filter:none;background:var(--amber-soft);border-color:color-mix(in srgb,var(--amber) 40%,transparent);transform:scale(1.06)}.done-note{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:var(--r-md);background:linear-gradient(120deg,var(--mint-soft),var(--violet-soft));color:var(--ink);font-size:var(--fs-sm);font-weight:600;animation:rise .5s var(--spring) both}.done-note .spark{font-size:19px;animation:beat 2.2s var(--ease) infinite}.review-stage{max-width:620px;margin:0 auto}.flashcard{position:relative;display:grid;place-items:center;grid-gap:14px;gap:14px;min-height:250px;padding:34px 26px;text-align:center;border-radius:var(--r-xl);border:1px solid var(--line);background:radial-gradient(30rem 16rem at 50% -10%,var(--rose-soft),transparent 70%),var(--raised);box-shadow:var(--shadow-md);animation:dealIn .4s var(--spring) both}@keyframes dealIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.flashcard .prompt-k{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}.flashcard .term{font-family:var(--display);font-size:clamp(1.8rem,6vw,2.7rem);font-weight:600;letter-spacing:-.03em;line-height:1.12}.flashcard .meaning{font-size:var(--fs-md);color:var(--ink-2);max-width:44ch}.flashcard .example{font-style:italic;color:var(--ink-3);font-size:var(--fs-base);max-width:46ch;padding-top:10px;border-top:1px dashed var(--line)}.flashcard .reveal{animation:rise .3s var(--ease) both}.grade-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:9px;gap:9px;margin-top:16px}.grade{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:grid;grid-gap:2px;gap:2px;justify-items:center;padding:13px 8px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);font-weight:600;font-size:var(--fs-sm);box-shadow:var(--shadow-xs);transition:transform .28s var(--spring),box-shadow .25s var(--ease),background .2s var(--ease)}.grade:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}.grade:active{transform:scale(.96)}.grade small{font-family:var(--mono);font-size:10px;font-weight:500;color:var(--ink-3);letter-spacing:.05em}.grade.again:hover{background:var(--clay-soft);border-color:color-mix(in srgb,var(--clay) 35%,transparent)}.grade.good:hover{background:var(--mint-soft);border-color:color-mix(in srgb,var(--mint) 35%,transparent)}.grade.easy:hover{background:var(--violet-soft);border-color:color-mix(in srgb,var(--violet) 35%,transparent)}.choices{display:grid;grid-gap:9px;gap:9px;width:100%;max-width:420px}.choice{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:12px 16px;text-align:left;border-radius:var(--r-md);border:1px solid var(--line);background:var(--raised);font-size:var(--fs-base);font-weight:550;transition:transform .25s var(--spring),border-color .2s var(--ease),background .2s var(--ease)}.choice:hover:not([disabled]){transform:translateX(4px);border-color:var(--violet);background:var(--violet-soft)}.choice.right{background:var(--mint-soft);border-color:var(--mint);color:var(--mint)}.choice.wrong{background:var(--clay-soft);border-color:var(--clay);color:var(--clay)}.choice[disabled]{cursor:default;opacity:1}.review-progress{display:flex;align-items:center;gap:11px;margin-bottom:16px}.review-progress .meter{flex:1 1;margin:0}.review-progress .count{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.08em;white-space:nowrap}.finish{display:grid;grid-gap:12px;gap:12px;justify-items:center;text-align:center;padding:44px 26px;animation:rise .45s var(--spring) both}.finish .big{font-size:46px;animation:beat 2.4s var(--ease) infinite}.finish h3{font-family:var(--display);font-size:var(--fs-xl)}.finish p{margin:0;color:var(--ink-2);max-width:44ch}.finish .tally{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}.mode-switch{display:inline-flex;gap:3px;padding:4px;border-radius:99px;background:var(--sunk);border:1px solid var(--line)}.mode-switch button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:6px 15px;border:0;border-radius:99px;background:transparent;font-size:var(--fs-sm);font-weight:600;color:var(--ink-3);transition:background .22s var(--ease),color .22s var(--ease),box-shadow .22s var(--ease)}.mode-switch button[aria-pressed=true]{background:var(--raised);color:var(--ink);box-shadow:var(--shadow-xs)}.phase-strip{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px;margin-bottom:26px}@media (max-width:800px){.phase-strip{grid-template-columns:repeat(2,1fr)}}.phase-card{padding:15px 16px 17px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--ph);transition:transform .3s var(--spring),box-shadow .3s var(--ease)}.phase-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.phase-card.now{background:var(--raised);box-shadow:var(--shadow-md)}.phase-card .wk{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ph);font-weight:600}.phase-card h3{font-family:var(--display);font-size:var(--fs-md);margin:4px 0 5px}.phase-card p{margin:0;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.5}.week{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin-bottom:8px;overflow:hidden;transition:box-shadow .3s var(--ease),border-color .2s var(--ease)}.week:hover{box-shadow:var(--shadow-sm)}.week.now{border-color:color-mix(in srgb,var(--rose) 45%,transparent);background:var(--raised);box-shadow:var(--shadow-md)}.week.past{opacity:.66}.week.past:hover{opacity:1}.week-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:flex;align-items:center;gap:15px;width:100%;padding:14px 17px;border:0;background:transparent;text-align:left;transition:background .2s var(--ease)}.week-head:hover{background:color-mix(in srgb,var(--sunk) 55%,transparent)}.week-n{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:12px;background:var(--sunk);font-family:var(--mono);font-size:var(--fs-sm);font-weight:600;color:var(--ink-3)}.week.now .week-n{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:var(--on-accent)}.week-title{font-weight:600}.week-dates{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);margin-top:2px}.week-tags{margin-left:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.week-body{padding:2px 17px 20px 70px;display:grid;grid-gap:12px;gap:12px;animation:rise .3s var(--ease) both}@media (max-width:660px){.week-body{padding-left:17px}}.wrow{display:grid;grid-template-columns:96px minmax(0,1fr);grid-gap:13px;gap:13px;align-items:baseline;margin:0}@media (max-width:540px){.wrow{grid-template-columns:minmax(0,1fr);gap:2px}}.wrow dt{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.wrow dd{margin:0;font-size:var(--fs-base);color:var(--ink-2);line-height:1.55}.wrow dd strong{color:var(--ink);font-weight:600}.milestone{margin-top:4px;padding:12px 15px;border-radius:var(--r-sm);background:var(--amber-soft);border-left:3px solid var(--amber);font-size:var(--fs-sm);color:var(--ink-2);line-height:1.55}.note-block{padding:clamp(17px,2.6vw,26px);border-radius:var(--r-lg);background:linear-gradient(135deg,var(--rose-soft),var(--violet-soft));border:1px solid var(--line)}.note-block h3{font-family:var(--display);font-size:var(--fs-md);margin-bottom:8px}.note-block p{margin:0 0 10px;font-size:var(--fs-base);color:var(--ink-2);line-height:1.65}.note-block p:last-child{margin-bottom:0}.note-block strong{color:var(--ink);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding:6px 14px;border-radius:99px;border:1px solid var(--line);background:var(--surface);font-size:var(--fs-sm);font-weight:550;color:var(--ink-2);transition:transform .28s var(--spring),background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.chip:hover{transform:translateY(-2px);border-color:var(--rose);color:var(--rose-deep)}.chip[aria-pressed=true]{background:linear-gradient(135deg,var(--ink),#4A3542);border-color:transparent;color:var(--ground)}.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));grid-gap:12px;gap:12px}.res{position:relative;display:grid;grid-gap:7px;gap:7px;align-content:start;padding:16px 17px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);box-shadow:var(--shadow-xs);transition:transform .3s var(--spring),box-shadow .3s var(--ease),border-color .2s var(--ease)}.res:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--rose) 30%,var(--line))}.res-top{display:flex;gap:9px;align-items:flex-start;justify-content:space-between}.res h4{font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em}.res h4 a{text-decoration:none}.res h4 a:hover{text-decoration:underline}.res p{margin:0;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.5}.res .where{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);word-break:break-all}.res-actions{display:flex;gap:4px;align-items:center;margin-top:3px}.star{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;flex:none;border:0;border-radius:50%;background:transparent;font-size:15px;filter:grayscale(1) opacity(.45);transition:transform .3s var(--spring),filter .25s var(--ease),background .2s var(--ease)}.star:hover{background:var(--sunk);transform:scale(1.15);filter:grayscale(0) opacity(1)}.star[aria-pressed=true]{filter:none}.trap-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.trap-table td,.trap-table th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:top}.trap-table tr:last-child td{border-bottom:0}.trap-table tbody tr{transition:background .2s var(--ease)}.trap-table tbody tr:hover{background:color-mix(in srgb,var(--sunk) 50%,transparent)}.trap-table th{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.trap-table td:first-child{font-weight:600;white-space:nowrap}.trap-table td.fix{color:var(--ink-2)}.ipa{font-family:var(--mono);color:var(--violet)}.scroll-x{overflow-x:auto}.word-form{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;grid-gap:10px;gap:10px;align-items:end}@media (max-width:800px){.word-form{grid-template-columns:1fr 1fr}.word-form>:last-child,.word-form>:nth-child(3){grid-column:span 2}}.words-list{display:grid;grid-gap:8px;gap:8px}.word{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:4px 13px;gap:4px 13px;align-items:center;padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);transition:transform .28s var(--spring),box-shadow .25s var(--ease),border-color .2s var(--ease)}.word:hover{transform:translateX(3px);box-shadow:var(--shadow-sm);border-color:color-mix(in srgb,var(--violet) 28%,var(--line))}.word .ww{grid-column:1;font-weight:600;font-size:var(--fs-md)}.word .wm{grid-column:1/-1;font-size:var(--fs-sm);color:var(--ink-2)}.word .wm em{color:var(--ink-3)}.word .wd{grid-column:3;display:flex;align-items:center;justify-content:flex-end;gap:6px}@media (max-width:560px){.word{grid-template-columns:minmax(0,1fr)}.word .wd,.word .wm,.word .ww{grid-column:1}.word .wd{justify-content:flex-start}}.boxdots{display:inline-flex;gap:3px;align-items:center}.boxdots i{width:5px;height:5px;border-radius:50%;background:var(--sunk);display:block}.boxdots i.on{background:linear-gradient(135deg,var(--mint),var(--violet))}.due-flag{font-family:var(--mono);font-size:var(--fs-xs);color:var(--rose-deep)}.heat{display:grid;grid-template-rows:repeat(7,15px);grid-auto-flow:column;grid-auto-columns:15px;grid-gap:4px;gap:4px;width:max-content}.heat-cell{width:15px;height:15px;border-radius:4px;background:var(--sunk);border:1px solid transparent;transition:transform .2s var(--spring)}.heat-cell:hover{transform:scale(1.35)}.heat-cell.l1{background:color-mix(in srgb,var(--mint) 24%,var(--sunk))}.heat-cell.l2{background:color-mix(in srgb,var(--mint) 50%,var(--sunk))}.heat-cell.l3{background:color-mix(in srgb,var(--mint) 74%,var(--sunk))}.heat-cell.l4{background:var(--mint)}.heat-cell.today{border-color:var(--rose);box-shadow:0 0 0 2px var(--rose-soft)}.heat-legend{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3)}.heat-legend i{width:12px;height:12px;border-radius:3px;display:block}.bars{display:flex;align-items:flex-end;gap:5px;height:160px;min-width:480px}.bar-col{flex:1 1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}.bar{width:100%;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--violet),#A78BFA);min-height:3px;transition:height .6s var(--ease),filter .2s var(--ease)}.bar-col:hover .bar{filter:brightness(1.08) saturate(1.15)}.bar.short{background:linear-gradient(180deg,var(--clay),#E88970)}.bar.zero{background:var(--line)}.bar.now{background:linear-gradient(180deg,var(--rose),var(--rose-deep))}.bar-lab{font-family:var(--mono);font-size:10px;color:var(--ink-3)}.tests{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.tests td,.tests th{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line-soft)}.tests tr:last-child td{border-bottom:0}.tests th{font-size:var(--fs-xs);letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.tests td.band,.tests th{font-family:var(--mono);font-weight:600}.tests td.overall{font-family:var(--mono);font-weight:700;color:var(--rose-deep);font-size:var(--fs-base)}.test-form{display:grid;grid-template-columns:1.4fr repeat(4,78px) auto;grid-gap:10px;gap:10px;align-items:end}@media (max-width:800px){.test-form{grid-template-columns:repeat(4,1fr)}.test-form>:first-child,.test-form>:last-child{grid-column:span 4}}.checklist{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.checklist li{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line-soft)}.checklist li:last-child{border-bottom:0}.checklist .txt{font-size:var(--fs-base);color:var(--ink-2)}.checklist input:checked+.txt{color:var(--ink-3);text-decoration:line-through}.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));grid-gap:16px;gap:16px}.dayselect{display:flex;gap:6px;flex-wrap:wrap}.dayselect button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;min-width:46px;padding:8px 0;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-family:var(--mono);font-size:var(--fs-xs);font-weight:600;color:var(--ink-3);transition:transform .28s var(--spring),background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.dayselect button:hover{transform:translateY(-2px);border-color:var(--violet);color:var(--violet)}.dayselect button[aria-pressed=true]{background:linear-gradient(135deg,var(--violet),#6247D8);border-color:transparent;color:var(--on-accent)}.emoji-pick{display:flex;flex-wrap:wrap;gap:5px}.emoji-pick button{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-size:17px;line-height:1;transition:transform .28s var(--spring),background .2s var(--ease),border-color .2s var(--ease)}.emoji-pick button:hover{transform:translateY(-2px) scale(1.06)}.emoji-pick button[aria-pressed=true]{background:var(--violet-soft);border-color:var(--violet);transform:scale(1.06)}.empty{padding:34px 24px;text-align:center;border:1px dashed var(--line);border-radius:var(--r-md);background:color-mix(in srgb,var(--surface) 70%,transparent)}.empty,.footnote{color:var(--ink-3)}.footnote{font-size:var(--fs-sm);max-width:68ch}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));grid-gap:16px;gap:16px;align-items:start}.row{display:flex;gap:9px;flex-wrap:wrap}.row,.soon{align-items:center}.soon{display:inline-flex;gap:6px;padding:3px 10px;border-radius:99px;background:var(--violet-soft);color:var(--violet);font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}.auth-wrap{position:relative;min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{position:relative;width:100%;max-width:430px;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:38px 32px 34px;overflow:hidden;animation:rise .55s var(--spring) both}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--rose),var(--violet),var(--mint))}.auth-card h1{font-family:var(--display);font-size:clamp(1.5rem,5.5vw,1.95rem);letter-spacing:-.03em;line-height:1.15;margin-bottom:8px}.auth-card h1 .heart{display:inline-block;animation:beat 2.6s var(--ease) infinite}.auth-card .sub{color:var(--ink-2);font-size:var(--fs-base);line-height:1.6;margin:0 0 24px}.auth-card form{display:grid;grid-gap:11px;gap:11px}.auth-card .btn{padding:12px 18px}.auth-msg{margin-top:18px;padding:12px 14px;border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.5;animation:rise .35s var(--ease) both}.auth-msg.ok{background:var(--mint-soft);color:var(--mint)}.auth-msg.bad{background:var(--clay-soft);color:var(--clay)}.auth-foot{margin:22px 0 0;text-align:center;font-size:var(--fs-xs);color:var(--ink-3)}.boot{display:grid;place-items:center;min-height:50dvh;grid-gap:16px;gap:16px}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--sunk);border-top-color:var(--rose);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.skel{border-radius:var(--r-md);background:linear-gradient(90deg,var(--sunk) 25%,var(--line-soft) 50%,var(--sunk) 75%);background-size:200% 100%;animation:shimmer 1.5s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.linkbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);cursor:pointer;letter-spacing:.05em;transition:color .2s var(--ease)}.linkbtn:hover{color:var(--rose-deep);text-decoration:underline;text-underline-offset:3px}.banner{display:flex;align-items:center;gap:10px;padding:11px 16px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--clay) 28%,transparent);background:var(--clay-soft);color:var(--clay);border-radius:var(--r-md);font-size:var(--fs-sm);animation:rise .35s var(--ease) both}