:root{--ink:#2b2622;--accent:#ff8a00;--navy:#223a73;--holo:#22d3ff}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{color:var(--ink);font:500 1.05rem/1.5 Outfit,system-ui,sans-serif;transition:color .3s}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}#wipe{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;clip-path:circle(0vmax at 50% 70%)}.hero-inner{display:flex;flex-direction:column;align-items:flex-start;will-change:transform,opacity}#scene{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0}main{position:relative;z-index:1}.top{position:fixed;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem}.logo{font:700 1.3rem Space Mono,monospace;width:3rem}.pill{display:flex;gap:.25rem;padding:.3rem;border-radius:99px;background:#7864461f}.pill a{padding:.45rem 1.2rem;border-radius:99px;font-weight:700;text-transform:uppercase;font-size:.95rem}.pill a.on{background:var(--accent);color:#fff}.right{display:flex;gap:.6rem;align-items:center}.cta{background:var(--accent);color:#fff;padding:.7rem 1.4rem;border-radius:99px;font-weight:800;text-transform:uppercase}#sound{width:2.8rem;height:2.8rem;border-radius:50%;border:0;background:#7864462e;color:inherit;font-size:1.2rem;cursor:pointer}#sound[aria-pressed=true]{background:var(--accent);color:#fff}body.dark .pill,body.dark #sound:not([aria-pressed=true]){background:#ffffff1a}body.dark{color:#fff}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(1.5rem,10vw,10rem)}h1{font-weight:800;font-size:clamp(3.5rem,9vw,7rem);line-height:.98;letter-spacing:-.02em}.badge{display:inline-block;align-self:flex-start;background:var(--navy);color:#fff;font:700 1.4rem Space Mono,monospace;padding:.35rem 1rem;transform:rotate(-3deg);margin-top:-.4rem}.hero h1,.hero .badge{opacity:1;transform:translateY(18px);transition:opacity .9s,transform .9s}.hero .badge{transform:translateY(18px) rotate(-3deg);transition-delay:.2s}.ready .hero h1{opacity:1;transform:none}.ready .hero .badge{opacity:1;transform:rotate(-3deg)}.about{height:300vh}.stage{position:sticky;top:0;height:100vh;font-family:Space Mono,monospace}.card{position:absolute;padding:1rem 1.25rem;border:1px solid #2a8cff;border-radius:12px;background:#063282b3;color:#fff;font-size:.95rem}.card b{display:block;font-size:1.5rem}.c-name{left:14%;top:26%}.c-sum{left:14%;top:56%;max-width:20rem}.c-skills{right:12%;top:34%;opacity:1;transform:translate(16px);transition:.5s}.c-skills.show{opacity:1;transform:none}.c-skills ul{padding-left:1.1rem;margin-top:.4rem}.counter{position:absolute;left:50%;bottom:5%;transform:translate(-50%);padding:.2rem .8rem;background:#06256bd9;color:#7fd8ff;font:700 1.8rem Space Mono,monospace}.projects{position:relative;background:#f6efe4;padding:8rem 1.5rem 6rem}#pc{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.wrap{max-width:1100px;margin:0 auto;position:relative;z-index:1}.projects h2{font-size:clamp(3rem,7vw,5rem);font-weight:800;position:relative;margin-bottom:4rem}.projects .badge{position:absolute;top:-1.6rem;left:-.4rem;font-size:1rem}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem;margin-bottom:4rem;perspective:1200px}.proj-section:last-child .grid{margin-bottom:0}.section-label{font-size:1.1rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5rem;display:flex;align-items:center;gap:.6rem;color:var(--ink)}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot-public{background:#22d3ff;box-shadow:0 0 8px #22d3ff}.dot-private{background:#ff8a00;box-shadow:0 0 8px #ff8a00}.particles-3d{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.proj-content{padding:1rem 1.25rem 1.25rem}.bookmark{position:absolute;top:.8rem;left:.8rem;background:#acc42a;color:#fff;font-size:.75rem;font-weight:700;padding:.35rem .7rem;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.3rem;border:1px solid rgba(34,197,94,.3);z-index:3;box-shadow:0 4px 14px #acc42a59;transition:transform .3s,box-shadow .3s}.bookmark:hover{transform:scale(1.08)}.bookmark:before{content:"🔖";font-size:.85rem}.bookmark-private{background:#ff8a00;border:1px solid rgba(255,138,0,.3);box-shadow:0 4px 14px #ff8a0059}.proj{position:relative;display:block;transform-style:preserve-3d;transform:perspective(900px) translateZ(0);will-change:transform;background:#fff;border-radius:22px;overflow:hidden}.proj:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:22px;box-shadow:0 2px #ffffff1f inset,0 22px 50px -12px #0000008c,0 8px 20px -6px #00000059;pointer-events:none;transition:box-shadow .4s cubic-bezier(.22,.61,.36,1);z-index:1}.proj:hover:after{box-shadow:0 2px #ffffff2e inset,0 36px 72px -16px #000000b3,0 12px 28px -8px #00000073}.card-glow{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:23px;opacity:1;transition:opacity .4s;pointer-events:none;z-index:2;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.25) 0%,transparent 65%);mix-blend-mode:overlay}.proj:hover .card-glow{opacity:1}.proj b{display:block;margin-top:.85rem;font-size:1.4rem;position:relative;z-index:1;text-shadow:none;transition:color .3s}.proj span{color:#6b5f52;position:relative;z-index:1;transition:color .3s}.proj:hover b{color:var(--accent)!important}.thumb{aspect-ratio:16/9;border-radius:22px;transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s;box-shadow:0 4px 18px -4px #00000047;border:1px solid rgba(255,255,255,.22);overflow:hidden;position:relative}.thumb:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.18) 0%,transparent 55%,rgba(0,0,0,.08) 100%);pointer-events:none;z-index:1}.proj:hover .thumb{box-shadow:0 18px 44px -8px #00000080}.private-badge{position:absolute;top:.8rem;right:.8rem;background:#ed1b2f;color:#fff;font-size:.7rem;font-weight:700;padding:.3rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;z-index:3;box-shadow:0 4px 14px #ed1b2f73;transition:transform .3s,box-shadow .3s}.proj:hover .private-badge{transform:scale(1.08);box-shadow:0 6px 20px #ed1b2f99}.accessible-badge{position:absolute;top:.8rem;left:.8rem;background:#acc42a;color:#fff;font-size:.75rem;font-weight:700;padding:.35rem .7rem;border-radius:20px;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.3rem;border:1px solid rgba(34,197,94,.3);z-index:3;box-shadow:0 4px 14px #acc42a59;transition:transform .3s,box-shadow .3s}.accessible-badge:hover{transform:scale(1.08)}.accessible-badge:before{content:"🔖";font-size:.85rem}.contact{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-start;padding:12vh clamp(1.5rem,10vw,10rem) 0}.contact h2{font-size:clamp(2.6rem,6vw,4.5rem);font-weight:800;line-height:1;max-width:10ch}.socials{display:flex;gap:.8rem;margin-top:1.6rem}.socials a{width:3.4rem;height:3.4rem;border-radius:50%;background:#fff8ee;display:grid;place-items:center;font-weight:800;transition:background .2s}.socials a:hover{background:var(--accent);color:#fff}.foot{position:relative;z-index:1;background:#f6efe4;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem}.foot span{display:flex;gap:1.2rem;align-items:center;font-weight:700}.foot button,.up{border:1px solid #d8cbb8;background:transparent;border-radius:99px;padding:.5rem 1rem;font:inherit;font-weight:800}#loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;background:#f6efe4;font:800 clamp(4rem,16vw,10rem)/1 "Outfit",sans-serif;transition:opacity .6s,visibility .6s}#loader.done{opacity:1;visibility:hidden}@media (max-width: 800px){.pill a{padding:.4rem .7rem;font-size:.8rem}.cta{padding:.55rem .9rem;font-size:.8rem}.logo{display:none}.grid{grid-template-columns:1fr}.hero{justify-content:flex-start;padding-top:16vh}.top{padding:.8rem .6rem;gap:.4rem}.right{gap:.4rem}.cta{font-size:.7rem;padding:.5rem .7rem;white-space:nowrap}#sound{width:2.2rem;height:2.2rem;font-size:1rem;flex:none}.pill a{padding:.4rem .55rem;font-size:.72rem}.c-name{left:5%;top:14%}.c-sum{left:5%;top:66%;max-width:75%}.c-skills{right:5%;top:30%}}@media (max-width: 440px){#sound{display:none}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.hero h1,.hero .badge{transition:none}}
