@font-face{font-family:Doctor Punk;src:url(/fonts/doctor-punk.otf) format("opentype");font-weight:400;font-style:normal;font-display:block}:root{--bg: #0a0a0b;--text: #f2f2f0;--text-muted: #85858a;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--t-duration-fast: .18s;--t-duration-base: .42s;--t-duration-slow: .9s;--t-ease: cubic-bezier(.22, 1, .36, 1);--t-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--t-distance: 18px;--t-blur: 8px;--t-stagger: 45ms}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y mandatory}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}main{height:100vh;overflow-y:auto;scroll-snap-type:y mandatory}.scene{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6vh 6vw;scroll-snap-align:start;position:relative}.hero-inner{display:flex;flex-direction:column;align-items:center;gap:2.5rem}.wordmark{position:relative;isolation:isolate;font-family:Doctor Punk,Inter,sans-serif;font-size:clamp(4rem,13vw,9.5rem);font-weight:400;text-transform:uppercase;letter-spacing:.01em;line-height:1;color:var(--text)}.wordmark:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:220% 100%;background-position:200% 0;mix-blend-mode:overlay;pointer-events:none;opacity:0}.wordmark.t-shimmer-active:after{opacity:1;animation:t-shimmer-sweep 5.5s ease-in-out infinite}@keyframes t-shimmer-sweep{0%,to{background-position:200% 0}50%{background-position:-40% 0}}.socials{display:flex;gap:1.75rem}.social-link{position:relative;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:color var(--t-duration-base) ease,transform var(--t-duration-base) var(--t-ease-spring)}.social-link svg{width:20px;height:20px;transition:transform var(--t-duration-base) var(--t-ease-spring)}.social-link:hover,.social-link:focus-visible{color:var(--text);transform:translateY(-2px)}.social-link:hover svg,.social-link:focus-visible svg{transform:scale(1.12)}.scroll-hint{position:absolute;bottom:5vh;left:50%;transform:translate(-50%)}.scroll-hint span{display:block;width:1px;height:36px;background:linear-gradient(to bottom,transparent,var(--border-strong));animation:hint-float 2.6s ease-in-out infinite}@keyframes hint-float{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(8px)}}.projects,.contact{font-family:Funnel Sans,Inter,sans-serif}.scene-inner{width:100%;max-width:960px;display:flex;flex-direction:column;align-items:center;text-align:center}.section-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:300;letter-spacing:.01em;margin-bottom:4rem}.project-grid{position:relative;width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.project-grid:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border:1px solid var(--border);pointer-events:none}.project-card+.project-card{border-left:1px solid var(--border)}.project-card{--rx: 0deg;--ry: 0deg;--accent: 255, 255, 255;position:relative;overflow:hidden;background:var(--bg);padding:3rem 2rem 2.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:background var(--t-duration-base) ease,transform var(--t-duration-base) var(--t-ease),box-shadow var(--t-duration-base) var(--t-ease);will-change:transform}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:rgb(var(--accent));transform:scaleX(0);transform-origin:center;transition:transform var(--t-duration-base) var(--t-ease)}.project-card:hover{background:#101012;z-index:1;box-shadow:0 24px 48px -28px #000000a6,0 0 0 1px rgba(var(--accent),.18) inset}.project-card:hover:before{transform:scaleX(1)}.project-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-bottom:.4rem;border-radius:50%;color:rgb(var(--accent));background:rgba(var(--accent),.1);box-shadow:0 0 0 1px rgba(var(--accent),.22) inset;transition:transform var(--t-duration-base) var(--t-ease-spring),background var(--t-duration-base) ease}.project-card:hover .project-icon{transform:scale(1.08);background:rgba(var(--accent),.16)}.project-icon svg{width:20px;height:20px}.project-tag{font-size:.7rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgb(var(--accent));opacity:.85}.project-card h3{font-size:1.05rem;font-weight:400;letter-spacing:.01em;margin-top:.15rem}.project-card p{font-size:.875rem;font-weight:300;color:var(--text-muted);line-height:1.6}.project-link{margin-top:.5rem;display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:2px;transition:color var(--t-duration-base) ease,border-color var(--t-duration-base) ease}.project-link:hover,.project-link:focus-visible{color:var(--text);border-color:var(--border-strong)}.t-arrow{display:inline-block;transform:translate(-5px);opacity:0;transition:transform var(--t-duration-base) var(--t-ease),opacity var(--t-duration-base) var(--t-ease)}.project-link:hover .t-arrow,.project-link:focus-visible .t-arrow,.contact-label:hover .t-arrow,.contact-label:focus-visible .t-arrow{transform:translate(0);opacity:1}.contact-discord{position:relative;color:var(--text-muted);display:inline-flex;margin-bottom:2.5rem;transition:color var(--t-duration-base) ease,transform var(--t-duration-base) var(--t-ease-spring)}.contact-discord svg{width:56px;height:56px;transition:transform var(--t-duration-base) var(--t-ease-spring)}.contact-discord:hover,.contact-discord:focus-visible{color:var(--text);transform:translateY(-2px)}.contact-discord:hover svg,.contact-discord:focus-visible svg{transform:scale(1.08)}.contact-label{display:inline-flex;align-items:center;gap:.35rem;color:var(--text);text-decoration:none;font-size:1rem;font-weight:300;letter-spacing:.04em;border-bottom:1px solid var(--border-strong);padding-bottom:3px;transition:opacity var(--t-duration-base) ease}.contact-label:hover{opacity:.7}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%,4px);padding:.4rem .7rem;border-radius:6px;background:#17171a;border:1px solid var(--border-strong);color:var(--text);font-size:.7rem;font-family:Inter,sans-serif;letter-spacing:.03em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-duration-fast) var(--t-ease),transform var(--t-duration-fast) var(--t-ease)}[data-tooltip]:hover:before,[data-tooltip]:focus-visible:before{opacity:1;transform:translate(-50%)}.t-reveal-mask{display:inline-block;overflow:hidden;vertical-align:top}.t-reveal-inner{display:inline-block;transform:translateY(115%);opacity:0;filter:blur(var(--t-blur));transition:transform var(--t-duration-slow) var(--t-ease) calc(var(--i) * var(--t-stagger)),opacity var(--t-duration-base) var(--t-ease) calc(var(--i) * var(--t-stagger)),filter var(--t-duration-base) var(--t-ease) calc(var(--i) * var(--t-stagger))}.t-reveal.visible .t-reveal-inner{transform:translateY(0);opacity:1;filter:blur(0)}.t-panel-reveal{clip-path:inset(0 100% 0 0);transition:clip-path 1.15s var(--t-ease)}.t-panel-reveal.visible{clip-path:inset(0 0 0 0)}.fade-in{opacity:0;transform:translateY(var(--t-distance)) scale(.985);transition:opacity var(--t-duration-slow) var(--t-ease),transform var(--t-duration-slow) var(--t-ease),filter var(--t-duration-slow) var(--t-ease)}.fade-in.visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.fade-in.t-blur-in{filter:blur(var(--t-blur))}.fade-in.t-blur-in.visible{filter:blur(0)}.stagger>.fade-in:nth-child(1){transition-delay:0s}.stagger>.fade-in:nth-child(2){transition-delay:.1s}.stagger>.fade-in:nth-child(3){transition-delay:.2s}.stagger>.fade-in:nth-child(4){transition-delay:.3s}.lang-toggle{position:fixed;top:24px;left:24px;z-index:50;display:flex;align-items:center;padding:3px;border:1px solid var(--border);border-radius:999px;background:#ffffff05}.lang-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;cursor:pointer;padding:.4rem .75rem;border-radius:999px;font-family:inherit;font-size:.7rem;font-weight:400;letter-spacing:.06em;color:var(--text-muted);transition:color var(--t-duration-base) ease,background var(--t-duration-base) ease}.lang-option:hover{color:var(--text)}.lang-option[aria-pressed=true]{color:var(--bg);background:var(--text)}.views-counter{position:fixed;top:24px;right:24px;z-index:50;display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border:1px solid var(--border);border-radius:999px;background:#ffffff05;font-size:.75rem;font-weight:300;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.views-counter .views-count{display:inline-block;min-width:1.4em;color:var(--text);font-weight:400;font-variant-numeric:tabular-nums}.music-control{position:fixed;bottom:24px;right:24px;z-index:50;display:flex;align-items:center;gap:.75rem}.music-toggle{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:#ffffff05;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--t-duration-base) ease,border-color var(--t-duration-base) ease,background var(--t-duration-base) ease}.music-toggle:hover{color:var(--text);border-color:var(--border-strong)}.music-toggle{position:relative}.music-toggle svg{position:absolute;top:50%;left:50%;width:17px;height:17px;opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-8deg);transition:opacity var(--t-duration-base) var(--t-ease),transform var(--t-duration-base) var(--t-ease-spring)}.music-toggle[aria-pressed=false] .icon-sound-off,.music-toggle[aria-pressed=true] .icon-sound-on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}.music-volume{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:0;height:20px;background:transparent;cursor:pointer;opacity:0;pointer-events:none;transform:translate(6px);transition:width var(--t-duration-base) ease,opacity var(--t-duration-base) ease,transform var(--t-duration-base) ease}.music-control:hover .music-volume,.music-control:focus-within .music-volume{width:80px;opacity:1;pointer-events:auto;transform:translate(0)}.music-volume::-webkit-slider-runnable-track{height:1px;background:var(--border-strong)}.music-volume::-moz-range-track{height:1px;background:var(--border-strong)}.music-volume::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:9px;height:9px;margin-top:-4px;border-radius:50%;background:var(--text);transition:transform .2s ease}.music-volume::-moz-range-thumb{width:9px;height:9px;border:none;border-radius:50%;background:var(--text);transition:transform .2s ease}.music-volume:hover::-webkit-slider-thumb{transform:scale(1.2)}@media(max-width:720px){.project-grid{grid-template-columns:1fr}.project-card+.project-card{border-left:none;border-top:1px solid var(--border)}.socials{gap:1.5rem}.contact-discord svg{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade-in,.t-reveal-inner,.t-panel-reveal,.project-card,.project-card:before,.project-icon,.social-link,.social-link svg,.contact-discord,.contact-discord svg,.t-arrow,[data-tooltip]:before{transition:none!important}.fade-in,.t-reveal-inner{opacity:1;transform:none;filter:none}.t-panel-reveal{clip-path:inset(0 0 0 0)}.project-card{transform:none!important}.project-card:hover .project-icon{transform:none}.wordmark.t-shimmer-active:after{animation:none;opacity:0}.scroll-hint span{animation:none}}
