:root{--nav-h: 72px;--hero-gap: 18px;--bg: #191724;--bg-2: #1f1d2e;--card: #26233a;--card-soft: #2a2741;--line: #3a3655;--text: #e0def4;--muted: #908caa;--accent: #c4a7e7;--peach: #ebbcba;--foam: #9ccfd8;--shadow: 0 16px 45px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--text);background:radial-gradient(circle at 5% 0%,rgba(196,167,231,.16),transparent 42%),radial-gradient(circle at 95% 8%,rgba(156,207,216,.08),transparent 35%),linear-gradient(180deg,var(--bg),#14121f)}.page{position:relative;overflow-x:clip;isolation:isolate}.pixel-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.pixel-moon{position:absolute;top:6vh;right:18vw;width:86px;height:86px;border-radius:0;background:#efe5cb;box-shadow:0 0 0 10px #9f7498,0 0 0 20px #8f6a9473;image-rendering:pixelated;opacity:.45}.pixel-cloud{position:absolute;height:22px;background:linear-gradient(90deg,#805f89 0 22%,transparent 22% 30%,#805f89 30% 64%,transparent 64% 72%,#805f89 72% 100%);opacity:.38;image-rendering:pixelated;animation:cloudDrift 28s steps(18) infinite}.pixel-cloud-a{top:16vh;left:-20vw;width:230px}.pixel-cloud-b{top:23vh;right:-18vw;width:170px;animation-duration:34s;animation-direction:reverse}.pixel-dune{position:absolute;left:-4%;width:108%;image-rendering:pixelated}.pixel-dune-far{bottom:24%;height:20vh;background:repeating-linear-gradient(-13deg,#a6749742 0,#a6749742 12px,#91678e42 12px,#91678e42 24px);clip-path:polygon(0 64%,12% 52%,30% 58%,48% 49%,66% 57%,83% 43%,100% 54%,100% 100%,0 100%);animation:duneShift 18s steps(12) infinite}.pixel-dune-mid{bottom:12%;height:23vh;background:repeating-linear-gradient(-20deg,#7c507659 0,#7c507659 13px,#6c476a59 13px,#6c476a59 26px);clip-path:polygon(0 68%,20% 48%,37% 61%,54% 44%,70% 58%,86% 47%,100% 62%,100% 100%,0 100%);animation:duneShift 24s steps(16) infinite reverse}.pixel-dune-near{bottom:-1%;height:16vh;background:repeating-linear-gradient(-22deg,#432b4985 0,#432b4985 10px,#3a254185 10px,#3a254185 20px);clip-path:polygon(0 66%,14% 42%,35% 59%,58% 39%,76% 56%,100% 43%,100% 100%,0 100%);animation:duneShift 30s steps(18) infinite}.noise{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:.06;background-image:radial-gradient(rgba(255,255,255,.75) .6px,transparent .6px);background-size:4px 4px}.topbar{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:80;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1rem,4vw,3.2rem);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#191724d6;border-bottom:1px solid rgba(196,167,231,.24)}.brand{display:inline-flex;align-items:center;gap:.62rem;text-decoration:none}.brand-mark{width:2.1rem;height:2.1rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.62rem;color:#1d172c;background:linear-gradient(145deg,#d8beef,#c4a7e7);border:1px solid #e4cfd8;font-weight:800;letter-spacing:-.05em}.brand-copy{display:inline-grid;line-height:1.08}.brand-copy strong{color:var(--peach);font-size:.87rem;letter-spacing:-.02em}.brand-copy small{color:var(--muted);font-size:.68rem}nav{display:flex;gap:.42rem;padding:.32rem;border-radius:999px;border:1px solid rgba(196,167,231,.2);background:#26233a8c}nav a{text-decoration:none;color:#c6c1df;font-size:.83rem;padding:.42rem .68rem;border-radius:999px;transition:color .16s ease,background-color .16s ease}nav a:hover{color:#f1edf9;background:#c4a7e738}main{position:relative;z-index:3;width:min(1120px,calc(100% - 2rem));margin:0 auto;padding-top:calc(var(--nav-h) + var(--hero-gap))}.hero{min-height:calc(100dvh - var(--nav-h) - var(--hero-gap));display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.2rem,3.5vw,2.7rem);align-items:center;align-content:center;padding:0}.hero-copy,.hero-art{align-self:center}.kicker{margin:0;color:var(--accent);text-transform:uppercase;letter-spacing:.09em;font-size:.73rem;font-family:inherit}.hero h1{margin:.5rem 0 0;font-size:clamp(2.1rem,5.6vw,4.7rem);line-height:.92;font-weight:800;letter-spacing:-.04em;color:#f5d9c4}.hero h1 span{margin-top:1rem;display:block;font-size:clamp(1.02rem,2vw,1.42rem);line-height:1.4;color:var(--text);max-width:20ch;font-weight:600}.lede{margin:1.25rem 0 1.6rem;color:var(--muted);line-height:1.72;max-width:56ch}.cta-row{display:flex;flex-wrap:wrap;gap:.72rem}.btn{text-decoration:none;border-radius:.62rem;padding:.76rem 1.06rem;font-weight:700;font-size:.92rem;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{color:#1a1628;background:#c4a7e7;border:2px solid #7b6691}.btn-primary:hover{background:#d4b8ef;border-color:#8d77a6}.btn-ghost{color:var(--text);border:1px solid var(--line);background:#908caa1a}.btn-ghost:hover{border-color:var(--accent)}.chip-row{margin-top:1rem;display:flex;gap:.52rem;flex-wrap:wrap}.chip{text-decoration:none;color:#cbc8e2;border-radius:999px;font-size:.8rem;padding:.36rem .64rem;border:1px solid var(--line);background:#26233acc;transition:border-color .16s ease,color .16s ease}.chip:hover{border-color:var(--accent);color:var(--text)}.cp-row{margin-top:.9rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.cp-link{display:flex;align-items:center;gap:.62rem;text-decoration:none;color:#efeafc;border-radius:.8rem;padding:.62rem .7rem;border:1px solid var(--line);background:#26233ae0;font-size:.78rem;font-weight:700;transition:transform .16s ease,border-color .16s ease,background-color .16s ease}.cp-link:hover{transform:translateY(-2px);border-color:#c4a7e7e6;background:#342f4eeb}.cp-link img{width:1rem;height:1rem;flex:0 0 auto}.cp-content{display:grid;gap:.14rem}.cp-content strong{font-size:.78rem;line-height:1.15;color:#f3efff}.cp-content small{font-size:.66rem;line-height:1.2;color:#b9b2d6}.hero-art{display:grid;gap:.9rem}.art-frame{border-radius:1rem;padding:.9rem;border:1px solid var(--line);background:linear-gradient(140deg,#26233aeb,#1f1d2ef2);box-shadow:var(--shadow)}.art-frame img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:.7rem;border:1px solid rgba(255,255,255,.08)}.floating{animation:bob 5.5s ease-in-out infinite}.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stat-card{border-radius:.72rem;border:1px solid var(--line);background:#26233ac2;padding:.7rem}.stat-card span{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.3rem}.stat-card strong{font-size:.95rem;color:var(--peach)}.section{padding:clamp(2.9rem,8vw,5rem) 0;scroll-margin-top:calc(var(--nav-h) + 12px)}.section-heading p{margin:0;font-family:inherit;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--accent)}.section-heading h2{margin:.55rem 0 0;font-size:clamp(1.35rem,3.4vw,2.35rem);line-height:1.2;max-width:24ch}.about-grid,.skill-panels,.project-grid,.timeline{margin-top:1.25rem}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.code-card,.bullet-card,.skill-panel,.project-card,.timeline-card,.contact-card,.contact-form-card{border:1px solid var(--line);border-radius:.95rem;background:linear-gradient(180deg,#26233af0,#1f1d2ef2);box-shadow:var(--shadow)}.code-card{padding:1.1rem}.terminal-dots{display:flex;gap:.4rem}.terminal-dots span{width:.54rem;aspect-ratio:1;border-radius:50%}.terminal-dots span:nth-child(1){background:#ec6d7d}.terminal-dots span:nth-child(2){background:#f4cb6a}.terminal-dots span:nth-child(3){background:#8cd6a0}.code-block{margin:.85rem 0 0;color:#d8d6ef;font-size:.84rem;line-height:1.7;font-family:inherit;white-space:pre-wrap}.code-block code{font-family:inherit}.code-keyword{color:var(--accent)}.code-type,.code-namespace{color:var(--foam)}.code-string{color:var(--peach)}.code-function{color:#f6c177}.code-operator,.code-punct{color:#b9b2d6}.code-field{color:#e4e0f2}.bullet-card{padding:1.1rem}.bullet-card ul{margin:0;padding-left:1rem;color:#d2cfe8;line-height:1.72}.bullet-card li+li{margin-top:.62rem}.skill-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}.skill-panel{padding:.95rem}.skill-panel h3{margin:0;color:var(--peach);font-size:1rem}.skill-panel p{margin:.5rem 0 0;color:var(--muted);line-height:1.65}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.project-card{padding:1rem;display:flex;flex-direction:column;transition:border-color .18s ease}.project-card:hover{border-color:var(--accent)}.project-top{display:flex;justify-content:space-between;align-items:center;gap:.45rem}.project-top h3{margin:0;font-size:1rem}.project-top span{color:var(--foam);font-family:inherit;font-size:.77rem}.project-card p{color:var(--muted);line-height:1.62;margin:.68rem 0;min-height:72px}.project-tags{display:flex;flex-wrap:wrap;gap:.45rem}.project-tags span{font-size:.7rem;font-family:inherit;color:#d0cde7;border-radius:999px;border:1px solid var(--line);padding:.26rem .48rem}.project-card small{margin-top:.78rem;color:var(--muted);font-size:.75rem}.project-card a{margin-top:.55rem;color:var(--peach);text-decoration:none;font-weight:700;font-size:.9rem}.project-card a:hover{color:#f1d0cf}.timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.timeline-card{padding:.95rem}.timeline-card span{color:var(--accent);font-family:inherit;font-size:.72rem}.timeline-card h3{margin:.55rem 0 .42rem;color:var(--text)}.timeline-card p{margin:0;color:var(--muted);line-height:1.6}.contact-card{text-align:left;padding:clamp(1rem,3vw,1.45rem);background:radial-gradient(circle at 50% -40%,rgba(196,167,231,.22),transparent 52%),linear-gradient(180deg,#26233af5,#1f1d2efa)}.contact-stack{display:grid;gap:1rem}.contact-form-card{padding:clamp(1rem,3vw,1.45rem)}.contact-kicker{margin:0;color:var(--accent);font-size:.73rem;text-transform:uppercase;font-family:inherit;letter-spacing:.08em}.contact-card h2{margin:.7rem 0 1.1rem;max-width:21ch;line-height:1.2}.contact-note{margin:0 0 1.2rem;color:var(--muted);line-height:1.65;max-width:46ch}.contact-links{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:.52rem}.contact-form{display:grid;gap:.78rem}.contact-field{display:grid;gap:.35rem}.contact-field span{font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.contact-field input,.contact-field textarea{border:1px solid var(--line);border-radius:.65rem;padding:.7rem .78rem;background:#1917248c;color:var(--text);font-family:inherit;font-size:.85rem;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.contact-field textarea{resize:vertical;min-height:120px}.contact-field input:focus,.contact-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c4a7e729}.contact-form button{width:fit-content}.contact-footnote{margin:0;color:var(--muted);font-size:.72rem}.contact-links a{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:#dbd8ee;border:1px solid var(--line);border-radius:999px;padding:.42rem .66rem;font-size:.8rem;transition:border-color .16s ease,color .16s ease}.contact-links a:hover{border-color:var(--accent);color:var(--text)}.site-footer{display:flex;justify-content:center;align-items:center;padding:.35rem 0 2rem}.site-footer p{margin:0;padding:.44rem .8rem;border-radius:999px;border:1px solid var(--line);background:#26233a99;color:#cfc9e6;font-size:.76rem}.contact-link-strong{border-color:#c4a7e7a6!important;background:#c4a7e71f;color:#f0ecfb!important}.contact-link-icon{width:.84rem;height:.84rem}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes cloudDrift{0%{transform:translate(0)}to{transform:translate(24vw)}}@keyframes duneShift{0%{transform:translate(0)}to{transform:translate(-24px)}}@media (max-width: 1080px){.hero,.about-grid{grid-template-columns:1fr}.hero{min-height:calc(100dvh - var(--nav-h) - var(--hero-gap));padding-top:.8rem;align-content:center}.skill-panels,.timeline{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1 span{max-width:100%}}@media (max-width: 700px){.brand-copy{display:none}nav{gap:.68rem;padding:.22rem}nav a{font-size:.75rem;padding:.32rem .52rem}main{width:min(1120px,calc(100% - 1.2rem))}.project-grid,.stats-grid,.cp-row{grid-template-columns:1fr}.pixel-moon{width:58px;height:58px;right:8vw}}
