.home-page .home-hero{position:relative;min-height:calc(80vh - var(--nav-height));display:flex;align-items:center;padding:56px 0 48px;overflow:hidden}.home-page .home-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(620px 420px at 72% 18%,var(--accent-glow),transparent 70%)}.home-page .home-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:56px;align-items:center}.home-page .home-hero-identity{display:flex;align-items:center;gap:14px;margin-bottom:18px}.home-page .home-hero-identity .section-kicker{margin-bottom:0}.home-page .home-hero-avatar-btn{padding:0;border:none;background:none;border-radius:50%;cursor:pointer;flex-shrink:0;transition:transform .15s ease,box-shadow .15s ease}.home-page .home-hero-avatar-btn:hover,.home-page .home-hero-avatar-btn:focus-visible{transform:scale(1.05);box-shadow:0 0 0 4px var(--accent-border-hover);outline:none}.home-page .home-hero-avatar{display:block;width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--border-strong);box-shadow:0 0 0 4px var(--accent-soft)}.home-page .home-hero-title{font-size:clamp(2.1rem,4.8vw,3.3rem);letter-spacing:-.02em;margin:4px 0 20px}.home-page .home-gradient-text{background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.home-page .home-hero-lead{color:var(--text-muted);max-width:640px;font-size:1.02rem}.home-page .home-hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.home-page .home-hero-social{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:28px;font-size:.82rem}.home-page .home-hero-social a{color:var(--text-muted);letter-spacing:.03em;transition:color .15s ease;display:inline-flex;align-items:center;padding:10px 2px;margin:-8px 0}.home-page .home-hero-social a:hover{color:var(--accent)}.home-page .home-hero-social-mark{color:var(--text-faint);font-size:.72rem}.home-page .home-hero-social a:hover .home-hero-social-mark{color:var(--accent)}.home-page .home-hero-side{min-width:0}.home-page .home-terminal{overflow:hidden;font-family:var(--font-mono);font-size:.82rem}.home-page .home-terminal-header{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#94a3b80f;border-bottom:1px solid var(--border)}.home-page .home-terminal-dots{display:flex;gap:7px}.home-page .home-terminal-dots span{width:11px;height:11px;border-radius:50%}.home-page .home-terminal-dots span:nth-child(1){background:#f87171b3}.home-page .home-terminal-dots span:nth-child(2){background:#f59e0bb3}.home-page .home-terminal-dots span:nth-child(3){background:#34d399b3}.home-page .home-terminal-title{color:var(--text-faint);font-size:.76rem;letter-spacing:.04em}.home-page .home-terminal-body{padding:22px 22px 26px;line-height:1.75}.home-page .home-term-line{display:flex;align-items:baseline;gap:10px}.home-page .home-term-line.is-cmd{margin-top:12px}.home-page .home-term-line.is-cmd:first-child{margin-top:0}.home-page .home-term-prompt{color:var(--accent);flex-shrink:0}.home-page .home-term-text{white-space:pre-wrap;color:var(--text-muted);min-width:0}.home-page .home-term-line.is-cmd .home-term-text{color:var(--text)}.home-page .home-term-cursor{display:inline-block;width:9px;height:15px;background:var(--accent);opacity:.65;transform:translateY(2px)}.home-page .home-stats-section{padding:8px 0 0}.home-page .home-stats{display:grid;grid-template-columns:repeat(4,1fr)}.home-page .home-stats .metric{padding:26px 28px;border-left:1px solid var(--border)}.home-page .home-stats .metric:first-child{border-left:none}.home-page .home-featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.home-page .home-featured-grid>.reveal{display:flex;min-width:0}.home-page .home-featured-grid .project-card{width:100%}.home-page .home-featured-more{margin-top:30px;display:flex;justify-content:flex-end}.home-page .home-view-all{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--accent);display:inline-flex;align-items:center;gap:8px}.home-page .home-view-all .arrow{transition:transform .2s ease}.home-page .home-view-all:hover .arrow{transform:translate(4px)}.home-page .home-timeline{list-style:none;position:relative;max-width:840px}.home-page .home-timeline:before{content:"";position:absolute;left:5px;top:10px;bottom:10px;width:1px;background:linear-gradient(180deg,var(--accent) 0,var(--border-strong) 90px,var(--border) 100%)}.home-page .home-timeline-item{position:relative;padding:0 0 44px 36px}.home-page .home-timeline-item:last-child{padding-bottom:0}.home-page .home-timeline-item:before{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.home-page .home-xp-period{font-size:.76rem;color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase}.home-page .home-xp-heading{font-size:1.14rem;margin:8px 0 12px}.home-page .home-xp-role{color:var(--text-muted);font-weight:500}.home-page .home-xp-highlights{list-style:none}.home-page .home-xp-highlights li{position:relative;padding-left:20px;margin:7px 0;color:var(--text-muted);font-size:.92rem}.home-page .home-xp-highlights li:before{content:"▸";position:absolute;left:0;top:0;color:var(--accent);font-size:.8rem}.home-page .home-skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px 44px}.home-page .home-skill-group h3{display:flex;align-items:baseline;gap:12px;font-size:1rem;margin-bottom:14px}.home-page .home-skill-index{color:var(--accent);font-size:.74rem;font-weight:500}.home-page .home-skill-tags{display:flex;flex-wrap:wrap;gap:8px}.home-page .home-edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.home-page .home-col-label{font-size:.76rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px}.home-page .home-edu-card{padding:22px 24px}.home-page .home-edu-card+.home-edu-card{margin-top:16px}.home-page .home-edu-degree{font-size:1.02rem;margin-bottom:6px}.home-page .home-edu-school{color:var(--text-muted);font-size:.92rem}.home-page .home-edu-period{margin-top:10px;font-size:.76rem;color:var(--text-faint);letter-spacing:.04em}.home-page .home-pub-card{display:block;padding:22px 24px;color:var(--text);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.home-page .home-pub-card:hover{border-color:var(--accent-border-hover);box-shadow:var(--shadow-card),var(--shadow-glow);transform:translateY(-2px)}.home-page .home-pub-venue{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.home-page .home-pub-title{font-size:1.02rem;margin-bottom:12px}.home-page .home-pub-cta{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--accent)}.home-page .home-pub-cta .arrow{transition:transform .2s ease}.home-page .home-pub-card:hover .home-pub-cta .arrow{transform:translate(4px)}.home-page .home-awards-card{margin-top:16px;padding:22px 24px}.home-page .home-awards-label{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}.home-page .home-awards-list{list-style:none}.home-page .home-awards-list li{position:relative;padding-left:20px;margin:8px 0;color:var(--text-muted);font-size:.92rem}.home-page .home-awards-list li:before{content:"▸";position:absolute;left:0;top:0;color:var(--accent);font-size:.8rem}.home-page .home-cta-section{padding:0 0 40px}.home-page .home-cta-band{position:relative;overflow:hidden;padding:72px 32px;text-align:center}.home-page .home-cta-band:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(520px 260px at 50% 0%,var(--accent-glow),transparent 70%)}.home-page .home-cta-band h2{position:relative;font-size:clamp(1.6rem,3.2vw,2.2rem);margin-bottom:12px}.home-page .home-cta-band p{position:relative;color:var(--text-muted);max-width:560px;margin:0 auto 30px}.home-page .home-cta-band .btn{position:relative}@media (max-width: 1120px){.home-page .home-hero-grid{gap:40px}}@media (max-width: 980px){.home-page .home-hero{min-height:0;padding:64px 0 40px}.home-page .home-hero-grid{grid-template-columns:1fr;gap:44px}.home-page .home-hero-side{max-width:560px}.home-page .home-featured-grid{grid-template-columns:1fr}}@media (max-width: 760px){.home-page .section{padding:64px 0}.home-page .home-stats{grid-template-columns:repeat(2,1fr)}.home-page .home-stats .metric{padding:22px;border-left:none}.home-page .home-stats .metric:nth-child(2n){border-left:1px solid var(--border)}.home-page .home-stats .metric:nth-child(n+3){border-top:1px solid var(--border)}.home-page .home-skills-grid{grid-template-columns:1fr;gap:32px}.home-page .home-edu-grid{grid-template-columns:1fr;gap:36px}.home-page .home-timeline-item{padding-bottom:36px}}@media (max-width: 480px){.home-page .home-hero{padding:48px 0 32px}.home-page .home-hero-ctas{flex-direction:column;align-items:stretch}.home-page .home-hero-ctas .btn{justify-content:center}.home-page .home-hero-social{gap:8px 20px}.home-page .home-terminal{font-size:.78rem}.home-page .home-terminal-body{padding:18px 16px 22px}.home-page .home-cta-band{padding:52px 22px}}@media (max-width: 360px){.home-page .home-stats .metric{padding:18px 16px}.home-page .home-stats .metric .metric-value{font-size:1.3rem}.home-page .home-featured-grid{gap:18px}.home-page .home-timeline-item{padding-left:30px}}.projects-page .projects-header{padding-top:56px}.projects-page .section-lead{margin-bottom:34px}.projects-page .projects-filter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:34px}.projects-page .projects-filter{display:flex;flex-wrap:wrap;gap:9px}.projects-page .filter-chip{display:inline-flex;align-items:center;padding:7px 15px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.02em;white-space:nowrap;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease}.projects-page .filter-chip:hover{color:var(--text);border-color:var(--border-strong)}.projects-page .filter-chip.is-active{border-color:var(--accent-border-hover);background:var(--accent-soft);color:var(--accent)}.projects-page .filter-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.projects-page .projects-count{font-size:.8rem;color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.projects-page .projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:stretch}.projects-page .projects-grid>.reveal{display:flex;flex-direction:column}.projects-page .projects-grid .project-card{flex:1}.projects-page .projects-github-wrap{margin-top:56px}.projects-page .projects-github{display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap;padding:28px 32px}.projects-page .projects-github-kicker{margin-bottom:6px}.projects-page .projects-github-text{color:var(--text-muted);font-size:.98rem}@media (max-width: 900px){.projects-page .projects-grid{grid-template-columns:1fr;gap:24px}}@media (max-width: 760px){.projects-page .projects-header{padding-top:44px;padding-bottom:72px}.projects-page .projects-github-wrap{margin-top:44px}.projects-page .projects-github{padding:24px}}@media (max-width: 480px){.projects-page .projects-filter-row{align-items:flex-start;flex-direction:column;gap:12px}.projects-page .filter-chip{padding:7px 14px;font-size:.76rem}.projects-page .projects-github{flex-direction:column;align-items:flex-start}.projects-page .projects-github .btn{width:100%;justify-content:center}}@media (max-width: 360px){.projects-page .projects-filter{gap:7px}.projects-page .projects-grid{gap:20px}}.project-detail-page{--pd-accent: var(--accent)}.project-detail-page .pd-section{padding:72px 0}.project-detail-page .pd-hero{position:relative;padding:56px 0 64px;border-bottom:1px solid var(--border);background:radial-gradient(ellipse 75% 90% at 50% -25%,color-mix(in srgb,var(--pd-accent) 12%,transparent),transparent 65%),var(--bg-elev);overflow:hidden}.project-detail-page .pd-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 4%,var(--pd-accent) 50%,transparent 96%);opacity:.6}.project-detail-page .pd-back{display:inline-flex;align-items:center;gap:8px;margin-bottom:30px;font-size:.8rem;letter-spacing:.06em;color:var(--text-muted);transition:color .15s ease}.project-detail-page .pd-back:hover{color:var(--accent)}.project-detail-page .pd-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:16px;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.project-detail-page .pd-meta-sep{color:var(--accent)}.project-detail-page .pd-title{max-width:840px;margin-bottom:16px;font-size:clamp(1.9rem,4.6vw,3rem);letter-spacing:-.02em}.project-detail-page .pd-subtitle{max-width:720px;margin-bottom:18px;font-size:clamp(1.02rem,2vw,1.18rem);color:var(--text-muted)}.project-detail-page .pd-role{margin-bottom:22px;font-size:.8rem;color:var(--text-faint)}.project-detail-page .pd-tags{display:flex;flex-wrap:wrap;gap:8px}.project-detail-page .pd-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:44px}.project-detail-page .pd-metric-card{padding:20px 22px;transition:transform .25s ease,border-color .25s ease}.project-detail-page .pd-metric-card:hover{transform:translateY(-3px);border-color:var(--border-strong)}.project-detail-page .pd-video-frame{max-width:920px;padding:0;overflow:hidden;border-radius:var(--radius-lg)}.project-detail-page .pd-video-frame video,.project-detail-page .pd-video-frame img{display:block;width:100%;aspect-ratio:16 / 9;background:var(--bg-elev)}.project-detail-page .pd-video-frame img{object-fit:contain}.project-detail-page .pd-caption{margin-top:14px;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.project-detail-page .pd-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-detail-page .pd-shot{width:100%;padding:0;overflow:hidden;cursor:zoom-in;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-detail-page .pd-shot:hover,.project-detail-page .pd-shot:focus-visible{transform:translateY(-4px);border-color:color-mix(in srgb,var(--pd-accent) 45%,transparent);box-shadow:var(--shadow-card),var(--shadow-glow)}.project-detail-page .pd-shot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-detail-page .pd-shot img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover}.project-detail-page .pd-stack{display:flex;flex-wrap:wrap;gap:9px;max-width:860px}.project-detail-page .pd-stack .tag{padding:6px 14px;font-size:.8rem}.project-detail-page .writeup{max-width:760px;font-size:1.02rem;line-height:1.85;color:var(--text-muted)}.project-detail-page .writeup>h1:first-child,.project-detail-page .writeup>h1:first-child+h3{display:none}.project-detail-page .writeup h2{margin:2.4em 0 .8em;padding-bottom:.45em;border-bottom:1px solid var(--border);color:var(--text);font-size:1.5rem}.project-detail-page .writeup h3{margin:1.9em 0 .65em;color:var(--text);font-size:1.18rem}.project-detail-page .writeup h4{margin:1.6em 0 .6em;color:var(--text);font-size:1rem}.project-detail-page .writeup p{margin-bottom:1.15em}.project-detail-page .writeup strong{color:var(--text);font-weight:600}.project-detail-page .writeup a{color:var(--pd-accent);border-bottom:1px solid color-mix(in srgb,var(--pd-accent) 12%,transparent);transition:border-color .15s ease}.project-detail-page .writeup a:hover{border-bottom-color:var(--pd-accent)}.project-detail-page .writeup ul,.project-detail-page .writeup ol{margin:0 0 1.3em;padding-left:1.35em}.project-detail-page .writeup li{margin-bottom:.5em}.project-detail-page .writeup li::marker{color:var(--text-faint)}.project-detail-page .writeup blockquote{margin:1.7em 0;padding:16px 22px;border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-2)}.project-detail-page .writeup blockquote p{margin-bottom:.8em}.project-detail-page .writeup blockquote p:last-child{margin-bottom:0}.project-detail-page .writeup hr{margin:2.8em 0;border:none;border-top:1px solid var(--border)}.project-detail-page .writeup code{padding:.12em .42em;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:.85em}.project-detail-page .writeup pre{margin:0 0 1.5em;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);overflow-x:auto;line-height:1.6}.project-detail-page .writeup pre code{padding:0;border:none;background:none;color:var(--text-muted);font-size:.86rem}.project-detail-page .writeup img{margin:1.5em 0;border:1px solid var(--border);border-radius:var(--radius-sm)}.project-detail-page .writeup .table-scroll{margin:1.9em 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);overflow-x:auto;-webkit-overflow-scrolling:touch}.project-detail-page .writeup .table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.project-detail-page .writeup table{width:100%;border-collapse:collapse;font-size:.9rem;line-height:1.55}.project-detail-page .writeup th{padding:11px 16px;border-bottom:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;text-align:left;white-space:nowrap}.project-detail-page .writeup td{padding:11px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.project-detail-page .writeup td:first-child{color:var(--text)}.project-detail-page .writeup tbody tr:last-child td{border-bottom:none}.project-detail-page .writeup tbody tr:hover{background:var(--surface-2)}.project-detail-page .pd-pagination-section{padding-bottom:0}.project-detail-page .pd-pagination{display:grid;grid-template-columns:1fr 1fr;gap:18px}.project-detail-page .pd-page-link{display:flex;flex-direction:column;gap:8px;padding:22px 26px;color:var(--text);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-detail-page .pd-page-link:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--pd-accent) 45%,transparent);box-shadow:var(--shadow-card),var(--shadow-glow)}.project-detail-page .pd-page-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);transition:color .2s ease}.project-detail-page .pd-page-link:hover .pd-page-label{color:var(--accent)}.project-detail-page .pd-page-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;line-height:1.35}.project-detail-page .pd-page-link-next{align-items:flex-end;text-align:right}.project-detail-page .pd-cta{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;max-width:720px;margin:0 auto;padding:52px 32px;text-align:center;overflow:hidden}.project-detail-page .pd-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 100% at 50% 0%,var(--accent-soft),transparent 70%);pointer-events:none}.project-detail-page .pd-cta h2{position:relative;font-size:clamp(1.4rem,3vw,1.8rem)}.project-detail-page .pd-cta .btn{position:relative}@media (max-width: 980px){.project-detail-page .pd-metrics,.project-detail-page .pd-shots{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.project-detail-page .pd-section{padding:56px 0}.project-detail-page .pd-hero{padding:44px 0 52px}.project-detail-page .pd-metrics{margin-top:36px}.project-detail-page .pd-pagination{grid-template-columns:1fr}.project-detail-page .pd-page-link-next{align-items:flex-start;text-align:left}.project-detail-page .pd-video-frame{border-radius:var(--radius)}.project-detail-page .writeup h2{font-size:1.32rem}}@media (max-width: 600px){.project-detail-page .pd-shots{grid-template-columns:1fr}}@media (max-width: 480px){.project-detail-page .pd-metrics{grid-template-columns:1fr;gap:12px}.project-detail-page .pd-cta{padding:40px 22px}.project-detail-page .writeup{font-size:.97rem}.project-detail-page .writeup th,.project-detail-page .writeup td{padding:9px 12px}}@media (max-width: 360px){.project-detail-page .pd-section{padding:48px 0}.project-detail-page .pd-title{font-size:1.65rem}.project-detail-page .pd-meta{font-size:.68rem}.project-detail-page .pd-back{margin-bottom:22px}}.contact-page .contact-section{padding-top:52px}.contact-page .contact-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:28px;align-items:start}.contact-page .contact-channels{padding:28px}.contact-page .contact-card-title{font-size:1.08rem;margin-bottom:18px}.contact-page .contact-rows{list-style:none;display:flex;flex-direction:column;gap:14px}.contact-page .contact-row,.contact-page .contact-current{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:baseline}.contact-page .contact-row-label{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint)}.contact-page .contact-row-value{font-size:.94rem;color:var(--text);overflow-wrap:break-word;min-width:0}.contact-page a.contact-row-value{transition:color .15s ease}.contact-page a.contact-row-value:hover{color:var(--accent)}.contact-page .contact-divider{border:none;border-top:1px solid var(--border);margin:20px 0}.contact-page .contact-resume{width:100%;justify-content:center;margin-top:20px}.contact-page .contact-note{font-size:.84rem;margin-top:14px}.contact-page .contact-form-card{padding:28px}.contact-page .contact-form{display:flex;flex-direction:column;gap:18px}.contact-page .contact-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.contact-page .contact-field{display:flex;flex-direction:column;gap:8px}.contact-page .contact-field label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.contact-page .contact-optional{color:var(--text-faint);text-transform:lowercase;letter-spacing:.04em}.contact-page .contact-field input,.contact-page .contact-field textarea{width:100%;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;color:var(--text);font-family:var(--font-body);font-size:.95rem;line-height:1.55;transition:border-color .15s ease,box-shadow .15s ease}.contact-page .contact-field textarea{resize:vertical;min-height:120px}.contact-page .contact-field input::placeholder,.contact-page .contact-field textarea::placeholder{color:var(--text-faint)}.contact-page .contact-field input:focus,.contact-page .contact-field textarea:focus{outline:none;border-color:#22d3ee8c;box-shadow:0 0 0 3px var(--accent-soft)}.contact-page .contact-field input[aria-invalid=true],.contact-page .contact-field textarea[aria-invalid=true]{border-color:#f8717199}.contact-page .contact-field-error{color:var(--danger);font-size:.82rem;line-height:1.4}.contact-page .contact-submit{width:100%;justify-content:center}.contact-page .contact-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-page .contact-error-strip{border:1px solid rgba(248,113,113,.4);background:#f8717114;border-radius:var(--radius-sm);padding:12px 16px;font-size:.9rem;color:var(--text);margin-bottom:18px}.contact-page .contact-success{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:34px 12px}.contact-page .contact-success-glyph{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1px solid rgba(52,211,153,.45);background:#34d3991f;color:var(--success);font-size:1.4rem}.contact-page .contact-success-title{font-size:1.35rem}.contact-page .contact-success p{max-width:42ch}.contact-page .contact-success .btn{margin-top:6px}.contact-page .contact-alt{margin-top:44px;text-align:center;font-size:.85rem;color:var(--text-faint)}@media (max-width: 900px){.contact-page .contact-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 560px){.contact-page .contact-field-row{grid-template-columns:minmax(0,1fr)}}@media (max-width: 480px){.contact-page .contact-section{padding-top:40px}.contact-page .contact-channels,.contact-page .contact-form-card{padding:22px 18px}.contact-page .contact-row,.contact-page .contact-current{grid-template-columns:78px minmax(0,1fr);gap:10px}}:root{--bg: #0a0e16;--bg-elev: #0e1420;--surface: #121a29;--surface-2: #16203270;--border: rgba(148, 163, 184, .14);--border-strong: rgba(148, 163, 184, .28);--text: #e7edf5;--text-muted: #97a3b6;--text-faint: #7c8aa0;--accent: #22d3ee;--accent-strong: #06b6d4;--accent-soft: rgba(34, 211, 238, .12);--accent-border: rgba(34, 211, 238, .4);--accent-border-hover: rgba(34, 211, 238, .45);--accent-glow: rgba(34, 211, 238, .08);--accent-2: #a78bfa;--gradient-accent: linear-gradient(120deg, #22d3ee, #60a5fa 55%, #a78bfa);--success: #34d399;--danger: #f87171;--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--container: 1120px;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--nav-height: 68px;--shadow-card: 0 8px 30px rgba(2, 6, 16, .45);--shadow-glow: 0 0 40px rgba(34, 211, 238, .14)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background-image:linear-gradient(rgba(148,163,184,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.035) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 40%,transparent 100%)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.01em}a{color:var(--accent);text-decoration:none}img,video{max-width:100%;display:block}::selection{background:#22d3ee4d}.skip-link{position:absolute;top:-48px;left:16px;z-index:100;padding:10px 16px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.skip-link:focus{top:16px}main:focus{outline:none}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}.section{padding:88px 0}.section-kicker{font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.section-kicker:before{content:"// ";color:var(--text-faint)}.section-title{font-size:clamp(1.7rem,3.4vw,2.4rem);margin-bottom:14px}.section-lead{color:var(--text-muted);max-width:640px;margin-bottom:40px}.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:var(--radius-sm);font-family:var(--font-display);font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#04121a}.btn-primary:hover{background:#4be0f7;box-shadow:var(--shadow-glow)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn[disabled]{opacity:.55;cursor:not-allowed}.tag{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);font-family:var(--font-mono);font-size:.74rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}.tag-accent{border-color:var(--accent-border);background:var(--accent-soft);color:var(--accent)}.card{background:linear-gradient(180deg,var(--surface),var(--bg-elev));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.2,.7,.3,1),transform .65s cubic-bezier(.2,.7,.3,1)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.navbar{position:sticky;top:0;z-index:50;height:var(--nav-height);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#0a0e16c7;border-bottom:1px solid var(--border)}.navbar-inner{height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;gap:24px}.navbar-brand{display:flex;align-items:center;gap:12px;color:var(--text);font-family:var(--font-display);font-weight:700;font-size:1.05rem}.navbar-brand .brand-mark{display:inline-block;width:34px;height:34px;border-radius:9px;object-fit:cover;background:var(--accent-soft);border:1px solid var(--accent-border)}.navbar-links{display:flex;align-items:center;gap:6px}.navbar-links a{padding:8px 14px;border-radius:var(--radius-sm);color:var(--text-muted);font-weight:500;font-size:.95rem;transition:color .15s ease,background .15s ease}.navbar-links a:hover{color:var(--text);background:var(--surface-2)}.navbar-links a.active{color:var(--accent);background:var(--accent-soft)}.navbar-cta{margin-left:10px;padding:9px 16px!important;border:1px solid var(--accent-border);color:var(--accent)!important}.navbar-toggle{display:none;background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);width:40px;height:40px;font-size:1.1rem;cursor:pointer}@media (max-width: 760px){.navbar-toggle{display:inline-flex;align-items:center;justify-content:center}.navbar-links{position:absolute;top:var(--nav-height);left:0;right:0;flex-direction:column;align-items:stretch;padding:12px 24px 20px;gap:4px;background:#0a0e16f7;border-bottom:1px solid var(--border);display:none}.navbar-links.open{display:flex}.navbar-cta{margin-left:0;text-align:center}}.footer{border-top:1px solid var(--border);background:var(--bg-elev);padding:48px 0 32px;margin-top:40px}.footer-inner{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start}.footer h4{font-size:1rem;margin-bottom:8px}.footer p{color:var(--text-muted);font-size:.92rem;max-width:380px}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{color:var(--text-muted);font-size:.92rem;transition:color .15s ease;padding:8px 0;display:inline-flex}.footer-links a:hover{color:var(--accent)}.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--border);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--text-faint);font-size:.84rem;font-family:var(--font-mono)}.project-card{display:flex;flex-direction:column;overflow:hidden;color:var(--text);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}.project-card:hover{transform:translateY(-4px);border-color:var(--accent-border-hover);box-shadow:var(--shadow-card),var(--shadow-glow)}.project-card-media{position:relative;aspect-ratio:16 / 9;overflow:hidden;border-bottom:1px solid var(--border);background:var(--bg-elev)}.project-card-media img,.project-card-media video{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-card-media img{transform:scale(1.04)}.project-media-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-family:var(--font-mono);position:relative;overflow:hidden}.project-media-placeholder:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(148,163,184,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.06) 1px,transparent 1px);background-size:28px 28px}.project-media-placeholder .ph-glyph{font-size:2rem;font-weight:600;z-index:1}.project-media-placeholder .ph-label{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#e7edf5bf;z-index:1}.project-card-media .media-badge{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#040a12b3;border:1px solid rgba(148,163,184,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--text);font-family:var(--font-mono);font-size:.7rem}.project-card-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:12px;flex:1}.project-card-meta{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.74rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em}.project-card-title{font-size:1.22rem}.project-card-summary{color:var(--text-muted);font-size:.94rem;flex:1}.project-card-tags{display:flex;flex-wrap:wrap;gap:7px}.project-card-cta{margin-top:4px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--accent);display:inline-flex;align-items:center;gap:7px}.project-card-cta .arrow{transition:transform .2s ease}.project-card:hover .project-card-cta .arrow{transform:translate(4px)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;background:#060a12db;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:lightbox-in .22s ease}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox-image{max-width:90vw;max-height:82vh;object-fit:contain;border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:default}.lightbox button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-strong);background:#121a29d9;color:var(--text);font-family:var(--font-mono);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.lightbox button:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.lightbox-close{position:absolute;top:20px;right:20px;width:42px;height:42px;border-radius:50%;font-size:1rem}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;font-size:1.15rem}.lightbox-prev{left:22px}.lightbox-next{right:22px}.lightbox-counter{position:absolute;bottom:22px;left:50%;transform:translate(-50%);padding:4px 14px;border:1px solid var(--border);border-radius:999px;background:#121a29cc;font-size:.8rem;letter-spacing:.12em;color:var(--text-muted)}@media (max-width: 480px){.lightbox{padding:16px}.lightbox-image{max-height:72vh}.lightbox-close{top:12px;right:12px;width:38px;height:38px}.lightbox-arrow{width:40px;height:40px}.lightbox-prev{left:10px}.lightbox-next{right:10px}}.metric{display:flex;flex-direction:column;gap:2px}.metric .metric-value{font-family:var(--font-display);font-size:1.55rem;font-weight:700;background:var(--gradient-accent);-webkit-background-clip:text;background-clip:text;color:transparent}.metric .metric-label{font-size:.8rem;color:var(--text-muted)}
