.site-header{position:fixed;inset:0 0 auto;z-index:50;transition:background .25s,border-color .25s;border-bottom:1px solid transparent}.site-header.is-scrolled{background:var(--header-bg-scrolled);border-bottom-color:var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.site-header__inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-header__brand{display:inline-flex;align-items:center;gap:.75rem;flex-shrink:0}.site-header__mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:999px;background:var(--accent);color:#fff;font-family:var(--font-display);font-size:.78rem;font-weight:800}.site-header__name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text)}.site-header__actions{display:none;align-items:center;gap:1.25rem;margin-left:auto}.site-header__nav{display:flex;align-items:center;gap:1.25rem}.site-header__link{font-size:.88rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nav-link);transition:color .2s}.site-header__link:hover{color:var(--accent)}.site-header__cta{min-height:2.4rem;padding:.55rem 1rem;font-size:.85rem}.site-header__menu{display:flex;flex-direction:column;gap:.3rem;background:none;border:none;padding:.35rem;cursor:pointer;margin-left:auto}.site-header__menu span{display:block;width:1.35rem;height:2px;background:var(--menu-icon)}.site-header__mobile{display:flex;flex-direction:column;gap:1rem;padding:1rem var(--page-pad) 1.35rem;background:var(--header-mobile-bg);border-bottom:1px solid var(--border)}@media(max-width:899px){.site-header__name{display:none}}@media(min-width:800px){.site-header__actions{display:flex}.site-header__menu,.site-header__mobile{display:none}}.hero.section{padding-top:calc(var(--header-h) + 5rem);padding-bottom:var(--section-space)}.hero__grid{display:grid;gap:1.75rem;align-items:center}.hero__copy{min-width:0}.hero__name{margin:0;font-family:var(--font-display);font-size:clamp(2.35rem,1.2rem + 4.2vw,4.25rem);font-weight:800;letter-spacing:-.045em;line-height:1;text-transform:uppercase}.hero__role{margin:.75rem 0 0;font-family:var(--font-display);font-size:clamp(1.15rem,1rem + .55vw,1.45rem);font-weight:600;color:var(--accent)}.hero__bio{margin:1rem 0 0;max-width:38rem;color:var(--text-muted);font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;font-weight:500}.hero__actions{margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.65rem}.hero__media{display:flex;justify-content:center}@media(min-width:900px){.hero.section{min-height:auto;padding-top:calc(var(--header-h) + 5.5rem);padding-bottom:2.5rem}.hero__grid{grid-template-columns:minmax(0,1.35fr) minmax(12rem,18rem);gap:clamp(1.5rem,3vw,3rem);align-items:center}.hero__media{justify-content:end}.hero .photo-frame{max-width:18rem;width:100%}}@media(min-width:900px)and (min-height:860px){.hero.section{min-height:auto;display:block;padding-top:calc(var(--header-h) + 5.5rem);padding-bottom:3rem}.hero__grid{width:100%}}@media(max-height:820px)and (min-width:900px){.hero.section{min-height:auto;padding-top:calc(var(--header-h) + 4rem);padding-bottom:1.5rem}.hero__name{font-size:clamp(2rem,1.8vw + 1rem,2.85rem)}.hero__role,.hero__bio{margin-top:.55rem}.hero__bio{font-size:1.05rem;line-height:1.6}.hero__actions{margin-top:.95rem}.hero .photo-frame{max-width:14rem}}@media(max-width:479px){.hero__actions{flex-direction:column;align-items:stretch}.hero__actions .btn{width:100%}}.about__grid{display:grid;gap:1.75rem;align-items:center}.about__media{display:flex;justify-content:center}.about__copy{min-width:0}.about__text{margin:.85rem 0 0;color:var(--text-muted);max-width:none;font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.75;font-weight:500}.contact__panel,.contact__wrap{width:100%}.contact__desc{margin:1rem 0 0;color:var(--text-muted);max-width:40rem;font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;font-weight:500}.contact__box{margin-top:1.35rem;padding:1.15rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);display:flex;flex-direction:column;gap:.85rem;max-width:32rem}.contact__email{width:100%;word-break:break-word}.contact__social{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.contact__social-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);font-weight:700;color:var(--text);transition:background .2s,border-color .2s,color .2s}.contact__social-link:hover{border-color:var(--accent);color:var(--accent)}.footer{border-top:1px solid var(--border);padding:1.25rem 0 1.75rem}.footer__inner{display:flex;flex-direction:column;gap:.65rem;color:var(--text-muted);font-size:.95rem}.footer__inner p{margin:0}.footer__top{font-weight:700;color:var(--text)}.footer__top:hover{color:var(--accent)}@media(min-width:900px){.about__grid{grid-template-columns:minmax(12rem,17rem) minmax(0,1fr);gap:clamp(1.75rem,3vw,3rem)}.about__media{justify-content:start}.about .photo-frame{max-width:17rem;width:100%}.contact__wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(16rem,22rem);gap:2rem;align-items:end}.contact__wrap>.section-kicker,.contact__wrap>.section-title,.contact__wrap>.contact__desc{grid-column:1}.contact__box{grid-column:2;grid-row:1 / span 4;align-self:center;max-width:none;width:100%;margin-top:0}.footer__inner{flex-direction:row;justify-content:space-between;align-items:center}}@media(max-width:899px){.about__grid,.contact__social{grid-template-columns:1fr}}@media(max-height:820px)and (min-width:900px){.about .photo-frame{max-width:13.5rem}}.projects__subtitle{margin:1rem 0 0;max-width:42rem;color:var(--text-muted);font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;font-weight:500}.projects__grid{display:grid;gap:.9rem;margin-top:1.5rem}.project-card{display:flex;flex-direction:column;gap:.7rem;padding:1.2rem 1.1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:transform .2s,border-color .2s;min-width:0}.project-card:hover{transform:translateY(-3px);border-color:#e11d2e73}.project-card__top{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.project-card__num{font-family:var(--font-display);font-size:1.35rem;font-weight:800;color:var(--accent);line-height:1}.project-card__type{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.project-card__title{margin:0;font-family:var(--font-display);font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);font-weight:700}.project-card__desc{margin:0;color:var(--text-muted);font-size:1.05rem;line-height:1.65;flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-card__tag{padding:.32rem .55rem;border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--tag-text)}.project-card__cta{width:fit-content;margin-top:.2rem}.project-card__icon{width:.85rem;height:.85rem}@media(min-width:700px){.projects__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}}.skills__text{margin:1rem 0 0;max-width:42rem;color:var(--text-muted);font-size:clamp(1.05rem,1rem + .3vw,1.2rem);line-height:1.7;font-weight:500}.skills__grid{margin-top:1.35rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.skills__item{display:inline-flex;align-items:center;justify-content:center;min-height:2.6rem;padding:.55rem .75rem;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);font-weight:700;font-size:.95rem;transition:border-color .2s,transform .2s,color .2s}.skills__item:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}@media(min-width:640px){.skills__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:900px){.skills__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}}@media(min-width:1200px){.skills__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.theme-toggle{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:60;display:inline-flex;align-items:center;gap:.55rem;min-height:2.75rem;padding:.65rem 1rem .65rem .85rem;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--text);font-family:var(--font-body);font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:var(--shadow-soft);transition:background .25s,border-color .25s,color .25s,transform .25s,box-shadow .25s}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.theme-toggle__icon{width:1.15rem;height:1.15rem;flex-shrink:0}.theme-toggle__label{line-height:1}@media(max-width:480px){.theme-toggle{padding:.75rem;min-height:2.75rem;min-width:2.75rem;justify-content:center}.theme-toggle__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.ambient__grid{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background-image:linear-gradient(var(--ambient-line) 1px,transparent 1px),linear-gradient(90deg,var(--ambient-line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);opacity:var(--ambient-grid-opacity);animation:ambient-grid-drift 48s linear infinite}.ambient__orb{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform}.ambient__orb--a{width:min(48vw,34rem);height:min(48vw,34rem);top:-8%;left:-6%;background:var(--ambient-orb-a);animation:ambient-float-a 22s var(--ease) infinite alternate}.ambient__orb--b{width:min(42vw,30rem);height:min(42vw,30rem);right:-8%;top:18%;background:var(--ambient-orb-b);animation:ambient-float-b 28s var(--ease) infinite alternate}.ambient__orb--c{width:min(50vw,36rem);height:min(50vw,36rem);left:28%;bottom:-18%;background:var(--ambient-orb-c);animation:ambient-float-c 26s var(--ease) infinite alternate}.ambient__beam{position:absolute;width:min(55vw,40rem);height:1px;background:linear-gradient(90deg,transparent,var(--ambient-beam),transparent);opacity:.55;transform-origin:center}.ambient__beam--1{top:28%;left:-10%;animation:ambient-beam-sweep 18s ease-in-out infinite}.ambient__beam--2{top:62%;right:-15%;animation:ambient-beam-sweep 24s ease-in-out infinite reverse}.ambient__dust{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1.5px 1.5px at 12% 22%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 28% 68%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 18%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 63% 42%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 78% 76%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 88% 28%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 18% 86%,var(--ambient-dust) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 52% 90%,var(--ambient-dust) 50%,transparent 51%);animation:ambient-dust-drift 36s linear infinite;opacity:.7}@keyframes ambient-grid-drift{0%{transform:translateZ(0)}to{transform:translate3d(64px,64px,0)}}@keyframes ambient-float-a{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(8%,12%,0) scale(1.08)}}@keyframes ambient-float-b{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-10%,8%,0) scale(1.12)}}@keyframes ambient-float-c{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(6%,-10%,0) scale(1.05)}}@keyframes ambient-beam-sweep{0%,to{transform:translateZ(0) rotate(-8deg);opacity:.25}50%{transform:translate3d(12%,4%,0) rotate(4deg);opacity:.65}}@keyframes ambient-dust-drift{0%{transform:translateZ(0)}to{transform:translate3d(0,-28px,0)}}@media(max-width:700px){.ambient__orb--c,.ambient__beam--2{display:none}.ambient__orb--a,.ambient__orb--b{filter:blur(56px)}}@media(prefers-reduced-motion:reduce){.ambient__grid,.ambient__orb,.ambient__beam,.ambient__dust{animation:none}}.app-main,.footer{position:relative;z-index:1}:root{--max-width: 74rem;--page-pad: 1.15rem;--header-h: 4.25rem;--section-space: clamp(2.75rem, 5.5vw, 4.75rem);--font-display: "Syne", system-ui, sans-serif;--font-body: "Manrope", system-ui, sans-serif;--radius: .35rem;--ease: cubic-bezier(.22, 1, .36, 1);--header-bg: transparent;--header-bg-scrolled: rgba(5, 5, 5, .92);--header-mobile-bg: rgba(5, 5, 5, .98);--nav-link: rgba(255, 255, 255, .78);--menu-icon: #ffffff;--ghost-border: rgba(255, 255, 255, .22);--photo-border: rgba(255, 255, 255, .1);--tag-text: #d8d8d8;--shadow-soft: 0 10px 30px rgba(0, 0, 0, .28)}html,html[data-theme=dark]{--bg: #070707;--bg-elevated: #121212;--bg-card: #171717;--text: #f5f5f5;--text-muted: #a8a8a8;--accent: #e11d2e;--accent-hover: #ff2f41;--accent-soft: rgba(225, 29, 46, .18);--border: rgba(255, 255, 255, .09);--header-bg-scrolled: rgba(7, 7, 7, .92);--header-mobile-bg: rgba(7, 7, 7, .98);--nav-link: rgba(245, 245, 245, .78);--menu-icon: #f5f5f5;--ghost-border: rgba(255, 255, 255, .22);--photo-border: rgba(255, 255, 255, .1);--tag-text: #d4d4d4;--shadow-soft: 0 12px 32px rgba(0, 0, 0, .35);--ambient-orb-a: rgba(225, 29, 46, .22);--ambient-orb-b: rgba(225, 29, 46, .12);--ambient-orb-c: rgba(255, 255, 255, .04);--ambient-beam: rgba(225, 29, 46, .45);--ambient-line: rgba(255, 255, 255, .035);--ambient-dust: rgba(255, 255, 255, .35);--ambient-grid-opacity: .55;color-scheme:dark}html[data-theme=light]{--bg: #e8ecf1;--bg-elevated: #f2f5f8;--bg-card: #f7f9fb;--text: #1a222c;--text-muted: #556274;--accent: #c8102e;--accent-hover: #a50d25;--accent-soft: rgba(200, 16, 46, .12);--border: rgba(26, 34, 44, .1);--header-bg-scrolled: rgba(232, 236, 241, .9);--header-mobile-bg: #eef1f5;--nav-link: rgba(26, 34, 44, .72);--menu-icon: #1a222c;--ghost-border: rgba(26, 34, 44, .18);--photo-border: rgba(26, 34, 44, .1);--tag-text: #445061;--shadow-soft: 0 10px 28px rgba(26, 34, 44, .08);--ambient-orb-a: rgba(200, 16, 46, .14);--ambient-orb-b: rgba(200, 16, 46, .08);--ambient-orb-c: rgba(26, 34, 44, .05);--ambient-beam: rgba(200, 16, 46, .28);--ambient-line: rgba(26, 34, 44, .05);--ambient-dust: rgba(26, 34, 44, .22);--ambient-grid-opacity: .7;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background .3s var(--ease),color .3s var(--ease)}::selection{background:var(--accent);color:#fff}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding-inline:var(--page-pad)}.section{padding:var(--section-space) 0}.section-kicker{margin:0 0 .55rem;color:var(--accent);font-size:clamp(1rem,.95rem + .25vw,1.15rem);font-weight:600}.section-title{margin:0;font-family:var(--font-display);font-size:clamp(1.85rem,1.35rem + 2.2vw,2.9rem);font-weight:800;letter-spacing:-.03em;line-height:1.12;color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.65rem;padding:.6rem 1.2rem;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-family:var(--font-body);font-size:.98rem;font-weight:700;cursor:pointer;transition:background .2s,transform .2s,border-color .2s,color .2s}.btn:hover{background:var(--accent-hover);transform:translateY(-2px);color:#fff}.btn--ghost{background:transparent;border:1px solid var(--ghost-border);color:var(--text)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent}.photo-frame{position:relative;width:100%;max-width:15rem;margin-inline:auto}.photo-frame__glow{position:absolute;top:10%;right:-5%;bottom:-5%;left:10%;background:var(--accent);border-radius:var(--radius);z-index:0}.photo-frame__img{position:relative;z-index:1;width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center top;border-radius:var(--radius);border:1px solid var(--photo-border)}@media(min-width:640px){:root{--page-pad: 1.5rem}.photo-frame{max-width:16.5rem}}@media(min-width:900px){:root{--page-pad: 2rem;--max-width: 80rem}}@media(min-width:1200px){:root{--max-width: 88rem;--page-pad: 2.25rem}}@media(min-width:1536px){:root{--max-width: 96rem;--page-pad: 2.5rem}}@media(max-height:800px){:root{--section-space: clamp(2.25rem, 4vw, 3.25rem)}}
