:root{color-scheme:light;--page-bg:#f4f1ed;--card-bg:rgba(255, 255, 255, 0.8);--card-border:rgba(32, 32, 32, 0.09);--panel-bg:rgba(255, 255, 255, 0.48);--panel-border:rgba(255, 255, 255, 0.62);--text:#171717;--muted:#757575;--shadow:0 28px 60px rgba(45, 45, 45, 0.17);--soft-shadow:0 15px 36px rgba(150, 150, 150, 0.18);--gradient:linear-gradient(135deg, #ffd45f 0%, #b5c1f3 100%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{margin:0;min-height:100%}body{-webkit-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.contact-form *,input,select,textarea{-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}img{-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none;user-drag:none;pointer-events:none}::selection{background:rgba(181,193,243,.5);color:#171717}body.dark ::selection{background:rgba(181,193,243,.35);color:#f4f0eb}.scroll-progress{background:var(--gradient);box-shadow:0 1px 6px rgba(181,193,243,.4);height:5px;left:0;position:fixed;top:0;transform-origin:left;transform:scaleX(0);will-change:transform;width:100%;z-index:150}.page-curtain{background:linear-gradient(180deg,#f6f4f1 0,#efebe7 100%);inset:0;pointer-events:none;position:fixed;transform:translateY(0);transition:transform .9s cubic-bezier(.76, 0, .24, 1);z-index:250}body.dark .page-curtain{background:linear-gradient(180deg,#121212 0,#181818 100%)}.page-curtain.is-lifted{transform:translateY(100%)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#ffd45f,#b5c1f3);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#f0c640,#9aa8e8)}.page-loader{align-items:center;background:radial-gradient(circle at 30% 30%,rgba(255,212,95,.18),transparent 60%),radial-gradient(circle at 70% 70%,rgba(181,193,243,.22),transparent 60%),linear-gradient(180deg,#f6f4f1 0,#efebe7 100%);display:flex;inset:0;justify-content:center;padding:2rem;position:fixed;transition:opacity .6s cubic-bezier(.76, 0, .24, 1),visibility .6s;z-index:250}body.dark .page-loader{background:radial-gradient(circle at 30% 30%,rgba(238,184,78,.12),transparent 60%),radial-gradient(circle at 70% 70%,rgba(130,145,210,.16),transparent 60%),linear-gradient(180deg,#121212 0,#181818 100%)}.page-loader.is-hidden{opacity:0;pointer-events:none;visibility:hidden}.loader-inner{align-items:center;display:flex;flex-direction:column;gap:1.4rem;max-width:320px;text-align:center;width:100%}.loader-logo{animation:loader-logo-in .7s cubic-bezier(.22,1,.36,1) both;filter:drop-shadow(0 10px 30px rgba(255, 212, 95, .35))}.loader-logo svg{animation:loader-logo-float 3s ease-in-out infinite .7s;height:72px;width:72px}.loader-name{animation:loader-fade-up .7s cubic-bezier(.22,1,.36,1) 150ms both;background:linear-gradient(135deg,#ffd45f 0,#b5c1f3 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:clamp(1.4rem, 3vw, 1.8rem);font-weight:800;letter-spacing:-.04em;line-height:1;margin:0}.loader-tag{animation:loader-fade-up .7s cubic-bezier(.22,1,.36,1) .3s both;color:var(--muted);font-size:.85rem;font-weight:600;letter-spacing:.12em;margin:0;text-transform:uppercase}.loader-progress{animation:loader-fade-up .7s cubic-bezier(.22,1,.36,1) 450ms both;background:rgba(0,0,0,.08);border-radius:999px;height:2px;margin-top:.6rem;overflow:hidden;width:180px}body.dark .loader-progress{background:rgba(255,255,255,.1)}.loader-progress-bar{animation:loader-progress-fill 1.8s cubic-bezier(.65,0,.35,1) infinite;background:linear-gradient(90deg,#ffd45f,#b5c1f3);border-radius:inherit;height:100%;width:30%}@keyframes loader-logo-in{from{opacity:0;transform:scale(.6) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes loader-logo-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes loader-fade-up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes loader-progress-fill{0%{transform:translateX(-100%)}50%{transform:translateX(250%)}100%{transform:translateX(-100%)}}.page-error{align-items:center;background:inherit;display:flex;flex-direction:column;gap:1rem;inset:0;justify-content:center;padding:2rem;position:fixed;text-align:center;z-index:200}.page-error[hidden]{display:none}.error-icon{align-items:center;background:var(--gradient);border-radius:50%;color:#171717;display:inline-flex;height:72px;justify-content:center;margin-bottom:.5rem;width:72px}.error-icon svg{height:36px;width:36px}.page-error h2{font-size:clamp(1.4rem, 3vw, 1.8rem);letter-spacing:-.04em;margin:0}.page-error p{color:var(--muted);font-size:1rem;margin:0;max-width:28rem}.page-error .button{margin-top:.5rem;min-height:3rem}:root{--cursor-color:#171717;--cursor-color-alpha:rgba(23, 23, 23, 0.4)}body.dark{--cursor-color:#f4f0eb;--cursor-color-alpha:rgba(244, 240, 235, 0.4)}body,body *,html{cursor:none!important}.cursor-inner,.cursor-outer{border-radius:50%;display:block;left:0;opacity:0;pointer-events:none;position:fixed;top:0;transform:translate(-50%,-50%);z-index:9999}.cursor-inner{background:var(--cursor-color);height:15px;transition:opacity 150ms ease-in-out,transform 250ms ease-in-out;width:15px}.cursor-outer{background:var(--cursor-color-alpha);height:15px;transition:opacity 150ms ease-in-out,transform 150ms ease-in-out;will-change:transform;width:15px}.cursor-inner.is-visible,.cursor-outer.is-visible{opacity:1}@media (pointer:coarse){body,body *,html{cursor:auto!important}.cursor-inner,.cursor-outer{display:none}}body{background:radial-gradient(circle at 15% 18%,rgba(255,212,95,.18),transparent 22%),radial-gradient(circle at 70% 10%,rgba(181,193,243,.22),transparent 26%),linear-gradient(180deg,#f6f4f1 0,#efebe7 100%);color:var(--text);font-family:Manrope,"Segoe UI",sans-serif;overflow-x:hidden;transition:background .4s ease,color .4s ease}body::before{background-image:radial-gradient(circle,rgba(23,23,23,.08) 1px,transparent 1px);background-size:28px 28px;content:"";inset:0;opacity:.6;pointer-events:none;position:fixed;z-index:0}body.dark::before{background-image:radial-gradient(circle,rgba(255,255,255,.06) 1px,transparent 1px)}body::after{content:"";inset:0;opacity:.025;pointer-events:none;position:fixed;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}body.dark{color-scheme:dark;--page-bg:#161616;--card-bg:rgba(25, 25, 25, 0.8);--card-border:rgba(255, 255, 255, 0.08);--panel-bg:rgba(42, 42, 42, 0.45);--panel-border:rgba(255, 255, 255, 0.09);--text:#f4f0eb;--muted:#b4b0ac;--shadow:0 28px 60px rgba(0, 0, 0, 0.35);--soft-shadow:0 15px 36px rgba(0, 0, 0, 0.26);background:radial-gradient(circle at 15% 18%,rgba(238,184,78,.14),transparent 22%),radial-gradient(circle at 70% 10%,rgba(130,145,210,.18),transparent 26%),linear-gradient(180deg,#121212 0,#181818 100%)}body.dark .button-light{background:rgba(255,255,255,.08)}a{color:inherit}.page-shell{display:block;min-height:100vh;padding:0}.portfolio-card{background:0 0;border:0;box-shadow:none;min-height:100vh;overflow:clip;padding:1.25rem 2rem 0;position:relative}.ambient{border-radius:999px;filter:blur(60px);pointer-events:none;position:absolute}.ambient-gold{animation:float-gold 8s ease-in-out infinite;background:rgba(255,196,163,.42);height:180px;left:5%;top:-20px;width:300px}.ambient-rose{animation:float-rose 10s ease-in-out infinite;background:rgba(210,200,170,.25);height:240px;left:35%;top:-30px;width:340px}.ambient-blue{animation:float-blue 9s ease-in-out infinite;background:rgba(178,188,244,.3);height:240px;right:8%;top:-20px;width:280px}@keyframes float-gold{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,15px) scale(1.08)}66%{transform:translate(-15px,-10px) scale(.95)}}@keyframes float-rose{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-20px,20px) scale(1.05)}66%{transform:translate(25px,-15px) scale(.97)}}@keyframes float-blue{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-25px,-20px) scale(1.06)}66%{transform:translate(20px,10px) scale(.96)}}.content-stack,.topbar{position:relative;z-index:1}.topbar{animation:topbar-enter .7s cubic-bezier(.22,1,.36,1) both}.topbar{align-items:center;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:rgba(255,255,255,.38);border:1px solid rgba(255,255,255,.75);border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7);display:flex;justify-content:space-between;margin:0 auto;max-width:1170px;padding:.9rem 1.3rem;position:sticky;top:1rem;z-index:50}body.dark .topbar{background:rgba(38,38,38,.52);border-color:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.nav-links{display:flex;gap:2rem}.nav-links a{color:inherit;font-size:.95rem;font-weight:700;position:relative;text-decoration:none}.nav-links a{border-radius:999px;padding:.3rem .55rem;transition:background-color 160ms ease,color 160ms ease,transform 160ms ease}.nav-links a:hover{transform:translateY(-1px)}.nav-links a.is-active{background:rgba(255,255,255,.55)}body.dark .nav-links a.is-active{background:rgba(255,255,255,.08)}.topbar-actions{align-items:center;display:flex;flex-shrink:0;gap:1rem}.topbar-actions a{color:inherit;display:grid;place-items:center;width:1.2rem}.topbar-actions svg{fill:currentColor;height:1.2rem;width:1.2rem}.theme-toggle{background:0 0;border:1.5px solid currentColor;border-radius:999px;cursor:pointer;display:inline-flex;height:1.6rem;padding:.12rem;width:2.9rem}.theme-toggle span{background:currentColor;border-radius:50%;display:block;height:100%;transition:transform 180ms ease;width:1.15rem}body.dark .theme-toggle span{transform:translateX(1.2rem)}.content-stack{display:flex;flex-direction:column;gap:4.8rem;margin:0 auto;max-width:1170px;padding:0 0 6rem}.hero{align-items:center;display:grid;gap:1.5rem;grid-template-columns:minmax(0,1.3fr) minmax(260px,340px);margin-top:5rem;position:relative}.hero::before{animation:hero-glow-pulse 6s ease-in-out infinite;background:radial-gradient(circle,rgba(110,231,183,.3) 0,rgba(52,211,153,.18) 35%,transparent 70%);border-radius:50%;content:"";filter:blur(50px);height:500px;left:-80px;pointer-events:none;position:absolute;top:-80px;width:500px;z-index:-1}.hero::after{animation:hero-glow-pulse 7s ease-in-out infinite reverse;background:radial-gradient(circle,rgba(167,139,250,.35) 0,rgba(129,140,248,.18) 40%,transparent 70%);border-radius:50%;bottom:-50px;content:"";filter:blur(60px);height:400px;pointer-events:none;position:absolute;right:-50px;width:400px;z-index:-1}@keyframes hero-glow-pulse{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.hero-copy h1{animation:gradient-shift 6s ease infinite;background:linear-gradient(135deg,#171717 0,#ffd45f 30%,#b5c1f3 70%,#171717 100%);background-clip:text;background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:clamp(3rem, 5.4vw, 5.4rem);font-weight:800;letter-spacing:-.08em;line-height:.96;margin:0 0 1.5rem}body.dark .hero-copy h1{background:linear-gradient(135deg,#f4f0eb 0,#ffd45f 30%,#b5c1f3 70%,#f4f0eb 100%);background-clip:text;background-size:300% 300%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 6s ease infinite}@keyframes gradient-shift{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.eyebrow{color:var(--muted);font-size:clamp(2.2rem, 4vw, 4rem);font-weight:800;letter-spacing:-.08em;margin:0 0 -.3rem}.typewriter{align-items:center;color:var(--muted);display:flex;font-size:clamp(1.2rem, 2vw, 1.6rem);font-weight:700;margin-bottom:.6rem;min-height:2em}.typewriter-text{border-right:2.5px solid;border-image:var(--gradient) 1;padding-right:.1em;animation:blink-caret 750ms steps(1) infinite}@keyframes blink-caret{0%,100%{border-color:transparent}50%{border-image:var(--gradient) 1}}.contact-card p,.description,.project-card p,.prose-panel p,.skill-card p,.timeline-card p{color:var(--muted);font-size:1.05rem;line-height:1.6;margin:0}.description{margin-bottom:2rem;max-width:41rem}.hero-badges{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1.2rem}.info-pill{backdrop-filter:blur(16px);background:rgba(255,255,255,.52);border:1px solid rgba(255,255,255,.62);border-radius:999px;box-shadow:var(--soft-shadow);color:var(--muted);display:inline-flex;font-size:.82rem;font-weight:800;letter-spacing:.04em;padding:.55rem .9rem;transition:background .4s ease,border-color .4s ease,color .4s ease}body.dark .info-pill{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.08)}.cta-row{display:flex;gap:1.2rem}.button{align-items:center;border-radius:.9rem;box-shadow:var(--soft-shadow);display:inline-flex;font-size:1rem;font-weight:800;gap:.65rem;min-height:4rem;overflow:hidden;padding:0 1.5rem;position:relative;text-decoration:none;transition:transform 180ms ease,box-shadow 180ms ease}.button::after{background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.3) 45%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.3) 55%,transparent 60%);content:"";inset:0;position:absolute;transform:translateX(-100%);transition:none}.button:hover::after{transform:translateX(100%);transition:transform .6s ease}.button:hover{box-shadow:0 18px 36px rgba(0,0,0,.16);transform:translateY(-2px)}.button:focus-visible{outline:2px solid #b5c1f3;outline-offset:3px}.button-dark{background:#101010;color:#fff}body.dark .button-dark{background:#f5f0ea;color:#151515}.button-light{background:rgba(255,255,255,.8);color:var(--text)}.button-light svg{animation:bounce-arrow 1.5s ease-in-out infinite;height:1rem;width:1rem}@keyframes bounce-arrow{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}.hero-figure{align-self:start;animation:portrait-float 5s ease-in-out infinite;display:flex;flex-direction:column;justify-self:end;position:relative;width:min(100%,340px)}@keyframes portrait-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}.glass-panel,.portrait-frame{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--panel-bg);border:1px solid var(--panel-border);box-shadow:var(--soft-shadow)}.portrait-frame{border-radius:2rem;height:420px;overflow:hidden;position:relative;width:100%}.portrait-frame::after{background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.55) 100%);content:"";inset:0;pointer-events:none;position:absolute}.portrait-badges{bottom:1rem;display:flex;flex-direction:column;gap:.5rem;left:1rem;position:absolute;right:1rem;z-index:2}.portrait-badges .info-pill{background:rgba(255,255,255,.18);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);color:#fff;justify-content:center;width:100%}body.dark .portrait-badges .info-pill{background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.15)}.portrait-frame img{display:block;height:100%;object-fit:cover;object-position:center top;width:100%}.section-grid{display:grid;gap:2rem;grid-template-columns:minmax(180px,230px) minmax(0,1fr);scroll-margin-top:9rem}.section-label{align-self:start;padding-top:.25rem;position:sticky;top:8.5rem}.section-label p{display:none}.section-label h2{font-size:clamp(1.9rem, 2.4vw, 2.6rem);letter-spacing:-.06em;line-height:1;margin:0 0 .6rem}.section-label h2::after{background:var(--gradient);border-radius:2px;content:"";display:block;height:3px;margin-top:.6rem;width:3rem}@media (max-width:980px){.section-label h2::after{margin-left:auto;margin-right:auto}}.section-body{display:flex;flex-direction:column;gap:1.3rem;min-width:0}.glass-panel{border-radius:1.6rem;overflow:hidden;padding:1.5rem;position:relative;transition:transform 360ms cubic-bezier(.22, 1, .36, 1),box-shadow 360ms ease,border-color 360ms ease}.glass-panel::before{background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(255,255,255,.15),transparent 60%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity 360ms ease;z-index:1}.glass-panel:hover::before{opacity:1}.glass-panel:hover{border-color:rgba(255,255,255,.8);box-shadow:0 24px 48px rgba(90,90,90,.16);transform:translateY(-6px)}body.dark .glass-panel::before{background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(255,255,255,.06),transparent 60%)}body.dark .glass-panel:hover{border-color:rgba(255,255,255,.14);box-shadow:0 24px 48px rgba(0,0,0,.24)}.prose-panel{padding:1.8rem}.prose-panel p+p{margin-top:1rem}.cards-grid,.skills-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.compact-grid .project-card{min-height:100%}.skill-card-icon{align-items:center;background:var(--gradient);border-radius:.8rem;color:#171717;display:inline-flex;height:2.6rem;justify-content:center;margin-bottom:.8rem;width:2.6rem}.skill-card-icon svg{fill:currentColor;height:1.3rem;width:1.3rem}.contact-card h3,.project-card h3,.skill-card h3,.timeline-card h3{font-size:1.2rem;letter-spacing:-.04em;margin:0 0 .65rem}.contact-icon{align-items:center;background:var(--gradient);border-radius:.6rem;color:#171717;display:inline-flex;height:2rem;justify-content:center;margin-bottom:.35rem;width:2rem}.contact-icon svg{fill:none;height:1rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:1rem}.soft-skills-grid{display:flex;flex-wrap:wrap;gap:.65rem}.soft-skill-tag{backdrop-filter:blur(16px);background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:999px;font-size:.88rem;font-weight:700;padding:.5rem 1rem;transition:transform .2s ease,box-shadow .2s ease}.soft-skill-tag:hover{box-shadow:var(--soft-shadow);transform:translateY(-2px)}.site-footer{border-top:1px solid var(--panel-border);margin:0 auto;max-width:1170px;padding:2rem 2rem 2.5rem;text-align:center}.footer-links{align-items:center;display:flex;gap:1.2rem;justify-content:center;margin-bottom:.8rem}.footer-links a{color:var(--muted);display:grid;place-items:center;transition:color .2s ease,transform .2s ease;width:1.3rem}.footer-links a:hover{color:var(--text);transform:translateY(-2px)}.footer-links svg{fill:currentColor;height:1.3rem;width:1.3rem}.footer-copy{color:var(--muted);font-size:.82rem;font-weight:500;margin:0}.progress-list{display:grid;gap:1rem}.progress-head{align-items:center;display:flex;font-size:.95rem;font-weight:700;justify-content:space-between;margin-bottom:.5rem}.progress-track{background:rgba(0,0,0,.07);border-radius:999px;height:.7rem;overflow:hidden}body.dark .progress-track{background:rgba(255,255,255,.1)}.progress-track span{background:linear-gradient(90deg,#ffd45f 0,#b5c1f3 100%);border-radius:inherit;display:block;height:100%;transition:width 1.2s cubic-bezier(.22, 1, .36, 1);width:0}.timeline{display:grid;gap:1rem;padding-left:2rem;position:relative}.timeline::before{background:var(--gradient);border-radius:999px;content:"";height:100%;left:0;position:absolute;top:0;width:3px}.timeline-card{position:relative}.timeline-card::before{background:var(--gradient);border:3px solid var(--panel-bg);border-radius:50%;content:"";height:14px;left:-2rem;position:absolute;top:1.6rem;transform:translateX(calc(-50% + 1.5px));width:14px}.timeline-top{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:0}.card-tag,.contact-card dt,.timeline-place,.timeline-top span{color:var(--muted)}.timeline-top span{font-size:.92rem;font-weight:700}.status-dot{align-items:center;display:inline-flex;gap:.4rem}.status-dot::before{animation:pulse-dot 2s ease-in-out infinite;background:#22c55e;border-radius:50%;content:"";display:inline-block;height:8px;width:8px}@keyframes pulse-dot{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}.timeline-place{font-size:.92rem;margin:0}.timeline-header{border-bottom:1px solid var(--panel-border);margin-bottom:1rem;padding-bottom:.9rem}.role-group{display:flex;flex-direction:column;gap:1.6rem}.role-entry{padding-left:1.4rem;position:relative}.role-entry::before{background:var(--gradient);border-radius:50%;box-shadow:0 0 0 3px var(--panel-bg);content:"";height:10px;left:0;position:absolute;top:.55rem;width:10px}.role-entry:only-child{padding-left:0}.role-entry:only-child::before{display:none}.role-entry-head{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.6rem}.role-entry-head h4{font-size:1.05rem;font-weight:800;letter-spacing:-.02em;margin:0}.role-entry-head span{color:var(--muted);font-size:.88rem;font-weight:700;white-space:nowrap}.role-list{display:flex;flex-direction:column;gap:.9rem;list-style:none;margin:0;padding:0}.role-list li{align-items:flex-start;display:flex;gap:.8rem}.role-list-icon{align-items:center;background:var(--gradient);border-radius:.5rem;color:#171717;display:inline-flex;flex-shrink:0;height:1.5rem;justify-content:center;margin-top:.15rem;width:1.5rem}.role-list-icon svg{fill:none;height:.85rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3;width:.85rem}.role-list li p{color:var(--muted);font-size:1.05rem;line-height:1.6;margin:0}.edu-description{border-top:1px solid var(--panel-border);margin-top:1.1rem;padding-top:1rem}.project-card{display:flex;flex-direction:column;gap:.85rem}.inline-points{color:var(--muted);display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.inline-points li{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.65);border-radius:999px;font-size:.8rem;font-weight:700;padding:.45rem .75rem}body.dark .inline-points li{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08)}.card-tag{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.project-card a{font-size:.95rem;font-weight:800;margin-top:auto;text-decoration:none}.contact-layout{display:grid;gap:1rem;grid-template-columns:minmax(0,0.95fr) minmax(0,1.05fr)}.contact-card dl{display:grid;gap:1rem;margin:1.4rem 0 0}.contact-card dt{font-size:.82rem;font-weight:800;letter-spacing:.08em;margin-bottom:.25rem;text-transform:uppercase}.contact-card dd{font-size:1rem;margin:0}.contact-card dd a{text-decoration:none}.contact-form{display:grid;gap:1rem}.contact-form label{color:var(--muted);display:grid;font-size:.92rem;font-weight:700;gap:.45rem}.contact-form input,.contact-form textarea{background:rgba(255,255,255,.58);border:1px solid rgba(0,0,0,.08);border-radius:1rem;color:var(--text);font:inherit;padding:1rem 1rem .95rem;width:100%}.contact-form textarea{resize:vertical}body.dark .contact-form input,body.dark .contact-form textarea{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08)}.submit-link{justify-content:center;border:none;cursor:pointer}.form-status{font-size:.92rem;font-weight:700;margin:0;min-height:1.4em;text-align:center}.form-status.success{color:#2e7d32}.form-status.error{color:#c62828}body.dark .form-status.success{color:#81c784}body.dark .form-status.error{color:#ef9a9a}.reveal{opacity:0;transform:translateY(16px) scale(.992);transition:opacity 520ms cubic-bezier(.22, 1, .36, 1),transform 520ms cubic-bezier(.22, 1, .36, 1);transition-delay:calc(var(--reveal-index, 0) * 55ms)}.reveal.is-visible{opacity:1;transform:translateY(0) scale(1)}.scroll-top{align-items:center;backdrop-filter:blur(16px);background:rgba(255,255,255,.66);border:1px solid rgba(255,255,255,.72);border-radius:999px;bottom:1.5rem;box-shadow:0 18px 36px rgba(90,90,90,.18);color:var(--text);cursor:pointer;display:inline-flex;height:3.2rem;justify-content:center;opacity:0;pointer-events:none;position:fixed;right:1.5rem;transform:translateY(10px) scale(.96);transition:opacity 180ms ease,transform 180ms ease,box-shadow 180ms ease;width:3.2rem;z-index:20}body.dark .scroll-top{background:rgba(35,35,35,.7);border-color:rgba(255,255,255,.08)}.scroll-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.scroll-top:hover{box-shadow:0 22px 42px rgba(90,90,90,.22);transform:translateY(-2px)}.scroll-top svg{height:1.2rem;width:1.2rem}@keyframes topbar-enter{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:translateY(0)}}.nav-links a:focus-visible,.scroll-top:focus-visible,.theme-toggle:focus-visible,.topbar-actions a:focus-visible{outline:2px solid #b5c1f3;outline-offset:3px}.contact-form input:focus-visible,.contact-form textarea:focus-visible{border-color:#b5c1f3;box-shadow:0 0 0 3px rgba(181,193,243,.3);outline:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.topbar{animation:none;opacity:1;transform:none;transition:none}.button,.glass-panel,.nav-links a,.scroll-top{transition:none}.button:hover,.glass-panel:hover,.nav-links a:hover,.scroll-top:hover{transform:none}.ambient-blue,.ambient-gold,.ambient-rose,.button-light svg,.hero-copy h1,.hero-figure,.hero::after,.hero::before,.page-curtain,.portrait-frame,.status-dot::before{animation:none}.page-curtain{display:none}.progress-track span{transition:none}.typewriter-text{animation:none;border-right:none}}@media (max-width:980px){.topbar{border-radius:2rem;flex-wrap:wrap;gap:1rem;justify-content:center}.nav-links{flex-wrap:wrap;justify-content:center}.contact-layout,.hero,.section-grid{grid-template-columns:1fr}.hero{margin-top:5rem;text-align:center}.hero-copy{align-items:center;display:flex;flex-direction:column}.hero-figure{justify-self:center;width:min(100%,340px)}.cards-grid,.skills-grid{grid-template-columns:1fr}.section-label{position:static;text-align:center;top:auto}.cta-row{flex-wrap:wrap;justify-content:center}.hero::before{height:320px;left:-40px;top:-40px;width:320px}.hero::after{bottom:-40px;height:260px;right:-40px;width:260px}.ambient-blue,.ambient-gold,.ambient-rose{animation:none}.hero-figure{animation:none}.hero::after,.hero::before{animation:none}}@media (max-width:640px){.page-shell{padding:0}.portfolio-card{padding:1rem 1rem 0}.content-stack{gap:3rem;padding-bottom:4rem}.nav-links{gap:1rem 1.2rem}.hero{margin-top:3rem}.hero-copy h1{font-size:2.5rem}.contact-card p,.description,.project-card p,.prose-panel p,.role-list li p,.skill-card p,.timeline-card p{font-size:.98rem}.hero-figure{width:min(100%,260px)}.portrait-frame{height:280px}.topbar{padding:.8rem 1rem}.role-entry-head,.timeline-top{align-items:flex-start;flex-direction:column;gap:.35rem}.timeline{padding-left:1.5rem}.timeline-card::before{left:-1.5rem}}@media (max-width:480px){.portfolio-card{padding:.75rem .75rem 0}.topbar{border-radius:1.3rem;gap:.75rem;padding:.75rem .85rem}.nav-links a{font-size:.88rem;padding:.25rem .45rem}.topbar-actions{gap:.75rem}.content-stack{gap:3.2rem;padding-bottom:3.5rem}.hero-copy h1{font-size:2.2rem}.contact-card p,.description,.project-card p,.prose-panel p,.skill-card p,.timeline-card p{font-size:.94rem}.info-pill,.inline-points li{font-size:.72rem}.scroll-top{bottom:1rem;height:2.8rem;right:1rem;width:2.8rem}}.button{--magnetic-x:0;--magnetic-y:0;transform:translate(var(--magnetic-x),var(--magnetic-y));transition:transform 280ms cubic-bezier(.22, 1, .36, 1),box-shadow 180ms ease}.button:hover{box-shadow:0 18px 36px rgba(0,0,0,.16);transform:translate(var(--magnetic-x),calc(var(--magnetic-y) - 2px))}.portrait-frame{perspective:1000px;transform-style:preserve-3d;transition:transform 260ms cubic-bezier(.22, 1, .36, 1);cursor:pointer}.portrait-frame picture{display:block;height:100%;transform:translateZ(0);transition:transform 260ms cubic-bezier(.22, 1, .36, 1);width:100%}.command-palette{align-items:flex-start;backdrop-filter:blur(8px);background:rgba(0,0,0,.4);display:flex;inset:0;justify-content:center;opacity:0;padding-top:15vh;pointer-events:none;position:fixed;transition:opacity .2s ease;z-index:300}.command-palette.is-open{opacity:1;pointer-events:auto}.command-palette-box{backdrop-filter:blur(20px);background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:1.4rem;box-shadow:0 40px 80px rgba(0,0,0,.3);max-height:60vh;max-width:520px;overflow:hidden;transform:scale(.95) translateY(-10px);transition:transform 240ms cubic-bezier(.22, 1, .36, 1);width:90%}.command-palette.is-open .command-palette-box{transform:scale(1) translateY(0)}.command-palette-header{align-items:center;border-bottom:1px solid var(--panel-border);display:flex;gap:.5rem;padding-right:.8rem}.command-palette-input{background:0 0;border:0;color:var(--text);flex:1;font:inherit;font-size:1.05rem;font-weight:600;padding:1.2rem 1.5rem;width:100%}.command-palette-input:focus{outline:0}.command-palette-close{align-items:center;background:0 0;border:1px solid var(--panel-border);border-radius:.5rem;color:var(--muted);cursor:pointer;display:flex;flex-shrink:0;height:2rem;justify-content:center;padding:0;transition:color 160ms ease,border-color 160ms ease,background 160ms ease;width:2rem}.command-palette-close:hover{background:rgba(181,193,243,.15);border-color:var(--text);color:var(--text)}.command-palette-close svg{height:1rem;width:1rem}.command-palette-list{list-style:none;margin:0;max-height:40vh;overflow-y:auto;padding:.5rem}.command-palette-item{align-items:center;border-radius:.7rem;cursor:pointer;display:flex;font-size:.95rem;font-weight:700;gap:.8rem;justify-content:space-between;padding:.8rem 1rem;transition:background 150ms ease}.command-palette-item.is-focused,.command-palette-item:hover{background:rgba(228,166,208,.2)}.command-palette-item span:last-child{color:var(--muted);font-size:.78rem;font-weight:500}.command-palette-hint{border-top:1px solid var(--panel-border);color:var(--muted);font-size:.78rem;font-weight:500;padding:.7rem 1.5rem;text-align:center}.command-palette-hint kbd{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:.3rem;font-family:inherit;font-size:.7rem;padding:.1rem .35rem}.lightbox{align-items:center;backdrop-filter:blur(12px);background:rgba(0,0,0,.8);display:flex;inset:0;justify-content:center;opacity:0;padding:2rem;pointer-events:none;position:fixed;transition:opacity 260ms ease;z-index:310}.lightbox.is-open{opacity:1;pointer-events:auto}.lightbox img{border-radius:1rem;box-shadow:0 30px 80px rgba(0,0,0,.5);max-height:90vh;max-width:90vw;object-fit:contain;transform:scale(.92);transition:transform .3s cubic-bezier(.22, 1, .36, 1)}.lightbox.is-open img{transform:scale(1)}.lightbox-close{align-items:center;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;cursor:pointer;display:flex;height:3rem;justify-content:center;position:absolute;right:1.5rem;top:1.5rem;width:3rem}.lightbox-close svg{height:1.2rem;stroke:currentColor;stroke-linecap:round;stroke-width:2;width:1.2rem}@media print{body{background:#fff!important;color:#000!important}.ambient,.command-palette,.cursor-inner,.cursor-outer,.hero-figure,.lightbox,.page-curtain,.page-loader,.scroll-progress,.scroll-top,.site-footer,.topbar,.typewriter,body::after,body::before{display:none!important}.hero::after,.hero::before{display:none!important}.hero-copy h1{-webkit-text-fill-color:#000!important;background:0 0!important;color:#000!important}.content-stack{gap:2rem;max-width:100%}.section-grid{break-inside:avoid;grid-template-columns:1fr!important;page-break-inside:avoid}.section-label{position:static!important}.glass-panel{backdrop-filter:none!important;background:#fff!important;border:1px solid #ddd!important;box-shadow:none!important;break-inside:avoid}.portrait-frame{display:none!important}a{color:#000!important;text-decoration:none!important}.timeline-card::before,.timeline::before{background:#888!important}.soft-skill-tag{background:#f5f5f5!important;border:1px solid #ddd!important}}