:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#060913;--bg-soft:#0b1020;--surface:#111827;--surface-strong:#162033;--border:#94a3b833;--border-soft:#94a3b81f;--text:#f7fafc;--muted:#a6b3c2;--muted-strong:#d4dde8;--green:#2dd4bf;--green-dark:#0f766e;--cyan:#38bdf8;--violet:#8b5cf6;--orange:#f59e0b;--danger:#f87171;--gradient-primary:linear-gradient(135deg, #38bdf8 0%, #2dd4bf 55%, #8b5cf6 100%);--shadow:0 24px 80px #0000005c;--shadow-glow:0 0 54px #2dd4bf33;--container:1120px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);min-width:320px;color:var(--text);letter-spacing:0;margin:0;font-size:16px;line-height:1.6}body:before{content:"";z-index:-1;background-color:#0000;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000000d9,#0000 72%);mask-image:linear-gradient(#000000d9,#0000 72%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{border:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:0;line-height:1.08}h1{font-size:58px}h2{font-size:34px}h3{font-size:21px}p{color:var(--muted)}::selection{color:var(--text);background:#22c55e47}@media (width<=760px){body{font-size:15px}h1{font-size:40px}h2{font-size:28px}h3{font-size:19px}}.site-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:20;width:min(var(--container), calc(100% - 32px));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#060913b8;border:1px solid #ffffff14;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;min-height:72px;margin:0 auto;padding:10px 12px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 18px 60px #00000047}.brand{align-items:center;gap:12px;min-width:220px;display:inline-flex}.brand-mark{background:var(--gradient-primary);color:#06101a;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:inline-grid}.brand-photo{background:var(--surface);border:1px solid #2dd4bf73;border-radius:8px;place-items:center;width:42px;height:42px;display:inline-grid;overflow:hidden;box-shadow:0 0 28px #38bdf829}.brand-photo img{object-fit:cover;width:100%;height:100%}.brand strong,.brand small{display:block}.brand strong{color:var(--text);font-size:15px}.brand small{color:var(--muted);font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px}.site-nav{align-items:center;gap:6px;display:flex}.site-nav a{min-height:42px;color:var(--muted-strong);border-radius:8px;justify-content:center;align-items:center;padding:0 14px;transition:background .16s,color .16s,transform .16s;display:inline-flex}.site-nav a:hover,.site-nav a.active{color:#67e8f9;background:#38bdf817}.menu-button{background:var(--surface);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:8px;place-items:center;display:none}main{flex:1}.container{width:min(var(--container), calc(100% - 32px));margin:0 auto}.page-section{padding:84px 0}.alt-section{border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:#ffffff06}.site-footer{width:min(var(--container), calc(100% - 32px));border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:30px 0 42px;display:flex}.site-footer strong,.site-footer span{display:block}.site-footer span{color:var(--muted);font-size:14px}.footer-links{align-items:center;gap:10px;display:flex}.footer-links a{border:1px solid var(--border);width:40px;height:40px;color:var(--muted-strong);border-radius:8px;place-items:center;transition:border-color .16s,color .16s,transform .16s;display:inline-grid}.footer-links a:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px)}@media (width<=760px){.site-header{flex-wrap:wrap;align-items:flex-start;top:8px}.brand{min-width:0}.menu-button{display:grid}.site-nav{flex-direction:column;align-items:stretch;width:100%;padding-top:8px;display:none}.site-nav.is-open{display:flex}.site-nav a{justify-content:flex-start}.page-section{padding:58px 0}.site-footer{flex-direction:column;align-items:flex-start}}.button{border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 18px;font-weight:700;line-height:1;transition:transform .16s,border-color .16s,background .16s,color .16s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--gradient-primary);color:#06101a;box-shadow:var(--shadow-glow)}.button.primary:hover{filter:brightness(1.08)}.button.secondary{color:#e0f2fe;background:#38bdf81a;border:1px solid #38bdf899}.button.ghost{border:1px solid var(--border);color:var(--text);background:#ffffff08}.text-link{color:var(--green);align-items:center;gap:7px;font-weight:700;display:inline-flex}.text-link:hover{color:#86efac}.eyebrow{color:#99f6e4;text-transform:uppercase;background:#2dd4bf14;border:1px solid #2dd4bf57;border-radius:8px;align-items:center;gap:8px;min-height:28px;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.section-header{max-width:760px;margin-bottom:34px}.section-header h2{margin:16px 0 12px}.section-header p{margin-bottom:0;font-size:18px}.loading-state{text-align:center;align-content:center;place-items:center;gap:16px;min-height:58vh;display:grid}.loading-state span{border:3px solid var(--border);border-top-color:var(--green);border-radius:999px;width:42px;height:42px;animation:.9s linear infinite spin}.loading-state p{color:var(--muted-strong);margin:0}@keyframes spin{to{transform:rotate(360deg)}}.message-state{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:min(680px,100% - 32px);margin:80px auto;padding:28px}.message-state strong{margin-bottom:8px;font-size:20px;display:block}.message-state p{margin-bottom:0}.error-state{border-color:#f8717166}.tech-list{flex-wrap:wrap;gap:9px;display:flex}.tech-list.compact{gap:7px}.tech-badge{min-height:30px;color:var(--muted-strong);background:#ffffff0b;border:1px solid #ffffff17;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.tech-badge svg{color:var(--cyan);flex:none}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.project-card{border:1px solid var(--border);min-height:100%;box-shadow:var(--shadow);background:#111820e0;border-radius:8px;flex-direction:column;transition:transform .17s,border-color .17s,background .17s;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-glow), var(--shadow);background:#16212cf0;border-color:#2dd4bf7a;transform:translateY(-4px)}.project-image-link{aspect-ratio:16/9;background:#0b1118;display:block;overflow:hidden}.project-image-link img{object-fit:cover;width:100%;height:100%;transition:transform .22s}.project-card:hover .project-image-link img{transform:scale(1.035)}.project-card-content{flex-direction:column;flex:1;padding:20px;display:flex}.project-card-content h3{margin:14px 0 10px}.project-card-content p{flex:1;margin-bottom:18px}.project-card-content .text-link{margin-top:20px}.project-meta{color:var(--cyan);justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:800;display:flex}.featured-pill{color:#fed7aa;background:#f9731629;border-radius:8px;min-height:26px;padding:3px 8px}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.skill-group{border:1px solid var(--border);box-shadow:var(--shadow);background:#111827d1;border-radius:8px;padding:20px;transition:border-color .16s,box-shadow .16s,transform .16s}.skill-group:hover{box-shadow:var(--shadow-glow), var(--shadow);border-color:#2dd4bf73;transform:translateY(-3px)}.skill-group-title{color:var(--green);align-items:center;gap:10px;margin-bottom:16px;display:flex}.skill-group-title h3{color:var(--text);margin:0}.skill-list{flex-wrap:wrap;gap:9px;display:flex}.skill-list .tech-badge{min-height:32px;padding:0 10px;font-size:14px}.timeline{gap:18px;display:grid;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, var(--cyan), var(--violet), transparent);width:2px;position:absolute;top:18px;bottom:18px;left:12px}.timeline-item{grid-template-columns:42px 1fr;display:grid;position:relative}.timeline-dot{z-index:1;border:6px solid var(--bg);background:var(--gradient-primary);width:26px;height:26px;box-shadow:var(--shadow-glow);border-radius:999px;margin-top:22px;position:relative}.timeline-content{border:1px solid var(--border);background:#111827d1;border-radius:8px;padding:22px;transition:border-color .16s,transform .16s,box-shadow .16s}.timeline-content:hover{box-shadow:var(--shadow-glow);border-color:#2dd4bf73;transform:translateY(-2px)}.timeline-heading{justify-content:space-between;gap:18px;margin-bottom:14px;display:flex}.timeline-heading h3{margin-bottom:5px}.timeline-heading strong{color:var(--cyan)}.timeline-heading span{color:#fed7aa;white-space:nowrap;font-weight:800}@media (width<=960px){.project-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.button{width:100%}.section-header p{font-size:16px}.project-grid,.skills-grid{grid-template-columns:1fr}.timeline-heading{flex-direction:column}.timeline-heading span{white-space:normal}}.hero{isolation:isolate;align-items:center;min-height:100vh;margin-top:0;padding:132px 0 82px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background-image:linear-gradient(90deg, #060913f5 0%, #060913e0 44%, #06091394 100%), linear-gradient(180deg, #0609131a 0%, #060913eb 100%), var(--hero-image);filter:contrast(1.2)saturate(1.08);background-position:50%;background-size:cover;position:absolute;inset:0}.hero:after{content:"";background:linear-gradient(to bottom, transparent, var(--bg));height:130px;position:absolute;inset:auto 0 0}.hero-content{z-index:2;width:min(var(--container), calc(100% - 32px));max-width:720px;margin:0 auto;position:relative}.hero h1{letter-spacing:0;margin:20px 0 8px;font-size:68px}.hero-title{color:#a5f3fc;margin-bottom:20px;font-size:24px;font-weight:800}.hero-summary{max-width:700px;color:var(--muted-strong);margin-bottom:30px;font-size:19px}.hero-actions{flex-wrap:wrap;gap:12px;margin-bottom:34px;display:flex}.hero-metrics{flex-wrap:wrap;gap:9px;max-width:680px;display:flex}.hero-metrics .tech-badge{background:#070a0f85;border:1px solid #ffffff1a;min-height:34px;padding:0 12px}.hero-snapshot{background:#ffffff14;border:1px solid #ffffff14;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;max-width:820px;margin:32px 0 0;padding:1px;display:grid}.hero-snapshot div{background:#070a0fb8;min-height:108px;padding:18px}.hero-snapshot dt{color:#67e8f9;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.hero-snapshot dd{color:var(--muted-strong);margin:0;font-weight:700;line-height:1.35}.page-hero{border-bottom:1px solid var(--border-soft);background:linear-gradient(135deg,#0c1118f5,#05070bfa),linear-gradient(90deg,#38bdf81a,#0000 42%);padding:118px 0 76px}.compact-hero{margin-top:0;padding-top:132px}.page-hero h1{max-width:860px;margin:18px 0}.page-hero p{max-width:820px;color:var(--muted-strong);margin-bottom:28px;font-size:18px}.about-intro{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:48px;display:grid}.about-copy{max-width:780px;margin-bottom:28px}.about-copy p{margin-bottom:18px}.about-facts{border:1px solid var(--border);background:#111820b8;border-radius:8px;padding:18px}.about-facts img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%;margin-bottom:18px}.about-facts dl{gap:14px;margin:0;display:grid}.about-facts div{border-top:1px solid var(--border-soft);padding-top:14px}.about-facts dt{color:#86efac;text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:800}.about-facts dd{color:var(--muted-strong);margin:0;font-weight:700;line-height:1.4}.filter-row{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.filter-button{border:1px solid var(--border);min-height:38px;color:var(--muted-strong);cursor:pointer;background:#ffffff0a;border-radius:8px;padding:0 13px;font-weight:800;transition:border-color .16s,color .16s,background .16s}.filter-button:hover,.filter-button.active{color:#bbf7d0;background:#22c55e1a;border-color:#22c55e94}.project-detail-hero{margin-top:0;padding:124px 0 86px}.back-link{margin-bottom:22px}.project-detail-image{aspect-ratio:16/7;object-fit:cover;border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow);border-radius:8px}.project-detail-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;margin-top:34px;display:grid}.project-detail-main{min-width:0}.project-detail-main h1{margin:18px 0 12px}.lead{color:var(--muted-strong);font-size:20px;font-weight:700}.text-content p{color:var(--muted-strong);font-size:18px}.project-detail-aside{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:22px}.project-detail-aside h2{margin-bottom:18px;font-size:24px}.external-notice{background:#f9731617;border:1px solid #f9731657;border-radius:8px;margin:24px 0;padding:16px}.external-notice strong{color:#fed7aa}.external-notice p{color:var(--muted-strong);margin:6px 0 0;font-size:14px}.detail-actions{gap:10px;display:grid}.contact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.contact-card{border:1px solid var(--border);background:var(--surface);min-height:150px;color:var(--text);border-radius:8px;flex-direction:column;justify-content:space-between;gap:14px;padding:22px;transition:transform .16s,border-color .16s,background .16s;display:flex}.contact-card:hover{background:var(--surface-strong);border-color:#2dd4bf7a;transform:translateY(-3px)}.contact-card svg{color:var(--green)}.contact-card span{color:var(--muted);text-transform:uppercase;font-size:14px;font-weight:800}.contact-card strong{overflow-wrap:anywhere}.not-found{min-height:70vh}@media (width<=900px){.hero h1{font-size:54px}.hero-snapshot,.about-intro,.project-detail-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.hero{min-height:calc(100vh - 112px);padding-bottom:54px}.hero h1{font-size:42px}.hero-title{font-size:20px}.hero-summary,.page-hero p,.text-content p{font-size:16px}.hero-actions{flex-direction:column}.hero-snapshot div{min-height:0}.project-detail-image{aspect-ratio:16/10}.contact-grid{grid-template-columns:1fr}}
