:root{--bg:#08090a;--bg-band:#0e1013;--surface:#121418;--surface-inset:#171a1f;--border:#ffffff14;--border-soft:#ffffff0d;--border-hi:#ffffff24;--text:#f4f5f6;--text-body:#9ba1a9;--text-muted:#848b94;--text-marquee:#dfe3e8;--accent:#5b9cff;--accent-hover:#7db0ff;--accent-soft:#5b9cff24;--accent-line:#5b9cff52;--on-accent:#08090a;--font-display:Geist, system-ui, sans-serif;--font-body:Geist, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--container:1180px;--radius-sm:7px;--radius:10px;--nav-height:62px;--anchor-offset:104px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(900px 520px at 50% -8%,#5b9cff1a,#0000 70%);background-attachment:fixed;margin:0;overflow-x:hidden}a{color:var(--text);text-decoration:none}a:hover{color:var(--accent)}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}section[id],[data-anchor]{scroll-margin-top:var(--anchor-offset)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important}[data-marquee]{animation:22s linear infinite om-marquee!important}}@keyframes om-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes om-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes om-pulse{0%{box-shadow:0 0 #5b9cff8c}70%{box-shadow:0 0 0 6px #5b9cff00}to{box-shadow:0 0 #5b9cff00}}@keyframes om-modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}@keyframes om-backdrop-in{0%{opacity:0}to{opacity:1}}.reveal{opacity:0;transform:translateY(14px)}.reveal.is-visible{opacity:1;transition:opacity .62s cubic-bezier(.16,1,.3,1),transform .62s cubic-bezier(.16,1,.3,1);transform:none}.grid-backdrop{pointer-events:none;z-index:0;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:56px 56px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(90% 65% at 50% 0,#000,#0000 78%);mask-image:radial-gradient(90% 65% at 50% 0,#000,#0000 78%)}.page{z-index:1;max-width:var(--container);margin:0 auto;padding:0 24px;position:relative}.skip-link{z-index:200;background:var(--accent);color:var(--on-accent);font-family:var(--font-mono);border-radius:0 0 var(--radius-sm) 0;padding:9px 15px;font-size:11.5px;position:absolute;top:0;left:-9999px}.skip-link:focus{color:var(--on-accent);left:0}.section{gap:21px;padding-bottom:64px;display:grid}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;color:var(--accent);font-size:11.5px}.section-title{font-family:var(--font-display);letter-spacing:-.032em;text-wrap:pretty;max-width:22ch;margin:0;font-size:clamp(26px,3.1vw,34px);font-weight:700;line-height:1.1}.divider{align-items:center;gap:14px;padding:0 0 50px;display:flex}.divider span:first-child,.divider span:last-child{flex:1;height:1px;display:block}.divider span:first-child{background:linear-gradient(90deg,#0000,#5b9cff4d)}.divider span:last-child{background:linear-gradient(90deg,#5b9cff4d,#0000)}.divider-diamond{background:var(--accent);opacity:.7;width:5px;height:5px;display:block;transform:rotate(45deg)}.navbar{width:calc(100% - 32px);max-width:var(--container);z-index:60;border-radius:var(--radius);border:1px solid var(--border);-webkit-backdrop-filter:blur(22px)saturate(1.35);background:#07090ed1;justify-content:space-between;align-items:center;gap:16px;padding:8px 12px 10px;display:flex;position:fixed;top:14px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 18px 55px -34px #000,inset 0 1px #ffffff09}.navbar-brand{align-items:center;gap:9px;display:flex}.navbar-mark{border:1px solid var(--accent-line);width:25px;height:25px;font-family:var(--font-mono);color:var(--accent);background:#5b9cff24;border-radius:999px;place-items:center;font-size:11px;display:grid}.navbar-handle{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-body);font-size:11.5px}.navbar-links{font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:3px;font-size:11px;display:flex}.navbar-link{border-radius:var(--radius-sm);color:var(--text-muted);background:0 0;padding:6px 9px;transition:color .16s ease-out,background .16s ease-out}.navbar-link:hover{color:var(--text);background:#ffffff12}.navbar-link.is-active{color:var(--text);background:#5b9cff1a}.navbar-lang{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background:0 0;align-items:center;height:30px;padding:0 9px;transition:border-color .16s ease-out,opacity .16s ease-out;display:inline-flex}.navbar-lang svg{opacity:.85;transition:opacity .16s ease-out}.navbar-lang:hover{border-color:var(--accent-line)}.navbar-lang:hover svg{opacity:1}.navbar-progress{background:#ffffff1a;height:2px;position:absolute;bottom:0;left:0;right:0}.navbar-progress>div{background:var(--accent);height:100%;transition:width 90ms linear}.hero{text-align:center;justify-items:center;gap:18px;padding:clamp(88px,11vh,124px) 0 72px;scroll-margin-top:0;display:grid}.hero-portrait{aspect-ratio:1;place-items:center;width:clamp(148px,17vw,184px);margin-bottom:26px;display:grid;position:relative}.hero-portrait-glow{filter:blur(2px);pointer-events:none;background:radial-gradient(circle,#5b9cff2e,#0000 64%),radial-gradient(circle at 50% 62%,#4a6e9e24,#0000 70%);border-radius:999px;position:absolute;inset:-22%}.hero-portrait-ring{border:5px solid var(--accent-line);background:#101721;border-radius:999px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.hero-portrait-img{filter:saturate(.9)contrast(1.04);width:130%;height:auto;margin-top:-6%;margin-left:-15%;display:block}.hero-portrait-fallback{aspect-ratio:1;border:4px solid var(--accent-line);width:100%;font-family:var(--font-display);letter-spacing:-.04em;color:var(--accent);background:#101721;border-radius:999px;place-items:center;font-size:32px;font-weight:700;display:grid;position:relative}.hero-pill{background:var(--surface);border:1px solid var(--accent-soft);font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-body);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:11px;display:inline-flex}.hero-dot{background:var(--accent);border-radius:999px;width:6px;height:6px;animation:2.4s ease-out infinite om-pulse;display:block}.hero-intro{justify-items:center;gap:10px;display:grid}.hero-prompt{font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);align-items:center;gap:8px;font-size:12px;display:flex}.hero-prompt span:nth-child(2){color:var(--text-body)}.hero-cursor{background:var(--accent);width:7px;height:14px;animation:1.1s step-end infinite om-blink;display:block}.hero-title{font-family:var(--font-display);letter-spacing:-.036em;text-wrap:pretty;max-width:14ch;margin:0;font-size:clamp(38px,4.7vw,58px);font-weight:700;line-height:1.04}.hero-sub{max-width:56ch;color:var(--text-body);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:10px;padding-top:2px;display:flex}.hero-socials{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:4px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;align-items:center;height:40px;padding:0 18px;font-size:13.5px;transition:background .16s ease-out,border-color .16s ease-out,color .16s ease-out;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);font-weight:600}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.btn-ghost{border:1px solid var(--border);color:var(--text);background:0 0}.btn-ghost:hover{border-color:var(--accent-line);color:var(--accent)}.pill-link{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--border);color:var(--text-body);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:11px;transition:border-color .16s ease-out,color .16s ease-out;display:inline-flex}.pill-link:hover{border-color:var(--accent-line);color:var(--accent)}.marquee{background:var(--bg-band);border-top:1px solid #5b9cff47;border-bottom:1px solid #5b9cff47;width:100vw;max-width:100vw;margin-bottom:76px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:15px 0;position:relative;overflow:hidden;box-shadow:inset 0 0 60px -30px #5b9cff59}.marquee-track{will-change:transform;width:max-content;animation:22s linear infinite om-marquee;display:flex}.marquee-copy{align-items:center;gap:22px;padding-right:22px;display:flex}.marquee-item{white-space:nowrap;align-items:center;gap:22px;display:flex}.marquee-token{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--text-marquee);font-size:18px;font-weight:700}.marquee-sep{font-family:var(--font-mono);color:var(--accent);font-size:15px;font-weight:700}.terminal-dots{gap:6px;display:flex}.terminal-dots span{background:#2b3542;border-radius:999px;width:8px;height:8px;display:block}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.project-card{border-radius:var(--radius);cursor:pointer;text-align:left;background:var(--surface);border:1px solid var(--border);min-height:250px;color:inherit;font:inherit;flex-direction:column;gap:12px;padding:22px;transition:border-color .2s ease-out,transform .2s ease-out;display:flex}.project-card:hover{border-color:#5b9cff8c;transform:translateY(-3px)}.project-card.is-featured{background:linear-gradient(160deg, #5b9cff12, var(--surface) 55%);border-color:#5b9cff6b}.project-badge{align-items:center;gap:9px;display:flex}.project-badge span:first-child{background:var(--accent);border-radius:999px;width:6px;height:6px;display:block;box-shadow:0 0 0 4px #5b9cff24}.project-badge-label{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:10.5px}.project-name{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:20px;font-weight:700;line-height:1.05}.project-card.is-featured .project-name{font-size:25px}.project-desc{color:var(--text-body);text-wrap:pretty;max-width:48ch;margin:0;font-size:14px;line-height:1.65}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag{font-family:var(--font-mono);color:var(--accent);background:#5b9cff14;border:1px solid #5b9cff47;border-radius:999px;padding:4px 10px;font-size:11px}.tag-neutral{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--border);color:var(--text-body);border-radius:999px;padding:4px 10px;font-size:11px}.project-foot{border-top:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:6px;display:flex}.project-host{font-family:var(--font-mono);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.project-open{font-family:var(--font-display);color:var(--accent);white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;font-weight:700;display:inline-flex}.demo-backdrop{z-index:120;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#030509d1;place-items:center;padding:clamp(16px,4vw,48px);animation:.18s ease-out om-backdrop-in;display:grid;position:fixed;inset:0}.demo-window{background:var(--surface);border:1px solid #5b9cff4d;border-radius:12px;flex-direction:column;width:min(100%,1040px);height:min(72vh,660px);animation:.22s cubic-bezier(.16,1,.3,1) om-modal-in;display:flex;overflow:hidden;box-shadow:0 40px 120px #0009}.demo-bar{border-bottom:1px solid var(--border);align-items:center;gap:11px;padding:9px 13px;display:flex}.demo-url{min-width:0;font-family:var(--font-mono);color:var(--text-muted);background:var(--surface-inset);text-overflow:ellipsis;white-space:nowrap;border:1px solid #ffffff1f;border-radius:999px;flex:1;padding:5px 11px;font-size:11px;overflow:hidden}.demo-open-tab{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);white-space:nowrap;font-size:11px}.demo-close{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-body);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff38;border-radius:999px;padding:5px 12px;font-size:11px;transition:color .16s ease-out,border-color .16s ease-out}.demo-close:hover{color:var(--text);border-color:#ffffff73}.demo-frame{--demo-scale:.75;background:#0b1018;flex:1;min-height:0;position:relative;overflow:hidden}.demo-fallback{text-align:center;font-family:var(--font-mono);color:var(--text-muted);place-items:center;padding:24px;font-size:11.5px;display:grid;position:absolute;inset:0}.demo-frame iframe{width:calc(100% / var(--demo-scale));height:calc(100% / var(--demo-scale));transform:scale(var(--demo-scale));transform-origin:0 0;background:#fff;border:0;display:block;position:relative}.timeline{border-left:1px solid var(--border);gap:6px;margin-left:6px;padding-left:26px;display:grid;position:relative}.timeline-entry{padding:16px 0;position:relative}.timeline-node{background:var(--bg);border:1px solid var(--accent-line);border-radius:999px;width:11px;height:11px;display:block;position:absolute;top:22px;left:-32px}.timeline-body{gap:9px;display:grid}.timeline-date{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);font-size:11px}.timeline-role{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:17px;font-weight:700}.timeline-org{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.timeline-desc{max-width:64ch;color:var(--text-body);text-wrap:pretty;margin:0;font-size:14px;line-height:1.7}.bento-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);align-content:start;gap:10px;min-height:172px;padding:20px;transition:border-color .2s ease-out,background .2s ease-out;display:grid}.bento-card:hover{border-color:var(--border-hi);background:var(--surface-inset)}.bento-head{align-items:center;gap:9px;display:flex}.bento-logo{border:1px solid var(--border-hi);background:#ffffffe6;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;display:grid;overflow:hidden}.bento-logo img{object-fit:contain;width:22px;height:22px;display:block}.bento-logo.is-mono{background:var(--accent-soft);border-color:var(--accent-line);font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);font-size:10px}.bento-org{min-width:0;font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);flex:1;font-size:11px}.bento-period{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.bento-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:16.5px;font-weight:700;line-height:1.25}.bento-desc{color:var(--text-body);text-wrap:pretty;margin:0;font-size:13.5px;line-height:1.65}.bento-rule{background:linear-gradient(90deg, var(--accent-line), transparent);height:1px;display:block}.stack-tag{font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-body);background:#ffffff08;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:11px;transition:border-color .18s ease-out,color .18s ease-out;display:inline-flex}.stack-tag:hover{border-color:var(--accent-line);color:var(--text)}.stack-tag img{flex:none;display:block}.stack-card:hover{border-color:color-mix(in srgb, var(--group-accent) 40%, var(--border))}.stack-card .bento-rule{background:linear-gradient(90deg, color-mix(in srgb, var(--group-accent) 60%, transparent), transparent)}.stack-card .stack-tag{color:var(--group-accent);border-color:color-mix(in srgb, var(--group-accent) 26%, var(--border));background:color-mix(in srgb, var(--group-accent) 7%, transparent)}.stack-card .stack-tag:hover{border-color:color-mix(in srgb, var(--group-accent) 62%, transparent);color:var(--group-accent)}.contact{text-align:center;justify-items:center;gap:21px;padding-bottom:72px;display:grid}.contact-caret{font-family:var(--font-mono);color:var(--accent);font-size:32px;line-height:1}.contact-title{font-family:var(--font-display);letter-spacing:-.032em;margin:0;font-size:clamp(26px,3.2vw,36px);font-weight:700;line-height:1.08}.contact-sub{max-width:50ch;color:var(--text-body);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.7}.contact-pills{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.contact-pill{border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--text-body);border-radius:999px;align-items:center;gap:8px;padding:6px 13px;font-size:11px;display:inline-flex}.contact-cards{text-align:left;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;width:100%;padding-top:6px;display:grid}.contact-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);align-items:center;gap:12px;padding:17px;transition:border-color .2s ease-out,transform .2s ease-out;display:flex}.contact-card:hover{border-color:var(--accent-line);transform:translateY(-2px)}.contact-icon{background:var(--accent-soft);border:1px solid var(--accent-line);width:36px;height:36px;color:var(--accent);border-radius:999px;flex:none;place-items:center;display:grid}.contact-pill.is-live{border-color:var(--accent-line)}.contact-dot{background:var(--accent);border-radius:999px;width:7px;height:7px;display:block}.contact-meta{gap:3px;min-width:0;display:grid}.contact-meta-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);font-size:11px}.contact-meta-value{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.contact-actions{flex-wrap:wrap;justify-content:center;gap:10px;padding-top:4px;display:flex}.footer{border-top:1px solid var(--border);font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:22px 0 40px;font-size:11px;display:flex}.footer nav{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:16px;display:flex}.footer nav a{color:var(--text-muted);align-items:center;gap:6px;display:inline-flex}.footer nav a:hover{color:var(--accent)}.footer-note{color:var(--text-muted)}.boot{min-height:100vh;font-family:var(--font-mono);color:var(--text-muted);text-align:center;place-items:center;padding:24px;font-size:12.5px;display:grid}.boot-error{justify-items:center;gap:14px;max-width:46ch;display:grid}@media (width<=900px){.hero-portrait{width:clamp(132px,20vw,156px)}.demo-frame{--demo-scale:.9}}@media (width<=720px){:root{--anchor-offset:92px}.page{padding:0 16px}.navbar{gap:8px;width:calc(100% - 20px);padding:7px 8px 9px}.navbar-links{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;flex:auto;gap:1px;min-width:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 10px calc(100% - 30px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 10px calc(100% - 30px),#0000 100%)}.navbar-links::-webkit-scrollbar{display:none}.navbar-link{white-space:nowrap;flex:none;padding:6px}.navbar-handle,.navbar-logo{display:none}.navbar-links{letter-spacing:.02em;font-size:10px}.navbar-lang{flex:none;height:28px;padding:0 9px}.hero{padding:clamp(76px,13vh,96px) 0 56px}.section{padding-bottom:48px}.divider{padding-bottom:34px}.demo-window{height:min(76vh,600px)}.demo-frame{--demo-scale:1}}@media (width<=480px){.hero-portrait{width:clamp(120px,34vw,140px)}.hero-title{font-size:clamp(34px,12vw,46px)}.hero-actions{width:100%}.hero-actions>*{flex:auto;justify-content:center}.section-title{font-size:clamp(22px,6.4vw,26px)}.bento-card,.project-card{padding:16px}.timeline-entry{padding-left:22px}}:root{--container:880px}.section{text-align:center;gap:24px;padding-bottom:96px}.section-title{margin-inline:auto}.project-card{text-align:center;align-items:center}.project-badge,.project-foot,.project-card .tag-row{justify-content:center}.project-foot{border-top:1px solid var(--border-soft);width:100%}.timeline{gap:6px}.timeline-entry{padding:18px 0}.timeline-body{text-align:left}.timeline-desc{max-width:64ch;margin-inline:0}.timeline .tag-row{justify-content:flex-start}.timeline-node{display:none}.timeline-role{position:relative}.timeline-role:before{content:"";background:var(--bg);border:1px solid var(--accent-line);border-radius:999px;width:11px;height:11px;position:absolute;top:.5lh;left:-32px;transform:translateY(-50%)}.bento-card{text-align:center}.bento-head{justify-content:center}.bento-org{flex:none}.bento-rule{background:linear-gradient(90deg, transparent, var(--accent-line), transparent);width:62px;margin-inline:auto}.bento-card .tag-row{justify-content:center}.contact-cards{text-align:center}.contact-card{justify-content:center}.footer{text-align:center;flex-direction:column;justify-content:center;gap:16px}@media (width<=720px){.section{padding-bottom:48px}}
