@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.sticky{position:sticky}.block{display:block}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.overflow-hidden{overflow:hidden}.lowercase{text-transform:lowercase}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--color-background:#0a0c14;--color-surface:#121725;--color-accent:#dc2626;--color-accent-light:#f87171;--color-text:#fff;--color-muted:#9ca3af;--radius-control:6px;--duration-standard:.3s;--size-project-link:2.75rem;--size-project-icon:1.5rem;--space-project-card:1rem;--size-project-cover:clamp(6rem, 20vh, 12.5rem);--duration-project-loop:55s;--gap-project-loop:1.25rem;--size-project-slide:clamp(17.5rem, 26vw, 24rem);--font-project-description:.875rem;--font-project-tag:.75rem;--space-project-tag-y:.25rem;--space-project-tag-x:.5rem;--admin-space:1rem;--admin-space-lg:2rem;--color-admin-border:#3a4154;--size-gallery-photo:clamp(17rem, 24vw, 21.25rem);--space-gallery:1.5rem;--space-gallery-stagger:.75rem;--radius-gallery:1rem;--duration-gallery-loop:90s;--space-skill-card:.9rem;--gap-skills-grid:.875rem;--gap-skill-list:.45rem;--space-skill-tag-y:.3rem;--space-skill-tag-x:.55rem;--font-skill-heading:1rem;--font-skill-tag:.85rem;--size-skill-icon:1rem;--size-skills-section:clamp(720px, 82vw, 1120px);--gap-contact-actions:2rem;--size-contact-section:clamp(540px, 52vw, 760px);--gap-contact-form:1rem;--space-contact-field-y:.65rem;--space-contact-field-x:.85rem;--space-contact-button-y:.7rem;--space-contact-button-x:1.25rem;--size-footer-width:clamp(240px, 20vw, 300px);--space-footer:1.25rem;--gap-footer:1rem;--font-footer:.875rem}html,body{background:var(--color-background);color:#ededed;min-height:100%;margin:0;font-family:Arial,Helvetica,sans-serif}.contact-content{grid-template-columns:minmax(0,1fr);gap:3rem;margin-top:2rem;display:grid}.contact-form{gap:var(--gap-contact-form);display:grid}.contact-form .form-field input,.contact-form .form-field textarea{padding:var(--space-contact-field-y) var(--space-contact-field-x)}.contact-form .contact-submit{padding:var(--space-contact-button-y) var(--space-contact-button-x)}.contact-actions{align-items:center;gap:var(--gap-contact-actions);flex-wrap:wrap;display:flex}.contact-email-link{color:var(--color-text);text-underline-offset:.2em}.contact-email-link:hover{color:var(--color-accent-light)}.contact-email-link:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:4px}.form-field{gap:.5rem;display:grid}.form-field label,.contact-details h3{color:var(--color-text);font-weight:600}.form-field input,.form-field textarea{box-sizing:border-box;border-radius:var(--radius-control);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;transition:border-color var(--duration-standard) ease, box-shadow var(--duration-standard) ease;border:1px solid #3a4154;padding:.85rem 1rem}.form-field textarea{resize:vertical}.form-field input:focus-visible,.form-field textarea:focus-visible{border-color:var(--color-accent-light);outline:2px solid var(--color-accent-light);outline-offset:2px}.form-field input[aria-invalid=true],.form-field textarea[aria-invalid=true]{border-color:var(--color-accent-light)}.field-error{margin:0;font-size:.9rem;color:var(--color-accent-light)!important}.honeypot-field{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.contact-submit,.contact-button{border:2px solid var(--color-accent);border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-text);font:inherit;transition:background var(--duration-standard) ease, border-color var(--duration-standard) ease, transform var(--duration-standard) ease;justify-content:center;align-self:flex-start;align-items:center;gap:.6rem;padding:.85rem 1.5rem;font-weight:600;text-decoration:none;display:inline-flex}.contact-submit{cursor:pointer}.contact-submit:hover:not(:disabled),.contact-button:hover{background:#991b1b;border-color:#991b1b}.contact-submit:focus-visible,.contact-button:focus-visible,.back-to-top:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:4px}.contact-submit:disabled{cursor:wait;opacity:.7}.button-spinner{border:2px solid #fff6;border-top-color:var(--color-text);border-radius:50%;width:1rem;height:1rem;animation:.8s linear infinite contact-spinner}.form-status{min-height:1.5rem;margin:0}.form-status-success{color:#86efac!important}.form-status-error{color:var(--color-accent-light)!important}.contact-details{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.contact-details h3{margin:0;font-size:1.1rem}.contact-socials,.footer-socials{flex-wrap:wrap;gap:1.25rem;display:flex}.site-footer{align-items:center;gap:var(--gap-footer);padding:var(--space-footer);color:var(--color-muted);text-align:center;font-size:var(--font-footer);border-top:1px solid #ffffff14;flex-direction:column;line-height:1.6;display:flex}.site-footer .social-link{font-size:inherit}.site-footer .footer-socials{gap:var(--gap-footer);justify-content:center}.site-footer .back-to-top{align-items:center;gap:var(--gap-skill-list);display:inline-flex}.site-footer p{margin:0}.back-to-top{color:var(--color-accent-light);text-decoration:none}@keyframes contact-spinner{to{transform:rotate(360deg)}}.scroll-progress{z-index:1100;background:var(--color-accent);transform-origin:0;pointer-events:none;height:3px;position:fixed;bottom:0;left:0;right:0;transform:scaleX(0)}#hero-scroll-wrapper{transform-origin:top}.projects-carousel{min-width:0;position:relative}.projects-carousel:focus-visible{outline-offset:6px;outline:2px solid #f87171}.projects-carousel-viewport{touch-action:pan-y;overflow:hidden}.projects-carousel-viewport,.photo-strip-viewport{-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.projects-carousel-container{width:max-content;animation:projects-carousel-drift var(--duration-project-loop) linear infinite;backface-visibility:hidden;display:flex}.projects-carousel-set{gap:var(--gap-project-loop);padding-right:var(--gap-project-loop);flex-shrink:0;height:100%;display:flex}.projects-carousel:not(.is-in-view) .projects-carousel-container{animation-play-state:paused}.projects-carousel.is-single .projects-carousel-container{animation:none}.projects-carousel.is-single .projects-carousel-set[aria-hidden=true]{display:none}@keyframes projects-carousel-drift{0%{transform:translate(-50%)}to{transform:translate(0)}}.projects-carousel-viewport:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:-2px}.projects-carousel .project-card p{font-size:var(--font-project-description);line-height:1.5}.projects-carousel .project-tech-tags li{font-size:var(--font-project-tag);padding:var(--space-project-tag-y) var(--space-project-tag-x)}.projects-carousel-slide{min-width:0;width:var(--size-project-slide);flex:0 0 var(--size-project-slide)}.projects-carousel .project-card{aspect-ratio:auto;height:100%}.projects-carousel .project-card img{object-fit:cover}.projects-carousel-controls{justify-content:center;align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.projects-carousel-button,.projects-carousel-dot{cursor:pointer;border:0}.projects-carousel-button{color:#f87171;background:#dc262626;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;font-size:1.2rem;display:grid}.projects-carousel-button:hover:not(:disabled){color:#fff;background:#dc26264d}.projects-carousel-button:disabled{cursor:not-allowed;opacity:.35}.projects-carousel-dots{align-items:center;gap:.5rem;display:flex}.projects-carousel-dot{background:#6b7280;border-radius:50%;width:.55rem;height:.55rem;padding:0}.projects-carousel-dot.is-active{background:#dc2626;transform:scale(1.25)}.projects-carousel-button:focus-visible,.projects-carousel-dot:focus-visible{outline-offset:3px;outline:2px solid #f87171}@media (max-width:700px){.projects-carousel-slide{width:var(--size-project-slide);flex-basis:var(--size-project-slide)}}html.lenis,html.lenis body{height:auto}html.page-horizontal{overscroll-behavior-x:none;scrollbar-width:none;width:100%;height:100vh;min-height:100vh;max-height:100vh;overflow:auto hidden}html.page-horizontal::-webkit-scrollbar{display:none}html.page-horizontal.lenis{width:auto;height:100%;overflow:auto hidden}body.page-horizontal,html.page-horizontal.lenis body{width:100%;height:100%;overflow:visible}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}*{box-sizing:border-box}.placeholder-page{text-align:center;background:var(--color-background);min-height:100vh;padding:180px 2rem 4rem}.placeholder-page h1{color:#fff}.placeholder-page p{color:#9ca3af}#projects-grid,.projects-page-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.project-card{background:#111722b8;border:1px solid #ffffff1a;border-radius:8px;transition:border-color .3s,transform .3s;overflow:hidden}.project-card:hover{border-color:#dc2626;transform:translateY(-4px)}.project-card-image{object-fit:cover;width:100%;height:200px;display:block}.project-card-image-placeholder{background:linear-gradient(135deg,#1f2937,#111722)}.project-card-content{padding:1.25rem}.project-card h3{color:#fff;margin:0}.project-card p{color:#9ca3af;line-height:1.6}.project-tech-tags{flex-wrap:wrap;gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:flex}.project-tech-tags li,.project-filter{color:#fca5a5;background:#dc262614;border:1px solid #f8717173;border-radius:999px;padding:.35rem .65rem;font-size:.85rem}.project-card-links{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.project-card-links .project-repo-link{width:var(--size-project-link);height:var(--size-project-link);border-radius:var(--radius-control);color:var(--color-accent-light);transition:color var(--duration-standard) ease;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.project-card-links .project-repo-link:hover{color:var(--color-text)}.project-repo-link svg{width:var(--size-project-icon);height:var(--size-project-icon)}.project-card-links a,.back-to-home{color:#f87171;text-underline-offset:3px}.project-card-links a:hover,.back-to-home:hover{color:#dc2626}.projects-empty{color:#9ca3af;grid-column:1/-1}.photo-strip-section{--strip-duration:var(--duration-gallery-loop);grid-template-columns:minmax(220px,35%) minmax(0,65vw);align-items:center;gap:2rem;min-height:420px;margin:2rem 0 4rem;display:grid}.photo-strip-copy{z-index:1;position:relative}.photo-strip-label{color:var(--color-accent-light);letter-spacing:.16em;margin:0 0 1rem;font-size:.75rem;font-weight:700}.photo-strip-copy h2{color:#fff;margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1.05}.photo-strip-copy h2 span{color:#dc2626}.photo-strip-copy>p:last-child{color:#9ca3af;max-width:26rem;margin:1.25rem 0 0;line-height:1.7}.photo-strip-viewport{min-width:0;padding-block:var(--space-gallery);outline:none;overflow:hidden}.photo-strip-viewport:focus-visible{outline-offset:6px;outline:2px solid #f87171}.photo-strip-track{width:max-content;animation:photo-strip-drift var(--strip-duration,70s) linear infinite;will-change:transform;display:flex}.photo-strip-section:not(.is-in-view) .photo-strip-track{animation-play-state:paused}.photo-strip-set{flex-shrink:0;display:flex}.photo-strip-card{width:var(--size-gallery-photo);margin-right:var(--space-gallery);aspect-ratio:3/4;border-radius:var(--radius-gallery);transition:transform var(--duration-standard) ease;scroll-snap-align:start;border:1px solid #0000;flex-shrink:0;overflow:hidden}.photo-strip-card-raised{transform:translateY(calc(-1 * var(--space-gallery-stagger)))}.photo-strip-card-lowered{transform:translateY(var(--space-gallery-stagger))}.photo-strip-card img{object-fit:cover;width:100%;height:100%;display:block}.photo-strip-toggle{margin-top:var(--space-gallery);border:1px solid var(--color-muted);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer;padding:.65rem 1rem}.photo-strip-toggle:hover{border-color:var(--color-accent-light)}.photo-strip-toggle:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:4px}@keyframes photo-strip-drift{0%{transform:translate(-50%)}to{transform:translate(0)}}@media (max-width:768px){.photo-strip-section{min-height:0;margin:1rem 0 3rem;display:block}.photo-strip-copy{margin-bottom:3rem}.photo-strip-viewport{width:100vw;margin-left:calc(50% - 50vw)}.photo-strip-card{width:min(72vw,20rem)}}.projects-page{max-width:1200px;min-height:100vh;margin:0 auto;padding:8rem 2rem 4rem}.projects-page h1{color:#fff;margin:2rem 0 .5rem}.projects-page-intro{color:#9ca3af;margin-bottom:2rem}.project-filters{flex-wrap:wrap;gap:.65rem;margin-bottom:2rem;display:flex}.project-filter{cursor:pointer;font:inherit}.project-filter:hover,.project-filter.is-active{color:#fff;background:#dc262638;border-color:#dc2626}.project-filter:focus-visible,.project-card-links a:focus-visible,.back-to-home:focus-visible{outline-offset:3px;outline:2px solid #f87171}@media (max-width:900px){#projects-grid,.projects-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){#projects-grid,.projects-page-grid{grid-template-columns:1fr}}.admin-shell{background:var(--color-background);min-height:100vh;color:var(--color-text);padding-top:5rem}.admin-project-panel{margin-top:var(--admin-space);border:1px solid var(--color-admin-border);border-radius:var(--radius-control);background:var(--color-surface)}.admin-project-panel summary{padding:var(--admin-space);cursor:pointer;overflow-wrap:anywhere}.admin-project-status{color:var(--color-muted);font-size:.875rem}.admin-editor{padding:var(--admin-space)}.admin-project-form,.admin-delete-form{gap:var(--admin-space);display:grid}.admin-delete-form{margin-top:var(--admin-space-lg);padding-top:var(--admin-space);border-top:1px solid var(--color-admin-border)}.admin-project-form select{padding:var(--admin-space);background:var(--color-background);color:var(--color-text);border:1px solid var(--color-admin-border);border-radius:var(--radius-control);font:inherit}.admin-checkbox{align-items:center;gap:var(--admin-space);display:flex}.admin-editor :focus-visible,.admin-project-panel summary:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:3px}@media (max-width:600px){.admin-header{gap:var(--admin-space);flex-wrap:wrap}.admin-dashboard{padding:var(--admin-space-lg) var(--admin-space)}}.admin-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex}.admin-header nav{align-items:center;gap:1.25rem;display:flex}.admin-header a,.admin-link-button{color:#f87171;font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:none}.admin-header a:hover,.admin-link-button:hover{color:#dc2626}.admin-header a:focus-visible,.admin-link-button:focus-visible,.admin-button:focus-visible,.admin-card input:focus-visible{outline-offset:3px;outline:2px solid #f87171}.admin-login{background:#0a0e14;place-items:center;min-height:100vh;padding:2rem;display:grid}.admin-card{background:#111722;border:1px solid #ffffff1f;border-radius:8px;gap:.75rem;width:min(100%,28rem);padding:2rem;display:grid}.admin-card h1,.admin-dashboard h1{color:#fff;margin:0}.admin-card p,.admin-dashboard p{color:#9ca3af}.admin-card input{color:#fff;background:#0a0e14;border:1px solid #4b5563;border-radius:4px;margin-bottom:.5rem;padding:.75rem}.admin-button{color:#fff;cursor:pointer;background:#dc2626;border:0;border-radius:4px;margin-top:.5rem;padding:.75rem 1rem;font-weight:600}.admin-button:hover{background:#b91c1c}.admin-button:disabled{cursor:wait;opacity:.7}.admin-error{color:#f87171!important}.admin-dashboard{max-width:60rem;margin:0 auto;padding:4rem 2rem}#header-outer{background:var(--color-background);z-index:1000;box-sizing:border-box;border-bottom:1px solid #ffffff14;justify-content:center;width:100%;padding:0;display:flex;position:fixed;top:0;left:0;right:0}#header-inner{border:1px;width:100%;max-width:1800px;padding:1.25rem 2rem}#header-container{border:1px;justify-content:space-between;align-items:center;padding:0;display:flex}.nav-link{color:#fff;padding:.25rem 0;font-size:clamp(.9rem,2vw,1.2rem);text-decoration:none;transition:color .3s;position:relative}.nav-link:hover{color:#dc2626}.nav-link[aria-current=page]{color:#dc2626;font-weight:700}.nav-link-underline{transform-origin:50%;background:#dc2626;height:2px;position:absolute;bottom:-.25rem;left:0;right:0}.nav-link:focus-visible{outline-offset:4px;outline:2px solid #dc2626}#username-container{color:#dc2626;align-items:center;gap:.5rem;font-size:clamp(1rem,2.5vw,1.2rem);font-weight:700;text-decoration:none;display:flex}#username-logo{object-fit:cover;border-radius:50%;width:clamp(30px,5vw,40px);height:clamp(30px,5vw,40px)}#nav-container{align-items:center;gap:clamp(1.5rem,4vw,3rem);display:flex}#menu-toggle,#mobile-menu{display:none}#profile-outer{background-color:var(--color-background);justify-content:center;min-height:calc(100vh - 100px);margin-top:0;padding:2rem 1rem;display:flex}#profile-inner{width:100%;max-width:1200px;padding:2rem}section{min-height:60vh;padding:4rem 0;scroll-margin-top:80px}.page-horizontal #profile-outer{box-sizing:border-box;background-color:var(--color-background);flex-direction:row;align-items:stretch;width:max-content;min-width:100vw;height:calc(100vh - 75px);min-height:calc(100vh - 75px);max-height:calc(100vh - 75px);margin-top:75px;padding:0;display:flex}.page-horizontal #profile-inner{box-sizing:border-box;flex-direction:row;align-items:center;gap:4.5rem;width:max-content;max-width:none;height:100%;padding:0 4rem 0 3rem;display:flex}.page-horizontal section{box-sizing:border-box;flex-direction:column;flex-shrink:0;justify-content:center;align-self:center;height:100%;min-height:0;max-height:calc(100vh - 110px);padding:1rem 0;scroll-margin-top:0;scroll-margin-left:2rem;display:flex}.page-horizontal #home{width:clamp(520px,60vw,850px)}.page-horizontal #hero-container{flex-direction:column;gap:1.25rem;margin-bottom:0;padding:1rem 0;display:flex}.page-horizontal #section-divider{background:linear-gradient(#0000,#3d4663 20% 80%,#0000);flex-shrink:0;align-self:center;width:1px;height:60%;max-height:480px;margin:0}.page-horizontal #projects{width:clamp(620px,66vw,980px)}.page-horizontal #projects-section-container{box-sizing:border-box;flex-direction:column;justify-content:center;gap:1.5rem;height:100%;min-height:0;padding:.5rem 0;display:flex}.page-horizontal #projects-section-container>.section-header,.page-horizontal #projects-section-container>:last-child{flex-shrink:0}.page-horizontal #projects .section-header{margin-bottom:0}.page-horizontal #projects #view-all-link{margin-top:0}.page-horizontal #projects .projects-carousel{flex-direction:column;flex:1;min-height:0;display:flex}.page-horizontal #projects .projects-carousel-viewport{min-height:0;padding-top:var(--space-project-card);flex:1}.page-horizontal #projects .projects-carousel-container,.page-horizontal #projects .projects-carousel-slide{height:100%;min-height:0}.page-horizontal #projects #projects-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;margin-top:0}.page-horizontal #projects .project-card{aspect-ratio:auto;box-sizing:border-box;flex-direction:column;height:100%;min-height:0;display:flex}.page-horizontal #projects .project-card-image{height:var(--size-project-cover);flex-shrink:0}.page-horizontal #projects .project-card-content{min-height:0;padding:var(--space-project-card);gap:var(--space-project-card);flex-direction:column;flex:1;display:flex}.page-horizontal #projects .project-card-details{scrollbar-width:thin;scrollbar-color:var(--color-accent-light) var(--color-surface);flex:1;min-height:0;overflow-y:auto}.project-card-details{overflow-wrap:anywhere}.project-card-details:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:-2px}.projects-page-grid .project-card{aspect-ratio:auto}.project-tech-tags li{box-sizing:border-box;max-width:100%}.page-horizontal #projects .project-card-links,.page-horizontal #projects .projects-carousel-controls{flex-shrink:0}.project-card:before{pointer-events:none}.page-horizontal .photo-strip-section{--size-gallery-photo:clamp(14rem, 36vh, 21.25rem);grid-template-columns:minmax(240px,28%) minmax(0,1fr);align-self:center;align-items:center;gap:2rem;width:clamp(800px,85vw,1300px);margin:0;display:grid}.page-horizontal #about{width:clamp(640px,68vw,1050px)}.page-horizontal .about-section{gap:2.5rem}.page-horizontal #skills{width:var(--size-skills-section);overflow-y:auto}.page-horizontal #skills .content-section{gap:var(--gap-skills-grid);margin-block:auto}.page-horizontal #skills .section-header{margin-bottom:var(--gap-skills-grid)}.page-horizontal .skills-grid{gap:var(--gap-skills-grid);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.page-horizontal #experience{width:clamp(640px,68vw,1050px)}.page-horizontal .experience-list{max-height:calc(100vh - 220px);padding-right:1rem;overflow-y:auto}.page-horizontal #contact{width:var(--size-contact-section)}#contact .contact-section{gap:var(--gap-contact-form)}#contact .section-header{margin-bottom:var(--gap-contact-form)}.page-horizontal .contact-content{gap:2rem;max-height:calc(100vh - 240px);margin-top:0;padding-right:.75rem;overflow-y:auto}.page-horizontal .site-footer{width:var(--size-footer-width);justify-content:center;align-self:center;align-items:center;gap:var(--gap-footer);height:auto;max-height:calc(100vh - 140px);padding:var(--space-footer);box-sizing:border-box;text-align:center;border-top:none;border-left:1px solid #ffffff14;flex-direction:column;flex-shrink:0;display:flex}.scroll-hint-arrow{color:var(--color-accent-light);font-size:1.15rem;animation:1.6s ease-in-out infinite scroll-hint-drift}@keyframes scroll-hint-drift{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.skills-grid,.experience-list,.contact-content{scrollbar-width:thin;scrollbar-color:#dc262666 transparent}.skills-grid::-webkit-scrollbar{width:4px}.experience-list::-webkit-scrollbar{width:4px}.contact-content::-webkit-scrollbar{width:4px}.skills-grid::-webkit-scrollbar-thumb{background:#dc262666;border-radius:4px}.experience-list::-webkit-scrollbar-thumb{background:#dc262666;border-radius:4px}.contact-content::-webkit-scrollbar-thumb{background:#dc262666;border-radius:4px}#hero-container{flex-direction:column;gap:1.5rem;margin-bottom:4rem;padding:3rem 0;display:flex}#hero-greeting{color:#fff;letter-spacing:-.02em;margin:0;font-size:clamp(2.5rem,6vw,4rem);font-weight:700}#hero-title{color:#e5e7eb;letter-spacing:-.01em;margin:0;font-size:clamp(2rem,5vw,3.5rem);font-weight:600}#hero-description{color:#9ca3af;max-width:750px;margin:1rem 0;font-size:clamp(1.1rem,2vw,1.3rem);line-height:1.7}#cta-button{color:#fff;background-color:#dc2626;border:2px solid #dc2626;border-radius:6px;justify-content:center;align-items:center;width:fit-content;padding:1rem 2rem;font-size:clamp(1rem,2vw,1.15rem);font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;box-shadow:0 4px 6px #dc262633}#cta-button:hover{background-color:#991b1b;border-color:#991b1b;transform:translateY(-2px);box-shadow:0 6px 12px #dc26264d}#cta-button:active{transform:translateY(0)}#section-divider{background:linear-gradient(90deg,#0000,#3d4663 20% 80%,#0000);width:100%;height:1px;margin:4rem 0}#projects-section-container{flex-direction:column;gap:2.5rem;padding:2rem 0;display:flex}.section-title{color:#fff;letter-spacing:-.01em;margin:0;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700}.content-section{flex-direction:column;gap:2rem;display:flex}.about-section{grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);align-items:center;gap:3rem;display:grid}.about-image-wrapper{border:1px solid #dc262659;border-radius:1rem;justify-self:center;max-width:26rem;overflow:hidden}.about-image{aspect-ratio:1;object-fit:cover;width:100%;height:auto;display:block}.about-content{flex-direction:column;gap:1.25rem;display:flex}.about-content p{color:#c4c9d4;margin:0;font-size:1.05rem;line-height:1.8}.currently-learning{color:#f87171!important;font-size:.95rem!important}.skills-grid{gap:var(--gap-skills-grid);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.skill-card{padding:var(--space-skill-card);background:#1a1f2ebf;border:1px solid #2d3348;border-radius:12px;transition:border-color .3s,transform .3s}.skill-card:hover{border-color:#dc2626;transform:translateY(-4px)}.skill-card h3{margin:0 0 var(--gap-skill-list);color:#fff;font-size:var(--font-skill-heading)}.skill-list{gap:var(--gap-skill-list);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.skill-list li{padding:var(--space-skill-tag-y) var(--space-skill-tag-x);color:#c4c9d4;font-size:var(--font-skill-tag);border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:.45rem;display:inline-flex}.skill-list svg{color:#f87171;font-size:var(--size-skill-icon);flex-shrink:0}.experience-list{flex-direction:column;gap:2rem;margin:0;padding:0 0 0 2rem;list-style:none;display:flex;position:relative}.experience-list:before{content:"";background:#dc2626a6;width:1px;position:absolute;top:.5rem;bottom:.5rem;left:.4rem}.experience-entry{color:#9ca3af;position:relative}.experience-dot{border:3px solid var(--color-background);background:#dc2626;border-radius:50%;width:.85rem;height:.85rem;position:absolute;top:.4rem;left:-2rem;box-shadow:0 0 0 1px #dc2626}.experience-entry-content{max-width:52rem}.experience-entry h3{color:#fff;margin:.2rem 0 .3rem;font-size:1.15rem;display:block}.experience-entry p{margin:0;line-height:1.65}.experience-dates{color:#f87171;letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:600}.experience-place{color:#c4c9d4;font-weight:600}.contact-section p{color:#9ca3af;margin:0}.contact-button{color:#fff;background:#dc2626;border:2px solid #dc2626;border-radius:6px;align-self:flex-start;padding:.85rem 1.5rem;font-weight:600;text-decoration:none;transition:all .3s}.contact-button:hover{background:#991b1b;border-color:#991b1b}#projects-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:1rem;display:grid}.placeholder-grid{grid-template-columns:1fr}.project-card{aspect-ratio:16/9;cursor:pointer;background-color:#1a1f2e;border:2px solid #2d3348;border-radius:12px;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.project-card img{object-fit:contain}.project-card:before{content:"";opacity:0;z-index:1;background:linear-gradient(135deg,#0000 0%,#dc26260d 100%);transition:opacity .3s;position:absolute;inset:0}.project-card:hover{border-color:#dc2626;transform:translateY(-8px);box-shadow:0 10px 30px #0006,0 0 0 1px #dc26261a}.project-card:hover:before{opacity:1}.project-info{color:#e5e7eb;opacity:0;z-index:2;background:linear-gradient(#0a0e14b3 0%,#0a0e14f2 100%);flex-direction:column;justify-content:center;gap:.5rem;height:50%;padding:1.25rem 1.5rem;transition:opacity .35s,transform .35s;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(10px)}.project-info h3{color:#fff;margin:0;font-size:1.1rem}.project-info p{color:#c7cbd4;margin:0;font-size:.95rem;line-height:1.5}.project-card:hover .project-info,.project-card:focus-visible .project-info{opacity:1;transform:translateY(0)}#view-all-link{color:#e5e7eb;border-radius:6px;justify-content:center;align-self:center;align-items:center;gap:.5rem;margin-top:2rem;padding:.75rem 1.5rem;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;position:relative}#view-all-link svg{font-size:1rem;transition:transform .3s}#view-all-link:hover{color:#dc2626;background-color:#dc262614}#view-all-link:hover svg{transform:translate(4px)}#cta-button:focus-visible,#view-all-link:focus-visible,.project-card:focus-visible{outline-offset:4px;outline:2px solid #dc2626}.name-highlight{color:#dc2626}.tech-highlight-continuous{color:#dc2626;font-weight:600;display:inline-block;position:relative}.tech-highlight-continuous span{display:inline-block;position:relative}.hero-socials{border-top:1px solid #ffffff14;gap:2rem;margin-top:2rem;padding-top:2rem;display:flex}.social-link{color:#9ca3af;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;text-decoration:none;transition:all .3s;display:flex}.social-link svg{font-size:1.5rem}.social-link:hover{color:#dc2626;transform:translateY(-3px)}.social-link:focus-visible{outline-offset:4px;border-radius:4px;outline:2px solid #dc2626}@media (max-width:768px){.contact-content{grid-template-columns:1fr;gap:2rem}#header-container{flex-direction:row}#nav-links{display:none}#menu-toggle{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff29;border-radius:6px;flex-direction:column;justify-content:center;gap:.3rem;width:2.75rem;height:2.75rem;padding:.65rem;display:inline-flex}#menu-toggle svg{width:100%;height:100%;display:block}#menu-toggle:hover,#menu-toggle[aria-expanded=true]{color:#dc2626;border-color:#dc262680}#menu-toggle:focus-visible{outline-offset:4px;outline:2px solid #dc2626}#mobile-menu{overscroll-behavior:contain;border-top:1px solid #ffffff14;width:100%;padding:1rem 0 .5rem;display:block}#mobile-menu nav{flex-direction:column;gap:.25rem;display:flex}.mobile-nav-link{padding:.85rem .25rem;display:block}#header-inner{padding:2vh 1rem}#nav-container{gap:2rem}#profile-inner{padding:1.5rem}#hero-container{margin-bottom:3rem;padding:2rem 0}#projects-grid{grid-template-columns:1fr;gap:1.5rem}.about-section{grid-template-columns:1fr;gap:2rem}.about-image-wrapper{width:min(100%,18rem)}.skills-grid,.page-horizontal .skills-grid{grid-template-columns:1fr}.page-horizontal #skills,.page-horizontal #contact{width:calc(100vw - 2rem)}.page-horizontal #skills .content-section{margin-block:0}#section-divider{margin:3rem 0}.page-horizontal #profile-outer{height:calc(100vh - 65px);min-height:calc(100vh - 65px);margin-top:65px}.page-horizontal #profile-inner{gap:1.5rem;padding:0 1rem}.page-horizontal section{flex-direction:column;justify-content:flex-start;width:calc(100vw - 2rem);min-width:calc(100vw - 2rem);height:calc(100vh - 90px);max-height:none;padding:1rem .5rem;display:flex;overflow-y:auto}.page-horizontal #home{justify-content:center}.page-horizontal #section-divider{display:none}.page-horizontal .photo-strip-section{flex-direction:column;gap:1.5rem;width:calc(100vw - 2rem);min-width:calc(100vw - 2rem);display:flex}.page-horizontal .site-footer{border-top:1px solid #ffffff14;border-left:none;width:calc(100vw - 2rem);min-width:calc(100vw - 2rem);height:auto}}@media (max-width:480px){#header-inner{padding:1.5vh .5rem}#profile-outer{margin-top:0;padding:1rem .5rem}#profile-inner{padding:1rem}#hero-container{gap:1rem;margin-bottom:2rem;padding:1.5rem 0}#section-divider{margin:2rem 0}#projects-section-container{gap:2rem;padding:1rem 0}#cta-button{padding:.875rem 1.75rem}.hero-socials{flex-direction:column;align-items:flex-start;gap:1rem}}.section-dots{z-index:900;flex-direction:column;align-items:center;gap:.75rem;display:flex;position:fixed;top:50%;right:1.5rem;transform:translateY(-50%)}.section-dot{width:8px;height:8px;transition:background var(--duration-standard) ease, transform var(--duration-standard) ease;background:#fff3;border-radius:50%;text-decoration:none;display:block;position:relative}.section-dot:hover{background:#ffffff80;transform:scale(1.3)}.section-dot.is-active{background:var(--color-accent)}.section-dot-active-ring{border:1px solid var(--color-accent);border-radius:50%;display:block;position:absolute;inset:-4px}.section-dot:focus-visible{outline:2px solid var(--color-accent-light);outline-offset:3px}@media (max-width:768px){.section-dots{display:none}}.section-header{align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.section-number{letter-spacing:.15em;color:var(--color-accent);opacity:.8;font-family:monospace;font-size:clamp(.65rem,1.2vw,.8rem);font-weight:700}.hero-decorator{background:linear-gradient(to right, var(--color-accent), transparent);width:clamp(60px,8vw,100px);height:2px;margin:.5rem 0}.name-highlight{color:var(--color-accent);text-shadow:0 0 40px #dc262640}.page-horizontal #home,.page-horizontal #projects,.page-horizontal #about,.page-horizontal #skills,.page-horizontal #experience,.page-horizontal #contact{background:var(--color-background)}
