:root{--bg:#050505;--panel:#0b0d0c;--bg-elev:#101210;--acc:#3dffa2;--acc-cyan:#38e6f0;--acc-amber:#f5b942;--acc-violet:#a685ff;--line:#ffffff1a;--fg:#f2f5f3;--fg-2:#f2f5f394;--fg-3:#f2f5f357;--disp:"Geist Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, monospace;--ease:cubic-bezier(.16, 1, .3, 1);--maxw:1360px;--page:var(--acc)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--disp);font-variant-numeric:tabular-nums;width:100%;max-width:100%;min-height:100dvh;line-height:1.5;overflow-x:hidden}.v2-main{z-index:1;width:100%;max-width:100%;position:relative;overflow-x:hidden}body:after{content:"";z-index:90;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}::selection{background:color-mix(in srgb, var(--acc) 32%, transparent);color:var(--fg)}.ink{background:linear-gradient(100deg, var(--page) 0%, var(--page) 34%, color-mix(in srgb, var(--page) 40%, #fff) 50%, var(--page) 66%, var(--page) 100%);color:#0000;background-position:50% 0;background-size:260% 100%;background-clip:text}.kick{font-family:var(--mono);letter-spacing:.06em;color:var(--page);margin-bottom:1.1rem;font-size:.74rem;display:inline-block}.wrap{max-width:var(--maxw);width:100%;margin:0 auto;padding-inline:clamp(1.2rem,4vw,2.6rem)}.sprog{z-index:200;pointer-events:none;position:fixed;inset:0}.sprog i{background:linear-gradient(var(--acc), var(--acc-cyan));box-shadow:0 0 10px color-mix(in srgb, var(--acc) 60%, transparent);transition:box-shadow .5s var(--ease), filter .5s var(--ease);display:block;position:absolute}.sprog__tr{transform-origin:0;width:50%;height:3px;top:0;left:50%;transform:scaleX(0)}.sprog__tl{transform-origin:100%;width:50%;height:3px;top:0;left:0;transform:scaleX(0)}.sprog__r{transform-origin:top;width:3px;height:100%;top:0;right:0;transform:scaleY(0)}.sprog__l{transform-origin:top;width:3px;height:100%;top:0;left:0;transform:scaleY(0)}.sprog__br{transform-origin:100%;width:50%;height:3px;bottom:0;left:50%;transform:scaleX(0)}.sprog__bl{transform-origin:0;width:50%;height:3px;bottom:0;left:0;transform:scaleX(0)}.sprog.is-complete i{box-shadow:0 0 20px var(--acc), 0 0 7px var(--acc);filter:brightness(1.35)saturate(1.1)}.v2-field{z-index:0;pointer-events:none;opacity:.5;width:100%;height:100%;position:fixed;inset:0;mask-image:radial-gradient(130% 100% at 50% 26%,#000 52%,#0000 100%)}.nav{z-index:80;justify-content:space-between;align-items:center;padding:1.4rem clamp(1.2rem,4vw,2.6rem);display:flex;position:fixed;top:0;left:0;right:0}.nav__brand{letter-spacing:-.01em;transition:opacity .3s var(--ease);font-size:1rem;font-weight:600}.nav__right{align-items:center;gap:1.6rem;display:flex}.nav__links{font-family:var(--mono);gap:1.4rem;font-size:.78rem;display:flex}.nav__links a{opacity:.8;transition:opacity .3s var(--ease)}.nav__links a:hover,.nav__links a.is-active{opacity:1}.nav__burger{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:40px;height:40px;display:none;position:relative}.nav__burger span{background:var(--fg);width:22px;height:2px;transition:transform .4s var(--ease), opacity .3s var(--ease);display:block}.nav__burger[aria-expanded=true] span:first-child{transform:translateY(4px)rotate(45deg)}.nav__burger[aria-expanded=true] span:nth-child(2){transform:translateY(-4px)rotate(-45deg)}.navmenu{z-index:150;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(22px)saturate(1.3);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s var(--ease), visibility 0s linear .4s;flex-direction:column;justify-content:center;gap:2.4rem;padding:clamp(1.6rem,8vw,3rem);display:flex;position:fixed;inset:0}.navmenu.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .4s var(--ease), visibility 0s linear 0s}.navmenu__primary{flex-direction:column;gap:.6rem;display:flex}.navmenu__primary a{font-family:var(--disp);letter-spacing:-.03em;color:var(--fg);opacity:0;transition:transform .5s var(--ease), opacity .5s var(--ease), color .3s var(--ease);font-size:clamp(2.2rem,12vw,3.4rem);font-weight:600;line-height:1.05;transform:translateY(16px)}.navmenu__primary a:active{color:var(--page)}.navmenu.is-open .navmenu__primary a{opacity:1;transform:none}.navmenu.is-open .navmenu__primary a:first-child{transition-delay:60ms}.navmenu.is-open .navmenu__primary a:nth-child(2){transition-delay:.12s}.navmenu.is-open .navmenu__primary a:nth-child(3){transition-delay:.18s}.navmenu.is-open .navmenu__primary a:nth-child(4){transition-delay:.24s}.navmenu__projects{border-top:1px solid var(--line);gap:.5rem;padding-top:1.6rem;display:grid}.navmenu__label{font-family:var(--mono);color:var(--fg-2);letter-spacing:.08em;font-size:.72rem}.navmenu__projects a{align-items:baseline;gap:.8rem;padding:.55rem 0;display:flex}.navmenu__code{font-family:var(--mono);color:var(--card,var(--acc));min-width:6.5rem;font-size:.78rem}.navmenu__name{font-family:var(--disp);color:var(--fg);font-size:1.1rem;font-weight:500}.navmenu__v1{font-family:var(--mono);color:var(--fg-2);border-top:1px solid var(--line);transition:color .3s var(--ease);padding-top:1.3rem;font-size:.8rem}.navmenu__v1:hover{color:var(--acc)}.btn{isolation:isolate;font-family:var(--mono);border:1px solid var(--line);cursor:pointer;transition:transform .4s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .4s var(--ease);border-radius:6px;align-items:center;gap:.6rem;padding:.9rem 1.6rem;font-size:.85rem;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";z-index:2;pointer-events:none;transition:transform .7s var(--ease);background:linear-gradient(100deg,#0000 30%,#ffffff38 50%,#0000 70%);position:absolute;inset:0;transform:translate(-130%)skew(-16deg)}.btn:hover:after{transform:translate(130%)skew(-16deg)}.btn--sm{padding:.55rem 1.05rem;font-size:.76rem}.btn--fill{background:linear-gradient(135deg, color-mix(in srgb, var(--page) 78%, #fff), var(--page) 54%, color-mix(in srgb, var(--page) 72%, var(--acc-cyan)));color:#04140c;box-shadow:0 8px 24px -12px color-mix(in srgb, var(--page) 90%, transparent);border-color:#0000}.btn--fill:hover{box-shadow:0 13px 32px -10px color-mix(in srgb, var(--page) 95%, transparent), inset 0 0 0 1px #ffffff38}.btn--ghost{color:var(--fg);background:0 0}.btn--ghost:hover{border-color:color-mix(in srgb, var(--page) 70%, transparent);background:color-mix(in srgb, var(--page) 9%, transparent);box-shadow:0 0 22px -8px color-mix(in srgb, var(--page) 65%, transparent), inset 0 0 22px -16px var(--page)}.btn__a{transition:transform .4s var(--ease)}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}.btn:hover .btn__a{transform:translate(4px)}.foot{z-index:1;max-width:var(--maxw);border-top:1px solid var(--line);font-family:var(--mono);flex-wrap:wrap;align-items:baseline;gap:1.4rem;margin:0 auto;padding:2.4rem clamp(1.2rem,4vw,2.6rem) 3rem;font-size:.76rem;display:flex;position:relative}.foot__d{color:var(--fg-3)}[data-rise]{will-change:transform, opacity}@media (width<=900px){.nav__links,.nav__resume{display:none}.nav__burger{display:inline-flex}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{scroll-behavior:auto!important}.navmenu,.navmenu__primary a{transition:none}}
