:root{--font-display:"Familjen Grotesk", "Inter Tight", ui-sans-serif, system-ui, sans-serif;--font-ui:"Inter Tight", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--paper:oklch(96.5% .01 78);--paper-2:oklch(94% .012 70);--paper-3:oklch(91% .014 64);--ink:oklch(22% .012 95);--ink-soft:oklch(34% .012 95);--muted:oklch(52% .014 90);--hairline:oklch(82% .012 70);--hairline-2:oklch(74% .014 70);--pink:oklch(82% .05 5);--pink-2:oklch(88% .038 5);--pink-soft:oklch(95% .022 5);--pink-ink:oklch(72% .075 5);--olive:oklch(42% .045 120);--olive-2:oklch(54% .045 120);--olive-soft:oklch(88% .02 120);--olive-ink:oklch(32% .045 120);--pink-mix:.55;--olive-mix:.45;--spark-intensity:1;--accent:var(--pink);--accent-soft:var(--pink-soft);--accent-ink:var(--pink-ink);--pad:24px;--gap:16px;--max:1560px;--max-half:780px;--gutter:clamp(24px, 4vw, 56px);--radius:4px;--radius-lg:8px;--shadow-1:0 1px 0 oklch(22% .012 95/.04), 0 8px 24px oklch(22% .012 95/.05);--shadow-2:0 1px 0 oklch(22% .012 95/.05), 0 22px 48px oklch(22% .012 95/.09);--ease:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}[data-paper=cream]{--paper:oklch(96.5% .01 78);--paper-2:oklch(94% .012 70);--paper-3:oklch(91% .014 64);--hairline:oklch(82% .012 70);--hairline-2:oklch(74% .014 70);--paper-emph:oklch(38% .02 80);--paper-emph-soft:oklch(91% .018 78);--paper-emph-ink:oklch(98% .008 78)}[data-paper=pink]{--paper:oklch(96% .018 18);--paper-2:oklch(93.5% .024 18);--paper-3:oklch(90% .03 18);--hairline:oklch(82% .022 18);--hairline-2:oklch(74% .026 18);--ink:oklch(24% .022 18);--ink-soft:oklch(36% .02 18);--muted:oklch(54% .02 18);--paper-emph:oklch(40% .045 18);--paper-emph-soft:oklch(92% .03 18);--paper-emph-ink:oklch(98% .008 18)}[data-paper=olive]{--paper:oklch(99% .006 130);--paper-2:oklch(97.5% .01 130);--paper-3:oklch(95% .014 130);--hairline:oklch(85% .014 130);--hairline-2:oklch(76% .018 130);--ink:oklch(22% .02 130);--ink-soft:oklch(34% .018 130);--muted:oklch(52% .016 130);--paper-emph:oklch(48% .045 130);--paper-emph-soft:oklch(94% .022 130);--paper-emph-ink:oklch(98% .008 130)}[data-paper=grey]{--paper:oklch(95% .003 250);--paper-2:oklch(92.5% .004 250);--paper-3:oklch(89% .005 250);--hairline:oklch(80% .005 250);--hairline-2:oklch(72% .006 250);--ink:oklch(20% .008 250);--ink-soft:oklch(32% .008 250);--muted:oklch(50% .006 250);--paper-emph:oklch(32% .012 250);--paper-emph-soft:oklch(91% .006 250);--paper-emph-ink:oklch(98% .003 250)}[data-density=compact]{--pad:16px;--gap:10px}[data-density=cozy]{--pad:24px;--gap:16px}[data-density=spacious]{--pad:36px;--gap:24px}[data-font=grotesk]{--font-display:"Familjen Grotesk", system-ui, sans-serif;--font-ui:"Inter Tight", system-ui, sans-serif}[data-font=serif]{--font-display:"Fraunces", Georgia, serif;--font-ui:"Inter Tight", system-ui, sans-serif}[data-font=mono-mix]{--font-display:"Familjen Grotesk", system-ui, sans-serif;--font-ui:"JetBrains Mono", ui-monospace, monospace}[data-font=editorial]{--font-display:"Instrument Serif", Georgia, serif;--font-ui:"Inter Tight", system-ui, sans-serif}*{box-sizing:border-box}html,body{width:100%;margin:0;padding:0;overflow-x:hidden}html{background:var(--paper);color:var(--ink)}body{font-family:var(--font-ui);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"ss01", "ss02", "cv11";min-height:100vh;font-size:15px;line-height:1.55}img,picture,video,canvas{max-width:100%}button,input,select,textarea{font:inherit;color:inherit;min-width:0}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:inherit}::selection{background:color-mix(in oklch, var(--pink) 30%, transparent);color:var(--ink)}.display{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;font-weight:500;line-height:.96}.kicker{font-family:var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}.kicker .dot{color:var(--pink-ink)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.construction-note{border-left:2px solid var(--accent-ink);max-width:min(100%,620px);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;margin:16px 0 0;padding:7px 0 7px 12px;line-height:1.4;display:inline-flex;color:var(--accent-ink)!important;font-size:10px!important}.construction-note:before{content:"";background:var(--accent-ink);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in oklch, var(--accent) 22%, transparent);border-radius:50%;flex:none}.rule{background:var(--hairline);border:0;height:1px;margin:0}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(14px)}.reveal.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.paper-bg{z-index:0;pointer-events:none;background:radial-gradient(1200px 600px at 80% -10%, color-mix(in oklch, var(--pink) 14%, transparent), transparent 60%), radial-gradient(900px 500px at -10% 30%, color-mix(in oklch, var(--olive) 9%, transparent), transparent 60%), radial-gradient(circle at 1px 1px, oklch(22% .012 95/.07) 1px, transparent 1.5px);opacity:.85;background-size:auto,auto,22px 22px;position:fixed;inset:0}.grain{z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}:root{--site-header-height:65px}.app{z-index:1;min-height:100vh;padding-top:var(--site-header-height);flex-direction:column;display:flex;position:relative}.site-header{z-index:30;min-height:var(--site-header-height);width:100%;padding:12px max(var(--gutter), calc(50% - var(--max-half)));background:color-mix(in oklch, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.1);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:18px;display:flex;position:fixed;top:0;left:0;right:0}.brand-wrap{flex-direction:column;gap:2px;min-width:240px;display:flex}.brand-wrap>.brand-links{padding-left:48px}.brand{color:inherit;background:0 0;border:0;align-items:center;gap:12px;min-width:240px;padding:0;text-decoration:none;transition:color .16s,background .16s,border-color .16s;display:flex}.brand-wrap>.brand{min-width:0}.brand:hover{color:var(--pink-ink)}.brand:after{content:none}.brand-mono{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:14px;font-weight:500}.brand-mono em{color:var(--muted);margin-left:4px;font-style:normal;font-weight:400}.brand-stack{flex-direction:column;gap:2px;display:flex}.brand-links{font-size:10px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);white-space:nowrap;align-items:center;gap:5px;display:flex}.brand-links a{color:var(--muted);text-decoration:none}.brand-links a:hover{color:var(--ink)}.brand-sep{color:var(--hairline)}.header-menu{display:contents}.year-switcher{border:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 70%, white);border-radius:999px;align-items:center;gap:6px;padding:4px;display:flex}.year-pill{font-family:var(--font-mono);letter-spacing:.04em;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:11px;transition:color .16s,background .16s}.year-pill[aria-current=true]{background:var(--ink);color:var(--paper)}.year-pill:not([aria-current=true]):hover{color:var(--ink);background:var(--paper-3)}.year-pill[disabled]{opacity:.45;cursor:not-allowed}.year-pill .future-dot{background:var(--pink);vertical-align:middle;border-radius:50%;width:4px;height:4px;margin-right:5px;display:inline-block}.site-nav{border:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 58%, white);border-radius:999px;align-items:center;gap:4px;padding:3px;display:flex}.site-nav button{letter-spacing:0;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:500;transition:color .16s,background .16s}.site-nav button:hover{color:var(--ink);background:var(--paper-3)}.site-nav button[aria-current=true]{color:var(--ink);background:color-mix(in oklch, var(--pink) 18%, transparent)}.nav-cta{background:var(--ink);transition:transform .16s var(--ease), background .16s;border:0;border-radius:999px;align-items:center;gap:8px;margin-left:6px;padding:7px 13px;font-size:12.5px;font-weight:500;display:inline-flex;color:var(--paper)!important}.nav-cta:hover{background:var(--olive-ink);transform:translateY(-1px)}.nav-cta span{background:color-mix(in oklch, var(--paper) 18%, transparent);color:var(--paper);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;align-items:center;padding:2px 6px;font-size:9px;display:inline-flex}.nav-cta:after{content:"→";opacity:.7}@media (width<=1100px){:root{--site-header-height:68px}.site-header{justify-content:flex-start;padding:12px 16px}.brand{border:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 72%, white);border-radius:999px;justify-content:center;gap:8px;width:auto;min-width:0;height:44px;padding:4px 12px 4px 4px}.brand:after{content:"Menu";font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.brand-stack{display:none}.site-header.is-open .brand{color:var(--paper);background:var(--ink);border-color:var(--ink)}.site-header.is-open .brand:after{content:"Close";color:var(--paper)}.header-menu{display:none}.site-header.is-open .header-menu{background:color-mix(in oklch, var(--paper) 94%, white);border-bottom:1px solid var(--hairline);gap:12px;padding:14px 16px 16px;display:grid;position:absolute;top:100%;left:0;right:0;box-shadow:0 22px 44px oklch(22% .012 95/.12)}.site-header.is-open .year-switcher{border-radius:12px;flex-wrap:wrap;justify-self:start}.site-header.is-open .site-nav{border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.site-header.is-open .site-nav button{background:color-mix(in oklch, var(--paper) 70%, white);text-align:left;border-radius:12px;width:100%;padding:12px}.site-header.is-open .site-nav button[aria-current=true]{background:color-mix(in oklch, var(--pink) 18%, transparent)}.site-header.is-open .nav-cta{text-align:center;grid-column:1/-1;justify-content:center;margin-left:0}}.page{width:100%;max-width:var(--max);padding:28px var(--gutter) 96px;animation:page-in .5s var(--ease) both;flex:1;margin:0 auto;position:relative}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.catalog-page{padding-top:16px}.hero{grid-template-columns:1fr;align-items:start;gap:24px;padding:16px 0 32px;display:grid;position:relative}.hero-main{grid-column:1/-1;width:100%}.hero-split{grid-template-columns:minmax(0,760px);align-items:stretch;gap:20px;max-width:920px;margin-top:20px;display:grid}.hero-marquee{border-top:1px solid var(--hairline);grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:32px 0 0;padding:18px 0 0;list-style:none;display:grid}.hero-marquee li{flex-direction:column;gap:4px;display:flex}.hero-marquee .hm-num{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:32px;font-weight:500;line-height:1}.hero-marquee li:first-child .hm-num{color:var(--pink-ink);font-style:italic}.hero-marquee .hm-lab{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.cohort-pending-hero{align-items:center;min-height:min(560px,100vh - 190px);padding:clamp(48px,10vh,104px) 0}.cohort-pending-copy{max-width:680px;color:var(--ink-soft);margin:18px 0 0;font-size:clamp(17px,2vw,22px);line-height:1.45}.cohort-pending-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.hero-aside{flex-direction:column;gap:20px;display:flex}.hero-card{background:color-mix(in oklch, var(--paper) 65%, white);border:1px solid var(--hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:28px 26px}.hero-course-card{gap:18px;display:grid}.course-facts{background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.course-facts div{background:color-mix(in oklch, var(--paper) 72%, white);gap:4px;padding:14px;display:grid}.course-facts dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:9px}.course-facts dd{font-family:var(--font-display);color:var(--ink);margin:0;font-size:25px;font-weight:500;line-height:1}.course-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.course-card-actions .btn{width:100%}.hero-timeline{flex-direction:column;gap:0;margin:0 0 18px;display:flex}.btn-news-all{width:100%}.course-now{margin:28px calc(var(--gutter) * -1) 56px;padding:48px var(--gutter) 52px;background:linear-gradient(90deg, color-mix(in oklch, var(--pink-soft) 72%, white), color-mix(in oklch, var(--olive-soft) 45%, var(--paper)));border-top:1px solid color-mix(in oklch, var(--ink) 20%, transparent);border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:stretch;gap:clamp(32px,3vw,48px);display:grid}.course-now-main{width:100%;max-width:none;padding-top:8px}.course-now-body{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;padding:0;display:block}.course-now-body:hover h2{color:var(--pink-ink)}.course-now-body:focus-visible{outline:none}.course-now-body:focus-visible .course-now-readmore{color:var(--pink-ink);border-color:color-mix(in oklch, var(--pink-ink) 42%, var(--hairline))}.cn-dateline{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 28px;font-size:10px;line-height:1.5;display:flex}.cn-dateline .live{background:var(--pink-ink);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in oklch, var(--pink) 26%, transparent);border-radius:50%}.cn-dateline .sep{color:var(--hairline-2)}.course-now h2{max-width:980px;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:pretty;margin:0 0 20px;font-size:clamp(32px,3.6vw,48px);font-weight:500;line-height:1.04;transition:color .16s}.course-now-summary{max-width:76ch;color:var(--ink-soft);margin:0;font-size:16px;line-height:1.6}.course-now-readmore{border-top:1px solid color-mix(in oklch, var(--ink) 16%, transparent);color:var(--ink);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;transition:color .16s, border-color .16s, transform .16s var(--ease);align-items:center;gap:10px;margin-top:22px;padding-top:10px;font-size:11px;line-height:1;display:inline-flex}.course-now-readmore:after{content:"→";color:var(--pink-ink);transition:transform .16s var(--ease);font-size:13px}.course-now-body:hover .course-now-readmore{color:var(--pink-ink);border-color:color-mix(in oklch, var(--pink-ink) 42%, var(--hairline));transform:translateY(-1px)}.course-now-body:hover .course-now-readmore:after{transform:translate(3px)}.course-now-resources{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.course-now-resource{border:1px solid color-mix(in oklch, var(--pink-ink) 26%, var(--hairline));overflow-wrap:anywhere;max-width:100%;transition:border-color .16s, background .16s, color .16s, transform .16s var(--ease);background:oklch(100% 5.96046e-8 none/.62);border-radius:999px;align-items:center;gap:7px;padding:8px 11px;font-size:12px;line-height:1.25;display:inline-flex;color:var(--ink)!important;text-decoration:none!important}.course-now-resource:hover{border-color:color-mix(in oklch, var(--pink-ink) 48%, var(--hairline));background:color-mix(in oklch, white 82%, var(--pink-soft));transform:translateY(-1px);color:var(--pink-ink)!important}.course-now-resource span{font-family:var(--font-mono);color:var(--pink-ink);text-transform:uppercase;letter-spacing:.1em;flex:none;font-size:9px}.course-now-aside{border-left:1px solid color-mix(in oklch, var(--ink) 10%, transparent);flex-direction:column;padding-left:32px;display:flex}.course-now-aside .course-reference{border-top:0;margin-top:0;padding-top:0}.course-reference-label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:10px;display:block}.course-reference ul{grid-template-columns:1fr;gap:0;margin:0;padding:0;list-style:none;display:grid}.course-reference li{border-top:1px solid var(--hairline);grid-template-columns:1fr;gap:4px;min-width:0;padding:12px 0;display:grid}.course-reference li span{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:10px}.course-reference li strong{color:var(--ink);font-size:14px;font-weight:500;line-height:1.35;transition:color .16s}.course-reference-btn{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;grid-template-columns:1fr;gap:4px;padding:0;display:grid}.course-reference-btn:hover strong{color:var(--pink-ink)}.cn-viewall{border-top:1px solid var(--hairline);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:color .16s, transform .16s var(--ease);margin-top:auto;padding-top:18px;font-size:11px;text-decoration:none;display:inline-block}.cn-viewall:hover{color:var(--pink-ink);transform:translate(2px)}.news-item{border-top:1px dashed var(--hairline);color:var(--ink-soft);scroll-margin-top:calc(var(--site-header-height) + 16px)}.news-item:first-child{border-top:0}.news-item summary{cursor:pointer;grid-template-columns:96px minmax(0,1fr) auto;gap:14px;padding:12px 0;list-style:none;display:grid}.news-item summary::-webkit-details-marker{display:none}.news-item summary:after{content:"+";color:var(--pink-ink);font-family:var(--font-mono);grid-column:3;justify-self:end}.news-item[open] summary:after{content:"−"}.news-date{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:1px;font-size:10.5px}.news-item[open] .news-date{color:var(--pink-ink)}.news-summary-text{gap:3px;min-width:0;font-size:13px;line-height:1.45;display:grid}.news-summary-text strong{color:var(--ink);font-weight:500}.news-body{gap:10px;padding:0 0 14px 110px;font-size:13px;line-height:1.55;display:grid}.news-body p{margin:0}.news-resources{flex-wrap:wrap;gap:8px;display:flex}.news-resource{border:1px solid var(--hairline);background:#fff;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:12px;display:inline-flex;color:var(--ink)!important;text-decoration:none!important}.news-resource span{font-family:var(--font-mono);color:var(--pink-ink);text-transform:uppercase;letter-spacing:.1em;font-size:9px}.news-audience{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px!important}.hero-faculty{border-top:1px solid var(--hairline);grid-template-columns:48px 1fr;align-items:center;gap:14px;margin-top:18px;padding-top:18px;display:grid}.hf-avatar{background:var(--pink-soft);width:48px;height:48px;color:var(--pink-ink);font-family:var(--font-display);letter-spacing:.04em;border:1px solid color-mix(in oklch, var(--pink-ink) 25%, transparent);border-radius:50%;place-items:center;font-size:16px;font-weight:500;display:grid}.hf-name{font-family:var(--font-display);color:var(--ink);font-weight:500}.hf-role{color:var(--muted);font-size:12px}.hf-link{font-family:var(--font-mono);color:var(--pink-ink);font-size:11px;text-decoration:none}.hf-link:hover{text-decoration:underline}.hero-pull{background:color-mix(in oklch, var(--pink-soft) 50%, white);border-left:2px solid var(--pink-ink);border-radius:0 var(--radius) var(--radius) 0;margin:0;padding:22px 24px 22px 32px;position:relative}.hero-pull-banner{grid-template-columns:minmax(0,1fr) minmax(205px,auto);align-items:center;gap:18px;max-width:100%;margin-top:16px;padding:16px 18px 16px 28px;display:grid}.hero-pull p{font-family:var(--font-display);color:var(--ink);text-wrap:balance;margin:0;font-size:18px;font-style:italic;line-height:1.35}.hero-pull-banner p{max-width:56ch;font-size:16px;line-height:1.28}.hero-pull footer{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);margin-top:18px;font-size:11px}.hero-pull .hero-faculty{border-top-color:color-mix(in oklch, var(--pink-ink) 18%, transparent)}.hero-pull-banner .hero-faculty{border-top:0;grid-template-columns:38px minmax(0,1fr);gap:10px;margin-top:0;padding-top:0}.hero-pull .hf-avatar{background:#fff}.hero-pull-banner .hf-avatar{width:38px;height:38px;font-size:13px}.hero-pull-banner .hf-name{font-size:14px}.hero-pull-banner .hf-role{font-size:11px;line-height:1.25}.hero-pull-banner .hf-link{font-size:10px}.hero-pull .hp-mark{font-family:var(--font-display);color:var(--pink-ink);opacity:.55;font-size:48px;font-style:italic;line-height:1;position:absolute;top:8px;left:12px}.hero-pull-banner .hp-mark{font-size:34px;top:6px;left:10px}.hero-split .hero-pull-banner{max-width:none;min-height:100%;margin-top:0}section.is-emph,.reveal.is-emph{background:var(--paper-emph,oklch(48% .045 130));color:var(--paper-emph-ink,white);border-radius:var(--radius-lg);padding:8px 0;position:relative}section.is-emph .kicker,.reveal.is-emph .kicker{color:color-mix(in oklch, var(--paper-emph-ink,white) 80%, transparent)}section.is-emph .kicker .dot,.reveal.is-emph .kicker .dot{color:var(--pink)}section.is-emph h2,.reveal.is-emph h2{color:var(--paper-emph-ink,white)}section.is-emph-soft,.reveal.is-emph-soft{background:var(--paper-emph-soft,oklch(94% .022 130));border-radius:var(--radius-lg);margin:56px 0 32px;padding:32px 32px 40px}section.is-emph-soft .section-heading,.reveal.is-emph-soft .section-heading{margin-top:0}.theme-network-panel{isolation:isolate;border:1px solid color-mix(in oklch, var(--olive-ink) 16%, var(--hairline));background:linear-gradient(135deg, color-mix(in oklch, var(--paper-emph-soft) 86%, white) 0%, color-mix(in oklch, var(--olive-soft) 72%, var(--paper)) 48%, color-mix(in oklch, var(--paper) 76%, oklch(88% .018 155)) 100%);box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.62), inset 0 -1px 0 color-mix(in oklch, var(--olive-ink) 10%, transparent), 0 24px 70px color-mix(in oklch, var(--olive-ink) 12%, transparent);position:relative;overflow:hidden}.theme-network-panel:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(520px 240px at 16% 18%, oklch(100% 5.96046e-8 none/.48), transparent 72%), radial-gradient(620px 300px at 82% 72%, color-mix(in oklch, var(--olive) 13%, transparent), transparent 76%), linear-gradient(115deg, transparent 0 24%, oklch(100% 5.96046e-8 none/.26) 48%, transparent 76% 100%);opacity:.82;position:absolute;inset:0}.theme-network-panel .section-heading{border-bottom:1px solid color-mix(in oklch, var(--olive-ink) 12%, transparent);padding-bottom:18px}@media (width<=760px){section.is-emph-soft,.reveal.is-emph-soft{padding:24px 20px}}@media (width<=960px){.hero{grid-template-columns:1fr;gap:28px}.hero-split{grid-template-columns:1fr}.hero-marquee{grid-template-columns:repeat(2,1fr)}.hero-pull-banner{max-width:100%}.course-now{grid-template-columns:1fr;align-items:start}.course-now-aside{border-left:0;border-top:1px solid color-mix(in oklch, var(--ink) 10%, transparent);padding-top:20px;padding-left:0}}@media (width<=680px){:root{--gutter:16px}.page{padding:22px 16px 72px}.catalog-page{padding-top:10px}.hero-pull-banner{grid-template-columns:1fr;gap:12px;padding:16px 16px 16px 26px}.hero-pull-banner p{max-width:none;font-size:15px}.hero-pull-banner .hero-faculty{justify-self:start}.hero-latest{grid-template-columns:1fr;gap:4px}.hero-latest strong{white-space:normal;line-height:1.25}.course-facts{grid-template-columns:1fr 1fr}.course-card-actions{grid-template-columns:1fr}.course-now{gap:24px;margin-top:8px;padding-top:24px;padding-bottom:24px}.course-now-main{padding-top:0}.cn-dateline{letter-spacing:.1em;gap:7px;margin-bottom:18px}.course-now h2{letter-spacing:0;font-size:30px}.course-reference ul{grid-template-columns:1fr}.course-reference li strong{white-space:normal}}.hero h1{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);text-wrap:balance;max-width:920px;margin:16px 0 20px;font-size:clamp(54px,6.6vw,94px);font-weight:500;line-height:.95}.hero h1 .ital{color:var(--pink-ink);font-style:italic;font-weight:400}.hero h1 .olv{color:var(--olive-ink)}.hero-sub{max-width:520px;color:var(--ink-soft);font-size:17px;line-height:1.5}.hero-sub a{color:var(--pink-ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.hero-latest{text-align:left;border:1px solid color-mix(in oklch, var(--pink-ink) 26%, transparent);border-left:3px solid var(--pink-ink);border-radius:var(--radius);background:color-mix(in oklch, var(--pink-soft) 66%, white);width:min(100%,760px);color:var(--ink);transition:background .16s, border-color .16s, transform .16s var(--ease);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:18px;padding:14px 16px;display:grid}.hero-latest:hover{background:color-mix(in oklch, var(--pink-soft) 88%, white);border-color:color-mix(in oklch, var(--pink-ink) 40%, transparent);transform:translateY(-1px)}.hero-latest-label,.hero-latest-meta{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pink-ink);white-space:nowrap;font-size:9px}.hero-latest strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}@media (width<=680px){.hero{gap:16px;padding:10px 0 22px}.hero h1{letter-spacing:0;margin:12px 0 16px;font-size:44px;line-height:.98}.hero-split{margin-top:14px}.hero-latest{grid-template-columns:1fr;gap:4px}.hero-latest strong{white-space:normal;line-height:1.25}}.facts{background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius);gap:1px;display:grid;overflow:hidden}.fact{background:color-mix(in oklch, var(--paper) 80%, white);gap:4px;padding:18px 20px;display:grid}.fact dt{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:10px}.fact dd{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:500}.fact dd .accent{color:var(--pink-ink)}.section-heading{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:end;gap:24px;margin:56px 0 24px;padding-bottom:12px;display:flex}.section-heading h2{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:8px 0 0;font-size:clamp(28px,3.4vw,42px);font-weight:500}.section-heading .meta{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);white-space:nowrap;font-size:11px}.news-hero{grid-template-columns:minmax(0,1fr) minmax(180px,auto);align-items:end;gap:40px;padding:20px 0 40px;display:grid}.news-hero h1{font-family:var(--font-display);letter-spacing:-.04em;margin:10px 0 16px;font-size:clamp(42px,7vw,78px);font-weight:500;line-height:.96}.news-hero p{max-width:560px;color:var(--ink-soft);margin:0;font-size:16px;line-height:1.6}.news-hero-stats{background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius);flex-shrink:0;grid-template-columns:repeat(2,1fr);align-self:end;gap:1px;display:grid;overflow:hidden}.news-hero-stats div{background:color-mix(in oklch, var(--paper) 65%, white);padding:14px 16px}.news-hero-stats dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:9px}.news-hero-stats dd{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin:6px 0 0;font-size:28px;font-weight:500}.news-hero-stats dd.pink{color:var(--pink-ink)}.news-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px);align-items:start;gap:28px;display:grid}.news-feed{gap:12px;display:grid}.news-feed .news-item{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;padding:0 22px}.news-feed .news-item summary{grid-template-columns:128px minmax(0,1fr) auto;padding:20px 0}.news-feed .news-body{padding-bottom:22px;padding-left:142px}.news-empty{text-align:center;border:1px solid var(--hairline);border-radius:var(--radius-lg);color:var(--muted);background:#fff;padding:56px 24px;font-style:italic}.news-side{background:color-mix(in oklch, var(--paper) 72%, white);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:22px;position:sticky;top:96px}.news-side h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 10px;font-size:26px;font-weight:500}.news-side p{color:var(--ink-soft);margin:0 0 14px;font-size:13px;line-height:1.55}.news-side ul{color:var(--ink-soft);border-top:1px solid var(--hairline);margin:0 0 4px;padding:0;font-size:13px;line-height:1.45;list-style:none}.news-side li{border-bottom:1px solid var(--hairline);padding:9px 0}.news-side-date{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;font-size:9px;display:block}.news-side-actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}@media (width<=900px){.news-hero{grid-template-columns:1fr;align-items:start;gap:24px}.news-hero-stats{width:min(100%,360px)}.news-layout{grid-template-columns:1fr}.news-side{position:static}}@media (width<=760px){.news-hero{padding-bottom:28px}.news-hero h1{letter-spacing:0;font-size:38px;line-height:1}.news-hero-stats{width:100%}.news-feed .news-item{padding:0 16px}.news-item summary,.news-feed .news-item summary{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.news-date{grid-column:1/-1;padding-top:0}.news-summary-text{grid-column:1}.news-body,.news-feed .news-body{padding-left:0}}.filters{grid-template-columns:minmax(220px,2fr) repeat(3,minmax(140px,1fr));gap:12px;margin-bottom:28px;display:grid}.field{gap:6px;min-width:0;display:grid}.field-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.field input,.field select,.field textarea{border:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 70%, white);border-radius:var(--radius);width:100%;color:var(--ink);padding:11px 12px;transition:border-color .16s,background .16s,box-shadow .16s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pink-ink);box-shadow:0 0 0 3px color-mix(in oklch, var(--pink) 22%, transparent);background:#fff;outline:none}.field textarea{resize:vertical;min-height:90px}@media (width<=760px){.filters{grid-template-columns:1fr 1fr}}@media (width<=640px){.filters{grid-template-columns:1fr}.field input,.field select,.field textarea{min-height:44px}}.project-grid{--project-card-min:360px;grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--project-card-min)), 1fr));background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius-lg);gap:1px;display:grid;overflow:hidden}[data-density=compact] .project-grid{--project-card-min:300px}[data-density=spacious] .project-grid{--project-card-min:440px}@media (width<=980px){.project-grid{--project-card-min:300px}}.project-card{background:color-mix(in oklch, var(--paper) 80%, white);text-align:left;cursor:pointer;transition:opacity .62s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), transform .36s var(--ease);border:0;flex-direction:column;gap:12px;min-height:280px;padding:28px 24px 24px;display:flex;position:relative;overflow:hidden}[data-density=compact] .project-card{gap:8px;min-height:200px;padding:18px 16px}[data-density=spacious] .project-card{gap:16px;min-height:340px;padding:40px 32px}.project-card:hover{background:color-mix(in oklch, var(--paper) 90%, white);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--pink-ink) 36%, transparent);z-index:2}.project-card.is-active:hover{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--pink-ink) 30%, transparent), 0 10px 24px color-mix(in oklch, var(--pink-ink) 8%, transparent);transform:translateY(-2px)}.project-card:focus-visible{outline:3px solid color-mix(in oklch, var(--pink-ink) 40%, transparent);outline-offset:-3px;box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--pink-ink) 46%, transparent);z-index:3}.project-card.is-active:focus-visible{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--pink-ink) 38%, transparent), 0 10px 24px color-mix(in oklch, var(--pink-ink) 8%, transparent)}.project-card:hover .project-card-num{color:var(--pink-ink)}.project-card:hover .project-card-title{color:var(--olive-ink)}.project-card.is-active{background:color-mix(in oklch, var(--paper) 88%, white)}.project-card.is-inactive{background:color-mix(in oklch, var(--paper-2) 72%, white);filter:saturate(.45)}.project-card.is-inactive .project-card-num,.project-card.is-inactive .project-card-areas,.project-card.is-inactive .project-card-advisor,.project-card.is-inactive .project-card-pitch{color:color-mix(in oklch, var(--muted) 78%, var(--paper))}.project-card.is-inactive .project-card-title{color:color-mix(in oklch, var(--ink) 55%, var(--muted))}.project-card.is-inactive:hover{filter:saturate(.72)}.project-card.is-inactive:hover .project-card-title{color:var(--ink-soft)}.project-card-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-card-num{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);font-size:11px;transition:color .2s}.project-card-areas{font-family:var(--font-mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:60%;font-size:9px;display:flex}.project-card-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:pretty;margin:0;font-size:22px;font-weight:500;line-height:1.1;transition:color .2s}[data-density=compact] .project-card-title{font-size:17px}[data-density=spacious] .project-card-title{font-size:26px}.project-card-advisor{color:var(--ink-soft);margin:0;font-size:13px}.project-card-advisor a{z-index:4;position:relative}.project-card-advisor .aff{color:var(--muted)}.project-card-pitch{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}[data-density=compact] .project-card-pitch{-webkit-line-clamp:2;font-size:12.5px}.project-card-foot{justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px;display:flex}.project-card-foot .read{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);align-items:center;gap:6px;font-size:10px;display:inline-flex}.project-card-foot .read:after{content:"→";transition:transform .22s var(--ease)}.project-card:hover .project-card-foot .read:after{transform:translate(4px)}.project-status-badge{border:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 55%, white);min-height:24px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:9px;line-height:1;display:inline-flex}.project-card.is-active .project-status-badge{border-color:color-mix(in oklch, var(--olive-ink) 45%, transparent);background:var(--olive-ink);color:var(--paper)}.project-card.is-inactive .project-status-badge{border-color:color-mix(in oklch, var(--muted) 28%, transparent);color:var(--muted);background:0 0}.project-card-thrust-rail{background:linear-gradient(180deg, transparent 0%, color-mix(in oklch, var(--pink-ink) 28%, transparent) 18%, color-mix(in oklch, var(--pink-ink) 78%, transparent) 50%, color-mix(in oklch, var(--pink-ink) 28%, transparent) 82%, transparent 100%);opacity:0;pointer-events:none;transform-origin:50%;width:2px;box-shadow:0 0 8px color-mix(in oklch, var(--pink-ink) 22%, transparent), 0 0 18px color-mix(in oklch, var(--pink) 18%, transparent);transition:opacity .22s, transform .26s var(--ease);position:absolute;top:18px;bottom:18px;left:0;transform:translate(-1px)scaleY(.82)}.project-card.is-active:hover .project-card-thrust-rail,.project-card.is-active:focus-visible .project-card-thrust-rail{opacity:.82;transform:translate(0)scaleY(1)}.theme-row{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.theme-network-panel .theme-row{margin-top:18px}.theme-tag{border:1px solid color-mix(in oklch, var(--olive-ink) 16%, var(--hairline));color:var(--ink);font-family:var(--font-display);cursor:pointer;box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.48), 0 8px 22px color-mix(in oklch, var(--olive-ink) 5%, transparent);-webkit-backdrop-filter:blur(4px);transition:border-color .2s var(--ease), color .2s, background .2s, transform .2s var(--ease), box-shadow .2s var(--ease);background:oklch(100% 5.96046e-8 none/.34);border-radius:999px;align-items:baseline;gap:8px;padding:10px 16px;font-size:14px;display:inline-flex}.theme-tag:hover{border-color:color-mix(in oklch, var(--olive-ink) 42%, var(--hairline));box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.58), 0 14px 30px color-mix(in oklch, var(--olive-ink) 9%, transparent);background:oklch(100% 5.96046e-8 none/.54);transform:translateY(-1px)}.theme-tag.is-active{border-color:var(--pink-ink);background:color-mix(in oklch, var(--pink-soft) 74%, white);color:var(--pink-ink);box-shadow:inset 0 1px 0 oklch(100% 5.96046e-8 none/.54), 0 13px 34px color-mix(in oklch, var(--pink-ink) 10%, transparent)}.theme-tag-name{letter-spacing:-.01em;font-weight:500}.theme-tag-sub{color:var(--muted);font-size:12px;font-style:italic}.theme-tag.is-active .theme-tag-sub{color:var(--pink-ink);opacity:.75}.theme-tag-count{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;border-left:1px solid var(--hairline);margin-left:4px;padding-left:8px;font-size:10.5px}.theme-tag.is-active .theme-tag-count{color:var(--pink-ink);border-left-color:color-mix(in oklch, var(--pink-ink) 30%, transparent)}@media (width<=680px){.section-heading{align-items:start;gap:12px;margin:40px 0 18px;display:grid}.section-heading .meta{white-space:normal}.project-card{min-height:auto;padding:22px 18px}.project-card-top{gap:6px;display:grid}.project-card-areas{justify-content:flex-start;max-width:none}.project-card-title{letter-spacing:0;font-size:21px}.project-card-foot{flex-wrap:wrap;align-items:flex-start}.project-status-badge{white-space:normal;text-align:center;line-height:1.25}.theme-row{grid-template-columns:1fr;display:grid}.theme-tag{border-radius:var(--radius);text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%}.theme-tag-sub{min-width:0}}.project-dialog{border-radius:var(--radius-lg);background:var(--paper);border:0;width:min(880px,100vw - 32px);max-height:min(86vh,900px);padding:0;overflow:hidden;box-shadow:0 32px 80px oklch(22% .012 95/.28)}.project-dialog::backdrop{background:color-mix(in oklch, var(--ink) 50%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-dialog[open]{animation:dialog-in .28s var(--ease) both}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.dialog-inner{max-height:inherit;grid-template-rows:auto 1fr;display:grid}.dialog-head{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:start;gap:16px;padding:24px 28px 16px;display:flex}.dialog-head .num{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);font-size:11px}.dialog-head h2{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:8px 0 4px;font-size:28px;font-weight:500;line-height:1.05}.dialog-head .advisor{color:var(--ink-soft);font-size:14px}.dialog-close{border:1px solid var(--hairline);width:36px;height:36px;color:var(--muted);background:#fff;border-radius:50%;flex-shrink:0;place-items:center;font-size:14px;display:grid}.dialog-close:hover{border-color:var(--ink);color:var(--ink)}.dialog-body{gap:24px;padding:24px 28px 32px;display:grid;overflow-y:auto}.dialog-section h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:11px;font-weight:500}.dialog-section p{color:var(--ink-soft);white-space:pre-line;margin:0;line-height:1.6}.detail-grid{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);grid-template-columns:140px 1fr;gap:8px 16px;padding:16px 0;display:grid}.detail-grid dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.detail-grid dd{color:var(--ink);margin:0}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--hairline-2);color:var(--ink-soft);background:color-mix(in oklch, var(--paper) 50%, white);border-radius:999px;padding:4px 9px;font-size:11px;display:inline-block}.tag.tag-accent{border-color:var(--pink-ink);color:var(--pink-ink);background:var(--pink-soft)}@media (width<=680px){.project-dialog{border-radius:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}.dialog-head{gap:12px;padding:18px 16px 14px}.dialog-head h2{letter-spacing:0;font-size:24px;line-height:1.1}.dialog-head .num{letter-spacing:.08em;font-size:10px}.dialog-body{gap:18px;padding:18px 16px 28px}.detail-grid{grid-template-columns:1fr;gap:4px}.detail-grid dd+dt{margin-top:8px}}.btn{transition:transform .16s var(--ease), background .16s, border-color .16s, color .16s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:13px;font-weight:500;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.btn-primary:hover{background:var(--pink-ink);border-color:var(--pink-ink);transform:translateY(-1px)}.btn-ghost{color:var(--ink);border-color:var(--hairline);background:0 0}.btn-ghost:hover{border-color:var(--ink)}.btn-pink{background:var(--pink-soft);color:var(--pink-ink);border-color:color-mix(in oklch, var(--pink) 30%, transparent)}.btn-pink:hover{background:color-mix(in oklch, var(--pink) 28%, white)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.site-footer{z-index:1;padding:72px max(var(--gutter), calc(50% - var(--max-half))) 32px;border-top:1px solid var(--hairline);background:color-mix(in oklch, var(--paper) 75%, white);flex-direction:column;gap:40px;margin-top:auto;display:flex;position:relative}.footer-top{grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr);align-items:start;gap:56px;display:grid}.footer-brand{grid-template-columns:44px 1fr;gap:18px;max-width:440px;display:grid}.footer-display{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:0 0 12px;font-size:clamp(22px,2.6vw,28px);font-weight:500;line-height:1.05}.footer-display .ital{color:var(--pink-ink);font-style:italic;font-weight:400}.footer-tag{color:var(--ink-soft);max-width:380px;margin:0;font-size:13.5px;line-height:1.55}.footer-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}.footer-col h4{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--hairline);margin:0 0 14px;padding-bottom:10px;font-size:10px;font-weight:500}.footer-col ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.footer-col a{font-size:13.5px;transition:color .16s;display:inline-block;color:var(--ink)!important;text-decoration:none!important}.footer-col a:hover{color:var(--pink-ink)!important;text-decoration:none!important}.footer-meta{border-top:1px solid var(--hairline);color:var(--muted);letter-spacing:.06em;flex-wrap:wrap;gap:8px 28px;padding-top:24px;font-size:11px;display:flex}.footer-meta a{color:inherit;-webkit-text-decoration-color:color-mix(in oklch, var(--muted) 45%, transparent);text-decoration-color:color-mix(in oklch, var(--muted) 45%, transparent);text-underline-offset:3px}main a,.dashboard-hero a,.project-detail a{color:var(--pink-ink);-webkit-text-decoration-color:color-mix(in oklch, var(--pink-ink) 50%, transparent);text-decoration-color:color-mix(in oklch, var(--pink-ink) 50%, transparent);text-underline-offset:3px}main a:hover{color:var(--pink-ink);-webkit-text-decoration-color:var(--pink-ink);text-decoration-color:var(--pink-ink)}@media (width<=880px){.footer-top{grid-template-columns:1fr;gap:40px}.footer-cols{gap:24px}}@media (width<=560px){.site-footer{padding:48px 16px 28px}.footer-brand{grid-template-columns:36px minmax(0,1fr);gap:14px}.footer-cols{grid-template-columns:1fr}.footer-col:nth-child(3){grid-column:auto}.footer-meta{gap:8px;display:grid}}.spark-canvas{z-index:50;pointer-events:none;position:fixed;inset:0}.empty{text-align:center;background:color-mix(in oklch, var(--paper) 70%, white);color:var(--muted);grid-column:1/-1;padding:48px 24px;font-style:italic}.ranking-hero{grid-template-columns:minmax(0,1fr);align-items:start;padding:20px 0 42px;display:grid}.ranking-hero h1{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;margin:16px 0 24px;font-size:clamp(48px,6.5vw,96px);font-weight:500;line-height:.94}.ranking-hero h1 .ital{color:var(--pink-ink);font-style:italic;font-weight:400}.ranking-hero p{color:var(--ink-soft);max-width:560px;font-size:17px;line-height:1.55}.privacy-notice{box-sizing:border-box;border:1px solid color-mix(in oklch, var(--pink-ink) 22%, var(--hairline));border-radius:var(--radius);background:color-mix(in oklch, var(--pink-soft) 68%, white);overflow:hidden}.privacy-notice summary{cursor:pointer;color:var(--pink-ink);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;list-style:none;display:flex}.privacy-notice summary::-webkit-details-marker{display:none}.privacy-notice summary strong{font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.privacy-notice summary em{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-top:2px;font-size:9px;font-style:normal;line-height:1.35;display:block}.privacy-toggle{border:1px solid color-mix(in oklch, var(--pink-ink) 30%, var(--hairline));width:22px;height:22px;color:var(--pink-ink);font-family:var(--font-mono);background:#fff;border-radius:50%;flex:0 0 22px;place-items:center;font-size:13px;display:grid}.privacy-toggle:before{content:"+"}.privacy-notice[open] .privacy-toggle:before{content:"-"}.privacy-notice-body{border-top:1px solid color-mix(in oklch, var(--pink-ink) 18%, transparent);background:#fff;gap:9px;max-height:320px;padding:12px;display:grid;overflow:auto}.privacy-notice-body h3{color:var(--pink-ink);font-family:var(--font-mono);letter-spacing:.11em;text-transform:uppercase;margin:6px 0 0;font-size:10px;font-weight:600}.privacy-notice-body h3:first-child{margin-top:0}.privacy-notice-body p,.privacy-notice-body li{font-size:12px;line-height:1.45}.privacy-notice-body ul{color:var(--ink-soft);margin:0;padding-left:18px}.privacy-notice-body li+li{margin-top:7px}.privacy-links{gap:4px;display:grid}.privacy-questions{font-family:var(--font-mono);padding-top:4px;font-size:10.5px!important}.ranking-steps{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);flex-wrap:wrap;gap:24px;margin-bottom:32px;padding:16px 0;display:flex}.step{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:11px;display:flex}.step .step-num{background:var(--paper-3);width:22px;height:22px;color:var(--muted);border-radius:50%;place-items:center;font-size:10px;display:grid}.step.is-active{color:var(--ink)}.step.is-active .step-num{background:var(--ink);color:var(--paper)}.step.is-done .step-num{background:var(--pink);color:#fff}.step .step-line{background:var(--hairline);width:32px;height:1px;margin:0 4px}.ranking-layout{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start;gap:32px;display:grid}@media (width<=980px){.ranking-layout{grid-template-columns:1fr}}.student-form-card{background:color-mix(in oklch, var(--paper) 75%, white);border:1px solid var(--hairline);border-radius:var(--radius-lg);gap:16px;padding:24px;display:grid;position:sticky;top:92px}.student-form-card h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:500}.student-form-card .helper{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.button-row{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.ranking-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ranking-item{background:color-mix(in oklch, var(--paper) 75%, white);border:1px solid var(--hairline);border-radius:var(--radius-lg);cursor:grab;transition:transform .38s var(--ease-spring), box-shadow .22s var(--ease), border-color .2s;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid;position:relative}.ranking-item:hover{border-color:var(--pink-ink);box-shadow:var(--shadow-1)}.ranking-item.dragging{opacity:.95;cursor:grabbing;border-color:var(--pink-ink);z-index:5;background:#fff;transform:scale(1.02)rotate(-.4deg);box-shadow:0 24px 48px oklch(22% .012 95/.18)}.rank-num{background:var(--paper-3);width:36px;height:36px;color:var(--ink-soft);font-family:var(--font-mono);transition:all .22s var(--ease-spring);border-radius:50%;place-items:center;font-size:13px;font-weight:500;display:grid}.ranking-item:first-child .rank-num,.ranking-item:nth-child(2) .rank-num,.ranking-item:nth-child(3) .rank-num{background:var(--pink);color:#fff}.ranking-item:first-child .rank-num{box-shadow:0 0 0 4px color-mix(in oklch, var(--pink) 18%, transparent)}.rank-body{min-width:0}.rank-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0 0 2px;font-size:16px;font-weight:500;line-height:1.2;display:-webkit-box;overflow:hidden}.rank-meta{color:var(--muted);font-size:12px}.rank-controls{gap:4px;display:flex}.rank-btn{border:1px solid var(--hairline);width:30px;height:30px;color:var(--muted);background:#fff;border-radius:50%;place-items:center;font-size:11px;display:grid}.rank-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.rank-btn:disabled{opacity:.3;cursor:not-allowed}.drag-handle{font-family:var(--font-mono);color:var(--muted);letter-spacing:.1em;padding:4px 6px;font-size:11px}.status-line{font-family:var(--font-mono);letter-spacing:.06em;color:var(--olive-ink);min-height:1.5em;font-size:11px}.submission-mock{border:1px dashed var(--hairline-2);border-radius:var(--radius-lg);background:color-mix(in oklch, var(--paper) 60%, white);margin-top:56px;padding:32px}.submission-mock h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px;font-weight:500}.submission-mock .endpoints{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.endpoint{border:1px solid var(--hairline);border-radius:var(--radius);font-family:var(--font-mono);background:#fff;gap:4px;padding:14px;font-size:12px;display:grid}.endpoint .ep-method{background:var(--olive-soft);color:var(--olive-ink);letter-spacing:.08em;border-radius:4px;margin-right:6px;padding:2px 6px;font-size:9px;display:inline-block}.endpoint .ep-path{color:var(--ink)}.endpoint .ep-desc{font-family:var(--font-ui);color:var(--muted);font-size:11px}.submitted-card{border:1px solid color-mix(in oklch, var(--olive) 25%, transparent);background:color-mix(in oklch, var(--olive) 6%, white);border-radius:var(--radius-lg);gap:12px;padding:32px;display:grid}.submitted-card h3{font-family:var(--font-display);color:var(--olive-ink);margin:0;font-size:24px;font-weight:500}.submitted-card .receipt-mono{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}.submitted-card ol{color:var(--ink-soft);margin:0;padding-left:24px}@media (width<=700px){.ranking-hero{padding:12px 0 30px}.ranking-hero h1{letter-spacing:0;font-size:42px;line-height:1}.ranking-steps{grid-template-columns:1fr;gap:10px;display:grid}.step .step-line{display:none}.student-form-card{padding:20px 16px;position:static}.ranking-item{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:12px}.rank-num{width:32px;height:32px}.rank-title{-webkit-line-clamp:2}.rank-controls{flex-wrap:wrap;grid-column:2;justify-content:flex-start}.submission-mock,.submitted-card{padding:22px 16px}}.auth-panel{border:1px solid var(--hairline);border-radius:var(--radius-lg);max-width:560px;box-shadow:var(--shadow);background:#fff;margin:0 auto;padding:clamp(28px,6vw,56px)}.auth-panel h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(36px,7vw,64px);font-weight:500;line-height:.98}.auth-panel p{color:var(--ink-soft);line-height:1.55}.auth-form{gap:14px;margin-top:24px;display:grid}.auth-status{margin:0;font-size:13px;color:var(--pink-ink)!important}.auth-strip{width:min(var(--max), calc(100% - 32px));background:color-mix(in oklch, var(--accent) 20%, white);border:1px solid color-mix(in oklch, var(--accent-ink) 22%, var(--hairline));border-radius:var(--radius-lg);color:var(--accent-ink);justify-content:space-between;align-items:center;gap:12px;margin:18px auto 0;padding:10px 14px;font-size:13px;display:flex}.auth-strip strong{font-family:var(--font-mono);font-size:12px}.auth-strip .btn{padding:7px 12px}.dashboard-hero{grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);align-items:end;gap:32px;padding:20px 0 32px;display:grid}.dashboard-hero h1{font-family:var(--font-display);letter-spacing:-.025em;margin:12px 0 16px;font-size:clamp(40px,5vw,64px);font-weight:500;line-height:1}.dashboard-hero .stats{background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.dashboard-hero .stats div{background:#fff;padding:14px}.dashboard-hero .stats dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:9px}.dashboard-hero .stats dd{font-family:var(--font-display);color:var(--ink);margin:4px 0 0;font-size:24px;font-weight:500}.dashboard-hero .stats dd .pink{color:var(--pink-ink)}.dash-tabs{background:var(--paper-3);border-radius:999px;flex-wrap:wrap;gap:4px;width:fit-content;margin:24px 0 32px;padding:6px;display:flex}.dash-tab{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:500}.dash-tab.is-active{color:var(--ink);box-shadow:var(--shadow-1);background:#fff}.dist-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,520px),1fr));gap:12px;display:grid}.dist-row{border:1px solid var(--hairline);border-radius:var(--radius);background:#fff;grid-template-columns:32px minmax(0,1.6fr) minmax(0,2.2fr);align-items:center;gap:18px;padding:14px 18px;transition:border-color .2s;display:grid}.dist-row:hover{border-color:var(--pink-ink)}.dist-row .dist-num{font-family:var(--font-mono);color:var(--muted);font-size:11px}.dist-row .dist-title{font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:500;overflow:hidden}.dist-row .dist-advisor{color:var(--muted);font-size:12px}.dist-bar{background:var(--paper-3);border-radius:4px;gap:1px;height:24px;display:flex;overflow:hidden}.dist-seg{height:100%;font-family:var(--font-mono);color:#fff;flex-basis:0;place-items:center;min-width:18px;font-size:9px;transition:filter .2s;display:grid}.dist-seg:hover{filter:brightness(1.1)}.dist-seg.r1{background:oklch(46% .075 18)}.dist-seg.r2{background:oklch(56% .065 25)}.dist-seg.r3{background:oklch(64% .05 40)}.dist-seg.r4{background:oklch(72% .04 60)}.dist-seg.r5{background:oklch(78% .03 80)}.dist-seg.rN{color:var(--muted);background:oklch(82% .02 100)}.dist-legend{font-family:var(--font-mono);color:var(--muted);letter-spacing:.08em;flex-wrap:wrap;gap:12px;margin-bottom:16px;font-size:10px;display:flex}.dist-legend .lg{align-items:center;gap:6px;display:inline-flex}.dist-legend .sw{border-radius:3px;width:12px;height:12px}.heatmap-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:16px;display:grid}.heatmap-wrap{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;padding:20px;overflow-x:auto}.heatmap{grid-template-columns:220px repeat(var(--cols,9), minmax(40px, 1fr));font-family:var(--font-mono);gap:2px;min-width:720px;font-size:10px;display:grid}.heatmap .h-label,.heatmap .h-corner{color:var(--muted);padding:6px}.heatmap .h-corner{font-weight:500}.heatmap .h-row-label{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);border-right:1px solid var(--hairline);white-space:nowrap;text-overflow:ellipsis;align-items:center;padding:6px 8px;font-size:13px;font-weight:400;display:flex;overflow:hidden}.heatmap .h-cell{aspect-ratio:1;background:var(--paper-3);color:var(--ink);cursor:pointer;font:inherit;border:0;border-radius:2px;place-items:center;padding:0;transition:transform .16s;display:grid;position:relative}.heatmap .h-cell:hover,.heatmap .h-cell:focus-visible{z-index:2;outline:2px solid var(--ink);outline-offset:1px;transform:scale(1.15)}.heatmap .h-cell.is-selected{box-shadow:inset 0 0 0 2px var(--ink), 0 0 0 2px white;z-index:1}.heatmap .h-cell[data-v="0"]{background:var(--paper-3);color:#0000}.heatmap-detail{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;gap:12px;padding:18px;display:grid;position:sticky;top:96px}.heatmap-detail-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.heatmap-detail h3,.heatmap-detail-empty h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:500;line-height:1.1}.heatmap-project-title{border-top:1px dashed var(--hairline);color:var(--ink-soft);margin:0;padding-top:10px;font-size:13px;line-height:1.4}.heatmap-student-list{gap:6px;display:grid}.heatmap-student-card{background:var(--paper-3);border-radius:var(--radius);gap:4px;min-width:0;padding:10px;font-size:12px;display:grid}.heatmap-student-card strong,.heatmap-student-card .mono{overflow-wrap:anywhere;min-width:0}.heatmap-student-card strong{font-family:var(--font-display);color:var(--ink);font-weight:500}.heatmap-student-card .mono{color:var(--muted);font-size:10.5px}.heatmap-detail-empty{gap:8px;display:grid}.heatmap-detail-empty p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.45}.student-response-view{gap:16px;display:grid}.response-roster-card{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;gap:14px;padding:18px;display:grid}.response-roster-card.is-complete{border-color:color-mix(in oklch, var(--olive-ink) 24%, var(--hairline));background:color-mix(in oklch, var(--olive-soft) 38%, white)}.response-roster-head{justify-content:space-between;align-items:start;gap:16px;display:flex}.response-roster-head .field-label{margin-bottom:5px}.response-roster-head h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:500;line-height:1.1}.response-roster-metrics{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.response-roster-metrics span{background:var(--paper-3);border-radius:var(--radius);min-width:90px;color:var(--muted);text-align:right;padding:9px 10px;font-size:11px}.response-roster-metrics strong{font-family:var(--font-display);color:var(--ink);font-size:24px;font-weight:500;line-height:1;display:block}.missing-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.missing-actions .btn{padding:8px 12px}.response-action-status{color:var(--muted);font-size:12px}.missing-student-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.missing-student-card{background:color-mix(in oklch, var(--pink-soft) 58%, white);border:1px solid color-mix(in oklch, var(--pink-ink) 18%, var(--hairline));border-radius:var(--radius);gap:4px;min-width:0;padding:11px 12px;font-size:12px;display:grid}.missing-student-card strong{overflow-wrap:anywhere;min-width:0;font-family:var(--font-display);color:var(--ink);font-weight:500}.missing-student-card .mono{overflow-wrap:anywhere;min-width:0;color:var(--muted);font-size:10.5px}.missing-student-card em{color:var(--pink-ink);font-size:11px;font-style:normal}.students-grid{background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius-lg);gap:1px;display:grid;overflow:hidden}.student-row{background:#fff;grid-template-columns:minmax(160px,1fr) minmax(0,2fr) auto;align-items:center;gap:16px;padding:16px;font-size:13px;display:grid}.student-row.head{background:var(--paper-3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10px}.student-row .name{font-family:var(--font-display);font-size:15px;font-weight:500}.student-row .email{font-family:var(--font-mono);color:var(--muted);font-size:11px}.student-row .pref-list{flex-wrap:wrap;gap:4px;display:flex}.pref-chip{background:var(--paper-3);color:var(--ink-soft);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.pref-chip .n{font-family:var(--font-mono);color:var(--pink-ink);font-size:9px;font-weight:500}.pref-chip-lower{opacity:.6}.pref-chip-lower .n{color:var(--muted)}.pref-expand{border:1px solid var(--hairline);background:var(--paper-3);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:2px 7px;font-size:9px;transition:background .16s,border-color .16s,color .16s;display:inline-flex}.pref-expand:hover{border-color:var(--ink);color:var(--ink);background:#fff}.pref-expand.is-open{background:var(--ink);border-color:var(--ink);color:var(--paper)}.teams-controls{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:20px;padding:16px;display:flex}.teams-controls .field{min-width:0}.teams-controls .matching-field{min-width:230px}.matching-segments{background:var(--paper-3);border-radius:999px;gap:3px;padding:3px;display:inline-flex}.matching-segment{color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:500}.matching-segment:hover,.matching-segment.is-active{color:var(--ink);box-shadow:var(--shadow-1);background:#fff}.matching-segment:disabled{cursor:wait;opacity:.6}.teams-controls .satisfaction{font-family:var(--font-mono);color:var(--muted);align-items:center;gap:12px;margin-left:auto;font-size:11px;display:flex}.satisfaction .big{font-family:var(--font-display);color:var(--olive-ink);letter-spacing:-.02em;font-size:32px;font-weight:500}.teams-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.team-card{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;gap:10px;padding:18px;display:grid}.team-card .team-num{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.team-card .team-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:500;line-height:1.2}.team-card .team-advisor{color:var(--muted);font-size:12px}.team-card .team-roster{border-top:1px dashed var(--hairline);gap:6px;min-height:40px;margin:8px 0 0;padding:10px 0 0;list-style:none;display:grid}.team-roster li{background:var(--paper);border-radius:var(--radius);cursor:grab;border:1px solid #0000;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;transition:background .16s,border-color .16s;display:flex}.team-roster li:hover{border-color:var(--hairline);background:#fff}.team-roster li.dragging{opacity:.5}.team-roster li.is-locked{cursor:grab;border-color:color-mix(in oklch, var(--accent-ink) 30%, var(--hairline));background:color-mix(in oklch, var(--accent) 24%, white)}.team-roster .pref-marker{font-family:var(--font-mono);color:var(--pink-ink);white-space:nowrap;flex:none;font-size:10px}.team-roster li.is-locked .pref-marker{color:var(--accent-ink)}.team-roster.is-drop-target{background:var(--pink-soft);outline:2px dashed var(--pink-ink);outline-offset:-2px;border-radius:var(--radius)}.team-card .team-empty{color:var(--muted);text-align:center;padding:8px;font-size:12px;font-style:italic}.team-save-status{border:1px solid color-mix(in oklch, var(--accent-ink) 25%, var(--hairline));border-radius:var(--radius);background:color-mix(in oklch, var(--accent) 20%, white);color:var(--accent-ink);margin:-8px 0 18px;padding:10px 12px;font-size:12.5px;line-height:1.45}.team-save-status.is-warning{border-color:color-mix(in oklch, var(--pink-ink) 30%, var(--hairline));background:var(--pink-soft);color:var(--pink-ink)}.matching-export-panel{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;gap:12px;margin-top:20px;padding:16px;display:grid}.matching-export-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.matching-export-head h3{font-family:var(--font-display);margin:2px 0 0;font-size:22px;font-weight:500;line-height:1.1}.matching-export-text{resize:vertical;width:100%;min-height:260px;font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;font-size:11.5px;line-height:1.55}.matching-export-status{color:var(--pink-ink);margin:0;font-size:12.5px;line-height:1.45}.email-draft-grid{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:18px;display:grid}.email-composer,.recipient-panel{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;padding:20px}.email-composer{gap:16px;display:grid}.email-section-head{justify-content:space-between;align-items:start;gap:14px;display:flex}.email-section-head h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:500;line-height:1.1}.email-section-head .kicker{margin:0 0 6px;font-size:10px}.email-mode{background:color-mix(in oklch, var(--accent) 24%, white);color:var(--accent-ink);border:1px solid color-mix(in oklch, var(--accent-ink) 24%, var(--hairline));border-radius:999px;flex:none;padding:5px 9px;font-size:10px}.email-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.email-source-field{grid-column:1/-1}.email-composer textarea{min-height:280px;line-height:1.45}.email-actions{flex-wrap:wrap;gap:8px;display:flex}.email-note,.email-status{color:var(--muted);margin:0;font-size:12.5px;line-height:1.5}.email-status{color:var(--pink-ink)}.recipient-panel{gap:14px;display:grid;position:sticky;top:96px}.recipient-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.recipient-stat,.team-email-context{background:var(--paper-3);border-radius:var(--radius);color:var(--muted);border:1px solid #0000;padding:10px;font-size:12px}.recipient-stat{text-align:left;cursor:pointer;transition:background .16s,border-color .16s,color .16s;display:block}.recipient-stat:hover,.recipient-stat.is-active{background:color-mix(in oklch, var(--accent) 20%, white);border-color:color-mix(in oklch, var(--accent-ink) 28%, var(--hairline));color:var(--accent-ink)}.recipient-stat strong{font-family:var(--font-display);color:var(--ink);font-size:26px;font-weight:500;line-height:1;display:block}.team-email-context{gap:4px;display:grid}.team-email-context .mono{color:var(--ink);font-size:11px}.recipient-list{gap:1px;margin:0;padding:0;list-style:none;display:grid}.recipient-group{border:1px solid var(--hairline);border-radius:var(--radius);gap:1px;display:grid;overflow:hidden}.recipient-group+.recipient-group{margin-top:10px}.recipient-group h4{color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;background:#fff;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:8px 10px;font-size:10px;font-weight:500;display:flex}.recipient-group h4 span{color:var(--ink);letter-spacing:0}.recipient-group.is-muted{opacity:.82;border-style:dashed}.recipient-group.is-muted h4,.recipient-group.is-muted .recipient-card{background:color-mix(in oklch, var(--paper-2) 65%, white)}.recipient-card{background:color-mix(in oklch, var(--paper) 50%, white);gap:4px;min-width:0;padding:10px;font-size:12px;display:grid}.recipient-card strong,.recipient-card .mono{overflow-wrap:anywhere;min-width:0}.recipient-card strong{font-family:var(--font-display);color:var(--ink);font-weight:500;display:block}.recipient-card em{color:var(--muted);text-transform:capitalize;margin-top:2px;font-style:normal;display:inline-block}.recipient-card .mono{color:var(--muted);font-size:10.5px}.recipient-empty{border:1px solid var(--hairline);border-radius:var(--radius);background:color-mix(in oklch, var(--paper) 50%, white);color:var(--muted);padding:10px;font-size:12px;font-style:italic}@media (width<=860px){.dashboard-hero{grid-template-columns:1fr}.dashboard-hero .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.heatmap-layout{grid-template-columns:1fr}.heatmap-detail{position:static}.email-draft-grid{grid-template-columns:1fr}.recipient-panel{position:static}}@media (width<=560px){.auth-panel{padding:24px 18px}.auth-panel h1,.dashboard-hero h1{letter-spacing:0;font-size:38px;line-height:1.02}.auth-strip{width:calc(100% - 32px);display:grid}.auth-strip .btn{width:100%}.dash-tabs{border-radius:var(--radius-lg);width:100%}.dash-tab{flex:calc(50% - 4px)}.dist-row{grid-template-columns:1fr;gap:8px}.dist-row .dist-title{white-space:normal}.dashboard-hero .stats{grid-template-columns:1fr}.response-roster-head{display:grid}.response-roster-metrics{justify-content:stretch}.response-roster-metrics span{text-align:left;flex:120px}.student-row{grid-template-columns:1fr;align-items:start}.student-row.head{display:none}.student-row>div:last-child{text-align:left!important;max-width:none!important}.matching-export-head{display:grid}.matching-export-head .btn{width:100%}.email-form-grid{grid-template-columns:1fr}.email-section-head{display:grid}.email-mode{width:fit-content}.email-actions .btn{width:100%}.recipient-stats{grid-template-columns:1fr}}.archive-dev-note{border-left:2px solid var(--pink-ink);background:var(--pink-soft);width:fit-content;font-family:var(--font-mono);letter-spacing:.04em;padding:8px 12px;line-height:1.45;color:var(--pink-ink)!important;margin:14px 0 0!important;font-size:11px!important}.archive-wrap{gap:20px;display:grid}.archive-year{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;grid-template-columns:minmax(140px,200px) minmax(0,1fr);align-items:start;gap:24px;padding:24px;display:grid}.archive-year .yr{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);font-size:48px;font-weight:500;line-height:1}.archive-year.future .yr{color:var(--muted)}.archive-year.future{background:color-mix(in oklch, var(--paper) 50%, white);border-style:dashed}.archive-year .body h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 8px;font-size:22px;font-weight:500}.archive-year .body p{color:var(--ink-soft);margin:0 0 12px}.archive-year .stats-row{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:16px;font-size:11px;display:flex}.archive-year .stats-row strong{color:var(--ink);font-weight:500}@media (width<=600px){.archive-year{grid-template-columns:1fr;gap:8px}.archive-year .yr{font-size:36px}}.particles{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.particle{background:var(--pink);opacity:0;border-radius:50%;width:3px;height:3px;animation:12s linear infinite particle-drift;position:absolute}.particle.olive{background:var(--olive)}@keyframes particle-drift{0%{opacity:0;transform:translate(0)scale(.6)}10%{opacity:.55}90%{opacity:.55}to{opacity:0;transform:translate(var(--tx,80px), var(--ty,-120px)) scale(1)}}.ann-view{flex-direction:column;gap:14px;display:flex}.ann-toolbar{border-bottom:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.ann-toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.ann-count{font-family:var(--font-mono);color:var(--muted);font-size:12px}.ann-card{border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;flex-direction:column;gap:8px;padding:20px 24px;display:flex}.ann-card-dim{opacity:.6}.ann-card-pinned{border-left:3px solid var(--pink)}.ann-card-new{border-style:dashed;border-color:var(--olive)}.ann-card-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.ann-card-btns{gap:6px;margin-left:auto;display:flex}.ann-btn{font-family:var(--font-mono);letter-spacing:.05em;border:1px solid var(--hairline);background:var(--paper-3);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:3px 9px;font-size:10px;transition:background .12s,color .12s,border-color .12s}.ann-btn:hover{color:var(--ink);border-color:var(--ink);background:#fff}.ann-btn-del{color:var(--muted)}.ann-btn-del.is-confirm{background:var(--pink-soft);border-color:var(--pink-ink);color:var(--pink-ink)}.ann-pill{font-family:var(--font-mono);letter-spacing:.06em;background:var(--paper-3);color:var(--muted);border:1px solid var(--hairline);text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:10px}.ann-pill-pin{background:var(--pink-soft);border-color:var(--pink-ink);color:var(--pink-ink)}.ann-pill-new{background:color-mix(in oklch, var(--olive) 12%, white);border-color:var(--olive);color:var(--olive)}.ann-editing-label{font-family:var(--font-mono);color:var(--muted);font-size:10px}.ann-date-label{font-family:var(--font-mono);color:var(--ink-soft);font-size:11px}.ann-date{font-family:var(--font-mono);color:var(--muted);font-size:11px}.ann-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:500}.ann-summary{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.5}.ann-body-details{color:var(--ink-soft);border-top:1px solid var(--hairline);margin-top:2px;padding-top:8px;font-size:13px}.ann-body-details summary{font-family:var(--font-mono);color:var(--muted);cursor:pointer;margin-bottom:8px;font-size:11px}.ann-body-details p{margin:0 0 8px;line-height:1.55}.ann-resources{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.ann-resource-chip{font-family:var(--font-mono);border:1px solid var(--hairline);background:var(--paper-3);color:var(--ink-soft);border-radius:999px;padding:2px 8px;font-size:10px}.ann-resource-chip a{color:inherit;text-decoration:none}.ann-resource-chip a:hover{color:var(--ink)}.ann-empty{text-align:center;color:var(--muted);padding:40px 0;font-size:14px}.ann-empty p{margin:0 0 6px}.ann-form{border-top:1px solid var(--hairline);flex-direction:column;gap:14px;padding-top:16px;display:flex}.ann-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ann-form-row{align-items:flex-start;gap:16px;display:flex}.ann-label{font-family:var(--font-mono);color:var(--muted);letter-spacing:.04em;flex-direction:column;gap:4px;font-size:11px;display:flex}.ann-label input,.ann-label select,.ann-label textarea{font-family:var(--font-body);border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper-3);color:var(--ink);padding:7px 10px;font-size:14px;transition:border-color .12s}.ann-label input:focus,.ann-label select:focus,.ann-label textarea:focus{border-color:var(--ink);outline:none}.ann-body-input{resize:vertical;min-height:100px;line-height:1.55}.ann-hint{color:var(--muted);opacity:.7;font-weight:400}.ann-checkbox-label{font-family:var(--font-mono);color:var(--muted);cursor:pointer;align-items:center;gap:6px;padding-top:20px;font-size:11px;display:flex}.ann-form-actions{gap:8px;padding-top:4px;display:flex}.ann-resources-editor{flex-direction:column;gap:6px;margin-top:4px;display:flex}.ann-resource-row{align-items:center;gap:8px;display:flex}.ann-resource-row input{font-family:var(--font-body);border:1px solid var(--hairline);border-radius:var(--radius);background:var(--paper-3);color:var(--ink);flex:1;padding:5px 8px;font-size:13px}.ann-resource-row input:focus{border-color:var(--ink);outline:none}.ann-res-remove{border:1px solid var(--hairline);background:var(--paper-3);width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:background .12s,color .12s;display:flex}.ann-res-remove:hover{background:var(--pink-soft);color:var(--pink-ink);border-color:var(--pink-ink)}@media (width<=640px){.ann-form-grid{grid-template-columns:1fr}.ann-card{padding:16px}}
