@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&family=Space+Grotesk:wght@400;500;600&display=swap";:root{color-scheme:light;--ink: #0f1b2b;--ink-soft: #1f2f43;--accent: #0a7f63;--accent-2: #f19a3e;--surface: #f9f4ee;--surface-2: #ffffff;--line: rgba(15, 27, 43, .12);--shadow: 0 24px 48px rgba(8, 14, 24, .12);--radius: 20px}[data-theme=dark]{color-scheme:dark;--ink: #e6eef7;--ink-soft: #d0dceb;--accent: #3fd0b2;--accent-2: #f3b04d;--surface: #0f1724;--surface-2: #142033;--line: rgba(230, 238, 247, .18);--shadow: 0 22px 44px rgba(0, 0, 0, .45)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;font-family:Space Grotesk,Segoe UI,sans-serif;font-size:17px;color:var(--ink);background:radial-gradient(circle at top,#f7efe2,#f4f0ea 35%,#e7f1ee)}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 15% 15%,rgba(241,154,62,.18),transparent 40%),radial-gradient(circle at 85% 5%,rgba(10,127,99,.16),transparent 45%),radial-gradient(circle at 85% 75%,rgba(13,72,130,.1),transparent 40%);z-index:-1}[data-theme=dark] body{background:radial-gradient(circle at top,#0b1220,#0f1b2b 40%,#0a1a1a)}[data-theme=dark] body:before{background:radial-gradient(circle at 20% 10%,rgba(63,208,178,.16),transparent 45%),radial-gradient(circle at 90% 10%,rgba(243,176,77,.12),transparent 45%),radial-gradient(circle at 70% 80%,rgba(79,117,255,.18),transparent 40%)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}img{max-width:100%;height:auto}.container{width:min(1100px,92vw);margin:0 auto;padding:64px 0 96px}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;align-items:center;padding:40px;border-radius:var(--radius);background:#ffffffc7;box-shadow:var(--shadow);border:1px solid rgba(15,27,43,.08);backdrop-filter:blur(10px);color:var(--ink)}.eyebrow{font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600}h1,h2,h3{font-family:Fraunces,Times New Roman,serif;margin:0 0 16px}h1{font-size:clamp(2.6rem,4vw,3.5rem);line-height:1.1}h2{font-size:clamp(1.8rem,3vw,2.3rem)}h3{font-size:1.2rem}p{line-height:1.85;word-spacing:.04em;color:var(--ink-soft)}.hero p,.card p,.hero .meta,.card .meta,.hero .list,.card .list{color:#0f1b2bd1}.tagline{font-size:1.05rem;margin-bottom:24px}.button{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:600;box-shadow:0 12px 20px #0a7f6333;transition:transform .2s ease,box-shadow .2s ease}.button.secondary{background:transparent;border-color:var(--line);color:var(--ink);box-shadow:none}.button.projects{background:var(--accent-2);color:#1b1206;border-color:transparent;box-shadow:0 12px 20px #f19a3e40}[data-theme=dark] .button.projects{color:#1b1206;box-shadow:0 12px 20px #f19a3e33}.button:hover{transform:translateY(-2px);box-shadow:0 16px 26px #0a7f6340}.section{margin-top:64px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.card{background:#ffffffc7;border-radius:var(--radius);padding:24px;border:1px solid rgba(15,27,43,.08);box-shadow:0 18px 32px #0f1b2b14;backdrop-filter:blur(10px);color:var(--ink)}[data-theme=dark] .hero,[data-theme=dark] .card{background:#142033b8;border-color:#e6eef71f;color:var(--ink)}[data-theme=dark] .hero p,[data-theme=dark] .card p,[data-theme=dark] .hero .meta,[data-theme=dark] .card .meta,[data-theme=dark] .hero .list,[data-theme=dark] .card .list{color:#e6eef7db}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.one{grid-template-columns:1fr}.pill{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#0a7f631f;color:var(--accent);font-size:.85rem;font-weight:600}.meta{color:var(--ink-soft);font-size:.95rem;font-weight:500}.list{margin:0;padding-left:20px;color:var(--ink-soft);line-height:1.8;word-spacing:.03em}.list li{margin-bottom:.45rem}.links{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.links a{font-weight:600}.card-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.card-title{font-size:1.2rem}.meta.right{margin-left:auto;text-align:right;white-space:nowrap}.highlight{font-weight:600;color:var(--ink);background:#f19a3e2e;padding:0 4px;border-radius:6px}[data-theme=dark] .highlight{color:var(--ink);background:#3fd0b238}.tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none}.tag-groups{display:grid;gap:12px}.tag-group{display:grid;gap:8px;padding-left:12px;border-left:2px solid rgba(15,27,43,.12)}.tag-group-label{width:fit-content;background:#0f1b2b14;color:var(--ink);font-weight:700}[data-theme=dark] .tag-group-label{background:#e6eef724;color:var(--ink)}[data-theme=dark] .tag-group{border-left-color:#e6eef729}.tag{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--ink);background:#0a7f6324}[data-theme=dark] .tag{color:var(--ink);background:#3fd0b229}.footer{margin-top:80px;padding:32px 0 0;border-top:1px solid var(--line);color:var(--ink-soft);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}.fade-in{animation:fadeIn .8s ease both}.stagger>*{animation:rise .6s ease both}.stagger>*:nth-child(2){animation-delay:.08s}.stagger>*:nth-child(3){animation-delay:.16s}.stagger>*:nth-child(4){animation-delay:.24s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{position:fixed;right:24px;bottom:24px;z-index:50;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:999px;padding:10px 16px;display:inline-flex;gap:8px;align-items:center;font-weight:600;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease}.theme-toggle:hover{transform:translateY(-2px)}.is-hidden{display:none}.section-actions{margin-top:16px;display:flex;justify-content:center}details.collapse{border-radius:var(--radius);background:#ffffffb3;border:1px solid rgba(15,27,43,.08);padding:12px 16px;box-shadow:0 10px 20px #0f1b2b0f}details.collapse summary{cursor:pointer;font-weight:700;list-style:none}.collapse-title{font-family:Fraunces,Times New Roman,serif;font-size:clamp(1.6rem,2.4vw,2.1rem);letter-spacing:.01em}details.collapse summary::-webkit-details-marker{display:none}details.collapse summary:after{content:"▾";float:right;font-size:.9rem;color:var(--ink-soft);transform:rotate(0);transition:transform .2s ease}details.collapse[open] summary:after{transform:rotate(180deg)}details.collapse .grid{margin-top:16px}.filter-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.filter-option{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink-soft)}.filter-label{font-weight:700;color:var(--ink)}[data-theme=dark] details.collapse{background:#142033b3;border-color:#e6eef71f}.effort-pill{padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.effort-first-author{background:#0a7f6329;color:#0a7f63}[data-theme=dark] .effort-first-author{background:#3fd0b22e;color:#5fe3c8}.button.more{background:#0d4882;border-color:transparent;color:#fff;font-weight:700;letter-spacing:.02em;box-shadow:0 14px 24px #0d488238;padding:14px 28px;font-size:1rem;animation:more-bounce 2.6s ease-in-out infinite}.button.more:hover{box-shadow:0 18px 30px #0d488247}[data-theme=dark] .button.more{background:#4f75ff;color:#0b1220;box-shadow:0 14px 24px #4f75ff40}@keyframes more-bounce{0%,to{transform:translateY(0)}12%{transform:translateY(-6px)}24%{transform:translateY(0)}36%{transform:translateY(-3px)}48%{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.button.more{animation:none}}.fun-orb{position:fixed;width:280px;height:280px;border-radius:50%;right:40px;top:18%;background:#f2b84b;filter:blur(0);opacity:.6;animation:orb-bounce 4.2s ease-in-out infinite;z-index:0;mix-blend-mode:multiply}[data-theme=dark] .fun-orb{background:#3dd6c6;opacity:.7;mix-blend-mode:screen}@keyframes orb-bounce{0%{transform:translateY(0)}12%{transform:translateY(-34px)}24%{transform:translateY(0)}38%{transform:translateY(-22px)}52%{transform:translateY(0)}68%{transform:translateY(-12px)}82%{transform:translateY(0)}to{transform:translateY(0)}}@media(max-width:720px){.container{padding:48px 0 80px}.hero{padding:28px}.theme-toggle{right:16px;bottom:16px}}
