:root{--bg:#0a0814;--bg-panel:#100e1c;--fg:#b8dff5;--fg-dim:#6b849c;--fg-bright:#f0f8ff;--accent:#f4a4d4;--accent-cyan:#a8daf5;--glow:#f4a4d447;--glow-cyan:#a8daf53d;--font:"IBM Plex Mono", ui-monospace, "Cascadia Code", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;overflow:hidden auto}#app{min-height:100%}.terminal{background:radial-gradient(ellipse 75% 60% at 28% 38%, #f4a4d41a 0%, transparent 58%), radial-gradient(ellipse 70% 55% at 74% 58%, #a8daf51c 0%, transparent 55%), radial-gradient(ellipse 90% 70% at 50% 50%, #13111f 0%, var(--bg) 72%), linear-gradient(180deg, #0d0b18 0%, var(--bg) 100%);place-items:center;min-height:100dvh;padding:1.5rem 1.5rem 6.5rem;display:grid;position:relative}.terminal:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#a8daf507 1px,#0000 1px),linear-gradient(90deg,#f4a4d407 1px,#0000 1px);background-size:52px 52px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60%,#000 20%,#0000 75%);mask-image:radial-gradient(70% 60%,#000 20%,#0000 75%)}.scanlines{pointer-events:none;opacity:.4;z-index:2;background:repeating-linear-gradient(#0000 0 2px,#00000038 2px 4px);animation:6s step-end infinite flicker;position:absolute;inset:0}.vignette{pointer-events:none;z-index:2;background:radial-gradient(#0000 40%,#04020cb3 100%);position:absolute;inset:0}.screen{z-index:1;flex-direction:column;align-items:center;gap:1.35rem;max-width:100%;padding:.5rem 0 1.5rem;animation:.7s ease-out both boot;display:flex;position:relative}.ascii{font-family:var(--font);letter-spacing:.02em;color:var(--fg-bright);text-shadow:-.5px 0 0 #f4a4d459, .5px 0 0 #a8daf559, 0 0 20px var(--glow), 0 0 40px var(--glow-cyan);white-space:pre;-webkit-user-select:none;user-select:none;max-width:100%;font-size:clamp(.45rem,1.8vw,.95rem);line-height:1.15;animation:.9s steps(12,end) both reveal;overflow-x:auto}.ascii-link{color:inherit;cursor:pointer;max-width:100%;text-decoration:none;display:block}.ascii-link:focus-visible{outline:1px solid var(--accent);outline-offset:.4rem;box-shadow:0 0 16px var(--glow-cyan)}.ascii--shimmer{color:#0000;background:linear-gradient(110deg, var(--fg-dim) 0%, var(--accent-cyan) 30%, var(--fg-bright) 44%, var(--accent) 50%, var(--fg-bright) 56%, var(--accent-cyan) 70%, var(--fg-dim) 100%);text-shadow:none;filter:drop-shadow(-.5px 0 0 #f4a4d466) drop-shadow(.5px 0 0 #a8daf566) drop-shadow(0 0 16px var(--glow)) drop-shadow(0 0 28px var(--glow-cyan));background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:.9s steps(12,end) both reveal,3.6s ease-in-out infinite shimmer}.ascii--shimmer-slow{animation:.9s steps(12,end) both reveal,5.5s ease-in-out infinite shimmer}.prompt{color:var(--fg-dim);flex-wrap:wrap;align-items:center;gap:.35rem;font-size:clamp(.75rem,2vw,.95rem);animation:.5s ease-out .35s both fade-up;display:flex}.user{color:var(--accent);text-shadow:0 0 8px var(--glow), 0 0 20px var(--glow)}.sep{color:var(--fg-dim)}.path{color:var(--accent-cyan);text-shadow:0 0 8px var(--glow-cyan), 0 0 18px var(--glow-cyan)}.dollar{color:var(--fg-bright);text-shadow:0 0 10px var(--glow-cyan);margin-right:.15rem}.cmd{color:var(--fg);text-shadow:0 0 12px var(--glow-cyan)}.cursor{background:linear-gradient(180deg, var(--accent) 0%, var(--accent-cyan) 100%);width:.55em;height:1.05em;box-shadow:0 0 12px var(--glow), 0 0 24px var(--glow-cyan);vertical-align:text-bottom;animation:1.1s step-end infinite blink;display:inline-block}.site-footer{z-index:3;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.65rem 1.5rem;animation:.5s ease-out .55s both fade-up;display:flex;position:absolute;bottom:1.25rem;left:1.5rem;right:1.5rem}.site-footer .prompt{font-size:clamp(.65rem,1.6vw,.8rem);animation:none}.footer-nav{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.social-menu{justify-content:flex-end;display:flex;position:relative}.social-toggle{font:inherit;letter-spacing:.08em;color:var(--fg-dim);cursor:pointer;text-shadow:none;background:0 0;border:1px solid #0000;padding:.1rem .2rem;font-size:clamp(.65rem,1.5vw,.78rem);transition:color .15s,border-color .15s,text-shadow .15s}.social-toggle:hover,.social-toggle:focus-visible,.social-toggle[aria-expanded=true]{color:var(--fg-bright);text-shadow:0 0 10px var(--glow-cyan);border-color:#a8daf559;outline:none}.social-popup{z-index:5;background:radial-gradient(80% 60% at 20% 0,#f4a4d41f,#0000 55%),#100e1ceb;border:1px solid #a8daf547;flex-direction:column;align-items:flex-start;gap:.45rem;min-width:7.5rem;padding:.55rem .7rem;animation:.2s ease-out both fade-up;display:flex;position:absolute;bottom:calc(100% + .45rem);right:0;box-shadow:inset 0 0 0 1px #f4a4d414,0 0 24px #a8daf51a,0 12px 28px #0006}.social-popup[hidden]{display:none}.social-popup:after{content:"";background:#100e1ceb;border-bottom:1px solid #a8daf547;border-right:1px solid #a8daf547;width:8px;height:8px;position:absolute;bottom:-5px;right:.85rem;transform:rotate(45deg)}.link--popup{font-size:clamp(.72rem,1.6vw,.85rem)}.footer-nav__site{flex-wrap:wrap;justify-content:flex-end;gap:.45rem 1rem;display:flex}.link--site{font-size:clamp(.75rem,1.8vw,.9rem)}@media (width<=640px){.screen>.prompt:not(.prompt--home){display:none}.site-footer{text-align:center;flex-direction:column-reverse;justify-content:flex-end;align-items:center;gap:.55rem}.site-footer .prompt{justify-content:center}.footer-nav{align-items:center}.social-menu{justify-content:center}.social-popup{width:max-content;margin-inline:auto;left:0;right:0}.social-popup:after{margin-left:-4px;left:50%;right:auto}.footer-nav__site{justify-content:center}}.links{flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;animation:.5s ease-out .55s both fade-up;display:flex}.link{color:var(--fg);letter-spacing:.06em;text-transform:lowercase;text-shadow:0 0 12px var(--glow-cyan);border-bottom:1px solid #0000;font-size:clamp(.85rem,2.2vw,1rem);text-decoration:none;transition:color .15s,border-color .15s,text-shadow .15s}.link:before{content:"./";color:var(--fg-dim);text-shadow:none}.link:hover,.link:focus-visible{color:var(--fg-bright);border-bottom-color:var(--accent);text-shadow:0 0 8px var(--glow), 0 0 20px var(--glow), 0 0 32px var(--glow-cyan);outline:none}.link.back:before{content:""}.legal{text-align:center;width:min(34rem,100%);color:var(--fg);flex-direction:column;align-items:center;gap:.75rem;font-size:clamp(.8rem,2vw,.95rem);line-height:1.55;animation:.5s ease-out .55s both fade-up;display:flex}.legal-title{color:var(--fg-bright);letter-spacing:.04em;text-shadow:0 0 12px var(--glow-cyan);font-size:clamp(.95rem,2.4vw,1.15rem);font-weight:700}.legal .link{font-size:inherit}.folio{flex-direction:column;gap:.9rem;width:min(34rem,100%);animation:.5s ease-out .7s both fade-up;display:flex}.folio-stage{grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem;display:grid;position:relative}.folio-track{--folio-index:0;touch-action:pan-y;clip-path:polygon(0 10px,10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px));background:linear-gradient(#f4a4d40f,#0000 40%),#0a08148c;border:1px solid #a8daf52e;width:100%;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #f4a4d414,0 0 28px #a8daf514,0 0 48px #f4a4d40f}.folio-card{transform:translateX(calc(var(--folio-index) * -100%));opacity:.45;filter:saturate(.7)brightness(.75);flex:0 0 100%;transition:transform .55s cubic-bezier(.22,1,.36,1);position:relative}.folio-card.is-active{opacity:1;filter:none}.folio-card-hit{cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;aspect-ratio:1200/630;background:0 0;border:0;padding:0;display:block;position:relative;overflow:hidden}.folio-card-hit:focus-visible{outline:1px solid var(--accent);outline-offset:-2px;box-shadow:0 0 20px var(--glow-cyan)}.folio-image,.folio-fallback{width:100%;height:100%;position:absolute;inset:0}.folio-image{object-fit:cover;transition:transform .5s,filter .3s;display:block}.folio-fallback{opacity:0;pointer-events:none;background:radial-gradient(circle at 30% 30%,#f4a4d42e,#0000 50%),radial-gradient(circle at 70% 70%,#a8daf529,#0000 45%),#0d0b18;place-items:center;display:grid}.folio-fallback img{object-fit:contain;width:3.5rem;height:3.5rem;filter:drop-shadow(0 0 16px var(--glow-cyan))}.folio-card.is-fallback .folio-image,.folio-modal-preview.is-fallback .folio-modal-image{opacity:0}.folio-card.is-fallback .folio-fallback{opacity:1}.folio-card-hit:hover .folio-image,.folio-card-hit:focus-visible .folio-image{filter:contrast(1.05)saturate(1.1);transform:scale(1.04)}.folio-scan{pointer-events:none;mix-blend-mode:screen;z-index:2;background:linear-gradient(#0000 0%,#a8daf514 48%,#0000 52% 100%) 0 0/100% 220%;animation:3.8s linear infinite folio-scan;position:absolute;inset:0}.folio-frame{pointer-events:none;z-index:3;position:absolute;inset:0;box-shadow:inset 0 0 40px #04020c73,inset 0 -48px 40px #04020c8c}.folio-corner{border:1.5px solid var(--accent-cyan);width:14px;height:14px;box-shadow:0 0 10px var(--glow-cyan);position:absolute}.folio-corner--tl{border-bottom:0;border-right:0;top:8px;left:8px}.folio-corner--tr{border-bottom:0;border-left:0;border-color:var(--accent);box-shadow:0 0 10px var(--glow);top:8px;right:8px}.folio-corner--bl{border-top:0;border-right:0;border-color:var(--accent);box-shadow:0 0 10px var(--glow);bottom:8px;left:8px}.folio-corner--br{border-top:0;border-left:0;bottom:8px;right:8px}.folio-meta{z-index:4;letter-spacing:.08em;color:var(--fg-bright);text-shadow:0 0 10px var(--glow-cyan);justify-content:space-between;align-items:baseline;gap:.75rem;padding:.7rem .85rem;font-size:.72rem;display:flex;position:absolute;bottom:0;left:0;right:0}.folio-index{color:var(--accent);text-shadow:0 0 10px var(--glow)}.folio-host:before{content:"// ";color:var(--fg-dim);text-shadow:none}.folio-nav{font:inherit;color:var(--fg-dim);cursor:pointer;width:1.8rem;height:1.8rem;text-shadow:0 0 10px var(--glow-cyan);background:0 0;border:1px solid #0000;font-size:1.35rem;line-height:1;transition:color .15s,border-color .15s,text-shadow .15s}.folio-nav:hover,.folio-nav:focus-visible{color:var(--fg-bright);text-shadow:0 0 8px var(--glow), 0 0 18px var(--glow-cyan);border-color:#f4a4d473;outline:none}.folio-dots{justify-content:center;gap:.55rem;display:flex}.folio-dot{border:1px solid var(--fg-dim);cursor:pointer;background:0 0;border-radius:0;width:.45rem;height:.45rem;padding:0;transition:background .15s,border-color .15s,box-shadow .15s;transform:rotate(45deg)}.folio-dot.is-active,.folio-dot:hover,.folio-dot:focus-visible{background:linear-gradient(135deg, var(--accent), var(--accent-cyan));box-shadow:0 0 10px var(--glow), 0 0 18px var(--glow-cyan);border-color:#0000;outline:none}body.folio-modal-open{overflow:hidden}.folio-modal{z-index:100;grid-template-columns:auto minmax(0,min(28rem,100% - 5rem)) auto;justify-content:center;align-items:center;gap:.35rem .5rem;padding:1.25rem;display:grid;position:fixed;inset:0}.folio-modal[hidden]{display:none}.folio-modal-backdrop{z-index:0;-webkit-backdrop-filter:blur(14px)saturate(1.2);cursor:pointer;background:#04020c73;position:absolute;inset:0}.folio-modal-nav{z-index:1;font:inherit;width:2.2rem;height:2.2rem;color:var(--fg-dim);cursor:pointer;text-shadow:0 0 10px var(--glow-cyan);-webkit-backdrop-filter:blur(10px);background:#0a081473;border:1px solid #a8daf547;font-size:clamp(1.6rem,4vw,2.1rem);line-height:1;transition:color .15s,border-color .15s,text-shadow .15s,box-shadow .15s;position:relative}.folio-modal-nav:hover,.folio-modal-nav:focus-visible{color:var(--fg-bright);text-shadow:0 0 8px var(--glow), 0 0 18px var(--glow-cyan);box-shadow:0 0 18px var(--glow-cyan);border-color:#f4a4d48c;outline:none}.folio-modal-panel{z-index:1;-webkit-backdrop-filter:blur(18px)saturate(1.35);clip-path:polygon(0 14px,14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px));background:radial-gradient(80% 60% at 20% 0,#f4a4d429,#0000 55%),radial-gradient(70% 50% at 90% 100%,#a8daf524,#0000 50%),#100e1c9e;border:1px solid #a8daf547;width:100%;padding:1.15rem 1.15rem 1.35rem;animation:.28s ease-out both folio-pop;position:relative;box-shadow:inset 0 0 0 1px #f4a4d41a,0 0 40px #a8daf51f,0 24px 60px #00000073}.folio-modal-glow{pointer-events:none;opacity:.35;background:repeating-linear-gradient(#0000 0 2px,#0000002e 2px 4px);position:absolute;inset:0}.folio-modal-close{z-index:2;font:inherit;color:var(--fg-dim);cursor:pointer;text-shadow:0 0 10px var(--glow);background:0 0;border:none;font-size:1.35rem;line-height:1;transition:color .15s;position:absolute;top:.55rem;right:.7rem}.folio-modal-close:hover,.folio-modal-close:focus-visible{color:var(--accent);outline:none}.folio-modal-body{z-index:1;flex-direction:column;gap:.75rem;display:flex;position:relative}.folio-modal-preview{aspect-ratio:1200/630;background:#0d0b18;border:1px solid #a8daf533;position:relative;overflow:hidden}.folio-modal-image{object-fit:cover;width:100%;height:100%;display:block}.folio-modal-favicon{width:2.1rem;height:2.1rem;box-shadow:0 0 16px var(--glow);background:#0a0814d1;border:1px solid #f4a4d459;place-items:center;display:grid;position:absolute;bottom:.65rem;left:.65rem}.folio-modal-favicon img{object-fit:contain;width:1.15rem;height:1.15rem}.folio-modal-kicker{letter-spacing:.08em;color:var(--fg-dim);font-size:.72rem}.folio-modal-title{color:var(--fg-bright);text-shadow:0 0 12px var(--glow-cyan), 0 0 24px var(--glow);font-size:clamp(1rem,3vw,1.2rem);font-weight:700}.folio-modal-desc{color:var(--fg);font-size:.85rem;line-height:1.55}.folio-tags{flex-wrap:wrap;gap:.4rem .7rem;list-style:none;display:flex}.folio-tags li{letter-spacing:.08em;color:var(--accent-cyan);text-shadow:0 0 10px var(--glow-cyan);font-size:.7rem}.folio-tags li:before{content:"#";color:var(--accent);text-shadow:0 0 8px var(--glow)}.folio-visit{align-self:flex-start;margin-top:.25rem}@keyframes folio-scan{0%{background-position:0 -40%}to{background-position:0 140%}}@keyframes folio-pop{0%{opacity:0;filter:brightness(1.4)contrast(.85);transform:translateY(.5rem)scale(.98)}to{opacity:1;filter:none;transform:none}}.contact-form{flex-direction:column;gap:1rem;width:min(22rem,100%);animation:.5s ease-out .35s both fade-up;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.field-label{color:var(--fg-dim);letter-spacing:.08em;text-shadow:0 0 10px var(--glow-cyan);font-size:.8rem}.field-label:before{content:"> ";color:var(--accent);text-shadow:0 0 10px var(--glow)}.field-input{font:inherit;color:var(--fg-bright);border:none;border-bottom:1px solid var(--fg-dim);width:100%;text-shadow:0 0 12px var(--glow-cyan);background:0 0;border-radius:0;outline:none;padding:.45rem 0;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-bottom-color:var(--accent-cyan);box-shadow:0 1px 12px -2px var(--glow-cyan)}.field-textarea{resize:vertical;min-height:6rem;line-height:1.45}.hp-field{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.form-actions{justify-content:space-between;align-items:center;gap:1rem;margin-top:.35rem;display:flex}.submit{font:inherit;color:var(--bg);background:linear-gradient(135deg, var(--accent) 0%, var(--accent-cyan) 100%);cursor:pointer;letter-spacing:.06em;box-shadow:0 0 18px var(--glow), 0 0 32px var(--glow-cyan);border:none;padding:.45rem .9rem;transition:filter .15s,box-shadow .15s}.submit:hover,.submit:focus-visible{filter:brightness(1.12);outline:none}.form-status{color:var(--accent);min-height:1.2em;text-shadow:0 0 12px var(--glow);font-size:.8rem}@keyframes blink{50%{opacity:0}}@keyframes boot{0%{opacity:0;filter:brightness(2.2)contrast(.7)hue-rotate(-20deg);transform:scale(1.01)}to{opacity:1;filter:none;transform:none}}@keyframes reveal{0%{clip-path:inset(0 0 100%);opacity:.4}to{clip-path:inset(0);opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}@keyframes flicker{0%,94%,to{opacity:.4}95%{opacity:.22}96%{opacity:.48}}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@media (prefers-reduced-motion:reduce){.scanlines,.screen,.ascii,.prompt,.site-footer,.links,.legal,.folio,.folio-card,.folio-scan,.folio-modal-panel,.contact-form,.cursor{animation:none}.folio-card{transition:none}.ascii{clip-path:none}.ascii--shimmer{color:var(--fg-bright);filter:none;text-shadow:-.5px 0 0 #f4a4d459, .5px 0 0 #a8daf559, 0 0 20px var(--glow);background:0 0}}
