:root{--bg:#07090d;--panel:#0d1119;--line:#1c2532;--text:#f1f4f8;--muted:#9aa7b7;--blue:#2485ff;--cyan:#60c6ff;--mono:'DM Mono',monospace;--sans:'Manrope',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}.page-glow{position:absolute;pointer-events:none;filter:blur(100px);opacity:.18;border-radius:50%;z-index:-1}.glow-one{width:400px;height:400px;right:8%;top:160px;background:#075cd0}.glow-two{width:300px;height:280px;left:-170px;top:1170px;background:#103e86}.topbar{height:78px;position:sticky;top:0;z-index:20;background:rgba(7,9,13,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1190px)/2),5.2vw)}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:34px;height:34px;border:1px solid #285587;color:var(--blue);font-size:13px;font-weight:800;display:grid;place-items:center;position:relative}.brand-mark span{font-size:10px;position:absolute;right:2px;top:0;color:#91c6ff}.brand-name,.footer-brand{font-size:12px;letter-spacing:.12em;font-weight:800}.brand-dot,.footer-brand span{color:var(--blue)}.navigation{display:flex;gap:38px;align-items:center;font-size:12px;color:#b4bfcc}.navigation a{transition:color .2s}.navigation a:hover,.inline-link:hover{color:var(--cyan)}.navigation .nav-cta{border:1px solid #26384c;padding:9px 15px;color:#f2f6fb}.nav-cta span{color:var(--blue);padding-left:8px}.menu-toggle{display:none}.section-wrap{width:min(1190px,89.6vw);margin-inline:auto}.hero{min-height:calc(100vh - 78px);min-height:min(810px,calc(100vh - 78px));position:relative;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;padding-top:60px;padding-bottom:96px}.hero-copy{max-width:650px;position:relative;z-index:2}.eyebrow{font:10px var(--mono);letter-spacing:.12em;color:#bcc8d6;margin:0 0 25px}.eyebrow i,.learning-status i,.caption-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 13px #2485ff;margin-right:9px}.eyebrow b{color:#4d91d7;padding:0 5px;font-weight:400}.hero h1{font-size:clamp(47px,6vw,80px);line-height:1.07;letter-spacing:-.075em;margin:0;font-weight:800}.hero h1 span,.section-heading h2 span,.contact-card h2 span{color:var(--blue)}.hero-lede{max-width:485px;color:#afbbc9;font-size:15px;line-height:1.9;margin:27px 0 18px}.hero-meta{font:10px var(--mono);color:#8594a5;letter-spacing:.03em;display:flex;gap:9px;align-items:center}.meta-separator{color:var(--blue)}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:32px}.button{height:49px;padding:0 19px;display:inline-flex;align-items:center;gap:25px;font-size:12px;font-weight:800;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--blue);color:#04101f;box-shadow:0 12px 34px rgba(36,133,255,.18)}.button-primary:hover{background:#58a5ff}.button span{font-size:17px}.text-link,.inline-link{font-size:12px;border-bottom:1px solid #364455;padding-bottom:5px}.text-link span{color:var(--blue);padding-left:8px}.portrait-wrap{height:565px;position:relative;display:grid;place-items:center}.portrait-frame{width:min(380px,78%);height:490px;position:relative;overflow:hidden;border:1px solid rgba(72,142,223,.32);border-radius:190px 190px 14px 14px;background:linear-gradient(155deg,#0c1b30,#080d15 58%,#101c2b);box-shadow:0 40px 110px rgba(0,0,0,.45),inset 0 0 60px rgba(42,127,221,.09)}.portrait-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(6,9,15,.45));pointer-events:none}.portrait-frame img{width:100%;height:100%;object-fit:cover;opacity:.92}.portrait-orbit{position:absolute;border:1px solid rgba(46,126,216,.2);border-radius:50%;transform:rotate(-22deg)}.orbit-a{width:475px;height:555px}.orbit-b{width:520px;height:605px;border-color:rgba(46,126,216,.1)}.portrait-corner{position:absolute;z-index:2;width:27px;height:27px;border-color:#62b2ff}.corner-tl{left:19px;top:42px;border-left:1px solid;border-top:1px solid}.corner-br{right:19px;bottom:18px;border-right:1px solid;border-bottom:1px solid}.portrait-caption{position:absolute;bottom:10px;left:5%;font:9px var(--mono);letter-spacing:.13em;color:#b9c7d7;display:flex;align-items:center}.caption-dot{width:5px;height:5px;margin-right:10px}.caption-line{width:38px;height:1px;background:#286ab1;margin-left:12px}.portrait-note{position:absolute;right:0;bottom:107px;font-size:11px;line-height:1.5;color:#e5edf7;background:#0c131d;border:1px solid #1d3045;padding:11px 14px;box-shadow:0 12px 30px #0008}.portrait-note span{font-size:9px;color:#8293a7}.floating-stamp{position:absolute;left:2%;top:112px;width:56px;height:56px;border:1px solid #315e8b;background:#0a111b;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:5px;color:#9ed1ff;transform:rotate(-12deg)}.floating-stamp>span{font-weight:800;font-size:14px}.floating-stamp small{font:6px var(--mono);line-height:1.4}.hero-index{position:absolute;bottom:-100px;left:0;display:flex;align-items:center;gap:12px;font:9px var(--mono);letter-spacing:.13em;color:#667588}.hero-index span:first-child{color:var(--blue)}.index-line{width:48px;height:1px;background:#315981}.scroll-cue{position:absolute;right:0;bottom:37px;display:flex;align-items:center;gap:11px;font:9px var(--mono);letter-spacing:.1em;color:#718197}.scroll-cue span{height:29px;width:16px;border:1px solid #45566a;border-radius:9px;position:relative}.scroll-cue span:after{content:'';width:2px;height:5px;position:absolute;left:6px;top:5px;background:var(--blue);animation:scroll 1.6s infinite}@keyframes scroll{to{transform:translateY(10px);opacity:0}}.section-pad{padding-top:126px;padding-bottom:115px}.section-heading{margin-bottom:52px}.section-heading .eyebrow{margin-bottom:20px}.section-heading h2{font-size:clamp(36px,4.5vw,57px);line-height:1.16;letter-spacing:-.06em;margin:0;font-weight:800}.about{border-top:1px solid rgba(255,255,255,.07)}.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14%;margin-left:17%}.about-intro{font-size:19px;line-height:1.8;color:#d8e0e9;margin:0;max-width:500px}.about-side{font-size:13px;color:#9cabbc;line-height:1.95}.about-side p{margin:0 0 16px}.inline-link{display:inline-flex;gap:14px;margin-top:9px;color:#dce9f8}.inline-link span{color:var(--blue)}.principles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin:69px 0 0 17%;padding-top:22px;gap:25px}.principles>div{display:grid;grid-template-columns:26px auto;column-gap:8px;align-items:baseline}.principle-num{font:9px var(--mono);color:var(--blue)}.principles strong{font-size:12px}.principles small{grid-column:2;color:#7f8c9b;font-size:11px}.journey{border-top:1px solid rgba(255,255,255,.07)}.journey-list{border-top:1px solid var(--line)}.journey-card{display:grid;grid-template-columns:160px 1fr 150px;align-items:center;gap:22px;padding:26px 4px;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.journey-card:hover{padding-inline:14px;background:rgba(25,43,63,.28)}.journey-date{font:11px var(--mono);color:#87a2bd}.journey-date span{color:var(--blue)}.card-kicker{font:9px var(--mono);letter-spacing:.15em;color:#6fa9e5;margin:0 0 7px}.journey-main h3{font-size:17px;line-height:1.45;letter-spacing:-.02em;margin:0 0 5px}.journey-main>p:last-child{color:#8391a1;font-size:12px;margin:0}.journey-tag{justify-self:end;padding:6px 10px;border:1px solid #29394a;color:#8da0b4;font:9px var(--mono)}.learning-strip{margin-top:29px;padding:19px 22px;display:flex;align-items:center;gap:18px;border:1px solid #1c3045;background:linear-gradient(90deg,rgba(24,59,97,.27),rgba(11,17,25,.3))}.learning-icon{width:38px;height:38px;border:1px solid #245a91;display:grid;place-items:center;color:#78bdff}.learning-strip .card-kicker{margin-bottom:1px}.learning-strip p:last-child{margin:0;font-size:12px;color:#dce5ef}.learning-status{margin-left:auto;font:9px var(--mono);letter-spacing:.08em;color:#8097ad}.learning-status i{width:5px;height:5px;margin-right:6px}.skills{border-top:1px solid rgba(255,255,255,.07)}.skills-layout{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.skill-group{padding:22px 20px 25px;border-top:1px solid #29425c;background:linear-gradient(180deg,rgba(18,31,47,.45),rgba(12,16,23,.05))}.skill-group .card-kicker{margin-bottom:18px}.skill-chips{display:flex;flex-wrap:wrap;gap:8px}.skill-chips span{font-size:11px;color:#c5d1de;background:#101923;border:1px solid #202d3b;padding:7px 10px}.skills-foot{margin-top:43px;border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;gap:17px}.skills-star{font-size:24px;color:var(--blue)}.skills-foot p{font-size:13px;color:#c0ccd9;line-height:1.7;margin:0}.mono-label{margin-left:auto;font:9px var(--mono);letter-spacing:.12em;color:#75879c}.contact{padding-top:62px}.contact-card{position:relative;overflow:hidden;padding:65px 7%;border:1px solid #1c2a39;background:radial-gradient(ellipse at 82% 40%,rgba(17,75,139,.24),transparent 38%),linear-gradient(125deg,#0b111a,#090d13 65%)}.contact-card .eyebrow{margin-bottom:20px}.contact-card h2{font-size:clamp(46px,6vw,72px);line-height:1.04;letter-spacing:-.07em;margin:0;font-weight:800}.contact-copy{max-width:430px;color:#a2b0bf;font-size:13px;line-height:1.85;margin:20px 0 25px}.contact-detail{display:flex;align-items:center;gap:14px;margin-top:42px;color:#aab8c7;font-size:11px}.contact-detail>span:not(.detail-divider){font:8px var(--mono);letter-spacing:.12em;color:#71849a}.contact-detail strong{font-weight:500}.contact-detail a{color:#c7d6e6}.detail-divider{width:1px;height:18px;background:#2d3d50;margin:0 5px}.contact-mark{position:absolute;right:8%;top:50%;transform:translateY(-50%);font-size:220px;font-weight:800;letter-spacing:-.12em;color:rgba(95,153,213,.065);line-height:1}.contact-mark span{color:rgba(36,133,255,.3)}.footer{min-height:86px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;color:#7c8998;font-size:10px}.footer-brand{color:#dbe5ef}.back-top{font:9px var(--mono);letter-spacing:.1em;color:#96a5b4}.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}@media(max-width:800px){.topbar{height:68px;padding-inline:5vw}.navigation{gap:20px}.hero{min-height:720px;grid-template-columns:1fr .8fr;padding-top:50px}.hero h1{font-size:clamp(46px,7vw,64px)}.portrait-wrap{height:480px}.portrait-frame{height:405px;width:88%}.portrait-orbit.orbit-a{width:360px;height:440px}.portrait-orbit.orbit-b{width:400px;height:490px}.about-grid{margin-left:8%;gap:8%}.principles{margin-left:8%}.section-pad{padding-top:100px;padding-bottom:90px}}@media(max-width:620px){html{scroll-padding-top:70px}.topbar{height:64px}.brand-name{font-size:11px}.menu-toggle{display:flex;background:none;border:1px solid #26384b;width:38px;height:36px;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle span{width:15px;height:1px;background:#e5edf5}.navigation{display:none;position:absolute;left:0;right:0;top:63px;background:#080c12;border-bottom:1px solid #202d3b;padding:12px 5vw 20px;flex-direction:column;align-items:stretch;gap:0}.navigation.open{display:flex}.navigation a{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}.navigation .nav-cta{border:0;padding:11px 0}.section-wrap{width:89vw}.hero{min-height:0;grid-template-columns:1fr;padding-top:68px;padding-bottom:80px}.hero-copy{grid-row:1}.hero h1{font-size:clamp(43px,12vw,63px)}.hero-lede{font-size:14px;margin-top:21px}.hero-meta{font-size:9px;flex-wrap:wrap}.hero-actions{gap:18px;margin-top:25px}.button{height:46px;padding:0 14px;gap:14px;font-size:11px}.text-link{font-size:10px}.portrait-wrap{height:390px;margin-top:50px}.portrait-frame{width:68%;height:355px}.portrait-orbit.orbit-a{width:300px;height:365px}.portrait-orbit.orbit-b{width:335px;height:400px}.floating-stamp{left:7%;top:51px}.portrait-note{right:3%;bottom:80px}.portrait-caption{left:14%;bottom:2px;font-size:8px}.hero-index{display:none}.scroll-cue{bottom:23px}.section-pad{padding-top:78px;padding-bottom:74px}.section-heading{margin-bottom:36px}.section-heading h2{font-size:clamp(34px,9.4vw,47px)}.about-grid{grid-template-columns:1fr;gap:16px;margin-left:0}.about-intro{font-size:17px}.about-side{font-size:12px}.principles{margin:34px 0 0;grid-template-columns:1fr;gap:13px}.principles>div{grid-template-columns:26px 1fr}.principles small{grid-column:2}.journey-card{grid-template-columns:1fr auto;gap:4px 12px;padding:20px 1px}.journey-date{grid-column:1/-1;font-size:10px}.journey-main h3{font-size:15px}.journey-main>p:last-child{font-size:11px}.journey-tag{grid-column:2;grid-row:2;align-self:center;font-size:8px;padding:5px 7px}.learning-strip{padding:15px 13px;gap:12px}.learning-status{font-size:7px}.learning-strip p:last-child{font-size:11px}.skills-layout{grid-template-columns:1fr;gap:12px}.skill-group{padding:18px}.skills-foot{gap:12px}.skills-foot p{font-size:11px}.mono-label{font-size:7px}.contact{padding-top:32px}.contact-card{padding:43px 7%}.contact-card h2{font-size:53px}.contact-copy{font-size:12px}.contact-detail{flex-wrap:wrap;gap:9px;margin-top:32px}.contact-mark{font-size:150px;right:4%;top:33%}.footer{min-height:92px;gap:8px;flex-wrap:wrap;padding-block:16px}.footer>span{order:3;width:100%}.back-top{font-size:8px}}
/* Hero entrance and portrait motion */
.hero-copy.reveal{transform:translateX(-34px);transition-delay:.1s}
.portrait-wrap.reveal{transform:translateX(42px);transition-delay:.25s}
.hero-copy.reveal.visible,.portrait-wrap.reveal.visible{transform:translate(0,0)}
.portrait-frame{animation:portraitFloat 6s ease-in-out 1.1s infinite}
.portrait-frame:before{content:'';position:absolute;z-index:1;pointer-events:none;inset:-45%;background:linear-gradient(112deg,transparent 39%,rgba(112,185,255,.04) 45%,rgba(130,199,255,.23) 50%,rgba(112,185,255,.04) 55%,transparent 61%);transform:translateX(-45%) rotate(16deg);animation:portraitSweep 8s ease-in-out 1.5s infinite}
.orbit-a{animation:orbitBreathe 5s ease-in-out infinite}
.orbit-b{animation:orbitBreathe 6.5s ease-in-out .6s infinite reverse}
@keyframes portraitFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes portraitSweep{0%,12%{transform:translateX(-52%) rotate(16deg)}52%,100%{transform:translateX(52%) rotate(16deg)}}
@keyframes orbitBreathe{0%,100%{opacity:.45;scale:1}50%{opacity:.9;scale:1.025}}
@media(prefers-reduced-motion:reduce){.hero-copy.reveal,.portrait-wrap.reveal{transform:none}}

/* Section-to-section travel */
.scroll-progress{position:fixed;z-index:30;left:0;right:0;top:0;height:2px;background:rgba(255,255,255,.055);pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#2485ff,#65c6ff);box-shadow:0 0 12px rgba(36,133,255,.72);will-change:transform}
.navigation a{position:relative}
.navigation a:not(.nav-cta):after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:1px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:transform .28s ease}
.navigation a.active{color:#f2f7fd}
.navigation a.active:after{transform:scaleX(1)}
.reveal{filter:blur(5px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1),filter .72s ease}
.reveal.visible{filter:blur(0)}
.section-heading.reveal:after{content:'';display:block;width:54px;height:2px;margin-top:25px;background:linear-gradient(90deg,var(--blue),rgba(96,198,255,.2));transform:scaleX(0);transform-origin:left;transition:transform .65s ease .28s}
.section-heading.reveal.visible:after{transform:scaleX(1)}
.about-grid>.reveal:nth-child(2),.principles>div:nth-child(2),.journey-card:nth-child(2),.skill-group:nth-child(2){transition-delay:.1s}
.principles>div:nth-child(3),.journey-card:nth-child(3),.skill-group:nth-child(3){transition-delay:.2s}
@media(prefers-reduced-motion:reduce){.reveal{filter:none!important}.section-heading.reveal:after{transition:none;transform:scaleX(1)}}


/* Section zoom is the sole entrance effect for scroll panels. */
.about .reveal,.journey .reveal,.skills .reveal,.contact .reveal{opacity:1;transform:none;filter:none;transition:none}
.about .section-heading.reveal:after,.journey .section-heading.reveal:after,.skills .section-heading.reveal:after{transform:scaleX(1);transition:none}
