.has-eggs{position:relative}.spot{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(160px circle at var(--mx, -200px) var(--my, -200px),#e08a3a1f,transparent 65%);transition:opacity .4s ease}.eggs{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.45;mix-blend-mode:screen;mask-image:radial-gradient(160px circle at var(--ex, -200px) var(--ey, -200px),#000,transparent 65%);transition:opacity .4s ease}.eggs-col{position:absolute;top:0;bottom:0;width:calc(50% - 37.5rem);overflow:hidden;display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));align-content:start;gap:.5rem;padding:.5rem}.eggs-col.is-left{left:0}.eggs-col.is-right{right:0}.egg{display:block;width:100%;aspect-ratio:1;object-fit:contain;filter:grayscale(1);transform:rotate(var(--rot, 0deg))}@media(max-width:1360px){.eggs{display:none}}@media(max-width:640px),(pointer:coarse){.spot,.eggs{display:none}}.eggs.is-revealed{mask-image:none}.has-eggs.is-revealed:before{content:"";position:absolute;left:0;right:0;top:0;height:110vh;z-index:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 20%,#e08a3a30,transparent 70%);animation:reveal 1.8s ease-out forwards}@keyframes reveal{0%{opacity:0}30%{opacity:1}to{opacity:.4}}.has-eggs>*:not(.spot):not(.eggs){position:relative;z-index:1}.hub{min-height:100vh;background:radial-gradient(800px 420px at 50% -10%,#3a254255,transparent 70%),var(--color-bg)}@media(max-width:640px),(pointer:coarse){.cap-link{display:none}}.topnav,.hero,.projects,.foot{max-width:72rem;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}.topnav{display:flex;align-items:center;justify-content:space-between;padding-top:1.4rem;padding-bottom:.5rem}.tree-wrap{position:relative;height:min(64vh,620px);min-height:440px}.tree{display:block;width:100%;height:100%}#tree-nodes{position:absolute;inset:0;overflow:hidden}@media(max-width:640px){.hero{padding-left:0;padding-right:0}.tree-wrap{height:clamp(280px,86vw,420px);min-height:0}.topnav{padding-top:.9rem;padding-bottom:0}}@media(max-height:500px){.tree-wrap{height:92dvh;min-height:0}}.node-btn{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;border:0;background:transparent;cursor:pointer;padding:0}.node-btn.is-sealed{pointer-events:none;cursor:default}.node-btn:focus-visible{outline:1px solid var(--color-gold);outline-offset:2px}@media(pointer:coarse){.node-btn{width:44px;height:44px;margin:-22px 0 0 -22px}}.tip{position:absolute;z-index:10;width:min(17rem,calc(100vw - 2rem));pointer-events:none;padding:.9rem 1rem;border-radius:8px;background:#16121af2;border:1px solid #f6d27a2e;box-shadow:0 16px 40px #0008,0 0 40px #e08a3a1f;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease}.tip.is-open{opacity:1;transform:none;pointer-events:auto}.tip.is-swap{transition:opacity .15s ease,transform .15s ease,left .35s cubic-bezier(.2,.8,.2,1),top .35s cubic-bezier(.2,.8,.2,1)}.tip-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem}.tip-head strong{font-size:1rem;font-weight:600}.tip-date{font-size:.72rem;color:var(--color-fg-dim);white-space:nowrap}.tip-body{margin:.35rem 0 0;font-size:.85rem;color:var(--color-fg-dim);line-height:1.45}@media(pointer:coarse){.tip-link{min-height:2.5rem;display:inline-flex;align-items:center}}.projects{padding-top:1rem;padding-bottom:5rem}.projects-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.6rem}.projects-head h2{margin:0;font-size:.85rem;font-weight:600;color:var(--color-fg-dim);letter-spacing:.12em;text-transform:uppercase}.search-wrap{width:12rem;max-width:50%}.search{width:100%;padding:.4rem 0;font-size:.9rem;background:transparent;border:0;border-bottom:1px solid var(--color-line);border-radius:0;transition:border-color .15s ease}.search:focus{outline:none;border-bottom-color:var(--color-orange)}.search::placeholder{color:var(--color-fg-dim)}.stage{display:grid;gap:2rem;margin-top:1.4rem;grid-template-columns:1fr;align-items:start}@media(min-width:900px){.stage{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem}}.names{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}.names li.is-gone{display:none}.name{display:grid;grid-template-columns:2.6rem 1fr;align-items:baseline;gap:1rem;width:100%;padding:1.1rem 0;border:0;border-bottom:1px solid var(--color-line);background:none;text-align:left;color:var(--color-fg-dim);text-decoration:none;cursor:pointer;position:relative;font:inherit;transition:color .2s ease}.name:before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--color-orange);transition:width .35s cubic-bezier(.2,.8,.2,1)}.name.is-active{color:var(--color-fg)}.name.is-active:before{width:100%}.name-num{font-family:var(--font-display);font-size:.8rem;letter-spacing:.06em;transition:color .2s ease}.name.is-active .name-num{color:var(--color-orange)}.name-title{font-family:var(--font-display);font-size:clamp(1.2rem,1.9vw,1.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.name:focus-visible{outline:none}.name:focus-visible .name-title{text-decoration:underline;text-decoration-color:var(--color-orange);text-underline-offset:4px}.frame{position:sticky;top:1.5rem;display:flex;flex-direction:column;gap:1rem}.frame-layers{position:relative;aspect-ratio:16 / 10;border-radius:10px;overflow:hidden;border:1px solid var(--color-line);background:var(--color-bg-2)}.layer{position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .35s ease,transform .6s cubic-bezier(.2,.8,.2,1)}.layer.is-active{opacity:1;transform:none}.layer img{width:100%;height:100%;object-fit:cover;object-position:left top;display:block}.frame-cap{display:flex;flex-direction:column;gap:.5rem;height:8rem;overflow:hidden}.cap-top{height:1rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-fg-dim)}.cap-body{margin:0;color:var(--color-fg-dim);font-size:.95rem;line-height:1.55;max-width:34rem;height:3rem;overflow:hidden}.cap-link{align-self:flex-start;font-weight:600;color:var(--color-orange);text-decoration:none}.cap-link:hover{color:var(--color-gold)}.grid-empty{margin-top:1.4rem;color:var(--color-fg-dim);font-size:.9rem}@media(max-width:899.98px){.frame{position:static}}@media(max-width:480px){.projects-head{flex-wrap:wrap}.search-wrap{width:100%;max-width:none}.frame-cap{height:9.5rem}.cap-body{height:4.5rem}}
