:root{--maroon: rgb(100, 17, 17);--maroon-light: rgba(100, 17, 17, .8);--maroon-mute: rgba(100, 17, 17, .6);--maroon-glass: rgba(100, 17, 17, .2);--white: rgb(255, 255, 255);--white-light: rgba(255, 255, 255, .8);--white-mute: rgba(255, 255, 255, .6);--white-glass: rgba(255, 255, 255, .2);--dark: rgb(0, 0, 0);--dark-light: rgba(0, 0, 0, .8);--dark-mute: rgba(0, 0, 0, .6);--dark-glass: rgba(0, 0, 0, .2);--cream: rgb(250, 247, 242);--cream-dark: rgb(238, 232, 222);--ink: rgb(22, 16, 16);--titleSize: clamp(1.5rem, 3vw, 4rem);--subtitleSize: clamp(.9rem, 1.5vw, 3rem);--textSize: clamp(.8rem, 1.2vw, 2rem);--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Jost", sans-serif;--font-mono: "DM Mono", monospace;--ease-silk: cubic-bezier(.25, .46, .45, .94);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--nav-h: 4rem;--section-gap: clamp(4rem, 10vw, 9rem);--max-w: 1280px;--gutter: clamp(1.25rem, 5vw, 4rem)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);font-weight:300;background:var(--cream);color:var(--ink);overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}ul,ol{list-style:none}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--cream-dark)}::-webkit-scrollbar-thumb{background:var(--maroon-mute);border-radius:2px}.t-display{font-family:var(--font-display);font-weight:300;line-height:1.05;letter-spacing:-.01em}.t-label{font-family:var(--font-body);font-weight:400;font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--maroon)}.t-mono{font-family:var(--font-mono);font-weight:300;font-size:.78rem;letter-spacing:.04em}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter)}.rule{width:100%;height:1px;background:var(--dark-glass)}.rule-maroon{width:100%;height:1px;background:var(--maroon-glass)}.nav,.admin-nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:100;display:flex;align-items:center;transition:background .5s var(--ease-silk),backdrop-filter .5s}.nav.scrolled{background:#faf7f2e6;-webkit-backdrop-filter:blur(2px) saturate(120%);backdrop-filter:blur(2px) saturate(120%);border-bottom:1px solid var(--dark-glass)}.nav__inner,.admin-nav-inner{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between}.nav__logo,.admin-nav-logo{font-family:var(--font-display);font-size:1.35rem;font-weight:400;font-style:italic;color:var(--maroon);letter-spacing:.02em}.nav__links{display:flex;gap:2.5rem;align-items:center}.nav__link{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--dark-mute);position:relative;transition:color .3s}.nav__link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--maroon);transition:width .4s var(--ease-silk)}.nav__link:hover{color:var(--maroon)}.nav__link:hover:after{width:120%}.nav__cta{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;color:var(--white);background:var(--maroon);padding:.55rem 1.4rem;border-radius:0;transition:background .3s,letter-spacing .3s}.nav__cta:hover{background:var(--maroon-light);letter-spacing:.24em}.hero{min-height:100svh;padding-top:var(--nav-h);display:grid;position:relative;overflow:hidden}.hero__bg-text{position:absolute;right:-3vw;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:clamp(8rem,22vw,22rem);font-weight:300;font-style:italic;color:var(--maroon-glass);white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:-.04em;line-height:1}.hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:calc(100svh - var(--nav-h));gap:2rem}.hero__left{display:flex;flex-direction:column;gap:1.75rem;padding-block:clamp(3rem,8vh,6rem)}.hero__eyebrow{display:flex;align-items:center;gap:1rem}.hero__eyebrow-line{width:2.5rem;height:1px;background:var(--maroon)}.hero__name{font-family:var(--font-display);font-size:clamp(3rem,7vw,7.5rem);font-weight:300;line-height:1;letter-spacing:-.02em}.hero__name em{font-style:italic;color:var(--maroon)}.hero__tagline{font-size:var(--subtitleSize);font-weight:300;color:var(--dark-mute);max-width:36ch;line-height:1.7}.hero__actions{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.btn-primary{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--white);background:var(--maroon);padding:.9rem 2.4rem;position:relative;overflow:hidden;transition:letter-spacing .4s var(--ease-silk)}.btn-primary:before{content:"";position:absolute;inset:0;background:var(--dark);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-silk)}.btn-primary:hover{letter-spacing:.25em}.btn-primary:hover:before{transform:scaleX(1)}.btn-primary span{position:relative;z-index:1}.btn-ghost{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--maroon);border-bottom:1px solid var(--maroon-mute);padding-bottom:.15rem;transition:color .3s,border-color .3s;display:flex;align-items:center;gap:.5rem}.btn-ghost:hover{color:var(--dark);border-color:var(--dark-mute)}.btn-ghost svg{width:14px;height:14px;transition:transform .3s}.btn-ghost:hover svg{transform:translate(4px)}.hero__right{position:relative;height:100%;display:flex;align-items:center;justify-content:flex-end;margin-bottom:12px}.hero__portrait-wrap{position:relative;width:82%;max-width:440px;aspect-ratio:3/4}.hero__portrait-frame{position:absolute;inset:0;border:1px solid var(--maroon-light);transform:translate(14px,14px);pointer-events:none}.hero__portrait{width:100%;height:100%;object-fit:cover;filter:sepia(8%);border-radius:10px}.hero__portrait-label{position:absolute;bottom:-2.5rem}.hero__stats{position:absolute;right:-1rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:1.5rem}.hero__stat{text-align:center;background:var(--cream);padding:.9rem 1.1rem;border:1px solid var(--dark-glass)}.hero__stat-num{font-family:var(--font-display);font-size:1.8rem;font-weight:300;color:var(--maroon);line-height:1}.hero__stat-lbl{color:var(--dark-mute);margin-top:.2rem}.marquee-strip{background:var(--maroon);padding-block:1rem;overflow:hidden;display:flex}.marquee-track{display:flex;gap:3rem;white-space:nowrap;animation:marquee 42s linear infinite}.marquee-track:nth-child(2){animation-direction:reverse}.marquee-item{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white-mute);display:flex;align-items:center;gap:1rem}.marquee-item:after{content:"✦";color:var(--white-glass);font-size:.45rem}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.about{padding-block:var(--section-gap)}.about__inner{display:grid;grid-template-columns:1fr 2fr;gap:clamp(2rem,6vw,6rem);align-items:start}.about__sidebar{position:sticky;top:calc(var(--nav-h) + 2rem);display:flex;flex-direction:column;gap:2rem}.about__img-wrap{aspect-ratio:1;overflow:hidden;position:relative}.about__img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-silk)}.about__img-wrap:hover img{transform:scale(1.04)}.about__img-caption{margin-top:.75rem;color:var(--dark-mute)}.about__content{display:flex;flex-direction:column;gap:2rem;padding-top:.5rem}.about__lead{font-family:var(--font-display);font-size:clamp(1.5rem,2.8vw,2.8rem);font-weight:300;line-height:1.35;letter-spacing:-.01em}.about__lead em{font-style:italic;color:var(--maroon)}.about__body{font-size:var(--textSize);line-height:1.85;color:var(--dark-mute);max-width:60ch}.about__skills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.skill-tag{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;padding:.35rem .85rem;border:1px solid var(--maroon-glass);color:var(--maroon);background:transparent;transition:background .3s,color .3s}.skill-tag:hover{background:var(--maroon);color:var(--white)}.projects{padding-block:var(--section-gap);background:var(--cream-dark)}.projects__header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(2.5rem,5vw,4rem)}.projects__title{font-family:var(--font-display);font-size:var(--titleSize);font-weight:300;color:var(--dark-mute);line-height:1.1}.projects__title em{font-style:italic;color:var(--maroon-light)}.projects__view-all{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white-mute);border-bottom:1px solid var(--white-glass);padding-bottom:.15rem;transition:color .3s,border-color .3s}.projects__view-all:hover{color:var(--white);border-color:var(--white-mute)}.projects__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.25rem}.project-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.06);transition:border-color .4s}.project-card:hover{border-color:var(--maroon-glass)}.project-card--featured{grid-column:span 7;aspect-ratio:4/3}.project-card--side{grid-column:span 5;aspect-ratio:3/4}.project-card--wide{grid-column:span 5;aspect-ratio:16/9}.project-card--sq{grid-column:span 4;aspect-ratio:1}.project-card--tall{grid-column:span 3;aspect-ratio:2/3}.project-card__img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%) brightness(.75);transition:filter .6s var(--ease-silk),transform .7s var(--ease-silk)}.project-card:hover .project-card__img{filter:grayscale(0%) brightness(.85);transform:scale(1.04)}.project-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82) 0%,transparent 55%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;gap:.4rem}.project-card__type{color:var(--white)}.project-card__name{font-family:var(--font-display);font-size:clamp(1.1rem,2.2vw,1.85rem);font-weight:300;color:var(--cream-dark);line-height:1.2}.project-card__desc{font-size:.75rem;color:var(--white-mute);line-height:1.6;max-width:36ch;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease-silk),transform .4s var(--ease-silk)}.project-card:hover .project-card__desc{opacity:1;transform:translateY(0)}.project-card__link{position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;border:1px solid var(--white-glass);display:flex;align-items:center;justify-content:center;color:var(--white-mute);opacity:0;transform:translate(4px,-4px);transition:opacity .3s,transform .3s,background .3s;font-size:.75rem}.project-card:hover .project-card__link{opacity:1;transform:translate(0);background:var(--maroon);border-color:var(--maroon);color:var(--white)}.experience{padding-block:var(--section-gap)}.experience__inner{display:grid;grid-template-columns:1fr 2fr;gap:clamp(2rem,6vw,6rem);align-items:start}.experience__sticky{position:sticky;top:calc(var(--nav-h) + 2rem)}.exp-title{font-family:var(--font-display);font-size:var(--titleSize);font-weight:300;line-height:1.1}.exp-title em{font-style:italic;color:var(--maroon)}.experience__list{display:flex;flex-direction:column}.exp-item{display:grid;grid-template-columns:auto 1fr;gap:0 2rem;position:relative;padding-block:2rem;border-bottom:1px solid var(--dark-glass);transition:background .3s}.exp-item:first-child{border-top:1px solid var(--dark-glass)}.exp-item:hover{background:var(--cream-dark);padding-inline:1rem}.exp-item__year{font-family:var(--font-mono);font-size:.72rem;color:var(--maroon-mute);padding-top:.25rem;min-width:5rem}.exp-item__body{display:flex;flex-direction:column;gap:.4rem}.exp-item__role{font-family:var(--font-display);font-size:clamp(1.1rem,1.8vw,1.5rem);font-weight:400}.exp-item__company{color:var(--maroon);font-weight:400;font-size:.85rem;letter-spacing:.04em}.exp-item__desc{font-size:var(--textSize);color:var(--dark-mute);line-height:1.7;margin-top:.4rem}.exp-item__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.exp-tag{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;background:var(--cream-dark);padding:.2rem .6rem;color:var(--dark-mute)}.skills-sec{display:grid;padding:2rem;grid-template-columns:1fr 1fr;background-color:var(--cream-dark)}.skills-title{display:flex;justify-content:center;color:var(--maroon);font-family:var(--font-display);letter-spacing:.22rem;margin:1.2rem}.skills-item{color:var(--dark);font-family:var(--font-body);text-align:center;background-color:var(--cream);display:flex;justify-content:center;align-items:center;padding:.4rem;margin:.2rem}.contact{padding-block:var(--section-gap);background:var(--maroon);position:relative;overflow:hidden}.contact__bg-num{position:absolute;right:var(--gutter);top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:clamp(10rem,30vw,28rem);font-weight:300;font-style:italic;color:#ffffff0a;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1}.contact__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}.contact__left{display:flex;flex-direction:column;gap:1.5rem}.contact .t-label{color:var(--white-mute)}.contact__heading{font-family:var(--font-display);font-size:clamp(2rem,5vw,5rem);font-weight:300;color:var(--white);line-height:1.1}.contact__heading em{font-style:italic}.contact__sub{color:var(--white-mute);font-size:var(--textSize);line-height:1.75}.contact__socials{display:flex;gap:1rem;margin-top:.5rem}.social-link{border:1px solid var(--white-glass);display:flex;align-items:center;justify-content:center;color:var(--white-mute);font-size:.75rem;transition:background .3s,border-color .3s,color .3s;padding:1rem}.social-link:hover{background:var(--white);border-color:var(--white);color:var(--maroon)}.contact__form{display:flex;flex-direction:column;gap:1.25rem}.form-field{position:relative}.form-field input,.form-field textarea{width:100%;background:var(--white-glass);border:1px solid var(--white-glass);border-bottom-color:var(--white-mute);color:var(--white);padding:1rem 0;font-family:var(--font-body);font-size:var(--textSize);font-weight:300;outline:none;border-radius:0;transition:border-color .3s;caret-color:var(--white)}.form-field input{border-top:none;border-left:none;border-right:none}.form-field textarea{resize:vertical;min-height:110px;border-top:none;border-left:none;border-right:none}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--white-mute)}.form-field input:focus,.form-field textarea:focus{border-bottom-color:var(--white)}.form-label{position:absolute;top:1rem;left:.5rem;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--white-mute);pointer-events:none;transition:top .3s,font-size .3s,color .3s}.form-field input:focus~.form-label,.form-field input:not(:placeholder-shown)~.form-label,.form-field textarea:focus~.form-label,.form-field textarea:not(:placeholder-shown)~.form-label{top:-1rem;left:1rem;font-size:.58rem;color:var(--white-light)}.btn-submit{align-self:flex-start;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:var(--maroon);background:var(--white);padding:1rem 2.5rem;position:relative;overflow:hidden;transition:color .4s,letter-spacing .4s var(--ease-silk)}.btn-submit:before{content:"";position:absolute;inset:0;background:var(--cream);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-silk)}.btn-submit:hover{letter-spacing:.26em}.btn-submit:hover:before{transform:scaleX(1)}.btn-submit span{position:relative;z-index:1}.footer{padding-block:2rem;background:var(--ink)}.footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.footer__logo{font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--white-mute)}.footer__copy{color:var(--white-mute)}.footer__back-top{width:2.5rem;height:2.5rem;border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;color:var(--white-mute);font-size:.7rem;transition:background .3s,color .3s;text-decoration:none}.footer__back-top:hover{background:var(--maroon);color:var(--white);border-color:var(--maroon)}.created_by{display:grid;align-self:center;font-weight:500;font-size:5.5px;font-family:monospace;color:var(--cream);letter-spacing:.15rem}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.anim-fadeup{opacity:0;animation:fadeUp .9s var(--ease-silk) forwards}.anim-fadein{opacity:0;animation:fadeIn 1s var(--ease-silk) forwards}.d-1{animation-delay:.1s}.d-2{animation-delay:.25s}.d-3{animation-delay:.4s}.d-4{animation-delay:.55s}.d-5{animation-delay:.7s}.admin-nav{-webkit-backdrop-filter:blur(2rem) saturate(160%);backdrop-filter:blur(2rem) saturate(160%);border-bottom:2px solid var(--dark-glass)}.page-container{flex:1;display:flex;flex-direction:column;align-items:center;gap:4rem;margin-top:clamp(8rem,10vh,8rem);margin-bottom:clamp(8rem,10vh,8rem)}.login-container,.register-container{display:flex;flex-direction:column;padding:.8rem;gap:2.4rem;background-color:var(--cream-dark);margin-inline:clamp(2.2vw,12vw,12vw);border-radius:25px;box-shadow:0 0 26px}.login-box,.register-box{height:30vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.4rem}.login-title,.register-title{text-align:center;font-size:var(--titleSize);font-family:var(--font-display);margin:1.2rem}.input{padding:.75rem;font-size:16px}.submit{padding:.85rem;background-color:var(--maroon-light);border-radius:20px;font-size:1rem;cursor:pointer}.admin-container{height:70vh;width:90vw;box-shadow:0 0 26px;background-color:var(--cream-dark);border-radius:20px;overflow:scroll}.message-box{flex-direction:column;justify-content:center;line-height:1.5rem;padding:1rem;border-bottom:2px solid var(--dark);overflow:scroll}.text{color:#046813;font-family:var(--font-mono)}.no-text{color:#046813;font-family:var(--font-mono);text-align:center;margin:1.2rem}.admin-btn{color:var(--maroon);padding:.4rem}@media(max-width:1024px){.hero__inner{grid-template-columns:1fr}.hero__right{display:none}.hero__name{font-size:clamp(3rem,12vw,5.5rem)}.projects__grid{grid-template-columns:1fr 1fr}.project-card--featured,.project-card--side,.project-card--wide,.project-card--sq,.project-card--tall{grid-column:span 1;aspect-ratio:4/3}.about__inner,.experience__inner,.contact__inner{grid-template-columns:1fr}.about__sidebar,.experience__sticky{position:static}}@media(max-width:640px){.nav__links{display:none}.projects__header{flex-direction:column;align-items:flex-start;gap:1rem}.footer__inner{flex-direction:column;text-align:center}.contact__socials{justify-content:flex-start}}
