:root{--bg:#0f172a;--panel:#0f172ab8;--panel-strong:#1e293b75;--accent:#5eead4;--accent-soft:#5eead41a;--warm:#f7d58a;--text:#e2e8f0;--muted:#94a3b8;--muted-dark:#64748b;--line:#94a3b829;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#5eead48c #0f172ab8;scrollbar-width:thin}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.65}body::-webkit-scrollbar{width:12px}body::-webkit-scrollbar-track{background:#0f172ae6;border-left:1px solid #94a3b81a}body::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), #38bdf8);border:3px solid #0f172ae6;border-radius:999px}body::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, #99f6e4, var(--accent))}body::selection{color:#042f2e;background:var(--accent)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}h1,h2,h3,p{margin-top:0}.page-shell{width:min(1280px,100% - 48px);margin:0 auto;padding-bottom:5rem}.scroll-rail-nav{z-index:30;gap:.58rem;display:grid;position:fixed;top:50%;right:1.15rem;transform:translateY(-50%)}.scroll-rail-nav:before{content:"";background:#94a3b829;width:1px;position:absolute;top:-1rem;bottom:-1rem;left:50%;transform:translate(-50%)}.scroll-rail-nav:after{content:"";width:1px;height:calc(var(--scroll-progress,0%) + 2rem);background:linear-gradient(180deg, var(--accent), #38bdf859);max-height:calc(100% + 2rem);transition:height .12s linear;position:absolute;top:-1rem;left:50%;transform:translate(-50%)}.scroll-rail-nav a{z-index:1;background:var(--bg);border:1px solid #94a3b861;border-radius:999px;width:.58rem;height:.58rem;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;position:relative}.scroll-rail-nav a:after{content:attr(data-label);color:var(--text);font-family:var(--font-mono);white-space:nowrap;opacity:0;pointer-events:none;background:#0f172af0;border:1px solid #94a3b829;border-radius:999px;padding:.22rem .46rem;font-size:.65rem;transition:opacity .16s,transform .16s;position:absolute;top:50%;right:1.15rem;transform:translate(6px,-50%)}.scroll-rail-nav a:hover,.scroll-rail-nav a:focus-visible,.scroll-rail-nav a[data-active=true]{border-color:var(--accent);background:var(--accent);outline:none;transform:scale(1.2);box-shadow:0 0 0 5px #5eead41f}.scroll-rail-nav a:hover:after,.scroll-rail-nav a:focus-visible:after{opacity:1;transform:translateY(-50%)}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f172af5,#0f172ac7 72%,#0f172a00);grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;padding:1.25rem 0;display:grid;position:sticky;top:0}.logo-mark{border:1px solid var(--line);background:#0206175c;border-radius:12px;justify-content:center;align-items:center;width:2.55rem;height:2.55rem;transition:border-color .18s,transform .18s,background .18s,box-shadow .18s;display:inline-flex}.logo-mark img{width:1.6rem;height:1.6rem}.logo-mark:hover,.logo-mark:focus-visible{background:var(--accent-soft);border-color:#5eead47a;outline:none;transform:translateY(-3px)rotate(-2deg);box-shadow:0 16px 34px #2dd4bf1f}.top-menu{justify-content:center;gap:clamp(1rem,3vw,2.1rem);display:flex}.top-menu a{color:var(--muted);font-family:var(--font-mono);font-size:.74rem;transition:color .18s,transform .18s;position:relative}.top-menu a:after{content:"";background:var(--accent);transform-origin:50%;height:1px;transition:transform .16s;position:absolute;bottom:-.45rem;left:0;right:0;transform:scaleX(0)}.top-menu a:hover,.top-menu a:focus-visible,.top-menu a[data-active=true]{color:var(--text);outline:none;transform:translateY(-2px)}.top-menu a:hover:after,.top-menu a:focus-visible:after,.top-menu a[data-active=true]:after{transform:scaleX(1)}.language-switch{border:1px solid var(--line);min-width:2.4rem;min-height:2.1rem;color:var(--muted);cursor:pointer;font-family:var(--font-mono);background:#02061738;border-radius:999px;font-size:.72rem;transition:color .18s,border-color .18s,background .18s,transform .18s}.language-switch:hover,.language-switch:focus-visible{color:var(--accent);background:var(--accent-soft);border-color:#5eead47a;outline:none;transform:translateY(-1px)}.hero-section{flex-direction:column;justify-content:flex-start;min-height:min(560px,100vh - 72px);padding:clamp(3rem,5.8vw,4.8rem) 0 clamp(3.4rem,6vw,4.8rem);display:flex}.hero-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:center;gap:clamp(2.6rem,6vw,5.5rem);display:grid}.hero-copy{max-width:820px}.hero-kicker{color:var(--accent);font-family:var(--font-mono);margin-bottom:1.2rem;font-size:.78rem}.hero-name{max-width:680px;color:var(--text);letter-spacing:0;gap:.16em;margin-bottom:1.05rem;font-size:clamp(2.75rem,5.8vw,4.85rem);line-height:.98;display:grid}.hero-name span{display:block}.hero-section h2{color:#cbd5e1;letter-spacing:0;margin-bottom:1.7rem;font-size:clamp(1.05rem,1.85vw,1.38rem);font-weight:700;line-height:1.2}.intro-copy{max-width:700px;color:var(--muted);margin-bottom:0;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.68}.hero-pills{flex-wrap:wrap;gap:.52rem;margin-top:1.25rem;display:flex}.hero-pills span{color:var(--accent);font-family:var(--font-mono);background:#5eead40e;border:1px solid #5eead429;border-radius:999px;padding:.3rem .58rem;font-size:.68rem;transition:border-color .18s,background .18s,transform .18s}.hero-pills span:hover{background:#5eead41a;border-color:#5eead46b;transform:translateY(-2px)}.hero-aside{gap:.9rem;display:grid}.hero-snapshot{border:1px solid var(--line);background:linear-gradient(#0f172a7a,#0f172a33);border-radius:16px;gap:.72rem;padding:1rem;display:grid;position:relative;box-shadow:inset 0 1px #e2e8f00a}.hero-snapshot:before{content:"";z-index:-1;border-radius:inherit;opacity:0;background:linear-gradient(135deg,#5eead438,#0000 38%,#38bdf81f);transition:opacity .18s;position:absolute;inset:-1px}.hero-snapshot:hover:before{opacity:1}.hero-snapshot>p{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;margin-bottom:.1rem;font-size:.7rem}.hero-snapshot a{border-top:1px solid #94a3b81f;gap:.16rem;padding-top:.72rem;transition:transform .18s;display:grid}.hero-snapshot a:hover,.hero-snapshot a:focus-visible{outline:none;transform:translate(6px)}.hero-snapshot strong{color:var(--text);font-size:.93rem;line-height:1.25}.hero-snapshot span{color:var(--muted);font-family:var(--font-mono);font-size:.68rem}.hero-note-card{background:linear-gradient(135deg,#5eead417,#0000 44%),#0f172a57;border:1px solid #94a3b824;border-radius:16px;gap:.28rem;padding:.95rem 1rem;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid}.hero-note-card span{color:var(--warm);font-family:var(--font-mono);text-transform:uppercase;font-size:.68rem}.hero-note-card strong{color:var(--text);font-size:.98rem;line-height:1.35}.hero-note-card em{color:var(--accent);font-family:var(--font-mono);align-items:center;gap:.35rem;font-size:.72rem;font-style:normal;display:inline-flex}.hero-note-card em svg,.link-arrow{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:.95rem;height:.95rem;transition:transform .16s}.hero-note-card:hover em svg,.hero-note-card:focus-visible em svg,a:hover .link-arrow,a:focus-visible .link-arrow{transform:translate(3px)}.hero-note-card:hover,.hero-note-card:focus-visible{border-color:#5eead459;outline:none;transform:translateY(-4px);box-shadow:0 18px 42px #2dd4bf1a}.hero-footer{flex-wrap:wrap;align-items:center;gap:1.35rem;margin-top:2.25rem;display:flex}.hero-actions{flex-wrap:wrap;gap:.85rem;display:flex}.hero-actions a{min-height:44px;color:var(--accent);font-family:var(--font-mono);border:1px solid #5eead457;border-radius:999px;justify-content:center;align-items:center;padding:.72rem 1.05rem;font-size:.78rem;transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s;display:inline-flex;position:relative;overflow:hidden}.hero-actions a:before{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);transition:transform .42s;position:absolute;inset:0;transform:translate(-120%)}.hero-actions a:first-child{background:var(--accent);color:#06201f}.hero-actions a:hover,.hero-actions a:focus-visible{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);outline:none;transform:translateY(-3px);box-shadow:0 14px 32px #2dd4bf1f}.hero-actions a:hover:before,.hero-actions a:focus-visible:before{transform:translate(120%)}.social-rail{align-items:center;gap:.75rem;display:flex}.social-rail a,.contact-actions a{color:var(--muted);justify-content:center;align-items:center;transition:color .18s,background .18s,box-shadow .18s,transform .18s;display:inline-flex}.social-rail a{border-radius:999px;width:2.1rem;height:2.1rem}.social-rail svg{fill:currentColor;width:1.08rem;height:1.08rem}.social-rail a:hover,.social-rail a:focus-visible,.contact-actions a:hover,.contact-actions a:focus-visible{color:var(--accent);background:var(--accent-soft);outline:none;transform:translateY(-3px);box-shadow:0 0 0 1px #5eead433,0 12px 28px #2dd4bf1a}.content-panel{gap:clamp(4.5rem,8vw,7rem);display:grid}.section{margin-bottom:0;scroll-margin-top:6.5rem}.section-kicker{color:var(--accent);font-family:var(--font-mono);margin-bottom:.65rem;font-size:.74rem}.section-title{max-width:680px;color:var(--text);letter-spacing:0;margin-bottom:1.35rem;font-size:clamp(1.35rem,3vw,2rem);font-weight:800;line-height:1.2}.section-intro{max-width:650px;color:var(--muted);margin:-.25rem 0 1.35rem;font-size:1rem;line-height:1.68}.about-copy{max-width:760px}.about-section p,.contact-section p{color:var(--muted);margin-bottom:1.15rem;font-size:clamp(1rem,1.6vw,1.14rem);line-height:1.8}.about-section p:last-child,.contact-section p:last-child{margin-bottom:0}.snapshot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.snapshot-card,.project-card,.work-row{border:1px solid var(--line);background:#0f172a57;border-radius:12px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.snapshot-card:before,.project-card:before,.work-row:before,.note-row:before{content:"";background:var(--accent);opacity:0;transform-origin:top;width:2px;transition:opacity .18s,transform .18s;position:absolute;inset:0 auto 0 0;transform:scaleY(.2)}.snapshot-card{min-height:148px;padding:1.05rem}.snapshot-card:hover,.project-card:hover,.project-card:focus-within,.work-row:hover,.work-row:focus-within{background:var(--panel-strong);border-color:#5eead452;transform:translateY(-5px);box-shadow:0 18px 48px #02061738,inset 0 1px #e2e8f00a}.snapshot-card:hover:before,.project-card:hover:before,.project-card:focus-within:before,.work-row:hover:before,.work-row:focus-within:before,.note-row:hover:before,.note-row:focus-within:before{opacity:1;transform:scaleY(1)}.snapshot-card strong{color:var(--text);margin-bottom:.35rem;font-size:1rem;line-height:1.35;display:block}.snapshot-card span{color:var(--accent);font-family:var(--font-mono);margin-bottom:.65rem;font-size:.68rem;display:block}.snapshot-card p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.6}.item-list{gap:.9rem;display:grid}.work-row{grid-template-columns:132px minmax(0,1fr);gap:1.5rem;padding:1.2rem;display:grid}.period{color:var(--muted-dark);font-family:var(--font-mono);text-transform:uppercase;margin:.18rem 0 0;font-size:.72rem;line-height:1.45}.work-row h3,.project-card h3,.note-row h3{color:var(--text);letter-spacing:0;margin-bottom:.45rem;font-size:1.05rem;line-height:1.35;transition:color .16s}.role-meta{color:var(--muted-dark);font-family:var(--font-mono);margin:-.2rem 0 .6rem;font-size:.74rem}.work-row:hover h3,.work-row:focus-within h3,.project-card:hover h3,.project-card:focus-within h3{color:var(--accent)}.summary,.project-note{color:var(--muted);margin-bottom:0;font-size:.96rem;line-height:1.68}.tag-row{flex-wrap:wrap;gap:.44rem;margin-top:.85rem;display:flex}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.project-card{padding:1.15rem}.project-card:first-child{grid-column:1/-1}.project-details{border-top:1px solid var(--line);gap:.7rem;margin-top:.95rem;padding-top:.85rem;display:grid}.project-details div{grid-template-columns:78px minmax(0,1fr);gap:.8rem;display:grid}.project-details span{color:var(--warm);font-family:var(--font-mono);text-transform:uppercase;font-size:.68rem}.project-details p,.note-row p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.62}.detail-toggle{color:var(--accent);cursor:pointer;font-family:var(--font-mono);background:0 0;border:0;align-items:center;gap:.38rem;margin-top:.9rem;padding:0;font-size:.74rem;transition:color .16s,transform .16s;display:inline-flex}.detail-toggle svg{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:.95rem;height:.95rem;transition:transform .16s}.detail-toggle:hover,.detail-toggle:focus-visible{color:var(--text);outline:none;transform:translateY(-1px)}.detail-toggle:hover svg,.detail-toggle:focus-visible svg{transform:translate(3px)}.notes-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.note-row{border:1px solid var(--line);background:#0f172a4d;border-radius:12px;min-height:150px;padding:1.05rem;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;position:relative;overflow:hidden}.note-row:hover,.note-row:focus-within{background:var(--panel-strong);border-color:#5eead452;transform:translateY(-5px);box-shadow:0 18px 48px #02061738}.note-row h3{font-size:.98rem}.tag{color:var(--accent);background:#2dd4bf16;border-radius:999px;align-items:center;padding:.24rem .52rem;font-size:.66rem;font-weight:650;line-height:1;display:inline-flex}.contact-section{max-width:760px}.contact-actions{flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:1.4rem;display:flex}.contact-actions a{border:1px solid var(--line);font-family:var(--font-mono);border-radius:999px;gap:.48rem;padding:.55rem .72rem;font-size:.82rem}.contact-actions svg{fill:currentColor;width:.95rem;height:.95rem}.footer{color:var(--muted-dark);font-family:var(--font-mono);font-size:.72rem}.footer p{margin:0}@media (max-width:860px){.page-shell{width:min(100% - 32px,760px)}.site-header{grid-template-columns:auto auto;justify-content:space-between}.top-menu{order:3;grid-column:1/-1;justify-content:flex-start;padding-bottom:.15rem;overflow-x:auto}.hero-section{min-height:auto;padding-top:5rem}.hero-layout{grid-template-columns:1fr;gap:2rem}.hero-snapshot{max-width:420px}.snapshot-grid,.project-grid,.notes-list{grid-template-columns:1fr}.project-card:first-child{grid-column:auto}.work-row{grid-template-columns:1fr;gap:.6rem}.period{margin-top:0}}@media (max-width:560px){.page-shell{width:min(100% - 28px,760px)}.top-menu{gap:1rem}.top-menu a{font-size:.7rem}.hero-footer,.hero-actions{align-items:stretch}.hero-actions a{min-height:42px}.project-details div{grid-template-columns:1fr;gap:.25rem}.contact-actions a{justify-content:flex-start;width:100%}.scroll-rail-nav{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
