*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#000;pointer-events:all;overflow:hidden}a{color:#87ceeb}*,button,a,[role=button]{cursor:none!important}#custom-cursor{position:fixed;pointer-events:none;z-index:9999;width:6px;height:6px;border-radius:50%;background:transparent;border:1.5px solid rgba(255,255,255,.85);box-shadow:0 0 4px #fff6,inset 0 0 4px #000c;margin-left:-3px;margin-top:-3px;opacity:0;transition:opacity .3s,transform .15s ease,border-color .15s ease}#custom-cursor.cursor--hover{transform:scale(.5);border-color:#fff6}@media(hover:none){#custom-cursor{display:none!important}*{cursor:auto!important}button,a{cursor:pointer!important}}canvas{position:fixed;inset:0;width:100%;height:100%}@font-face{font-family:Steps-Mono-Thin;src:url(/src/Steps-Mono-Thin.woff2) format("woff2")}#screen-vignette{position:fixed;inset:0;pointer-events:none;z-index:50;background:radial-gradient(ellipse at 50% 50%,transparent 20%,rgba(0,0,0,.45) 70%,rgba(0,0,0,.85) 100%);transition:opacity 1.2s ease}#screen-vignette.hidden{opacity:0}#loading-text{position:fixed;font-family:Special Gothic Expanded One,sans-serif;filter:drop-shadow(0 0 50px #fff);width:100%;top:50%;transform:translateY(-50%);text-align:center;color:#fff;font-size:clamp(1.2rem,4vw,2.5rem);transition:opacity .4s;pointer-events:none;z-index:60}#enter-text{position:fixed;visibility:hidden;font-family:Special Gothic Expanded One,sans-serif;width:100%;top:50%;transform:translateY(-50%);text-align:center;color:#fff;font-size:clamp(1rem,3vw,1.8rem);text-shadow:0 0 8px rgba(255,255,255,.9),0 0 30px rgba(255,255,255,.5),0 0 80px rgba(255,255,255,.2),0 0 160px rgba(255,255,255,.08);pointer-events:none;z-index:60;animation:pulse 2.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}#site-nav{position:fixed;top:16px;right:16px;display:flex;align-items:center;gap:8px;z-index:100}.nav-btn{font-family:Special Gothic Expanded One,sans-serif;font-size:11px;letter-spacing:.08em;color:#ffffff59;background:none;border:1px solid rgba(255,255,255,.18);border-radius:2px;padding:0 12px;height:30px;display:inline-flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;white-space:nowrap}.nav-btn:hover{color:#ffffffe6;border-color:#ffffff80}.nav-btn--icon{padding:0;width:30px}.nav-btn--icon img{display:block;opacity:.35;filter:brightness(10);transition:opacity .2s}.nav-btn--icon:hover img{opacity:.9}#dot-nav{position:fixed;right:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px;z-index:100}.dot-btn{width:6px;height:6px;border-radius:50%;background:#ffffff40;border:none;padding:0;transition:background .25s,transform .25s}.dot-btn:hover{background:#fff9}.dot-btn--active{background:#ffffffe6;transform:scale(1.4)}#project-panel{bottom:0;left:0;right:0;width:100%;background:#06060cf5;border-top:1px solid rgba(255,255,255,.09);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);display:flex;flex-direction:row;align-items:stretch;height:130px;padding:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;z-index:200;position:fixed}#pp-close{position:absolute;top:10px;right:12px;background:none;border:1px solid rgba(255,255,255,.15);border-radius:2px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#fff6;transition:color .2s,border-color .2s;z-index:1;flex-shrink:0}#pp-close:hover{color:#ffffffe6;border-color:#fff6}.pp-col{display:flex;flex-direction:column;justify-content:center}.pp-col--title{width:160px;min-width:160px;padding:0 0 0 24px;gap:10px;border-right:1px solid rgba(255,255,255,.05)}.pp-title{font-family:Special Gothic Expanded One,sans-serif;font-size:clamp(.8rem,1.1vw,1.1rem);color:#fff;letter-spacing:.04em;line-height:1.2}.pp-icons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pp-icon{width:22px;height:22px;object-fit:contain;opacity:.75;transition:opacity .15s,transform .15s}.pp-icon:hover{opacity:1;animation:pp-icon-wiggle .35s ease forwards}@keyframes pp-icon-wiggle{0%{transform:rotate(0) scale(1)}20%{transform:rotate(-8deg) scale(1.15)}45%{transform:rotate(6deg) scale(1.1)}65%{transform:rotate(-4deg) scale(1.05)}80%{transform:rotate(2deg) scale(1.02)}to{transform:rotate(0) scale(1)}}.pp-col--hook{flex:1 1 0;min-width:0;padding:0 44px 0 24px;gap:8px}.pp-hook{font-family:Lato,sans-serif;font-size:12px;font-weight:300;line-height:1.7;color:#ffffff8c}.pp-link{display:inline-flex;align-items:center;font-family:Lato,sans-serif;font-size:10px;color:#fff6;border:1px solid rgba(255,255,255,.1);border-radius:0;padding:3px 8px;text-decoration:none;letter-spacing:.04em;transition:color .2s,border-color .2s;align-self:flex-start}.pp-link:hover{color:#ffffffe6;border-color:#fff6}.pp-screenshots{display:flex;flex-direction:row;gap:3px;height:100%;flex:0 1 auto;min-width:0;overflow:hidden}.pp-screenshot{height:100%;width:auto;display:block;opacity:.8;transition:opacity .2s,transform .2s;flex-shrink:0;object-fit:cover;cursor:pointer}.pp-screenshot:hover{opacity:1;transform:scale(1.02)}#pp-lightbox{position:fixed;inset:0;background:#000000eb;z-index:9000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}#pp-lightbox.lb-open{opacity:1;pointer-events:all}#pp-lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;border:1px solid rgba(255,255,255,.08);transform:scale(.94);transition:transform .28s cubic-bezier(.22,1,.36,1)}#pp-lightbox.lb-open img{transform:scale(1)}#about-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:300;pointer-events:none;opacity:0;transition:opacity .22s ease}#about-overlay.about-visible{opacity:1}#about-overlay #about-card{transform:translateY(12px) scale(.97);transition:transform .3s cubic-bezier(.22,1,.36,1)}#about-overlay.about-visible #about-card{transform:translateY(0) scale(1)}#about-card{position:relative;width:min(480px,90vw);background:#080810f2;border:1px solid rgba(255,255,255,.1);border-radius:0;padding:40px 36px 32px;display:flex;flex-direction:column;gap:20px}#about-close{position:absolute;top:14px;right:14px;background:none;border:1px solid rgba(255,255,255,.12);border-radius:2px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:#ffffff59;transition:color .2s,border-color .2s}#about-close:hover{color:#ffffffd9;border-color:#ffffff59}#about-header{display:flex;align-items:center;gap:16px}#about-initials{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-family:Special Gothic Expanded One,sans-serif;font-size:14px;color:#ffffffb3;flex-shrink:0}#about-name{font-family:Special Gothic Expanded One,sans-serif;font-size:16px;color:#fff;letter-spacing:.04em}#about-title{font-family:Lato,sans-serif;font-size:12px;color:#fff6;margin-top:3px;letter-spacing:.03em}#about-bio{font-family:Lato,sans-serif;font-size:14px;font-weight:300;line-height:1.75;color:#ffffffa6;border-top:1px solid rgba(255,255,255,.06);padding-top:20px}#about-looking{font-family:Lato,sans-serif;font-size:13px;line-height:1.6;color:#ffffff73;padding:12px 16px;border:1px solid rgba(255,255,255,.07);border-radius:0;background:#ffffff08}#about-looking strong{color:#ffffffbf;font-weight:400}#about-interests{display:flex;flex-wrap:wrap;gap:8px}.about-chip{font-family:Lato,sans-serif;font-size:11px;color:#ffffff73;border:1px solid rgba(255,255,255,.1);border-radius:2px;padding:4px 12px;letter-spacing:.03em}#about-footer{display:flex;gap:16px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}.about-link{font-family:Lato,sans-serif;font-size:12px;color:#ffffff59;text-decoration:none;letter-spacing:.04em;transition:color .2s}.about-link:hover{color:#fffc}#scroll-hint{position:fixed;bottom:28px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;font-family:Special Gothic Expanded One,sans-serif;font-size:10px;letter-spacing:.12em;color:#ffffff59;pointer-events:none;z-index:100;transition:opacity .6s ease}#scroll-hint svg{opacity:.5;flex-shrink:0}#scroll-hint.hint-hide{opacity:0;transition:opacity 1.2s ease}#arrival-card{position:fixed;bottom:32px;left:50%;transform:translate(-50%);background:#060610d1;border:1px solid rgba(255,255,255,.09);border-radius:0;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:14px 20px;min-width:280px;max-width:min(480px,80vw);z-index:110;opacity:0;transform:translate(-50%) translateY(12px);pointer-events:none;transition:opacity .4s ease,transform .4s ease}#arrival-card.card-show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:all}#arrival-card.card-hide{opacity:0;transform:translate(-50%) translateY(12px);pointer-events:none}#ac-title{font-family:Special Gothic Expanded One,sans-serif;font-size:13px;letter-spacing:.06em;color:#ffffffe6;margin-bottom:5px}#ac-hook{font-family:Lato,sans-serif;font-size:12px;font-weight:300;color:#ffffff80;line-height:1.6;margin-bottom:8px}#ac-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.ac-tag{font-family:Lato,sans-serif;font-size:10px;color:#fff6;border:1px solid rgba(255,255,255,.1);border-radius:2px;padding:2px 7px;letter-spacing:.03em}#ac-cta{font-family:Lato,sans-serif;font-size:11px;color:#ffffff40;letter-spacing:.05em}@media(hover:none){button,a,[role=button]{cursor:pointer!important}}@media(max-width:768px){#loading-text,#enter-text{font-size:clamp(.9rem,5vw,1.4rem);padding:0 24px}#project-panel{flex-direction:column;height:auto;max-height:60vh;overflow-y:auto}.pp-col--title{width:100%;min-width:0;flex-direction:row;align-items:center;padding:16px 16px 8px;border-right:none;border-bottom:1px solid rgba(255,255,255,.05);gap:12px}.pp-col--hook{padding:12px 44px 12px 16px}.pp-screenshots{height:80px;max-width:100%;overflow-x:auto}#dot-nav{transform:translate(-50%);flex-direction:row;inset:12px auto auto 50%;gap:8px}.dot-btn{width:8px;height:8px}#arrival-card{bottom:16px;max-width:90vw;padding:12px 16px}#about-card{padding:32px 20px 24px}#site-nav{top:10px;right:10px;gap:6px}.nav-btn{font-size:9px;padding:0 8px;height:26px}.nav-btn--icon{width:26px}#scroll-hint{display:none}}
