@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:400;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.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:400;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:500;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.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:500;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:600;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.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:600;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-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:700;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.p.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:700;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-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_81df72{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_81df72{--font-fraunces:"Fraunces","Fraunces Fallback"}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;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:400;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:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.p.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:400;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;font-style:normal;font-weight:500;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:500;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:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.p.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:500;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;font-style:normal;font-weight:600;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:600;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:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.p.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:600;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;font-style:normal;font-weight:700;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:700;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:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.p.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:700;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_e7bc25{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_e7bc25{--font-jakarta:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}:root{--accent:18 92% 56%;--accent-strong:14 84% 47%;--accent-soft:24 100% 96%;--brand-ink:196 44% 16%;--brand-2:172 48% 42%;--brand-2-soft:168 52% 94%;--paper:36 44% 98%;--surface:0 0% 100%;--surface-2:36 38% 96%;--line:30 22% 89%;--line-strong:28 18% 80%;--muted:200 14% 42%;--ink:200 30% 18%;--success:152 56% 38%;--success-soft:150 56% 94%;--warning:38 92% 48%;--warning-soft:42 100% 93%;--danger:358 70% 52%;--danger-soft:356 84% 96%;--info:172 48% 42%;--info-soft:168 52% 94%;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:26px;--r-pill:999px;--shadow-sm:0 1px 2px hsl(var(--brand-ink)/0.06),0 1px 3px hsl(var(--brand-ink)/0.04);--shadow-md:0 4px 12px hsl(var(--brand-ink)/0.07),0 2px 4px hsl(var(--brand-ink)/0.05);--shadow-lg:0 18px 40px -12px hsl(var(--brand-ink)/0.18),0 6px 14px hsl(var(--brand-ink)/0.07);--shadow-accent:0 8px 20px -6px hsl(var(--accent)/0.45);--ring:0 0 0 3px hsl(var(--accent)/0.35);--maxw:1120px;--font-display:var(--font-fraunces),Georgia,"Times New Roman",serif;--font-sans:var(--font-jakarta),system-ui,-apple-system,"Segoe UI",sans-serif}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);color:hsl(var(--ink));background-color:hsl(var(--paper));background-image:radial-gradient(60rem 40rem at 100% -10%,hsl(var(--accent)/.07),transparent 60%),radial-gradient(50rem 38rem at -10% 0,hsl(var(--brand-2)/.07),transparent 55%);background-attachment:fixed;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-display);color:hsl(var(--brand-ink));line-height:1.12;letter-spacing:-.01em;font-weight:560;font-optical-sizing:auto}h1{font-size:clamp(1.9rem,1.3rem + 2.4vw,2.9rem)}h2{font-size:clamp(1.35rem,1.1rem + 1.1vw,1.8rem)}h3{font-size:1.2rem}p{color:hsl(var(--ink))}a{color:hsl(var(--accent-strong));text-decoration:none}a:hover{text-decoration:underline}img,svg{display:block;max-width:100%}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}::selection{background:hsl(var(--accent)/.25)}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1rem,3vw,2rem)}.stack{display:flex;flex-direction:column}.stack>*+*{margin-top:var(--stack-gap,1rem)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cluster-gap,.75rem)}.page{padding-block:clamp(1.5rem,4vw,3rem)}.lead,.muted{color:hsl(var(--muted))}.lead{font-size:1.1rem;line-height:1.65}.center-narrow{max-width:30rem;margin-inline:auto}.wordmark{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:600;font-size:1.4rem;letter-spacing:-.02em;color:hsl(var(--brand-ink))}.wordmark,.wordmark:hover{text-decoration:none}.wordmark__mark{width:2rem;height:2rem;border-radius:9px;display:grid;place-items:center;color:white;background:linear-gradient(140deg,hsl(var(--accent)),hsl(var(--accent-strong)));box-shadow:var(--shadow-accent);font-family:var(--font-display);font-weight:700;font-size:1.15rem;flex:none}.wordmark__dot{color:hsl(var(--accent))}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);background:hsl(var(--paper)/.82);border-bottom:1px solid hsl(var(--line))}.appbar__inner{gap:1rem;min-height:64px}.appbar__inner,.appbar__nav{display:flex;align-items:center}.appbar__nav{gap:.25rem;margin-left:auto}.navlink{color:hsl(var(--ink));font-weight:500;font-size:.95rem;padding:.45rem .7rem;border-radius:var(--r-pill);text-decoration:none;transition:background-color .15s ease,color .15s ease}.navlink:hover{background:hsl(var(--accent-soft));color:hsl(var(--accent-strong));text-decoration:none}.usermenu{position:relative}.usermenu>summary{list-style:none;cursor:pointer;display:inline-flex}.usermenu>summary::-webkit-details-marker{display:none}.usermenu__panel{position:absolute;right:0;top:calc(100% + .5rem);min-width:12rem;background:hsl(var(--surface));border:1px solid hsl(var(--line));border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:.4rem;z-index:50}.usermenu__panel a,.usermenu__panel button{display:block;width:100%;text-align:left;padding:.5rem .65rem;border-radius:var(--r-sm);color:hsl(var(--ink));font-size:.92rem;background:none;border:none;cursor:pointer;font:inherit;text-decoration:none}.usermenu__panel a:hover,.usermenu__panel button:hover{background:hsl(var(--surface-2));text-decoration:none}.avatar{width:var(--avatar-size,2.2rem);height:var(--avatar-size,2.2rem);border-radius:var(--r-pill);display:inline-grid;place-items:center;font-weight:600;font-size:.85rem;color:hsl(var(--brand-ink));background:hsl(var(--accent-soft));border:1px solid hsl(var(--line));flex:none;text-transform:uppercase;line-height:1}.avatar--teal{background:hsl(var(--brand-2-soft));color:hsl(var(--brand-2))}.btn{--btn-bg:hsl(var(--accent));--btn-fg:white;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-weight:600;font-size:.95rem;line-height:1;padding:.7rem 1.15rem;border-radius:var(--r-pill);border:1px solid transparent;cursor:pointer;background:var(--btn-bg);color:var(--btn-fg);transition:transform .08s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease;box-shadow:var(--shadow-sm);white-space:nowrap}.btn,.btn:hover{text-decoration:none}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn:focus-visible{box-shadow:var(--ring)}.btn--primary{--btn-bg:hsl(var(--accent));box-shadow:var(--shadow-accent)}.btn--primary:hover{--btn-bg:hsl(var(--accent-strong))}.btn--secondary{--btn-bg:hsl(var(--surface));--btn-fg:hsl(var(--brand-ink));border-color:hsl(var(--line-strong))}.btn--secondary:hover{--btn-bg:hsl(var(--surface-2))}.btn--ghost{--btn-bg:transparent;--btn-fg:hsl(var(--accent-strong));box-shadow:none}.btn--ghost:hover{--btn-bg:hsl(var(--accent-soft));box-shadow:none}.btn--danger{--btn-bg:hsl(var(--danger));--btn-fg:white}.btn--success{--btn-bg:hsl(var(--success));--btn-fg:white}.btn--block{width:100%}.btn--lg{padding:.9rem 1.5rem;font-size:1.05rem}.btn--sm{padding:.45rem .8rem;font-size:.85rem}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}.btn--google{--btn-bg:hsl(var(--surface));--btn-fg:hsl(var(--brand-ink));border-color:hsl(var(--line-strong));box-shadow:var(--shadow-sm);font-weight:600}.btn--google:hover{--btn-bg:hsl(var(--surface-2))}.btn--google .g-glyph{width:1.05rem;height:1.05rem;flex:none}.card{background:hsl(var(--surface));border:1px solid hsl(var(--line));border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:clamp(1.1rem,2.4vw,1.6rem)}.card--pad-lg{padding:clamp(1.5rem,3vw,2.25rem)}.card--accent{border-top:3px solid hsl(var(--accent))}.card--interactive{transition:transform .12s ease,box-shadow .15s ease,border-color .15s ease}.card--interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:hsl(var(--line-strong))}.card__title{display:flex;align-items:center;gap:.6rem}.card__icon{width:2.4rem;height:2.4rem;border-radius:var(--r-md);flex:none;display:grid;place-items:center;font-size:1.2rem;background:hsl(var(--accent-soft));color:hsl(var(--accent-strong))}.card__icon--teal{background:hsl(var(--brand-2-soft));color:hsl(var(--brand-2))}.field{display:flex;flex-direction:column;gap:.35rem}.field__label{font-weight:600;font-size:.9rem;color:hsl(var(--brand-ink))}.field__hint{font-size:.82rem;color:hsl(var(--muted))}.input,.select,.textarea{width:100%;font:inherit;font-size:.98rem;color:hsl(var(--ink));background:hsl(var(--surface));border:1px solid hsl(var(--line-strong));border-radius:var(--r-md);padding:.65rem .85rem;transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder,.textarea::placeholder{color:hsl(var(--muted)/.8)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent)/.18)}.form-stack{gap:1rem}.field-inline,.form-stack{display:flex;flex-direction:column}.field-inline{gap:.35rem;font-weight:600;font-size:.9rem;color:hsl(var(--brand-ink))}.field-inline>input,.field-inline>select,.field-inline>textarea{width:100%;font:inherit;font-weight:400;font-size:.98rem;color:hsl(var(--ink));background:hsl(var(--surface));border:1px solid hsl(var(--line-strong));border-radius:var(--r-md);padding:.65rem .85rem;transition:border-color .15s ease,box-shadow .15s ease}.field-inline>input:focus,.field-inline>textarea:focus{outline:none;border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent)/.18)}.divider{display:flex;align-items:center;gap:.9rem;color:hsl(var(--muted));font-size:.85rem;text-transform:lowercase}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:hsl(var(--line))}.badge{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;line-height:1;padding:.35rem .6rem;border-radius:var(--r-pill);background:hsl(var(--surface-2));color:hsl(var(--ink));border:1px solid hsl(var(--line))}.badge__dot{width:.5rem;height:.5rem;border-radius:999px;background:currentColor;flex:none}.badge--ofo{background:hsl(var(--accent-soft));color:hsl(var(--accent-strong));border-color:transparent}.badge--parent{background:hsl(var(--brand-2-soft));color:hsl(var(--brand-2));border-color:transparent}.badge--student{background:hsl(252 60% 96%);color:hsl(252 48% 48%);border-color:transparent}.badge--pending{background:hsl(var(--warning-soft));color:hsl(34 86% 34%);border-color:transparent}.badge--active{background:hsl(var(--success-soft));color:hsl(var(--success));border-color:transparent}.badge--rejected{background:hsl(var(--danger-soft));color:hsl(var(--danger));border-color:transparent}.live-pill{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:600;padding:.3rem .7rem;border-radius:var(--r-pill);background:hsl(var(--surface-2));color:hsl(var(--muted));border:1px solid hsl(var(--line))}.live-pill[data-live=true]{background:hsl(var(--success-soft));color:hsl(var(--success));border-color:transparent}.live-pill__dot{width:.5rem;height:.5rem;border-radius:999px;background:currentColor}.live-pill[data-live=true] .live-pill__dot{animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem}.list-row{gap:.75rem;flex-wrap:wrap;padding:.8rem .95rem;border:1px solid hsl(var(--line));border-radius:var(--r-md);background:hsl(var(--surface))}.list-row,.list-row__main{display:flex;align-items:center}.list-row__main{gap:.7rem;min-width:0}.list-row__name{font-weight:600;color:hsl(var(--brand-ink))}.list-row__meta{color:hsl(var(--muted));font-size:.9rem}.list-row__actions{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}.tree{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.tree li{padding:.45rem .7rem;background:hsl(var(--surface-2));border-radius:var(--r-sm);font-size:.92rem}.empty{text-align:center;padding:2rem 1.25rem;border:1px dashed hsl(var(--line-strong));border-radius:var(--r-lg);background:hsl(var(--surface-2)/.5);color:hsl(var(--muted));display:flex;flex-direction:column;align-items:center;gap:.6rem}.empty__icon{font-size:1.8rem;opacity:.7}.empty__title{font-weight:600;color:hsl(var(--brand-ink));font-family:var(--font-display)}.notice{display:flex;align-items:flex-start;gap:.65rem;padding:.8rem 1rem;border-radius:var(--r-md);font-size:.92rem;border:1px solid transparent}.notice__icon{flex:none;font-weight:700}.notice--error{background:hsl(var(--danger-soft));color:hsl(var(--danger));border-color:hsl(var(--danger)/.25)}.notice--success{background:hsl(var(--success-soft));color:hsl(var(--success));border-color:hsl(var(--success)/.25)}.notice--info{background:hsl(var(--info-soft));color:hsl(var(--brand-2));border-color:hsl(var(--brand-2)/.25)}.notice--warning{background:hsl(var(--warning-soft));color:hsl(34 86% 34%);border-color:hsl(var(--warning)/.3)}.toast{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);z-index:60;max-width:min(92vw,30rem);box-shadow:var(--shadow-lg);animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,.5rem)}to{opacity:1;transform:translate(-50%)}}.cookiebar{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:70;margin-inline:auto;max-width:42rem;background:hsl(var(--surface));border:1px solid hsl(var(--line));border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.85rem;animation:toast-in .3s ease}@media (min-width:620px){.cookiebar{flex-direction:row;align-items:center}.cookiebar__actions{margin-left:auto}}.cookiebar__actions{display:flex;gap:.6rem;flex-wrap:wrap}body.has-cookiebar{padding-bottom:9rem}@media (min-width:620px){body.has-cookiebar{padding-bottom:6.5rem}}.chat{display:flex;flex-direction:column;height:min(70vh,640px)}.chat__head{display:flex;align-items:center;gap:.75rem;padding-bottom:.9rem;border-bottom:1px solid hsl(var(--line))}.chat__scroll{flex:1 1;overflow-y:auto;padding:1rem .25rem;display:flex;flex-direction:column;gap:.5rem}.bubble{align-self:flex-start;max-width:80%;background:hsl(var(--surface-2));color:hsl(var(--ink));padding:.6rem .85rem;border-radius:14px 14px 14px 4px;box-shadow:var(--shadow-sm);line-height:1.45;word-break:break-word}.chat__composer{display:flex;gap:.6rem;padding-top:.9rem;border-top:1px solid hsl(var(--line))}.chat__composer .input{flex:1 1}.hero{position:relative;padding-block:clamp(2.5rem,7vw,5.5rem)}.hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;color:hsl(var(--accent-strong));background:hsl(var(--accent-soft));padding:.4rem .8rem;border-radius:var(--r-pill)}.hero__title{font-size:clamp(2.3rem,1.4rem + 4vw,4rem);max-width:16ch}.hero__title em{font-style:normal;color:hsl(var(--accent))}.hero__grid{display:grid;grid-gap:2.5rem;gap:2.5rem;align-items:center}@media (min-width:900px){.hero__grid{grid-template-columns:1.05fr .95fr}}.role-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:1fr}@media (min-width:720px){.role-grid{grid-template-columns:repeat(3,1fr)}}.feature-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;grid-template-columns:1fr;margin-top:2.5rem}@media (min-width:720px){.feature-grid{grid-template-columns:repeat(3,1fr)}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.auth-card{width:100%;max-width:27rem}.auth-card__head{margin-bottom:1.5rem}.auth-card__head,.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.grid-2{display:grid;grid-gap:1.25rem;gap:1.25rem}@media (min-width:860px){.grid-2{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;transition-duration:.001ms!important}}