@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2"),url(/assets/space-mono-latin-400-normal-_3DlpgIW.woff)format("woff")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2"),url(/assets/space-mono-latin-700-normal-D7A851RN.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff")}:root{--surface:#2a1f3d;--surface-hover:#3b2d57;--border:#8c7bc9;--accent:#c6bbec;--highlight:#f5c84c;--text:#f1e6d6;--label:#e3d3b8;--paper:#f1e6d6;--ink:#45160c;--link:#5b3fa0;--font-display:"Space Mono", monospace;--font-body:"Space Grotesk", sans-serif}html,body,#root{background:var(--surface);width:100%;height:100dvh;margin:0}:root{--px:4px;--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-quick:.18s;--duration-base:.26s;--ink-soft:color-mix(in srgb, var(--ink) 80%, var(--paper))}.app{background:var(--surface);width:100%;height:100%;color:var(--text);font-family:var(--font-body);font-size:17px;position:relative;overflow:hidden}.tooltip,.anchor-label,.hud-hint,.hud-button,.hud-shelf,.panel-body h3,.page h3,.page-meta,.reader-nav,.tech-stack dt{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;font-size:13px;font-weight:700}.app canvas{touch-action:none;image-rendering:pixelated}.overlay{pointer-events:none;position:absolute;inset:0}.overlay button,.overlay a,.layer{pointer-events:auto}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}:focus-visible{outline:3px solid var(--highlight);outline-offset:4px}.paper :focus-visible{outline-color:var(--link)}.pixel-frame{--frame:var(--ink);box-shadow:0 calc(-1 * var(--px)) 0 0 var(--frame), 0 var(--px) 0 0 var(--frame), calc(-1 * var(--px)) 0 0 0 var(--frame), var(--px) 0 0 0 var(--frame)}.paper{background-color:var(--paper);background-image:radial-gradient(ellipse at 50% 45%, transparent 60%, color-mix(in srgb, var(--ink-soft) 18%, transparent) 100%), var(--paper-noise,none);background-blend-mode:multiply;color:var(--ink)}.tooltip,.anchor-label,.hud-hint{--frame:var(--border);background:var(--surface);color:var(--highlight)}.tooltip{white-space:nowrap;pointer-events:none;padding:4px 8px;position:fixed;transform:translate(16px,16px)}.anchor-label{transform:translate(calc(-50% + var(--shift,0px)), calc(-100% - 16px));white-space:nowrap;border:0;padding:8px 12px;animation:.15s steps(3,end) fade-in;position:absolute}.anchor-label:after{content:"";left:calc(50% - var(--shift,0px));top:calc(100% + var(--px));background:var(--border);width:8px;height:8px;position:absolute;translate:-50%}.anchor-label:hover{--frame:var(--highlight);background:var(--surface-hover)}.hud-button,.icon-button{--frame:var(--border);background:var(--surface);color:var(--text);border:0}.hud-button:hover:not(:disabled),.hud-button:active:not(:disabled),.icon-button:hover:not(:disabled),.icon-button:active:not(:disabled){--frame:var(--highlight);background:var(--surface-hover);color:var(--highlight)}.hud-button{align-items:center;gap:8px;min-height:44px;padding:8px 16px;display:inline-flex}.hud-button svg{width:16px;height:16px}.icon-button{place-items:center;min-width:48px;min-height:48px;padding:0;display:inline-grid}.icon-button svg{width:24px;height:24px}.reader-nav .icon-button{min-width:56px;min-height:56px}.reader-nav .icon-button svg{width:28px;height:28px}.hud-back{top:calc(16px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));position:absolute}.hud-bottom{bottom:calc(20px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:16px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.hud-hint{color:var(--text);text-align:center;margin:0;padding:4px 12px}.hud-nav{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.hud-shelf{--frame:var(--border);right:calc(16px + env(safe-area-inset-right));background:var(--surface);color:var(--text);flex-direction:column;align-items:center;gap:12px;padding:12px 8px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.layer{position:absolute;inset:0}.layer-center{grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:16px;display:grid}.backdrop{background:color-mix(in srgb, var(--surface) 70%, transparent);animation:fade-in var(--duration-quick) var(--ease-out);position:absolute;inset:0}.panel{width:min(40%,34rem);box-shadow:calc(-2 * var(--px)) 0 0 0 var(--ink);animation:slide-in var(--duration-base) var(--ease-out);will-change:transform;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.panel-header{border-bottom:var(--px) solid var(--ink);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.panel-header h2,.page h2{font-family:var(--font-display);margin:0;font-size:26px;font-weight:700;line-height:1.25}.panel-body{flex:1;padding:0 20px 24px;line-height:1.5;overflow-y:auto}.panel-body h3,.page h3{color:var(--ink-soft);margin:24px 0 8px}.chips{flex-wrap:wrap;gap:12px;margin:0;padding:4px;list-style:none;display:flex}.chips li{--frame:var(--ink);background:var(--label);padding:2px 10px;font-size:15px}.facts{gap:6px;margin:16px 0;display:grid}.facts div{gap:12px;display:flex}.facts dt{min-width:6.5rem;color:var(--ink-soft)}.facts dd{margin:0}.links{padding-left:1.2rem}.links a{color:var(--link);text-underline-offset:4px;text-decoration-thickness:3px}.links a:hover{background:color-mix(in srgb, var(--link) 15%, transparent)}.reader{box-sizing:border-box;width:min(100%,46rem);height:min(100%,44rem);animation:open-book var(--duration-base) var(--ease-out);will-change:transform, opacity;flex-direction:column;padding:52px 48px 16px;display:flex;position:relative}.reader:before,.reader:after{content:"";pointer-events:none;background:linear-gradient(var(--ink-soft), var(--ink-soft)) top left / 12px 4px, linear-gradient(var(--ink-soft), var(--ink-soft)) top left / 4px 12px, linear-gradient(var(--ink-soft), var(--ink-soft)) top right / 12px 4px, linear-gradient(var(--ink-soft), var(--ink-soft)) top right / 4px 12px;background-repeat:no-repeat;position:absolute;inset:12px}.reader:after{transform:scaleY(-1)}.reader-close{position:absolute;top:16px;right:16px}.page{overscroll-behavior:contain;flex:1;max-width:62ch;min-height:0;font-size:19px;line-height:1.65;animation:.18s steps(3,end) fade-in;overflow-y:auto}.page p{margin:0 0 .9em}.page strong{font-weight:700}.page h2{margin:4px 0 16px}.page-meta{color:var(--ink-soft);margin:0}.page-summary{color:var(--ink-soft);margin-bottom:.6em;font-size:21px}.reader-nav{border-top:var(--px) solid var(--ink);justify-content:space-between;align-items:center;padding:16px 4px 4px;display:flex}@media (width<=768px){.panel{width:100%;box-shadow:none}.layer-center{padding:0}.reader{width:100%;height:100%;padding:calc(48px + env(safe-area-inset-top)) 20px calc(16px + env(safe-area-inset-bottom));box-shadow:none}.page{font-size:18px}}@keyframes fade-in{0%{opacity:0}}@keyframes slide-in{0%{transform:translate(100%)}}@keyframes open-book{0%{opacity:0;transform:perspective(60rem)rotateY(-12deg)scale(.96)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.page-list{padding-left:1.4rem}.page-list li+li{margin-top:8px}.tech-stack{gap:14px;margin:8px 0 0;display:grid}.tech-stack dt{color:var(--ink-soft);margin-bottom:6px}.tech-stack dd{margin:0}.tech-chip{align-items:center;gap:8px;display:inline-flex}.tech-icon{background:var(--surface);width:24px;height:24px;color:var(--highlight);font-family:var(--font-display);box-shadow:inset 0 0 0 2px var(--border);flex:none;place-items:center;font-size:10px;font-weight:700;line-height:1;display:inline-grid}.link-note{color:var(--ink-soft)}.tech-logo{width:24px;height:24px;image-rendering:pixelated;flex:none}.contact-label{align-items:center;gap:8px;display:flex}.tabs{--frame:var(--ink);background:var(--label);grid-template-columns:1fr 1fr;margin:16px 4px 8px;display:grid;position:relative}.tab-indicator{background:var(--surface);width:50%;transition:transform var(--duration-base) var(--ease-out);position:absolute;inset:0 auto 0 0}.tab{min-height:44px;color:var(--ink);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;transition:color var(--duration-quick) var(--ease-out);background:0 0;border:0;font-size:13px;font-weight:700;position:relative}.tab[aria-selected=true]{color:var(--highlight)}.tab-page-forward{animation:page-from-right var(--duration-base) var(--ease-out)}.tab-page-back{animation:page-from-left var(--duration-base) var(--ease-out)}@keyframes page-from-right{0%{opacity:0;transform:translate(24px)}}@keyframes page-from-left{0%{opacity:0;transform:translate(-24px)}}.jobs{gap:24px;margin:16px 0 0;padding:0;list-style:none;display:grid}.job-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;display:flex}.panel-body .job h3{color:var(--ink);margin:0;font-size:15px}.job-period,.job-org{color:var(--ink-soft);font-size:15px}.job-org{margin:2px 0 4px}.loading{z-index:10;background:var(--surface);color:var(--text);font-family:var(--font-body);transition:opacity .4s var(--ease-out);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.loading-out{opacity:0;pointer-events:none}.loading-card{text-align:center;justify-items:center;gap:12px;width:min(100%,36rem);display:grid}.loading-name{font-family:var(--font-display);margin:0;font-size:clamp(32px,7vw,48px);font-weight:700;line-height:1.1}.loading-role{color:var(--accent);margin:0 0 16px;font-size:17px}.loading-bar{--frame:var(--border);box-sizing:border-box;background:var(--surface);grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;width:100%;padding:6px;display:grid}.loading-block{aspect-ratio:1;background:var(--surface-hover);transition:background-color var(--duration-quick) var(--ease-out)}.loading-block-on{background:var(--highlight)}.loading-status{color:var(--text);font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:13px;font-weight:700}.loading-actions{justify-items:center;gap:16px;margin-top:16px;display:grid}.loading-enter{min-width:160px;animation:fade-in var(--duration-base) var(--ease-out);justify-content:center}.loading-enter:not(:hover){animation:fade-in var(--duration-base) var(--ease-out), press-start 1.2s steps(2) .6s infinite}.loading-enter-placeholder{height:44px}.loading-2d{color:var(--accent);text-underline-offset:4px;font-size:15px}.loading-2d:hover{color:var(--highlight)}@keyframes press-start{50%{opacity:.55}}.hud-2d{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));position:absolute}.hud-shelf-bar{--frame:var(--border);left:50%;bottom:calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;background:var(--surface);align-items:center;gap:10px;width:min(100% - 32px,36rem);padding:8px;display:flex;position:absolute;transform:translate(-50%)}.hud-shelf-title{color:var(--text);text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:15px;line-height:1.3;display:-webkit-box;overflow:hidden}.hud-peek{display:none}@media (aspect-ratio<=4/5){.hud-peek{left:calc(16px + env(safe-area-inset-left));display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}}.thumb-close{display:none}@media (width<=600px){.hud-back{min-height:40px;padding:6px 12px;font-size:12px}.hud-bottom{width:calc(100% - 32px)}.hud-nav{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.hud-nav .hud-button{justify-content:center}.hud-hint{font-size:12px}.hud-shelf{top:calc(72px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));flex-direction:row;gap:10px;padding:6px 8px;transform:none}.hud-shelf .hud-button{min-height:40px;padding:6px 12px}.thumb-close{padding:12px 20px calc(12px + env(safe-area-inset-bottom));border-top:var(--px) solid var(--ink);display:block}.thumb-close .hud-button{justify-content:center;width:100%}.reader .thumb-close{border-top:0;padding:12px 4px 0}}.mode-toggle{--frame:var(--mode-frame,var(--border));background:var(--mode-bg,var(--surface));display:inline-flex}.mode-option{min-width:48px;min-height:44px;color:var(--mode-fg,var(--text));font-family:var(--font-display);letter-spacing:.06em;place-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-grid}a.mode-option:hover{color:var(--mode-hover,var(--highlight))}.mode-current{background:var(--mode-current-bg,var(--surface-hover));color:var(--mode-current-fg,var(--highlight))}@media (width<=600px){.mode-option{min-height:40px}}
