@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-var.woff2) format("woff2-variations");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/switzer-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Switzer Fallback;src:local("Arial");size-adjust:96%;ascent-override:97%;descent-override:24%;line-gap-override:0%}:root{--bg: #0a0a0a;--surface: #0a0a0a;--text: #f2f2f2;--text-dim: #9a9a9a;--accent: #ccff00;--accent-2: #a78bfa;--font-display: "Space Grotesk", sans-serif;--font-body: "Switzer", "Switzer Fallback", sans-serif;--space: clamp(4rem, 10vh, 8rem);--pad-x: clamp(1.25rem, 5vw, 4rem);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--duration-fast: .16s;--duration-base: .25s;--duration-slow: .4s}*,*:before,*:after{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.65;letter-spacing:.005em;-webkit-font-smoothing:antialiased;overflow-x:clip}h1,h2,h3{font-family:var(--font-display);line-height:1.05;letter-spacing:-.02em}h1{font-size:clamp(2.75rem,9vw,7rem);font-weight:700}h2{font-size:clamp(2rem,5vw,3.5rem);margin-bottom:2rem}a{color:var(--text);text-decoration:none}.skip-link{position:absolute;top:1rem;left:1rem;z-index:30;padding:.6rem 1.2rem;background:var(--accent);color:var(--bg);font-family:var(--font-display);font-weight:600;border-radius:.4rem;transform:translateY(-4rem);opacity:0;transition:none}.skip-link:focus-visible{transform:none;opacity:1;outline-color:var(--bg)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.accent{color:var(--accent)}::selection{background:var(--accent-2);color:var(--bg)}.btn{display:inline-block;padding:.9em 1.8em;border:1px solid var(--accent);border-radius:999px;background:none;color:var(--accent);font-family:var(--font-display);font-size:1rem;font-weight:500;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:background var(--duration-base) var(--ease-out),color var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn:hover{background:var(--accent);color:var(--bg)}.btn:active{transform:scale(.97)}section{padding:var(--space) var(--pad-x);max-width:1200px;margin:0 auto}.cookie-banner{position:fixed;inset:auto 0 0 0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem var(--pad-x);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #1c1c1c}.cookie-banner p{margin:0;font-size:.85rem;color:var(--text-dim);max-width:60ch}.cookie-banner p a{display:inline-block;color:var(--text);text-decoration:underline;padding:.3rem 0;margin:-.3rem 0}.cookie-banner__actions{display:flex;align-items:center;gap:1rem;flex-shrink:0}.cookie-banner__decline{color:var(--text-dim);font-size:.85rem;background:none;border:none;cursor:pointer;padding:.4rem .2rem}.cookie-banner__decline:hover{color:var(--text)}.cookie-banner__accept{padding:.55em 1.4em;font-size:.85rem;cursor:pointer}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.info-card{position:fixed;z-index:50;max-width:300px;width:max-content;padding:1.1rem 1.3rem;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid #2a2a2a;border-left:3px solid var(--accent);border-radius:.9rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 14px 44px #0000008c;opacity:0;transform:translateY(8px) scale(.98);transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.info-card.is-open{opacity:1;transform:none}.info-card__title{font-family:var(--font-display);font-size:1.1rem;margin-bottom:.4rem;padding-right:1rem}.info-card__text{color:var(--text-dim);font-size:.9rem;line-height:1.5}.info-card__close{position:absolute;top:.45rem;right:.6rem;background:none;border:none;color:var(--text-dim);font-size:1.3rem;line-height:1;cursor:pointer;transition:color var(--duration-base) var(--ease-out)}.info-card__close:hover{color:var(--accent)}@media(max-width:700px){.info-card{max-width:min(300px,calc(100vw - 3rem))}}.skill-card{grid-column:1 / -1;overflow:hidden;margin-top:.35rem}.skill-card__inner{position:relative;padding:clamp(1.5rem,3vw,2.5rem);padding-right:clamp(3rem,5vw,4rem);border-radius:1rem;background:linear-gradient(180deg,color-mix(in srgb,var(--brand, var(--accent)) 12%,transparent),transparent 55%),var(--surface);border:1px solid color-mix(in srgb,var(--brand, var(--accent)) 22%,#1e1e1e);box-shadow:0 18px 50px #00000073}.skill-card__title{font-family:var(--font-display);font-size:clamp(1.75rem,3.4vw,2.75rem);font-weight:700;letter-spacing:-.035em;line-height:1.05;text-wrap:balance}.skill-card__badge{display:inline-block;margin-top:.85rem;padding:.25rem .7rem;border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);border-radius:999px;color:var(--accent-2);font-family:var(--font-display);font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.skill-card__badge[hidden]{display:none}.skill-card__text{max-width:46ch;margin-top:1.1rem;color:var(--text-dim);font-size:1.0625rem;line-height:1.6}.skill-card__bullets{list-style:none;margin-top:1.6rem;padding:0;columns:2;column-gap:2.5rem;color:var(--text);font-size:.95rem;line-height:1.55}.skill-card__bullets>li{position:relative;break-inside:avoid;padding-left:1.1rem;margin-bottom:.55rem}.skill-card__bullets>li:before{content:"";position:absolute;left:0;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--brand, var(--accent))}.skill-card__bullets ul{list-style:none;margin:.4rem 0 .7rem;padding:0;color:var(--text-dim);font-size:.875rem}.skill-card__bullets ul li{position:relative;padding-left:1rem;margin-bottom:.25rem}.skill-card__bullets ul li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:1px;background:currentColor;opacity:.6}.skill-card__close{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:2.25rem;height:2.25rem;background:none;border:1px solid #262626;border-radius:50%;color:var(--text-dim);cursor:pointer;transition:color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.skill-card__close:hover,.skill-card__close:focus-visible{color:var(--text);border-color:var(--brand, var(--accent));transform:rotate(90deg)}@media(max-width:560px){.skill-card__bullets{columns:1}}.nav{position:fixed;inset:0 0 auto 0;display:flex;justify-content:space-between;align-items:center;padding:1rem var(--pad-x);background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.nav-logo{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--accent);padding:0 .25rem;margin:0 -.25rem}.nav nav{display:flex;gap:1.5rem}.nav nav a{color:var(--text-dim);font-size:.95rem;transition:color .2s}.nav nav a:hover,.nav nav a.active{color:var(--accent)}.scroll-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left}.hero{min-height:100svh;max-width:none;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1.5rem;position:relative;overflow:hidden}.hero h1 .hero-line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}.hero h1 .hero-line-inner{display:block}#hero-canvas{position:absolute;top:0;right:0;width:50%;height:100%;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 24%);mask-image:linear-gradient(90deg,transparent 0%,#000 24%)}#hero-canvas canvas{width:100%;height:100%;display:block}.hero-objects button{position:absolute;top:0;left:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.hero-objects button:focus{top:5.5rem;left:var(--pad-x);width:auto;height:auto;max-width:calc(100vw - 2 * var(--pad-x));overflow:visible;clip:auto;white-space:normal;z-index:15;padding:.5em .9em;background:var(--bg);color:var(--text);border:1px solid var(--accent);border-radius:8px;font-family:var(--font-body);font-size:.85rem;cursor:pointer}.hero-objects button:disabled{cursor:default}@media(max-width:700px),(max-width:1024px)and (orientation:portrait){#hero-canvas{order:1;position:relative;top:auto;right:auto;width:100%;height:46svh;margin-top:2.5rem;-webkit-mask-image:none;mask-image:none}.hero{padding-bottom:2.5rem}}.hero-hint{position:absolute;bottom:calc(2.2rem + var(--cookie-banner-h, 0px));right:25%;transform:translate(50%);color:var(--text-dim);font-family:var(--font-display);font-size:.85rem;letter-spacing:.04em;opacity:.75;transition:opacity .4s}.hero-hint.is-hidden{opacity:0;pointer-events:none}@media(max-width:700px),(max-width:1024px)and (orientation:portrait){.hero-hint{order:2;position:static;display:block;width:100%;margin-top:.9rem;text-align:center;transform:none}}@media(min-width:701px)and (max-width:1024px)and (orientation:portrait){.hero h1{font-size:clamp(2.75rem,6.4vw,4.5rem)}.hero-subtitle,.hero-tagline{max-width:40rem}.hero{padding-block:5.5rem 2rem}#hero-canvas{flex:1 1 0;height:auto;min-height:14rem;margin-top:1rem;overflow:hidden}}@media(min-width:701px)and (max-width:1366px)and (orientation:landscape){.hero h1{font-size:clamp(2.5rem,6.2vw,4.5rem)}.hero-subtitle,.hero-tagline{max-width:26rem}}.hero-kicker{color:var(--accent);font-family:var(--font-display);font-size:1.1rem}.hero-subtitle{color:var(--text);font-family:var(--font-display);font-weight:500;font-size:1.3rem;max-width:34rem;margin-top:.5rem}.hero-tagline{color:var(--text-dim);max-width:34rem;font-size:1.15rem;margin-top:.35rem}.marquee{overflow:hidden;border-top:1px solid #1c1c1c;border-bottom:1px solid #1c1c1c;padding:1.1rem 0}.marquee-track{display:flex;width:max-content;animation:marquee 28s linear infinite}.marquee-track span{display:flex;align-items:center;white-space:nowrap;font-family:var(--font-display);font-size:clamp(1.4rem,3.5vw,2.4rem);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--accent) 70%,transparent)}.marquee-track span:nth-child(2n){-webkit-text-stroke-color:color-mix(in srgb,var(--accent-2) 75%,transparent)}.marquee-track span:after{content:"•";margin:0 1.4rem;-webkit-text-stroke-color:color-mix(in srgb,var(--text-dim) 60%,transparent)}@keyframes marquee{to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}.skills-hint,.skills-invite__line{animation:none;background:none;color:var(--text-dim)}.skills.is-focused .skills-grid>li:not(.is-active){filter:none}.hw-line--power-pulse,.hw-line--lan-pulse,.hw-line--ftth-pulse{animation:none;opacity:0}.skills-grid>li:hover,.skills-grid li:focus-visible,.skills-grid>li.is-active,.card:hover{transform:none}.skills-modal,.skills-modal .skill-card,.skills-invite{transition:none}}.about-grid{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:center}.about-grid p{font-size:1.2rem;color:var(--text-dim)}.about-grid p strong{color:color-mix(in srgb,var(--text) 50%,var(--text-dim));font-weight:600}.about-photo{width:100%;height:auto;aspect-ratio:1;border-radius:1rem;object-fit:cover;display:block;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-2) 20%,var(--surface)),color-mix(in srgb,var(--accent) 25%,var(--surface)))}.skill-group+.skill-group{margin-top:clamp(2.5rem,4vw,3.5rem)}.skill-group>h3{display:flex;align-items:baseline;gap:1.25rem;margin-bottom:1.25rem;font-family:var(--font-display);font-size:clamp(1.25rem,2.2vw,1.75rem);font-weight:500;letter-spacing:-.03em;color:var(--text);transition:opacity .4s ease}.skill-group>h3:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#2a2a2a,transparent)}.skills-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.75rem}.skills-grid>li{--tile-wash: 6%;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:1.15rem 1.15rem 1rem;background:linear-gradient(0deg,color-mix(in srgb,var(--brand, var(--accent)) var(--tile-wash),transparent),transparent 70%),var(--surface);border:1px solid #1e1e1e;border-radius:.9rem;cursor:pointer;transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out),background var(--duration-slow) var(--ease-out),opacity var(--duration-slow) var(--ease-out),filter var(--duration-slow) var(--ease-out)}.skills-grid>li:hover,.skills-grid>li:focus-visible{--tile-wash: 14%;border-color:color-mix(in srgb,var(--brand, var(--accent)) 45%,#1e1e1e)}.skills-grid li:focus-visible{transform:translateY(-3px)}@media(hover:hover)and (pointer:fine){.skills-grid>li:hover{transform:translateY(-3px)}}.skills-grid>li:active{transform:scale(.98)}.skills-grid li:focus-visible{outline:2px solid var(--brand, var(--accent));outline-offset:3px}.skills-grid>li.is-active{--tile-wash: 22%;border-color:color-mix(in srgb,var(--brand, var(--accent)) 70%,transparent);transform:translateY(-3px)}.skill-icon{width:34px;height:34px;object-fit:contain;transition:transform var(--duration-base) var(--ease-out)}.skills-grid>li.is-active .skill-icon{transform:scale(1.08)}@media(hover:hover)and (pointer:fine){.skills-grid>li:hover .skill-icon{transform:scale(1.08)}}.skill-label{font-family:var(--font-display);font-size:.9375rem;font-weight:500;letter-spacing:-.01em;line-height:1.25;text-wrap:balance}.skills.is-focused .skills-grid>li:not(.is-active){opacity:.32;filter:blur(2px)}.skills.is-focused .skill-group:not(.has-open-card)>h3{opacity:.32}.skills-hint{margin-bottom:2.5rem;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:600;letter-spacing:-.01em;transition:opacity .4s ease;background:linear-gradient(90deg,var(--text-dim) 0%,var(--text-dim) 40%,var(--accent) 50%,var(--accent-2) 60%,var(--text-dim) 70%,var(--text-dim) 100%);background-size:300% 100%;background-position:110% center;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hint-shine 3s linear infinite}.skills.is-focused .skills-hint{opacity:0}#skill-card-slot{display:grid}#skill-drawer.is-live{position:relative;aspect-ratio:3 / 2;max-height:76vh;margin-bottom:-5rem;touch-action:pan-y;cursor:grab}#skill-drawer.is-live:has(.drawer__scene.is-overlay){margin-bottom:-3rem}#skill-drawer.is-live:active{cursor:grabbing}#skill-drawer.is-live .drawer__scene{position:absolute;top:0;right:0;bottom:0;left:0}#skill-drawer.is-live .drawer__scene canvas{display:block;width:100%;height:100%;mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.5) 5%,#000 13%,#000 70%,rgba(0,0,0,.45) 88%,transparent 100%),linear-gradient(to right,#000 calc(62% + var(--slide, 0px)),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.5) 5%,#000 13%,#000 70%,rgba(0,0,0,.45) 88%,transparent 100%),linear-gradient(to right,#000 calc(62% + var(--slide, 0px)),transparent 100%);mask-composite:intersect;-webkit-mask-composite:source-in}#skill-drawer.is-live .drawer__hint{position:absolute;top:20%;left:4%;width:48%;max-width:32rem;margin:0;transform:translateY(-50%);pointer-events:none;opacity:0;transition:opacity .5s ease;font-family:var(--font-display);font-size:clamp(1.75rem,3.6vw,3rem);font-weight:500;line-height:1.05;letter-spacing:-.03em}#skill-drawer.is-live .drawer__hint span{display:block}#skill-drawer.is-live .drawer__hint span:first-child{color:var(--text-dim);animation:hint-nudge 3.6s ease-in-out infinite}#skill-drawer.is-live .drawer__hint span+span{background:linear-gradient(90deg,var(--text-dim) 0%,var(--text-dim) 40%,var(--accent) 50%,var(--accent-2) 60%,var(--text-dim) 70%,var(--text-dim) 100%);background-size:300% 100%;background-position:110% center;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hint-shine 4.5s linear infinite}@keyframes hint-nudge{0%,60%,to{transform:translate(0)}76%{transform:translate(.55rem)}90%{transform:translate(-.1rem)}}#skill-drawer.is-live .drawer__hint-arrow{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--text-dim);pointer-events:none;opacity:0;transition:opacity .5s ease}#skill-drawer.is-live .drawer__scene.is-shut .drawer__hint,#skill-drawer.is-live .drawer__scene.is-shut .drawer__hint-arrow{opacity:1}#skill-drawer.is-live .drawer__css{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.set-player{--set-played: var(--accent-2);--set-rest: rgba(242, 242, 242, .16);--played: 0%}.set-player__invite{margin:0 0 1.2rem;padding-left:.2rem;font-family:var(--font-display);font-size:clamp(.72rem,1.05vw,.88rem);font-weight:400;line-height:1.2;letter-spacing:-.01em;color:var(--text-dim);white-space:nowrap}.set-player__panel{display:flex;align-items:center;gap:.85rem;padding:.7rem .9rem;border:1px solid #1e1e1e;border-radius:.9rem;background:color-mix(in srgb,var(--bg) 92%,transparent)}.skills .set-player{max-width:34rem;margin:2.5rem auto 0}.set-player__disc{position:relative;flex:0 0 auto;width:3.3rem;height:3.3rem;padding:0;border:0;border-radius:50%;background:none;color:var(--text);cursor:pointer}.set-player__vinyl{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from 0deg,#ffffff1c,#fff0 25%,#ffffff12,#fff0 75%,#ffffff1c),repeating-radial-gradient(circle at 50% 50%,#0e0e0e 0,#0e0e0e 2px,#171717 2px,#171717 3px);animation:vinyl-spin 1.8s linear infinite;animation-play-state:paused}.set-player.is-playing .set-player__vinyl{animation-play-state:running}@keyframes vinyl-spin{to{transform:rotate(360deg)}}.set-player__label{position:absolute;top:26%;right:26%;bottom:26%;left:26%;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--set-played)}.set-player__label:after{content:"";position:absolute;width:.28rem;height:.28rem;border-radius:50%;background:var(--bg)}.set-player__mark{width:100%;height:100%;object-fit:contain;padding:12%}.set-player__glyph{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:1.4rem;height:1.4rem;filter:drop-shadow(0 0 .4rem rgba(0,0,0,.9));transition:opacity var(--duration-base) var(--ease-out)}.set-player.is-playing .set-player__glyph{opacity:0}.set-player__disc:hover .set-player__glyph,.set-player__disc:focus-visible .set-player__glyph{opacity:1}.set-player__body{flex:1 1 auto;min-width:0}.set-player__title{margin:0;font-family:var(--font-display);font-size:.95rem;font-weight:500;letter-spacing:-.01em}.set-player__note{margin:.15rem 0 0;font-size:.72rem;color:#e57373}.set-player__wave{position:relative;margin-top:.35rem;height:2.1rem;cursor:pointer;touch-action:none}.set-player__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.set-player__canvas--played{clip-path:inset(0 calc(100% - var(--played)) 0 0)}.set-player__head{position:absolute;top:0;bottom:0;left:var(--played);width:1px;background:var(--text);opacity:.55}.set-player__foot{display:flex;align-items:center;gap:.4rem;margin:.45rem 0 0;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text-dim)}.set-player__total:before{content:"/ "}.set-player__next{margin-left:auto;padding:.1rem;border:0;background:none;color:var(--text-dim);cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}.set-player__next:hover{color:var(--set-played)}.set-player__next-glyph{display:block;width:1rem;height:1rem}.set-player__controls{display:flex;align-items:center;gap:.35rem;margin:.5rem 0 0}.set-player__skip,.set-player__mini{padding:.25rem;border:0;background:none;color:var(--text-dim);cursor:pointer;transition:color var(--duration-fast) var(--ease-out)}.set-player__skip:hover,.set-player__mini:hover{color:var(--set-played)}.set-player__skip-glyph,.set-player__mini-glyph{display:block;width:1rem;height:1rem}.set-player__volume{margin-left:auto;width:4.5rem;accent-color:var(--set-played);cursor:pointer}.set-player__disc:focus-visible,.set-player__wave:focus-visible,.set-player__next:focus-visible,.set-player__skip:focus-visible,.set-player__mini:focus-visible,.set-player__volume:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){.set-player__vinyl{animation:none}}#skill-drawer.is-live .set-player{position:absolute;right:.8%;bottom:3.5rem;z-index:2;width:min(19rem,30%);margin:0;cursor:auto;opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s linear .45s}#skill-drawer.is-live .set-player__invite{padding:0 .2rem;text-align:center}#skill-drawer.is-live .drawer__scene:not(.is-shut)~.set-player,#skill-drawer.is-live .set-player.is-playing{opacity:1;visibility:visible;transition:opacity .7s var(--ease-out) var(--set-delay, 5s),visibility 0s linear var(--set-delay, 5s)}#skill-drawer.is-live .set-player.is-playing{--set-delay: 0s}#skill-drawer.is-live .drawer__scene.is-overlay~.set-player{bottom:.4rem;width:min(17rem,40%)}#skill-drawer.is-live .drawer__scene.is-overlay.has-open~.set-player:not(.is-playing){opacity:.45;filter:blur(3px);pointer-events:none;transition:opacity .35s var(--ease-out),filter .35s var(--ease-out)}#skill-drawer.is-live .drawer__scene.is-overlay.has-opened:not(.has-open)~.set-player:not(.is-playing){transition:opacity .35s var(--ease-out),filter .35s var(--ease-out),visibility 0s linear}#skill-drawer.is-live .drawer__scene.is-overlay canvas{transition:opacity .4s var(--ease-out),filter .4s var(--ease-out)}#skill-drawer.is-live .drawer__scene.is-overlay.has-open .drawer__label,#skill-drawer.is-live .drawer__scene.is-overlay.has-open .drawer__rule{visibility:hidden}#skill-drawer.is-live .drawer__scene.is-overlay.has-open canvas{opacity:.82;filter:blur(3px)}@media(hover:hover)and (pointer:fine){#skill-drawer.is-live .drawer__scene.is-overlay.has-open .drawer__css .folder:not(.is-open) .folder__sheet{filter:blur(3px);transition:transform .2s var(--ease-out),border-color var(--duration-base) var(--ease-out),filter .4s var(--ease-out)}}#skill-drawer.is-live .drawer__css .folder:before{content:"";position:absolute;inset:auto 0 0;height:3.4rem;pointer-events:auto}#skill-drawer.is-live .drawer__css .folder.is-culled:before{pointer-events:none}#skill-drawer.is-live .drawer__css .folder.is-open .folder__sheet{pointer-events:auto}#skill-drawer.is-live .drawer__strip{display:none}.folder{position:relative;width:250px;height:320px;overflow:hidden;cursor:pointer;list-style:none;box-sizing:border-box}.folder{mask-image:linear-gradient(to top,transparent 0,#000 .45rem);-webkit-mask-image:linear-gradient(to top,transparent 0,#000 .45rem)}.folder__sheet{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#0b0b0b;border:1px solid color-mix(in srgb,var(--brand, var(--accent)) 32%,#232323);border-top:2px solid var(--brand, var(--accent));border-radius:.35rem .35rem .2rem .2rem;box-shadow:0 12px 26px -14px #000000e6;transform:translateY(calc(100% - 3.4rem));transition:transform .2s var(--ease-out),border-color var(--duration-base) var(--ease-out)}.folder__close{position:absolute;top:.6rem;right:.6rem;z-index:2;display:grid;place-items:center;width:1.6rem;height:1.6rem;background:#0b0b0b;border:1px solid #262626;border-radius:50%;color:var(--text-dim);cursor:pointer;opacity:0;transform:scale(.94);pointer-events:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out),color var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.folder.is-landed .folder__close{opacity:1;transform:scale(1);pointer-events:auto;transition-delay:0s}.folder__close svg{transition:transform var(--duration-base) var(--ease-out)}.folder__close:focus-visible{color:var(--text);border-color:var(--brand, var(--accent))}.folder__close:focus-visible svg{transform:rotate(90deg)}@media(hover:hover)and (pointer:fine){.folder__close:hover{color:var(--text);border-color:var(--brand, var(--accent))}.folder__close:hover svg{transform:rotate(90deg)}}@media(hover:hover)and (pointer:fine){.folder:hover .folder__sheet{transform:translateY(calc(100% - 5.4rem))}}.folder:focus-visible{outline:none}.folder:focus-visible .folder__sheet{border-color:var(--brand, var(--accent));box-shadow:0 0 0 2px var(--brand, var(--accent))}.folder.is-open .folder__sheet,.folder.is-open:hover .folder__sheet{transform:none}.folder.is-open{mask-image:none;-webkit-mask-image:none}.folder.is-landed{border:1px solid color-mix(in srgb,var(--brand, var(--accent)) 32%,#232323);border-top:2px solid var(--brand, var(--accent));border-radius:.35rem .35rem .2rem .2rem}.folder.is-landed .folder__sheet,.folder.is-landed:focus-visible .folder__sheet{border:0}.folder__tab{display:flex;align-items:center;gap:.6rem;padding:.75rem .85rem;background:linear-gradient(180deg,color-mix(in srgb,var(--brand, var(--accent)) 26%,transparent),transparent)}.folder__tab .skill-icon{width:24px;height:24px;flex-shrink:0}.folder__tab .skill-label{font-family:var(--font-display);font-size:.8125rem;font-weight:500;line-height:1.15;letter-spacing:-.01em}.folder__body{padding:0 .85rem .9rem}.folder__badge{display:inline-block;margin-bottom:.5rem;padding:.15rem .5rem;font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);border-radius:999px}.folder__text{font-size:.75rem;line-height:1.45;color:var(--text-dim)}.folder__bullets{list-style:none;padding:0;margin:.6rem 0 0;font-size:.75rem;line-height:1.4}.folder__bullets>li{position:relative;padding-left:.85rem;margin-bottom:.28rem}.folder__bullets>li:before{content:"";position:absolute;left:0;top:.55em;width:4px;height:4px;border-radius:50%;background:var(--brand, var(--accent))}.folder__bullets ul{list-style:none;padding:.25rem 0 .15rem .15rem;margin:0;color:var(--text-dim)}.folder__bullets ul li:before{background:color-mix(in srgb,var(--brand, var(--accent)) 55%,transparent)}@media(prefers-reduced-motion:reduce){.folder__sheet,.folder__close{transition-duration:.01ms;transition-delay:0s}}.drawer__label{width:0;height:0}.drawer__label span{position:absolute;right:.3rem;bottom:.3rem;white-space:nowrap;font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);opacity:.7}.drawer__rule{width:100px;height:2px;background:color-mix(in srgb,var(--text) 70%,transparent)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.card{background:var(--surface);border:1px solid #222;border-radius:1rem;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-fast) var(--ease-out);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(280px circle at var(--mx, 50%) var(--my, 50%),color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}.card:hover:before{opacity:1}.card:hover{border-color:var(--accent)}@media(hover:hover)and (pointer:fine){.card:hover{transform:translateY(-4px)}}.card:active{transform:scale(.99)}.card-thumb{width:100%;height:auto;aspect-ratio:16 / 10;border-radius:.5rem;background:linear-gradient(135deg,#1d1d1d,#101010);object-fit:cover;display:block}.card-thumb--soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:1px dashed color-mix(in srgb,var(--text-dim) 40%,transparent);background:color-mix(in srgb,var(--text) 4%,var(--bg));color:var(--text-dim);font-size:.85rem}.card-thumb--soon svg{width:28px;height:28px}.card p{color:var(--text-dim);font-size:.95rem}.card-links{display:flex;gap:1rem;margin-top:auto}.card-links a{color:var(--accent);font-size:.9rem}.card-links a:hover{text-decoration:underline}.card-links a:only-child:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit}.contact{text-align:center}.contact p{color:var(--text-dim);margin-bottom:2rem}.contact-form{display:flex;flex-direction:column;gap:1.25rem;max-width:28rem;margin:0 auto;text-align:left}.contact-field{display:flex;flex-direction:column;gap:.4rem}.contact-field label{color:var(--text-dim);font-size:.85rem}.contact-field input,.contact-field textarea{background:none;border:1px solid #1c1c1c;border-radius:.4rem;padding:.7em .9em;color:var(--text);font-family:var(--font-body);font-size:1rem;resize:vertical}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--accent)}.contact-form .btn{align-self:center}.contact-status{min-height:1.2em;color:var(--text-dim);font-size:.9rem;text-align:center}.contact-links{display:flex;justify-content:center;gap:1.5rem;margin-top:2rem}.contact-links a{color:var(--text-dim)}.contact-links a:hover{color:var(--accent)}.page-hero{padding-top:calc(var(--space) + 4rem)}.homelab-page #project,.homelab-page #description,.homelab-page #hardware,.homelab-page #services{padding-bottom:calc(var(--space) * .4)}.page-hero h1{font-size:clamp(2.5rem,7vw,5rem)}.project-meta{color:var(--text-dim);font-family:var(--font-display);margin-top:1rem}.project-cover{width:100%;aspect-ratio:21 / 9;object-fit:cover;border-radius:1rem;margin-top:3rem;display:block}.project-description p{font-size:1.2rem;color:var(--text-dim);max-width:44rem}.project-description-text p strong{color:color-mix(in srgb,var(--text) 50%,var(--text-dim));font-weight:600}.project-description p+p{margin-top:1.5rem}.project-description-grid{display:grid;grid-template-columns:2fr 3fr;gap:3rem;align-items:start}.project-description-text,.project-description-photos{min-width:0}.project-description-photos{display:flex;flex-direction:column;gap:2rem}.project-photo-row{display:flex;align-items:flex-start;gap:1rem}.project-photo{flex:1;min-width:0;height:auto;aspect-ratio:3 / 4;object-fit:cover;border-radius:1rem;display:block}p.project-specs__kicker{color:var(--accent);font-family:var(--font-display);font-size:.95rem;margin-bottom:1rem}.project-specs__list{display:grid;gap:.85rem}.project-specs__list>div{display:grid;grid-template-columns:7rem 1fr;gap:1rem}.project-specs__list dt{color:var(--text-dim);font-size:.85rem}.project-specs__list dd{margin:0;color:var(--text);font-size:.95rem}.project-specs__credit{margin-top:1.5rem;font-size:.85rem;color:var(--text-dim)}.project-specs__credit a{color:var(--text-dim);transition:color .2s}.project-specs__credit a:hover{color:var(--accent)}.project-specs__credit a:before{content:"↗ ";color:var(--accent-2)}.project-video video{width:100%;height:auto;border-radius:1rem;display:block}.gallery{columns:280px 3;gap:1rem}.gallery img{width:100%;height:auto;border-radius:.75rem;margin-bottom:1rem;display:block}.gallery.is-observed img{opacity:0;transform:translateY(28px);transition:opacity .6s ease-out,transform .6s ease-out}.gallery.is-observed img.is-visible{opacity:1;transform:none}.featured-links{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.featured-links a{color:var(--text-dim);transition:color .2s}.featured-links a:hover{color:var(--accent)}.featured-links a:before{content:"↗ ";color:var(--accent-2)}.project-back{text-align:center}.homelab-diagram{width:fit-content;max-width:100%}.homelab-services-section{max-width:calc(472px + 3.5rem + 28rem + 2 * var(--pad-x))}.homelab-services-section .section-hint{margin-bottom:2.5rem;font-size:clamp(1.1rem,2vw,1.35rem);font-weight:500;letter-spacing:-.01em;background:linear-gradient(90deg,var(--text-dim) 0%,var(--text-dim) 40%,var(--accent) 50%,var(--accent-2) 60%,var(--text-dim) 70%,var(--text-dim) 100%);background-size:300% 100%;background-position:110% center;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hint-shine 3s linear infinite}@keyframes hint-shine{0%{background-position:110% center}to{background-position:10% center}}@media(prefers-reduced-motion:reduce){.homelab-services-section .section-hint{animation:none;background:none;color:var(--text-dim)}}.hd-tree{position:relative;display:flex;align-items:flex-start;--hd-rule: color-mix(in srgb, var(--text-dim) 50%, transparent);--hd-stub: .78rem;--hd-branch-pad: .9rem;--hd-hub-size: 8.5rem;--hd-gap: 3.5rem;--hd-leaf-h: 1.95rem;--hd-leaf-icon: 23px;--hd-card-pad: 1.5rem;--hd-card-icon: 36px;--hd-hub-icon: 36px}.hd-hub{position:relative;flex:none;width:var(--hd-hub-size);height:var(--hd-hub-size);margin-right:var(--hd-gap);border:1px solid var(--text);border-radius:50%}.hd-hub:after{content:"";position:absolute;left:100%;top:50%;width:var(--hd-gap);border-top:1px solid var(--hd-rule)}.hd-hub__button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;width:100%;height:100%;border-radius:50%;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--text)}.hd-hub .hd-icon{width:var(--hd-hub-icon);height:var(--hd-hub-icon)}.hd-branches,.hd-leaves{list-style:none;margin:0;padding:0}.hd-branch{position:relative;padding:var(--hd-branch-pad) 0 var(--hd-branch-pad) 2.25rem;border-left:1px solid var(--hd-rule)}.hd-branch:before{content:"";position:absolute;left:0;top:calc(var(--hd-branch-pad) + var(--hd-stub));width:1.6rem;border-top:1px solid var(--hd-rule)}.hd-branch:first-of-type,.hd-branch:last-of-type{border-left-color:transparent}.hd-branch:first-of-type:after,.hd-branch:last-of-type:after{content:"";position:absolute;left:-1px;border-left:1px solid var(--hd-rule)}.hd-branch:first-of-type:after{top:calc(var(--hd-branch-pad) + var(--hd-stub));bottom:0}.hd-branch:last-of-type:after{top:0;height:calc(var(--hd-branch-pad) + var(--hd-stub))}.hd-branch__label{font-family:var(--font-display);font-size:1.3rem;font-weight:500;line-height:1.3;letter-spacing:-.01em;color:var(--text)}.hd-leaves{margin-top:.5rem}.hd-leaf{position:relative;padding-left:1.6rem;border-left:1px solid var(--hd-rule)}.hd-leaf__button{display:flex;align-items:center;gap:.75rem;min-height:var(--hd-leaf-h);padding-right:.4rem;font-size:1rem;color:var(--text-dim)}.hd-leaf:before{content:"";position:absolute;left:0;top:50%;width:1.1rem;border-top:1px solid var(--hd-rule)}.hd-leaf:last-of-type{border-left-color:transparent}.hd-leaf:last-of-type:after{content:"";position:absolute;left:-1px;top:0;height:50%;border-left:1px solid var(--hd-rule)}.hd-hub__button,.hd-leaf__button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:none;font:inherit;text-align:left;cursor:pointer;transition:color .2s ease,opacity .2s ease}.hd-hub__button:disabled,.hd-leaf__button:disabled{cursor:default}.hd-leaf__button:hover:not(:disabled),.hd-leaf__button[aria-expanded=true]{color:var(--text)}.hd-tree.is-focused .hd-leaf__button:not([aria-expanded=true]) .hd-icon,.hd-tree.is-focused .hd-hub__button:not([aria-expanded=true]) .hd-icon{opacity:.4}.hd-tree.is-focused .hd-leaf__button:not([aria-expanded=true]) .hd-row-label,.hd-tree.is-focused .hd-hub__button:not([aria-expanded=true]) .hd-row-label{color:color-mix(in srgb,var(--text-dim) 83%,var(--bg))}.hd-hub__button[aria-expanded=true]{color:var(--text)}.hd-hub:has(.hd-hub__button[aria-expanded=true]):after{border-top-color:var(--accent)}.hd-branch:has(.hd-leaf__button[aria-expanded=true]){border-left-color:var(--accent)}.hd-branch:has(.hd-leaf__button[aria-expanded=true]):before{border-top-color:var(--accent)}.hd-leaf:has(.hd-leaf__button[aria-expanded=true]){border-left-color:var(--accent)}.hd-leaf:has(.hd-leaf__button[aria-expanded=true]):before{border-top-color:var(--accent)}.hd-icon{flex:none;width:var(--hd-leaf-icon);height:var(--hd-leaf-icon);object-fit:contain}.hd-card{position:relative;max-width:32rem;margin:.75rem 0 .35rem;overflow:hidden}.hd-card__inner{position:relative;padding:var(--hd-card-pad) calc(var(--hd-card-pad) + .1rem) calc(var(--hd-card-pad) + .15rem);border:1px solid color-mix(in srgb,var(--text-dim) 30%,transparent);border-radius:.6rem;background:color-mix(in srgb,var(--text) 4%,var(--bg))}.hd-card__head{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding-right:1.75rem}.hd-card__head .hd-icon{width:var(--hd-card-icon);height:var(--hd-card-icon)}.hd-card__title{font-family:var(--font-display);font-size:1.3rem;font-weight:500;letter-spacing:-.01em;color:var(--text)}.hd-card__text{font-size:1rem;line-height:1.65;color:var(--text-dim)}.hd-card__close{position:absolute;top:.6rem;right:.6rem;display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;border:0;border-radius:.35rem;background:none;color:var(--text-dim);cursor:pointer;transition:color .2s ease}.hd-card__close:hover{color:var(--text)}.hd-card__close svg{width:14px;height:14px}@media(min-width:1200px){.hd-tree{align-items:center}.hd-tree.is-focused{padding-bottom:5rem}.hd-card{position:absolute;left:calc(100% + var(--hd-gap));top:auto;width:28rem;margin:calc(-1 * (var(--hd-leaf-h) / 2 + var(--hd-card-pad) + var(--hd-card-icon) / 2)) 0 0}}.homelab-hardware-scroll{overflow-x:auto;padding-bottom:.75rem;scrollbar-color:color-mix(in srgb,var(--accent-2) 55%,transparent) transparent;scrollbar-width:thin}#homelab-hardware{min-width:45rem;aspect-ratio:1000 / 525}@media(max-width:700px),(max-width:1024px)and (orientation:portrait){#homelab-hardware{min-width:0;max-width:26rem;aspect-ratio:700 / 1025}}.homelab-hardware-scroll::-webkit-scrollbar{height:6px}.homelab-hardware-scroll::-webkit-scrollbar-track{background:transparent}.homelab-hardware-scroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent-2) 55%,transparent);border-radius:999px}.homelab-hardware{--hw-lan: #22c3d1;position:relative;min-width:45rem;aspect-ratio:1000 / 525;margin:0 auto}.homelab-hardware.is-stacked{min-width:0;max-width:26rem;aspect-ratio:700 / 1025}.homelab-hardware.is-stacked .hw-label{gap:.2rem;font-size:.52rem;max-width:4.5rem}.homelab-hardware.is-stacked .hw-label svg{width:1.4rem;height:1.4rem;padding:.45rem}.homelab-hardware.is-stacked .hw-label--icon{transform:translate(-50%,-1.15rem)}@media(max-width:700px){.homelab-hardware.is-stacked .hw-label{max-width:3.9rem}.homelab-hardware.is-stacked .hw-label svg{padding:.32rem}.homelab-hardware.is-stacked .hw-label--icon{transform:translate(-50%,-1.02rem)}}.homelab-hardware.is-stacked .hw-label--room{font-size:.68rem;padding:.22rem .55rem}.homelab-hardware>svg,.homelab-hardware__labels{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.hw-grid-line{fill:none;stroke:#2a2a2a;stroke-width:1;opacity:.6}.hw-grid-mask{fill:var(--bg)}.hw-room{fill:color-mix(in srgb,#2a2a2a 12%,transparent);stroke:#2a2a2a;stroke-width:1.5}.hw-room--accent{fill:color-mix(in srgb,var(--accent-2) 5%,transparent);stroke:color-mix(in srgb,var(--accent-2) 55%,#2a2a2a)}.hw-room-bracket{fill:none;stroke:var(--text-dim);stroke-width:3;stroke-linecap:square}.hw-room-bracket--accent{stroke:var(--accent-2)}.hw-group{fill:color-mix(in srgb,var(--accent) 6%,transparent);stroke:var(--accent);stroke-width:1.5}.hw-node-strip{fill:color-mix(in srgb,var(--text) 15%,var(--bg));stroke:var(--text-dim);stroke-width:1}.hw-node-socket{fill:var(--accent)}.hw-line{fill:none}@keyframes hd-travel{to{stroke-dashoffset:-208}}.hw-line--power{stroke:var(--accent);stroke-width:2;stroke-dasharray:6 6;opacity:.6}.hw-line--power-pulse{stroke:var(--accent);stroke-width:2;stroke-dasharray:4 30;animation:hd-travel 2.6s linear infinite}.hw-line--lan{stroke:var(--hw-lan);stroke-width:1.5;opacity:.55}.hw-line--lan-pulse{stroke:var(--hw-lan);stroke-width:2;stroke-dasharray:6 40;animation:hd-travel 1.6s linear infinite}.hw-line--ftth{stroke:var(--accent-2);stroke-width:3;opacity:.6}.hw-line--ftth-pulse{stroke:var(--accent-2);stroke-width:3;stroke-dasharray:8 50;animation:hd-travel 1.4s linear infinite}.hw-line--data{stroke:var(--text-dim);stroke-width:1.5}.hw-line--usb{stroke:var(--text-dim);stroke-width:1.5;stroke-dasharray:2 4}.hw-label{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center;font-size:.66rem;color:var(--text);max-width:6rem;line-height:1.25}.hw-label__text{background:var(--bg);padding:.1rem .35rem;border-radius:.25rem}.hw-label svg{flex:none;width:2.1rem;height:2.1rem;padding:.7rem;box-sizing:content-box;border-radius:50%;background:var(--bg);stroke:var(--text)}.hw-label--icon{transform:translate(-50%,-1.75rem)}.hw-label--room{font-family:var(--font-display);font-size:.85rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text);background:var(--bg);border:1px solid color-mix(in srgb,#2a2a2a 90%,transparent);padding:.3rem .75rem;border-radius:999px;max-width:none;white-space:nowrap}.hw-label--group{transform:translateY(-50%);text-align:left;font-size:.6rem;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;max-width:none;white-space:nowrap}.hw-legend{list-style:none;display:flex;flex-wrap:wrap;gap:1.5rem;max-width:45rem;margin:1rem auto 0;padding-top:1rem;justify-content:center;font-size:.85rem;color:var(--text-dim)}.hw-legend li{display:flex;align-items:center;gap:.5rem}.hw-legend__swatch{width:1.4rem;height:2px}.hw-legend__swatch--power{background:repeating-linear-gradient(to right,var(--accent) 0 4px,transparent 4px 8px)}.hw-legend__swatch--ftth{background:var(--accent-2);height:3px}.hw-legend__swatch--lan{background:var(--hw-lan, #22c3d1)}.footer{text-align:center;padding:2rem var(--pad-x);color:var(--text-dim);font-size:.85rem;border-top:1px solid #1c1c1c}.footer a{display:inline-block;color:inherit;text-decoration:underline;margin-left:.75rem;padding:.35rem 0;margin-top:-.35rem;margin-bottom:-.35rem}.footer .credits{margin-top:.5rem;font-size:.7rem;opacity:.6}@media(max-width:700px){.about-grid{grid-template-columns:1fr}.project-description-grid{grid-template-columns:1fr;gap:1.5rem}.nav nav{gap:1rem}.drawer__strip{position:relative;margin:2.5rem 0 3.5rem;width:50%;padding:7px;border-radius:.55rem;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,rgba(0,0,0,.06) 1px 2px,transparent 2px 4px),linear-gradient(105deg,#c3c9d1,#949aa2 14%,#6b7178 46%,#8d939b 72%,#565c64);box-shadow:inset 0 1px #fff9,inset 0 -1px #0000008c,0 14px 34px -16px #000000e6}.drawer__strip:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:.3rem;background:#000;box-shadow:inset 0 2px 7px #000000f2}.skills-grid{display:flex;flex-direction:column;gap:0;padding-bottom:var(--peek, 1.55rem)}.skill-group:first-of-type .skills-grid{padding-top:var(--peek, 1.55rem)}.skill-group{display:flex;align-items:stretch;gap:.3rem;--peek: 1.55rem}.skill-group>h3{display:flex;flex-direction:row-reverse;flex:0 0 auto;align-items:center;gap:.45rem;width:18px;margin:0;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.6rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.skill-group>h3:before,.skill-group>h3:after{content:"";flex:1;width:1px;background:#2f2f2f}.skill-group>h3:before{background:linear-gradient(0deg,#2f2f2f,transparent)}.skill-group>h3:after{background:linear-gradient(180deg,#2f2f2f,transparent)}.skill-group+.skill-group{margin-top:.85rem}.skill-group>.skills-grid{flex:1;min-width:0}.skills-grid>li{height:4.2rem;flex-direction:row;align-items:flex-start;gap:.45rem;padding:.5rem .6rem;background:linear-gradient(180deg,color-mix(in srgb,var(--brand, var(--accent)) 26%,transparent),transparent 2.65rem),#0b0b0b;border:1px solid color-mix(in srgb,var(--brand, var(--accent)) 32%,#232323);border-top:2px solid var(--brand, var(--accent));border-radius:.35rem .35rem .2rem .2rem;box-shadow:0 12px 26px -14px #000000e6;mask-image:linear-gradient(to top,transparent 0,#000 .45rem);-webkit-mask-image:linear-gradient(to top,transparent 0,#000 .45rem);transition:transform .2s var(--ease-out)}.skills-grid>li+li{margin-top:-1.55rem}.skills-grid>li:active~li,.skills-grid>li:focus-visible~li,.skills-grid>li.is-active~li{transform:translateY(var(--peek, 2rem))}@media(hover:hover)and (pointer:fine){.skills-grid>li:hover~li{transform:translateY(var(--peek, 2rem))}}@media(prefers-reduced-motion:reduce){.skills-grid>li{transition:none}}.skills-grid>li:active,.skills-grid li:focus-visible,.skills-grid>li.is-active{transform:none}.skill-icon{width:20px;height:20px}.skill-label{font-size:.6rem;line-height:.95rem;margin-top:2px}.skills-modal{position:fixed;top:4.25rem;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center end;padding:.75rem var(--pad-x);pointer-events:none}.skills-modal .skill-card,.skills-invite{grid-area:1 / 1}.skills-modal .skill-card{width:calc((100vw - 2 * var(--pad-x)) * .44);max-height:calc(100vh - 5.75rem);overflow-y:auto;margin:0;pointer-events:auto;opacity:0;transform:scale(.94) translateY(8px);transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}.skills-modal.is-open .skill-card{opacity:1;transform:none}.skills-invite{width:calc((100vw - 2 * var(--pad-x)) * .44);margin:0;opacity:0;transition:opacity var(--duration-base) var(--ease-out)}.skills-invite.is-visible{opacity:1}.skills-invite__line{display:block;text-align:center;font-size:.9rem;font-weight:600;letter-spacing:-.01em;line-height:1.5;background:linear-gradient(90deg,var(--text-dim) 0%,var(--text-dim) 40%,var(--accent) 50%,var(--accent-2) 60%,var(--text-dim) 70%,var(--text-dim) 100%);background-size:300% 100%;background-position:110% center;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hint-shine 3s linear infinite}.skills-invite__line+.skills-invite__line{animation-delay:1.5s}.skills-modal.is-open .skills-invite{opacity:0}.skills-modal .skill-card__inner{padding:.9rem 2.2rem .9rem .8rem;border-radius:.7rem}.skills-modal .skill-card__close{top:.6rem;right:.6rem;width:1.6rem;height:1.6rem}.skills-modal .skill-card__title{font-size:1.05rem;letter-spacing:-.02em;line-height:1.15}.skills-modal .skill-card__badge{margin-top:.5rem;padding:.15rem .45rem;font-size:.6rem}.skills-modal .skill-card__text{margin-top:.6rem;font-size:.75rem;line-height:1.45}.skills-modal .skill-card__bullets{columns:1;margin-top:.8rem;font-size:.75rem;line-height:1.4}.set-player__panel{align-items:flex-start}.set-player__disc{margin-top:.1rem}.hd-tree{flex-direction:column;align-items:flex-start;--hd-branch-pad: .7rem;--hd-hub-size: 5rem;--hd-leaf-icon: 22px;--hd-leaf-h: 1.85rem}.hd-branch__label{font-size:1.15rem}.hd-leaf__button{font-size:.95rem}.hd-hub{margin:0 0 2rem}.hd-hub__button{gap:.25rem;font-size:.7rem}.hd-hub .hd-icon{--hd-hub-icon: 28px}.hd-hub:after{left:50%;top:100%;width:0;height:calc(2rem + var(--hd-branch-pad) + var(--hd-stub));border-top:0;border-left:1px solid var(--hd-rule)}.hd-branches{margin-left:calc(var(--hd-hub-size) / 2)}}
