/* Glass depth extends across the public portfolio; PDF panels keep a steady
   plane so embedded documents remain easy to read and interact with. */
#root{position:relative;isolation:isolate}
:root{--space-card:30px;--radius-card:24px}
.panel.glass-card,.contact-note.glass-card{border-radius:var(--radius-card)}
.ambient-scene{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 40% 0%,#171326 0%,transparent 68%)}
.ambient-glow{position:absolute;width:min(70vw,950px);height:min(80vw,950px);border-radius:50%;filter:blur(65px);opacity:.16;will-change:transform}
.glow-violet{background:radial-gradient(circle,var(--accent),transparent 67%);top:12%;left:-35%;transform:translate3d(0,calc(var(--ambient-travel,0px)*-1),0)}
.glow-mint{background:radial-gradient(circle,var(--secondary),transparent 65%);right:-40%;top:45%;transform:translate3d(0,var(--ambient-travel,0px),0)}
.glow-blue{background:radial-gradient(circle,#4caaff,transparent 65%);left:30%;bottom:-60%;opacity:.12;transform:translate3d(calc(var(--ambient-travel,0px)*-.5),0,0)}
.ambient-grid{position:absolute;inset:0;background:linear-gradient(#b1b0ee04 1px,transparent 1px),linear-gradient(90deg,#b1b0ee04 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(transparent,#0008,transparent)}
.section{position:relative;perspective:1400px;isolation:isolate}
.section-title{position:relative;z-index:2}
.section-title::after{content:'';display:block;width:85px;height:1px;margin-top:28px;background:linear-gradient(90deg,var(--accent),var(--secondary),transparent);box-shadow:0 0 18px #a89aff44}
.panel,.selection-card,.certificate-selection,.document-panel{background:linear-gradient(140deg,rgba(37,35,65,.38),rgba(18,25,40,.27));border-color:rgba(214,209,255,.19);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);box-shadow:inset 0 1px 0 #ffffff0d,inset 0 -1px 0 #a89aff08,0 20px 55px #0003}
.glass-card,.reveal.glass-card{position:relative;isolation:isolate;transform-style:preserve-3d;transform:perspective(1100px) translate3d(0,calc(var(--entry-y,0px) + var(--depth-y,0px) + var(--pointer-lift,0px)),0) rotateX(calc(var(--entry-x,0deg) + var(--scroll-x,0deg) + var(--pointer-x,0deg))) rotateY(calc(var(--scroll-y,0deg) + var(--pointer-y,0deg)));transition:opacity .8s ease,transform .28s ease-out,border-color .35s,box-shadow .35s;background:radial-gradient(ellipse at var(--spot-x,50%) var(--spot-y,50%),rgba(170,157,255,.095),transparent 65%),linear-gradient(135deg,rgba(52,47,83,.34),rgba(17,28,43,.28))}
.reveal.glass-card:not(.visible){--entry-y:32px;--entry-x:6deg}
.reveal.glass-card.visible{--entry-y:0px;--entry-x:0deg}
.glass-card::before{content:'';position:absolute;inset:-1px;pointer-events:none;border:1px solid transparent;border-radius:inherit;background:linear-gradient(120deg,rgba(236,227,255,.42),rgba(255,255,255,.025) 32%,rgba(130,231,213,.19) 75%,rgba(255,255,255,.12)) border-box;mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:xor}
.glass-card::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(130deg,rgba(255,255,255,.07),transparent 32%,transparent var(--glass-light,50%),rgba(168,154,255,.02));z-index:-1}
.glass-card:hover{border-color:rgba(206,191,255,.45);box-shadow:inset 0 1px 0 #ffffff16,0 26px 65px #0004,0 0 24px #a89aff0a}
.selection-card.selected,.certificate-selection.selected{background:radial-gradient(ellipse at var(--spot-x,50%) var(--spot-y,50%),#a89aff18,transparent 70%),linear-gradient(135deg,#a89aff18,#66e5c006);border-color:#b7a8ff99;box-shadow:inset 3px 0 0 var(--accent),0 15px 42px #0003}
.selection-card.selected::before,.certificate-selection.selected::before{opacity:.6}
.selection-card.glass-card h3,.panel.glass-card h3{color:var(--text);text-shadow:0 2px 10px #0002}
.glass-surface{border-color:#d0c6ff35;background:linear-gradient(140deg,#33294345,#182b3540);box-shadow:inset 0 1px 0 #fff2,0 24px 70px #0004}
.viewer-heading{background:linear-gradient(140deg,#a89aff0a,transparent);backdrop-filter:blur(12px)}
.pdf-frame{background:#f2f3fa}
.certificate-workspace .selection-list{padding:12px 14px 12px 8px;margin:-12px -7px -12px -8px;perspective:1300px}
.certificate-selection{border-radius:16px}
.certificate-symbol{background:linear-gradient(140deg,#c7bbff26,#66e5c010);box-shadow:inset 0 1px 0 #fff2,0 5px 15px #0002}
.project-metric strong,.metric-grid strong{text-shadow:0 0 28px #66e5c025}
.contact-note.glass-card{padding:35px;border:1px solid #d1c7ff24;border-radius:22px;background:linear-gradient(145deg,#a89aff0f,#66e5c005);backdrop-filter:blur(14px)}
.contact-rings{position:relative;width:116px;height:90px;perspective:700px;transform-style:preserve-3d}
.contact-rings i{position:absolute;inset:5px 0;border:1px solid #a89aff88;border-radius:50%;transform:rotateX(60deg) rotateY(var(--prism-turn,15deg))}
.contact-rings i:nth-child(2){border-color:#66e5c066;transform:rotateX(60deg) rotateY(60deg)}.contact-rings i:nth-child(3){transform:rotateX(-30deg) rotateY(60deg);border-color:#a89aff33}
.section-geometry{position:absolute;top:50px;right:-8px;width:150px;height:150px;pointer-events:none;z-index:-1;perspective:800px;opacity:.52;transform:translate3d(0,var(--prism-rise,0px),0)}
.glass-prism{width:90px;height:90px;position:absolute;top:30px;right:20px;transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(var(--prism-turn,35deg)) rotateZ(16deg)}
.prism-face{position:absolute;width:90px;height:90px;border:1px solid #b6a5ff66;background:linear-gradient(135deg,#b6a5ff09,#66e5c00c);box-shadow:inset 0 0 20px #a89aff06}
.prism-front{transform:translateZ(45px)}.prism-back{transform:rotateY(180deg) translateZ(45px)}.prism-left{transform:rotateY(-90deg) translateZ(45px)}.prism-right{transform:rotateY(90deg) translateZ(45px)}.prism-top{transform:rotateX(90deg) translateZ(45px)}.prism-bottom{transform:rotateX(-90deg) translateZ(45px)}
.geometry-orbit{position:absolute;inset:5px;border:1px solid #66e5c02a;border-radius:50%;transform:rotateX(60deg) rotateZ(var(--prism-turn,25deg))}
.geometry-1{top:70px}.geometry-1 .prism-face{border-color:#66e5c055;background:linear-gradient(135deg,#66e5c00e,#94aaff06)}.geometry-1 .glass-prism{transform:rotateX(30deg) rotateY(var(--prism-turn,35deg)) rotateZ(-16deg)}
.geometry-2 .glass-prism{width:100px;transform:rotateX(35deg) rotateY(var(--prism-turn,35deg)) rotateZ(30deg)}.geometry-2 .prism-face{border-color:#87c5ff55}
.experience-item{perspective:1300px}.experience-item .glass-card{transform-origin:left center}.experience-date time{text-shadow:0 0 25px #66e5c012}
.hero{background:radial-gradient(ellipse at 80% 42%,#a89aff12,transparent 50%)}
.signal-strip{background:linear-gradient(90deg,#a89aff08,#66e5c004,#a89aff08);backdrop-filter:blur(12px)}
.filter,.search-label input,.contact-form input,.contact-form textarea{background:#0c101c66;backdrop-filter:blur(10px)}.filter.active{background:var(--accent)}
.site-header{border-color:#cbc0ff2a;box-shadow:inset 0 1px 0 #fff1,0 10px 40px #0002;background:linear-gradient(140deg,#17152aba,#0c1720aa);backdrop-filter:blur(24px)}
@supports not (backdrop-filter:blur(1px)){.panel,.selection-card,.certificate-selection,.document-panel{background:#151a2c}.site-header{background:#121523}}
@media(max-width:800px){.ambient-glow{filter:blur(45px);opacity:.12}.section-geometry{width:100px;height:100px;opacity:.25;top:25px;right:0;transform:scale(.7)}.glass-card,.reveal.glass-card{transform-origin:center}.panel,.selection-card,.certificate-selection,.document-panel{backdrop-filter:blur(12px)}.certificate-workspace .selection-list{padding:8px;margin:-8px 0}.contact-note.glass-card{display:none}}
@media(prefers-reduced-motion:reduce){.glass-card,.reveal.glass-card,.glass-prism,.section-geometry,.ambient-glow{transform:none!important;transition:none!important}.ambient-glow{will-change:auto}.reveal.glass-card{opacity:1}}
.motion-disabled .glass-card,.motion-disabled .reveal.glass-card,.motion-disabled .hero-visual,.motion-disabled .glass-prism,.motion-disabled .section-geometry,.motion-disabled .ambient-glow,.motion-reduced .glass-card,.motion-reduced .glass-prism,.motion-reduced .hero-visual{transform:none!important}.motion-disabled .ambient-glow{will-change:auto}

/* The hero tells the same story as the work: data, a connected workflow,
   and a clear result. Animations pause when these elements leave view. */
.hero-grid{gap:56px;grid-template-columns:1.05fr 1fr;min-height:600px}
.hero h1{font-size:clamp(52px,5.7vw,82px);line-height:1.06;letter-spacing:-.065em;margin-bottom:24px}
.hero-signature{font-size:19px;font-weight:650;color:var(--text);margin:0 0 8px;letter-spacing:-.03em}
.hero h2{font-size:15px;line-height:1.5;color:var(--muted);max-width:500px;margin-bottom:0}
.hero-summary{font-size:16px;line-height:1.85;margin-top:24px}
.hero-visual{height:560px;perspective:1200px}
.insight-board{top:185px;border-radius:24px;background:linear-gradient(145deg,#40365958,#172f3748);backdrop-filter:blur(26px);box-shadow:inset 0 1px 0 #e7deff40,0 36px 80px #0005;animation:board-float 7s ease-in-out infinite;animation-play-state:paused}
.hero-visual.is-in-view .insight-board{animation-play-state:running}
.board-chart{height:106px;margin:22px 0 20px;padding-inline:10px;gap:10px}
.board-chart i{transform-origin:bottom;animation:chart-breathe 5s ease-in-out infinite;animation-delay:calc(var(--i)*-.6s);animation-play-state:paused}
.hero-visual.is-in-view .board-chart i{animation-play-state:running}
.board-top{font-size:10px}.metric-grid strong{font-size:28px}.metric-grid span{font-size:9px}
.floating-label{display:flex;align-items:center;gap:10px;bottom:0;right:0;background:#18273488;backdrop-filter:blur(16px);border-color:#66e5c03b}
.orbit{border-color:#a89aff28;top:60px;width:490px;height:450px;left:-8%}.orbit-two{width:540px;height:550px;left:-1%;top:-15px;border-color:#66e5c016}
.cube-scene{top:0;right:24px;animation:cube-float 8s ease-in-out infinite;animation-play-state:paused}.hero-visual.is-in-view .cube-scene{animation-play-state:running}
.cube-face{background:linear-gradient(140deg,#c4b3ff1f,#66e5c014);box-shadow:inset 0 0 30px #a89aff0d}
.cube-circuit{width:40%;height:40%;border:1px solid #66e5c077;border-radius:8px;box-shadow:0 0 20px #66e5c01a;position:relative}
.cube-circuit::after{content:'';position:absolute;inset:9px;background:#66e5c06b;border-radius:3px;box-shadow:0 0 14px #66e5c066}
.workflow-flow{position:absolute;top:65px;left:-15px;right:32px;display:flex;align-items:center;z-index:3;transform:perspective(1000px) rotateY(-12deg) rotateX(10deg) translateZ(28px);filter:drop-shadow(0 18px 22px #0004)}
.flow-node{width:30%;min-height:95px;border:1px solid #d5c8ff4a;border-radius:15px;background:linear-gradient(140deg,#3b335b99,#142532b8);backdrop-filter:blur(18px);padding:16px 13px;position:relative;overflow:hidden;box-shadow:inset 0 1px 0 #fff2}
.flow-node strong{display:block;font-size:12px;margin-top:9px;font-weight:500;color:var(--text)}.flow-number{font-size:9px;letter-spacing:.12em;color:var(--secondary)}
.flow-grid{position:absolute;right:8px;top:12px;width:23px;height:23px;border:1px solid #66e5c029;border-radius:5px;background:linear-gradient(90deg,transparent 45%,#66e5c02c 50%,transparent 55%),linear-gradient(transparent 45%,#66e5c02c 50%,transparent 55%)}
.flow-node-1{transform:translateY(-10px) translateZ(20px);border-color:#66e5c05a}.flow-node-2{transform:translateY(-20px) translateZ(40px)}
.flow-connector{flex:1;height:1px;min-width:18px;background:linear-gradient(90deg,#a89aff77,#66e5c0aa);position:relative;transform:translateY(-7px)}
.flow-connector::after{content:'';position:absolute;top:-2px;left:0;width:5px;height:5px;background:var(--secondary);border-radius:50%;box-shadow:0 0 14px var(--secondary);animation:flow-travel 3s ease-in-out infinite;animation-play-state:paused}
.hero-visual.is-in-view .flow-connector::after{animation-play-state:running}.flow-connector:nth-of-type(2)::after{animation-delay:1.5s}
.signal-strip span{display:flex;align-items:center;gap:12px}.signal-strip span::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--secondary);opacity:.5}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px}.service-card{padding:30px;overflow:hidden}.service-card h3{font-size:24px;margin-top:22px}.service-card p{font-size:13px;line-height:1.85;margin-bottom:24px}.service-diagram{height:76px;position:relative;display:flex;align-items:center;gap:16px;margin-top:28px;transform-style:preserve-3d}
.service-diagram::before{content:'';position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,#a89aff66,#66e5c033,transparent)}
.service-diagram i{display:block;width:40px;height:40px;background:linear-gradient(135deg,#a89aff2a,#66e5c012);border:1px solid #c5b7ff4d;border-radius:9px;box-shadow:0 10px 15px #0002,inset 0 1px 0 #fff2;transform:rotateX(25deg) rotateY(-20deg);animation:node-float 5s ease-in-out infinite;animation-play-state:paused}
.service-card.is-in-view .service-diagram i{animation-play-state:running}.service-diagram i:nth-child(2){animation-delay:-1s}.service-diagram i:nth-child(3){animation-delay:-2s}.service-diagram i:nth-child(4){animation-delay:-3s}
.diagram-1{gap:10px;align-items:end}.diagram-1::before{top:auto;bottom:0}.diagram-1 i{height:30px;width:32px;border-radius:6px 6px 0 0;background:linear-gradient(0deg,#a89aff0a,#a89aff3d)}.diagram-1 i:nth-child(2){height:45px}.diagram-1 i:nth-child(3){height:55px}.diagram-1 i:nth-child(4){height:70px;background:linear-gradient(0deg,#66e5c00a,#66e5c049)}
.diagram-2{gap:0}.diagram-2 i{width:100px;height:58px;border-radius:10px;position:absolute;background:linear-gradient(135deg,#3d35528c,#17352e6b);left:20px;top:15px}.diagram-2 i:nth-child(2){left:40px;top:5px}.diagram-2 i:nth-child(3){left:60px;top:-5px}.diagram-2 i:nth-child(4){left:80px;top:-15px}
.contact-rings{margin-bottom:28px}.contact-note>p{font-size:32px}.contact-form{background:linear-gradient(130deg,#a89aff15,#66e5c007)}
.certificate-symbol{font-size:11px;font-variant-numeric:tabular-nums;color:var(--secondary)}
.service-card:hover .text-link{color:var(--text)}
.document-panel{max-height:calc(100svh - 135px);overflow:auto;scrollbar-width:thin;scrollbar-color:#645775 transparent}.viewer-heading{position:sticky;top:0;z-index:2;background:linear-gradient(140deg,#27243aeb,#13222aeb);backdrop-filter:blur(24px)}
#project-list{max-height:980px;overflow:auto;padding:12px 14px 12px 8px;margin:-12px -7px -12px -8px;scrollbar-width:thin;scrollbar-color:#645775 transparent;perspective:1300px}
.services-grid,.about-grid,.skills-grid,.contact-grid{perspective:1400px}
@keyframes flow-travel{0%,15%{left:0;opacity:0}25%{opacity:1}80%{opacity:1}100%{left:100%;opacity:0}}
@keyframes board-float{0%,100%{transform:perspective(1100px) rotateY(-9deg) rotateX(6deg) translateY(0)}50%{transform:perspective(1100px) rotateY(-5deg) rotateX(4deg) translateY(-9px)}}
@keyframes cube-float{0%,100%{transform:translateY(0) rotateZ(-4deg)}50%{transform:translateY(-15px) rotateZ(4deg)}}
@keyframes chart-breathe{0%,100%{transform:scaleY(.85)}50%{transform:scaleY(1)}}
@keyframes node-float{0%,100%{transform:rotateX(25deg) rotateY(-20deg) translateY(0)}50%{transform:rotateX(15deg) rotateY(-12deg) translateY(-6px)}}
@media(max-width:1100px){.hero-grid{gap:35px}.hero h1{font-size:clamp(48px,6vw,72px)}.hero-visual{height:620px}.flow-node{padding:14px 10px}.flow-node strong{font-size:10px}.workflow-flow{left:0;right:0}.services-grid{gap:14px}.service-card{padding:24px}.service-card h3{font-size:21px}.service-diagram{gap:10px}.service-diagram i{width:34px}.orbit{width:350px}.orbit-two{width:400px}.floating-label{bottom:10px}}
@media(max-width:800px){.hero-grid{grid-template-columns:1fr;gap:45px}.hero h1{font-size:clamp(52px,9vw,80px)}.hero-visual{height:530px;max-width:530px}.hero-signature{font-size:18px}.hero h2{font-size:15px}.services-grid{grid-template-columns:1fr}.service-diagram{height:65px}.workflow-flow{left:0;right:0;top:65px}.flow-node strong{font-size:12px}.insight-board{top:195px}.contact-note.glass-card{display:block}.contact-note>p{font-size:28px}.contact-rings{height:70px}.orbit{width:400px}.orbit-two{width:460px}.document-panel{max-height:none;overflow:hidden}.viewer-heading{position:static}#project-list{max-height:720px}}
@media(max-width:480px){.hero-visual{height:490px}.hero h1{font-size:clamp(44px,11.2vw,58px)}.hero-summary{font-size:14px}.flow-node{padding:14px 9px;min-height:85px}.flow-node strong{font-size:10px}.flow-grid{width:17px;height:17px;right:8px}.workflow-flow{top:55px;right:8px}.insight-board{top:165px;padding:22px 16px}.cube-scene{right:18px;top:0}.orbit{width:290px;height:380px}.orbit-two{width:340px;height:420px}.metric-grid strong{font-size:25px}.metric-grid span{font-size:8px}.floating-label{bottom:15px;font-size:10px}.board-chart{height:95px}.service-card{padding:26px}.contact-note.glass-card{padding:28px}}
@media(prefers-reduced-motion:reduce){.insight-board,.cube-scene,.board-chart i,.flow-connector::after,.service-diagram i{animation:none!important}.insight-board,.workflow-flow{transform:none}.contact-rings i{transform:rotateX(45deg)}}
.motion-disabled .insight-board,.motion-disabled .workflow-flow{transform:none}
