@font-face{font-family:lni;src:url(/lni/lni-light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:lni;src:url(/lni/lni-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:lni;src:url(/lni/lni-medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:lni;src:url(/lni/lni-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:rii;src:url(/rii/rii-light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:rii;src:url(/rii/rii-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:rii;src:url(/rii/rii-medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:clamp(1.375rem,calc(1.375rem + 1.5vw),2.5rem)}h2{font-size:clamp(1.325rem,calc(1.325rem + .9vw),2rem)}h3{font-size:clamp(1.3rem,calc(1.3rem + .6vw),1.75rem)}h4{font-size:clamp(1.275rem,calc(1.275rem + .3vw),1.5rem)}h5{font-size:1.25rem}h6{font-size:1rem}a{color:inherit}p,ul,ol{margin-top:0;margin-bottom:1rem}button{font-family:inherit;font-size:inherit}img,svg,video{vertical-align:middle}body{margin:0;line-height:1.5;font-family:var(--font-base, "lni", sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--navbar-height: 70px;--dark-navy: #020c1b;--navy: #0a192f;--light-navy: #112240;--lightest-navy: #233554;--navy-shadow: rgba(2, 12, 27, .7);--slate: #8892b0;--light-slate: #a8b2d1;--lightest-slate: #ccd6f6;--white: #e6f1ff;--green-bright: #E9377A;--green-tint: rgba(100, 255, 218, .1);--alabaster: #F1EFE9;--cloud-white: #E4E3D9;--mountain-peak-white: #F7F5EC;--powder-sand: #F4F2E3;--white-diamond: #EDEFEC;--peach-sorbet: #F4B881;--pastel-pink: #DC647A;--pink-bird: #DE82C8;--bright-pink: #E9377A;--blush-pink: #F5E8EA;--pink-lace: #F0D5DC;--cherokee-brick: #84535A;--sultan-palace: #A24E55;--starry-night-blue: #364072;--dark-grey: #212427;--black: #12110c;--soft-mint-green: #D1E8E2;--deep-teal: #19747E;--light-sky-blue: #A9D6E5;--light-gray: #E2E2E2;--pastel-pink: #FFADAD;--pastel-peach: #FFD6A5;--pastel-yellow: #FDFFB6;--pastel-green: #CAFFBF;--bright-orange: #FF9F1C;--light-orange: #FFBF69;--muted-pink: #CB997E;--pale-peach: #FFE8D6;--lavender: #c5b2cc;--soft-pastel-blue: #a8d0e6;--warm-peach: #ffb6b9;--soft-gray: #f5f5f5;--deep-charcoal: #4a4a4a;--pale-mint-green: #b8e994;--day-txt: #040018;--day-bg: #fff;--night-bg: #040018;--night-txt: #fff;--bright-orange: #f44327;--border-navy: #0D0D3C;--pale-yellow: #FBFFC9;--dark-purpuly: #190022;--light-purpuly: #6f6f8e;--font-base: "lni", sans-serif;--gradient-text-1: #FFB6B9;--gradient-text-2: #FEC3A6;--gradient-text-3: #EFE9AE;--gradient-text-4: #C5B2CC;--btn-glass-bg: rgba(255, 255, 255, .1);--btn-glass-border: rgba(255, 182, 185, .3);--btn-glass-hover-bg: rgba(255, 182, 185, .2);--btn-glass-shadow: rgba(255, 182, 185, .15);--btn-day-bg: rgba(244, 184, 129, .1);--btn-day-border: rgba(244, 184, 129, .4);--btn-day-hover-bg: rgba(244, 184, 129, .2);--btn-day-text: #040018;--btn-night-bg: rgba(197, 178, 204, .15);--btn-night-border: rgba(197, 178, 204, .3);--btn-night-hover-bg: rgba(197, 178, 204, .25);--btn-night-text: #fff;--particle-peach: #FFB6B9;--particle-lavender: #C5B2CC;--particle-mint: #B8E994;--particle-blue: #A8D0E6;--text-xs: clamp(.75rem, .8vw, .875rem);--text-sm: clamp(.875rem, 1vw, 1rem);--text-base: clamp(1rem, 1.1vw, 1.125rem);--text-lg: clamp(1.125rem, 1.25vw, 1.25rem);--text-xl: clamp(1.25rem, 1.5vw, 1.5rem);--text-2xl: clamp(1.5rem, 2vw, 2rem);--text-3xl: clamp(2rem, 2.5vw, 2.5rem);--text-4xl: clamp(2.5rem, 3.5vw, 3.5rem);--text-5xl: clamp(3rem, 4.5vw, 5rem);--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed: 1.8;--tracking-tight: -.03em;--tracking-normal: 0;--tracking-wide: .025em}body{font-family:var(--font-base);background-color:var(--current-bg);transition:background-color .5s ease}body.night{color:var(--night-txt);--current-bg: var(--night-bg)}body.day{color:var(--day-txt);--current-bg: var(--day-bg)}body.night.theme-transition{animation:tonight 5s}body.day.theme-transition{animation:today 5s}.font-rii{font-family:rii,lni,sans-serif;font-weight:400}.font-lni{font-family:var(--font-base);font-weight:400}@keyframes tonight{0%{background-color:#fff;color:var(--day-txt)}to{background-color:var(--night-bg);color:var(--night-txt)}}@keyframes today{0%{background-color:var(--night-bg);color:var(--night-txt)}to{background-color:#fff;color:var(--day-txt)}}.text-emphasized{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--peach-sorbet);line-height:var(--leading-snug)}body.night .text-emphasized{color:var(--bright-orange)}.stat-number{font-size:var(--text-4xl);font-weight:var(--font-bold);line-height:var(--leading-tight);background:linear-gradient(135deg,var(--peach-sorbet),var(--bright-orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);opacity:.7;font-weight:var(--font-medium)}.callout{padding:1.5rem;border-left:4px solid var(--peach-sorbet);background:#00000005;font-size:var(--text-lg);line-height:var(--leading-relaxed);margin:2rem 0}body.night .callout{border-left-color:var(--bright-orange);background:#ffffff0d}html{scroll-behavior:smooth}.fade-in-section{opacity:0;transform:translateY(10vh);visibility:hidden;transition:opacity .8s ease-out,transform 1.5s ease-out;will-change:opacity,visibility}.fade-in-section.is-visible{opacity:1;transform:none;visibility:visible}.App{display:flex;flex-direction:column;min-height:100vh}.App-logo{height:40vmin;pointer-events:none}.content{box-sizing:border-box;width:100%;margin:0;padding:0;display:flex;flex-direction:column}.body{font-weight:300}.section-title{font-weight:400;font-size:2.5rem;letter-spacing:-.03em;margin:0}.section-shell{width:min(100%,clamp(20rem,86vw,68rem));margin:0 auto;padding-inline:clamp(1.25rem,4vw,2.75rem);padding-block:clamp(2.5rem,7vw,4.5rem)}.section-shell+.section-shell{margin-top:clamp(2rem,6vw,4rem)}::selection{background:var(--soft-pastel-blue)}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{min-height:100vh;display:flex;flex-direction:column}.section-header{display:flex;padding-bottom:16px;padding-top:16px;width:100%;align-items:center;position:sticky;top:var(--navbar-height);z-index:50;background-color:#fffffff2;background-color:color-mix(in srgb,var(--day-bg) 95%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);margin-bottom:24px}body.night .section-header{background-color:#040018f2;background-color:color-mix(in srgb,var(--night-bg) 95%,transparent)}body.night.theme-transition .section-header{animation:section-header-tonight 5s}body.day.theme-transition .section-header{animation:section-header-today 5s}@keyframes section-header-tonight{0%{background-color:#fffffff2}to{background-color:#040018f2}}@keyframes section-header-today{0%{background-color:#040018f2}to{background-color:#fffffff2}}@media only screen and (max-width:600px){.App{flex-direction:column;padding:40px 24px}.content{width:100%;padding-inline:clamp(1.25rem,4vw,2rem);gap:clamp(1.5rem,8vw,3rem)}.section-header{width:unset}.section-title{font-size:32px}}svg.app-icon{fill:#000;transition:fill .3s ease}body.night svg.app-icon:hover{fill:var(--bright-orange)}body.day svg.app-icon:hover{fill:var(--peach-sorbet)}body.night svg.app-icon{fill:#fff}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--peach-sorbet),var(--bright-orange));z-index:9999;transition:width .1s ease-out}body.night .scroll-progress{background:linear-gradient(90deg,var(--lavender),var(--bright-orange))}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:3rem;height:3rem;border-radius:50%;border:none;background:#ffffffe6;color:var(--dark-navy);font-size:1.5rem;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:all .3s ease;z-index:999;display:flex;align-items:center;justify-content:center}.back-to-top:hover{transform:translateY(-4px);box-shadow:0 6px 20px #0003}body.night .back-to-top{background:#ffffff1a;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body.night .back-to-top:hover{background:#fff3}*:focus-visible{outline:2px solid var(--peach-sorbet);outline-offset:2px}body.night *:focus-visible{outline-color:var(--bright-orange)}a:focus-visible,button:focus-visible{outline-offset:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.fade-in-section{opacity:1;transform:none;visibility:visible}}@media(max-width:480px){.back-to-top{width:2.5rem;height:2.5rem;bottom:1rem;right:1rem;font-size:1.25rem}}#intro{padding:clamp(3rem,7vw,6rem) clamp(1rem,4vw,3rem);display:flex;align-items:center;gap:clamp(2rem,5vw,6rem);width:min(100%,clamp(20rem,86vw,68rem));margin:0 auto;min-height:auto;letter-spacing:.005em;position:relative;z-index:1}.intro-content-right svg{max-width:100%;height:auto}.intro-content-right{flex:1 1 clamp(320px,38vw,560px);margin:0 0 0 clamp(1rem,3vw,2rem);justify-content:center;text-align:center;position:relative;z-index:2}.intro-content-left{flex:0 0 clamp(360px,45vw,520px);margin:0;padding-left:clamp(0rem,1.5vw,1rem);justify-content:center;text-align:left;max-width:min(100%,clamp(36rem,60vw,52rem));position:relative;z-index:2}circle{stroke-width:1px;stroke:#333;mix-blend-mode:multiply;opacity:0}.intro-art-hint{margin:.75rem 0 0;font-size:.9rem;opacity:.75}.integrateButtons{display:flex;justify-content:center;padding-top:0}.button{background-color:#fff;border:1px solid #ccc;color:#000;padding:8px 18px;text-align:center;text-decoration:none;cursor:pointer;font-size:14px;text-transform:uppercase;border-radius:10px;transition:.4s}.button:hover{border:1px solid #000}.gradient-text{background:linear-gradient(45deg,var(--gradient-text-1),var(--gradient-text-2),var(--gradient-text-3),var(--gradient-text-4),var(--gradient-text-1));background-size:300% 300%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 8s ease-in-out infinite;font-weight:500}body.day .gradient-text{background:linear-gradient(45deg,#c2185b,#e65100,#ad1457,#6a1b9a,#c2185b);background-size:300% 300%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:gradient-shift 8s ease-in-out infinite}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.intro-hi{font-size:42px;margin:0 0 .5rem;font-weight:inherit}.intro-subtitle{font-size:28px;white-space:nowrap;margin-bottom:1.5rem}.intro-desc{font-size:22px;padding-bottom:0;margin-bottom:2rem}.intro-cta-buttons{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap}.cta-button{padding:.85rem 1.75rem;font-size:16px;font-family:var(--font-base);font-weight:400;border-radius:12px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1.5px solid;text-transform:none;letter-spacing:.3px}body.day .cta-button{background:var(--btn-day-bg);border-color:var(--btn-day-border);color:var(--btn-day-text);box-shadow:0 4px 12px var(--btn-glass-shadow)}body.day .cta-button:hover{background:var(--btn-day-hover-bg);box-shadow:0 6px 20px #f4b88140;transform:translateY(-2px)}body.night .cta-button{background:var(--btn-night-bg);border-color:var(--btn-night-border);color:var(--btn-night-text);box-shadow:0 4px 12px #c5b2cc26}body.night .cta-button:hover{background:var(--btn-night-hover-bg);box-shadow:0 6px 20px #c5b2cc4d;transform:translateY(-2px)}.cta-button:active{transform:translateY(0)}.cta-primary{font-weight:500}@media only screen and (max-width:600px){#intro{padding:clamp(2rem,10vw,3rem) clamp(1.25rem,8vw,2.5rem);min-height:auto;flex-direction:column;justify-content:center;align-items:stretch;gap:clamp(1.5rem,8vw,3rem)}.intro-content{width:100%;margin:0;padding:0}.intro-content-left,.intro-content-right{padding:0;max-width:100%;flex:1 1 auto;width:100%}.intro-hi{font-size:36px;font-weight:600;font-style:normal}.intro-subtitle{font-size:20px;white-space:normal;padding:10px 0}.intro-desc,.intro-contact{font-size:16px;padding:10px 0;max-width:100%}.intro-cta-buttons{flex-direction:column;gap:.75rem}.cta-button{width:100%;padding:.75rem 1.5rem}.intro-content-right svg{max-width:100%;height:auto;display:block;margin:0 auto}}@media(max-width:900px){.intro-subtitle{white-space:normal}}.particles-background{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:0}.particle{position:absolute;border-radius:50%;opacity:.4;filter:blur(2px);animation:float-particle infinite ease-in-out;will-change:transform}@keyframes float-particle{0%,to{transform:translate(0) scale(1);opacity:.3}25%{transform:translate(20px,-30px) scale(1.1);opacity:.5}50%{transform:translate(-15px,-60px) scale(.9);opacity:.4}75%{transform:translate(25px,-40px) scale(1.05);opacity:.45}}@media only screen and (max-width:600px){.particle:nth-child(n+8){display:none}.particle{filter:blur(1.5px)}}#about{width:100%}.about-content{display:flex;flex-direction:column;gap:clamp(1.5rem,4vw,2.5rem)}.about-description{max-width:62ch;font-size:22px;line-height:1.7;text-align:left;margin:0;white-space:pre-line}.about-description p{font-size:22px}.about-description ul{margin-top:24px;padding:0;list-style-type:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem 1.5rem}.about-description li{position:relative;padding-left:1.75rem;font-size:20px;line-height:1.5}.about-description li:before{content:"▹";color:var(--green-bright);position:absolute;left:0;top:.2rem}.about-image{padding-left:40px}.about-image img{max-width:300px;height:auto;border-radius:10px;margin-left:30px;box-shadow:6px 13px 23px -5px #00000075;border:none}@media only screen and (max-width:788px){.about-image img{max-width:200px}}.about-image:hover{transform:translateY(-7px)}@media only screen and (max-width:600px){#about{height:unset;padding-left:unset;padding-right:unset}.about-description{font-size:16px;line-height:1.6}.about-description a,.about-description b{font-size:15px}.about-image img{display:none}.about-content{display:unset}}.joblist{flex-grow:1;display:flex;flex-direction:row;align-items:flex-start;gap:24px;padding-top:16px}.joblist--stacked{flex-direction:column;gap:16px;padding-top:24px}.joblist-tabs{display:flex;flex-direction:column;flex-shrink:0}.joblist--stacked .joblist-tabs{flex-direction:row;width:100%;overflow-x:auto}.joblist-tab{appearance:none;background:none;cursor:pointer;font-family:NTR,sans-serif;font-size:16px;font-weight:700;color:var(--navy);text-align:left;text-transform:none;white-space:nowrap;min-height:48px;padding:12px 20px;margin-bottom:8px;border:2px solid transparent;border-radius:12px;transition:all .2s ease}.joblist--stacked .joblist-tab{margin-bottom:0;margin-right:8px}.joblist-tab:hover{background:#ffa36614;border-color:#ffa3664d}.joblist-tab:focus-visible{color:var(--starry-night-blue);border-color:var(--starry-night-blue)}.joblist-tab--active{background:linear-gradient(135deg,#ffa36626,#ffa3661a);border-color:var(--bright-orange);color:var(--bright-orange);font-weight:700}body.night .joblist-tab{color:#fff}body.night .joblist-tab:focus-visible{color:var(--cloud-white);border-color:var(--bright-orange)}body.night .joblist-tab--active{color:var(--bright-orange)}.joblist-panel{min-width:0}body.day .joblist-tab--active{color:#c93412}#experience{width:100%}.joblist-job-title{font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--navy);margin-bottom:4px}body.night .joblist-job-title{color:var(--lightest-slate)}.joblist-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.joblist-job-company{font-weight:600;font-size:16px;color:var(--bright-orange);opacity:.9}body.day .joblist-job-company{color:#c93412}.joblist-duration{font-size:14px;font-weight:700;padding:6px 12px;background:linear-gradient(135deg,#ffa3661f,#367dff1f);color:var(--navy);border-radius:20px;border:1.5px solid rgba(255,163,102,.3)}body.night .joblist-duration{color:var(--cloud-white)}ul{list-style:none;margin-left:-20px}.job-description li:before{content:"◆";left:0;color:var(--bright-orange);margin-right:10px}.job-description li{padding-bottom:12px;font-size:16px;line-height:1.6}.job-description{padding-top:16px;max-width:650px;font-size:16px;margin-top:16px;padding-left:0}.experience-panel{padding:24px}@media only screen and (max-width:600px){#experience{min-height:auto;padding-top:clamp(3rem,12vw,4rem)}.job-description{padding-top:16px}.experience-panel{padding:12px 4px}.joblist-job-title,.joblist-job-company{font-size:22px}.joblist-duration{width:100%;text-align:left}}.navbar{position:fixed;top:0;left:0;right:0;z-index:1030;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;min-height:var(--navbar-height);font-size:20px;width:100%;box-sizing:border-box;padding-block:.5rem;padding-inline:clamp(1.5rem,5vw,5rem)}.navbar-nav{display:flex;flex-direction:row;align-items:center;list-style:none;margin:0;padding:0}.navbar-nav--sections{margin-right:auto}.nav-link{display:block;padding:.5rem;text-decoration:none;color:inherit}.navbar-toggler{display:none;padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;background-position:center;background-repeat:no-repeat;background-size:100%}.navbar-collapse{display:flex;align-items:center;flex-grow:1}.mobile-skip-projects{display:none}.navbar-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;opacity:.65;margin-right:1rem;align-self:center}.navbar .nav-link,.navbar .intro-contact{font-weight:400;letter-spacing:.01em;transition:color .25s ease}.navbar-nav .nav-link{position:relative;text-decoration:none!important}.navbar-nav .nav-link:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;border-radius:1px;transform:translate(-50%);transition:width .25s ease}.navbar-nav .nav-link:hover:after{width:60%}body.day .navbar-nav .nav-link:after{background-color:var(--deep-charcoal)}body.night .navbar-nav .nav-link:after{background-color:var(--bright-orange)}.intro-contact{align-self:center;padding:10px 15px;cursor:pointer;border-radius:4px}body.night .intro-contact{color:#fff}body.day .intro-contact{color:#000}body.day .intro-contact:hover{background-color:var(--pastel-peach)}body.night .intro-contact:hover{background-color:#000}body.night .navbar-nav .nav-link{color:#fff}body.day .navbar-nav .nav-link{color:#000}@keyframes tonight-navbar{0%{background-color:var(--lavender)}to{background-color:var(--night-bg)}}@keyframes today-navbar{0%{background-color:var(--night-bg)}to{background-color:var(--lavender)}}body.night .navbar{background-color:var(--night-bg)}body.day .navbar{background-color:var(--lavender)}body.theme-transition.night .navbar{animation-name:tonight-navbar;animation-duration:5s}body.theme-transition.day .navbar{animation-name:today-navbar;animation-duration:5s}body.day .navbar-toggler{border-color:#0003}body.night .navbar-toggler{border-color:#ffffff4d}body.day .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}body.night .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.75)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-nav .nav-link.nav-active{font-weight:var(--font-semibold);text-decoration:underline;text-underline-offset:.25rem}.navbar-nav .nav-link.nav-active:after{width:0!important}@media(max-width:991.98px){.navbar{flex-wrap:wrap}.navbar-toggler{display:inline-block}.navbar-collapse{display:none;flex-basis:100%;flex-direction:column;align-items:flex-start;padding:.75rem 0}.navbar-collapse--open{display:flex}.navbar-nav{flex-direction:column;align-items:flex-start;width:100%}.navbar-nav.navbar-nav--social{flex-direction:row;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(128,128,128,.35);border-top:1px solid color-mix(in srgb,currentColor 20%,transparent)}.navbar-nav--social .intro-contact{padding:.35rem .65rem}.mobile-skip-projects{display:inline-flex;align-items:center;justify-content:center;width:fit-content;margin-bottom:.5rem;padding:.35rem .65rem;border-radius:999px;font-size:.75rem;letter-spacing:.04em;text-decoration:none;border:1px solid currentColor;opacity:.8}.mobile-skip-projects:hover{opacity:1}.navbar-section-label{align-self:flex-start;margin:.35rem 0}.navbar-collapse .nav-link{padding:.5rem 0}.navbar-nav .nav-link:after{display:none}}.toggle-container{width:130px;height:50px;display:flex;justify-content:center;align-items:center;transform:scale(.85);transform-origin:center}.box{height:2.5rem;width:7.5rem;margin-left:00px;margin-top:00px;border-radius:40px;border:2px solid #E7E7EC;transition:background-color .4s ease,transform .4s ease}.boxedin{background-color:var(--bright-orange)}.boxedout{background-color:var(--border-navy)}@keyframes boxedin{0%{background-color:var(--border-navy);transform:scale(1)}to{background-color:var(--bright-orange);transform:scale(1.05)}}@keyframes boxedout{0%{background-color:var(--bright-orange);transform:scale(1.05)}to{background-color:var(--border-navy);transform:scale(1)}}.switch{display:block;appearance:none;background-color:transparent;padding:0;cursor:pointer;height:30px;width:110px;margin-top:3px;margin-left:3px;border-radius:30px;border:2px solid #E7E7EC}.switchedin{background-color:var(--pale-yellow);transition:background-color .4s ease,transform .4s ease}.switchedout{background-color:var(--light-purpuly);transition:background-color .4s ease,transform .4s ease}body.theme-transition .switchedin{animation:switchedin 3s}body.theme-transition .switchedout{animation:switchedout 3s}@keyframes switchedin{0%{background-color:var(--light-purpuly)}to{background-color:var(--pale-yellow)}}@keyframes switchedout{0%{background-color:var(--pale-yellow)}to{background-color:var(--light-purpuly)}}.yoke{height:1.25rem;width:1.4rem;margin-top:.2rem;margin-left:.3rem;border-radius:20px;background-color:var(--pale-yellow);cursor:pointer}.yoked{margin-left:80px;background-color:var(--bright-orange)}.unyoked{margin-left:5px;background-color:var(--pale-yellow)}body.theme-transition .yoked{animation:yokeMoveIn 3s forwards}body.theme-transition .unyoked{animation:yokeMoveOut 3s forwards}@keyframes yokeMoveIn{0%{margin-left:5px;background-color:var(--pale-yellow)}to{margin-left:80px;background-color:var(--bright-orange)}}@keyframes yokeMoveOut{0%{margin-left:80px;background-color:var(--bright-orange)}to{margin-left:5px;background-color:var(--pale-yellow)}}.te{height:500px;width:500px;margin-left:430px;margin-top:50px;font-size:20px;text-align:center}.teedin,.teedout{color:var(--day-txt)}body.theme-transition .teedin{animation:teedin 4s}body.theme-transition .teedout{animation:teedout 4s}@keyframes teedin{0%{color:var(--night-txt)}to{color:var(--day-txt)}}@keyframes teedout{0%{color:var(--night-txt)}to{color:var(--day-txt)}}#projects{width:100%;overflow-x:clip}.projects-carousel-wrapper{position:relative;padding:clamp(2rem,4vw,4rem) 0}.projects-carousel{display:flex;gap:clamp(1.5rem,3vw,2.5rem);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:1rem clamp(2rem,8vw,6rem);-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.projects-carousel::-webkit-scrollbar{display:none}.carousel-slide{flex:0 0 auto;width:min(800px,85vw);scroll-snap-align:center;display:flex;flex-direction:column;gap:1.5rem;opacity:.5;transform:scale(.95);transition:opacity .4s ease,transform .4s ease}.carousel-slide--active{opacity:1;transform:scale(1)}.carousel-slide__frame{width:100%}.carousel-slide__meta{display:flex;flex-direction:column;gap:.75rem;padding:clamp(1rem,2vw,1.5rem);border-radius:16px;text-align:center}body.day .carousel-slide__meta{background:#ffffffe6;box-shadow:0 8px 24px #0f172a1a}body.night .carousel-slide__meta{background:#0b0e22e6;box-shadow:0 8px 24px #02061766}.carousel-slide__meta h3{font-size:clamp(1.25rem,2vw,1.75rem);font-weight:400;margin:0}.carousel-slide__meta p{font-size:16px;line-height:1.6;margin:0}.carousel-slide__meta .techStack{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--soft-pastel-blue)}.carousel-slide__meta .external-links{justify-content:center}.carousel-slide__meta .github-icon,.carousel-slide__meta .open-icon{margin-top:0}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:48px;height:48px;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease,transform .2s ease,opacity .3s ease}.carousel-nav:hover{transform:translateY(-50%) scale(1.1)}.carousel-nav:active{transform:translateY(-50%) scale(.95)}.carousel-nav svg{width:24px;height:24px}.carousel-nav--prev{left:clamp(.5rem,2vw,1.5rem)}.carousel-nav--next{right:clamp(.5rem,2vw,1.5rem)}body.day .carousel-nav{background:var(--cloud-white);color:var(--deep-charcoal);box-shadow:0 4px 12px #0f172a26}body.day .carousel-nav:hover{background:var(--pale-peach)}body.night .carousel-nav{background:#1e233ce6;color:var(--cloud-white);box-shadow:0 4px 12px #02061766}body.night .carousel-nav:hover{background:#283050f2}.carousel-status{display:flex;justify-content:center;align-items:baseline;gap:.5rem;margin-top:.5rem;font-size:.9rem;transition:opacity .2s ease,transform .2s ease}.carousel-status__count{text-transform:uppercase;letter-spacing:.08em;opacity:.7}.carousel-status__title{font-weight:var(--font-medium)}.carousel-status--pulse{opacity:.45;transform:translateY(-2px)}.carousel-indicators{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.carousel-indicator{width:24px;height:24px;padding:7px;background-clip:content-box;border-radius:50%;border:none;cursor:pointer;transition:background-color .3s ease,transform .2s ease}.carousel-indicator:hover{transform:scale(1.2)}body.day .carousel-indicator{background:#0003}body.day .carousel-indicator--active{background:var(--deep-charcoal)}body.night .carousel-indicator{background:#fff3}body.night .carousel-indicator--active{background:var(--cloud-white)}.browser-frame__media-asset{width:100%;height:100%;object-fit:cover;display:block}.browser-frame__placeholder{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;color:var(--dark-grey);background:var(--placeholder-accent, linear-gradient(135deg, #f1f1f1 0%, #ffffff 100%))}body.night .browser-frame__placeholder{color:var(--cloud-white);background:linear-gradient(135deg,#28305ce6,#0b0e22e6)}.browser-frame__placeholder-icon.app-icon{width:clamp(40px,14%,64px);height:auto;opacity:.55}body.day .browser-frame__placeholder svg.app-icon,body.day .browser-frame__placeholder svg.app-icon:hover,body.night .browser-frame__placeholder svg.app-icon,body.night .browser-frame__placeholder svg.app-icon:hover{fill:currentColor}.browser-frame__placeholder-label{font-size:clamp(1.05rem,2.5vw,1.4rem);font-weight:var(--font-semibold, 600);text-transform:uppercase;letter-spacing:.08em}.browser-frame__placeholder-hint{font-size:.8rem;letter-spacing:.06em;text-transform:lowercase;opacity:.65}.project-container{margin-top:clamp(2rem,5vw,3rem)}.projects-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(1rem,3vw,1.5rem)}.projects-grid--single{grid-template-columns:minmax(260px,420px);justify-content:center}@media(max-width:1080px){.projects-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}.projects-card{position:relative;cursor:default;display:flex;flex-direction:column;gap:1.25rem;min-height:280px;padding:clamp(1.5rem,3vw,2rem);border-radius:16px;transform:translateY(0);transition:transform .3s ease,background-color .6s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.projects-card:hover{transform:translateY(-7px);cursor:pointer;box-shadow:0 18px 40px #0f172a2e}body.day .projects-card{background-color:var(--cloud-white);border:1px solid black}body.day .projects-card:hover{background-color:var(--pale-peach)}body.night .projects-card{border:1px solid white}body.theme-transition.day .projects-card{animation:today-projects 5s}body.theme-transition.night .projects-card{animation:tonight-projects 5s}@keyframes tonight-projects{0%{background-color:var(--cloud-white)}to{background-color:var(--night-bg)}}@keyframes today-projects{0%{background-color:var(--night-bg)}to{background-color:var(--cloud-white)}}body.night .projects-card:hover{background-color:#0d1025d9}a.github-icon{margin-top:6px;cursor:pointer}a.open-icon{margin-left:10px;cursor:pointer}.github-icon svg,.open-icon svg{color:var(--lightest-navy)}body.night .github-icon svg,body.night .open-icon svg{color:var(--lightest-slate)}.projects-card__header{display:flex;align-items:center;justify-content:space-between}.card-heading{display:flex;align-items:center;gap:1rem}.folder-icon{display:flex;align-items:center;justify-content:center;color:var(--soft-pastel-blue)}.card-title{margin:0;font-size:24px;font-weight:400}.card-desc{font-size:18px;line-height:1.6}.card-tech{margin-top:auto;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:var(--soft-pastel-blue)}.projects-card__footer{margin-top:1rem;display:flex;align-items:center;gap:.75rem}.projects-card__footer .github-icon,.projects-card__footer .open-icon{margin-top:0}@media(max-width:768px){.carousel-slide{width:min(500px,90vw)}.carousel-nav{width:40px;height:40px}.carousel-nav svg{width:20px;height:20px}}@media(max-width:480px){.carousel-slide{width:100%}.carousel-nav{display:none}.projects-carousel{padding:1rem}}@media only screen and (max-width:600px){#projects{height:unset;padding-left:unset;padding-right:unset}}body.day .carousel-slide__meta .techStack,body.day .card-tech{color:var(--starry-night-blue)}.browser-frame{--dot-close-rgb: 255, 95, 87;--dot-minimize-rgb: 255, 189, 46;--dot-maximize-rgb: 40, 200, 64;--dot-opacity: 1;border-radius:16px;overflow:hidden;transition:box-shadow .3s ease}body.day .browser-frame{box-shadow:0 8px 32px #0f172a1f}body.night .browser-frame{--dot-opacity: .7;box-shadow:0 8px 32px #02061773}.browser-frame__titlebar{display:flex;align-items:center;gap:8px;padding:12px 16px;-webkit-user-select:none;user-select:none}body.day .browser-frame__titlebar{background:var(--cloud-white);border-bottom:1px solid rgba(0,0,0,.06)}body.night .browser-frame__titlebar{background:#0b0e22f2;border-bottom:1px solid rgba(255,255,255,.08)}.browser-frame__dots{display:flex;gap:6px;flex-shrink:0}.browser-frame__dot{width:12px;height:12px;border-radius:50%}.browser-frame__dot--close{background:rgba(var(--dot-close-rgb),var(--dot-opacity))}.browser-frame__dot--minimize{background:rgba(var(--dot-minimize-rgb),var(--dot-opacity))}.browser-frame__dot--maximize{background:rgba(var(--dot-maximize-rgb),var(--dot-opacity))}.browser-frame__url-bar{flex:1;padding:6px 12px;border-radius:8px;font-size:13px;font-family:var(--font-base);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .3s ease,color .3s ease}body.day .browser-frame__url-bar{background:#0000000a;color:var(--deep-charcoal)}body.night .browser-frame__url-bar{background:#ffffff0f;color:var(--light-slate)}.browser-frame__url-bar:before{content:"🔒 ";font-size:11px;opacity:.45}.browser-frame__content{position:relative;aspect-ratio:16 / 10;overflow:hidden}body.day .browser-frame__content{background:var(--soft-gray)}body.night .browser-frame__content{background:var(--night-bg)}@media(max-width:600px){.browser-frame{border-radius:12px}.browser-frame__titlebar{padding:8px 12px;gap:6px}.browser-frame__dot{width:8px;height:8px}.browser-frame__url-bar{font-size:11px;padding:4px 8px}.browser-frame__content{aspect-ratio:4 / 3}}.notes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1rem}.notes-card{border-radius:12px;padding:1rem 1.1rem}body.day .notes-card{background:var(--cloud-white);border:1px solid black}body.night .notes-card{background:#020c1b59;border:1px solid rgba(167,178,207,.22)}body.theme-transition.night .notes-card{animation:tonight-notes 5s}body.theme-transition.day .notes-card{animation:today-notes 5s}@keyframes tonight-notes{0%{background-color:var(--cloud-white)}to{background-color:#020c1b59}}@keyframes today-notes{0%{background-color:#020c1b59}to{background-color:var(--cloud-white)}}.notes-card__title{margin:0 0 .5rem}body.night .notes-card__title{color:var(--lightest-slate)}.notes-card__description{margin:0 0 .9rem}body.day .notes-card__description{color:var(--dark-grey)}body.night .notes-card__description{color:var(--slate)}.notes-card__link{color:var(--green-bright);text-decoration:none;font-weight:600}body.day .notes-card__link{color:#c21e5f}.notes-card__link:hover,.notes-card__link:focus{text-decoration:underline}#credits{width:100%;display:flex;align-items:center;justify-content:center;margin-top:0}.ending-credits{color:var(--slate);text-align:center;width:100%;max-width:52ch;font-size:16px;line-height:1.6}body.day .ending-credits{color:#5a6480}#sky{width:100vw;height:100vh;position:fixed;overflow:hidden;margin:0;padding:0}#sky .star{opacity:0;animation-name:twinkle;animation-timing-function:ease-in-out;animation-direction:alternate;animation-iteration-count:infinite}#shootingstars{margin:0;padding:0;width:150vh;height:100vw;position:fixed;overflow:hidden;transform:translate(calc(50vw - 50%)) translatey(calc(50vh - 50%)) rotate(120deg)}.wish{height:var(--wish-thickness, 2px);top:300px;width:100px;margin:0;opacity:0;padding:0;background-color:#fff;position:absolute;background:linear-gradient(-45deg,#fff,#00f0);filter:drop-shadow(0 0 6px white);overflow:hidden;animation-name:shooting;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:forwards;--wish-start: -160px;--wish-mid-enter: -40px;--wish-mid-exit: 320px;--wish-end: 480px;--wish-rotation: 0deg}@keyframes twinkle{0%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes shooting{0%{opacity:0;transform:rotate(var(--wish-rotation, 10deg)) translate(var(--wish-start, -160px)) scaleX(0)}20%{opacity:1;transform:rotate(var(--wish-rotation, 120deg)) translate(var(--wish-mid-enter, -40px)) scaleX(1)}80%{opacity:1;transform:rotate(var(--wish-rotation, 120deg)) translate(var(--wish-mid-exit, 320px)) scaleX(1)}to{opacity:0;transform:rotate(var(--wish-rotation, 120deg)) translate(var(--wish-end, 480px)) scaleX(0)}}
