:root{--ink: #0a0f1e;--panel: #10172b;--panel-2: #172039;--line: #26314f;--text: #eaf0ff;--muted: #93a0c4;--cyan: #4dd4ff;--amber: #ffb454;--radius: 14px;--display: "Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;--body: "Hanken Grotesk", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background-color:var(--ink);background-image:radial-gradient(rgba(147,160,196,.13) 1px,transparent 1px);background-size:28px 28px;color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--display);margin:0;line-height:1.05;letter-spacing:-.02em}p{margin:0}a{color:inherit}img{max-width:100%;display:block}ul{list-style:none;margin:0;padding:0}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}main,.footer,.nav{width:min(1180px,100% - 32px);margin-inline:auto}.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 0;background:linear-gradient(var(--ink) 70%,transparent)}.nav nav{display:flex;align-items:center;gap:22px;font-weight:500}.nav nav a:not(.btn){text-decoration:none;color:var(--muted);transition:color .15s}.nav nav a:not(.btn):hover{color:var(--text)}.nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:1.15rem;text-decoration:none}.nav-dot{width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px #4dd4ff2e}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--text);font:600 .95rem var(--body);text-decoration:none;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}.btn:hover{border-color:var(--cyan);transform:translateY(-1px)}.btn-primary{background:var(--cyan);border-color:var(--cyan);color:#04202b}.btn-primary:hover{background:#7ee1ff}.btn-small{padding:8px 14px;font-size:.875rem}.btn-big{padding:16px 28px;font-size:1.1rem}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:40px 56px;align-items:center;padding:56px 0 40px}.status{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:.9rem}.pulse{width:8px;height:8px;border-radius:50%;background:#5be3a0;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #5be3a099}70%{box-shadow:0 0 0 10px #5be3a000}to{box-shadow:0 0 #5be3a000}}.hero h1{margin-top:22px;font-size:clamp(3.6rem,9vw,7.2rem);font-weight:800;line-height:.92;letter-spacing:-.045em}.hero-lede{margin-top:26px;max-width:24ch;font-family:var(--display);font-size:clamp(1.5rem,3vw,2.2rem);font-weight:500;line-height:1.15;letter-spacing:-.02em;color:var(--text)}.hero-sub{margin-top:20px;max-width:56ch;color:var(--muted)}.hero-cta{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}.hero-meta{margin-top:20px;display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem}.portrait{margin:0;justify-self:center;width:min(100%,440px)}.portrait-frame{position:relative;border-radius:28px;padding:10px;background:var(--panel);border:1px solid var(--line);box-shadow:14px 14px 0 var(--panel-2),14px 14px 0 1px var(--line)}.portrait-frame img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:center 20%;border-radius:20px}.portrait figcaption{margin-top:28px;display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:.9rem}.portrait figcaption strong{color:var(--text);font-family:var(--display);font-size:1.1rem}.stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:12px}.stat{height:100%;padding:20px 22px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);border-top:3px solid var(--cyan)}.stat-amber{border-top-color:var(--amber)}.stat-value{font-family:var(--mono);font-weight:700;font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.stat-label{margin-top:10px;color:var(--muted);font-size:.9rem;line-height:1.4}.section-head{margin-bottom:28px}.section-head h2,.contact h2{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.035em}.section-head p{margin-top:10px;color:var(--muted)}.console{padding:72px 0 24px}.tabs{display:inline-flex;padding:5px;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:999px;margin-bottom:22px}.tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 .95rem var(--body);cursor:pointer;transition:background .15s,color .15s}.tab:hover{color:var(--text)}.tab.on{background:var(--cyan);color:#04202b}.tab-n{font-family:var(--mono);font-size:.78rem;opacity:.75}.console-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:22px;align-items:start}.rail{display:flex;flex-direction:column;gap:10px;position:sticky;top:84px}.rail-item{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:14px;text-align:left;padding:16px 18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--body);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}.rail-item:hover{border-color:#3a4a7a;transform:translate(3px)}.rail-item.on{background:var(--panel-2);border-color:var(--cyan);box-shadow:inset 4px 0 0 var(--cyan);transform:none}.rail-main{display:flex;flex-direction:column;gap:2px;min-width:0}.rail-name{font-family:var(--display);font-weight:700;font-size:1.1rem;letter-spacing:-.01em}.rail-sub{color:var(--muted);font-size:.85rem;line-height:1.35}.rail-period{margin-top:4px;font-family:var(--mono);font-size:.72rem;color:#6f7da6}.rail-metric{flex-shrink:0;text-align:right;display:flex;flex-direction:column}.rail-metric b{font-family:var(--mono);font-size:1.1rem;color:var(--amber)}.rail-metric i{font-style:normal;font-size:.72rem;color:var(--muted);max-width:9ch;margin-left:auto;line-height:1.25}.detail{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:32px;animation:swap .28s ease}@keyframes swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.detail-head{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.detail-head h3{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.03em}.detail-sub{margin-top:8px;color:var(--muted);max-width:52ch}.detail-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.chip{padding:5px 12px;border:1px solid var(--line);border-radius:999px;font-family:var(--mono);font-size:.75rem;color:var(--muted);white-space:nowrap}.chip-status{color:#5be3a0;border-color:#5be3a066}.detail-summary{margin-top:22px;max-width:64ch;font-size:1.08rem}.metrics{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.metric{padding:16px 18px;background:var(--ink);border:1px solid var(--line);border-radius:12px}.metric-v{font-family:var(--mono);font-weight:700;font-size:1.55rem;color:var(--amber);line-height:1.1}.metric-l{margin-top:6px;font-size:.82rem;line-height:1.35;color:var(--muted)}.block{margin-top:34px}.block h4{font-size:1.15rem;margin-bottom:14px}.diagram-scroll{overflow-x:auto;background:var(--ink);border:1px solid var(--line);border-radius:14px;padding:10px}.diagram{min-width:620px}.diagram-scroll{scrollbar-color:var(--line) var(--ink);scrollbar-width:thin}.diagram svg{width:100%;height:auto;display:block}.node rect{fill:var(--panel-2);stroke:var(--line);stroke-width:1.5}.node-core rect{stroke:var(--cyan)}.node-store rect{stroke:var(--amber)}.node-title{fill:var(--text);font:700 14px var(--display)}.node-sub{fill:var(--muted);font:400 10.5px var(--body)}.edge-base{fill:none;stroke:var(--line);stroke-width:2}.edge-flow{fill:none;stroke:var(--cyan);stroke-width:2;stroke-dasharray:6 12;animation:flow 1.2s linear infinite}.arrow-head{fill:var(--cyan)}@keyframes flow{to{stroke-dashoffset:-18}}.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.shots img{width:100%;border:1px solid var(--line);border-radius:12px}.bullets{display:flex;flex-direction:column;gap:14px}.bullets li{position:relative;padding-left:26px;max-width:72ch}.bullets li:before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--cyan)}.detail-foot{margin-top:34px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px}.tags{display:flex;flex-wrap:wrap;gap:8px}.tags li{padding:5px 12px;border-radius:8px;background:var(--ink);border:1px solid var(--line);font-size:.85rem;color:var(--text)}.links{display:flex;gap:8px;flex-wrap:wrap}.toolbox{padding:72px 0 24px}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.skill-card{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.skill-card h3{display:flex;align-items:center;gap:8px;font-size:1.2rem;margin-bottom:16px}.edu{border-color:#ffb45473}.edu p{color:var(--muted);margin-bottom:6px}.edu .edu-school{color:var(--text);font-weight:600}.edu .tags{margin-top:14px}.contact{margin:72px 0 0;padding:64px 32px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:28px}.contact p{margin:14px auto 28px;max-width:46ch;color:var(--muted)}.contact-links{margin-top:28px;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px}.contact-links a{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;transition:color .15s}.contact-links a:hover{color:var(--text)}.footer{padding:40px 0 48px;color:#6f7da6;font-size:.85rem;text-align:center}@media (max-width: 960px){.hero{grid-template-columns:1fr;padding-top:28px}.portrait{order:-1;width:min(100%,300px);justify-self:start}.stats{grid-template-columns:repeat(2,1fr)}.console-grid{grid-template-columns:minmax(0,1fr)}.detail-wrap{min-width:0}.rail{position:static}}@media (max-width: 560px){body{font-size:16px}.nav nav a:not(.btn){display:none}.detail{padding:22px 18px}.tab{padding:10px 14px}.contact{padding:44px 18px}.btn-big{font-size:.95rem;padding:14px 18px;word-break:break-all}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}.about-hero{padding:56px 0 24px}.about-hero h1{margin-top:22px;font-size:clamp(3rem,8vw,6rem);font-weight:800;line-height:.95;letter-spacing:-.045em}.about-jump{margin-top:28px;display:flex;flex-wrap:wrap;gap:8px}.about-jump a{padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);text-decoration:none;font-weight:500;font-size:.92rem;transition:color .15s,border-color .15s}.about-jump a:hover{color:var(--text);border-color:var(--cyan)}.about-section{padding:64px 0 8px}.about-section h2{font-size:clamp(2rem,4.5vw,3.2rem);font-weight:800;letter-spacing:-.035em;margin-bottom:28px}.eyebrow{font-family:var(--mono);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text);margin-bottom:10px}.about-two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:start}.about-prose{display:flex;flex-direction:column;gap:16px;max-width:64ch;font-size:1.05rem}.edu-meta{display:flex;align-items:center;gap:6px}.timeline{list-style:none;margin:0;padding:0 0 0 22px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:18px}.timeline-item{position:relative;padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.timeline-item:before{content:"";position:absolute;left:-31px;top:32px;width:14px;height:14px;border-radius:50%;background:var(--ink);border:3px solid var(--cyan)}.timeline-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}.timeline-head h3{font-size:1.35rem;font-weight:700}.timeline-item .tags{margin-top:18px}.award{border-top:3px solid var(--amber)}.award h3{margin-bottom:8px}.award .edu-meta{color:var(--muted)}@media (max-width: 960px){.about-two{grid-template-columns:1fr}}.nav nav a.on:not(.btn){color:var(--text)}.nav nav a.on:not(.btn):after{content:"";display:block;height:2px;margin-top:2px;border-radius:2px;background:var(--cyan)}.page-head{padding:56px 0 28px}.page-head h1{font-size:clamp(2.6rem,7vw,5rem);font-weight:800;line-height:.98;letter-spacing:-.04em}.page-head .hero-sub{margin-top:16px}.page-head .tags{margin-top:20px}.page-narrow{max-width:820px;margin-inline:auto}.back{display:inline-flex;align-items:center;gap:6px;margin-top:32px;color:var(--muted);text-decoration:none;font-weight:500}.back:hover{color:var(--text)}.page-narrow .detail{margin-top:20px}.row-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}.row-head h2{margin-bottom:0}.see-all{display:inline-flex;align-items:center;gap:6px;color:var(--text);text-decoration:none;font-weight:600}.see-all:hover{text-decoration:underline}.filters{flex-wrap:wrap;border-radius:22px}.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.pcard{display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .15s,transform .15s}.pcard:hover{border-color:#3a4a7a;transform:translateY(-2px)}.pcard-top{display:flex;gap:8px;flex-wrap:wrap}.pcard h3{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.pcard h3 a{text-decoration:none}.pcard h3 a:hover{color:var(--text)}.pcard-sum{color:var(--muted)}.pcard-metric b{font-family:var(--mono);color:var(--amber);font-size:1.3rem}.pcard-metric span{color:var(--muted);font-size:.88rem}.pcard-links{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}.post-list{display:flex;flex-direction:column;gap:14px}.post-item{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.post-item h3{font-size:1.35rem;font-weight:700}.post-item h3 a{text-decoration:none}.post-item h3 a:hover{color:var(--text)}.post-meta{margin:8px 0 10px;font-family:var(--mono);font-size:.8rem;color:var(--muted)}.post-ex{color:var(--muted);margin-bottom:14px}.post .page-head{padding-top:24px}.post .page-head h1{font-size:clamp(2.1rem,5vw,3.4rem)}.post-body{display:flex;flex-direction:column;gap:18px;font-size:1.08rem;padding-bottom:24px}.post-body h2{font-size:1.6rem;font-weight:700;margin-top:18px}.post-body p{max-width:68ch}.post-body pre{overflow-x:auto;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font:.9rem var(--mono)}.resume-cta{margin:0 0 22px}.resume-frame{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:10px;height:82vh}.resume-frame iframe{width:100%;height:100%;border:0;border-radius:12px;background:#fff}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.mail-form{display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:20px}.mail-form h2{font-size:1.8rem;font-weight:800}.mail-form .hero-sub{margin:0 0 4px}.mail-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}.mail-form input,.mail-form textarea{padding:12px 14px;background:var(--ink);color:var(--text);border:1px solid var(--line);border-radius:10px;font:400 1rem var(--body);resize:vertical}.mail-form input:focus,.mail-form textarea:focus{outline:none;border-color:var(--cyan)}.mail-form small{align-self:flex-end;color:var(--muted);font-family:var(--mono);font-size:.75rem}.mail-form .btn{align-self:flex-start;margin-top:4px}@media (max-width: 760px){.nav{flex-wrap:wrap;gap:8px}.nav nav{gap:14px;overflow-x:auto;max-width:100%}}@media (max-width: 560px){.nav nav a:not(.btn){display:inline;font-size:.9rem;white-space:nowrap}.pgrid{grid-template-columns:1fr}}.post-list{list-style:none;margin:0;padding:0}.portrait-frame{aspect-ratio:480 / 490;overflow:hidden;background:radial-gradient(120% 90% at 50% 20%,rgba(77,212,255,.16),transparent 60%),radial-gradient(80% 60% at 70% 100%,rgba(255,180,84,.12),transparent 70%),var(--panel)}.pp{position:relative;width:100%;height:100%}.pp-canvas,.pp-photo{display:block;width:100%;height:100%;border-radius:20px;touch-action:none;cursor:crosshair}.pp-photo{object-fit:cover;object-position:center 20%;animation:swap .3s ease}.pp-bar{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}.pp-hint{font:500 .72rem var(--mono);color:var(--muted);background:#0a0f1eb3;padding:5px 10px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pp-toggle{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:#0a0f1ebf;color:var(--text);font:600 .78rem var(--body);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pp-toggle:hover{border-color:var(--cyan)}.cp-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font:500 .78rem var(--mono);cursor:pointer}.cp-btn:hover{color:var(--text);border-color:var(--cyan)}.cp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#05081299;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:start center;padding-top:12vh;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.cp{width:min(640px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px #00000080;overflow:hidden;animation:swap .2s ease}.cp-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--muted)}.cp-input input{flex:1;background:none;border:0;color:var(--text);font:500 1.05rem var(--body);outline:none}kbd{font:500 .72rem var(--mono);padding:3px 7px;border:1px solid var(--line);border-radius:6px;color:var(--muted)}.cp-list{max-height:50vh;overflow-y:auto;padding:8px}.cp-group{padding:10px 10px 4px;font:500 .7rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:#6f7da6}.cp-item{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border:0;border-radius:10px;background:none;color:var(--text);font:500 .95rem var(--body);text-align:left;cursor:pointer}.cp-item small{color:var(--muted);font-size:.8rem;margin-left:auto;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-item.on{background:var(--panel-2);box-shadow:inset 3px 0 0 var(--cyan)}.cp-empty{padding:18px;color:var(--muted);text-align:center}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:110;padding:10px 18px;border-radius:999px;background:var(--cyan);color:#04202b;font-weight:600;animation:swap .2s ease}.play-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px;align-items:stretch}.term{display:flex;flex-direction:column;background:#070b16;border:1px solid var(--line);border-radius:16px;overflow:hidden;font-family:var(--mono);font-size:.86rem;min-height:380px;cursor:text}.term-top{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel)}.term-top i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.term-top i:nth-child(2){background:#febc2e}.term-top i:nth-child(3){background:#28c840}.term-top span{margin-left:8px;color:var(--muted);font-size:.75rem}.term-body{flex:1;padding:14px;overflow-y:auto;max-height:340px}.term-body p{white-space:pre-wrap;word-break:break-word;line-height:1.55}.term-in{color:var(--text);margin-top:8px}.term-in b,.term-line b{color:#5be3a0;font-weight:700}.term-out{color:var(--muted)}.term-line{display:flex;gap:8px;margin-top:8px}.term-line input{flex:1;background:none;border:0;outline:none;color:var(--text);font:inherit;caret-color:var(--cyan)}.term-chips,.ask-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-top:1px solid var(--line)}.term-chips button,.ask-chips button{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font:500 .75rem var(--mono);cursor:pointer}.term-chips button:hover,.ask-chips button:hover{color:var(--text);border-color:var(--cyan)}.ask{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:12px}.page-narrow .ask{margin-top:18px}.ask-head h4{font-size:1.3rem}.ask-note{margin-top:6px;color:var(--muted);font-size:.85rem}.ask-form{display:flex;gap:8px}.ask-form input{flex:1;padding:10px 14px;background:var(--ink);border:1px solid var(--line);border-radius:999px;color:var(--text);font:400 .95rem var(--body);outline:none}.ask-form input:focus{border-color:var(--cyan)}.ask-chips{padding:0;border:0}.ask-out{display:flex;flex-direction:column;gap:12px;animation:swap .25s ease}.ask-verdict{padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--ink)}.ask-verdict b{font-family:var(--display)}.ask-verdict p{margin-top:4px;color:var(--muted)}.v-answer{border-color:#5be3a080}.v-answer b{color:#5be3a0}.v-escalate{border-color:#ffb45480}.v-escalate b{color:var(--amber)}.v-refuse{border-color:#ff6b6b80}.v-refuse b{color:#ff7b7b}.ask-bars{display:flex;flex-direction:column;gap:6px}.ask-bars li{display:grid;grid-template-columns:1fr 90px 36px;gap:10px;align-items:center;font-size:.8rem;color:var(--muted)}.ask-bars i{height:6px;border-radius:6px;background:var(--line);position:relative;overflow:hidden}.ask-bars i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:var(--w);background:linear-gradient(90deg,var(--cyan),var(--amber));border-radius:6px;transition:width .5s ease}.ask-bars em{font:500 .75rem var(--mono);font-style:normal;text-align:right}.pcard,.post-item,.skill-card,.timeline-item,.stat,.mail-form,.detail,.ask{position:relative}.pcard:before,.post-item:before,.skill-card:before,.timeline-item:after,.stat:before,.mail-form:before,.ask:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(360px circle at var(--mx, 50%) var(--my, 50%),rgba(77,212,255,.1),transparent 60%)}.pcard:hover:before,.post-item:hover:before,.skill-card:hover:before,.timeline-item:hover:after,.stat:hover:before,.mail-form:hover:before,.ask:hover:before{opacity:1}.cursor-glow{position:fixed;top:0;left:0;width:600px;height:600px;border-radius:50%;pointer-events:none;z-index:0;background:radial-gradient(circle,rgba(77,212,255,.07),transparent 65%);transition:transform .12s linear}main,.nav,.footer{position:relative;z-index:1}.nav{z-index:20}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:50;background:linear-gradient(90deg,var(--cyan),var(--amber));transform-origin:0 50%}@media (max-width: 560px){.cp-btn span{display:none}.play-grid{grid-template-columns:1fr}.ask-bars li{grid-template-columns:1fr 60px 32px}}.portrait-frame{aspect-ratio:4 / 5;background:radial-gradient(120% 90% at 50% 10%,rgba(255,180,84,.22),transparent 60%),radial-gradient(80% 60% at 30% 100%,rgba(255,120,90,.12),transparent 70%),var(--panel)}.pp-photo{object-position:center 30%}.hero h1{font-size:clamp(3.2rem,7.5vw,6.2rem)}.wave{display:inline-block;margin-left:.12em;font-size:.8em;transform-origin:70% 75%;animation:wave 2.4s ease-in-out .6s 2}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.portrait-frame{aspect-ratio:900 / 919}.pp-art{position:relative;width:100%;height:100%;border-radius:20px;overflow:hidden;transition:transform .15s ease-out;will-change:transform;animation:swap .3s ease}.pp-art img{width:100%;height:100%;object-fit:cover;display:block}.pp-shine{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(420px circle at var(--gx, 50%) var(--gy, 30%),rgba(255,255,255,.55),transparent 55%)}.pp-art img{animation:swap .35s ease}.np .pp-canvas{cursor:crosshair}.portrait-frame:has(.np){background:radial-gradient(90% 70% at 50% 30%,rgba(77,212,255,.14),transparent 65%),radial-gradient(70% 50% at 50% 100%,rgba(255,180,84,.1),transparent 70%),#070b16}.np-tag{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border-radius:999px;background:#0a0f1eb3;border:1px solid var(--line);font:500 .72rem var(--mono);color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.np-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 8px var(--amber)}.np-dot.ok{background:#5be3a0;box-shadow:0 0 8px #5be3a0}.pgrid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.pcard-simple{color:var(--text);font-size:1.08rem;line-height:1.5;max-width:46ch}.hero-fact{margin-top:14px;display:inline-flex;gap:8px;align-items:baseline;padding:8px 14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.92rem;max-width:56ch}.why{margin-top:22px;padding:18px 20px;border-radius:14px;background:var(--ink);border:1px solid rgba(255,180,84,.4)}.why h4{font-size:1.05rem;margin-bottom:8px;color:var(--amber)}.why p{max-width:68ch}.otc{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:center;padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:20px}.otc-text{font-size:1.15rem;line-height:1.6;max-width:52ch}.otc-chips{display:flex;flex-wrap:wrap;gap:10px}.otc-chips li{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--ink);border:1px solid var(--line);font-weight:500;transition:transform .15s,border-color .15s}.otc-chips li:hover{transform:translateY(-2px) rotate(-1deg);border-color:var(--amber)}@media (max-width: 760px){.otc{grid-template-columns:1fr;padding:20px}}[data-theme=light]{--ink: #f6f4ef;--panel: #ffffff;--panel-2: #eef1f7;--line: #e1e3ea;--text: #11162a;--muted: #5b6480;--cyan: #0a7fb5;--amber: #c26a00;color-scheme:light}[data-theme=light] body{background-image:radial-gradient(rgba(17,22,42,.07) 1px,transparent 1px)}[data-theme=light] .btn-primary,[data-theme=light] .tab.on,[data-theme=light] .toast{color:#fff}[data-theme=light] .btn-primary:hover{background:#086a98}[data-theme=light] .rail-period,[data-theme=light] .footer,[data-theme=light] .cp-group{color:#7a8299}[data-theme=light] .rail-item:hover,[data-theme=light] .pcard:hover{border-color:#b9c3d9}[data-theme=light] .card,[data-theme=light] .pcard,[data-theme=light] .post-item,[data-theme=light] .skill-card,[data-theme=light] .stat,[data-theme=light] .detail,[data-theme=light] .timeline-item,[data-theme=light] .otc,[data-theme=light] .ask,[data-theme=light] .mail-form,[data-theme=light] .contact{box-shadow:0 1px 2px #11162a0a,0 8px 24px #11162a0d}[data-theme=light] .portrait-frame{box-shadow:14px 14px 0 var(--panel-2),14px 14px 0 1px var(--line)}[data-theme=light] .cursor-glow{background:radial-gradient(circle,rgba(10,127,181,.06),transparent 65%)}[data-theme=light] .cp-backdrop{background:#11162a59}[data-theme=light] .term-in{color:#f2f2f3}[data-theme=light] .term-out{color:#9a9aa0}[data-theme=light] .term-top{background:#141415;border-color:#2c2c2f}[data-theme=light] .term-top span{color:#9a9aa0}[data-theme=light] .term,[data-theme=light] .term-chips{border-color:#2c2c2f}[data-theme=light] .term-chips button{background:#141415;border-color:#2c2c2f;color:#9a9aa0}.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.theme-btn:hover{color:var(--text);border-color:var(--cyan)}[data-theme=light] .np,[data-theme=light] .portrait-frame:has(.np){--text: #eaf0ff;--muted: #93a0c4;--line: #26314f;--cyan: #4dd4ff;--panel: #10172b}[data-theme=light] .portrait-frame:has(.np){border-color:#2c2c2f}[data-theme=light] .chip-status{color:#128150;border-color:#12815059}[data-theme=light] .eyebrow{color:var(--muted)}.pcard-stack{font:500 .82rem/1.55 var(--mono);color:var(--text)}.pcard-simple{font-size:1.02rem}.edu-wide{margin-bottom:14px}.xp-head{align-items:baseline;gap:12px;flex-wrap:wrap}.xp-head h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0;font-size:1.05rem}.xp-co{font-weight:700}.xp-dot{opacity:.45}.xp-role{font-weight:500;opacity:.85}.xp-loc{font-size:.78rem;font-weight:500;opacity:.6;margin-left:4px;padding:1px 8px;border:1px solid var(--line, rgba(127,127,127,.25));border-radius:999px}.xp-period{font-size:.8rem;opacity:.65;white-space:nowrap;margin-left:auto}.xp-stats{list-style:none;padding:0;margin:10px 0 8px;display:flex;flex-wrap:wrap;gap:8px}.xp-stats li{font-size:.8rem;padding:4px 10px;border-radius:8px;background:var(--chip, rgba(127,127,127,.1));opacity:.9}.xp-stats b{font-weight:700;margin-right:2px}.xp-bullets{margin:6px 0 10px}.xp-bullets li{margin:0 0 2px;padding-top:0;line-height:1.45}.xp-bullets>li+li{margin-top:2px}.xp-bullets{gap:6px}@media (min-width: 720px){#skills .skill-grid{grid-template-columns:repeat(2,1fr)}}.st-lede{color:var(--muted);margin:-6px 0 18px}.st-svg{fill:currentColor;flex:none;transition:fill .2s}.st-mono{display:inline-grid;place-items:center;flex:none;border-radius:5px;font:700 9px/1 ui-monospace,Menlo,monospace;background:color-mix(in srgb,var(--cyan) 18%,transparent);color:var(--text);text-transform:uppercase}.st-tile:hover .st-svg,.st-tile.on .st-svg,.st-pill:hover .st-svg,.st-logos li:hover .st-svg{fill:var(--brand)}.st-console{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel, rgba(255,255,255,.6));box-shadow:0 10px 40px -20px #00000040}.st-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);font:12px ui-monospace,Menlo,monospace;color:var(--muted)}.st-dots{display:flex;gap:6px}.st-dots i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.st-dots i:nth-child(2){background:#febc2e}.st-dots i:nth-child(3){background:#28c840}.st-count{margin-left:auto}.st-tabs{display:flex;gap:6px;padding:12px 14px 0;overflow-x:auto;scrollbar-width:none}.st-tabs button{flex:none;font:600 12.5px inherit;font-family:inherit;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.st-tabs button.on{background:var(--text);color:var(--bg, #fff);border-color:var(--text)}.st-body{padding:8px 14px 14px;display:grid;gap:10px}.st-glabel{font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin:8px 0 6px}.st-tiles{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:7px}.st-tile{display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 8px;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--text);font:500 13px inherit;font-family:inherit;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.st-tile:hover{transform:translateY(-2px);border-color:var(--cyan)}.st-tile.on{border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 25%,transparent)}.st-tile.used:after{content:"";width:6px;height:6px;border-radius:50%;background:#28c840;margin-left:2px}.st-foot{border-top:1px solid var(--line);padding:10px 14px;font:12.5px ui-monospace,Menlo,monospace;color:var(--text);min-height:40px;display:flex;align-items:center}.st-hint{color:var(--muted)}.st-hint:after{content:"▍";animation:stblink 1s steps(1) infinite;margin-left:2px}@keyframes stblink{50%{opacity:0}}.st-marquee{display:grid;gap:12px}.st-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:12px}.st-rlabel{margin:0;font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.st-track-wrap{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.st-track{list-style:none;margin:0;padding:4px 0;display:flex;gap:8px;width:max-content;animation:stscroll 40s linear infinite}.st-track.rev{animation-direction:reverse}.st-track-wrap:hover .st-track{animation-play-state:paused}@keyframes stscroll{to{transform:translate(-50%)}}.st-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--panel, rgba(255,255,255,.6));font-size:13.5px;white-space:nowrap}@media (max-width: 640px){.st-row{grid-template-columns:1fr;gap:4px}}@media (prefers-reduced-motion: reduce){.st-track{animation:none;flex-wrap:wrap;width:auto}}.st-bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.st-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--panel, rgba(255,255,255,.6))}.st-ai{grid-column:span 2;grid-row:span 2}.st-data,.st-backend,.st-voice,.st-frontend,.st-ship{grid-column:span 2}.st-card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.st-card-head h3{margin:0;font-size:1rem}.st-card-head span{font:700 12px ui-monospace,Menlo,monospace;color:var(--muted)}.st-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.st-logos li{display:grid;justify-items:center;gap:6px;padding:10px 4px;border-radius:10px;text-align:center;font-size:11.5px;line-height:1.2;transition:background .15s}.st-logos li:hover{background:color-mix(in srgb,var(--cyan) 10%,transparent)}@media (max-width: 760px){.st-bento{grid-template-columns:1fr}.st-bento>*{grid-column:auto!important;grid-row:auto!important}}.st-tile.static{cursor:default}.st-tile.static:hover{transform:translateY(-2px)}.st-tile.static:hover .st-svg{fill:var(--brand)}.st-proj{margin-top:4px}html,body{overflow-x:clip}.nav-mobile,.drawer,.drawer-scrim,.hero-lines,.xp-meta{display:none}.menu-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;box-shadow:0 2px 8px -4px #0003}@media (max-width: 760px){.nav{flex-wrap:nowrap}.nav-full{display:none!important}.nav-mobile{display:flex;align-items:center;gap:8px}.drawer-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f142359;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .25s;z-index:40}.drawer-scrim.open{opacity:1;pointer-events:auto}.drawer{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:min(78vw,300px);padding:18px 16px;background:var(--ink);border-right:1px solid var(--line);z-index:50;transform:translate(-102%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.drawer.open{transform:none;box-shadow:20px 0 60px -20px #00000059}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.drawer-brand{font:800 1.25rem var(--mono);letter-spacing:-.02em}.drawer-links{display:flex;flex-direction:column;gap:2px}.drawer-links a{padding:11px 12px;border-radius:10px;text-decoration:none;color:var(--muted);font-weight:500}.drawer-links a.on{color:var(--text);background:color-mix(in srgb,var(--cyan) 12%,transparent);border:1px solid color-mix(in srgb,var(--cyan) 30%,transparent)}.drawer-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.drawer-foot a{display:flex;align-items:center;gap:10px;padding:9px 12px;color:var(--muted);text-decoration:none;font-size:.92rem;border-radius:8px}.drawer-foot a:hover{color:var(--text)}.hero .portrait{order:2;width:min(100%,320px);justify-self:center;margin-top:8px}.hero .stats{display:none}.hero-lines{display:grid;gap:8px;margin:18px 0 6px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:12px var(--mono)}.hero-lines div{display:flex;gap:10px}.hero-lines dt{text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.hero-lines dd{margin:0;color:var(--text);font-weight:700;text-transform:uppercase}.hero h1{font-size:2.6rem}.hero-lede{font-size:1.25rem}.about-section h2,.section h2,section>h2{font-size:1.9rem}.page-head{padding:28px 0 18px}.page-head h1{font-size:2.4rem}.xp-head h3{font-size:1rem}.xp-head .xp-loc,.xp-head .xp-period{display:none}.xp-meta{display:block;margin:4px 0 0;width:100%;font:12px var(--mono);color:var(--muted)}.timeline-item{padding:18px 16px}}@media (max-width: 760px){.nav nav.drawer-links{display:flex;flex-direction:column;align-items:stretch;gap:2px}.nav nav.drawer-links a{display:block;text-align:left}.nav nav.drawer-links a.on:after{display:none}}@media (max-width: 760px){.nav>.nav-brand{display:none}.nav-mobile{width:100%;justify-content:space-between}.nav-mobile .menu-btn{order:-1}.nav-mobile .theme-btn,.nav-mobile .menu-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);box-shadow:0 2px 8px -4px #0003;padding:0}.nav-mobile .theme-btn svg,.nav-mobile .menu-btn svg{width:18px;height:18px}}.highlights{display:flex;flex-direction:column;gap:14px}.highlights li{position:relative;padding-left:22px;max-width:76ch}.highlights li:before{content:"";position:absolute;left:3px;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--cyan)}.highlights strong{font-family:var(--display);letter-spacing:-.01em}.detail-note{margin:12px 0 0;color:var(--muted);max-width:70ch}.detail-note strong{color:var(--text)}.detail-context{margin:10px 0 0;padding:6px 12px;display:inline-block;border:1px solid var(--line);border-radius:999px;font-size:.85rem;font-weight:600}.pcard-context{margin:0;font-weight:600;font-size:.9rem}.decisions{display:flex;flex-direction:column;gap:12px}.decisions li{padding:14px 18px;background:var(--ink);border:1px solid var(--line);border-radius:12px}.decisions h5{margin:0 0 6px;font:700 1rem var(--display);letter-spacing:-.01em}.decisions p{margin:0;color:var(--muted);max-width:70ch}.results{width:100%;border-collapse:collapse;font-size:.95rem;margin-top:14px}.results th,.results td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}.results th{width:34%;color:var(--muted);font-weight:500}.tech-groups{display:flex;flex-direction:column;gap:16px}.tech-group h5{margin:0 0 8px;font:600 .82rem var(--body);color:var(--muted)}.pgrid-3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.skill-line{color:var(--muted);font-size:.95rem;line-height:1.65;margin:0}.xp-home{display:flex;flex-direction:column;border-top:1px solid var(--line)}.xp-home li{display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:8px 32px;padding:20px 0;border-bottom:1px solid var(--line)}.xp-home h3{font-size:1.25rem}.xp-home-role{color:var(--muted);font-size:.88rem;margin:4px 0 0}.xp-home-line{margin:0;max-width:62ch}@media (max-width: 700px){.xp-home li{grid-template-columns:1fr}}.pcard-cat{margin:0;font:500 .78rem var(--mono);color:var(--muted)}.pcard-points{display:flex;flex-direction:column;gap:8px;margin:4px 0;padding-left:18px;list-style:disc;color:var(--text);font-size:.93rem;line-height:1.5}.pcard-points li::marker{color:var(--cyan)}.post-diagram{margin:18px 0}.nav-right,.nav-links{display:flex;align-items:center;gap:22px}.nav-item{display:contents}.nav-sub,.nav-social{display:none}.nav-side-foot{display:flex;align-items:center;gap:12px}.nav-tools{display:flex;align-items:center;gap:10px}@media (min-width: 900px){body{padding-left:250px}.nav{position:fixed;top:0;left:0;bottom:0;width:250px;max-width:none;margin:0;padding:26px 16px 20px;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:26px;background:var(--ink);border-right:1px solid var(--line);overflow-y:auto;z-index:30}.nav-brand{padding:0 12px;font-size:1.3rem}.nav-right{flex:1;flex-direction:column;align-items:stretch;gap:0;min-height:0}.nav nav.nav-links{flex-direction:column;align-items:stretch;gap:2px;overflow:visible;max-width:none}.nav-item{display:flex;flex-direction:column;align-items:stretch;gap:2px}.nav nav a:not(.btn),.nav-links>.nav-item>a{display:block;padding:10px 12px;border-radius:10px;font-weight:500;text-decoration:none;color:var(--muted)}.nav nav a.on:not(.btn):after{display:none}.nav-links a.on{color:var(--text);background:color-mix(in srgb,var(--cyan) 12%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cyan) 28%,transparent)}.nav-sub{display:flex;flex-direction:column;margin:2px 0 6px 18px;padding-left:10px;border-left:1px solid var(--line)}.nav-sub a{padding:6px 10px;font-size:.88rem;color:var(--muted);text-decoration:none;border-radius:8px}.nav-sub a:hover{color:var(--text)}.nav-side-foot{margin-top:auto;flex-direction:column;align-items:stretch;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.nav-social{display:flex;flex-direction:column;gap:2px}.nav-social a{display:flex;align-items:center;gap:10px;padding:8px 12px;color:var(--muted);text-decoration:none;font-size:.92rem;border-radius:8px}.nav-social a:hover{color:var(--text)}.nav-tools{padding:0 12px}main,.footer{width:min(1100px,100% - 64px)}}.st-logo{flex:none;display:block}.st-svg{fill:var(--brand)!important}[data-theme=dark] .st-logo-dark{filter:invert(1)}.st-tiles.st-proj{gap:8px}.st-tile.static{padding:7px 13px 7px 10px;gap:8px;border-radius:12px;background:var(--panel);border-color:var(--line);font-size:13.5px;font-weight:600;box-shadow:0 1px 2px #11162a0d;transition:transform .15s,box-shadow .15s,border-color .15s}.st-tile.static:hover{transform:translateY(-2px);box-shadow:0 6px 16px -8px #11162a40;border-color:color-mix(in srgb,var(--text) 25%,var(--line))}.pcard .st-tiles{margin:6px 0 4px}.detail-foot .st-tiles{margin:0}.edu-loc{display:flex;align-items:center;gap:6px;margin:4px 0 16px;color:var(--muted);font-size:.95rem}.edu-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.edu-tile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--ink);border:1px solid var(--line);border-radius:12px}.edu-tile span{font:500 .75rem var(--mono);color:var(--muted)}.edu-tile b{font:700 1rem var(--display);letter-spacing:-.01em;color:var(--text)}.st-console{border-radius:20px}.st-console .st-bar{padding:16px 26px;font-size:13px}.st-console .st-tabs{padding:22px 26px 8px;gap:10px}.st-console .st-tabs button{padding:10px 18px;font-size:14.5px}.st-console .st-body{padding:18px 26px 28px;min-height:230px;display:flex;flex-direction:column;gap:22px}.st-console .st-glabel{margin:0 0 12px;font-size:12px}.st-console .st-tiles{gap:14px}.st-console .st-tile{padding:14px 20px 14px 16px;gap:12px;font-size:15.5px;font-weight:600;border-radius:14px;min-height:58px;background:var(--panel)}.st-console .st-logo,.st-console .st-svg{width:28px;height:28px}.st-console .st-mono{width:28px!important;height:28px!important;font-size:11px;border-radius:7px}.st-console .st-tile.used:after{width:8px;height:8px}.st-console .st-foot{padding:18px 26px;font-size:14px}@media (max-width: 640px){.st-console .st-tabs,.st-console .st-body,.st-console .st-bar,.st-console .st-foot{padding-left:16px;padding-right:16px}.st-console .st-tile{padding:11px 14px 11px 12px;font-size:14px}}.pcard-teaser{margin:0;color:var(--text);font-size:.95rem;line-height:1.5}.pgrid.pgrid-list{grid-template-columns:1fr;gap:18px}.pcard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.pcard-links-top{display:flex;gap:8px;flex-wrap:wrap;margin:0}.pcard-wide{padding:26px 30px}.pcard-wide .pcard-sum{max-width:75ch}.pcard-wide .pcard-points{max-width:80ch}@media (max-width: 640px){.pcard-wide{padding:20px 18px}}.about-hero-tabs{padding-top:32px}.about-hero-tabs .about-jump{margin:0}.edu-loc{font-size:1.15rem;font-weight:600;color:var(--text);margin:6px 0 20px;gap:8px}.edu-loc svg{width:18px;height:18px;color:var(--cyan)}.edu-wide h3{font-size:1.5rem}.expertise{display:flex;flex-direction:column;border-top:1px solid var(--line)}.expertise-row{display:grid;grid-template-columns:minmax(170px,230px) 1fr;gap:10px 32px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}.expertise-row h3{font-size:1.2rem;padding-top:6px}.expertise-also{margin:12px 0 0;color:var(--muted);font-size:.92rem}@media (max-width: 700px){.expertise-row{grid-template-columns:1fr}}.section-lede{margin:10px 0 0;color:var(--muted);max-width:62ch}.row-head .section-lede{margin-top:8px}.pgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.pgrid-3 .pcard,.pgrid-list .pcard{display:flex;flex-direction:column}.pcard-cat{margin:0 0 4px;font:500 .78rem var(--mono);color:var(--muted)}.pcard h3{margin:0 0 8px}.pcard-desc{margin:0 0 12px;color:var(--text);font-size:.98rem;line-height:1.55}.pcard-metric-line{margin:0 0 8px;color:var(--text);font-weight:600;font-size:.92rem}.pcard-attr{margin:0 0 8px;color:var(--muted);font-size:.85rem}.pcard-tech{margin:0 0 16px;color:var(--muted);font:500 .85rem var(--mono)}.pcard .pcard-links{margin-top:auto;display:flex;flex-wrap:wrap;gap:8px}.pcard-wide .pcard-desc{max-width:80ch}@media (max-width: 960px){.pgrid-3{grid-template-columns:1fr}}.xp-home-date{margin:2px 0 0;color:var(--muted);font-size:.82rem}.skills-text{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:22px;border-top:1px solid var(--line)}.skills-text-group{padding:22px 26px 22px 0;border-bottom:1px solid var(--line)}.skills-text-group:nth-child(odd){border-right:1px solid var(--line)}.skills-text-group:nth-child(2n){padding-left:26px}.skills-text-group h3{font-size:1.05rem;font-weight:700;margin-bottom:8px}.skills-text-group p{margin:0;color:var(--muted);font-weight:400;line-height:1.7}@media (max-width: 700px){.skills-text{grid-template-columns:1fr}.skills-text-group,.skills-text-group:nth-child(2n){padding:18px 0;border-right:0}}.beyond h2{font-size:1.5rem;letter-spacing:-.02em}.beyond .otc-text{margin:10px 0 0;max-width:62ch;color:var(--muted)}.beyond-links{margin:10px 0 0;color:var(--muted);font-size:.88rem}.contact-links-small a{font-size:.85rem}.edu-single .edu-degree{margin:0 0 4px;font-weight:600;color:var(--text)}.edu-awards{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.edu-awards li{display:flex;gap:8px;align-items:flex-start;color:var(--muted);line-height:1.5}.edu-awards svg{flex:none;margin-top:3px;color:var(--cyan)}.edu-awards strong{color:var(--text)}.st-concept{flex:none;color:var(--muted)}.expertise-row .st-tile.static{font-size:14px}.anchor{display:block;height:0;scroll-margin-top:90px}.rail-inline{margin:8px 0 14px;min-width:0}.exp-stack{display:grid;gap:18px;min-width:0}
