:root{--bg:#f4efe4;--bg-light:#fffdf8;--bg-deep:#e9e1cf;--ink:#12305a;--ink-soft:#3d5677;--accent:#ef7d1a;--accent-ink:#b45309;--blue:#2f6db3;--surface:#fffdf8db;--card:#fffdf8f5;--line:#12305a24;--gutter:clamp(16px, 4vw, 48px);--font:"Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}h1:focus{outline:none}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{isolation:isolate;background:radial-gradient(ellipse at 50% 42%, var(--bg-light) 0%, var(--bg) 58%, var(--bg-deep) 100%);position:fixed;inset:0;overflow:hidden}.stage{z-index:0;position:absolute;inset:0}.stage>div,.stage canvas{touch-action:pan-y!important}.stage canvas{cursor:grab}.stage canvas:active{cursor:grabbing}.button{border:1px solid var(--ink);background:var(--ink);min-height:44px;color:var(--bg-light);font:600 .9rem var(--font);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 20px;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.button--ghost{background:var(--surface);color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:#12305a2e}.button--ghost:hover{border-color:var(--ink);background:var(--bg-light)}.button--small{min-height:36px;padding:0 14px;font-size:.8rem}.corner{right:max(var(--gutter), env(safe-area-inset-right));bottom:max(var(--gutter), env(safe-area-inset-bottom));z-index:6;opacity:0;transition:opacity .8s 2s;position:absolute}.is-ready .corner{opacity:1}.page-intro{left:max(var(--gutter), env(safe-area-inset-left));bottom:max(var(--gutter), env(safe-area-inset-bottom));z-index:6;pointer-events:none;max-width:26rem;text-shadow:0 0 14px var(--bg), 0 0 4px var(--bg);animation:.9s cubic-bezier(.2,.7,.2,1) .55s both slide-in;position:absolute}.page-intro h1{letter-spacing:-.01em;margin:0 0 10px;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);line-height:1.12}.page-intro p{color:var(--ink-soft);margin:0;font-size:1rem;line-height:1.5}.page-intro .page-intro__hint{letter-spacing:.02em;margin-top:10px;font-size:.82rem}.page-intro .page-intro__channels{flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.9rem;font-weight:700;display:flex}.page-intro__channels a{color:var(--blue);pointer-events:auto;text-underline-offset:3px}.page-intro .notice{text-shadow:none;margin-top:12px}@keyframes slide-in{0%{opacity:0;transform:translateX(calc(var(--direction,1) * 56px))}to{opacity:1;transform:none}}.page-nav{top:max(var(--gutter), env(safe-area-inset-top));left:max(var(--gutter), env(safe-area-inset-left));z-index:6;align-items:center;gap:14px;animation:.9s cubic-bezier(.2,.7,.2,1) .55s both slide-in;display:flex;position:absolute}.page-nav__home,.page-nav ul{background:var(--surface);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #12305a29;border-radius:999px;box-shadow:0 10px 30px -12px #12305a59}.page-nav__home{align-items:center;min-height:40px;padding:0 16px;font-size:.9rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.page-nav__home:hover{background:var(--ink);color:var(--bg-light)}.page-nav ul{gap:2px;margin:0;padding:3px;list-style:none;display:flex}.page-nav ul a{min-height:34px;color:var(--ink-soft);border-radius:999px;align-items:center;padding:0 14px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.page-nav ul a:hover{color:var(--ink);background:#12305a12}.page-nav ul a[aria-current=page]{background:var(--ink);color:var(--bg-light)}.notice{border-left:3px solid var(--accent);background:var(--surface);color:var(--ink);border-radius:6px;margin:0;padding:8px 12px;font-size:.85rem}.hint-touch{display:none}@media (pointer:coarse){.hint-mouse{display:none}.hint-touch{display:inline}}.float-link{background:var(--surface);color:var(--ink);letter-spacing:.01em;white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #12305a29;border-radius:999px;align-items:center;gap:10px;padding:10px 18px 10px 12px;font-size:16px;font-weight:700;text-decoration:none;transition:transform .25s,background .25s,color .25s,border-color .25s;display:inline-flex;box-shadow:0 10px 30px -12px #12305a59}.float-link__dot{background:var(--accent);border-radius:50%;width:10px;height:10px;transition:box-shadow .25s;box-shadow:0 0 0 4px #ef7d1a33}.float-link:hover,.float-link.is-active{border-color:var(--ink);background:var(--ink);color:var(--bg-light);transform:scale(1.08)}.float-link:hover .float-link__dot,.float-link.is-active .float-link__dot{box-shadow:0 0 0 6px #ef7d1a59}.carousel-item{-webkit-user-select:none;user-select:none}.person-card{border:1px solid var(--line);background:var(--card);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:22px;flex-direction:column;width:260px;height:335px;padding:26px 24px;transition:border-color .3s,box-shadow .3s;display:flex;box-shadow:0 1px 2px #12305a0d,0 18px 40px -20px #12305a66}.person-card.is-current{cursor:default;border-color:#ef7d1a8c;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.person-card__avatar{background:linear-gradient(135deg, var(--ink), var(--blue));width:64px;height:64px;box-shadow:0 0 0 3px var(--bg-light), 0 0 0 5px var(--accent);color:var(--bg-light);letter-spacing:.04em;object-fit:cover;border-radius:50%;flex:none;place-items:center;margin-bottom:18px;font-size:20px;font-weight:700;display:grid}.person-card h2{margin:0;font-size:19px;line-height:1.25}.person-card__role{color:var(--accent-ink);letter-spacing:.08em;text-transform:uppercase;margin:4px 0 12px;font-size:12px;font-weight:700}.person-card__focus{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.5}.person-card__link{color:var(--blue);text-underline-offset:3px;margin-top:auto;padding-top:8px;font-size:14px;font-weight:700}.carousel-controls{background:var(--surface);color:var(--ink);font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #12305a29;border-radius:999px;align-items:center;gap:14px;padding:6px;font-size:14px;font-weight:700;display:flex;box-shadow:0 10px 30px -12px #12305a59}.carousel-controls button{background:var(--ink);width:38px;height:38px;color:var(--bg-light);font:700 22px/1 var(--font);cursor:pointer;border:none;border-radius:50%;place-items:center;transition:background .2s,opacity .2s;display:grid}.carousel-controls button:hover{background:var(--accent)}.carousel-controls button:disabled{opacity:.25;cursor:default}.research-card{border:1px solid var(--line);background:var(--card);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:22px;flex-direction:column;gap:12px;width:320px;height:300px;padding:24px;transition:border-color .3s,box-shadow .3s;display:flex;box-shadow:0 1px 2px #12305a0d,0 18px 40px -20px #12305a66}.research-card.is-current{cursor:default;border-color:#ef7d1a8c;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.research-card__top{justify-content:space-between;align-items:center;display:flex}.research-card__index{color:var(--accent);font-size:28px;font-weight:700;line-height:1}.research-card h2{margin:0;font-size:21px;line-height:1.2}.research-card p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.5}.status{color:var(--accent-ink);background:#ef7d1a24;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.status--done{color:var(--ink);background:#2f6db31f}.tags{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:0;list-style:none;display:flex}.tag{color:var(--ink);background:#12305a12;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.research-card__link{color:var(--blue);text-underline-offset:3px;font-size:14px;font-weight:700}.publication-card{background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ef7d1a8c;border-radius:22px;flex-direction:column;gap:8px;width:340px;height:280px;padding:20px 24px;display:flex;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.publication-card>*{flex:none}.publication-card__meta{justify-content:space-between;align-items:center;display:flex}.publication-card__year{color:var(--accent);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1}.publication-card h2{margin:0;font-size:16px;line-height:1.3}.publication-card h2 a{text-underline-offset:3px;text-decoration-color:#12305a4d}.publication-card__authors,.publication-card__venue{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.45}.publication-card__authors{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.publication-card__venue{margin-top:auto;font-style:italic}.year-pill{background:var(--surface);color:var(--ink-soft);font:700 13px var(--font);font-variant-numeric:tabular-nums;cursor:pointer;border:1px solid #12305a29;border-radius:999px;padding:4px 12px;transition:background .2s,color .2s,border-color .2s}.year-pill:hover{border-color:var(--ink);color:var(--ink)}.year-pill.is-current{border-color:var(--accent);background:var(--accent);color:var(--bg-light)}.filters{flex-wrap:wrap;justify-content:center;gap:8px;max-width:340px;display:flex}@media (width>=761px){.filters{flex-wrap:nowrap;max-width:none}}.chip{background:var(--surface);min-height:36px;color:var(--ink);font:600 13px var(--font);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #12305a29;border-radius:999px;padding:0 14px;transition:background .2s,border-color .2s,color .2s;box-shadow:0 10px 30px -14px #12305a59}.chip:hover{border-color:var(--ink)}.chip[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg-light)}.about-card{border:1px solid var(--line);background:var(--card);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:22px;flex-direction:column;gap:12px;width:300px;height:250px;padding:26px 24px;transition:border-color .3s,box-shadow .3s;display:flex;box-shadow:0 1px 2px #12305a0d,0 18px 40px -20px #12305a66}.about-card.is-current{cursor:default;border-color:#ef7d1a8c;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.about-card h2{color:var(--accent-ink);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.about-card p{color:var(--ink);margin:0;font-size:16px;font-weight:600;line-height:1.4}.about-card__link{color:var(--blue);text-underline-offset:3px;margin-top:auto;font-size:15px;font-weight:700}.about-card__stats{grid-template-columns:1fr 1fr;gap:10px 12px;margin:0;display:grid}.about-card__stats div{flex-direction:column-reverse;gap:3px;display:flex}.about-card__stats dd{color:var(--accent);font-variant-numeric:tabular-nums;margin:0;font-size:28px;font-weight:700;line-height:1}.about-card__stats dt{color:var(--ink-soft);font-size:13px;font-weight:600}.about-card__channels{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.about-card__channels a{color:var(--blue);background:#12305a12;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.about-card__channels a:hover{background:var(--ink);color:var(--bg-light)}.video-card{border:1px solid var(--line);background:var(--card);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:22px;flex-direction:column;width:340px;height:310px;transition:border-color .3s,box-shadow .3s;display:flex;overflow:hidden;box-shadow:0 1px 2px #12305a0d,0 18px 40px -20px #12305a66}.video-card.is-current{cursor:default;border-color:#ef7d1a8c;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.video-card__cover{background:linear-gradient(135deg, var(--ink), var(--blue));flex:none;height:191px;display:block;position:relative}.video-card__cover img{object-fit:cover;width:100%;height:100%;display:block}.video-card__play{background:#12305ad1;border-radius:50%;width:56px;height:56px;transition:background .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-card__play:after{content:"";border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent var(--bg-light);position:absolute;top:50%;left:53%;transform:translate(-50%,-50%)}.video-card__cover:hover .video-card__play{background:var(--accent)}.video-card__year{background:var(--card);color:var(--accent-ink);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;top:12px;left:12px}.video-card__body{flex-direction:column;gap:6px;padding:14px 18px;display:flex}.video-card h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:17px;line-height:1.3;display:-webkit-box;overflow:hidden}.video-card h2 a{text-underline-offset:3px;text-decoration-color:#12305a4d}.video-card p{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;line-height:1.4;display:-webkit-box;overflow:hidden}.repository-card{background:var(--card);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid #ef7d1a8c;border-radius:22px;flex-direction:column;gap:12px;width:340px;height:250px;padding:22px 24px;display:flex;box-shadow:0 0 0 4px #ef7d1a1f,0 24px 50px -22px #12305a80}.repository-card__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.repository-card h2{overflow-wrap:anywhere;margin:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:17px;line-height:1.3}.repository-card__top .tag{flex:none}.repository-card p{color:var(--ink-soft);margin:0;font-size:15px;line-height:1.45}.repository-card__link{color:var(--blue);text-underline-offset:3px;font-size:14px;font-weight:700}.loader{z-index:20;background:var(--bg);color:var(--ink-soft);place-content:center;justify-items:center;gap:14px;font-size:.9rem;transition:opacity .6s,visibility .6s;display:grid;position:absolute;inset:0}.loader p{margin:0}.loader__bar{background:#12305a1f;border-radius:3px;width:160px;height:3px;overflow:hidden}.loader__bar span{background:var(--accent);transform-origin:0;height:100%;transition:transform .3s;display:block}.loader--hidden{opacity:0;visibility:hidden}.static-site{height:100%;padding:var(--gutter);text-align:center;flex-direction:column;align-items:center;gap:20px;display:flex;overflow-y:auto}.static-site img{width:min(88vw,640px)}.static-site h1{margin:0;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem)}.static-site__grid{text-align:left;flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.static-site__nav{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@media (width<=760px){.page-nav ul{display:none}.page-intro{right:max(var(--gutter), env(safe-area-inset-right))}.corner{top:max(var(--gutter), env(safe-area-inset-top));bottom:auto}}@media (prefers-reduced-motion:reduce){.page-intro,.page-nav{animation:none}.corner,.float-link,.loader,.loader__bar span{transition:none}}
