@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff)format("woff")}@property --accent-hue{syntax:"<number>";inherits:true;initial-value:212}@property --accent-sat{syntax:"<percentage>";inherits:true;initial-value:100%}@property --accent-lit{syntax:"<percentage>";inherits:true;initial-value:67%}@property --line-hue-a{syntax:"<number>";inherits:true;initial-value:212}@property --line-hue-b{syntax:"<number>";inherits:true;initial-value:212}@property --line-hue-c{syntax:"<number>";inherits:true;initial-value:212}@property --line-hue-d{syntax:"<number>";inherits:true;initial-value:212}@property --time-hue-shift{syntax:"<number>";inherits:true;initial-value:0}@property --time-line-dim{syntax:"<number>";inherits:true;initial-value:1}@property --time-hue-flow{syntax:"<number>";inherits:true;initial-value:0}@property --time-line-flow{syntax:"<number>";inherits:true;initial-value:1}@property --time-progress{syntax:"<number>";inherits:true;initial-value:.5}@property --time-glow-x{syntax:"<number>";inherits:true;initial-value:0}@property --time-glow-y{syntax:"<number>";inherits:true;initial-value:0}@property --theme-line-boost{syntax:"<number>";inherits:true;initial-value:1}@property --line-angle-a{syntax:"<angle>";inherits:true;initial-value:150deg}@property --line-angle-b1{syntax:"<angle>";inherits:true;initial-value:-30deg}@property --line-angle-b2{syntax:"<angle>";inherits:true;initial-value:180deg}@property --line-angle-c{syntax:"<angle>";inherits:true;initial-value:25deg}@property --line-angle-d1{syntax:"<angle>";inherits:true;initial-value:-55deg}@property --line-angle-d2{syntax:"<angle>";inherits:true;initial-value:180deg}:root{--bg:#0d1117;--surface:#161b22;--border:#21262d;--text:#e6edf3;--text-muted:#8b949e;--accent-hue:212;--accent-sat:100%;--accent-lit:67%;--line-hue-a:212;--line-hue-b:212;--line-hue-c:212;--line-hue-d:212;--line-sat:var(--accent-sat);--line-lit:var(--accent-lit);--img-icon-filter:invert(1) opacity(.6);--img-icon-filter-hover:invert(1) opacity(1);--time-hue-flow:0;--time-line-flow:1;--time-progress:.5;--time-glow-x:0;--time-glow-y:0;--accent:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit));--accent-glow:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .07);--accent-hover:hsl(var(--accent-hue) var(--accent-sat) min(calc(var(--accent-lit) + 7%), 100%));--link-hover-accent:var(--accent);--link-hover-bg:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .04);--link-open-bg:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .03);--link-hover-glow:radial-gradient(circle at center, var(--accent-glow) 0%, transparent 60%);--link-ripple:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .3);animation:54s ease-in-out infinite colorDrift}:root[data-theme=rose]{--bg:#000;--surface:#0a0a0a;--border:#1a1a1a;--accent-hue:335;--accent-sat:85%;--accent-lit:65%;--line-hue-a:335;--line-hue-b:335;--line-hue-c:335;--line-hue-d:335;--theme-line-boost:1.7;animation:54s ease-in-out infinite colorDriftRose}:root[data-theme=paper]{--bg:#f0ece4;--surface:#e7e2d9;--border:#d0cabf;--text:#2c2a26;--text-muted:#78736a;--accent-hue:215;--accent-sat:75%;--accent-lit:40%;--line-hue-a:340;--line-hue-b:50;--line-hue-c:30;--line-hue-d:275;--img-icon-filter:opacity(.5);--img-icon-filter-hover:opacity(1);--theme-line-boost:1.75;animation:82s ease-in-out infinite colorDriftPaper}:root[data-theme=ember]{--bg:#080502;--surface:#110a04;--border:#1e1008;--text:#f7e9ce;--text-muted:#9a7250;--accent-hue:28;--accent-sat:96%;--accent-lit:48%;--line-hue-a:4;--line-hue-b:22;--line-hue-c:38;--line-hue-d:54;--theme-line-boost:1.65;animation:63s ease-in-out infinite colorDriftEmber}:root[data-theme=dusk]{--bg:#09080f;--surface:#110f1c;--border:#1e1a2e;--text:#ede8f5;--text-muted:#7a6e98;--accent-hue:272;--accent-sat:78%;--accent-lit:62%;--line-hue-a:278;--line-hue-b:28;--line-hue-c:262;--line-hue-d:38;--theme-line-boost:1.75;--line-sat:88%;--line-lit:68%;--link-hover-accent:#f6b379;--link-hover-bg:linear-gradient(to right, #a353ea0a, #f5a96612);--link-open-bg:linear-gradient(to right, #a353ea08, #f5a9660a);--link-hover-glow:radial-gradient(circle at center, #a353ea14 0%, #f5a9660d 35%, transparent 60%);--link-ripple:#f6b37959;animation:69s ease-in-out infinite colorDriftDusk}:root[data-theme=harbor]{--bg:#eaf0f6;--surface:#dde7f0;--border:#b8ccda;--text:#1a2d3e;--text-muted:#5a7a8f;--accent-hue:205;--accent-sat:68%;--accent-lit:36%;--line-hue-a:220;--line-hue-b:175;--line-hue-c:205;--line-hue-d:215;--img-icon-filter:opacity(.5);--img-icon-filter-hover:opacity(1);--theme-line-boost:1.75;animation:78s ease-in-out infinite colorDriftHarbor}:root[data-theme=pine]{--bg:#f4f6f2;--surface:#e6ebe3;--border:#b8c4b0;--text:#283328;--text-muted:#5f6e5c;--accent-hue:138;--accent-sat:28%;--accent-lit:38%;--line-hue-a:125;--line-hue-b:142;--line-hue-c:155;--line-hue-d:132;--img-icon-filter:opacity(.5);--img-icon-filter-hover:opacity(1);--theme-line-boost:1.75;animation:66s ease-in-out infinite colorDriftPine}:root[data-theme=stone]{--bg:#111;--surface:#1c1c1c;--border:#2e2e2e;--text:#f0ede8;--text-muted:#6a6a6a;--accent-hue:28;--accent-sat:7%;--accent-lit:74%;--line-hue-a:28;--line-hue-b:28;--line-hue-c:28;--line-hue-d:28;--theme-line-boost:1.5;animation:66s ease-in-out infinite colorDriftStone}:root[data-theme=mint]{--bg:#e8f2e8;--surface:#d4e6d4;--border:#a8c8a8;--text:#2d1a0e;--text-muted:#5a7a5a;--accent-hue:25;--accent-sat:55%;--accent-lit:38%;--line-hue-a:25;--line-hue-b:35;--line-hue-c:18;--line-hue-d:30;--line-sat:48%;--line-lit:42%;--theme-line-boost:1.5;animation:68s ease-in-out infinite colorDriftMint}*{box-sizing:border-box;margin:0;padding:0}::selection{background:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .2);color:var(--text)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%;font-size:16px}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;min-height:100dvh;font-family:JetBrains Mono,Consolas,Monaco,Courier New,monospace;line-height:1.5;overflow:hidden}body:before{content:"";background:radial-gradient(ellipse 80% 50% at calc(50% + (var(--time-glow-x) * 10%)) calc(2% + (var(--time-glow-y) * 5%)), hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / calc(.034 + (var(--time-progress) * .008))) 0%, transparent 50%);pointer-events:none;z-index:0;position:fixed;top:0;bottom:0;left:0;right:0}body:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(var(--line-angle-a), transparent 42%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.14 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 42%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.14 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 42.12%, transparent 42.12%), linear-gradient(var(--line-angle-a), transparent 43.8%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.07 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 43.8%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.07 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 43.88%, transparent 43.88%), linear-gradient(var(--line-angle-b1), transparent 68%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.1 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 68%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.1 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 68.1%, transparent 68.1%), linear-gradient(var(--line-angle-b2), transparent 24%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.06 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 24%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.06 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 24.03%, transparent 24.03%), linear-gradient(var(--line-angle-c), transparent 18%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.11 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 18%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.11 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 18.1%, transparent 18.1%), linear-gradient(var(--line-angle-c), transparent 16.2%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 16.2%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 16.28%, transparent 16.28%), linear-gradient(var(--line-angle-d1), transparent 76%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.08 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 76%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.08 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 76.1%, transparent 76.1%), linear-gradient(var(--line-angle-d2), transparent 79%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 79%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 79.03%, transparent 79.03%);position:fixed;top:0;bottom:0;left:0;right:0}html.page-hidden,html.page-hidden *{animation-play-state:paused!important}:root[data-performance=reduced],:root[data-performance=reduced] body{animation:none!important}:root[data-performance=reduced] body:after{background:linear-gradient(var(--line-angle-a), transparent 42%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.14 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 42%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.14 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 42.12%, transparent 42.12%), linear-gradient(var(--line-angle-a), transparent 43.8%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.07 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 43.8%, hsl(calc(var(--line-hue-a) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.07 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 43.88%, transparent 43.88%), linear-gradient(var(--line-angle-b1), transparent 68%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.1 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 68%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.1 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 68.1%, transparent 68.1%), linear-gradient(var(--line-angle-b2), transparent 24%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.06 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 24%, hsl(calc(var(--line-hue-b) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.06 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 24.03%, transparent 24.03%), linear-gradient(var(--line-angle-c), transparent 18%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.11 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 18%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.11 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 18.1%, transparent 18.1%), linear-gradient(var(--line-angle-c), transparent 16.2%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 16.2%, hsl(calc(var(--line-hue-c) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 16.28%, transparent 16.28%), linear-gradient(var(--line-angle-d1), transparent 76%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.08 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 76%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.08 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 76.1%, transparent 76.1%), linear-gradient(var(--line-angle-d2), transparent 79%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 79%, hsl(calc(var(--line-hue-d) + var(--time-hue-shift) + var(--time-hue-flow)) var(--line-sat) var(--line-lit) / calc(.05 * var(--time-line-dim) * var(--theme-line-boost) * var(--time-line-flow))) 79.03%, transparent 79.03%)}:root[data-performance=reduced] html:after{opacity:.025;background-image:none}:root[data-performance=reduced] .avatar-modal{-webkit-backdrop-filter:none}html:after{content:"";z-index:9999;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:300px 300px;position:fixed;top:0;bottom:0;left:0;right:0;transform:translateZ(0)}.scroll-progress{background:var(--accent);transform-origin:0;z-index:100;opacity:.7;pointer-events:none;width:100%;height:1px;position:fixed;top:0;left:0;transform:scaleX(0)}.page-slider{z-index:1;will-change:transform;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.page-slider--animated{transition:transform .45s cubic-bezier(.4,0,.2,1)}.page{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border) transparent;contain:layout style paint;flex-shrink:0;width:100vw;height:100dvh;overflow:hidden auto}.page:not(:first-child){content-visibility:auto}.page::-webkit-scrollbar{width:6px}.page::-webkit-scrollbar-track{background:0 0}.page::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.page::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app{z-index:1;min-height:100dvh;padding:2rem 1.25rem;padding-bottom:max(2rem, env(safe-area-inset-bottom));flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.app--top{justify-content:flex-start}.terminal{contain:layout style;width:100%;max-width:480px}@media (min-width:641px){.terminal{max-width:552px}.resume,.writing{max-width:690px}.theme-toggle{flex-wrap:nowrap;row-gap:0;font-size:.6rem}.theme-btn,.crt-toggle{padding:.15rem .25rem}.theme-prompt{margin-right:.25rem}}.header{text-align:center;margin-bottom:2.5rem}.avatar-wrap{cursor:pointer;contain:paint;border-radius:50%;width:88px;height:88px;margin-bottom:1.25rem;transition:transform .25s,box-shadow .25s;animation:27s ease-in-out infinite avatarPulse;display:inline-block;position:relative;overflow:hidden}.avatar-wrap:after{content:"";border:1px solid var(--border);z-index:-1;border-radius:50%;transition:border-color .3s;position:absolute;top:-2px;bottom:-2px;left:-2px;right:-2px}.avatar-wrap:hover{box-shadow:0 0 20px 5px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .2);transform:scale(1.08)}.avatar-wrap:hover:after{border-color:var(--accent)}.avatar{object-fit:cover;object-position:center 45%;border:2px solid var(--bg);width:100%;height:100%;display:block;transform:scale(1.5)}.name{color:var(--text);letter-spacing:-.02em;margin-bottom:.25rem;font-size:1.5rem;font-weight:600;animation:27s ease-in-out infinite namePulse}.handle{color:var(--accent);opacity:.9;margin-bottom:.75rem;font-family:JetBrains Mono,monospace;font-size:.9rem}.tagline{color:var(--text-muted);max-width:320px;margin:0 auto;font-size:.8rem;font-weight:400}.cursor{color:var(--accent);opacity:.8;margin-left:1px;font-weight:400}.cursor--blink{animation:1s step-end infinite blink}.avatar-modal{z-index:10000;-webkit-backdrop-filter:blur(16px)saturate(.8);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-family:JetBrains Mono,Consolas,Monaco,Courier New,monospace;animation:.25s ease-out modalFadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.avatar-modal-inner{cursor:default;animation:.3s cubic-bezier(.16,1,.3,1) modalScaleIn;position:relative;overflow:visible}.avatar-modal-wrap{contain:paint;border-radius:50%;width:min(70vw,70vh,360px);height:min(70vw,70vh,360px);transition:transform .25s,box-shadow .25s;animation:27s ease-in-out infinite avatarPulse;display:inline-block;position:relative;overflow:hidden}.avatar-modal-img{object-fit:cover;object-position:center 45%;width:100%;height:100%;display:block;transform:scale(1.5)}.avatar-modal-close{border:1px solid hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .45);background:color-mix(in srgb, var(--bg) 90%, black 10%);width:28px;height:28px;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 0 8px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .3);cursor:pointer;z-index:1;border-radius:0;justify-content:center;align-items:center;font-family:inherit;font-size:.75rem;transition:color .15s,border-color .15s,background .15s,box-shadow .15s;display:flex;position:absolute;top:.65rem;right:.65rem}.avatar-modal-close:hover{color:var(--bg);border-color:var(--accent);background:var(--accent);box-shadow:0 0 18px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .28)}.avatar-modal-close:focus-visible{outline:1px solid var(--accent);outline-offset:2px}[data-crt=true] .avatar-modal-close{text-shadow:0 0 3px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .24)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.links-section{margin-bottom:0}.links-list{border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}.link-row{color:inherit;border-bottom:1px solid var(--border);cursor:pointer;contain:paint;align-items:center;gap:.625rem;padding:.875rem .75rem;text-decoration:none;transition:none;animation:.4s ease-out backwards fadeIn;display:flex;position:relative;overflow:hidden}.link-row-glow{opacity:0;pointer-events:none;background:var(--link-hover-glow);width:640px;height:640px;transform:translate3d(calc(var(--glow-x,0) * 1px), calc(var(--glow-y,0) * 1px), 0);will-change:transform, opacity;transition:opacity .15s;position:absolute;top:0;left:0}.link-row:hover .link-row-glow{opacity:1}.link-row:hover{background:var(--link-hover-bg)}.link-row:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.link-row-index{color:var(--border);text-align:right;user-select:none;flex-shrink:0;width:1.5rem;font-size:.75rem;font-weight:400;transition:color .15s}.link-row:hover .link-row-index{color:var(--link-hover-accent)}.link-row-icon{flex-shrink:0;justify-content:center;align-items:center;width:2.6rem;display:flex}.link-icon{width:28px;height:28px;color:var(--text-muted);transition:color .15s}.link-icon--img{object-fit:contain;width:36px;height:36px;filter:var(--img-icon-filter,none);border-radius:0;transition:filter .15s}.link-icon--sancho-mask{background-color:var(--text-muted);width:40px;height:40px;transition:background-color .15s;display:block;-webkit-mask-image:url(/sanchodarktransVector.svg);mask-image:url(/sanchodarktransVector.svg);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.link-row:hover .link-icon--sancho-mask{background-color:var(--accent)}.link-row--child .link-icon--sancho-mask{width:44px;height:44px}.link-row:hover .link-icon{color:var(--link-hover-accent)}.link-row:hover .link-icon--img{filter:var(--img-icon-filter-hover,var(--img-icon-filter,none))}.link-row-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:1rem;font-weight:500;transition:color .15s;overflow:hidden}.link-row:hover .link-row-title{color:var(--text)}.link-row-desc{color:var(--text-muted);white-space:nowrap;opacity:.7;margin-left:auto;font-size:.82rem;transition:opacity .15s}.link-row:hover .link-row-desc{opacity:1}.link-row-arrow{color:var(--text-muted);opacity:0;flex-shrink:0;margin-left:.25rem;font-size:.8rem;transition:all .2s cubic-bezier(.16,1,.3,1);transform:translate(-4px,4px)}.link-row:hover .link-row-arrow{opacity:1;color:var(--link-hover-accent);transform:translate(0)}.link-ripple{background:var(--link-ripple);pointer-events:none;border-radius:50%;width:6px;height:6px;animation:.55s ease-out forwards ripple;position:absolute;transform:scale(0)}@keyframes ripple{to{opacity:0;transform:scale(60)}}.link-group{animation:.4s ease-out backwards fadeIn}.link-row--group{cursor:pointer;user-select:none}.link-row--open{background:var(--link-open-bg)}.link-row-chevron{color:var(--text-muted);flex-shrink:0;margin-left:.25rem;font-size:.75rem;transition:transform .2s,color .15s}.link-row-chevron--open{transform:rotate(180deg)}.link-row:hover .link-row-chevron{color:var(--link-hover-accent)}.link-group-children{grid-template-rows:0fr;transition:grid-template-rows .25s;display:grid}.link-group-children--open{grid-template-rows:1fr}.link-group-children-inner{overflow:hidden}.link-row--child{border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);padding-left:4rem}.link-row--child .link-row-title{font-size:.95rem}.link-row--child .link-row-desc{font-size:.78rem}.link-row--child .link-icon{width:32px;height:32px}.link-row--child .link-icon--img{width:40px;height:40px}.link-row--child .link-row-index{display:none}.skip-link{background:var(--surface);color:var(--text);z-index:9999;border-radius:0 0 .375rem .375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:top .15s;position:absolute;top:-100%;left:.5rem}.skip-link:focus{outline:2px solid var(--accent);outline-offset:2px;top:0}.keyboard-hint{color:var(--text-muted);text-align:center;opacity:0;user-select:none;margin-top:1.5rem;font-size:.65rem;animation:5s ease-out 1.5s forwards hintFade}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:.8}50%{opacity:0}}@keyframes avatarPulse{0%,to{box-shadow:0 0 0 0 hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / 0)}50%{box-shadow:0 0 28px 6px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .3)}}@keyframes namePulse{0%,to{text-shadow:none}50%{text-shadow:0 0 22px hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .22)}}@keyframes colorDrift{0%,to{--accent-hue:212;--accent-sat:100%;--accent-lit:67%;--line-hue-a:212;--line-hue-b:212;--line-hue-c:212;--line-hue-d:212}25%{--accent-hue:205;--accent-sat:100%;--accent-lit:67%;--line-hue-a:205;--line-hue-b:205;--line-hue-c:205;--line-hue-d:205}50%{--accent-hue:210;--accent-sat:10%;--accent-lit:96%;--line-hue-a:210;--line-hue-b:210;--line-hue-c:210;--line-hue-d:210}75%{--accent-hue:222;--accent-sat:100%;--accent-lit:67%;--line-hue-a:222;--line-hue-b:222;--line-hue-c:222;--line-hue-d:222}}@keyframes colorDriftRose{0%,to{--accent-hue:335;--accent-sat:85%;--accent-lit:65%;--line-hue-a:335;--line-hue-b:335;--line-hue-c:335;--line-hue-d:335}25%{--accent-hue:345;--accent-sat:85%;--accent-lit:65%;--line-hue-a:345;--line-hue-b:345;--line-hue-c:345;--line-hue-d:345}50%{--accent-hue:330;--accent-sat:12%;--accent-lit:95%;--line-hue-a:330;--line-hue-b:330;--line-hue-c:330;--line-hue-d:330}75%{--accent-hue:315;--accent-sat:85%;--accent-lit:65%;--line-hue-a:315;--line-hue-b:315;--line-hue-c:315;--line-hue-d:315}}@keyframes colorDriftPaper{0%,to{--accent-hue:215;--accent-sat:75%;--accent-lit:40%;--line-hue-a:340;--line-hue-b:50;--line-hue-c:30;--line-hue-d:275}17%{--accent-hue:175;--accent-sat:70%;--accent-lit:35%;--line-hue-a:275;--line-hue-b:30;--line-hue-c:50;--line-hue-d:340}33%{--accent-hue:340;--accent-sat:75%;--accent-lit:42%;--line-hue-a:50;--line-hue-b:215;--line-hue-c:275;--line-hue-d:262}50%{--accent-hue:275;--accent-sat:65%;--accent-lit:42%;--line-hue-a:30;--line-hue-b:262;--line-hue-c:340;--line-hue-d:215}67%{--accent-hue:340;--accent-sat:65%;--accent-lit:35%;--line-hue-a:215;--line-hue-b:340;--line-hue-c:262;--line-hue-d:30}83%{--accent-hue:175;--accent-sat:70%;--accent-lit:40%;--line-hue-a:262;--line-hue-b:275;--line-hue-c:215;--line-hue-d:50}}@keyframes colorDriftEmber{0%,to{--accent-hue:28;--accent-sat:96%;--accent-lit:48%;--line-hue-a:4;--line-hue-b:22;--line-hue-c:38;--line-hue-d:54}25%{--accent-hue:42;--accent-sat:92%;--accent-lit:52%;--line-hue-a:22;--line-hue-b:38;--line-hue-c:54;--line-hue-d:4}50%{--accent-hue:14;--accent-sat:98%;--accent-lit:45%;--line-hue-a:38;--line-hue-b:54;--line-hue-c:4;--line-hue-d:22}75%{--accent-hue:54;--accent-sat:90%;--accent-lit:50%;--line-hue-a:54;--line-hue-b:4;--line-hue-c:22;--line-hue-d:38}}@keyframes colorDriftDusk{0%,to{--accent-hue:272;--accent-sat:78%;--accent-lit:62%;--line-hue-a:278;--line-hue-b:28;--line-hue-c:262;--line-hue-d:38}25%{--accent-hue:258;--accent-sat:82%;--accent-lit:58%;--line-hue-a:28;--line-hue-b:262;--line-hue-c:38;--line-hue-d:278}50%{--accent-hue:285;--accent-sat:75%;--accent-lit:64%;--line-hue-a:262;--line-hue-b:38;--line-hue-c:278;--line-hue-d:28}75%{--accent-hue:265;--accent-sat:80%;--accent-lit:60%;--line-hue-a:38;--line-hue-b:278;--line-hue-c:28;--line-hue-d:262}}@keyframes colorDriftHarbor{0%,to{--accent-hue:205;--accent-sat:68%;--accent-lit:36%;--line-hue-a:220;--line-hue-b:175;--line-hue-c:205;--line-hue-d:215}25%{--accent-hue:188;--accent-sat:65%;--accent-lit:34%;--line-hue-a:175;--line-hue-b:215;--line-hue-c:220;--line-hue-d:205}50%{--accent-hue:220;--accent-sat:72%;--accent-lit:32%;--line-hue-a:205;--line-hue-b:220;--line-hue-c:188;--line-hue-d:175}75%{--accent-hue:175;--accent-sat:62%;--accent-lit:36%;--line-hue-a:215;--line-hue-b:205;--line-hue-c:175;--line-hue-d:220}}@keyframes colorDriftPine{0%,to{--accent-hue:138;--accent-sat:28%;--accent-lit:38%;--line-hue-a:125;--line-hue-b:142;--line-hue-c:155;--line-hue-d:132}25%{--accent-hue:128;--accent-sat:30%;--accent-lit:40%;--line-hue-a:140;--line-hue-b:152;--line-hue-c:130;--line-hue-d:125}50%{--accent-hue:148;--accent-sat:26%;--accent-lit:36%;--line-hue-a:152;--line-hue-b:130;--line-hue-c:125;--line-hue-d:142}75%{--accent-hue:132;--accent-sat:29%;--accent-lit:39%;--line-hue-a:130;--line-hue-b:125;--line-hue-c:142;--line-hue-d:155}}@keyframes colorDriftStone{0%,to{--accent-hue:28;--accent-sat:7%;--accent-lit:74%;--line-hue-a:28;--line-hue-b:28;--line-hue-c:28;--line-hue-d:28}25%{--accent-hue:220;--accent-sat:6%;--accent-lit:48%;--line-hue-a:220;--line-hue-b:220;--line-hue-c:220;--line-hue-d:220}50%{--accent-hue:0;--accent-sat:0%;--accent-lit:92%;--line-hue-a:0;--line-hue-b:0;--line-hue-c:0;--line-hue-d:0}75%{--accent-hue:32;--accent-sat:9%;--accent-lit:62%;--line-hue-a:32;--line-hue-b:32;--line-hue-c:32;--line-hue-d:32}}@keyframes colorDriftMint{0%,to{--accent-hue:25;--accent-sat:55%;--accent-lit:38%;--line-hue-a:25;--line-hue-b:35;--line-hue-c:18;--line-hue-d:30;--line-sat:48%;--line-lit:42%}25%{--accent-hue:30;--accent-sat:52%;--accent-lit:40%;--line-hue-a:30;--line-hue-b:38;--line-hue-c:20;--line-hue-d:32;--line-sat:50%;--line-lit:40%}50%{--accent-hue:22;--accent-sat:58%;--accent-lit:36%;--line-hue-a:22;--line-hue-b:32;--line-hue-c:15;--line-hue-d:28;--line-sat:46%;--line-lit:44%}75%{--accent-hue:35;--accent-sat:50%;--accent-lit:42%;--line-hue-a:35;--line-hue-b:40;--line-hue-c:22;--line-hue-d:35;--line-sat:44%;--line-lit:38%}}[data-time=morning]{--time-hue-shift:15;--time-line-dim:.9;--line-angle-a:130deg;--line-angle-b1:50deg;--line-angle-b2:165deg;--line-angle-c:40deg;--line-angle-d1:15deg;--line-angle-d2:160deg}[data-time=dusk]{--time-hue-shift:25;--time-line-dim:.75;--line-angle-a:-40deg;--line-angle-b1:210deg;--line-angle-b2:175deg;--line-angle-c:-50deg;--line-angle-d1:200deg;--line-angle-d2:185deg}[data-time=night]{--time-hue-shift:-15;--time-line-dim:.6;--line-angle-a:175deg;--line-angle-b1:-8deg;--line-angle-b2:182deg;--line-angle-c:172deg;--line-angle-d1:-3deg;--line-angle-d2:178deg}[data-time=morning] body:before{background:radial-gradient(ellipse 70% 60% at calc(14% + (var(--time-glow-x) * 4%)) calc(90% - (var(--time-progress) * 6%)), hsl(calc(var(--accent-hue) + 30 + (var(--time-hue-flow) * .6)) 80% 60% / calc(.033 + (var(--time-progress) * .01))) 0%, transparent 60%)}[data-time=dusk] body:before{background:radial-gradient(ellipse 60% 70% at calc(90% - (var(--time-glow-x) * 4%)) calc(30% + (var(--time-glow-y) * 4%)), hsl(calc(var(--accent-hue) + 40 + (var(--time-hue-flow) * .55)) 85% 55% / calc(.038 + (var(--time-line-flow) * .007))) 0%, transparent 55%)}[data-time=night] body:before{background:radial-gradient(ellipse 90% 50% at calc(50% + (var(--time-glow-x) * 8%)) calc(0% + (var(--time-glow-y) * 3%)), hsl(calc(var(--accent-hue) - 20 + (var(--time-hue-flow) * .4)) 70% 40% / calc(.024 + (var(--time-line-flow) * .006))) 0%, transparent 45%)}[data-theme=rose][data-time=afternoon] body:before{background:radial-gradient(ellipse 88% 54% at calc(50% + (var(--time-glow-x) * 10%)) calc(2% + (var(--time-glow-y) * 5%)), hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / calc(.062 + (var(--time-progress) * .015))) 0%, hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / calc(.026 + (var(--time-progress) * .006))) 40%, transparent 58%)}[data-theme=rose][data-time=morning] body:before{background:radial-gradient(ellipse 72% 62% at calc(14% + (var(--time-glow-x) * 4%)) calc(90% - (var(--time-progress) * 6%)), hsl(calc(var(--accent-hue) + 30 + (var(--time-hue-flow) * .6)) 80% 60% / calc(.052 + (var(--time-progress) * .016))) 0%, hsl(calc(var(--accent-hue) + 30 + (var(--time-hue-flow) * .6)) 80% 60% / calc(.018 + (var(--time-progress) * .005))) 45%, transparent 62%)}[data-theme=rose][data-time=dusk] body:before{background:radial-gradient(ellipse 64% 72% at calc(90% - (var(--time-glow-x) * 4%)) calc(30% + (var(--time-glow-y) * 4%)), hsl(calc(var(--accent-hue) + 40 + (var(--time-hue-flow) * .55)) 85% 55% / calc(.056 + (var(--time-line-flow) * .011))) 0%, hsl(calc(var(--accent-hue) + 40 + (var(--time-hue-flow) * .55)) 85% 55% / calc(.022 + (var(--time-line-flow) * .004))) 38%, transparent 58%)}[data-theme=rose][data-time=night] body:before{background:radial-gradient(ellipse 92% 52% at calc(50% + (var(--time-glow-x) * 8%)) calc(0% + (var(--time-glow-y) * 3%)), hsl(calc(var(--accent-hue) - 20 + (var(--time-hue-flow) * .4)) 70% 44% / calc(.042 + (var(--time-line-flow) * .012))) 0%, hsl(calc(var(--accent-hue) - 20 + (var(--time-hue-flow) * .4)) 70% 44% / calc(.016 + (var(--time-line-flow) * .004))) 36%, transparent 52%)}@keyframes lineGeometryAfternoon{0%,to{--line-angle-a:150deg;--line-angle-b1:-30deg;--line-angle-b2:180deg;--line-angle-c:25deg;--line-angle-d1:-55deg;--line-angle-d2:180deg}25%{--line-angle-a:155deg;--line-angle-b1:-33deg;--line-angle-b2:182deg;--line-angle-c:21deg;--line-angle-d1:-49deg;--line-angle-d2:179deg}50%{--line-angle-a:147deg;--line-angle-b1:-26deg;--line-angle-b2:177deg;--line-angle-c:31deg;--line-angle-d1:-59deg;--line-angle-d2:182deg}75%{--line-angle-a:152deg;--line-angle-b1:-35deg;--line-angle-b2:184deg;--line-angle-c:23deg;--line-angle-d1:-52deg;--line-angle-d2:177deg}}@keyframes lineGeometryMorning{0%,to{--line-angle-a:130deg;--line-angle-b1:50deg;--line-angle-b2:165deg;--line-angle-c:40deg;--line-angle-d1:15deg;--line-angle-d2:160deg}25%{--line-angle-a:138deg;--line-angle-b1:44deg;--line-angle-b2:168deg;--line-angle-c:35deg;--line-angle-d1:22deg;--line-angle-d2:156deg}50%{--line-angle-a:126deg;--line-angle-b1:57deg;--line-angle-b2:160deg;--line-angle-c:48deg;--line-angle-d1:12deg;--line-angle-d2:165deg}75%{--line-angle-a:133deg;--line-angle-b1:46deg;--line-angle-b2:171deg;--line-angle-c:37deg;--line-angle-d1:20deg;--line-angle-d2:158deg}}@keyframes lineGeometryDusk{0%,to{--line-angle-a:-40deg;--line-angle-b1:210deg;--line-angle-b2:175deg;--line-angle-c:-50deg;--line-angle-d1:200deg;--line-angle-d2:185deg}25%{--line-angle-a:-45deg;--line-angle-b1:214deg;--line-angle-b2:173deg;--line-angle-c:-44deg;--line-angle-d1:197deg;--line-angle-d2:188deg}50%{--line-angle-a:-34deg;--line-angle-b1:205deg;--line-angle-b2:179deg;--line-angle-c:-54deg;--line-angle-d1:205deg;--line-angle-d2:183deg}75%{--line-angle-a:-43deg;--line-angle-b1:213deg;--line-angle-b2:172deg;--line-angle-c:-47deg;--line-angle-d1:196deg;--line-angle-d2:189deg}}@keyframes lineGeometryNight{0%,to{--line-angle-a:175deg;--line-angle-b1:-8deg;--line-angle-b2:182deg;--line-angle-c:172deg;--line-angle-d1:-3deg;--line-angle-d2:178deg}33%{--line-angle-a:178deg;--line-angle-b1:-10deg;--line-angle-b2:183deg;--line-angle-c:170deg;--line-angle-d1:0deg;--line-angle-d2:177deg}67%{--line-angle-a:173deg;--line-angle-b1:-5deg;--line-angle-b2:180deg;--line-angle-c:175deg;--line-angle-d1:-5deg;--line-angle-d2:180deg}}@media (prefers-reduced-motion:no-preference){body{animation:120s ease-in-out infinite lineGeometryAfternoon}[data-time=morning] body{animation:100s ease-in-out infinite lineGeometryMorning}[data-time=dusk] body{animation:120s ease-in-out infinite lineGeometryDusk}[data-time=night] body{animation:160s ease-in-out infinite lineGeometryNight}}@keyframes hintFade{0%{opacity:0}15%{opacity:.5}75%{opacity:.5}to{opacity:0}}.resume{width:100%;max-width:600px;margin:0 auto;padding:2rem 1.25rem 3rem}.resume-back{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:.35rem;margin-bottom:2rem;padding:.4rem .75rem;font-family:inherit;font-size:.8rem;transition:color .15s,border-color .15s;display:inline-flex}.resume-back:hover{color:var(--accent);border-color:var(--accent)}.resume-back:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.resume-back-arrow{transition:transform .15s}.resume-back:hover .resume-back-arrow{transform:translate(-2px)}.resume-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem;animation:.4s ease-out backwards fadeIn}.resume-name{color:var(--text);letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.5rem;font-weight:600}.resume-contact{color:var(--text-muted);font-size:.75rem}.resume-email{color:var(--accent);text-decoration:none}.resume-email:hover{text-decoration:underline}.resume-section{content-visibility:auto;contain-intrinsic-size:0 500px;margin-bottom:1.75rem;animation:.4s ease-out backwards fadeIn}.resume-section-title{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.4rem;font-size:.7rem;font-weight:600}.resume-entry{margin-bottom:1rem}.resume-entry-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.resume-entry-org{color:var(--text);font-size:.85rem;font-weight:500}.resume-entry-location{color:var(--text-muted);font-size:.75rem}.resume-entry-period{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.resume-entry-detail{color:var(--text-muted);margin-top:.15rem;font-size:.8rem}.resume-company{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:1.25rem;padding:.75rem}.resume-company-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.resume-role{margin-bottom:.75rem}.resume-role:last-child{margin-bottom:0}.resume-role-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.35rem;display:flex}.resume-role-title{color:var(--text);font-size:.82rem;font-weight:500}.resume-bullets{padding:0;list-style:none}.resume-bullets li{color:var(--text-muted);margin-bottom:.3rem;padding-left:1.1rem;font-size:.78rem;line-height:1.65;position:relative}.resume-bullets li:before{content:"›";color:var(--accent);font-weight:600;position:absolute;left:0}.resume-simple-list{padding:0;list-style:none}.resume-simple-list li{color:var(--text-muted);padding:.3rem 0 .3rem 1.1rem;font-size:.8rem;line-height:1.6;position:relative}.resume-simple-list li:before{content:"·";color:var(--accent);font-weight:600;position:absolute;left:0}.writing{width:100%;max-width:600px;margin:0 auto;padding:2rem 1.25rem 3rem}.writing-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem;animation:.4s ease-out backwards fadeIn}.writing-page-title{color:var(--text);letter-spacing:-.02em;margin-bottom:.35rem;font-size:1.5rem;font-weight:600}.writing-page-desc{color:var(--text-muted);font-size:.75rem}.writing-list{border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}.writing-list-item{border:none;border-bottom:1px solid var(--border);color:inherit;text-align:left;cursor:pointer;contain:paint;content-visibility:auto;contain-intrinsic-size:0 150px;background:0 0;flex-direction:column;gap:.4rem;padding:1rem .75rem;font-family:inherit;transition:background .15s;animation:.4s ease-out backwards fadeIn;display:flex;position:relative;overflow:hidden}.writing-list-item:hover{background:var(--link-hover-bg)}.writing-list-item:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.writing-list-item-glow{opacity:0;pointer-events:none;background:var(--link-hover-glow);width:640px;height:640px;transform:translate3d(calc(var(--glow-x,0) * 1px), calc(var(--glow-y,0) * 1px), 0);will-change:transform, opacity;transition:opacity .15s;position:absolute;top:0;left:0}.writing-list-item:hover .writing-list-item-glow{opacity:1}.writing-list-item-top{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.writing-list-item-title{color:var(--text);font-size:.9rem;font-weight:500;transition:color .15s}.writing-list-item:hover .writing-list-item-title{color:var(--link-hover-accent)}.writing-list-item-date{color:var(--text-muted);white-space:nowrap;flex-shrink:0;font-size:.7rem}.writing-list-item-excerpt{color:var(--text-muted);font-size:.78rem;line-height:1.55}.writing-list-item-tags{flex-wrap:wrap;gap:.4rem;display:flex}.writing-tag{color:var(--text-muted);border:1px solid var(--border);border-radius:3px;padding:.15rem .45rem;font-family:JetBrains Mono,monospace;font-size:.65rem}.writing-toc{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:1.5rem;padding:.75rem;animation:.4s ease-out backwards fadeIn}.writing-toc-label{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.65rem;font-weight:600;display:block}.writing-toc-items{flex-direction:column;gap:0;display:flex}.writing-toc-link{color:var(--text-muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:.35rem .5rem;font-family:inherit;font-size:.78rem;transition:color .15s,background .15s}.writing-toc-link:hover{color:var(--accent);background:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .06)}.writing-toc-link:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.writing-detail{animation:.4s ease-out backwards fadeIn}.writing-detail-header{border-bottom:1px solid var(--border);margin-bottom:2rem;padding-bottom:1.5rem}.writing-detail-title{color:var(--text);letter-spacing:-.02em;margin-bottom:.3rem;font-size:1.4rem;font-weight:600}.writing-detail-subtitle{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.writing-detail-meta{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.writing-detail-date{color:var(--text-muted);font-size:.72rem}.writing-detail-tags{gap:.35rem;display:flex}.writing-detail-body{line-height:1.85}.writing-body-p{color:var(--text);margin-bottom:1.25rem;font-size:.95rem;line-height:1.8}.writing-body-heading{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);margin-top:2.5rem;margin-bottom:1.25rem;padding-bottom:.4rem;font-size:.9rem;font-weight:600}.writing-blockquote{border-left:2px solid var(--accent);background:hsl(var(--accent-hue) var(--accent-sat) var(--accent-lit) / .03);border-radius:0 4px 4px 0;margin:1.5rem 0;padding:1rem 1.25rem}.writing-blockquote p{color:var(--text);opacity:.85;margin:0;font-size:.91rem;font-style:italic;line-height:1.7}.writing-blockquote-cite{color:var(--text-muted);opacity:.7;margin-top:.6rem;font-size:.7rem;font-style:normal;display:block}.writing-blockquote-cite:before{content:"—"}.writing-verse{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;margin:1.5rem 0;padding:1.25rem 1.5rem;display:flex}.writing-verse-line{color:var(--text);font-size:.91rem;font-style:italic;line-height:1.7;display:block}.writing-verse-cite{color:var(--text-muted);opacity:.7;border-top:1px solid var(--border);margin-top:.75rem;padding-top:.5rem;font-size:.7rem;font-style:normal}.writing-verse-cite:before{content:"—"}.writing-figure{margin:2rem 0}.writing-figure-img{border:1px solid var(--border);border-radius:6px;width:100%;max-width:100%;height:auto;display:block}.writing-figure-caption{color:var(--text-muted);opacity:.7;text-align:center;margin-top:.6rem;font-size:.7rem;font-style:italic}.writing-citations{margin-top:2.5rem}.writing-citations-list{padding:0;list-style:none}.writing-citations-list li{color:var(--text-muted);text-indent:-1.75rem;padding:.35rem 0 .35rem 1.75rem;font-size:.75rem;line-height:1.55}.theme-toggle{flex-wrap:wrap;align-items:center;gap:.35rem 0;margin-bottom:1.5rem;font-family:JetBrains Mono,monospace;font-size:.65rem;display:flex}.theme-prompt{color:var(--text-muted);opacity:.4;user-select:none;margin-right:.35rem;font-size:.65rem}.theme-btn{font-family:inherit;font-size:inherit;cursor:pointer;color:var(--text-muted);opacity:.45;-webkit-appearance:none;appearance:none;background:0 0;border:none;padding:.2rem .35rem;transition:color .15s,opacity .15s;position:relative}.theme-btn:hover{opacity:.8}.theme-btn:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.theme-btn--active{color:var(--accent);opacity:1}.theme-btn--active:before{content:"[";color:var(--border);margin-right:1px}.theme-btn--active:after{content:"]";color:var(--border);margin-left:1px}.theme-wipe{z-index:9998;pointer-events:none;background:var(--bg);will-change:transform;animation:.6s ease-in-out both themeWipe;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes themeWipe{0%{transform:translate(-100%)}40%{transform:translate(0)}60%{transform:translate(0)}to{transform:translate(100%)}}[data-crt=true]{--crt-glow:0 0 2px #80ffc826}[data-crt=true] body{text-shadow:var(--crt-glow)}[data-crt=true] .link-row-title,[data-crt=true] h1,[data-crt=true] h2,[data-crt=true] h3{text-shadow:0 0 3px #80ffc840}.crt-overlay{z-index:9997;pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(#0000 0%,#80ffc805 40%,#0006 100%);position:fixed;top:0;bottom:0;left:0;right:0}.crt-scanlines{z-index:9997;pointer-events:none;mix-blend-mode:hard-light;background:repeating-linear-gradient(0deg,#ffffff0d 0 .5px,#0000 .5px 1px),repeating-linear-gradient(0deg,#0003 1px 1.5px,#0000 1.5px 2.5px);position:fixed;top:0;bottom:0;left:0;right:0}.crt-toggle{font-family:inherit;font-size:inherit;cursor:pointer;color:var(--text-muted);opacity:.45;-webkit-appearance:none;appearance:none;background:0 0;border:none;margin-left:.35rem;padding:.2rem .35rem;transition:color .15s,opacity .15s}.crt-toggle:hover{opacity:.8}.crt-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.crt-toggle--active{color:var(--accent);opacity:1}.crt-toggle--active:before{content:"[";color:var(--border);margin-right:2px}.crt-toggle--active:after{content:"✓]";color:var(--border);margin-left:0}[data-theme=rose][data-crt=true] .link-row-title,[data-theme=rose][data-crt=true] h1,[data-theme=rose][data-crt=true] h2,[data-theme=rose][data-crt=true] h3{text-shadow:0 0 4px #ff80b466,0 0 8px #ff508c33}[data-theme=rose] .crt-overlay{background:radial-gradient(#0000 0% 30%,#000000fa 90%,#000 100%)}[data-theme=rose][data-crt=true] body{text-shadow:0 0 4px #ff80b473}[data-theme=rose][data-crt=true] .link-title,[data-theme=rose][data-crt=true] .link-group-title,[data-theme=rose][data-crt=true] h1,[data-theme=rose][data-crt=true] h2,[data-theme=rose][data-crt=true] h3{text-shadow:0 0 8px #ff80b499,0 0 16px #ff508c66}[data-theme=rose] .crt-scanlines{mix-blend-mode:lighten;mix-blend-mode:lighten;background:repeating-linear-gradient(0deg,#ff80b414 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#00000047 1px 2px,#0000 2px 4px)}:root:not([data-theme]) .crt-overlay,[data-theme=default] .crt-overlay{background:radial-gradient(#0000 0% 30%,#000000fa 90%,#000 100%)}:root:not([data-theme])[data-crt=true] body,[data-theme=default][data-crt=true] body{text-shadow:0 0 3px #58a6ff59}:root:not([data-theme])[data-crt=true] .link-title,:root:not([data-theme])[data-crt=true] .link-group-title,:root:not([data-theme])[data-crt=true] h1,:root:not([data-theme])[data-crt=true] h2,:root:not([data-theme])[data-crt=true] h3,[data-theme=default][data-crt=true] .link-title,[data-theme=default][data-crt=true] .link-group-title,[data-theme=default][data-crt=true] h1,[data-theme=default][data-crt=true] h2,[data-theme=default][data-crt=true] h3{text-shadow:0 0 6px #58a6ff80,0 0 12px #388bfd4d}:root:not([data-theme]) .crt-scanlines,[data-theme=default] .crt-scanlines{mix-blend-mode:lighten;mix-blend-mode:lighten;background:repeating-linear-gradient(0deg,#58a6ff14 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#00000047 1px 2px,#0000 2px 4px)}[data-theme=ember] .crt-overlay{background:radial-gradient(#0000 0% 25%,#000000eb 80%,#000 100%)}[data-theme=ember][data-crt=true] body{text-shadow:0 0 4px #ff993373}[data-theme=ember][data-crt=true] .link-title,[data-theme=ember][data-crt=true] .link-group-title,[data-theme=ember][data-crt=true] h1,[data-theme=ember][data-crt=true] h2,[data-theme=ember][data-crt=true] h3{text-shadow:0 0 8px #f939,0 0 16px #e6682166}[data-theme=ember] .crt-scanlines{mix-blend-mode:lighten;background:repeating-linear-gradient(0deg,#ff993326 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#00000080 1px 2px,#0000 2px 4px)}[data-theme=dusk] .crt-overlay{background:radial-gradient(#0000 0% 30%,#000000fa 90%,#000 100%)}[data-theme=dusk][data-crt=true] body{text-shadow:0 0 3px #bd93f959}[data-theme=dusk][data-crt=true] .link-title,[data-theme=dusk][data-crt=true] .link-group-title,[data-theme=dusk][data-crt=true] h1,[data-theme=dusk][data-crt=true] h2,[data-theme=dusk][data-crt=true] h3{text-shadow:0 0 6px #bd93f980,0 0 12px #a371f74d}[data-theme=dusk] .crt-scanlines{mix-blend-mode:lighten;background:repeating-linear-gradient(0deg,#bd93f91a 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#0006 1px 2px,#0000 2px 4px)}[data-theme=stone] .crt-overlay{background:radial-gradient(#0000 0% 30%,#000000fa 90%,#000 100%)}[data-theme=stone][data-crt=true] body{text-shadow:0 0 3px #ffba784d}[data-theme=stone][data-crt=true] .link-title,[data-theme=stone][data-crt=true] .link-group-title,[data-theme=stone][data-crt=true] h1,[data-theme=stone][data-crt=true] h2,[data-theme=stone][data-crt=true] h3{text-shadow:0 0 6px #ffba7873,0 0 12px #e6a06440}[data-theme=stone] .crt-scanlines{mix-blend-mode:lighten;background:repeating-linear-gradient(0deg,#ffba781a 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#0006 1px 2px,#0000 2px 4px)}:root[data-theme=mint] .crt-overlay{background:radial-gradient(ellipse at center, transparent 0%, transparent 20%, hsla(var(--accent-hue), 30%, 80%, .15) 60%, hsla(var(--accent-hue), 40%, 60%, .5) 85%, hsla(var(--accent-hue), 50%, 35%, .85) 100%)}:root[data-theme=mint][data-crt=true] body{text-shadow:0 0 3px hsla(var(--accent-hue), var(--accent-sat), var(--accent-lit), .25)}:root[data-theme=mint][data-crt=true] .link-title,:root[data-theme=mint][data-crt=true] .link-group-title,:root[data-theme=mint][data-crt=true] h1,:root[data-theme=mint][data-crt=true] h2,:root[data-theme=mint][data-crt=true] h3{text-shadow:0 0 6px hsla(var(--accent-hue), var(--accent-sat), var(--accent-lit), .4), 0 0 12px hsla(var(--accent-hue), var(--accent-sat), var(--accent-lit), .2)}:root[data-theme=mint] .crt-scanlines{background:repeating-linear-gradient(0deg, hsla(var(--accent-hue), var(--accent-sat), var(--accent-lit), .1) 0px, hsla(var(--accent-hue), var(--accent-sat), var(--accent-lit), .1) 1px, transparent 1px, transparent 2px), repeating-linear-gradient(0deg, hsla(var(--accent-hue), 40%, 25%, .4) 1px, hsla(var(--accent-hue), 40%, 25%, .4) 2px, transparent 2px, transparent 4px);mix-blend-mode:multiply}:root[data-theme=pine] .crt-overlay{background:radial-gradient(#0000 0% 30%,#e1ebdceb 80%,#d2e4cd 100%)}:root[data-theme=pine][data-crt=true] body{text-shadow:0 0 3px #5a8c6440}:root[data-theme=pine][data-crt=true] .link-title,:root[data-theme=pine][data-crt=true] .link-group-title,:root[data-theme=pine][data-crt=true] h1,:root[data-theme=pine][data-crt=true] h2,:root[data-theme=pine][data-crt=true] h3{text-shadow:0 0 5px #46785566,0 0 10px #3c694b33}:root[data-theme=pine] .crt-scanlines{mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#5a8c6414 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#b4c8af4d 1px 2px,#0000 2px 4px)}:root[data-theme=paper] .crt-overlay{background:radial-gradient(#0000 0% 30%,#ebe6dceb 80%,#dcd7cd 100%)}:root[data-theme=paper][data-crt=true] body{text-shadow:0 0 3px #64648c33}:root[data-theme=paper][data-crt=true] .link-title,:root[data-theme=paper][data-crt=true] .link-group-title,:root[data-theme=paper][data-crt=true] h1,:root[data-theme=paper][data-crt=true] h2,:root[data-theme=paper][data-crt=true] h3{text-shadow:0 0 5px #50507859,0 0 10px #46466e2e}:root[data-theme=paper] .crt-scanlines{mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#64648c12 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#c8c3b94d 1px 2px,#0000 2px 4px)}:root[data-theme=harbor] .crt-overlay{background:radial-gradient(#0000 0% 30%,#dce8f5eb 80%,#cddcee 100%)}:root[data-theme=harbor][data-crt=true] body{text-shadow:0 0 3px #5082aa40}:root[data-theme=harbor][data-crt=true] .link-title,:root[data-theme=harbor][data-crt=true] .link-group-title,:root[data-theme=harbor][data-crt=true] h1,:root[data-theme=harbor][data-crt=true] h2,:root[data-theme=harbor][data-crt=true] h3{text-shadow:0 0 5px #3c6e9666,0 0 10px #325f8733}:root[data-theme=harbor] .crt-scanlines{mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#5082aa14 0 1px,#0000 1px 2px),repeating-linear-gradient(0deg,#bed2e64d 1px 2px,#0000 2px 4px)}@media (prefers-reduced-motion:reduce){:root{animation:none}.page-slider--animated{transition:none}.link-row,.link-group{animation:none}.link-row-arrow{transition:none;transform:none}.link-row-glow{transition:none}.resume-section,.resume-header,.writing-header,.writing-list-item,.writing-detail,.avatar-wrap{animation:none}.cursor--blink{opacity:.8;animation:none}.keyboard-hint{opacity:0;animation:none}.avatar-modal,.avatar-modal-inner,.avatar-modal-wrap{animation:none}.theme-wipe{opacity:0;animation:none}.name{animation:none}.scroll-progress,.link-ripple{display:none}}@media (hover:none){body{animation:none}.link-row-glow,.writing-list-item-glow{display:none}.link-row-arrow{opacity:.4;transform:none}.link-row:active{background:var(--link-hover-bg)}.link-row:active .link-icon,.link-row:active .link-row-index{color:var(--link-hover-accent)}.link-row:active .link-row-arrow{opacity:1;color:var(--link-hover-accent)}.keyboard-hint{display:none}}@media (max-width:640px){body{animation:none}.link-row{min-height:48px;padding:1rem .75rem}.resume-back{min-height:44px;padding:.5rem 1rem}.writing-list-item{min-height:48px;padding:1rem .75rem}}@media (max-width:480px){.app{padding:1.5rem 1rem;padding-bottom:max(1.5rem, env(safe-area-inset-bottom))}.avatar-wrap{width:80px;height:80px}.header{margin-bottom:2rem}.link-row-desc{display:none}.link-row--child{padding-left:2.5rem}.resume,.writing{padding:1.25rem 1rem 2rem;padding-bottom:max(2rem, env(safe-area-inset-bottom))}.writing-list-item-top{flex-direction:column;gap:.15rem}.writing-blockquote{margin:1.25rem 0;padding:.75rem 1rem}.writing-verse{margin:1.25rem 0;padding:1rem}.resume-entry-header,.resume-role-header,.resume-company-header{flex-direction:column;gap:.15rem}.theme-toggle{justify-content:center;max-width:none;margin-left:auto;margin-right:auto}}
