:root,:root[data-theme=dark]{--bg:#0d1013;--bg-raised:#14181d;--bg-sunken:#0a0c0f;--line:#262c34;--line-strong:#39414b;--text:#e8e6e1;--text-muted:#9aa3ad;--accent:#e2603a;--accent-bright:#e2603a;--accent-soft:#e2603a24;--on-accent:#0d1013;--ok:#3dbb85;--danger:#ef6a66;--on-status:#0d1013;--shadow:0 24px 60px -30px #000c;color-scheme:dark}:root[data-theme=light]{--bg:#f5f2ec;--bg-raised:#fff;--bg-sunken:#ece8e0;--line:#ddd7cc;--line-strong:#c4bcae;--text:#14181d;--text-muted:#55606b;--accent:#b43f1a;--accent-soft:#b43f1a1a;--on-accent:#fff;--ok:#1d7048;--danger:#b3322e;--on-status:#fff;--shadow:0 24px 60px -34px #281e0a59;color-scheme:light}:root{--font-display:"Instrument Serif",Georgia,"Times New Roman",serif;--font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--gutter:clamp(20px,5vw,40px);--maxw:1120px;--radius:14px;--nav-h:68px;--ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px;scroll-padding-top:calc(var(--nav-h) + 12px)}body{-webkit-font-smoothing:antialiased;background:#0d1013;background:var(--bg);color:#e8e6e1;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;overflow-x:hidden;text-rendering:optimizeLegibility;transition:background-color .3s ease,color .3s ease}img,picture,svg{display:block;max-width:100%}a{text-decoration:none}a,button{color:inherit}button{font:inherit}ol,ul{list-style:none;padding:0}::selection{background:#e2603a;background:var(--accent);color:#0d1013;color:var(--on-accent)}:focus-visible{border-radius:4px;outline:2px solid #e2603a;outline:2px solid var(--accent);outline-offset:3px}.container{margin-inline:auto;width:min(1120px,100% - 2 * clamp(20px,5vw,40px));width:min(var(--maxw),100% - 2 * var(--gutter))}.section{border-top:1px solid #262c34;border-top:1px solid var(--line);padding-block:clamp(72px,10vw,128px)}.section-head{margin-bottom:clamp(36px,5vw,64px);max-width:720px}.eyebrow{color:#e2603a;color:var(--accent);display:block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;margin-bottom:14px;text-transform:uppercase}.display{line-height:1.05}.display,.section-title{font-family:"Instrument Serif",Georgia,Times New Roman,serif;font-family:var(--font-display);font-weight:400;letter-spacing:-.015em}.section-title{font-size:clamp(2.2rem,5vw,3.5rem);line-height:1.08}.btn{align-items:center;background:#0000;border:1px solid #39414b;border:1px solid var(--line-strong);border-radius:999px;color:#e8e6e1;color:var(--text);cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:10px;justify-content:center;min-height:48px;padding:0 26px;transition:transform .25s cubic-bezier(.22,1,.36,1),background-color .25s ease,border-color .25s ease,color .25s ease;transition:transform .25s var(--ease),background-color .25s ease,border-color .25s ease,color .25s ease}.btn:hover{border-color:#e8e6e1;border-color:var(--text);transform:translateY(-2px)}.btn--primary{color:#0d1013;color:var(--on-accent)}.btn--primary,.btn--primary:hover{background:#e2603a;background:var(--accent);border-color:#e2603a;border-color:var(--accent)}.btn--primary:hover{filter:brightness(1.08)}.chip{border:1px solid #39414b;border:1px solid var(--line-strong);border-radius:999px;color:#9aa3ad;color:var(--text-muted);display:inline-block;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.02em;padding:4px 12px;white-space:nowrap}.skip-link{background:#e2603a;background:var(--accent);border-radius:8px;color:#0d1013;color:var(--on-accent);font-weight:500;left:10px;padding:10px 16px;position:fixed;top:10px;transform:translateY(-200%);transition:transform .2s ease;z-index:1000}.skip-link:focus{transform:translateY(0)}.vt-theme::view-transition-new(root),.vt-theme::view-transition-old(root){animation:none;mix-blend-mode:normal}.vt-theme::view-transition-new(root){animation:theme-reveal .7s cubic-bezier(.22,1,.36,1) both;animation:theme-reveal .7s var(--ease) both}@keyframes theme-reveal{0%{clip-path:circle(0 at 50% 0);clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,0))}to{clip-path:circle(150vmax at 50% 0);clip-path:circle(150vmax at var(--vt-x,50%) var(--vt-y,0))}}.vt-route::view-transition-old(root){animation:route-out .22s ease-in both}.vt-route::view-transition-new(root){animation:route-in .42s cubic-bezier(.22,1,.36,1) both;animation:route-in .42s var(--ease) both}@keyframes route-out{to{opacity:0;transform:translateY(-6px)}}@keyframes route-in{0%{opacity:0;transform:translateY(14px)}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-delay:0ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}html{scrollbar-color:#39414b #0d1013;scrollbar-color:var(--line-strong) var(--bg)}@page{size:A4;margin:14mm 14mm 16mm}@media print{:root,:root[data-theme=dark],:root[data-theme=light]{--bg:#fff;--bg-raised:#fff;--bg-sunken:#f4f4f4;--line:#cfcfcf;--line-strong:#9a9a9a;--text:#111;--text-muted:#444;--accent:#a8340f;--accent-soft:#0000;--on-accent:#fff;--shadow:none;color-scheme:light}html{scroll-behavior:auto}body{background:#fff!important;color:#111!important;font-size:10.5pt;line-height:1.5;overflow:visible}#architecture,#security,#vision,.backToTop,.cmdk,.cmdk__toast,.contacts__buttons,.landing:before,.landing__actions,.landing__scanwrap,.landing__scene,.navbar,.projects__footer,.scrollProgress,.skip-link,.themeToggle,[aria-busy=true]{display:none!important}.reveal{opacity:1!important;transform:none!important;transition:none!important}*,:after,:before{animation:none!important;box-shadow:none!important;text-shadow:none!important}.section{border-top:1px solid #cfcfcf;padding-block:16pt!important}.section-head{margin-bottom:14pt!important}.section-title{font-size:20pt!important}.landing{padding-block:0 14pt!important}.landing__grid{align-items:start!important;gap:18pt!important;grid-template-columns:minmax(0,1fr) 120px!important}.landing__portrait{margin:0!important;order:0!important;width:120px!important}.landing__frame:before{display:none!important}.landing__title{font-size:32pt!important;margin-top:12pt!important}.glance{padding-bottom:14pt!important}.about__card,.contacts__details,.education__item,.experience__item,.glance__cell,.project,.project__card,.skills__group{break-inside:avoid;page-break-inside:avoid}.eyebrow,.section-head{break-after:avoid;page-break-after:avoid}.project__card{background:#fff!important;transform:none!important}.contacts__social{grid-template-columns:1fr!important}.contacts__social a:after{color:#555;content:" " attr(href);font-size:8.5pt;word-break:break-all}a{color:inherit!important}.site-footer{border-top:1px solid #cfcfcf;padding-block:10pt}}main:focus{outline:none}h1,h2,h3,h4{text-wrap:balance}dd,li,p{text-wrap:pretty}@media (hover:hover) and (pointer:fine){.about__card,.arch__detail,.contacts__details,.glance__cell,.project__card,.security__principles li,.skills__group{background-image:radial-gradient(360px circle at -999px -999px,color-mix(in srgb,#e2603a 14%,#0000),#0000 62%)!important;background-image:radial-gradient(360px circle at var(--mx,-999px) var(--my,-999px),color-mix(in srgb,var(--accent) 14%,#0000),#0000 62%)!important}}:root[data-accent=ocean]{--accent:#4aa3ff;--accent-bright:#4aa3ff;--accent-soft:#4aa3ff24;--on-accent:#0d1013}:root[data-theme=light][data-accent=ocean]{--accent:#0b5cad;--accent-soft:#0b5cad1a;--on-accent:#fff}:root[data-accent=forest]{--accent:#3dbb85;--accent-bright:#3dbb85;--accent-soft:#3dbb8524;--on-accent:#0d1013}:root[data-theme=light][data-accent=forest]{--accent:#1d7048;--accent-soft:#1d70481a;--on-accent:#fff}:root[data-accent=violet]{--accent:#a78bfa;--accent-bright:#a78bfa;--accent-soft:#a78bfa24;--on-accent:#0d1013}:root[data-theme=light][data-accent=violet]{--accent:#6d3fd1;--accent-soft:#6d3fd11a;--on-accent:#fff}:root[data-accent=rose]{--accent:#f06292;--accent-bright:#f06292;--accent-soft:#f0629224;--on-accent:#0d1013}:root[data-theme=light][data-accent=rose]{--accent:#b4235a;--accent-soft:#b4235a1a;--on-accent:#fff}:root[data-accent=gold]{--accent:#e0a526;--accent-bright:#e0a526;--accent-soft:#e0a52624;--on-accent:#0d1013}:root[data-theme=light][data-accent=gold]{--accent:#8a5a00;--accent-soft:#8a5a001a;--on-accent:#fff}@media print{:root[data-accent][data-theme]{--accent:#a8340f;--accent-soft:#0000;--on-accent:#fff}}.site-footer{border-top:1px solid var(--line);color:var(--text-muted);font-size:.9rem;padding-block:32px}.site-footer .container{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}.scrollProgress{height:2px;inset:0 0 auto 0;pointer-events:none;position:fixed;z-index:110}.scrollProgress__bar{background:var(--accent);height:100%;transform:scaleX(0);transform-origin:left}@supports (animation-timeline:scroll()){.scrollProgress__bar{animation-timeline:scroll(root block);animation-duration:1s;animation-fill-mode:both;animation-name:scroll-grow;animation-timing-function:linear}@keyframes scroll-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}.cmdk{align-items:flex-start;animation:cmdk-fade .18s ease-out;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:color-mix(in srgb,var(--bg-sunken) 70%,#0000);display:flex;inset:0;justify-content:center;padding:14vh var(--gutter) 24px;position:fixed;z-index:200}.cmdk__panel{animation:cmdk-pop .22s var(--ease);background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow),0 0 0 1px var(--line);display:flex;flex-direction:column;max-height:min(520px,100%);overflow:hidden;width:min(580px,100%)}.cmdk__search{align-items:center;border-bottom:1px solid var(--line);color:var(--text-muted);display:flex;font-size:1.15rem;gap:12px;padding:0 18px}.cmdk__search input{background:#0000;border:0;color:var(--text);flex:1 1;font:inherit;font-size:1rem;height:56px;min-width:0}.cmdk__search input::placeholder{color:var(--text-muted)}.cmdk__search input:focus-visible{outline:none}.cmdk kbd{border:1px solid var(--line-strong);border-radius:6px;color:var(--text-muted);display:inline-block;font-family:var(--font-mono);font-size:.72rem;line-height:1.5;min-width:24px;padding:2px 7px;text-align:center}.cmdk__list{flex:1 1;overflow-y:auto;padding:8px}.cmdk__group{color:var(--accent);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;padding:12px 12px 6px;text-transform:uppercase}.cmdk__item{align-items:center;border-radius:10px;cursor:pointer;display:flex;font-size:.97rem;gap:16px;justify-content:space-between;padding:11px 12px}.cmdk__item.is-active{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.cmdk__hint{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.cmdk__empty{color:var(--text-muted);padding:28px 12px;text-align:center}.cmdk__footer{border-top:1px solid var(--line);color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.76rem;gap:6px 18px;padding:10px 18px}.cmdk__footer kbd{margin-right:4px}.cmdk__toast{bottom:24px;left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);z-index:210}.cmdk__toast:not(:empty){animation:cmdk-pop .22s var(--ease);background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:999px;box-shadow:var(--shadow);font-size:.9rem;padding:10px 18px}@keyframes cmdk-fade{0%{opacity:0}to{opacity:1}}@keyframes cmdk-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.cmdk__toast:not(:empty){animation-name:cmdk-toast}@keyframes cmdk-toast{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width:560px){.cmdk{padding-top:8vh}.cmdk__hint{display:none}}.cmdk__main{display:grid;min-width:0}.cmdk__detail{color:var(--text-muted);font-size:.8rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backToTop{bottom:clamp(16px,3vw,28px);position:fixed;right:clamp(16px,3vw,28px);z-index:90}.backToTop button{background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:999px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;display:grid;font-size:1.15rem;height:46px;place-items:center;transition:transform .25s var(--ease),border-color .2s ease,color .2s ease;width:46px}.backToTop button:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-3px)}.contacts__body{grid-gap:clamp(32px,6vw,88px);align-items:start;display:grid;gap:clamp(32px,6vw,88px);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.contacts__lead{color:var(--text-muted);max-width:520px}.contacts__email{background:linear-gradient(var(--accent),var(--accent)) 0 100% /0 1px no-repeat;display:inline-block;font-size:clamp(1.5rem,4.4vw,2.7rem);line-height:1.15;margin-top:22px;overflow-wrap:anywhere;transition:background-size .5s var(--ease),color .2s ease}.contacts__email:hover{background-size:100% 1px;color:var(--accent)}.contacts__buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.contacts__details{grid-gap:22px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:22px;padding:26px 28px}.contacts__details dt{color:var(--accent);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.contacts__details dd{margin:6px 0 0}.contacts__details dd a:hover{color:var(--accent)}.contacts__social{grid-gap:6px 16px;display:grid;gap:6px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.contacts__social a{align-items:center;color:var(--text-muted);display:inline-flex;font-size:.95rem;gap:10px;padding-block:6px;transition:color .2s ease,transform .25s var(--ease)}.contacts__social a:hover{color:var(--accent);transform:translateX(3px)}.sr-only{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:860px){.contacts__body{grid-template-columns:1fr}}@media (max-width:420px){.contacts__social{grid-template-columns:1fr}}.landing{overflow:hidden;padding-block:clamp(36px,7vw,88px) clamp(56px,9vw,112px);position:relative}.landing:before{background-image:radial-gradient(var(--line-strong) 1px,#0000 1px);background-size:28px 28px;content:"";inset:0;-webkit-mask-image:linear-gradient(180deg,#000 0,#0000 85%);mask-image:linear-gradient(180deg,#000 0,#0000 85%);opacity:.45;pointer-events:none;position:absolute}.landing__grid{grid-gap:clamp(32px,6vw,88px);align-items:center;display:grid;gap:clamp(32px,6vw,88px);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);position:relative}.landing__status{align-items:center;animation:rise .8s var(--ease) both;background:var(--bg);border:1px solid var(--line-strong);border-radius:999px;color:var(--text-muted);display:inline-flex;font-family:var(--font-mono);font-size:.74rem;gap:10px;letter-spacing:.04em;padding:6px 14px 6px 12px}.landing__dot{background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--accent-soft);height:7px;width:7px}.landing__title{animation:rise .9s .08s var(--ease) both;font-size:clamp(3.2rem,9vw,6.6rem);line-height:.98;margin-top:26px}.landing__role{animation:rise .9s .16s var(--ease) both;color:var(--accent);font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2rem);font-style:italic;line-height:1.2;margin-top:18px}.landing__intro{animation:rise .9s .24s var(--ease) both;color:var(--text-muted);margin-top:22px;max-width:540px}.landing__actions{animation:rise .9s .32s var(--ease) both;gap:12px}.landing__actions,.landing__meta{display:flex;flex-wrap:wrap;margin-top:34px}.landing__meta{align-items:center;animation:rise .9s .4s var(--ease) both;color:var(--text-muted);font-size:.92rem;gap:14px 28px}.landing__place,.landing__social{align-items:center;display:inline-flex;gap:8px}.landing__social{gap:6px}.landing__social a{border:1px solid var(--line-strong);border-radius:50%;color:var(--text);display:grid;font-size:1rem;height:38px;place-items:center;transition:transform .25s var(--ease),color .2s ease,border-color .2s ease;width:38px}.landing__social a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.landing__stack{animation:rise .9s .48s var(--ease) both;display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.landing__portrait{animation:rise 1s .2s var(--ease) both;justify-self:end;position:relative;width:min(100%,400px)}.landing__frame{aspect-ratio:4/5;background:var(--bg-raised);border-radius:999px 999px 22px 22px;position:relative}.landing__frame:before{border:1px solid var(--accent);border-radius:999px 999px 22px 22px;content:"";inset:14px -14px -14px 14px;opacity:.55;position:absolute;z-index:0}.landing__frame img,.landing__frame picture{border-radius:inherit;height:100%;object-fit:cover;object-position:50% 12%;position:relative;width:100%;z-index:1}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@media (max-width:860px){.landing__grid{grid-template-columns:1fr}.landing__portrait{justify-self:center;order:-1;width:min(66%,280px)}}@media (max-width:480px){.landing__actions .btn{flex:1 1 100%}}.landing__scene{height:132%;inset:-16% -26%;opacity:.9;pointer-events:none;position:absolute;width:152%;z-index:0}.landing__frame{z-index:1}.landing__scanwrap{border-radius:inherit;inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:2}.landing__scan{animation:scan 7s cubic-bezier(.45,0,.55,1) 1.6s infinite;background:linear-gradient(to bottom,#0000,var(--accent-soft) 70%,var(--accent));height:28%;left:0;-webkit-mask-image:linear-gradient(180deg,#0000,#000 80%,#000);mask-image:linear-gradient(180deg,#0000,#000 80%,#000);opacity:.55;position:absolute;right:0;top:0;transform:translateY(-100%)}@keyframes scan{0%{transform:translateY(-100%)}35%{transform:translateY(360%)}to{transform:translateY(360%)}}@media (max-width:860px){.landing__scene{height:124%;inset:-12% -18%;opacity:.8;width:136%}}@media (prefers-reduced-motion:reduce){.landing__scan{display:none}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){.landing__portrait{animation-timeline:auto,scroll(root block);animation-range:normal,0 90vh;animation-delay:.2s,0s;animation-duration:1s,1s;animation-fill-mode:both,both;animation-name:rise,hero-parallax;animation-timing-function:var(--ease),linear}@keyframes hero-parallax{to{translate:0 48px}}}}.themeToggle{background:#0000;border:1px solid var(--line-strong);border-radius:999px;color:var(--text);cursor:pointer;display:grid;font-size:1.05rem;height:40px;place-items:center;transition:transform .25s var(--ease),border-color .2s ease,color .2s ease;width:40px}.themeToggle:hover{border-color:var(--accent);color:var(--accent);transform:rotate(18deg)}.navbar{border-bottom:1px solid #0000;position:sticky;top:0;transition:background-color .3s ease,border-color .3s ease,-webkit-backdrop-filter .3s ease;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease;transition:background-color .3s ease,border-color .3s ease,backdrop-filter .3s ease,-webkit-backdrop-filter .3s ease;z-index:100}.navbar--solid{-webkit-backdrop-filter:saturate(140%) blur(14px);backdrop-filter:saturate(140%) blur(14px);background:color-mix(in srgb,var(--bg) 82%,#0000);border-bottom-color:var(--line)}.navbar__bar{align-items:center;display:flex;gap:24px;height:var(--nav-h);justify-content:space-between}.navbar__brand{align-items:center;display:inline-flex;font-weight:500;gap:12px;letter-spacing:-.01em}.navbar__mark{background:var(--text);border-radius:10px;color:var(--bg);display:grid;font-family:var(--font-display);font-size:1.15rem;height:38px;line-height:1;place-items:center;width:38px}.navbar__links ul{display:flex;gap:4px}.navbar__link{border-radius:8px;color:var(--text-muted);display:block;font-size:.92rem;padding:8px 12px;position:relative;transition:color .2s ease}.navbar__link:after{background:var(--accent);bottom:2px;content:"";height:1px;left:12px;position:absolute;right:12px;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.navbar__link.is-active,.navbar__link:hover{color:var(--text)}.navbar__link.is-active:after,.navbar__link:hover:after{transform:scaleX(1)}.navbar__actions{align-items:center;display:flex;gap:10px}.navbar__cta{font-size:.88rem;min-height:40px;padding:0 18px}.navbar__toggle{background:#0000;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;display:none;font-size:1.4rem;height:44px;place-items:center;width:44px}.navbar__mobile{background:var(--bg);border-top:1px solid var(--line)}.navbar__mobile[hidden]{display:none}.navbar__mobile a{align-items:baseline;border-bottom:1px solid var(--line);display:flex;font-family:var(--font-display);font-size:1.9rem;gap:16px;line-height:1.1;padding:16px 0}.navbar__index{color:var(--accent);font-family:var(--font-mono);font-size:.75rem}@media (min-width:981px){.navbar__mobile{display:none}}@media (max-width:980px){.navbar__cta,.navbar__links{display:none}.navbar__toggle{display:grid}.navbar__mobile{max-height:calc(100vh - var(--nav-h));overflow-y:auto}}@media (max-width:420px){.navbar__name{font-size:.95rem}}.navbar__cmd{align-items:center;background:#0000;border:1px solid var(--line-strong);border-radius:999px;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:1rem;gap:10px;height:40px;padding:0 12px 0 14px;transition:border-color .2s ease,color .2s ease}.navbar__cmd:hover{border-color:var(--text);color:var(--text)}.navbar__cmd kbd{color:var(--text-muted);font-family:var(--font-mono);font-size:.72rem}@media (max-width:980px){.navbar__cmd{justify-content:center;padding:0;width:40px}.navbar__cmd kbd{display:none}}.project{display:flex;perspective:900px}.project__card{--rx:0deg;--ry:0deg;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex:1 1;flex-direction:column;padding:26px 28px 28px;transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;transition:transform .25s ease-out,border-color .3s ease,box-shadow .4s ease}.project__card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}.project__index{color:var(--accent);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;transform:translateZ(24px)}.project__title{font-family:var(--font-display);font-size:1.7rem;font-weight:400;line-height:1.15;margin-top:14px;transform:translateZ(18px)}.project__desc{color:var(--text-muted);font-size:.97rem;margin-top:10px}.project__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:20px}.project__link{align-items:center;align-self:flex-start;border-bottom:1px solid #0000;display:inline-flex;font-size:.92rem;font-weight:500;gap:8px;margin-top:18px;padding-block:4px;transition:color .2s ease,border-color .2s ease}.project__link:hover{border-color:var(--accent);color:var(--accent)}.project--print-only{display:none}@media print{.project--print-only{display:flex}}.project__details{align-self:flex-start;margin-top:14px}.projects__grid{grid-gap:clamp(16px,2.4vw,28px);display:grid;gap:clamp(16px,2.4vw,28px);grid-template-columns:repeat(2,minmax(0,1fr))}.projects__footer{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(32px,5vw,56px)}@media (max-width:760px){.projects__grid{grid-template-columns:1fr}}.about__body{grid-gap:clamp(32px,6vw,80px);align-items:start;display:grid;gap:clamp(32px,6vw,80px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.about__text p{color:var(--text-muted)}.about__text p+p{margin-top:1.1em}.about__focus{grid-gap:14px;display:grid;gap:14px}.about__card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;transition:border-color .3s ease,transform .3s var(--ease)}.about__card:hover{border-color:var(--line-strong);transform:translateY(-3px)}.about__card h3{font-family:var(--font-display);font-size:1.55rem;font-weight:400;line-height:1.2}.about__card>p{color:var(--text-muted);font-size:.95rem;margin-top:6px}.about__tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media (max-width:860px){.about__body{grid-template-columns:1fr}}.education__list{border-top:1px solid var(--line)}.education__item{grid-gap:12px 32px;border-bottom:1px solid var(--line);display:grid;gap:12px 32px;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);padding:30px 0}.education__period{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;padding-top:8px}.education__item h3{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:400;line-height:1.15}.education__institution{color:var(--accent);font-weight:500;margin-top:4px}@media (max-width:640px){.education__item{grid-template-columns:1fr}.education__period{padding-top:0}}.education__detail{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;margin-top:6px}.education__certs{margin-top:clamp(32px,5vw,56px)}.education__certs h3{color:var(--accent);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.education__certs ul{grid-gap:8px 32px;display:grid;gap:8px 32px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.education__certs li{color:var(--text-muted);font-size:.97rem;padding-left:18px;position:relative}.education__certs li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.8em;width:8px}@media (max-width:640px){.education__certs ul{grid-template-columns:1fr}}.experience__list{border-top:1px solid var(--line)}.experience__item{grid-gap:12px 32px;border-bottom:1px solid var(--line);display:grid;gap:12px 32px;grid-template-columns:minmax(150px,.28fr) minmax(0,1fr);padding:30px 0;transition:background-color .3s ease}.experience__period{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;padding-top:8px}.experience__main h3{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:400;line-height:1.15}.experience__company{color:var(--accent);font-weight:500;margin-top:4px}.experience__summary{color:var(--text-muted);margin-top:12px;max-width:560px}.experience__highlights{grid-gap:8px;color:var(--text-muted);display:grid;gap:8px;margin-top:12px;max-width:600px}.experience__highlights li{padding-left:20px;position:relative}.experience__highlights li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.8em;width:8px}@media (max-width:640px){.experience__item{grid-template-columns:1fr;padding:24px 0}.experience__period{padding-top:0}}.timeline{margin:0 0 clamp(32px,5vw,56px)}.timeline__caption{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;margin-bottom:14px;text-transform:uppercase}.timeline__chart{--bar:34px;--gap:8px;overflow-x:clip;padding:28px 0 0}.timeline__axis{height:0;position:relative}.timeline__axis span{color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;position:absolute;top:-22px;transform:translateX(-50%)}.timeline__axis span:first-child{transform:none}.timeline__axis span:last-child{transform:translateX(-100%)}.timeline__bars{background:repeating-linear-gradient(to right,#0000 0,#0000 calc(100%/var(--years) - 1px),var(--line) calc(100%/var(--years) - 1px),var(--line) calc(100%/var(--years)));border-left:1px solid var(--line);border-right:1px solid var(--line);height:calc(var(--lanes)*(var(--bar) + var(--gap)));position:relative}.timeline__bar{align-items:center;border-radius:8px;display:flex;font-size:.8rem;height:var(--bar);min-width:6px;overflow:hidden;padding:0 10px;position:absolute;top:calc(var(--lane)*(var(--bar) + var(--gap)));white-space:nowrap}.timeline__label{min-width:0;overflow:hidden;text-overflow:ellipsis}.timeline__bar strong{font-weight:500}.timeline__bar--role{background:var(--accent);color:var(--on-accent)}.timeline__bar--education{background:var(--bg-raised);border:1px solid var(--line-strong);color:var(--text)}.timeline__legend{align-items:center;color:var(--text-muted);display:flex;font-size:.8rem;gap:8px;margin-top:12px}.timeline__swatch{border-radius:3px;height:12px;width:12px}.timeline__legend .timeline__swatch:nth-of-type(2),.timeline__swatch+.timeline__swatch{margin-left:12px}.timeline__swatch--role{background:var(--accent)}.timeline__swatch--education{background:var(--bg-raised);border:1px solid var(--line-strong)}.timeline__bar.is-short{overflow:visible;padding:0}.timeline__bar.is-short .timeline__label{color:var(--text);left:100%;margin-left:10px;position:absolute}.timeline__bar.is-short.is-late .timeline__label{left:auto;margin-left:0;margin-right:10px;right:100%}@media (max-width:560px){.timeline__axis span:nth-child(2n):not(:last-child){display:none}}@media print{.timeline{display:none!important}}.skills__grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.skills__group{background:var(--bg);padding:28px 26px 30px;transition:background-color .3s ease}.skills__group:hover{background:var(--bg-raised)}.skills__group h3{color:var(--accent);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase}.skills__group ul{grid-gap:8px;display:grid;gap:8px;margin-top:16px}.skills__group li{align-items:center;display:flex;font-size:1.02rem;gap:12px}.skills__group li:before{background:var(--line-strong);border-radius:50%;content:"";flex:none;height:6px;transition:background-color .3s ease;width:6px}.skills__group:hover li:before{background:var(--accent)}@media (max-width:900px){.skills__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.skills__grid{grid-template-columns:1fr}}.skills__hint{color:var(--text-muted);margin-top:14px}.skills__item{background:none;border:0;border-bottom:1px solid #0000;color:inherit;cursor:pointer;font:inherit;padding:3px 0;text-align:left;transition:color .2s ease,border-color .2s ease}.skills__item.is-selected,.skills__item:hover{border-bottom-color:var(--accent);color:var(--accent)}.skills__item.is-selected{font-weight:500}.skills__group li:has(.skills__item.is-selected):before{background:var(--accent)}.skills__evidence{margin-top:20px}.skills__panel{animation:skills-in .3s var(--ease);background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--radius);padding:clamp(20px,3vw,32px)}.skills__panel>h3{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:400;line-height:1.2}.skills__panel>h3 span{color:var(--accent)}.skills__empty{color:var(--text-muted);margin-top:10px}.skills__results{grid-gap:24px clamp(24px,4vw,56px);display:grid;gap:24px clamp(24px,4vw,56px);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);margin-top:18px}.skills__results h4{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.1em;margin-bottom:10px;text-transform:uppercase}.skills__results>div>ul{grid-gap:16px;display:grid;gap:16px}.skills__results strong{display:block;font-weight:500}.skills__meta{color:var(--text-muted);display:block;font-size:.86rem;margin-top:2px}.skills__results li ul{grid-gap:6px;display:grid;gap:6px;margin-top:8px}.skills__results li ul li{color:var(--text-muted);font-size:.93rem;padding-left:18px;position:relative}.skills__results li ul li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.75em;width:8px}@keyframes skills-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (max-width:760px){.skills__results{grid-template-columns:1fr}}@media print{.skills__evidence,.skills__hint{display:none!important}.skills__item{border-bottom:0!important}}.skillmap{margin-top:clamp(36px,5vw,64px)}.skillmap__title{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:400}.skillmap__hint{color:var(--text-muted);margin-top:6px}.skillmap__scroll{border:1px solid var(--line);border-radius:var(--radius);contain:paint;margin-top:18px;overflow-x:auto}.skillmap__scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.skillmap__table{border-collapse:collapse;font-size:.9rem;width:100%}.skillmap__table td,.skillmap__table th{border-bottom:1px solid var(--line);padding:8px 10px;text-align:center}.skillmap__table tbody tr:last-child td,.skillmap__table tbody tr:last-child th{border-bottom:0}.skillmap__table tbody th{min-width:190px}.skillmap__table tbody th,.skillmap__table thead th:first-child{background:var(--bg);font-weight:500;left:0;position:sticky;text-align:left}.skillmap__table thead th:first-child{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.skillmap__col{color:var(--text-muted);font-size:.78rem;font-weight:400;height:120px;max-width:96px;min-width:56px;vertical-align:bottom}.skillmap__col span{display:block;margin-inline:auto;max-height:110px;overflow:hidden;text-overflow:ellipsis;transform:rotate(180deg);white-space:nowrap;writing-mode:vertical-rl}.skillmap__col--role{color:var(--text)}.skillmap__dot{background:var(--accent);border-radius:50%;display:inline-block;height:12px;width:12px}.skillmap__table td:not(.is-hit):not(.skillmap__total):after{background:var(--line-strong);border-radius:50%;content:"";display:inline-block;height:4px;width:4px}.skillmap__table tbody tr:hover td,.skillmap__table tbody tr:hover th{background:var(--bg-raised)}.skillmap__total{color:var(--text-muted);font-family:var(--font-mono)}.skillmap__toggle{margin-top:16px}@media print{.skillmap{display:none!important}}.glance{padding-bottom:clamp(48px,7vw,88px)}.glance__grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:1px;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}.glance__cell{background:var(--bg);padding:22px 24px;transition:background-color .3s ease}.glance__cell:hover{background:var(--bg-raised)}.glance__cell dt{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.glance__cell dd{font-size:1.02rem;line-height:1.45;margin:8px 0 0}.glance__cell dd span{color:var(--text-muted);display:block;font-size:.88rem;margin-top:4px}.glance__cell dd .glance__clock{align-items:baseline;display:flex;flex-wrap:wrap;gap:0 6px}.glance__clock svg{align-self:center;color:var(--accent);flex:none}.glance__clock time{color:var(--text);font-family:var(--font-mono);font-size:.95rem}@media (max-width:900px){.glance__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.glance__grid{grid-template-columns:1fr}}.projectPage{min-height:70vh;padding-block:clamp(40px,7vw,88px) clamp(72px,10vw,128px)}.projectPage__search{align-items:center;display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:clamp(24px,4vw,40px)}.projectPage__search label{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.projectPage__search input{background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:999px;color:var(--text);flex:1 1 280px;font:inherit;font-size:.97rem;height:50px;max-width:460px;padding:0 20px;transition:border-color .2s ease,box-shadow .2s ease}.projectPage__search input::placeholder{color:var(--text-muted)}.projectPage__search input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.projectPage__count{color:var(--text-muted);font-family:var(--font-mono);font-size:.78rem}.projectPage__grid{grid-gap:clamp(16px,2.4vw,28px);display:grid;gap:clamp(16px,2.4vw,28px);grid-template-columns:repeat(2,minmax(0,1fr))}.projectPage__empty{color:var(--text-muted);padding-block:40px}@media (max-width:760px){.projectPage__grid{grid-template-columns:1fr}}.projectPage__tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(24px,4vw,40px)}.projectPage__tag{background:#0000;border:1px solid var(--line-strong);border-radius:999px;color:var(--text);cursor:pointer;font:inherit;font-size:.88rem;padding:6px 14px;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.projectPage__tag span{color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;margin-left:4px}.projectPage__tag:hover{border-color:var(--accent);color:var(--accent)}.projectPage__tag.is-active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.projectPage__tag.is-active span{color:inherit}@media print{.projectPage__tags{display:none!important}}.pdetail{min-height:70vh;padding-block:clamp(40px,7vw,88px) clamp(72px,10vw,128px)}.pdetail__back{align-items:center;color:var(--text-muted);display:inline-flex;gap:8px;margin-bottom:28px;transition:color .2s ease}.pdetail__back:hover{color:var(--accent)}.pdetail__head{max-width:760px}.pdetail__lead{color:var(--text-muted);font-size:1.1rem;margin:18px 0 24px;max-width:680px}.pdetail__facts{display:flex;flex-wrap:wrap;gap:12px 40px;margin-bottom:8px}.pdetail__facts dt{color:var(--accent);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.pdetail__facts dd{margin-top:4px}.pdetail__block,.pdetail__related{border-top:1px solid var(--line);margin-top:clamp(28px,4vw,44px);max-width:760px;padding-top:24px}.pdetail__block h2,.pdetail__related h2{color:var(--accent);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;margin-bottom:12px;text-transform:uppercase}.pdetail__block ul:not(.pdetail__tags){grid-gap:10px;display:grid;gap:10px}.pdetail__block ul:not(.pdetail__tags) li{padding-left:20px;position:relative}.pdetail__block ul:not(.pdetail__tags) li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.8em;width:8px}.pdetail__tags{display:flex;flex-wrap:wrap;gap:8px}.pdetail .chip{transition:border-color .2s ease,color .2s ease}.pdetail .chip:hover{border-color:var(--accent);color:var(--accent)}.pdetail__block+.btn,.pdetail__tags+.btn{margin-top:24px}.pdetail .btn{margin-top:28px}.pdetail__related ul{grid-gap:8px;display:grid;gap:8px}.pdetail__related a:hover{color:var(--accent)}.pdetail__pager{border-top:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;margin-top:clamp(40px,6vw,72px);padding-top:24px}.pdetail__pager a{align-items:center;color:var(--text-muted);display:inline-flex;gap:8px;transition:color .2s ease}.pdetail__pager a:hover{color:var(--accent)}@media print{.pdetail__back,.pdetail__pager{display:none!important}}.resume{min-height:70vh;padding-block:clamp(32px,6vw,72px) clamp(64px,9vw,112px)}.resume__actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin:0 auto 20px;max-width:820px}.resume__back{align-items:center;color:var(--text-muted);display:inline-flex;gap:8px;transition:color .2s ease}.resume__back:hover{color:var(--accent)}.resume__buttons{display:flex;flex-wrap:wrap;gap:10px}.resume__buttons .btn{font-size:.9rem;min-height:42px;padding:0 18px}.resume__paper{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);margin:0 auto;max-width:820px;padding:clamp(24px,5vw,56px)}.resume__head h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:400;line-height:1.1}.resume__role{color:var(--accent);font-weight:500;margin-top:6px}.resume__contact{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.92rem;gap:4px 18px;margin-top:12px}.resume__contact a:hover{color:var(--accent)}.resume__paper section{border-top:1px solid var(--line);margin-top:clamp(22px,3vw,32px);padding-top:18px}.resume__paper h2{color:var(--accent);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;margin-bottom:12px;text-transform:uppercase}.resume__item+.resume__item{margin-top:18px}.resume__row{display:flex;flex-wrap:wrap;gap:2px 16px;justify-content:space-between}.resume__row span{color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem}.resume__paper h3{font-size:1.02rem;font-weight:600}.resume__sub{margin-top:16px}.resume__item p,.resume__paper section>p{margin-top:4px}.resume__paper ul{grid-gap:6px;display:grid;gap:6px;margin-top:8px}.resume__paper ul li{padding-left:18px;position:relative}.resume__paper ul li:before{background:var(--accent);content:"";height:1px;left:0;position:absolute;top:.75em;width:8px}.resume__tags{color:var(--text-muted);font-size:.86rem}.resume__skills{grid-gap:8px;display:grid;gap:8px}.resume__skills div{grid-gap:4px 16px;display:grid;gap:4px 16px;grid-template-columns:minmax(150px,.3fr) minmax(0,1fr)}.resume__skills dt{font-weight:600}@media (max-width:600px){.resume__skills div{grid-template-columns:1fr}}@media print{.resume{min-height:0;padding:0}.resume__actions,.site-footer{display:none!important}.resume__paper{background:none;border:0;max-width:none;padding:0}.resume__item,.resume__paper section{break-inside:avoid;page-break-inside:avoid}.resume__contact a:after{content:""}}
/*# sourceMappingURL=main.32cfe5d2.css.map*/