*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.portfolio-shell{position:relative;width:100%;overflow-x:hidden;overflow-x:clip;color:var(--text);background:var(--paper)}.section-shell{width:min(1140px,calc(100% - 40px));margin-inline:auto}.section-pad{padding-block:112px}.section-surface{position:relative;isolation:isolate}.section-surface:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;content:"";background:radial-gradient(rgba(15,23,42,.05) 1px,transparent 1.4px) 0 0 / 24px 24px,radial-gradient(620px 320px at 8% 0%,rgba(24,213,209,.08),transparent 70%),radial-gradient(620px 320px at 95% 100%,rgba(247,201,72,.09),transparent 70%),#fff;border-block:1px solid rgba(15,23,42,.07)}#about,#education,#achievements{position:relative;isolation:isolate}#about:before,#education:before,#achievements:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;content:"";background:radial-gradient(560px 300px at 10% 8%,rgba(24,213,209,.07),transparent 70%),radial-gradient(520px 300px at 92% 92%,rgba(247,201,72,.07),transparent 70%);pointer-events:none}.section-heading{display:grid;grid-template-columns:1fr;gap:18px;max-width:920px;margin-bottom:52px}.eyebrow,.card-eyebrow{margin:0;color:var(--cyan-deep);font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:12px}.eyebrow:before{flex:0 0 auto;width:36px;height:2px;content:"";border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--gold))}.section-copy{max-width:720px;margin-top:18px;color:var(--muted);font-size:1.08rem;line-height:1.74}.btn{position:relative;display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:10px;overflow:hidden;border:1px solid transparent;border-radius:12px;padding:14px 24px;color:#fff;font-weight:800;transition:transform .2s var(--ease-out),border-color .2s ease,background .2s ease,box-shadow .2s ease}.btn:hover,.btn:focus-visible{transform:translateY(-2px);outline:none}.btn:active{transform:translateY(0)}.btn svg{transition:transform .22s var(--ease-out)}.btn:hover svg,.btn:focus-visible svg{transform:translate(4px)}.btn-primary{color:#06181a;background:linear-gradient(135deg,#aef6f2,#fff 55%,#d3fffc);box-shadow:0 20px 52px #18d5d14d}.btn-primary:after{position:absolute;inset:0;content:"";background:linear-gradient(110deg,transparent 32%,rgba(255,255,255,.75) 50%,transparent 68%);transform:translate(-130%);transition:transform .65s ease;pointer-events:none}.btn-primary:hover:after,.btn-primary:focus-visible:after{transform:translate(130%)}.btn-primary:hover,.btn-primary:focus-visible{box-shadow:0 26px 64px #18d5d16b}.btn-secondary{border-color:#ffffff47;background:#ffffff12;box-shadow:inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-secondary:hover,.btn-secondary:focus-visible{border-color:#f7c948ad;background:#f7c9481f}.site-nav{position:fixed;z-index:60;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 42px;color:#ffffffeb;transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,padding .22s ease}.site-nav--solid{color:#111827;padding-block:10px;border-bottom:1px solid rgba(15,23,42,.08);background:#ffffffdb;box-shadow:0 14px 38px #0f172a1a;-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4)}.nav-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:linear-gradient(90deg,var(--cyan),var(--gold));transform:scaleX(0);transform-origin:left center;pointer-events:none}.nav-logo{flex:0 0 auto;color:inherit;font-family:var(--font-display);font-size:1.04rem;font-weight:800;letter-spacing:-.01em}.nav-logo__accent{color:var(--cyan)}.site-nav--solid .nav-logo__accent{color:var(--cyan-deep)}.nav-links{display:flex;align-items:center;justify-content:flex-end;gap:4px;color:#ffffffc7;font-size:.88rem;font-weight:700}.nav-links a{position:relative;padding:8px 10px;border-radius:8px;transition:color .16s ease}.nav-links a:not(.nav-resume):after{position:absolute;right:10px;bottom:2px;left:10px;height:2px;content:"";border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--gold));transform:scaleX(0);transform-origin:left center;transition:transform .24s var(--ease-out)}.nav-links a:hover,.nav-links a:focus-visible{color:#fff;outline:none}.nav-links a.is-active{color:#fff}.nav-links a:hover:after,.nav-links a:focus-visible:after,.nav-links a.is-active:after{transform:scaleX(1)}.site-nav--solid .nav-links{color:#4b5563}.site-nav--solid .nav-links a:hover,.site-nav--solid .nav-links a:focus-visible,.site-nav--solid .nav-links a.is-active{color:var(--cyan-deep)}.nav-resume{display:inline-flex;min-height:42px;align-items:center;gap:8px;margin-left:10px;border:1px solid rgba(24,213,209,.42);border-radius:10px;padding:10px 16px;color:#071014;background:linear-gradient(135deg,#aef6f2,#fff);box-shadow:0 14px 32px #18d5d13d;transition:transform .18s var(--ease-out),box-shadow .18s ease}.nav-resume:hover,.nav-resume:focus-visible{transform:translateY(-1px);box-shadow:0 18px 40px #18d5d15c}.site-nav--solid .nav-resume{color:#071014}.nav-toggle{display:none;width:44px;height:42px;place-items:center;gap:4px;border:1px solid rgba(255,255,255,.22);border-radius:10px;color:#fff;background:#ffffff14}.site-nav--solid .nav-toggle{color:#111827;border-color:#0f172a24;background:#fff}.nav-toggle span{display:block;width:18px;height:2px;border-radius:999px;background:currentColor;transition:transform .2s ease,opacity .2s ease}.nav-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero-section{position:relative;isolation:isolate;min-height:96vh;overflow:hidden;display:grid;align-items:end;padding-top:124px;padding-bottom:88px;color:#fff;background:var(--night)}.hero-stage,.hero-stage:after{position:absolute;inset:0}.hero-stage{z-index:0}.hero-stage:after{content:"";background:linear-gradient(90deg,#07090ef5,#07090ea3 42%,#07090e29),linear-gradient(180deg,#07090e3d,#07090ee0);pointer-events:none}.analytics-engine{display:block;width:100%;height:100%}.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:48px;align-items:end}.hero-copy-block{max-width:900px}.hero-availability{display:inline-flex;align-items:center;gap:10px;margin-bottom:26px;border:1px solid rgba(49,210,124,.4);border-radius:999px;padding:9px 16px;color:#c9ffe3;background:#31d27c1a;font-size:.82rem;font-weight:700;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-availability__dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 #31d27c8c;animation:pulse-dot 2.2s ease-out infinite}.hero-section .eyebrow{color:var(--cyan);margin-bottom:14px}.hero-section .eyebrow:before{background:linear-gradient(90deg,var(--cyan),transparent)}.hero-titleline{max-width:720px;margin-top:22px;color:#fff;font-family:var(--font-display);font-size:1.34rem;font-weight:700;line-height:1.38}.hero-subtitle{max-width:760px;margin-top:22px;color:#ffffffd6;font-size:1.14rem;line-height:1.74}.hero-support{max-width:720px;margin-top:14px;color:#ffffffa8;font-size:1rem;line-height:1.66}.hero-meta,.hero-tags{display:flex;flex-wrap:wrap;gap:10px}.hero-meta{margin-top:24px}.hero-meta span,.hero-tags span,.skill-tags span,.project-tags span,.education-honor__meta span{border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:8px 13px;font-size:.8rem;font-weight:700;line-height:1;transition:border-color .16s ease,background .16s ease,color .16s ease}.hero-meta span,.hero-tags span{color:#ffffffe0;background:#ffffff12;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero-tags span:hover{border-color:#18d5d199;background:#18d5d11f}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}.hero-panel{overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:18px;background:linear-gradient(180deg,#ffffff1f,#ffffff0a),#070c1299;box-shadow:0 30px 90px #00000061;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.hero-photo{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:linear-gradient(135deg,#18d5d13d,#f7c9481a),#ffffff14;box-shadow:inset 0 1px #ffffff1a}.hero-photo img{display:block;width:100%;aspect-ratio:1 / 1;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;transition:transform .6s var(--ease-out)}.hero-panel:hover .hero-photo img{transform:scale(1.03)}.hero-photo:after{position:absolute;inset:auto 0 0;height:46%;content:"";background:linear-gradient(180deg,#07090e00,#07090ee6);pointer-events:none}.hero-photo__caption{position:absolute;right:14px;bottom:14px;left:14px;z-index:1;display:grid;gap:5px;color:#fff}.hero-photo__caption span{color:var(--cyan);font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero-photo__caption strong{color:#fff;font-size:.96rem;line-height:1.26}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.metric-row div{padding:14px 12px;border:1px solid rgba(255,255,255,.13);border-radius:var(--radius-sm);background:#ffffff12;transition:border-color .18s ease,background .18s ease}.metric-row div:hover{border-color:#18d5d180;background:#18d5d114}.metric-row strong{display:block;color:#fff;font-family:var(--font-display);font-size:1.55rem;font-weight:800;line-height:1}@supports ((-webkit-background-clip: text) or (background-clip: text)){.metric-row strong{background:linear-gradient(120deg,#ffffff,var(--cyan-soft));-webkit-background-clip:text;background-clip:text;color:transparent}}.metric-row span{display:block;margin-top:8px;color:#ffffffb3;font-size:.74rem;font-weight:700;line-height:1.4}.hero-tags{margin-top:14px}.hero-scroll-cue{position:absolute;z-index:2;bottom:26px;left:50%;display:flex;justify-content:center;width:30px;height:50px;border:2px solid rgba(255,255,255,.32);border-radius:999px;padding-top:9px;transform:translate(-50%);transition:border-color .18s ease}.hero-scroll-cue:hover,.hero-scroll-cue:focus-visible{border-color:#18d5d1cc}.hero-scroll-cue span{width:4px;height:10px;border-radius:999px;background:var(--cyan);animation:cue-drop 1.9s ease-in-out infinite}.glass-panel,.about-focus div,.experience-card,.skill-card,.education-card,.contact-grid a{border:1px solid var(--line-dark);border-radius:var(--radius);background:#ffffffdb;box-shadow:var(--shadow-card)}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.58fr);gap:22px}.about-summary{position:relative;overflow:hidden;padding:40px}.about-summary:before{position:absolute;inset:0 auto 0 0;width:4px;content:"";background:linear-gradient(180deg,var(--cyan),var(--gold))}.about-summary p{color:#2d3748;font-size:1.16rem;line-height:1.76}.about-summary p+p{margin-top:20px}.about-focus{display:grid;gap:14px}.about-focus div{padding:24px;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.about-focus div:hover,.experience-card:hover,.skill-card:hover,.contact-grid a:hover,.contact-grid a:focus-visible{transform:translateY(-4px);border-color:#18d5d166;box-shadow:var(--shadow-card-hover);outline:none}.about-focus span,.experience-index{color:var(--cyan-deep);font-family:var(--font-mono);font-weight:700}.about-focus strong{display:block;margin-top:10px;color:#111827;font-size:1.06rem}.about-focus p{margin-top:8px;color:var(--muted);line-height:1.62}.experience-list{display:grid;gap:16px}.experience-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:22px;padding:30px;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.experience-index{font-size:1.5rem}.experience-card h3,.skill-card h3,.education-entry h3,.education-honor h3,.contact-grid strong{color:#10141a}.experience-card h3{margin-top:6px}.experience-project{margin-top:10px;color:var(--cyan-deep);font-weight:800;line-height:1.45}.experience-card ul,.project-card ul{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none}.experience-card li,.project-card li{position:relative;padding-left:18px;color:#596273;line-height:1.6}.experience-card li:before,.project-card li:before{position:absolute;top:.72em;left:0;width:7px;height:7px;content:"";border-radius:2px;background:var(--cyan);transform:rotate(45deg)}.project-section{position:relative;isolation:isolate;color:#fff;background:transparent}.project-section:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;content:"";background:radial-gradient(820px 420px at 6% 4%,rgba(24,213,209,.1),transparent 68%),radial-gradient(760px 420px at 96% 60%,rgba(247,201,72,.07),transparent 70%),linear-gradient(180deg,#07090e,#0d1119 52%,#090c12)}.project-section .section-copy{color:#ffffffb3}.project-section .eyebrow{color:var(--gold)}.project-section .eyebrow:before{background:linear-gradient(90deg,var(--gold),transparent)}.project-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}.project-card{position:relative;grid-column:span 3;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);color:#111827;background:#fff;box-shadow:0 26px 80px #00000038;transition:transform .22s var(--ease-out),border-color .22s ease,box-shadow .22s ease}.project-card:before{position:absolute;inset:0 0 auto;z-index:4;height:3px;content:"";background:linear-gradient(90deg,var(--cyan),var(--gold));transform:scaleX(0);transform-origin:left center;transition:transform .42s var(--ease-out);pointer-events:none}.project-card:hover:before{transform:scaleX(1)}.project-card:hover{transform:translateY(-5px);border-color:#18d5d166;box-shadow:0 38px 100px #00000052}.project-card--detailed,.project-card--interactive{grid-column:span 6}.project-card--featured{display:block;color:#fff;background:linear-gradient(135deg,rgba(24,213,209,.15),transparent 32%),linear-gradient(180deg,#101620,#07090e)}.project-preview{position:relative;min-height:260px;display:grid;place-items:center;overflow:hidden;color:#fff;background:linear-gradient(145deg,#18d5d133,#f7c9481f),#10151d}.project-preview>img{display:block;width:100%;height:100%;min-height:260px;-o-object-fit:cover;object-fit:cover}.project-content{padding:32px}.project-card--featured .project-content{padding:38px}.project-card--featured h3,.project-card--featured .project-content>p{color:#fff}.project-content>p{margin-top:16px;color:#596273;line-height:1.68}.project-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}.project-badge,.featured-label,.research-label,.project-embed-link{display:inline-flex;min-height:32px;align-items:center;justify-content:center;border-radius:999px;padding:7px 13px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.research-label{gap:7px;color:var(--cyan-deep);border:1px solid rgba(0,122,124,.5);background:#18d5d11a}.research-label:before{width:6px;height:6px;content:"";border-radius:50%;background:var(--cyan-deep)}.project-badge{color:#071014;background:linear-gradient(120deg,var(--cyan),#5fe8e4)}.featured-label{color:#261b00;background:linear-gradient(120deg,var(--gold),#ffe08e)}.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.project-tags span,.skill-tags span,.education-honor__meta span{color:#334155;border-color:#0f172a1a;background:#f3f6fb}.project-tags span:hover,.skill-tags span:hover{border-color:#008f9173;color:var(--cyan-deep);background:#18d5d114}.project-card--featured .project-tags span{color:#ffffffdb;border-color:#ffffff29;background:#ffffff14}.project-card--featured .project-tags span:hover{border-color:#18d5d18c;color:#fff;background:#18d5d124}.project-insight-grid{display:grid;gap:22px;margin-top:26px}.project-insight-group{padding-top:18px;border-top:1px solid rgba(255,255,255,.12)}.project-card:not(.project-card--featured) .project-insight-group{border-top-color:#0f172a1a}.project-insight-group h4:before{content:"// ";opacity:.55}.project-insight-group h4{color:var(--gold)}.project-card:not(.project-card--featured) .project-insight-group h4{color:var(--cyan-deep)}.project-card--featured li{color:#ffffffbd}.project-card--featured li:before{background:var(--gold)}.media-zoom{display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:none;cursor:zoom-in}.media-zoom img{display:block}.media-zoom:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}.project-preview--capital-charts,.project-preview--stormont-discover,.project-preview--interactive,.project-preview--loan-carousel,.project-preview--dashboard-carousel{min-height:0}.project-preview--capital-charts{display:block;padding:18px;background:linear-gradient(135deg,#18d5d12e,#f7c9480f),#0c1118}.project-gallery{width:100%;height:100%;display:grid;gap:10px;padding:12px}.project-gallery__item{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);background:#ffffff12}.project-gallery__item .media-zoom{width:100%;height:100%}.project-gallery__item img{display:block;width:100%;height:100%;min-height:0;-o-object-fit:cover;object-fit:cover;transition:transform .26s var(--ease-out)}.project-gallery__item:hover img{transform:scale(1.02)}.project-gallery__overlay{position:absolute;right:0;bottom:0;left:0;display:grid;gap:6px;padding:18px;color:#fff;background:linear-gradient(180deg,#07090e00,#07090edb);pointer-events:none}.project-gallery__overlay span,.project-gallery__overlay strong,.project-gallery__overlay small{display:block}.project-gallery__overlay span{color:var(--cyan);font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.project-gallery__overlay strong{max-width:26ch;font-size:1.12rem;line-height:1.18}.project-gallery__overlay small{color:#ffffffc7;font-size:.72rem;font-weight:800;text-transform:uppercase}.project-gallery__overlay small:after{content:" >"}.project-gallery--capital-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));height:auto;gap:14px;padding:0}.project-gallery--capital-charts .project-gallery__item{display:grid;place-items:center;width:100%;min-height:0;margin:0;background:#fff}.project-gallery--capital-charts .media-zoom{padding:10px}.project-gallery--capital-charts .project-gallery__item img{width:100%;height:auto;-o-object-fit:contain;object-fit:contain}.project-preview--stormont-discover:before{position:absolute;z-index:5;top:16px;right:16px;content:"Scroll images";border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:8px 12px;color:#ffffffeb;background:#07090ea8;font-family:var(--font-mono);font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none}.project-gallery--stormont-discover{display:block;height:590px;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:14px;scroll-behavior:smooth;scroll-snap-type:y mandatory;scrollbar-color:rgba(24,213,209,.8) rgba(255,255,255,.08);scrollbar-gutter:stable}.project-gallery--stormont-discover:focus-visible{outline:2px solid var(--cyan);outline-offset:-4px}.project-gallery--stormont-discover::-webkit-scrollbar{width:8px}.project-gallery--stormont-discover::-webkit-scrollbar-track{background:#ffffff14}.project-gallery--stormont-discover::-webkit-scrollbar-thumb{border:0;border-radius:999px;background:#18d5d1c2}.project-gallery--stormont-discover .project-gallery__item{min-height:450px;margin-bottom:14px;scroll-snap-align:start}.project-gallery--stormont-discover .project-gallery__item:not(.project-gallery__item--1){background:#fff}.project-gallery--stormont-discover .project-gallery__item:not(.project-gallery__item--1) .media-zoom{padding:18px 18px 90px}.project-gallery--stormont-discover .project-gallery__item:not(.project-gallery__item--1) img{-o-object-fit:contain;object-fit:contain;background:#fff}.project-gallery--stormont-discover .project-gallery__item--1 img{-o-object-fit:cover;object-fit:cover}.project-gallery--stormont-discover .project-gallery__item:last-child{margin-bottom:0}.project-preview--loan-carousel,.project-preview--dashboard-carousel,.project-preview--interactive{padding:14px}.project-preview--rag-pipeline{min-height:0;padding:0;background:radial-gradient(620px 280px at 0% 0%,rgba(24,213,209,.18),transparent 70%),radial-gradient(540px 260px at 100% 100%,rgba(247,201,72,.12),transparent 72%),#0c1118}.rag-pipeline{display:grid;gap:14px;width:100%;padding:32px 26px}.rag-pipeline__flow{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:12px;width:100%}.rag-pipeline__caption{color:#ffffff9e;font-size:.78rem;line-height:1.5;text-align:center}.rag-stage{flex:1 1 150px;max-width:215px;display:grid;align-content:start;gap:6px;padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-sm);background:#ffffff0d;box-shadow:inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform .2s var(--ease-out),border-color .2s ease,background .2s ease}.project-card:hover .rag-stage{border-color:#18d5d157}.rag-stage__index{color:var(--cyan);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.14em}.rag-stage strong{color:#fff;font-family:var(--font-display);font-size:1rem;line-height:1.2}.rag-stage__detail{color:#ffffffad;font-size:.78rem;line-height:1.4}.rag-stage--out{border-color:#f7c94880;background:#f7c9481a}.rag-stage--out .rag-stage__index{color:var(--gold)}.rag-arrow{position:relative;flex:0 0 auto;align-self:center;width:24px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--gold))}.rag-arrow:after{position:absolute;top:50%;right:-1px;width:7px;height:7px;content:"";border-top:2px solid var(--gold);border-right:2px solid var(--gold);transform:translateY(-50%) rotate(45deg)}.project-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.project-link{display:inline-flex;min-height:46px;align-items:center;gap:9px;border:1px solid rgba(15,23,42,.14);border-radius:11px;padding:12px 18px;color:#10141a;background:#fff;font-size:.88rem;font-weight:800;transition:transform .18s var(--ease-out),border-color .18s ease,background .18s ease,box-shadow .18s ease}.project-link svg{width:18px;height:18px}.project-link:hover,.project-link:focus-visible{transform:translateY(-2px);border-color:#007a7c73;box-shadow:var(--shadow-card);outline:none}.project-link--primary{color:#06181a;border-color:transparent;background:linear-gradient(135deg,var(--cyan),#5fe8e4);box-shadow:0 14px 32px #18d5d142}.project-link--primary:hover,.project-link--primary:focus-visible{box-shadow:0 18px 42px #18d5d166}.project-card--featured .project-link:not(.project-link--primary){color:#fff;border-color:#fff3;background:#ffffff14}.project-carousel{width:100%;display:grid;gap:12px}.project-carousel__viewport{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:#fff;aspect-ratio:1.78 / 1}.project-carousel__viewport:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px}.project-carousel__viewport img{display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain;background:#fff}.project-carousel__viewport .media-zoom{height:100%}.project-carousel__viewport--code{background:#080a0f}.project-code-slide{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);color:#dffbff}.project-code-slide__header{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.12);background:#ffffff0f;font-family:var(--font-mono);font-size:.74rem;font-weight:600}.project-code-slide__header strong{color:var(--gold);text-transform:uppercase}.project-code-slide pre{margin:0;overflow:hidden;padding:14px;color:#dffbff;font-family:var(--font-mono);font-size:.7rem;line-height:1.55;white-space:pre-wrap}.project-carousel__arrow{position:absolute;z-index:3;top:50%;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#fff;background:#07090eb3;box-shadow:0 14px 36px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:translateY(-50%);transition:transform .18s var(--ease-out),background .18s ease,border-color .18s ease}.project-carousel__arrow svg{width:20px;height:20px}.project-carousel__arrow--prev{left:12px}.project-carousel__arrow--next{right:12px}.project-carousel__arrow:hover,.project-carousel__arrow:focus-visible{background:#07090eeb;border-color:#18d5d199;transform:translateY(-50%) scale(1.06);outline:none}.project-carousel__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.project-carousel__dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:#ffffff47;transition:width .22s var(--ease-out),background .22s ease}.project-carousel__dots button:hover{background:#ffffff8c}.project-carousel__dots button.is-active{width:24px;background:var(--cyan)}.project-carousel__footer{color:#ffffffc7;font-size:.82rem;font-weight:700}.project-carousel__meta{display:flex;justify-content:space-between;gap:12px}.project-carousel__meta small{font-family:var(--font-mono);color:#fff9}.project-live-frame,.project-live-fallback .project-carousel__viewport{width:100%;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius-sm);background:#11161f}.project-live-frame{aspect-ratio:2.1 / 1}.project-live-frame iframe{display:block;width:100%;height:100%;border:0}.project-embed-link{color:#071014;background:var(--gold)}.preview-grid{position:absolute;inset:28px;display:grid;grid-template-columns:1fr 1fr;gap:12px;opacity:.46}.preview-grid span{border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-sm);background:#ffffff14}.project-preview p{position:relative;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:10px 14px;background:#07090ea8;font-weight:800}.lightbox{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:72px 24px 32px;background:#04060aeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:lightbox-in .24s ease both;cursor:zoom-out}.lightbox__figure{margin:0;max-width:min(1180px,100%);display:grid;gap:14px;justify-items:center;cursor:default}.lightbox__figure img{max-width:100%;max-height:76vh;border-radius:var(--radius-sm);background:#fff;box-shadow:0 40px 120px #0000008c;animation:lightbox-zoom .3s var(--ease-out) both}.lightbox__caption{max-width:70ch;color:#ffffffd1;font-size:.88rem;line-height:1.5;text-align:center}.lightbox__close,.lightbox__arrow{position:fixed;z-index:2;display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:#fff;background:#ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s var(--ease-out)}.lightbox__close svg,.lightbox__arrow svg{width:22px;height:22px}.lightbox__close{top:18px;right:18px}.lightbox__arrow{top:50%;transform:translateY(-50%)}.lightbox__arrow--prev{left:18px}.lightbox__arrow--next{right:18px}.lightbox__close:hover,.lightbox__close:focus-visible,.lightbox__arrow:hover,.lightbox__arrow:focus-visible{border-color:#18d5d1b3;background:#18d5d129;outline:none}.lightbox__arrow:hover,.lightbox__arrow:focus-visible{transform:translateY(-50%) scale(1.06)}.lightbox__counter{position:fixed;top:30px;left:50%;margin:0;color:#ffffffbf;font-family:var(--font-mono);font-size:.82rem;font-weight:600;transform:translate(-50%)}.skills-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.skill-card{position:relative;overflow:hidden;padding:26px;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.skill-card:before{position:absolute;inset:0 0 auto;height:3px;content:"";background:linear-gradient(90deg,var(--cyan),var(--gold));transform:scaleX(0);transform-origin:left center;transition:transform .32s var(--ease-out)}.skill-card:hover:before{transform:scaleX(1)}.skill-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.education-card{padding:22px}.education-list--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.education-entry{padding:26px;border:1px solid rgba(15,23,42,.1);border-radius:var(--radius-sm);background:#fff;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.education-entry:hover{transform:translateY(-3px);border-color:#18d5d166;box-shadow:var(--shadow-card)}.education-entry h3{margin-top:8px}.education-entry p:not(.card-eyebrow){margin-top:12px;color:#596273;line-height:1.55}.education-entry span,.education-entry strong{display:block;margin-top:9px;color:#596273;line-height:1.45}.education-entry strong{color:var(--cyan-deep);font-weight:800}.education-card--achievements{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1fr);gap:18px;align-items:start}.education-honor{overflow:hidden;border:1px solid rgba(15,23,42,.1);border-radius:var(--radius-sm);background:#fff;box-shadow:0 16px 42px #0f172a12;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.education-honor:hover{transform:translateY(-3px);border-color:#18d5d166;box-shadow:var(--shadow-card-hover)}.education-honor__media{padding:14px 14px 0}.education-honor__media img{display:block;width:100%;aspect-ratio:4 / 5;border-radius:10px;-o-object-fit:contain;object-fit:contain;-o-object-position:center top;object-position:center top;background:#f3f6fb}.education-honor__body{padding:20px}.education-honor__body h3{margin-top:8px}.education-honor__body p:not(.card-eyebrow){margin-top:10px;color:#596273;line-height:1.64}.education-honor__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.education-honor-list{display:grid;gap:14px}.education-honor--compact{display:grid;grid-template-columns:minmax(170px,.42fr) minmax(0,.58fr);align-items:start}.education-honor__media--compact{padding:14px}.education-honor__media--compact img{aspect-ratio:1.55 / 1;max-height:172px;border:1px solid rgba(15,23,42,.1);-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;background:#fff}.education-honor--compact .education-honor__body{padding-left:0}.contact-section{position:relative;isolation:isolate;color:#fff;background:transparent}.contact-section:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;content:"";background:radial-gradient(760px 420px at 12% 0%,rgba(24,213,209,.1),transparent 70%),radial-gradient(680px 380px at 92% 100%,rgba(247,201,72,.07),transparent 70%),#07090e}.contact-section .eyebrow{color:var(--cyan)}.contact-section .eyebrow:before{background:linear-gradient(90deg,var(--cyan),transparent)}.contact-section .section-copy{color:#ffffffb3}.contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.contact-grid a{min-height:170px;display:grid;align-content:start;gap:10px;padding:24px;color:#10141a;transition:transform .2s var(--ease-out),border-color .2s ease,box-shadow .2s ease}.contact-grid a svg{width:44px;height:44px;padding:11px;border:1px solid rgba(0,143,145,.22);border-radius:12px;color:var(--cyan-deep);background:#18d5d11a;transition:transform .2s var(--ease-out),background .2s ease,color .2s ease}.contact-grid a:hover svg,.contact-grid a:focus-visible svg{transform:scale(1.08) rotate(-4deg);color:#06181a;background:linear-gradient(135deg,var(--cyan),#8df2ef)}.contact-grid span{color:var(--cyan-deep);font-family:var(--font-mono);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.contact-linkedin{display:flex;flex-direction:column;gap:2px}.contact-linkedin span:first-child{color:#596273;font-size:.74rem}.contact-linkedin span:last-child{color:#10141a;font-family:var(--font-body);font-size:1rem;letter-spacing:0;text-transform:none}.site-footer{color:#ffffffa8;background:#060810;border-top:1px solid rgba(255,255,255,.1)}.site-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:48px;padding-block:58px}.site-footer__logo{display:inline-block;color:#fff;font-family:var(--font-display);font-size:1.2rem;font-weight:800}.site-footer__logo span{color:var(--cyan)}.site-footer__brand p{max-width:38ch;margin-top:14px;font-size:.94rem;line-height:1.66}.site-footer__socials{display:flex;gap:10px;margin-top:20px}.site-footer__socials a{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:12px;color:#ffffffd1;background:#ffffff0d;transition:transform .18s var(--ease-out),border-color .18s ease,color .18s ease,background .18s ease}.site-footer__socials a:hover,.site-footer__socials a:focus-visible{transform:translateY(-2px);border-color:#18d5d199;color:var(--cyan);background:#18d5d11a;outline:none}.site-footer__links,.site-footer__contact{display:grid;align-content:start;justify-items:start;gap:10px}.site-footer__links h4,.site-footer__contact h4{margin-bottom:8px;color:#ffffff73}.site-footer__links a,.site-footer__contact a{font-size:.92rem;font-weight:600;transition:color .16s ease}.site-footer__links a:hover,.site-footer__links a:focus-visible,.site-footer__contact a:hover,.site-footer__contact a:focus-visible{color:var(--cyan);outline:none}.site-footer__resume{margin-top:8px;border:1px solid rgba(24,213,209,.4);border-radius:10px;padding:10px 16px;color:var(--cyan)}.site-footer__resume:hover,.site-footer__resume:focus-visible{color:#071014!important;background:var(--cyan)}.site-footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:22px;border-top:1px solid rgba(255,255,255,.08);font-size:.85rem}.site-footer__bottom a{color:var(--cyan);font-weight:700}.back-to-top{position:fixed;right:26px;bottom:26px;z-index:70;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:16px;color:#06181a;background:linear-gradient(135deg,var(--cyan),#8df2ef);box-shadow:0 18px 44px #18d5d161;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .24s ease,transform .24s var(--ease-out),box-shadow .2s ease}.back-to-top svg{width:22px;height:22px}.back-to-top--visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover,.back-to-top:focus-visible{transform:translateY(-3px);box-shadow:0 24px 56px #18d5d180;outline:none}.reveal{opacity:0}.reveal.is-visible{animation:reveal-up .76s var(--ease-out) both;animation-delay:var(--reveal-delay, 0ms)}.reveal-delay{--reveal-delay: .14s}.block{display:block}.grid{display:grid}.hidden{display:none}.h-4{height:1rem}.h-5{height:1.25rem}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-5{width:1.25rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color-scheme:dark;--font-display: "Sora", "Inter", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font-body);background:#07090e;--ink: #f7fbff;--paper: #f6f8fb;--text: #15171c;--muted: #5b6472;--night: #07090e;--night-2: #0c1017;--line: rgba(255, 255, 255, .14);--line-dark: rgba(15, 23, 42, .1);--cyan: #18d5d1;--cyan-soft: #9ff5f1;--cyan-deep: #007a7c;--gold: #f7c948;--red: #ff5a4f;--green: #31d27c;--radius: 18px;--radius-sm: 12px;--shadow-card: 0 18px 48px rgba(15, 23, 42, .08);--shadow-card-hover: 0 30px 70px rgba(15, 23, 42, .14);--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}body{margin:0;min-width:320px;color:var(--text);overflow-x:hidden;overflow-x:clip;font-family:var(--font-body);background:linear-gradient(180deg,#07090e,#0c1017 28%,#f6f8fb 28% 100%);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}section[id]{scroll-margin-top:92px}h1,h2,h3,h4,p,strong,span,a,li{overflow-wrap:anywhere;letter-spacing:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:var(--font-display)}h1{max-width:900px;color:#fff;font-size:clamp(3.3rem,7.4vw,5.6rem);line-height:.96;font-weight:800;letter-spacing:-.02em}@supports ((-webkit-background-clip: text) or (background-clip: text)){h1{background:linear-gradient(108deg,#ffffff 30%,var(--cyan-soft) 55%,var(--gold) 78%,#ffffff 95%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:h1-sheen 9s ease-in-out infinite}}@keyframes h1-sheen{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}h2{color:inherit;font-size:clamp(2.05rem,4vw,3.1rem);line-height:1.05;font-weight:800;letter-spacing:-.015em}h3{font-size:1.32rem;line-height:1.2;font-weight:700}h4{font-family:var(--font-mono);font-size:.8rem;line-height:1.3;font-weight:700;letter-spacing:.14em;text-transform:uppercase}::-moz-selection{color:#080a0f;background:#18d5d18c}::selection{color:#080a0f;background:#18d5d18c}::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:#0c1017}::-webkit-scrollbar-thumb{border:3px solid #0c1017;border-radius:999px;background:#18d5d18c}::-webkit-scrollbar-thumb:hover{background:#18d5d1cc}@keyframes reveal-up{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%{box-shadow:0 0 #31d27c8c}70%{box-shadow:0 0 0 10px #31d27c00}to{box-shadow:0 0 #31d27c00}}@keyframes cue-drop{0%{opacity:0;transform:translateY(0)}35%{opacity:1}to{opacity:0;transform:translateY(14px)}}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-zoom{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:1100px){.site-nav{padding-inline:24px}.nav-toggle{display:grid}.nav-links{position:absolute;top:calc(100% - 1px);left:24px;right:24px;display:none;flex-direction:column;align-items:stretch;gap:4px;padding:14px;color:#111827;border:1px solid rgba(15,23,42,.12);border-radius:var(--radius-sm);background:#fffffff7;box-shadow:0 18px 46px #0f172a24;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.nav-links--open{display:flex}.nav-links a{padding:11px 12px}.nav-links a:not(.nav-resume):after{content:none}.nav-links a.is-active{color:var(--cyan-deep);background:#18d5d11a}.nav-resume{justify-content:center;margin-left:0}.hero-grid,.about-grid,.project-card--featured,.education-card--achievements{grid-template-columns:1fr}.hero-panel{max-width:720px}.hero-scroll-cue{display:none}.section-heading{grid-template-columns:1fr;gap:16px}.project-card,.project-card--detailed,.project-card--interactive{grid-column:span 6}.skills-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__grid{grid-template-columns:1fr 1fr}.site-footer__brand{grid-column:span 2}}@media(max-width:720px){h3{font-size:1.16rem}.section-shell{width:min(100% - 30px,1200px)}.section-pad{padding-block:80px}.hero-section{min-height:auto;padding-top:112px;padding-bottom:48px}.hero-stage{opacity:.72}.hero-grid{gap:30px}.hero-titleline{font-size:1.1rem}.hero-subtitle{font-size:1rem}.hero-actions,.education-list--grid,.skills-grid,.contact-grid{grid-template-columns:1fr}.hero-actions{display:grid}.btn{width:100%}.metric-row span{font-size:.68rem}.experience-card{grid-template-columns:1fr;gap:10px;padding:22px}.project-content,.project-card--featured .project-content{padding:24px}.project-gallery--capital-charts{grid-template-columns:1fr}.project-gallery--stormont-discover{height:500px;padding:12px}.project-gallery--stormont-discover .project-gallery__item{min-height:340px}.project-gallery--stormont-discover .project-gallery__item:not(.project-gallery__item--1) .media-zoom{padding:12px 12px 78px}.project-preview--loan-carousel,.project-preview--dashboard-carousel,.project-preview--interactive{padding:10px}.rag-pipeline{padding:24px 18px}.rag-pipeline__flow{flex-direction:column;align-items:stretch}.rag-stage{flex:0 0 auto;max-width:none}.rag-arrow{width:2px;height:18px;margin-inline:auto;background:linear-gradient(180deg,var(--cyan),var(--gold))}.rag-arrow:after{top:auto;right:50%;bottom:-1px;transform:translate(50%) rotate(135deg)}.project-carousel__viewport,.project-live-frame,.project-live-fallback .project-carousel__viewport{aspect-ratio:16 / 10}.project-carousel__arrow{width:36px;height:36px}.project-code-slide pre{font-size:.62rem}.education-card{padding:14px}.education-honor--compact{grid-template-columns:1fr}.education-honor--compact .education-honor__body{padding:0 18px 18px}.education-honor__media--compact{padding:14px 14px 0}.education-honor__media--compact img{max-height:150px}.site-footer__grid{grid-template-columns:1fr;gap:36px;padding-block:44px}.site-footer__brand{grid-column:span 1}.site-footer__bottom{flex-direction:column;align-items:flex-start}.lightbox{padding:64px 14px 84px}.lightbox__close,.lightbox__arrow{width:42px;height:42px}.lightbox__arrow{top:auto;bottom:20px;transform:none}.lightbox__arrow:hover,.lightbox__arrow:focus-visible{transform:scale(1.06)}.lightbox__arrow--prev{left:calc(50% - 56px)}.lightbox__arrow--next{right:calc(50% - 56px)}.back-to-top{right:16px;bottom:16px;width:46px;height:46px}}
