/* Editorial layouts and lightweight compositing, shared by both themes. */
.cursor-light{display:none}.ambient{animation:none;filter:none;background:radial-gradient(ellipse,#b7e75040,transparent 68%);opacity:.2}
.glass{backdrop-filter:none;-webkit-backdrop-filter:none}.header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.current-role{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.project-card,.project-number{backdrop-filter:none}.experience-item:after,.skill-card:after{display:none}
.motion .reveal{filter:none;transform:translateY(24px);transition:opacity .55s,transform .65s cubic-bezier(.16,1,.3,1)}
.portrait-card{will-change:auto}dialog::backdrop{backdrop-filter:blur(6px)}
#experience .section-heading,#skills .section-heading,#education .section-heading,#projects .section-heading{border-top:1px solid var(--border);padding-top:30px}
.timeline{gap:0;border-bottom:1px solid var(--border)}
.experience-item{display:grid;grid-template-columns:23% 1fr;gap:0 4%;padding:44px 32px;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none;background:transparent;overflow:visible}
.experience-item:first-child{border-color:var(--border);background:linear-gradient(100deg,#b7e75010,transparent 80%);border-radius:18px 18px 0 0}
.experience-item:hover{border-color:var(--border)}
.career-meta{grid-row:1/3;display:flex;flex-direction:column;align-items:flex-start;padding-top:4px;position:relative;border-right:1px solid var(--border)}
.career-index{font:500 clamp(2.8rem,4vw,5rem)/1 Manrope,sans-serif;letter-spacing:-.07em;color:var(--muted);opacity:.55;margin-bottom:28px}
.career-meta time{font-size:.9rem;color:var(--text)}.career-status{font-size:.61rem;letter-spacing:.16em;color:var(--muted);margin-top:10px}.experience-item:first-child .career-status{color:var(--accent)}.experience-item:first-child .career-status:before{content:'';display:inline-block;background:var(--accent);width:6px;height:6px;border-radius:50%;margin-right:8px}
.experience-head{align-items:center}.company-mark{width:58px;height:58px;border-radius:50%;font-size:.8rem}.experience-head h3{font-size:clamp(1.5rem,2.1vw,2.6rem);letter-spacing:-.045em}.experience-head p{font-size:1rem}.experience-body{padding-left:0;max-width:1000px}.experience-body .summary{margin:20px 0 12px;font-size:.8rem;letter-spacing:.035em}.experience-body ul{font-size:1rem;line-height:1.85;max-width:90ch}.experience-body li::marker{color:var(--accent)}.experience-body details{margin:20px 0}.experience-body details summary{border-bottom:1px solid var(--border);padding-bottom:5px}.experience-body .tags{margin-top:24px}.tag{border-radius:30px;padding:5px 13px}
.project-toolbar{padding:0 0 20px;border-bottom:1px solid var(--border)}.project-grid{gap:36px}.project-card{padding:0;overflow:hidden;border-radius:22px;background:linear-gradient(145deg,var(--glass),transparent);box-shadow:none}.project-image{border-radius:0}.project-content{padding:28px 30px 26px}.project-content h3{font-size:clamp(1.6rem,2.2vw,2.8rem)}.project-content>p{min-height:0}.project-open{margin-top:26px;padding-top:20px}.project-open span{width:40px;height:40px;font-size:1.2rem}.project-card:not(.featured-project){display:flex;flex-direction:column}.project-card:not(.featured-project) .project-content{flex:1;display:flex;flex-direction:column}.project-card:not(.featured-project) .project-content .project-open{margin-top:auto}.project-card:not(.featured-project) .tags{margin-bottom:24px}.featured-project .project-content{display:flex;flex-direction:column;justify-content:center;padding:45px}.featured-project .project-image{min-height:480px}.project-card:hover{transform:translateY(-4px)}
.skill-grid{gap:22px}.skill-card{padding:34px;border-radius:22px;background:linear-gradient(155deg,var(--glass),transparent);box-shadow:none;min-height:470px;display:flex;flex-direction:column}.skill-topline{display:flex;justify-content:space-between;align-items:center;font-size:.65rem;letter-spacing:.13em;color:var(--muted)}.skill-topline>span:last-child{font-size:1.4rem;color:var(--accent)}.skill-glyph{font-size:clamp(3.5rem,5.5vw,7rem);line-height:1.2;letter-spacing:-.09em;margin:40px 0 30px;opacity:.9}.skill-card h3{font-size:clamp(1.4rem,1.7vw,2rem);letter-spacing:-.05em;line-height:1.25}.skill-card p{font-size:.95rem;margin:10px 0 22px}.skill-card .tags{margin-top:auto;padding-top:22px;border-top:1px solid var(--border)}.skill-card .tag{font-size:.75rem;background:transparent}.skill-card:nth-child(2){background:linear-gradient(145deg,#b7e75013,var(--glass))}.skill-card:hover{transform:translateY(-4px);border-color:var(--accent)}
.education-card{position:relative;overflow:hidden;padding:45px;min-height:280px;border-radius:22px;box-shadow:none;background:linear-gradient(110deg,var(--glass),transparent)}.education-icon{display:none}.education-card>div{max-width:65%;position:relative;z-index:1}.education-card h3{font-size:clamp(1.6rem,2.5vw,3rem);letter-spacing:-.05em;line-height:1.25;margin:22px 0 15px}.education-card p{font-size:1rem;max-width:65ch}.degree-badge{display:flex;flex-direction:column;align-items:flex-start;font:600 clamp(4rem,7vw,8rem)/.9 Manrope,sans-serif;letter-spacing:-.07em;border:0;border-left:1px solid var(--border);border-radius:0;padding:10px 0 10px 45px;width:26%}.degree-badge>span{font:500 .72rem/1.4 'DM Sans',sans-serif;letter-spacing:.17em;margin-top:20px;color:var(--text)}.degree-badge small{font:400 .63rem/1.5 'DM Sans',sans-serif;letter-spacing:.13em;color:var(--muted);margin-top:20px}
.learning-divider{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:55px 0 24px}.learning-divider .cert-heading{margin:0;font-size:1.4rem;letter-spacing:-.035em}.learning-divider>span{font-size:.62rem;letter-spacing:.13em;color:var(--muted)}.cert-grid{grid-template-columns:1fr 1fr;gap:0 35px}.cert-card{display:flex;gap:25px;padding:28px 0;border:0;border-top:1px solid var(--border);border-radius:0;background:none}.cert-seal{flex-shrink:0;border:1px solid var(--border);border-radius:50%;width:52px;height:52px;display:grid;place-items:center;font-size:.85rem;color:var(--accent)}.cert-info{flex:1;min-width:0}.cert-meta{font-size:.69rem;letter-spacing:.03em}.cert-card h4{font-family:Manrope,sans-serif;font-size:1.08rem;letter-spacing:-.025em;margin:12px 0 8px}.cert-card p{font-size:.87rem}.cert-card:hover .cert-seal{background:var(--accent-strong);color:#20271c;transition:background .25s}
#contact{padding-top:120px}.contact-panel{position:relative;border-radius:26px;padding:4.5vw;gap:5vw;box-shadow:none;background:radial-gradient(ellipse at 0 0,#b7e75017,transparent 65%),var(--glass)}.contact-panel h2{font-size:clamp(2.6rem,4.3vw,5.5rem);line-height:1.08;letter-spacing:-.065em;margin:32px 0}.contact-copy>p{max-width:37ch;font-size:1rem}.email-link{font-size:clamp(.95rem,1.3vw,1.65rem);margin-top:35px}.contact-links{margin-top:30px;gap:12px;flex-wrap:wrap}.contact-links a,.contact-links button{border:1px solid var(--border);border-radius:30px;padding:9px 17px}.contact-links a:hover{border-color:var(--accent)}#contact-form{background:var(--bg);border:1px solid var(--border);border-radius:18px;padding:32px;gap:22px;align-self:center}.form-heading{display:flex;align-items:center;justify-content:space-between;font-size:.66rem;letter-spacing:.12em;color:var(--muted);margin-bottom:5px}.form-heading>span:last-child{font-size:1.8rem;color:var(--accent)}#contact-form input,#contact-form textarea{background:transparent;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:12px 0}#contact-form input:focus,#contact-form textarea:focus{outline:none;border-color:var(--accent)}#contact-form .primary{width:100%;margin-top:8px}footer{border-top:1px solid var(--border);margin-top:90px!important}
@media(min-width:1800px){.experience-body ul{font-size:1.15rem}.skill-card{padding:45px}.skill-card p,.education-card p{font-size:1.15rem}.skill-card .tag{font-size:.9rem}.cert-card h4{font-size:1.3rem}.cert-card p{font-size:1rem}}
@media(max-width:1000px){.experience-item{grid-template-columns:25% 1fr;padding:30px 15px}.career-meta time{font-size:.78rem}.skill-grid{gap:14px}.skill-card{padding:25px;min-height:480px}.skill-card .tag{padding:5px 9px;font-size:.7rem}.contact-panel{gap:25px;padding:30px}#contact-form{padding:24px}.contact-panel h2{font-size:3rem}.featured-project .project-content{padding:28px}.cert-grid{gap:0 24px}.cert-card{gap:16px}}
@media(max-width:760px){.experience-item{grid-template-columns:1fr;padding:30px 20px;gap:20px}.career-meta{grid-row:auto;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;border:0}.career-index{grid-row:1/3;font-size:2.5rem;margin:0}.career-meta time{font-size:.84rem}.career-status{margin:0;font-size:.55rem}.experience-head{flex-wrap:nowrap;gap:14px}.experience-head>div{min-width:0}.experience-head h3{font-size:1.45rem}.experience-head p{font-size:.86rem}.company-mark{width:44px;height:44px}.experience-body .summary{margin-top:0}.experience-body ul{font-size:.93rem}.project-grid{gap:22px}.project-content,.featured-project .project-content{padding:26px 22px}.featured-project .project-image{min-height:330px}.skill-grid{grid-template-columns:1fr}.skill-card{min-height:0;padding:28px}.skill-glyph{font-size:4rem;margin:25px 0 20px}.skill-card h3{font-size:1.6rem}.skill-card .tag{font-size:.8rem;padding:5px 12px}.education-card{padding:30px;min-height:0}.education-card>div{max-width:100%}.degree-badge{display:none}.learning-divider{display:block}.learning-divider>span{display:block;margin-top:10px}.cert-grid{grid-template-columns:1fr}.cert-card{padding-block:26px}.contact-panel{padding:28px;grid-template-columns:1fr}.contact-panel h2{font-size:clamp(2.25rem,7.5vw,3.5rem)}#contact-form{padding:23px;min-width:0}.contact-links{gap:8px}.contact-links a,.contact-links button{padding:8px 12px}.form-row{grid-template-columns:1fr}.email-link{font-size:.95rem}#contact{padding-top:80px}footer{padding-top:30px}.project-content h3{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){.motion .reveal{transform:none;opacity:1;transition:none}}
/* Anchor navigation lands the section heading just below the sticky navigation. */
.section{scroll-margin-top:-90px}
@media(min-width:1100px){.section{scroll-margin-top:calc(30px - clamp(95px,8vw,160px))}}
@media(max-width:760px){.section{scroll-margin-top:-50px}}
/* Balanced scale, compact project browsing and a native certification carousel. */
[hidden]{display:none!important}
[data-theme=light]{--bg:#f4f7f8;--text:#182f38;--muted:#576d77;--accent:#08776b;--accent-strong:#bcece1;--glass:rgba(255,255,255,.8);--solid:#fff;--border:rgba(37,77,91,.17);--input:#eaf0f2;--header:rgba(250,253,254,.9);--shadow:0 16px 40px #2649580b;--line:rgba(37,77,91,.05)}
[data-theme=light] .ambient{background:radial-gradient(ellipse,#639fbd25,transparent 70%)}
[data-theme=light] .glass,[data-theme=light] .project-card,[data-theme=light] .skill-card{background:linear-gradient(135deg,#fff,#eef4f6);box-shadow:inset 0 1px #fff}
[data-theme=light] .header{background:var(--header)}[data-theme=light] .current-role{background:#f8fcfbea}
[data-theme=light] .experience-item{background:transparent}[data-theme=light] .experience-item:first-child{background:linear-gradient(110deg,#e3f3ef,transparent)}
[data-theme=light] .contact-panel{background:linear-gradient(120deg,#e3f3ef,#f9fcfd)}
[data-theme=light] .featured-project .project-image{background:radial-gradient(ellipse,#d7e7eb,#edf4f6)}
[data-theme=light] .photo-index{color:#183a42;background:#ffffffad;backdrop-filter:none}
[data-theme=light] .feature-screens img{box-shadow:0 12px 25px #193b421f}
[data-theme=light] ::selection{background:#bcece1;color:#182f38}
.load-more-row{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px}.load-more-row>span{font-size:.78rem;color:var(--muted)}.load-more-row .button{min-width:215px}
.project-grid{gap:24px}.project-content{padding:24px}.project-content h3{font-size:clamp(1.4rem,1.7vw,2rem)}.project-content>p{font-size:.94rem;line-height:1.7}.project-image{height:clamp(210px,18vw,330px)}.project-image>img{object-position:top;filter:none}.featured-project .project-content{padding:30px}.featured-project .project-content h3{font-size:clamp(1.8rem,2.4vw,2.8rem)}.featured-project .project-content>p{font-size:.98rem}.featured-project .project-image{min-height:360px}.feature-screens img{max-height:320px}.feature-screens{padding-top:50px}.live-links a{font-size:.78rem;padding:8px 13px}
.cert-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 0 14px;overscroll-behavior-x:contain}.cert-grid::-webkit-scrollbar{display:none}.cert-card{flex:0 0 calc((100% - 40px)/3);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;gap:20px;border:1px solid var(--border);border-radius:20px;background:linear-gradient(135deg,var(--glass),transparent);padding:26px;min-height:285px;position:relative}.cert-card:after{content:'↗';position:absolute;right:26px;top:25px;font-size:1.2rem;color:var(--accent)}.cert-seal{border-radius:12px;width:44px;height:44px;font-size:.75rem}.cert-info{width:100%}.cert-meta{font-size:.66rem;gap:8px;flex-wrap:wrap}.cert-card h4{font-size:1.05rem;margin:16px 0 10px;line-height:1.4}.cert-card p{font-size:.85rem;line-height:1.7}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px}.carousel-controls>span{font:500 .78rem Manrope,sans-serif;letter-spacing:.15em;color:var(--muted)}.carousel-arrows{display:flex;gap:10px}.carousel-arrows button{font-size:1.1rem;transition:background .2s}.carousel-arrows button:hover:not(:disabled){background:var(--accent-strong);color:#182f38}.carousel-arrows button:disabled{opacity:.3;cursor:default}.cert-dots{display:flex;gap:8px}.cert-dots button{border:0;background:var(--border);width:8px;height:8px;border-radius:8px;padding:0;transition:width .25s,background .25s}.cert-dots button[aria-pressed=true]{width:26px;background:var(--accent)}
.section-heading h2{font-size:clamp(2rem,3vw,3.6rem)}.experience-item{padding-block:30px}.experience-head h3{font-size:clamp(1.4rem,1.7vw,2rem)}.experience-body ul{font-size:.96rem}.career-index{font-size:clamp(2.5rem,3vw,3.8rem);margin-bottom:20px}.skill-card{min-height:0;padding:28px}.skill-glyph{font-size:clamp(3rem,4vw,4.8rem);margin:26px 0}.skill-card h3{font-size:clamp(1.3rem,1.5vw,1.7rem)}.skill-card p{font-size:.92rem}.skill-card .tag{font-size:.76rem}.education-card{min-height:230px;padding:32px}.education-card h3{font-size:clamp(1.5rem,2vw,2.35rem)}.education-card p{font-size:.96rem}.degree-badge{font-size:5rem}.contact-panel{padding:38px;gap:40px}.contact-panel h2{font-size:clamp(2.5rem,3.3vw,4rem)}
@media(min-width:1100px){.hero{padding-top:24px;min-height:calc(100svh - 102px)}.hero-stage{min-height:0;padding:25px 0 40px;grid-template-columns:1.2fr 1fr;gap:4vw}.hero-copy h1{font-size:clamp(4.5rem,6.2vw,7.75rem)}.hero-description{font-size:clamp(1.4rem,1.7vw,2rem);margin-top:22px}.hero-detail{font-size:1rem;max-width:440px}.hero-visual{max-width:540px;justify-self:center;padding:0 15px 65px}.portrait-card{transform:rotate(2deg);width:min(100%,calc(51svh * .69 + 24px));margin:auto}.portrait-frame img{height:min(51svh,520px);width:100%;object-fit:contain;object-position:center;transform:none!important}.portrait-frame{background:#ddd}.portrait-top{font-size:.52rem}.current-role{left:12px;right:12px;bottom:8px;padding:15px 18px}.current-role strong{font-size:1.05rem}.current-role small{font-size:.55rem}.current-role div>span{font-size:.8rem}.hero-topline,.hero-bottom{font-size:.6rem}.hero-topline{padding-bottom:16px}.hero-bottom{padding-block:15px}.actions{margin-top:23px}.hero-social{margin-top:21px}.section{padding-top:90px;scroll-margin-top:-60px}.about-photo img{height:460px}.about-copy p{font-size:1rem}.button,nav a{font-size:.86rem}.small-contact{font-size:.82rem}}
@media(min-width:1100px) and (max-height:800px){.hero-stage{padding-block:14px 24px}.hero-topline,.hero-bottom{padding-block:10px}.hero-description{margin-top:16px;font-size:1.4rem}.hero-copy h1{font-size:clamp(3.8rem,5.5vw,6.6rem)}.hero-detail{font-size:.92rem;line-height:1.6;margin-top:10px}.hero-social{margin-top:15px}.actions{margin-top:18px}.hero-visual{padding-bottom:58px}.portrait-frame img{height:45svh}.portrait-card{width:min(100%,calc(45svh * .69 + 24px))}.hero-copy>.eyebrow{margin-bottom:10px}}
@media(max-width:1099px){.portrait-frame img{object-fit:contain;object-position:center;transform:none!important;background:#ddd}.portrait-card{transform:rotate(2deg)}.cert-card{flex-basis:calc((100% - 20px)/2)}.contact-panel{padding:28px;gap:28px}}
@media(max-width:760px){.cert-card{flex-basis:100%;min-height:275px;padding:25px}.cert-grid{gap:16px}.carousel-controls{gap:12px}.project-content,.featured-project .project-content{padding:24px 20px}.featured-project .project-image{min-height:300px}.feature-screens img{max-height:260px}.career-index{margin:0}.contact-panel{padding:24px;gap:24px}.contact-panel h2{font-size:2.25rem}.education-card{padding:26px}.degree-badge{display:none}.portrait-frame img{height:350px}.hero-visual{max-width:350px}.section-heading h2{font-size:2.1rem}.skill-card{padding:26px}.skill-glyph{font-size:3.4rem}.project-image{height:220px}}
@media(prefers-reduced-motion:reduce){.cert-grid{scroll-behavior:auto}.cert-dots button{transition:none}}
.website-gallery #gallery-main{height:auto;max-height:52vh;object-fit:contain;background:var(--input)}
/* Natural portrait proportions and a connected, compact about composition. */
.about-grid{grid-template-columns:minmax(250px,340px) minmax(0,1fr);gap:clamp(28px,3vw,52px);align-items:center}.about-photo{transform:none;width:100%;max-width:none;margin:0;padding:10px;border-radius:20px;overflow:hidden}.about-photo img{width:100%;height:clamp(340px,38vw,420px);aspect-ratio:auto;object-fit:cover;object-position:50% 25%;filter:none;border-radius:12px}.about-photo .photo-label{position:static;display:block;margin:10px 0 0;padding:9px 4px;background:none;border:0;box-shadow:none;font-size:.62rem;letter-spacing:.14em;border-radius:0}.about-copy{max-width:none}.about-copy h3{font-size:clamp(1.7rem,2.25vw,2.6rem);line-height:1.2}.about-copy p{max-width:82ch;font-size:1rem;margin:14px 0;line-height:1.75}.expertise-focus{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.expertise-focus span{color:var(--accent);border:1px solid var(--border);padding:6px 12px;border-radius:30px;font-size:.76rem;transition:transform .25s,background .25s}.expertise-focus span:hover{transform:translateY(-3px);background:var(--glass)}.stats{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:25px;padding-top:22px}.stats strong{font-size:clamp(2rem,3vw,3.4rem);font-variant-numeric:tabular-nums;line-height:1.2}.stats strong .count-value{color:var(--text)}.stats div>span{display:block;margin-top:8px;font-size:.78rem}.stats>div{padding-left:18px;border-left:1px solid var(--border)}.stats>div:first-child{padding-left:0;border-left:0}.stats.is-counting>div{animation:stat-arrive .65s both}.stats.is-counting>div:nth-child(2){animation-delay:.1s}.stats.is-counting>div:nth-child(3){animation-delay:.2s}
@keyframes stat-arrive{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(min-width:1450px){.about-grid{grid-template-columns:minmax(320px,390px) minmax(0,1fr);gap:48px}.about-copy p{max-width:95ch}.hero-stage{grid-template-columns:1.05fr 1fr;gap:24px}.hero-visual{justify-self:center}.hero-detail{max-width:540px}}
@media(max-width:1000px) and (min-width:761px){.about-grid{grid-template-columns:280px minmax(0,1fr);gap:28px}.about-copy p{font-size:.93rem}.stats{gap:10px}.stats>div{padding-left:10px}.stats div>span{font-size:.68rem}}
@media(max-width:760px){.about-grid{grid-template-columns:1fr;gap:28px}.about-photo{max-width:300px;margin:auto}.about-copy h3{font-size:1.8rem}.about-copy p{font-size:.96rem}.stats{gap:10px}.stats strong{font-size:2rem}.stats div>span{font-size:.68rem}.stats>div{padding-left:10px}.expertise-focus span{font-size:.7rem;padding:6px 10px}}
@media(prefers-reduced-motion:reduce){.stats.is-counting>div{animation:none}.expertise-focus span{transition:none}}
/* Motion-only treatment preserves the existing motto typography and layout. */
.hero-in-view .hero-motto{animation:motto-breathe 4.8s ease-in-out infinite}.hero-in-view .hero-topline i{animation:status-breathe 3s ease-in-out infinite}.hero-in-view .name-dot{display:inline-block;animation:dot-settle 4.8s ease-in-out infinite}
@keyframes motto-breathe{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.55;transform:translateY(-2px)}}
@keyframes status-breathe{50%{opacity:.45;transform:scale(.8)}}
@keyframes dot-settle{0%,82%,100%{transform:translateY(0)}90%{transform:translateY(-5px)}}
#spiral{width:112%;height:105%;left:-6%;top:-3%;opacity:.75}
@media(min-width:1100px){.hero-visual{width:min(100%,calc(60svh * .69 + 90px));max-width:560px}.portrait-card{width:min(100%,calc(60svh * .69 + 24px))}.portrait-frame img{height:min(60svh,620px)}.hero-stage{padding-block:18px 26px}}
@media(min-width:1100px) and (max-height:800px){.hero-visual{width:min(100%,calc(52svh * .69 + 85px))}.portrait-card{width:min(100%,calc(52svh * .69 + 24px))}.portrait-frame img{height:52svh}.hero-stage{padding-block:12px 20px}}
@media(max-width:760px){#spiral{width:110%;height:104%;left:-5%;top:-2%}}
@media(prefers-reduced-motion:reduce){.hero-in-view .hero-motto,.hero-in-view .hero-topline i,.hero-in-view .name-dot{animation:none}}
/* A single portrait scale, aligned with the copy, across desktop breakpoints. */
@media(min-width:761px){
 .hero-stage{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;min-height:0;padding-block:34px}
 .hero-visual{--portrait-height:clamp(330px,51svh,550px);width:calc(var(--portrait-height)*.69 + 24px);max-width:100%;padding:0;margin:0;justify-self:center}
 .portrait-card{width:100%;margin:0;transform:none;padding:11px;border-radius:20px;background:var(--solid)}
 .portrait-frame img{width:100%;height:var(--portrait-height);object-fit:contain;object-position:center;filter:none}
 .portrait-top{font-size:.5rem;margin:3px 3px 10px}.portrait-bottom{display:none}
 .current-role{position:relative;inset:auto;width:100%;margin-top:14px;padding:13px 16px;border-radius:14px;animation:none;gap:12px;box-shadow:inset 0 1px #ffffff12}
 .current-role strong{font-size:.96rem}.current-role small{font-size:.48rem}.current-role div>span{font-size:.75rem}.role-icon{width:39px;height:42px}.vertical-caption{right:-26px;top:35%;font-size:.5rem}
 #spiral{width:125%;height:92%;left:-12.5%;top:0;opacity:.42}
 .hero-copy h1{font-size:clamp(3.6rem,6.5vw,7.75rem)}
}
@media(min-width:761px) and (max-height:800px){.hero-visual{--portrait-height:clamp(290px,47svh,380px)}.hero-stage{padding-block:20px}.hero-copy h1{font-size:clamp(3.5rem,5.9vw,6.6rem)}}
@media(max-width:760px){.hero-visual{width:min(100%,320px);padding:0 0 10px;margin:5px auto 0}.portrait-card{width:100%;transform:none}.portrait-frame img{height:auto;aspect-ratio:866/1254;object-fit:contain}.portrait-bottom{display:none}.current-role{position:relative;inset:auto;margin-top:12px;animation:none;padding:14px}.vertical-caption{right:-17px}#spiral{width:120%;left:-10%;height:90%;opacity:.4}}
.about-photo img{filter:grayscale(1);transition:filter .7s ease}.about-photo:hover img,.about-photo:focus img{filter:grayscale(0)}.about-photo:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
/* Deliberate entrance sequence; transform and opacity keep the motion lightweight. */
.hero-first-name{display:block}.hero-copy,.hero-visual{animation:none}
html:not(.loading) .hero-copy>.eyebrow{animation:copy-rise .7s .05s both}
html:not(.loading) .hero-first-name{animation:name-arrive .95s .12s both}
html:not(.loading) .surname{animation:name-arrive .95s .27s both}
html:not(.loading) .hero-description{animation:copy-rise .8s .42s both}
html:not(.loading) .hero-detail{animation:copy-rise .8s .52s both}
html:not(.loading) .hero-copy .actions{animation:copy-rise .8s .64s both}
html:not(.loading) .hero-social{animation:copy-rise .8s .76s both}
html:not(.loading) .hero-visual{animation:portrait-arrive 1.1s .25s both}
@keyframes name-arrive{from{opacity:0;transform:translateY(28px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes copy-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes portrait-arrive{from{opacity:0;transform:translateX(30px) rotate(3deg)}to{opacity:1;transform:none}}
.hero-social a{position:relative}.hero-social a:after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s}.hero-social a:hover:after{transform:scaleX(1)}
.button .button-symbol{transition:transform .35s}.button:hover .button-symbol{transform:rotate(90deg)}
.skill-card .skill-glyph{transition:transform .45s}.skill-card:hover .skill-glyph{transform:translateY(-5px) rotate(-4deg)}
.project-card{animation:none}.motion .project-card.reveal{transition:opacity .7s,transform .75s,border-color .25s}.motion .project-card.reveal:nth-child(2n){transition-delay:.1s}.motion .project-card.visible:hover{transform:translateY(-5px)}
.motion .about-copy.visible .expertise-focus span{animation:copy-rise .6s both}.motion .about-copy.visible .expertise-focus span:nth-child(2){animation-delay:.12s}.motion .about-copy.visible .expertise-focus span:nth-child(3){animation-delay:.24s}
@media(prefers-reduced-motion:reduce){html:not(.loading) .hero-first-name,html:not(.loading) .surname,html:not(.loading) .hero-description,html:not(.loading) .hero-detail,html:not(.loading) .hero-copy .actions,html:not(.loading) .hero-social,html:not(.loading) .hero-visual,html:not(.loading) .hero-copy>.eyebrow,.motion .about-copy.visible .expertise-focus span{animation:none}.about-photo img{transition:none}.hero-social a:after,.skill-card .skill-glyph{transition:none}}
/* Tilted hero portrait and overlapping role card. */
.hero-visual{width:90%;max-width:560px;padding:5px 20px 45px;justify-self:center}
.portrait-card{width:100%;margin:0;transform:rotate(5deg);padding:12px;background:linear-gradient(135deg,#eef2dc26,#ebf3d406)}
.portrait-frame img{height:395px;width:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 22%;filter:saturate(.58)}
.portrait-card:hover img{filter:saturate(.95)}
.current-role{position:absolute;left:-38px;right:38px;bottom:5px;width:auto;margin:0;padding:20px;gap:15px;animation:float 6s ease-in-out infinite;box-shadow:inset 0 1px #fff2,0 20px 50px #0003}
.current-role strong{font-size:1.05rem}.current-role small{font-size:.53rem}.role-icon{width:48px;height:50px}
.vertical-caption{right:-12px;top:130px}
#spiral{width:145%;height:140%;left:-24%;top:-19%;opacity:.75}
@media(min-width:1100px){.hero-visual{width:100%;max-width:460px;padding:5px 20px 38px}.portrait-frame img{height:clamp(320px,42vh,440px);object-position:50% 27%}.current-role{left:0;right:20px;bottom:5px;padding:14px 16px;gap:12px;border-radius:14px}.current-role strong{font-size:1rem;line-height:1.4}.current-role small{font-size:.55rem}.current-role div>span{font-size:.75rem}.current-role .role-icon{width:40px;height:42px;flex-shrink:0;font-size:.75rem}.vertical-caption{right:-6px}#spiral{width:125%;height:120%;left:-12.5%;top:-10%}}
@media(min-width:761px) and (max-width:1099px){.hero-visual{padding-inline:25px}.current-role{left:0;right:0}.portrait-frame img{height:355px}}
@media(max-width:760px){.hero-visual{max-width:405px;width:86%;margin:10px auto 5px;padding:12px 10px 70px}.portrait-frame img{height:370px}.current-role{left:-10px;right:10px;bottom:20px;padding:18px}.vertical-caption{right:-17px;top:130px}#spiral{width:115%;height:125%;left:-7.5%;top:-13%}}
@media(max-width:540px){.hero-visual{width:86%}.portrait-frame img{height:325px}.current-role{right:0;padding:15px}}
@media(prefers-reduced-motion:reduce){.current-role{animation:none}}



@media(min-width:1100px){.hero-visual{max-width:415px}}
.typing-line{display:grid;width:max-content;max-width:100%}.typing-line>span{grid-area:1/1}.typing-reserve{visibility:hidden}.typing-output{white-space:pre-wrap}.typing-output.is-typing:after{content:'';display:inline-block;height:.9em;border-right:2px solid var(--accent);margin-left:3px;vertical-align:-.05em;animation:typing-caret .7s steps(1) infinite}
@keyframes typing-caret{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.typing-output.is-typing:after{display:none}}


/* Dark-only graphite and champagne; preserve the original light palette. */
:root:not([data-theme=light]){--bg:#141414;--text:#f4f1eb;--muted:#aaa7a1;--accent:#d9bd8d;--accent-strong:#e4cba5;--glass:rgba(240,230,212,.05);--solid:#202020;--border:rgba(236,226,208,.17);--header:rgba(28,28,28,.9);--line:rgba(230,220,200,.045)}
:root:not([data-theme=light]) .glass{background:linear-gradient(135deg,#e4cba50c,transparent 65%),var(--glass);box-shadow:inset 0 1px #ffffff12,var(--shadow)}
:root:not([data-theme=light]) .portrait-card{background:linear-gradient(135deg,#e4cba51c,#ffffff03)}
:root:not([data-theme=light]) .current-role{background:rgba(32,31,29,.96)}
:root:not([data-theme=light]) .ambient{background:radial-gradient(ellipse,#d9bd8d10,transparent 70%)}
:root:not([data-theme=light]) .primary,:root:not([data-theme=light]) .monogram,:root:not([data-theme=light]) .stack-strip{color:#26221b}
:root:not([data-theme=light]) .role-icon{background:#d9bd8d0a}
:root:not([data-theme=light]) .status-dot{box-shadow:0 0 0 5px #d9bd8d12}
:root:not([data-theme=light]) .experience-item:first-child,:root:not([data-theme=light]) .contact-panel,:root:not([data-theme=light]) .skill-card:nth-child(2){background:linear-gradient(135deg,#d9bd8d0b,transparent)}
:root:not([data-theme=light]) .button:hover{box-shadow:0 10px 30px #d9bd8d14}
:root:not([data-theme=light]) ::selection{background:#e4cba5;color:#26221b}
.hero-description .typing-line{width:auto}.hero-description{font-size:clamp(1.1rem,1.6vw,1.65rem)}


/* Ticker overlay retains the strip's original flow, padding, height and angle. */
.stack-strip{position:relative;overflow:hidden}.has-ticker>.wrap>strong{opacity:0}.ticker-lane{position:absolute;overflow:hidden}.ticker-track{display:flex;width:max-content;animation:toolkit-ticker 70s linear infinite;animation-play-state:paused}.ticker-group{display:flex;align-items:center;gap:40px;padding-right:40px;flex:none;white-space:nowrap}.ticker-visible .ticker-track{animation-play-state:running}.stack-strip:hover .ticker-track,.stack-strip:focus .ticker-track,.ticker-hidden .ticker-track{animation-play-state:paused}
@keyframes toolkit-ticker{to{transform:translateX(-50%)}}
.cgpa{--cgpa-progress:.8125;display:flex;align-items:center;gap:24px;max-width:420px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.cgpa-label{display:block;font-size:.6rem;letter-spacing:.15em;color:var(--muted)}.cgpa strong{display:block;font:600 2rem/1.4 Manrope,sans-serif;color:var(--accent);font-variant-numeric:tabular-nums}.cgpa small{font-size:.9rem;color:var(--muted)}.cgpa-track{flex:1;min-width:80px;height:5px;background:var(--border);border-radius:5px;overflow:hidden}.cgpa-track>span{display:block;height:100%;background:var(--accent);transform:scaleX(var(--cgpa-progress));transform-origin:left}
.private-project-cover{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:linear-gradient(140deg,var(--solid),var(--bg));gap:10px}.private-project-cover strong{font:600 4rem Manrope,sans-serif;letter-spacing:-.06em;color:var(--accent)}.private-project-cover>span{font-size:.7rem;letter-spacing:.2em}.private-project-cover small{font-size:.65rem;color:var(--muted)}
.contact-trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}.button:disabled{opacity:.6;cursor:wait}.form-note[data-state=error]{color:var(--text);border-left:2px solid #cd776b;padding-left:10px}.form-note[data-state=success]{color:var(--accent)}
@media(prefers-reduced-motion:reduce){.has-ticker>.wrap>strong{opacity:1}.ticker-lane{display:none}}
