@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.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.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.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.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;font-style:normal;font-weight: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: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: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: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_a11773{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_a11773{--font-display-var:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-mono-var:"JetBrains Mono","JetBrains Mono Fallback"}:root{color-scheme:light;--color-paper:oklch(97% 0.012 95);--color-paper-2:oklch(94% 0.016 95);--color-paper-3:oklch(91% 0.020 95);--color-rule:oklch(86% 0.014 90);--color-rule-2:oklch(70% 0.018 85);--color-muted:oklch(52% 0.014 90);--color-neutral:oklch(38% 0.014 100);--color-ink-2:oklch(28% 0.014 250);--color-ink:oklch(20% 0.012 250);--color-accent:oklch(86% 0.18 95);--color-accent-2:oklch(66% 0.18 235);--color-accent-3:oklch(68% 0.24 18);--color-mint:oklch(80% 0.16 150);--color-lavender:oklch(74% 0.16 305);--color-accent-ink:oklch(20% 0.012 250);--color-focus:oklch(66% 0.18 235);--color-accent-deep:oklch(76% 0.20 95);--color-accent-2-deep:oklch(56% 0.20 235);--color-accent-3-deep:oklch(58% 0.26 18);--color-mint-deep:oklch(70% 0.18 150);--color-lavender-deep:oklch(64% 0.18 305);--tint-pear:oklch(86% 0.18 95/0.16);--tint-cyan:oklch(66% 0.18 235/0.14);--tint-coral:oklch(68% 0.24 18/0.12);--tint-mint:oklch(80% 0.16 150/0.16);--tint-lavender:oklch(74% 0.16 305/0.14);--font-display:var(--font-display-var,"Plus Jakarta Sans"),ui-sans-serif,system-ui,sans-serif;--font-body:var(--font-body-var,"Plus Jakarta Sans"),ui-sans-serif,system-ui,sans-serif;--font-label:var(--font-mono-var,"JetBrains Mono"),ui-monospace,"SF Mono",Menlo,monospace;--tracking-display:-0.025em;--tracking-label:0.10em;--lh-tight:1.08;--lh-snug:1.2;--lh-normal:1.55;--radius-card:24px;--radius-pill:999px;--radius-input:14px;--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-snap:cubic-bezier(0.22,1,0.36,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-soft:cubic-bezier(0.22,0.61,0.36,1);--dur-micro:120ms;--dur-short:220ms;--dur-long:420ms;--dur-tick:1200ms;--page-max:76rem;--page-gutter:clamp(1.25rem,4vw,2.5rem);--measure:62ch;--section-gap:clamp(3rem,7vw,5.5rem)}*{box-sizing:border-box}body,html{overflow-x:clip}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}a,button{touch-action:manipulation}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:1rem;line-height:var(--lh-normal);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}::selection{background:var(--color-accent);color:var(--color-accent-ink)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:var(--tracking-display);line-height:var(--lh-tight);font-style:normal;margin:0 0 .5em;overflow-wrap:anywhere;min-width:0}p{margin:0 0 1em}a{color:var(--color-accent-2);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}.shell{max-width:var(--page-max);margin-inline:auto;padding-inline:var(--page-gutter)}.section{padding-block:clamp(2rem,5vw,4rem)}.eyebrow,.mono-label{font-family:var(--font-label);font-size:.75rem;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-muted)}.appbar{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:color-mix(in oklch,var(--color-paper) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-rule)}.appbar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.75rem}.wordmark{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:800;letter-spacing:var(--tracking-display);color:var(--color-ink);font-size:1.15rem}.wordmark:hover{text-decoration:none}.wordmark .mark{width:2rem;height:2rem;border-radius:.65rem;background:var(--color-accent);box-shadow:0 3px 0 0 var(--color-accent-deep);display:inline-grid;place-items:center;font-weight:800;color:var(--color-accent-ink);font-size:1rem}.nav-links{display:flex;align-items:center;gap:.25rem}.nav-link{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--color-ink-2);padding:.5rem .85rem;border-radius:var(--radius-pill);transition:background-color var(--dur-micro) var(--ease-soft)}.nav-link:hover{background:var(--color-paper-3);text-decoration:none}.btn{--btn-face:var(--color-accent);--btn-ink:var(--color-accent-ink);--btn-edge:var(--color-accent-deep);--btn-cast:oklch(76% 0.20 95/0.45);display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.85rem 1.5rem;font-family:var(--font-display);font-weight:700;font-size:1rem;border:0;border-radius:var(--radius-pill);cursor:pointer;color:var(--btn-ink);background:var(--btn-face);box-shadow:0 4px 0 0 var(--btn-edge),0 6px 12px -3px var(--btn-cast);transform:translateY(0);position:relative;isolation:isolate;transition:transform .14s cubic-bezier(.2,.7,.3,1),box-shadow .14s cubic-bezier(.2,.7,.3,1),background-color .16s}.btn,.btn:hover{text-decoration:none}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 0 var(--btn-edge),0 12px 22px -4px var(--btn-cast)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 0 var(--btn-edge),0 2px 6px -2px var(--btn-cast);transition-duration:70ms}.btn:focus-visible{outline:3px solid color-mix(in oklch,var(--btn-edge) 70%,var(--color-focus));outline-offset:3px}.btn[disabled]{opacity:.55;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:0 4px 0 0 var(--btn-edge)}.btn--sm{padding:.55rem 1rem;font-size:.9rem}.btn--lg{padding:1.1rem 2rem;font-size:1.15rem}.btn--soft{--btn-edge:transparent;--btn-cast:transparent;box-shadow:0 2px 10px -4px oklch(20% .012 250/.18)}.btn--soft:hover{box-shadow:0 6px 18px -6px oklch(20% .012 250/.22)}.btn--outline{background:transparent;color:var(--color-ink);box-shadow:inset 0 0 0 2px var(--btn-edge),0 2px 8px -4px oklch(20% .012 250/.15)}.btn--outline:hover{background:var(--btn-face);box-shadow:inset 0 0 0 2px var(--btn-edge),0 6px 14px -6px var(--btn-cast)}.btn--outline:active{transform:translateY(2px)}.btn--cyan{--btn-face:var(--color-accent-2);--btn-ink:oklch(99% 0.005 250);--btn-edge:var(--color-accent-2-deep);--btn-cast:oklch(66% 0.18 235/0.45)}.btn--coral{--btn-face:var(--color-accent-3);--btn-ink:oklch(99% 0.005 250);--btn-edge:var(--color-accent-3-deep);--btn-cast:oklch(68% 0.24 18/0.45)}.btn--mint{--btn-face:var(--color-mint);--btn-ink:var(--color-ink);--btn-edge:var(--color-mint-deep);--btn-cast:oklch(80% 0.16 150/0.45)}.btn--lav{--btn-face:var(--color-lavender);--btn-ink:var(--color-ink);--btn-edge:var(--color-lavender-deep);--btn-cast:oklch(74% 0.16 305/0.4)}.btn--ink{--btn-face:var(--color-ink);--btn-ink:var(--color-paper);--btn-edge:oklch(12% 0.012 250);--btn-cast:oklch(20% 0.012 250/0.45)}.card{background:var(--color-paper);border-radius:var(--radius-card);box-shadow:0 12px 32px -16px oklch(20% .012 250/.14),0 1px 2px oklch(20% .012 250/.06);transition:transform var(--dur-short) var(--ease-spring),box-shadow var(--dur-short) var(--ease-soft)}.card--chunky{border:1px solid var(--color-rule);box-shadow:0 5px 0 0 var(--color-rule-2),0 14px 30px -18px oklch(20% .012 250/.2)}.card--lift:hover{transform:translateY(-4px);box-shadow:0 9px 0 0 var(--color-rule-2),0 22px 40px -18px oklch(20% .012 250/.25)}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .85rem;border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:600;font-size:.85rem;background:var(--color-paper-2);color:var(--color-ink-2);border:1px solid var(--color-rule)}.chip--pear{background:var(--tint-pear)}.chip--cyan,.chip--pear{color:var(--color-ink);border-color:transparent}.chip--cyan{background:var(--tint-cyan)}.chip--coral{background:var(--tint-coral)}.chip--coral,.chip--mint{color:var(--color-ink);border-color:transparent}.chip--mint{background:var(--tint-mint)}.chip--lavender{background:var(--tint-lavender);color:var(--color-ink);border-color:transparent}.subject-grid{display:grid;grid-gap:1.1rem;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.subject-tile{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1.5rem;border-radius:var(--radius-card);overflow:hidden;border:0;cursor:pointer;text-align:left;font-family:var(--font-display);color:var(--color-ink);box-shadow:0 5px 0 0 var(--tile-edge,var(--color-rule-2)),0 14px 30px -18px oklch(20% .012 250/.22);transition:transform var(--dur-short) var(--ease-spring),box-shadow var(--dur-short) var(--ease-soft);text-decoration:none}.subject-tile:hover{transform:translateY(-5px);text-decoration:none;box-shadow:0 9px 0 0 var(--tile-edge,var(--color-rule-2)),0 24px 44px -18px oklch(20% .012 250/.28)}.subject-tile:active{transform:translateY(2px)}.subject-tile:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.subject-tile .tile-glyph{width:3rem;height:3rem;border-radius:1rem;display:grid;place-items:center;background:var(--tile-glyph-bg,var(--color-paper));color:var(--tile-ink,var(--color-ink));box-shadow:0 3px 0 0 var(--tile-edge,var(--color-rule-2))}.subject-tile h3{font-size:1.35rem;margin:0}.subject-tile p{margin:0;font-size:.92rem;font-weight:500;color:var(--color-ink-2);line-height:1.35}.subject-tile .tile-count{margin-top:auto;font-family:var(--font-label);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.progress{height:12px;background:var(--color-paper-3);overflow:hidden}.progress,.progress>span{border-radius:var(--radius-pill)}.progress>span{display:block;height:100%;background:var(--color-accent);transition:width .3s var(--ease-out)}.option-btn{display:flex;align-items:center;gap:.9rem;width:100%;padding:1.1rem 1.25rem;border-radius:var(--radius-card);border:2px solid var(--color-rule);background:var(--color-paper);font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--color-ink);cursor:pointer;text-align:left;box-shadow:0 3px 0 0 var(--color-rule-2);transition:transform .12s var(--ease-soft),border-color .12s,background-color .12s,box-shadow .12s}.option-btn .opt-letter{flex:0 0 auto;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1.05rem;background:var(--color-paper-2);color:var(--color-ink-2);border:2px solid var(--color-rule)}.option-btn:hover{transform:translateY(-2px);border-color:var(--color-accent-2);box-shadow:0 5px 0 0 var(--color-rule-2)}.option-btn:hover .opt-letter{background:var(--tint-cyan);border-color:var(--color-accent-2)}.option-btn:active{transform:translateY(2px);box-shadow:0 1px 0 0 var(--color-rule-2)}.option-btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.option-btn[disabled]{cursor:default}.option-btn.is-correct{border-color:var(--color-mint-deep);background:var(--tint-mint);box-shadow:0 3px 0 0 var(--color-mint-deep)}.option-btn.is-correct .opt-letter{background:var(--color-mint);border-color:var(--color-mint-deep)}.option-btn.is-wrong{border-color:var(--color-accent-3-deep);background:var(--tint-coral);box-shadow:0 3px 0 0 var(--color-accent-3-deep)}.option-btn.is-wrong .opt-letter{background:var(--color-accent-3);border-color:var(--color-accent-3-deep)}.option-btn.is-dimmed{opacity:.45}.feedback{border-radius:var(--radius-card);padding:1.1rem 1.3rem;font-size:1.05rem;line-height:1.45;animation:feedback-in .3s var(--ease-snap) both}.feedback--ok{background:var(--tint-mint);border:2px solid var(--color-mint-deep)}.feedback--ko{background:var(--tint-coral);border:2px solid var(--color-accent-3-deep)}@keyframes feedback-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.star-burst{position:fixed;width:34px;height:34px;pointer-events:none;z-index:90;background:linear-gradient(90deg,transparent 47%,var(--color-accent-3) 47% 53%,transparent 53%),linear-gradient(0deg,transparent 47%,var(--color-accent-3) 47% 53%,transparent 53%);animation:star-burst .42s ease-out forwards}@keyframes star-burst{0%{transform:scale(0) rotate(0deg);opacity:1}60%{transform:scale(1.2) rotate(35deg);opacity:.9}to{transform:scale(1.4) rotate(45deg);opacity:0}}.score-big{font-family:var(--font-display);font-weight:800;letter-spacing:var(--tracking-display);font-size:clamp(3.5rem,10vw,6rem);line-height:1;margin:0}.score-tick{transition:transform .2s var(--ease-spring);display:inline-block}.score-tick.pop{transform:scale(1.15)}.input,.textarea,select.input{width:100%;padding:.85rem 1rem;border-radius:var(--radius-input);border:2px solid var(--color-rule);background:var(--color-paper);font-family:var(--font-body);font-size:1rem;color:var(--color-ink);transition:border-color var(--dur-micro) var(--ease-soft),box-shadow var(--dur-micro) var(--ease-soft)}.input:focus,.textarea:focus{outline:none;border-color:var(--color-accent-2);box-shadow:0 0 0 4px var(--tint-cyan)}.textarea{min-height:5.5rem;resize:vertical;line-height:1.5}.upload-zone{border:3px dashed var(--color-rule-2);border-radius:var(--radius-card);padding:2rem 1.5rem;text-align:center;cursor:pointer;background:var(--color-paper-2);transition:border-color var(--dur-micro),background-color var(--dur-micro)}.upload-zone.dragover,.upload-zone:hover{border-color:var(--color-accent-2);background:var(--tint-cyan)}.reveal{animation:reveal-in .6s var(--ease-snap) both}@keyframes reveal-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.row{align-items:center;gap:.75rem;flex-wrap:wrap}.row,.stack{display:flex}.stack{flex-direction:column;gap:1rem}.grid-2{display:grid;grid-gap:1.2rem;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.muted{color:var(--color-muted)}.text-lg{font-size:1.15rem}.hl{color:inherit;background-image:linear-gradient(var(--hl,oklch(86% .18 95/.55)) 0 0);background-repeat:no-repeat;background-size:100% .32em;background-position:0 82%;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-bottom:.02em}.divider{border:0;border-top:2px dashed var(--color-rule);margin:var(--section-gap) 0}.hero-title{font-size:clamp(2.6rem,6vw,4.6rem);font-weight:800;letter-spacing:-.03em}.mascot{display:inline-block;width:2.6rem;height:2.6rem;border-radius:.9rem;background:var(--color-accent);box-shadow:0 4px 0 0 var(--color-accent-deep);position:relative;animation:mascot-pulse 4s ease-in-out infinite}.mascot:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 70% 30%,oklch(99% .01 95/.9) 0 12%,transparent 14%)}@keyframes mascot-pulse{0%,to{transform:scale(1) rotate(0deg)}50%{transform:scale(1.05) rotate(-3deg)}}.spinner{width:1.2em;height:1.2em;border-radius:50%;border:3px solid color-mix(in oklch,currentColor 25%,transparent);border-top-color:currentcolor;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.tbl{width:100%;border-collapse:collapse;font-size:.95rem}.tbl th{font-family:var(--font-label);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);text-align:left;padding:.6rem .75rem;border-bottom:2px solid var(--color-rule)}.tbl td{padding:.8rem .75rem;border-bottom:1px solid var(--color-rule);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-rule-2);border-radius:999px;border:2px solid var(--color-paper)}::-webkit-scrollbar-track{background:transparent}@media (max-width:768px){.subject-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.subject-tile{padding:1.1rem}.subject-tile h3{font-size:1.12rem}.nav-hide-sm{display:none}}@media (max-width:640px){.runner-head{position:-webkit-sticky;position:sticky;top:3.7rem;z-index:30;background:color-mix(in oklch,var(--color-paper) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-block:.6rem .4rem;border-radius:0 0 var(--radius-card) var(--radius-card);margin-inline:calc(-1 * var(--page-gutter));padding-inline:var(--page-gutter)}.exam-next{width:100%}.results-actions{flex-direction:column;align-items:stretch}.results-actions .btn{width:100%}.option-btn{padding:1.05rem 1rem;min-height:3.5rem;font-size:1.05rem}.option-btn .opt-letter{width:2.2rem;height:2.2rem}.btn{min-height:3rem}.btn--lg{min-height:3.4rem}.exam-start{min-height:3.2rem}.feedback{font-size:1rem}}@media (max-width:480px){.option-btn{padding:.95rem 1rem;font-size:1.02rem}.btn--lg{padding:1rem 1.5rem}.subject-grid{grid-template-columns:1fr 1fr;gap:.8rem}.subject-tile{padding:1rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.mascot{animation:none}.star-burst{display:none}}