@font-face{font-family:Shoptronic SP;src:url(/fonts/ShoptronicSP-Basic.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}:root{--magenta:#ff1ac6;--magenta-deep:#c4008f;--magenta-soft:#ff4dd6;--black:#0a0a0a;--ink:#111;--cream:#f7f2f5;--muted:#f7f2f59e;--line:#ff1ac659;--font-display:"Shoptronic SP", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--space-xs:.5rem;--space-sm:1rem;--space-md:1.75rem;--space-lg:3.5rem;--space-xl:6rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--max:1120px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--black);min-height:100vh;color:var(--cream);font-family:var(--font-mono);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--magenta);color:var(--black)}.section{padding:var(--space-xl) var(--space-md);position:relative}.section__inner{z-index:2;width:min(100%, var(--max));pointer-events:auto;margin:0 auto;position:relative}.section__label{margin:0 0 var(--space-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--magenta-soft);font-size:.75rem}.section__title{margin:0 0 var(--space-md);font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(1.8rem,4vw,3rem);font-weight:400;line-height:1.1}.section__text{max-width:38rem;color:var(--muted);font-family:var(--font-mono);margin:0;font-size:1rem}@media (width<=720px){.section{padding:var(--space-lg) 1.4rem}.section__label{letter-spacing:.14em;font-size:.68rem}}.app{overflow-x:clip}.btn{min-height:2.85rem;font-family:var(--font-mono);letter-spacing:.06em;text-transform:lowercase;transition:transform .35s var(--ease-out), background .35s var(--ease-out), color .35s var(--ease-out), border-color .35s var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;padding:.7rem 1.35rem;font-size:.82rem;display:inline-flex}.btn--solid{background:var(--cream);color:var(--black)}.btn--solid:hover{background:var(--magenta);transform:translateY(-2px)}.btn--ghost{color:var(--cream);background:0 0;border-color:#f7f2f573}.btn--ghost:hover{border-color:var(--magenta);color:var(--magenta-soft);transform:translateY(-2px)}.btn--ghost-dark{color:var(--black);background:#f7f2f533;border-color:#0a0a0a8c}.btn--ghost-dark:hover{border-color:var(--black);color:var(--black);background:#f7f2f58c}.cli-btn{border:1px solid var(--black);background:var(--black);min-width:min(100%,15.5rem);min-height:3.15rem;color:var(--magenta);font-family:var(--font-mono);letter-spacing:.04em;text-transform:lowercase;font-variant-ligatures:none;transition:transform .35s var(--ease-out), border-color .35s var(--ease-out), background .35s var(--ease-out), color .35s var(--ease-out);grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.75rem 1rem .75rem 1.1rem;font-size:.84rem;display:inline-grid;position:relative;overflow:hidden}.cli-btn__rail{background:var(--magenta);transform-origin:bottom;width:3px;transition:transform .4s var(--ease-out);position:absolute;top:0;bottom:0;left:0;transform:scaleY(.35)}.cli-btn__prefix{color:var(--magenta-soft);font-weight:600}.cli-btn__label{justify-self:start}.cli-btn__meta{color:#ff1ac673;transition:color .35s var(--ease-out), transform .35s var(--ease-out);font-size:.75rem}.cli-btn:hover{color:var(--magenta-soft);background:#141014;border-color:#141014;transform:translateY(-2px)}.cli-btn:hover .cli-btn__rail{transform:scaleY(1)}.cli-btn:hover .cli-btn__meta{color:var(--magenta-soft);transform:translate(2px)}.cli-btn--ghost{color:var(--black);background:0 0;border-style:dashed;border-color:#0a0a0a73}.cli-btn--ghost .cli-btn__rail{background:var(--black)}.cli-btn--ghost .cli-btn__prefix{color:#0a0a0a8c}.cli-btn--ghost .cli-btn__meta{color:#0a0a0a59}.cli-btn--ghost:hover{color:var(--black);background:#0a0a0a1a;border-style:solid;border-color:#0a0a0abf}.cli-btn--ghost:hover .cli-btn__meta{color:var(--black)}.cli-btn--decoding{opacity:.7;cursor:default;border-style:dashed}.cli-btn--decoding.cli-btn--ghost{background:0 0}.cli-btn--decoding .cli-btn__rail{opacity:.35;transform:scaleY(.15)}.cli-btn--ready{opacity:1}.ascii-track{position:relative}.ascii-canvas{z-index:1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.hero{background:var(--magenta);flex-direction:column;justify-content:center;min-height:100svh;display:flex;position:relative}.hero__content{z-index:2;width:min(100%,34rem);padding:var(--space-md) var(--space-md) var(--space-lg);pointer-events:auto;margin:4vh auto 0 clamp(.5rem,4vw,2.5rem);position:relative}@media (width>=721px){.hero__content{max-width:min(42%,32rem);margin-top:6vh;margin-left:clamp(4rem,12vw,11rem)}}.hero__code{font-family:var(--font-mono);font-variant-ligatures:none;border-left:2px solid #0a0a0a59;padding:0 0 0 1rem}.hero__comment{color:#0a0a0a80;margin:0 0 .85rem;font-size:.78rem}.hero__line{color:#0a0a0ac7;margin:0 0 .35rem;font-size:clamp(.95rem,2.1vw,1.15rem);line-height:1.45}.hero__line--indent{padding-left:1.25rem}.tok--kw{color:#0a0a0a8c}.tok--id{color:var(--black);font-weight:600}.tok--op{color:#0a0a0a73}.tok--str{color:var(--black)}.tok--method{color:#0a0a0ab8}.hero__brand{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(1.85rem,4.8vw,2.85rem);font-weight:400;line-height:1}.hero__cursor{vertical-align:text-bottom;background:var(--black);width:.55rem;height:1.05em;margin-left:.2rem;animation:1.05s step-end infinite caretBlink;display:inline-block}@keyframes caretBlink{0%,45%{opacity:1}50%,to{opacity:0}}.hero__cta{flex-direction:column;align-items:stretch;gap:.65rem;max-width:17.5rem;margin-top:1.35rem;display:flex}.hero__scroll{right:var(--space-md);bottom:var(--space-md);z-index:2;letter-spacing:.2em;text-transform:uppercase;color:#0a0a0aa6;pointer-events:none;flex-direction:column;align-items:center;gap:.55rem;font-size:.68rem;display:flex;position:absolute}.hero__scroll-line{background:linear-gradient(180deg, var(--black), transparent);width:1px;height:3.2rem;animation:scrollPulse 2.2s var(--ease-out) infinite}@keyframes scrollPulse{0%,to{opacity:.55;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.65)}}.assemble{background:var(--black);border-top:1px solid var(--line);min-height:160vh;position:relative}.assemble__copy{z-index:2;text-align:center;pointer-events:none;width:min(72%,28rem);padding:.5rem 1rem;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.assemble__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--magenta-soft);margin:0 0 .55rem;font-size:.75rem}.assemble__title{font-family:var(--font-display);letter-spacing:.02em;color:var(--cream);margin:0;font-size:clamp(1.45rem,3.8vw,2.6rem);font-weight:400;line-height:1.1}.assemble__stage{letter-spacing:.12em;text-transform:lowercase;color:#f7f2f5b8;min-height:1.4em;margin:.85rem 0 0;font-size:.85rem}.about{border-top:1px solid var(--line);background:linear-gradient(#0a0a0a 0%,#140814 55%,#0a0a0a 100%);position:relative}.about__lead{margin-bottom:var(--space-md);color:#f7f2f5e0;font-size:1.08rem}.projects{background:var(--black);border-top:1px solid var(--line);position:relative}.projects__intro{margin-bottom:var(--space-lg)}.projects__list{border-top:1px solid #f7f2f51f;margin:0;padding:0;list-style:none}.projects__item{border-bottom:1px solid #f7f2f51f}.projects__link{transition:background .35s var(--ease-out), padding .35s var(--ease-out);gap:.35rem;padding:1.6rem .2rem;display:grid;position:relative}.projects__link:hover{background:linear-gradient(90deg,#ff1ac61f,#0000 55%);padding-left:.85rem}.projects__name{font-family:var(--font-display);letter-spacing:.02em;font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:400}.projects__url{color:var(--magenta-soft);font-size:.85rem}.projects__desc{max-width:36rem;color:var(--muted);margin-top:.45rem}.contact{background:radial-gradient(ellipse 80% 60% at 50% 100%, #ff1ac638, transparent 65%), var(--black);border-top:1px solid var(--line);position:relative}.contact__text{margin-bottom:var(--space-lg)}.contact__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;max-width:36rem;display:grid}.contact__btn{min-height:4.5rem;font-family:var(--font-display);letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .35s var(--ease-out), border-color .35s var(--ease-out), transform .35s var(--ease-out), color .35s var(--ease-out);background:#0a0a0a59;border:1px solid #f7f2f547;justify-content:center;align-items:center;padding:1rem 1.25rem;font-size:clamp(1.1rem,2.5vw,1.45rem);font-weight:400;display:flex}.contact__btn:hover{background:var(--magenta);border-color:var(--magenta);color:var(--black);transform:translateY(-3px)}.contact__foot{margin:var(--space-xl) 0 0;letter-spacing:.14em;text-transform:uppercase;color:#f7f2f559;font-size:.75rem}@media (width<=720px){.hero{justify-content:flex-end;min-height:100svh}.hero__content{width:100%;max-width:100%;margin:auto 0 1.25rem;padding:.85rem 1.4rem .5rem}.hero__code{padding-left:.75rem}.hero__comment{margin-bottom:.65rem;font-size:.7rem}.hero__line{font-size:.86rem;line-height:1.4}.hero__brand{font-size:clamp(1.55rem,9vw,2.05rem)}.hero__cta{max-width:100%;margin-top:1.1rem}.cli-btn{width:100%;min-width:100%}.hero__scroll{display:none}.assemble{min-height:115vh}.assemble__copy{width:min(88%,20rem);padding:.35rem .65rem;top:48%}.assemble__eyebrow{letter-spacing:.16em;font-size:.68rem}.assemble__title{font-size:clamp(1.15rem,6.2vw,1.65rem)}.assemble__stage{font-size:.75rem}.section__title{font-size:clamp(1.4rem,7vw,1.95rem)}.section__text{font-size:.92rem}.projects{border-top:2px solid var(--magenta);border-bottom:2px solid var(--magenta);background:linear-gradient(#ff1ac624 0%,#0000 28%),#12020e}.projects .section__label{color:var(--magenta)}.projects__intro{margin-bottom:var(--space-md)}.projects__list{border-top:none}.projects__item{border-bottom:none;margin-bottom:.75rem}.projects__item:last-child{margin-bottom:0}.projects__link{background:#0a0a0a8c;border:1px solid #ff1ac673;padding:1.15rem 1rem}.projects__link:hover{background:#ff1ac62e;padding-left:1rem}.projects__name{font-size:clamp(1.4rem,7vw,1.9rem)}.contact{background:var(--black);border-top:1px solid #f7f2f51f;padding-bottom:1.5rem}.contact__text,.contact__foot{display:none}.contact .section__title{margin-bottom:1rem;font-size:clamp(1.25rem,6.5vw,1.7rem)}.contact__actions{grid-template-columns:1fr 1fr;gap:.7rem;max-width:100%}.contact__btn{background:0 0;border-color:#f7f2f538;min-height:3.1rem;font-size:.95rem}}@media (prefers-reduced-motion:reduce){.hero__scroll-line,.btn,.contact__btn,.projects__link{transition:none!important;animation:none!important}}
