:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050407;--bg-soft:#0d0910;--text:#fff7fc;--muted:#d8c4d4;--dim:#9f8b9d;--glow:#a17d9c;--glow-strong:#f0a6da;--accent-blue:#8fcfea;--accent-green:#a8d9a0;--line:#f0a6da57;--glass:#160d169e;--glass-strong:#241422c7;--shadow:0 0 36px #a17d9c42;--max-width:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;color:var(--text);background:radial-gradient(circle at 50% 12%, #a17d9c3d, transparent 34rem), radial-gradient(circle at 16% 38%, #f0a6da1f, transparent 24rem), radial-gradient(circle at 84% 40%, #a17d9c24, transparent 26rem), linear-gradient(180deg, #020103 0%, var(--bg) 48%, #08050a 100%);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}body:before{z-index:-1;pointer-events:none;content:"";background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:72px 72px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 82%);mask-image:linear-gradient(#000 0%,#0000 82%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{z-index:20;width:min(100% - 2rem, var(--max-width));flex-direction:column;justify-content:center;align-items:center;gap:0;margin:0 auto;padding:clamp(.08rem,.45vw,.3rem) 0 0;display:flex;position:relative}.site-logo-link{justify-content:center;width:min(100%,34rem);display:inline-flex}.site-logo{filter:drop-shadow(0 0 10px #000000e6)drop-shadow(0 0 24px #000000d9)drop-shadow(0 0 42px #000000bf);width:clamp(20rem,38vw,34rem)}nav{background:#08060cb8;border-top:1px solid #a17d9c8c;border-bottom:1px solid #a17d9c8c;flex-wrap:wrap;justify-content:center;align-items:center;gap:2rem;width:min(760px,82vw);min-height:54px;margin-top:-.72rem;display:flex;position:relative;box-shadow:0 -8px 24px #a17d9c14,0 8px 24px #a17d9c14}nav a{color:#c9a8c8;letter-spacing:.08em;text-transform:uppercase;padding:.35rem .15rem;font-size:.85rem;font-weight:800;text-decoration:none;transition:transform .18s,color .18s,box-shadow .18s,text-shadow .18s;position:relative}nav a:before{pointer-events:none;content:"";opacity:0;background:#a17d9c;width:100%;height:1px;transition:opacity .18s;position:absolute;top:-.35rem;left:0}nav a:hover,nav a:focus-visible{color:#f3c4e8;text-shadow:0 0 10px #a17d9ca6;outline:none;transform:translateY(-3px);box-shadow:0 .45rem 0 -.25rem #a17d9c}nav a:hover:before,nav a:focus-visible:before{opacity:.7}.hero{isolation:isolate;grid-template-columns:minmax(12rem,1fr) minmax(24rem,42rem) minmax(12rem,1fr);align-items:center;gap:clamp(.25rem,1.5vw,1.5rem);width:min(100% - 2rem,1280px);min-height:min(540px,90svh - 11.25rem);max-height:calc(90svh - 8rem);margin:-.6rem auto 0;padding:clamp(.05rem,.65vw,.5rem) 0 clamp(.55rem,1.25vw,1.05rem);display:grid;position:relative}.hero-ambient{z-index:-1;background:linear-gradient(90deg,#a17d9c0f,#0000 18% 82%,#a17d9c12),radial-gradient(circle at 50% 10%,#f0a6da33,#0000 18rem);border:1px solid #f0a6da14;border-radius:28px;position:absolute;inset:2% 6% 3%;box-shadow:inset 0 0 70px #a17d9c1f}.hero-silhouette{filter:drop-shadow(0 0 28px #f0a6da5c);opacity:.94;align-self:center;width:min(100%,28rem);transform:translateY(-.8rem)}.hero-silhouette-left{justify-self:start}.hero-silhouette-right{justify-self:end}.hero-center{text-align:center;align-self:center;padding:clamp(.35rem,.85vw,.8rem);transform:translateY(-2.75rem)}.eyebrow,.section-kicker{color:#ffc6e8;letter-spacing:.16em;text-transform:uppercase;margin:0 0 .5rem;font-size:.78rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{color:#ffc6e8;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 0 24px #a17d9c57;margin-bottom:.4rem;font-family:inherit;font-size:clamp(1.08rem,2.15vw,1.82rem);font-weight:800;line-height:1}.hero-title-line{display:block}.hero-title-secondary{letter-spacing:.14em;margin-top:.18rem;font-size:.78em}.hero-tagline{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin:0 auto .65rem;font-size:clamp(.78rem,1.1vw,.95rem);font-weight:700;line-height:1.35}.hero-tagline span{color:var(--glow);text-shadow:0 0 16px #a17d9c80}h2{color:#ffc6e8;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-family:inherit;font-size:clamp(1.4rem,2.8vw,2.4rem);font-weight:800;line-height:1.15}h3{color:#fff7fc;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.65rem;font-size:1rem;font-weight:800;line-height:1.25}.hero-lead{color:#fff0fa;margin-bottom:.5rem;font-size:clamp(.86rem,1vw,1rem);line-height:1.3}.accent-blue{color:var(--accent-blue);text-shadow:0 0 12px #8fcfea5c}.accent-green{color:var(--accent-green);text-shadow:0 0 12px #a8d9a057}.accent-mauve{color:#ffc6e8;text-shadow:0 0 12px #a17d9c5c}.hero-subtext{max-width:50rem;color:var(--muted);text-align:center;margin:1.15rem auto .8rem;font-size:clamp(1.4rem,1.75vw,1.55rem);font-weight:550;line-height:1.42}.interactive-word{color:#ffc6e8;font:inherit;font-weight:800;line-height:inherit;cursor:pointer;background:0 0;border:0;padding:0;transition:color .18s,letter-spacing .22s,text-shadow .18s,transform .18s;display:inline-block;position:relative}.interactive-word:focus-visible{outline-offset:3px;outline:1px solid #f3c4e88c}.interactive-word-fun:hover,.interactive-word-fun:focus-visible,.interactive-word-fun.is-active{color:#0000;-webkit-text-stroke:1px #f3c4e8;text-shadow:0 0 10px #a17d9c94,0 0 18px #f3c4e838}.interactive-word-interactive:hover,.interactive-word-interactive:focus-visible,.interactive-word-interactive.is-active{color:var(--accent-blue);text-shadow:0 0 10px #8fcfea5c,0 0 14px #a8d9a033;animation:.52s ease-in-out word-wiggle}.interactive-word-organized{letter-spacing:.06em}.interactive-word-organized:hover,.interactive-word-organized:focus-visible,.interactive-word-organized.is-active{color:var(--accent-green);letter-spacing:.01em;text-shadow:0 0 10px #a8d9a047;transform:translateY(-1px)}@keyframes word-wiggle{0%,to{color:#ffc6e8;transform:rotate(0)translateY(0)}32%{color:#a17d9c;transform:rotate(-1.8deg)translateY(-1px)}66%{color:var(--accent-green);transform:rotate(1.5deg)translateY(1px)}}.hero-actions,.card-actions,.contact-grid{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.button,.card-actions a{color:#fff7fc;background:linear-gradient(#ffffff0e,#0000 38%),#0a070b99;border:1px solid #a17d9c5c;border-radius:999px;justify-content:center;align-items:center;min-height:2.85rem;padding:.75rem 1.15rem;font-size:.9rem;font-weight:700;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px 1px #ffffff1f,inset 0 -8px 14px #00000047,0 5px 14px #0003}.button:before,.card-actions a:before,.button:after{pointer-events:none;content:"";opacity:0;position:absolute}.button:before{opacity:0}.button:before,.card-actions a:before{background:linear-gradient(105deg,#0000,#ffffff38,#f3c4e82e,#0000);width:35%;height:140%;inset:-20% auto -20% -45%;transform:translate(-140%)skew(-18deg)}.button:after{display:none}.button:hover,.button:focus-visible,.button:active,.card-actions a:hover,.card-actions a:focus-visible,.card-actions a:active{background:linear-gradient(#ffffff13,#0000 40%),#160d16bd;border-color:#f3c4e89e;outline:none;transform:translateY(-2px);box-shadow:inset 0 1px 2px #ffffff29,inset 0 -9px 16px #0000005c,0 0 14px #a17d9c2e}.button:hover:before,.button:focus-visible:before,.button:active:before,.card-actions a:hover:before,.card-actions a:focus-visible:before,.card-actions a:active:before{opacity:.22;animation:.95s ease-in-out forwards buttonReflectionSweep}.page-section{width:min(100% - 2rem, var(--max-width));margin:0 auto;padding:clamp(3.5rem,7vw,6rem) 0}.section-header{text-align:center;max-width:47rem;margin:0 auto 2rem}.section-header p:not(.section-kicker),.project-card p,.about-copy,.checklist-card,.resume-list{color:var(--muted)}.align-left{text-align:left;margin:0}.project-grid,.skills-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.skills-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.glass-card{border:1px solid var(--line);background:linear-gradient(145deg, #ffffff14, transparent 28%), var(--glass);box-shadow:var(--shadow), inset 0 1px 0 #ffffff14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px}.project-card,.skill-card{flex-direction:column;min-height:23rem;padding:1.2rem;transition:transform .18s,border-color .18s,background .18s;display:flex;position:relative;overflow:hidden}.card-content{z-index:2;flex-direction:column;flex:1;display:flex;position:relative}.code-rain{opacity:0;pointer-events:none;z-index:1;width:300%;transition:opacity 80ms;animation:10s linear infinite codeDrift;position:absolute;inset:0 0 0 -100%;-webkit-mask-image:none;mask-image:none}.code-rain span{opacity:.11;animation:none!important}.project-card .code-rain{align-content:center;gap:.58rem;padding:1.2rem;display:grid;overflow:hidden}.project-card .code-rain span{white-space:nowrap;width:max-content;max-width:none;font-family:Courier New,monospace;font-size:clamp(.95rem,1.05vw,1.05rem);font-weight:700;line-height:1.55;display:block}.code-rain .blue{color:#8fcfea}.code-rain .green{color:#a8d9a0}.code-rain .pink{color:#f3c4e8}.code-rain .mauve{color:#a17d9c}.project-card:hover .code-rain,.project-card:focus-within .code-rain,.project-card.is-active .code-rain,.skill-card:hover .code-rain,.skill-card:focus-within .code-rain,.skill-card.is-active .code-rain,.code-card:hover .code-rain,.code-card:focus-within .code-rain,.code-card.is-active .code-rain{opacity:1;filter:drop-shadow(0 0 6px #a17d9c40);opacity:1}.skill-card .code-rain{opacity:0;animation-play-state:paused}.skill-card:hover .code-rain,.skill-card:focus-within .code-rain,.skill-card.is-active .code-rain{opacity:1;animation-play-state:running}.project-card p{font-size:.95rem}.project-card-featured{background:linear-gradient(145deg, #ffffff17, transparent 28%), radial-gradient(circle at 50% 18%, #a17d9c29, transparent 36%), var(--glass)}.glass-preview{isolation:isolate;background:radial-gradient(circle at 48% 42%,#e8b7dd29,#0000 32%),linear-gradient(145deg,#8fcfea14,#050408cc);border:1px solid #f3c4e83d;border-radius:8px;place-items:center;height:clamp(20rem,28vw,25rem);margin-bottom:1rem;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #a17d9c1f,0 0 22px #a17d9c24}.glass-preview:before{z-index:1;border-radius:inherit;pointer-events:none;content:"";background:linear-gradient(145deg,#ffffff14,#0000 24%),radial-gradient(circle,#0000 42%,#08060c3d 100%);position:absolute;inset:0}.glass-preview>div,.glass-preview canvas{width:100%!important;height:100%!important}.glass-preview>div{transform-origin:50%;transform:scale(1.08)}.glass-preview-badge{z-index:3;color:#fff7fce0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;background:#08060c9e;border:1px solid #f3c4e84d;border-radius:999px;padding:.42rem .72rem;font-size:.72rem;font-weight:800;transition:opacity .22s,transform .22s;position:absolute;bottom:.85rem;right:.85rem;box-shadow:inset 0 1px 1px #ffffff1f,0 0 16px #a17d9c2e}.glass-preview.is-interacted .glass-preview-badge{opacity:0;transform:translateY(.35rem)}.project-card:hover,.project-card:focus-within,.project-card.is-active,.skill-card:hover,.skill-card:focus-within,.skill-card.is-active,.code-card:hover,.code-card:focus-within,.code-card.is-active{border-color:#f3c4e8bf;transform:translateY(-3px);box-shadow:0 0 0 1px #f3c4e840,0 0 28px #a17d9c47,inset 0 0 24px #f3c4e814}@keyframes codeDrift{0%{transform:translate(0)}to{transform:translate(33.33%)}}@keyframes buttonReflectionSweep{0%{opacity:0;transform:translate(-140%)skew(-18deg)}18%{opacity:.22}82%{opacity:.18}to{opacity:0;transform:translate(240%)skew(-18deg)}}@media (prefers-reduced-motion:reduce){.interactive-word,.interactive-word-interactive:hover,.interactive-word-interactive:focus-visible,.interactive-word-interactive.is-active,.interactive-word-organized:hover,.interactive-word-organized:focus-visible,.interactive-word-organized.is-active{animation:none;transform:none}.button:hover:before,.button:focus-visible:before,.button:active:before,.card-actions a:hover:before,.card-actions a:focus-visible:before,.card-actions a:active:before{opacity:0;animation:none}.code-card:hover,.code-card:focus-within,.code-card.is-active{transform:none}.code-card:hover .code-rain,.code-card:focus-within .code-rain,.code-card.is-active .code-rain{opacity:.14}.code-card:hover .code-rain span,.code-card:focus-within .code-rain span,.code-card.is-active .code-rain span{opacity:.12;animation:none}}@media (hover:none),(pointer:coarse){.skill-card:hover .code-rain{opacity:0;animation-play-state:paused}.skill-card:focus-within .code-rain,.skill-card.is-active .code-rain{opacity:1;animation-play-state:running}}.stack{margin-top:auto;padding-top:1rem}.stack span{color:#ffc6e8;letter-spacing:.13em;text-transform:uppercase;margin-bottom:.3rem;font-size:.72rem;font-weight:800;display:block}.card-actions{justify-content:flex-start;margin-top:.9rem}.card-actions a{min-height:2.35rem;padding:.56rem .8rem;font-size:.79rem}.skill-card{min-height:18.5rem}.skill-card ul,.checklist,.resume-list{flex-direction:column;gap:.58rem;margin:0;padding:0;list-style:none;display:flex}.skill-card li,.checklist li,.resume-list li{padding-left:1.2rem;position:relative}.skill-card li:before,.checklist li:before,.resume-list li:before{color:#ffc6e8;content:"•";position:absolute;left:0}.skill-card:nth-child(2n) li:before{color:var(--accent-blue)}.skill-card:nth-child(3n) li:before{color:var(--accent-green)}.split-section{grid-template-columns:minmax(0,.95fr) minmax(18rem,1.05fr);align-items:center;gap:1.5rem;display:grid}.checklist-card,.resume-card{padding:clamp(1.25rem,3vw,2rem)}.checklist li{padding-left:1.6rem}.checklist li:before,.resume-list li:before{content:"✓"}.resume-section{padding-top:2rem}.resume-card{grid-template-columns:1fr 1.3fr auto;align-items:center;gap:1.5rem;display:grid}.resume-card h2{margin-bottom:0}.button-wide{white-space:nowrap}.about-section{padding-top:3rem}.about-copy{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;max-width:55rem;margin:0 auto;padding:clamp(1.5rem,4vw,2.5rem) 0;font-size:clamp(1.05rem,2vw,1.28rem)}.about-copy p{margin-bottom:0}.contact-section{padding-top:2.5rem}.contact-link{color:#fff7fc;place-items:center;width:min(100%,13rem);min-height:4rem;font-weight:800;transition:transform .18s,border-color .18s,background .18s;display:grid}footer{width:min(100% - 2rem, var(--max-width));color:var(--dim);text-align:center;margin:0 auto;padding:2rem 0 3rem}footer p{margin:0}@media (width<=1100px){.project-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:minmax(0,.7fr) minmax(22rem,36rem) minmax(0,.7fr);min-height:min(520px,90svh - 10.5rem)}.hero-silhouette{opacity:.74;width:min(100%,25rem);transform:translateY(-3vh)}}@media (width<=900px){.site-header{width:min(100% - 1.25rem, var(--max-width))}.site-logo-link{width:min(100%,25rem)}.site-logo{width:clamp(16rem,58vw,25rem)}nav{gap:.4rem 1.15rem;width:min(620px,86vw)}.hero{grid-template-columns:minmax(0,.45fr) minmax(20rem,34rem) minmax(0,.45fr);min-height:min(470px,90svh - 9.75rem);margin-top:.85rem;padding-top:.85rem;padding-bottom:.55rem}.hero-center{padding:clamp(.6rem,1.2vw,.95rem) clamp(.25rem,.65vw,.55rem) clamp(.25rem,.65vw,.55rem);transform:translateY(-.65rem)}h1{letter-spacing:.05em;overflow-wrap:normal;max-width:100%;font-size:clamp(.88rem,2.8vw,1.28rem)}.hero-lead{font-size:clamp(.8rem,1.7vw,.92rem)}.hero-subtext{max-width:44rem;margin-top:1rem;margin-bottom:.7rem;font-size:clamp(1.2rem,2.9vw,1.35rem);line-height:1.4}.hero-actions{gap:.7rem}.hero-silhouette{opacity:.42;width:min(100%,20rem);transform:translateY(-.5rem)}#projects{padding-top:4.25rem}}@media (width<=820px){.site-header{align-items:center}.site-logo-link{width:min(100%,23rem)}.site-logo{width:clamp(15rem,60vw,23rem)}nav{justify-content:center;gap:.35rem .9rem}nav a{padding:.3rem .1rem;font-size:.78rem}.hero{grid-template-columns:1fr;min-height:auto;max-height:none;margin-top:1rem;padding-top:1rem;overflow:hidden}.hero-center{z-index:2;order:1;padding:.65rem .35rem .75rem;position:relative;transform:none}h1{font-size:clamp(.9rem,3.6vw,1.45rem)}.hero-silhouette{z-index:-1;opacity:.2;width:38%;min-width:12rem;position:absolute;top:4.5rem;transform:none}.hero-silhouette-left{left:-5rem}.hero-silhouette-right{right:-5rem}.hero-ambient{inset:0 0 1rem}.split-section,.resume-card{grid-template-columns:1fr}.resume-card{text-align:left}}@media (width<=700px){.hero{width:min(100% - 1.25rem,1280px)}.glass-preview{height:clamp(15rem,58vw,17.5rem)}.hero-center{padding:.85rem .35rem .75rem;transform:none}h1{letter-spacing:.06em;font-size:clamp(1rem,4.6vw,1.58rem);line-height:1.05}.hero-actions{grid-template-columns:1fr;gap:.5rem;width:min(100%,31rem);margin:0 auto;display:grid}.hero-actions .button{width:auto;min-height:2.45rem;padding:.52rem .75rem}.hero-silhouette{opacity:.1;width:8rem;min-width:0;top:7rem}.hero-silhouette-left{left:-4.5rem}.hero-silhouette-right{right:-4.5rem}#projects{padding-top:5.5rem}}@media (width<=620px){.site-header{width:min(100% - 1rem, var(--max-width));padding-top:.16rem}nav{justify-content:center;gap:.35rem .75rem;width:min(100%,92vw);min-height:58px}.card-actions,.contact-grid{flex-direction:column;align-items:stretch}.card-actions a,.contact-link{width:100%}.project-grid,.skills-grid{grid-template-columns:1fr}.project-card,.skill-card{min-height:auto}.hero{width:min(100% - 1.25rem,1280px);padding-bottom:.75rem}.site-logo{width:min(100%,22rem)}.hero-lead{margin-bottom:.45rem;font-size:.8rem}.hero-tagline{letter-spacing:.08em;margin-bottom:.5rem;font-size:.72rem}.hero-subtext{max-width:35rem;margin-top:.85rem;margin-bottom:.65rem;font-size:clamp(1.05rem,4vw,1.15rem);line-height:1.38}.hero-actions{grid-template-columns:1fr;gap:.45rem;width:min(100%,31rem);margin:0 auto;display:grid}.hero-actions .button{width:auto;min-height:2.35rem;padding:.48rem .7rem;font-size:.82rem}.hero-silhouette{opacity:.08;width:7rem;min-width:0;top:7.5rem}.hero-silhouette-left{left:-4.75rem}.hero-silhouette-right{right:-4.75rem}}
