:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-start:#060607;--color-bg-end:#160a0d;--color-panel:#0e0c0ee6;--color-card:#ffffff09;--color-card-hover:#fff1;--color-text:#f5f1f2;--color-muted:#bfaeb2;--color-line:#ffffff1f;--color-accent:#ff4459;--color-accent-soft:#ff445929;--color-accent-border:#ff44596b;--color-accent-strong:#ff44599e;--color-accent-wash:#ff445938;--color-accent-glow-soft:#ff445933;--color-accent-glow-med:#ff445938;--color-accent-glow-strong:#ff44593d;--color-accent-hover-text:#ff5c6f;--color-muted-hover-text:#ded3d7;--color-white-08:#ffffff14;--color-black-35:#00000059;--color-black-36:#0000005c;--color-black-38:#00000061;--traffic-close:#ff5c5f;--traffic-minimize:#fac800;--traffic-maximize:#34c759;color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.45}*,:before,:after{box-sizing:border-box}*{margin:0}body{background:radial-gradient(900px circle at 12% -14%, #ff445947, transparent 48%), radial-gradient(1000px circle at 95% 110%, #ff445929, transparent 50%), linear-gradient(155deg, var(--color-bg-start), var(--color-bg-end));min-height:100dvh}#root{min-height:100dvh}h1,h2,h3{font-weight:600}a{color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;text-decoration:none}.site-shell{place-items:center;min-height:100dvh;padding:clamp(20px,4vw,40px);display:grid}.landing-panel{border:1px solid var(--color-line);background:var(--color-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:24px;width:min(840px,100%);padding:clamp(34px,6vw,54px) clamp(20px,4.5vw,42px) clamp(20px,4.5vw,42px);position:relative;overflow:hidden;box-shadow:0 24px 70px #00000073,0 0 35px #ff44592e}.landing-panel:before{content:"";pointer-events:none;background:linear-gradient(#ffffff0f,#ffffff03);border-bottom:1px solid #ffffff14;height:30px;position:absolute;top:0;left:0;right:0}.landing-panel:after{content:"";background:radial-gradient(circle at 7px 7px, var(--traffic-close) 0 6px, transparent 6.5px), radial-gradient(circle at 31px 7px, var(--traffic-minimize) 0 6px, transparent 6.5px), radial-gradient(circle at 55px 7px, var(--traffic-maximize) 0 6px, transparent 6.5px);filter:saturate(.85);pointer-events:none;border-radius:999px;width:62px;height:14px;position:absolute;top:8px;left:14px}.eyebrow{letter-spacing:.2em;color:var(--color-accent);font-size:.75rem;font-weight:700}.hero-heading{color:var(--color-text);margin-top:.35rem;font-size:clamp(1.9rem,4vw,2.8rem);line-height:1.15}.section-block{border-top:1px solid var(--color-line);margin-top:1.9rem;padding-top:1.5rem}.section-block h2{font-size:1.15rem}.social-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-top:.95rem;display:grid}.social-link{border:1px solid var(--color-line);background:var(--color-card);border-radius:12px;flex-direction:row;align-items:center;gap:.75rem;padding:.8rem .95rem;transition:transform .2s,border-color .2s,background-color .2s,box-shadow .2s;display:flex}.social-link:hover,.social-link:active{border-color:var(--color-accent-border);background:var(--color-card-hover);box-shadow:0 14px 30px var(--color-black-38), 0 0 24px var(--color-accent-glow-strong);transform:translateY(-2px)}.link-icon{width:20px;height:20px;color:var(--color-text);flex-shrink:0}.social-text{flex-direction:column;gap:.2rem;min-width:0;display:flex;overflow:hidden}.social-label{font-weight:600}.social-handle{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.section-title-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.project-list{gap:.8rem;margin-top:.95rem;display:grid}.project-card{border:1px solid var(--color-line);background:var(--color-card);border-radius:12px;gap:.75rem;padding:1rem;transition:transform .2s,border-color .2s,background-color .2s,box-shadow .2s;display:grid}.project-card:hover,.project-card:active{border-color:var(--color-accent-border);background:var(--color-card-hover);box-shadow:0 14px 30px var(--color-black-38), 0 0 24px #ff44592e;transform:translateY(-2px)}.project-card:focus-within{border-color:var(--color-accent-border);background:var(--color-card-hover);box-shadow:0 0 0 2px #ff445924,0 14px 30px #00000052}.project-card-title{align-items:center;gap:.5rem;display:flex}.project-card h3{font-size:1rem}.project-status{border:1px solid var(--color-accent-border);background:var(--color-accent-soft);color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;flex:none;align-items:center;gap:.3rem;padding:.18rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.project-status:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px;animation:2s ease-in-out infinite status-pulse;display:inline-block}@keyframes status-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.project-card p{color:var(--color-muted);line-height:1.5}.project-card-actions{align-items:center;gap:.5rem;display:flex}.project-github{border:1px solid var(--color-line);background:var(--color-card);width:32px;height:32px;color:var(--color-muted);border-radius:8px;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background-color .2s;display:inline-flex}.project-github:hover,.project-github:active{border-color:var(--color-accent-border);color:var(--color-text);background:var(--color-card-hover)}.project-github-icon{width:16px;height:16px}.project-card-footer{border-top:1px solid var(--color-line);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.65rem;display:flex}.project-stack-icons{align-items:center;gap:.35rem;display:flex}.project-stack-chip{align-items:center;display:inline-flex;position:relative}.project-stack-chip:after{content:attr(data-name);opacity:0;white-space:nowrap;letter-spacing:.02em;color:var(--color-text);border:1px solid var(--color-accent-border);box-shadow:inset 0 1px 0 var(--color-white-08), 0 8px 20px var(--color-black-35), 0 0 16px var(--color-accent-glow-soft);pointer-events:none;z-index:10;background:linear-gradient(145deg,#2e141bf5,#401a23f0);border-radius:6px;padding:.18rem .45rem;font-size:.7rem;font-weight:600;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(4px)}.project-stack-chip:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.project-stack-icon{object-fit:contain;opacity:.45;border-radius:3px;width:18px;height:18px;transition:opacity .15s}.project-stack-chip:hover .project-stack-icon{opacity:1}.project-stack-icon--invert{filter:brightness(0)invert()}.project-action{border:1px solid var(--color-accent-border);width:fit-content;color:var(--color-accent);background:var(--color-accent-soft);border-radius:999px;padding:.35rem .8rem;font-weight:600;transition:background-color .2s,border-color .2s,box-shadow .2s}.project-action:hover{background:var(--color-accent-wash);border-color:var(--color-accent-strong);box-shadow:0 10px 24px var(--color-black-36), 0 0 20px var(--color-accent-glow-med)}.about-copy{width:100%;color:var(--color-muted);background:linear-gradient(#ffffff05,#ffffff01),#0404068c;border:1px solid #ffffff17;border-left:2px solid #ff44598c;border-radius:10px;grid-template-columns:auto 1fr;align-items:start;column-gap:.45rem;max-width:none;margin-top:.75rem;padding:.6rem .8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;line-height:1.6;display:grid;box-shadow:inset 0 1px #ffffff0a}.about-copy:before{content:attr(data-fulltext);visibility:hidden;pointer-events:none;grid-area:1/2}.about-copy-prompt{color:var(--color-accent);text-shadow:0 0 10px #ff445938;grid-area:1/1;font-weight:700;line-height:1.6}.about-copy-live{grid-area:1/2}.about-copy-live:after{content:"";vertical-align:-.08em;background:var(--color-accent);border-radius:1px;width:2px;height:.95em;margin-left:.08em;animation:1.06s step-end infinite about-caret-blink;display:inline-block}@keyframes about-caret-blink{0%,57%{opacity:1}58%,to{opacity:0}}.stack-grid{flex-wrap:wrap;gap:.45rem;margin-top:.9rem;display:flex;overflow:visible}.stack-pill{border:1px solid var(--color-line);background:var(--color-card);color:var(--color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .65rem;font-size:.8rem;font-weight:500;transition:transform .18s,border-color .2s,color .2s,box-shadow .2s;display:inline-flex;position:relative}.stack-pill:hover,.stack-pill:active{border-color:var(--color-accent-border);color:var(--color-accent);box-shadow:0 8px 20px var(--color-black-35), 0 0 16px var(--color-accent-glow-soft);transform:translateY(-2px)}.stack-pill:focus-visible{border-color:var(--color-accent-border);box-shadow:0 0 0 2px #ff44593d, 0 8px 20px var(--color-black-35), 0 0 16px #ff445929;outline:none}.stack-pill-icon-shell{opacity:0;border:1px solid var(--color-accent-border);width:28px;height:28px;box-shadow:inset 0 1px 0 var(--color-white-08), 0 8px 20px var(--color-black-35), 0 0 16px var(--color-accent-glow-soft);pointer-events:none;z-index:10;background:linear-gradient(145deg,#2e141bf5,#401a23f0);border-radius:8px;padding:4px;transition:opacity .18s,transform .18s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(6px)}.stack-pill-icon{object-fit:contain;width:100%;height:100%;display:block}.stack-pill-icon--invert{filter:brightness(0)invert()}.stack-pill:hover .stack-pill-icon-shell{opacity:1;transform:translate(-50%)translateY(0)}.stack-pill-icon-shell:after{content:"";border:5px solid #0000;border-top-color:var(--color-accent-border);pointer-events:none;position:absolute;top:calc(100% - 1px);left:50%;transform:translate(-50%)}.focus-list{border-left:2px solid var(--color-accent-border);flex-direction:column;gap:.55rem;margin-top:.95rem;padding-left:.85rem;display:flex}.focus-row{border-radius:12px;align-items:baseline;gap:.75rem;margin-left:-.65rem;padding:.45rem .65rem;transition:transform .18s,background-color .18s,box-shadow .18s;display:flex;position:relative}.focus-row:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #0000;transition:border-color .18s,box-shadow .18s;position:absolute;inset:0}.focus-row:hover{background:#ff44590f;transform:translate(4px);box-shadow:0 8px 24px #0000002e}.focus-row:hover:before{border-color:#ff445933;box-shadow:inset 0 0 0 1px #ff44590d}.focus-label{min-width:5.5rem;color:var(--color-accent);letter-spacing:.02em;flex-shrink:0;font-size:.82rem;font-weight:600;transition:transform .18s,color .18s}.focus-detail{color:var(--color-muted);font-size:.9rem;line-height:1.4;transition:color .18s}.focus-row:hover .focus-label{color:var(--color-accent-hover-text);transform:translate(1px)}.focus-row:hover .focus-detail{color:var(--color-muted-hover-text)}.site-footer{border-top:1px solid var(--color-line);color:var(--color-muted);letter-spacing:.02em;justify-content:center;margin-top:2rem;padding-top:1.25rem;font-size:.8rem;display:flex}@media (width<=700px){.section-title-row{flex-direction:column;align-items:flex-start;gap:.4rem}}@media (prefers-reduced-motion:no-preference){@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.landing-panel{animation:.4s ease-out both fadeUp}.section-block:first-child{animation:.4s ease-out 70ms both fadeUp}.section-block:nth-child(2){animation:.4s ease-out .14s both fadeUp}.section-block:nth-child(3){animation:.4s ease-out .21s both fadeUp}.section-block:nth-child(4){animation:.4s ease-out .28s both fadeUp}.section-block:nth-child(5){animation:.4s ease-out .35s both fadeUp}.section-block:nth-child(6){animation:.4s ease-out .42s both fadeUp}}@media (prefers-reduced-motion:reduce){.about-copy-live:after,.project-status:before{animation:none}.stack-pill,.stack-pill-icon-shell,.focus-row,.focus-row:before,.focus-label,.focus-detail,.project-stack-chip:after,.project-stack-icon{transition:none;animation:none}.hero-heading:hover,.hero-heading:focus-visible,.stack-pill:hover,.focus-row:hover,.focus-row:hover .focus-label{transform:none}}
