.universe{height:100dvh;overflow:hidden;background:#080a0e}.universe-poster,.universe canvas{position:fixed;inset:0;width:100%;height:100%}.universe-poster{display:grid;place-items:center;opacity:.25}.universe-poster svg{width:75%;height:75%}.universe canvas{opacity:0;transition:opacity .6s}.universe.ready canvas{opacity:1}.universe.ready .universe-poster{opacity:0}.hud-header{position:fixed;z-index:5;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 4%;font:12px IBM Plex Mono,monospace}.hud-list{border:1px solid #525359;padding:.8rem 1rem;background:#0b0c0e}.arrival{position:fixed;z-index:2;left:5%;bottom:12%;max-width:540px;pointer-events:none;transition:opacity .3s}.arrival h1{font:400 clamp(4rem,7vw,7rem)/.9 "Instrument Serif",serif;letter-spacing:-.03em;margin:1.3rem 0}.arrival>p:not(.eyebrow){font-size:18px;line-height:1.6;color:#c5c2bb;max-width:430px}.arrival .eyebrow:last-child{margin-top:2rem;font-size:10px}.arrival.is-hidden{opacity:0}.body-label{position:fixed;z-index:8;padding:.55rem .75rem;border:1px solid #68665f;background:#0b0c0e;color:#ece8df;font:11px IBM Plex Mono,monospace;pointer-events:none;white-space:nowrap}.body-label:before{content:"";position:absolute;left:-20px;top:50%;width:20px;border-top:1px solid #ece8df}.section-panel{position:fixed;z-index:6;left:0;top:0;bottom:0;width:min(480px,42vw);background:#0b0c0ef0;border-right:1px solid var(--rule);display:flex;flex-direction:column;padding-top:5rem;animation:panel-enter .32s ease-out}.section-panel[hidden],.panel-content[hidden]{display:none}.panel-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--rule)}.panel-bar button{background:none;border:0;font:2rem "Instrument Serif",serif;cursor:pointer}.panel-scroll{overflow:auto;overscroll-behavior:contain;flex:1;padding:0 2rem}.panel-content .section{padding:2rem 0;border:0}.panel-content .section-head{display:block;margin-bottom:2rem}.panel-content .section-head h2{font-size:3.5rem;margin:1rem 0}.panel-content .section-head>p:not(.eyebrow){margin:0}.panel-content .about-grid{display:block;margin:0}.panel-content .portrait{margin-bottom:2rem}.panel-content .skills{margin:2rem 0}.panel-content .method-strip{grid-template-columns:1fr 1fr}.panel-content .method-strip article{padding:.8rem}.panel-content .method-strip h3{font-size:2rem;margin:.5rem 0}.panel-content .project-grid{grid-template-columns:1fr}.panel-content .project-card{min-height:0}.panel-content .experience-table{overflow:visible}.panel-content .experience-table table,.panel-content .experience-table tbody,.panel-content .experience-table tr{display:block;min-width:0;width:100%}.panel-content .experience-table thead{display:none}.panel-content .experience-table tr{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;padding:1.2rem 0;border-top:1px solid var(--rule)}.panel-content .experience-table td,.panel-content .experience-table th{border:0;padding:0;min-width:0;max-width:none}.panel-content .timeline-date{grid-column:1;grid-row:1;font-size:10px}.panel-content .timeline-org{grid-column:2;grid-row:1;font-size:10px}.panel-content .timeline-role{grid-column:1/-1;grid-row:2;font-size:1.6rem}.panel-content .timeline-description{grid-column:1/-1;grid-row:3;font-size:14px}.panel-content .contact{display:block}.panel-content .contact h2{font-size:4rem;margin:1rem 0}.panel-next{flex:none;background:none;color:var(--paper);border:0;border-top:1px solid var(--rule);padding:1rem 2rem;text-align:right;cursor:pointer;font:12px IBM Plex Mono,monospace}.orbit-map{position:fixed;z-index:7;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;gap:.4rem;align-items:center;background:#0b0c0ee0;border:1px solid var(--rule);padding:.6rem .9rem}.orbit-map button{position:relative;background:none;color:var(--muted);border:0;cursor:pointer;padding:.3rem .5rem;display:grid;gap:.35rem;justify-items:center;font:9px IBM Plex Mono,monospace}.orbit-map button span{width:7px;height:7px;border-radius:50%;background:var(--muted)}.orbit-map button[aria-current=true]{color:var(--trace)}.orbit-map button[aria-current=true] span{background:var(--trace)}.orbit-map button:hover{color:var(--paper)}.orbit-rule{position:absolute;left:1.5rem;right:1.5rem;top:1.1rem;border-top:1px solid var(--rule)}.sheet-handle{display:none}@keyframes panel-enter{0%{transform:translate(-20px);opacity:0}to{transform:none;opacity:1}}@media(max-width:800px){.arrival{left:5%;bottom:16%;max-width:80%}.arrival h1{font-size:3.8rem}.arrival>p:not(.eyebrow){font-size:15px}.arrival .eyebrow:last-child{font-size:9px}.section-panel{top:auto;right:0;bottom:0;width:100%;height:60dvh;border-right:0;border-top:1px solid var(--rule);padding-top:0;animation:sheet-enter .32s ease-out}.section-panel.expanded{height:92dvh}.sheet-handle{display:block;width:48px;height:4px;background:var(--muted);border-radius:4px;margin:.6rem auto;touch-action:none}.panel-bar{padding:.5rem 1.25rem}.panel-scroll{padding:0 1.25rem}.panel-content .section-head h2{font-size:3rem}.panel-next{padding:.8rem 1.25rem}.orbit-map{bottom:.7rem;gap:0}.orbit-map button{padding:.25rem .4rem}.orbit-map button small{font-size:7px}.universe:has(.section-panel:not([hidden])) .orbit-map{bottom:calc(60dvh + .5rem)}.universe:has(.section-panel.expanded) .orbit-map{display:none}@keyframes sheet-enter{0%{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}}.orbit-svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#77797f;stroke-width:.5;opacity:.45;pointer-events:none}.panel-content .item-selected{outline:1px solid var(--trace);outline-offset:3px}.arrival a{pointer-events:auto}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.visually-hidden a{pointer-events:none}.hud-brand{background:none;border:0;padding:0;color:var(--paper);font:inherit;cursor:pointer}.panel-open .hud-brand{visibility:hidden}.panel-content .section-head>.eyebrow,.panel-content .section-glyph,.panel-content .contact>.eyebrow{display:none}.section-panel{background:var(--ink)}@media(max-width:800px){.universe:has(.section-panel:not([hidden])) .orbit-map{display:none}}.universe .panel-content .section-glyph{display:none!important}
