@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;750&display=swap";:root{--color-background: #0a0e14;--color-background-alt: #0f1620;--color-surface: #121924;--color-surface-hover: #18212e;--color-text-primary: #e8eef5;--color-text-secondary: #93a4b8;--color-text-muted: #62748c;--color-accent-cyan: #29d3ee;--color-accent-blue: #12b7d4;--color-accent-teal: #29d3ee;--color-accent-peach: #ff8f6b;--color-border: #2f3e50;--color-border-subtle: #232f3e;--canvas: var(--color-background);--paper: var(--color-background-alt);--ink: var(--color-text-primary);--muted: var(--color-text-secondary);--line: var(--color-border);--teal: var(--color-accent-cyan);--coral: var(--color-accent-peach);--serif: Georgia, "Times New Roman", serif;--sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--ink);background:var(--canvas);font-family:var(--sans);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--canvas)}a{color:inherit}button{font:inherit}img,video{display:block;max-width:100%}.container{width:min(100% - 2.5rem,75rem);margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:10;top:.75rem;left:.75rem;padding:.75rem 1rem;background:var(--color-accent-cyan);color:var(--color-background);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--color-accent-cyan);outline-offset:4px}.site-header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--canvas) 94%,var(--color-background-alt));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-content{min-height:4.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{font:700 1.35rem/1 var(--serif);text-decoration:none;letter-spacing:-.06em}.brand span{color:var(--color-accent-cyan)}.menu-button{min-width:44px;min-height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:.55rem .75rem;border-radius:999px;cursor:pointer}.menu-button:hover{background:var(--color-surface-hover);border-color:var(--color-accent-cyan);color:var(--color-accent-cyan)}.primary-nav{display:none;position:absolute;top:calc(100% + 1px);right:1.25rem;left:1.25rem;padding:.75rem;background:var(--paper);border:1px solid var(--line);box-shadow:0 12px 30px #17212b18}.primary-nav.is-open{display:grid;gap:.25rem}.primary-nav a{padding:.7rem .75rem;text-decoration:none;font-size:.93rem;color:var(--color-text-secondary)}.primary-nav a:hover{color:var(--color-accent-cyan)}.hero{padding:clamp(5rem,12vw,10rem) 0 clamp(5rem,10vw,8rem);border-bottom:1px solid var(--line)}.availability-status{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1.1rem;color:#a9d9bb;font-size:.77rem;font-weight:700;letter-spacing:.015em}.availability-status__dot{width:.5rem;height:.5rem;border-radius:50%;background:#66c987;box-shadow:0 0 0 3px #66c98720}.hero-grid,.section-grid,.contact-layout{display:grid;gap:2rem}.eyebrow{margin:0 0 1rem;color:var(--teal);font-size:.74rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:-.065em;line-height:.92}h1{margin-bottom:0;font-size:clamp(4rem,12vw,9.5rem)}h2{margin-bottom:0;font-size:clamp(2.8rem,7vw,5.75rem)}h1 em,h2 em{color:var(--color-accent-cyan);font-weight:400}h1 em{color:var(--color-accent-teal);background:linear-gradient(90deg,var(--color-accent-cyan) 0%,#72b8cc 48%,var(--color-accent-peach) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}@supports not ((background-clip: text) or (-webkit-background-clip: text)){h1 em{background:none;color:var(--color-accent-teal);-webkit-text-fill-color:currentColor}}.hero-intro{align-self:end;max-width:38rem}.lede{color:var(--color-text-primary);font-size:clamp(1.12rem,2vw,1.38rem);line-height:1.55}.action-row{display:flex;flex-wrap:wrap;gap:.75rem;margin:2rem 0 1rem}.button{display:inline-flex;align-items:center;gap:.5rem;min-height:2.85rem;padding:.7rem 1rem;border:1px solid var(--ink);border-radius:999px;text-decoration:none;font-weight:700;font-size:.92rem;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.button__icon,.text-link__icon{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7;transition:transform .16s ease}.button--primary{background:var(--color-accent-cyan);border-color:var(--color-accent-cyan);color:var(--color-background)}.button--primary:hover{background:#62e0f2;border-color:#62e0f2;transform:translateY(-2px)}.button--secondary:hover{color:var(--color-accent-cyan);border-color:var(--color-accent-cyan);background:var(--color-surface);transform:translateY(-2px)}.button:active{transform:translateY(0)}.button:hover .button__icon{transform:translate(2px)}.hero-socials{display:flex;gap:.55rem;margin-bottom:2rem}.social-button{display:inline-grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--line);border-radius:999px;color:var(--color-text-secondary);text-decoration:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.social-button:hover{background:var(--color-surface-hover);border-color:var(--color-accent-cyan);color:var(--color-accent-cyan);transform:translateY(-2px)}.social-button:active{transform:translateY(0)}.social-button__icon{width:1.1rem;height:1.1rem}.hero-stack{margin:0;color:var(--muted);font-size:.9rem}.hero-stack span{margin:0 .35rem;color:var(--color-accent-peach)}.section{padding:clamp(4.5rem,10vw,8rem) 0}.about-section,.contact-section{background:var(--paper)}.prose{max-width:43rem;color:var(--color-text-secondary);font-size:1.08rem;line-height:1.75}.prose p+p{margin-top:1.25rem}.section-heading{max-width:52rem;margin-bottom:clamp(3rem,7vw,5rem)}.project-list{display:grid;gap:clamp(4rem,10vw,9rem)}.project-card{display:grid;gap:2rem;align-items:center}.project-copy{max-width:31rem}.project-copy h3{font:500 clamp(2rem,4vw,3.25rem) / 1 var(--serif);letter-spacing:-.05em;margin-bottom:1rem}.project-copy>p:not(.eyebrow){color:var(--color-text-secondary);line-height:1.65;font-size:1.03rem}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1.5rem 0;list-style:none}.tag-list li{padding:.38rem .6rem;border:1px solid var(--line);border-radius:999px;color:var(--color-text-secondary);font-size:.8rem}.text-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--teal);font-weight:750;text-underline-offset:.25em;transition:color .16s ease}.text-link:hover{color:#5de0f4}.text-link:hover .text-link__icon{transform:translate(2px,-2px)}.project-media{overflow:hidden;border:1px solid var(--line);background:var(--color-surface);box-shadow:8px 8px 0 var(--color-border-subtle)}.project-media video,.project-media img{width:100%;aspect-ratio:16/10;object-fit:cover}.project-media video{background:var(--color-background)}.image-frame img{aspect-ratio:auto;object-fit:contain;transition:opacity .2s ease}.image-frame:hover img{opacity:.92}.skills-section{border-top:1px solid var(--line)}.skills-grid{display:grid;gap:1rem}.skill-group{padding:1.35rem;border:1px solid var(--line);background:var(--paper)}.skill-group h3{font:700 1rem/1.2 var(--sans);margin-bottom:1rem}.skill-group .tag-list{margin:0}.skill-group .tag-list .skill-tag{display:inline-flex;align-items:center;gap:.38rem;background:var(--color-surface);transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.skill-group .tag-list .skill-tag:hover{background:var(--color-surface-hover);border-color:var(--color-accent-cyan);color:var(--color-text-primary);transform:translateY(-2px)}.skill-icon{width:.95rem;height:.95rem;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65;color:var(--color-accent-blue)}.skill-tag:hover .skill-icon{color:var(--color-accent-cyan)}.skill-icon--mark rect{fill:color-mix(in srgb,currentColor 16%,transparent)}.skill-icon--mark text{fill:currentColor;stroke:none;font-family:var(--sans);font-size:6px;font-weight:750}.contact-layout{align-items:end}.contact-layout .lede{max-width:34rem}.contact-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;list-style:none;padding:0;margin:2rem 0 0}.contact-list a{display:flex;align-items:center;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid var(--color-border);font-weight:700;text-decoration:none}.contact-link-label{display:inline-flex;align-items:center;gap:.6rem}.contact-link-icon{width:1.05rem;height:1.05rem;flex:none;color:var(--color-accent-blue);transition:color .16s ease,transform .16s ease}.contact-link-arrow{color:var(--color-text-muted);transition:color .16s ease,transform .16s ease}.contact-list a:hover{color:var(--color-accent-cyan);border-color:var(--color-accent-cyan)}.contact-list a:hover .contact-link-icon,.contact-list a:hover .contact-link-arrow{color:currentColor}.contact-list a:hover .contact-link-icon{transform:translateY(-1px)}.contact-list a:hover .contact-link-arrow{transform:translate(2px,-2px)}.site-footer{padding:1.5rem 0;color:var(--muted);font-size:.8rem}.footer-content{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.footer-content p{margin:0}@media (min-width: 700px){.menu-button{display:none}.primary-nav{position:static;display:flex;gap:.3rem;padding:0;border:0;box-shadow:none;background:transparent}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(17rem,.65fr);gap:5rem}.section-grid,.contact-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:5rem}.project-card{grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr);gap:clamp(2rem,6vw,6rem)}.project-card--reverse .project-copy{order:2}.project-card--reverse .project-media{order:1}.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1000px){.site-header{position:sticky}.section{padding-block:8rem}.project-media{box-shadow:12px 12px 0 var(--color-border-subtle)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
