:root{color-scheme:dark;--font-display:"Chakra Petch", system-ui, sans-serif;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--chamfer:14px;--chamfer-sm:9px;--chamfer-lg:22px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--gold:#f59e0b;--success:#10b981;--cat-vfx:#4ade80;--cat-env:#fb923c;--cat-mech:#ef4444;--cat-props:#facc15;--cat:var(--accent);--ice-caustic-blur:4px;--ice-caustic-a-strength:.2;--ice-caustic-b-strength:.3;--ice-grain-alpha:.5;--ice-sheen-strength:.06;--frost-blur:4.4}:root,:root[data-theme=dark]{color-scheme:dark;--bg:#0a0912;--bg-deep:#060510;--surface:#12101d;--surface-1:#12101de6;--surface-2:#191527f5;--surface-inset:#ece9fa0d;--text:#ece9fa;--text-dim:#b0a9c9;--text-muted:#6f6889;--text-on-accent:#0a0912;--border:#ece9fa1a;--border-strong:#ece9fa33;--glass-blur:6px;--glass-bg:#0a09128c;--glass-bg-solid:#0a0912eb;--glass-border:#ece9fa14;--glass-shadow:0 8px 40px #00000059;--text-shadow-body:none;--blend-glow:screen;--blend-ice:screen;--glow-strength:1;--hex-tile:#0b0512;--hex-underlight:#5a30a8;--hex-lamp:#1ab8e0;--hex-lamp-hot:#9cd7e5;--hex-clear:#050409;--hex-deep:#1d1440;--hex-ambient:#6a3cb0;--hex-ambient-i:.75;--hex-key:#e4cfff;--hex-key-i:1.7;--hex-rim:#9a56ff;--hex-rim-i:.95;--hex-metalness:.52;--hex-roughness:.42;--hex-bloom:.38;--hex-lamp-i:.95;--shadow-color:0, 0, 0;--shadow-card:0 20px 40px #0006;--shadow-lift:0 30px 60px #00000080;--nav-bg:#0a0912f7;--nav-bg-solid:#0a0912f7;--overlay-deep:#060510d1;--text-hot:#fff;--scrollbar-track:#ece9fa0a}:root[data-theme=light]{color-scheme:light;--bg:#dbdfe9;--bg-deep:#c9cfdd;--surface:#eef1f7;--surface-1:#fff;--surface-2:#fff;--surface-inset:#12141c0e;--text:#0a0c12;--text-dim:#262a37;--text-muted:#4b5162;--text-on-accent:#fff;--border:#12141c24;--border-strong:#12141c47;--glass-blur:8px;--glass-bg:#ffffffbd;--glass-bg-solid:#fffffff5;--glass-border:#12141c21;--glass-shadow:0 10px 34px #181e3229;--text-shadow-body:none;--blend-glow:multiply;--blend-ice:multiply;--glow-strength:.45;--hex-tile:#d3d8e4;--hex-underlight:#bfc7d8;--hex-lamp:#9fb2cc;--hex-lamp-hot:#f2f5fa;--hex-clear:#dbdfe9;--hex-deep:#ccd2df;--hex-ambient:#fff;--hex-ambient-i:1.45;--hex-key:#fff;--hex-key-i:.85;--hex-rim:#c9d4e6;--hex-rim-i:.45;--hex-metalness:.05;--hex-roughness:.9;--hex-bloom:.06;--hex-lamp-i:.35;--shadow-color:24, 30, 50;--shadow-card:0 14px 30px #181e3221;--shadow-lift:0 24px 50px #181e3233;--nav-bg:#eef1f7f7;--nav-bg-solid:#eef1f7fa;--overlay-deep:#dbdfe9e6;--text-hot:#06222e;--scrollbar-track:#12141c0f;--cat-vfx:#15803d;--cat-env:#c2410c;--cat-mech:#b91c1c;--cat-props:#a16207;--gold:#92400e;--success:#065f46}:root,[data-form=work]{--accent:#8b5cf6;--accent-light:#a78bfa;--accent-ink:#b9a2ff;--accent-soft:#8b5cf61f;--accent-glow:#8b5cf638;--accent2:#22d3ee;--accent2-soft:#22d3ee1f}[data-form=build]{--accent:#22d3ee;--accent-light:#67e8f9;--accent-ink:#7edce8;--accent-soft:#22d3ee1f;--accent-glow:#22d3ee2e;--accent2:#8b5cf6;--accent2-soft:#8b5cf61f}[data-form=teach]{--accent:#e0a53a;--accent-light:#f3c568;--accent-ink:#f0c06a;--accent-soft:#e0a53a1f;--accent-glow:#e0a53a2e;--accent2:#22d3ee;--accent2-soft:#22d3ee1f}[data-form=reach]{--accent:#f4614e;--accent-light:#ff8a72;--accent-ink:#ff9a83;--accent-soft:#f4614e1f;--accent-glow:#f4614e33;--accent2:#22d3ee;--accent2-soft:#22d3ee1f}[data-theme=light][data-form=work]{--accent:#7c3aed;--accent-light:#6d28d9;--accent-ink:#5b21b6;--accent-soft:#7c3aed1a;--accent-glow:#7c3aed1f;--accent2:#0e7490;--accent2-soft:#0e74901a}[data-theme=light][data-form=build]{--accent:#0e7490;--accent-light:#0891b2;--accent-ink:#155e75;--accent-soft:#0e74901a;--accent-glow:#0e74901f;--accent2:#7c3aed;--accent2-soft:#7c3aed1a}[data-theme=light][data-form=teach]{--accent:#b45309;--accent-light:#d97706;--accent-ink:#92400e;--accent-soft:#b453091a;--accent-glow:#b453091f;--accent2:#0e7490;--accent2-soft:#0e74901a}[data-theme=light][data-form=reach]{--accent:#c2410c;--accent-light:#ea580c;--accent-ink:#9a3412;--accent-soft:#c2410c1a;--accent-glow:#c2410c1f;--accent2:#0e7490;--accent2-soft:#0e74901a}:root.theme-switching,:root.theme-switching body,:root.theme-switching .nav,:root.theme-switching .section{transition:background-color .45s var(--ease-out-quart), color .45s var(--ease-out-quart), border-color .45s var(--ease-out-quart)}@media (prefers-reduced-motion:reduce){:root.theme-switching,:root.theme-switching body,:root.theme-switching .nav,:root.theme-switching .section{transition:none}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg)}#smooth-wrapper{z-index:2;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}#smooth-content{will-change:transform;width:100%;overflow:visible}html.no-smoother #smooth-wrapper{height:auto;position:static;overflow:visible}html.no-smoother #smooth-content{will-change:auto}html.no-smoother{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-shadow:var(--text-shadow-body);font-size:17px;line-height:1.7;overflow-x:hidden}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-left:1px solid var(--border)}::-webkit-scrollbar-thumb{background:linear-gradient(to bottom, var(--accent), var(--accent2));border:2px solid var(--bg);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--accent-light)}::selection{background:var(--accent);color:var(--text-on-accent)}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}:where(.game-card,.plugin-card,.skill-card,.asset-card,.contact-card,.video-card):focus-visible{outline-offset:4px;border-radius:12px}.skip-link{z-index:10003;border:1px solid var(--accent);background:var(--nav-bg-solid);color:var(--text);font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;transition:transform .25s var(--ease-out-expo);border-radius:4px;padding:.6rem 1.2rem;font-size:.75rem;position:fixed;top:.75rem;left:50%;transform:translate(-50%,-200%)}.skip-link:focus-visible{transform:translate(-50%)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}#shader-bg{z-index:0;opacity:1;pointer-events:none;filter:url(#frost);will-change:filter;width:100%;height:100%;position:fixed;top:0;left:0}#ice-layer{z-index:1;pointer-events:none;background-image:linear-gradient(135deg, rgba(230, 244, 255, var(--ice-sheen-strength)) 0%, #e6f4ff00 28%, #e6f4ff00 72%, rgba(176, 156, 255, var(--ice-sheen-strength)) 100%), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.09 0'/></filter><rect width='320' height='320' filter='url(%23n)'/></svg>");mix-blend-mode:var(--blend-ice);background-repeat:no-repeat,repeat;background-size:cover,320px 320px;position:fixed;inset:0;overflow:hidden}.ice-caustic{pointer-events:none;filter:blur(var(--ice-caustic-blur));mix-blend-mode:var(--blend-ice);will-change:transform;position:absolute;inset:-15%}.ice-caustic-a{opacity:var(--ice-caustic-a-strength);background:radial-gradient(18% 22% at 30% 35%,#c8ebff,#0000 60%),radial-gradient(14% 18% at 70% 60%,#d2c3ffc7,#0000 60%);animation:26s ease-in-out infinite iceDrift}.ice-caustic-b{opacity:var(--ice-caustic-b-strength);background:radial-gradient(20% 24% at 60% 25%,#bee1ff,#0000 62%),radial-gradient(15% 20% at 20% 75%,#e1cdffd9,#0000 60%);animation:34s ease-in-out -8s infinite reverse iceDrift}@keyframes iceDrift{0%{transform:translate(-4%,-3%)scale(1)}25%{transform:translate(3%,-2%)scale(1.05)}50%{transform:translate(4%,3%)scale(.98)}75%{transform:translate(-2%,4%)scale(1.03)}to{transform:translate(-4%,-3%)scale(1)}}html.fx-simple #shader-bg{filter:blur(3px)}html.fx-simple .ice-caustic{display:none}html.fx-simple #ice-layer{mix-blend-mode:normal;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.09 0'/></filter><rect width='320' height='320' filter='url(%23n)'/></svg>");background-repeat:repeat;background-size:320px 320px}#backdrop-dim{z-index:1;pointer-events:none;background:var(--bg);opacity:0;will-change:opacity;contain:strict;position:fixed;inset:0}@media (width<=768px){#shader-bg{filter:blur(3px)}#ice-layer{display:none}.about-photo img{object-position:center top}.btn-outline,.game-card:hover,.plugin-card:hover,.skill-card:hover,.asset-card:hover,.contact-card:hover{-webkit-backdrop-filter:none!important}}.btn,.nav-link,.mobile-link,.nav-logo,.nav-burger,.contact-card,.game-card,.plugin-card,.skill-card,.asset-card,.portfolio-item,a[data-cursor]{touch-action:manipulation}@media (prefers-reduced-motion:reduce){.ice-caustic{animation:none}}.progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent2));z-index:10002;height:2px;box-shadow:0 0 10px var(--accent);transition:width .1s linear;position:fixed;top:0;left:0}[data-theme=light] .ice-caustic{display:none}[data-theme=light] #ice-layer{mix-blend-mode:normal;background-image:radial-gradient(120% 90% at 50% 0,#12141c0d 0%,#12141c00 60%),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.07  0 0 0 0 0.08  0 0 0 0 0.11  0 0 0 0.05 0'/></filter><rect width='320' height='320' filter='url(%23n)'/></svg>");background-repeat:no-repeat,repeat;background-size:cover,320px 320px}[data-theme=light] #shader-bg{filter:blur(1.6px)}.container{max-width:1360px;margin:0 auto;padding:0 clamp(1.25rem,3.5vw,3.5rem)}.section{z-index:2;padding:6.5rem 0;position:relative}.section>.container>.section-header{text-align:left;border-bottom:1px solid var(--border);margin-bottom:3.5rem;padding-bottom:1.4rem;position:relative}.section-header:after{content:"";background:var(--accent);width:72px;height:2px;position:absolute;bottom:-1px;left:0}.section-tag{font-family:var(--font-display);letter-spacing:3px;color:var(--accent-ink);text-transform:uppercase;font-variant-numeric:tabular-nums;margin-bottom:.7rem;font-size:.72rem;font-weight:600;display:block}.section-title{font-family:var(--font-display);letter-spacing:-1px;text-transform:uppercase;font-size:clamp(2.1rem,4.4vw,3.6rem);font-weight:700;line-height:1}.about-text{background:var(--surface-1);border:1px solid var(--border);--chamfer:var(--chamfer-lg);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));padding:2rem 2.25rem}.accent{color:var(--accent)}.section-desc{color:var(--text-dim);max-width:68ch;margin-top:.9rem;font-size:1.05rem;line-height:1.7}.btn{font-family:var(--font-display);letter-spacing:1.2px;text-transform:uppercase;--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:all .3s var(--ease-out-expo);align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:0 0 20px var(--accent-glow)}.btn-primary:hover{background:var(--accent-light);box-shadow:0 0 40px color-mix(in srgb, var(--accent) 30%, transparent);transform:translateY(-2px)}.btn-outline{background:var(--glass-bg);-webkit-backdrop-filter:blur(4px);border:1px solid var(--border-strong);color:var(--text);text-shadow:0 1px 3px var(--overlay-deep)}.btn-outline:hover{border-color:var(--accent);color:var(--text-on-accent);box-shadow:0 0 20px var(--accent-glow);transform:translateY(-2px)}.section:not(.hero):before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 78% at 50% 50%, color-mix(in srgb, var(--bg) 92%, transparent) 0%, color-mix(in srgb, var(--bg) 84%, transparent) 45%, transparent 100%);position:absolute;inset:-1px 0}.section.is-folded:not(.is-open):before{display:none}.nav{z-index:1000;-webkit-backdrop-filter:blur(20px);background:var(--nav-bg);border-bottom:1px solid var(--border);transition:transform .4s var(--ease-out-expo), background .3s;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{align-items:center;display:flex}.nav-logo-img{filter:brightness()contrast();width:auto;height:56px;transition:filter .3s,transform .3s}.nav-logo:hover .nav-logo-img{filter:brightness(1.2) drop-shadow(0 0 8px color-mix(in srgb, var(--accent) 60%, transparent));transform:scale(1.05)}.logo-accent{color:var(--accent)}.nav-links{gap:2rem;display:flex}.nav-link{font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);font-size:.8rem;transition:color .3s;position:relative}.nav-link:after{content:"";background:var(--accent);width:0;height:1px;transition:width .3s var(--ease-out-expo);position:absolute;bottom:-4px;left:0}.nav-link:hover,.nav-link.active{color:var(--text)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-burger{flex-direction:column;gap:5px;padding:4px;display:none}.nav-burger span{background:var(--text);width:24px;height:2px;transition:transform .3s,opacity .3s;display:block}.nav-burger.active span:first-child{transform:translateY(7px)rotate(45deg)}.nav-burger.active span:nth-child(2){opacity:0}.nav-burger.active span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu{background:var(--nav-bg-solid);backdrop-filter:blur(30px);z-index:999;opacity:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2rem;transition:opacity .4s;display:flex;position:fixed;inset:0}.mobile-menu.active{opacity:1;pointer-events:all}.mobile-link{font-family:var(--font-display);letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);padding:.35rem 1rem;font-size:1.5rem;transition:color .3s}.mobile-link:hover{color:var(--accent)}.nav-page-link{border:1px solid var(--border-strong);background:var(--surface-1);height:34px;color:var(--text-dim);font-family:var(--font-display);letter-spacing:1.6px;text-transform:uppercase;white-space:nowrap;--chamfer:7px;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:border-color .3s var(--ease-out-expo), color .3s var(--ease-out-expo);align-items:center;padding:0 .85rem;font-size:.72rem;font-weight:600;display:inline-flex}.nav-page-link:hover{border-color:var(--accent);color:var(--text)}.nav-page-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (width<=900px){.nav-page-link{height:44px}}@media (width<=700px){.nav-page-link{display:none}}.game-card,.plugin-card,.skill-card,.asset-card,.contact-card,.fab-card{text-shadow:none;transform-style:preserve-3d;will-change:transform}.game-card:hover,.plugin-card:hover,.skill-card:hover,.asset-card:hover,.contact-card:hover,.fab-card:hover{-webkit-backdrop-filter:blur(14px)saturate(1.25)}@property --cfx-x{syntax:"<length>";inherits:false;initial-value:0}@property --cfx-y{syntax:"<length>";inherits:false;initial-value:0}.game-card,.plugin-card,.skill-card,.asset-card,.contact-card,.fab-card{--cfx-x:50%;--cfx-y:50%}.card-glow{border-radius:inherit;background:radial-gradient(220px 220px at var(--cfx-x) var(--cfx-y), color-mix(in srgb, var(--accent2) 42%, transparent) 0%, color-mix(in srgb, var(--accent) 28%, transparent) 30%, transparent 65%);mix-blend-mode:var(--blend-glow);opacity:0;transition:opacity .35s var(--ease-out-expo), --cfx-x .18s var(--ease-out-quart), --cfx-y .18s var(--ease-out-quart);pointer-events:none;z-index:1;position:absolute;inset:0}.game-card:hover .card-glow,.plugin-card:hover .card-glow,.skill-card:hover .card-glow,.asset-card:hover .card-glow,.contact-card:hover .card-glow{opacity:1}.game-card>:not(.card-glow),.plugin-card>:not(.card-glow),.skill-card>:not(.card-glow),.asset-card>:not(.card-glow),.contact-card>:not(.card-glow){z-index:2;position:relative}.media{background:var(--surface);isolation:isolate;position:relative;overflow:hidden}.media img{object-fit:cover;filter:saturate(.58)contrast(1.1)brightness(.97);width:100%;height:100%;transition:filter .55s var(--ease-out-quart), transform .75s var(--ease-out-expo);display:block;transform:scale(1.02)}.media:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(155deg, color-mix(in srgb, var(--accent) 78%, transparent), color-mix(in srgb, var(--accent2) 42%, transparent) 62%, transparent);mix-blend-mode:color;opacity:.55;transition:opacity .55s var(--ease-out-quart);position:absolute;inset:0}.media:after{content:"";z-index:2;pointer-events:none;opacity:.07;mix-blend-mode:overlay;transition:opacity .55s var(--ease-out-quart);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='28' viewBox='0 0 16 28'><path d='M8 1 L15 5 L15 13 L8 17 L1 13 L1 5 Z' fill='none' stroke='white' stroke-width='1'/><path d='M0 15 L0 19 M16 15 L16 19' stroke='white' stroke-width='1'/></svg>");background-size:16px 28px;position:absolute;inset:0}.media:hover img,a:hover .media img,.game-card:hover .media img,.plugin-card:hover .media img{filter:saturate()contrast(1.02)brightness();transform:scale(1.06)}.media:hover:before,a:hover .media:before,.game-card:hover .media:before,.plugin-card:hover .media:before{opacity:.1}.media:hover:after,a:hover .media:after,.game-card:hover .media:after,.plugin-card:hover .media:after{opacity:.03}[data-theme=light] .media img{filter:saturate(.6)contrast(1.05)brightness(1.02)}[data-theme=light] .media:before{opacity:.5}[data-theme=light] .media:after{mix-blend-mode:multiply;opacity:.06}@media (prefers-reduced-motion:reduce){.media img,.media:before,.media:after{transition:none}.media:hover img{transform:scale(1.02)}}.hero{z-index:2;flex-direction:column;min-height:100svh;display:flex;position:relative;overflow:hidden}.hero.section{padding:0}.hero:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(100deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 94%, transparent) 26%, color-mix(in srgb, var(--bg) 70%, transparent) 48%, color-mix(in srgb, var(--bg) 28%, transparent) 72%, transparent 100%);position:absolute;inset:0}.hero-inner{z-index:1;flex-direction:column;flex:1;justify-content:center;gap:clamp(1.75rem,3.5vh,3rem);width:100%;max-width:1600px;margin:0 auto;padding:6.5rem clamp(1.25rem,3.5vw,3.5rem) 2rem;display:flex;position:relative}.hero-badge{border:1px solid color-mix(in srgb, var(--gold) 40%, transparent);background:color-mix(in srgb, var(--gold) 9%, transparent);font-family:var(--font-display);letter-spacing:2.5px;text-transform:uppercase;color:var(--text);--chamfer:var(--chamfer-sm);width:fit-content;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));align-self:flex-start;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.45rem .95rem;font-size:.72rem;font-weight:600;display:inline-flex}.badge-dot{background:var(--gold);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);flex:none;width:8px;height:9px}.badge-gold{color:var(--gold);font-weight:700}.hero-title{font-family:var(--font-display);letter-spacing:-2px;text-transform:uppercase;font-size:clamp(2.7rem,7.4vw,6.4rem);font-weight:700;line-height:.92}.hero-title .line{display:block}.hero-title .line--accent{color:var(--accent)}.hero-title .char{transition:transform .35s var(--ease-out-expo), color .3s;will-change:transform;display:inline-block}.hero-body{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:3rem;display:grid}.hero-lead{max-width:58ch;color:var(--text-dim);font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.65}.hero-lead b{color:var(--text);font-weight:600}.hire-chip{border:1px solid var(--border);background:var(--surface-1);font-family:var(--font-display);letter-spacing:1.4px;text-transform:uppercase;color:var(--text);--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));flex-wrap:wrap;align-items:center;gap:.55rem;margin-top:1.6rem;padding:.5rem .95rem;font-size:.8rem;font-weight:600;display:inline-flex}.hire-dot{background:var(--success);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);width:8px;height:9px;animation:hire-pulse 2.4s var(--ease-out-quart) infinite;flex:none}.hire-chip-sep{color:var(--text-muted)}.hire-chip-note{letter-spacing:1.2px;color:var(--text-muted);font-weight:500}@keyframes hire-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}@media (prefers-reduced-motion:reduce){.hire-dot{animation:none}}.hero-cta{flex-wrap:wrap;gap:.9rem;margin-top:1.8rem;display:flex}.hero-stage{place-items:center;display:grid;position:relative}.hero-mark{aspect-ratio:1;place-items:center;width:min(26vw,300px);display:grid;position:relative}.hero-mark .mark-host{width:62%;display:block}.hero-mark .ol-badge-fill,.hero-mark .ol-letter{fill:var(--text)}.hero-mark .ol-badge-draw{opacity:0;stroke-width:6px;display:block}.hero-rings{width:100%;height:100%;position:absolute;inset:0}.hero-ring{fill:none;stroke:var(--border-strong);stroke-width:1px}.hero-ring--lit{stroke:var(--accent);stroke-width:1.2px;opacity:.55}.hero-callout{font-family:var(--font-display);letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.72rem;font-weight:500;position:absolute}.hero-callout:before{content:"";background:var(--border-strong);width:32px;height:1px;position:absolute;top:50%}.hero-callout--a{margin-right:130px;top:12%;right:50%}.hero-callout--a:before{right:-40px}.hero-callout--b{text-overflow:ellipsis;max-width:calc(50% - 112px);margin-left:108px;bottom:18%;left:50%;overflow:hidden}.hero-callout--b:before{left:-40px}.proof-strip{z-index:1;border-top:1px solid var(--border);background:linear-gradient(to top, color-mix(in srgb, var(--bg-deep) 92%, transparent), color-mix(in srgb, var(--bg-deep) 50%, transparent));grid-template-columns:repeat(4,1fr);display:grid;position:relative}.proof-cell{border-right:1px solid var(--border);transition:background .35s var(--ease-out-expo);padding:1.35rem clamp(1.25rem,3.5vw,3.5rem) 1.55rem;display:block;position:relative}.proof-cell:last-child{border-right:none}.proof-cell:hover{background:var(--surface-inset)}.proof-cell:active{transform:translateY(1px)}.proof-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.proof-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;transition:color .3s var(--ease-out-expo);font-size:clamp(1.5rem,2.2vw,2rem);font-weight:700;line-height:1;display:block}.proof-num em{color:var(--accent);font-style:normal}.proof-cell--lead .proof-num em{color:var(--accent2)}.proof-cell:hover .proof-num{color:var(--accent-ink)}.proof-label{font-family:var(--font-display);letter-spacing:1.6px;text-transform:uppercase;color:var(--text-muted);transition:color .3s var(--ease-out-expo);margin-top:.45rem;font-size:.72rem;font-weight:500;display:block}.proof-cell--lead .proof-label,.proof-cell:hover .proof-label{color:var(--text-dim)}.proof-arrow{opacity:0;color:var(--accent-ink);transition:opacity .3s var(--ease-out-expo), transform .3s var(--ease-out-expo);position:absolute;top:1.4rem;right:1.2rem;transform:translate(-4px,4px)}.proof-cell:hover .proof-arrow,.proof-cell:focus-visible .proof-arrow{opacity:1;transform:translate(0)}@media (prefers-reduced-motion:reduce){.proof-cell,.proof-num,.proof-label,.proof-arrow{transition:none}}@media (width<=1100px){.hero-stage{display:none}.hero-body{grid-template-columns:1fr}.hero-inner{padding-top:6rem}}@media (width<=720px){.proof-strip{grid-template-columns:repeat(2,1fr)}.proof-cell:nth-child(2n){border-right:none}.proof-cell:nth-child(-n+2){border-bottom:1px solid var(--border)}.hero-lead{font-size:1rem}}@media (width<=600px){.hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn{justify-content:center}}.about-grid{grid-template-columns:minmax(0,320px) minmax(0,1fr);align-items:start;gap:clamp(2rem,4vw,4rem);display:grid}.about-photo{aspect-ratio:4/5;--chamfer:var(--chamfer);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transform-style:preserve-3d;will-change:transform;transition:transform .1s ease-out,box-shadow .4s;position:relative;overflow:hidden}.about-photo img{object-fit:cover;will-change:transform;width:100%;height:100%;transition:transform .12s ease-out}.about-photo:hover{box-shadow:0 30px 60px rgba(var(--shadow-color), .5), 0 0 40px color-mix(in srgb, var(--accent) 15%, transparent)}.photo-overlay{background:linear-gradient(to bottom, transparent 50%, var(--nav-bg));pointer-events:none;position:absolute;inset:0}.photo-frame{border:1px solid var(--border);pointer-events:none;transition:border-color .3s;position:absolute;inset:-1px}.about-photo:hover .photo-frame{border-color:var(--accent)}.about-caption{border-top:1px solid var(--border);gap:.3rem;margin-top:1rem;padding-top:.9rem;display:grid}.about-caption-name{font-family:var(--font-display);letter-spacing:.5px;text-transform:uppercase;color:var(--text);font-size:.95rem;font-weight:700}.about-caption-role{font-family:var(--font-display);letter-spacing:1.6px;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:500}.about-lead{color:var(--text);margin-bottom:1.25rem;font-size:1.25rem;line-height:1.7}.about-text p{color:var(--text-dim);margin-bottom:1.25rem;font-size:1.05rem;line-height:1.8}.about-tags{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.tag{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 15%, transparent);--chamfer:6px;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));font-family:var(--font-display);letter-spacing:.5px;color:var(--accent-light);padding:.4rem .9rem;font-size:.72rem;transition:background .3s,border-color .3s}.tag:hover{background:color-mix(in srgb, var(--accent) 20%, transparent);border-color:var(--accent)}[data-tilt]{transform-style:preserve-3d}.about-photo{position:relative}.photo-edge-glow{pointer-events:none;z-index:5;opacity:0;background:radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--accent2) 45%, transparent) 0%, transparent 55%), radial-gradient(120% 120% at 100% 100%, color-mix(in srgb, var(--accent) 45%, transparent) 0%, transparent 55%);box-shadow:0 0 24px color-mix(in srgb, var(--accent2) 35%, transparent), 0 0 48px color-mix(in srgb, var(--accent) 25%, transparent);mix-blend-mode:var(--blend-glow);filter:blur(2px);will-change:opacity;border-radius:14px;position:absolute;inset:-6px}.about-photo:hover img{filter:saturate(1.15)brightness(1.05);transition:filter .35s var(--ease-out-expo)}@media (width<=900px){.about-grid{grid-template-columns:1fr}.about-photo-wrap{max-width:320px}}.cap{grid-template-columns:repeat(12,1fr);gap:1.25rem;display:grid}.cap-cell{background:var(--surface-1);border:1px solid var(--border);border-top:2px solid var(--border-strong);--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:border-color .35s var(--ease-out-expo), box-shadow .35s var(--ease-out-expo);flex-direction:column;padding:1.6rem 1.5rem 1.7rem;display:flex}.cap-cell:hover{border-color:var(--accent);border-top-color:var(--accent);box-shadow:var(--shadow-card)}.cap-cell--lg{border-top-color:var(--accent);grid-column:span 8;padding:2rem 1.9rem 2.1rem}.cap-cell--md{grid-column:span 4}.cap-cell--sm{grid-column:span 3}.cap-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;display:flex}.cap-num{font-family:var(--font-display);letter-spacing:2.4px;color:var(--accent-ink);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}.cap-icon{color:var(--text-muted);transition:color .35s var(--ease-out-expo);display:inline-flex}.cap-icon svg{width:22px;height:22px}.cap-cell:hover .cap-icon{color:var(--accent)}.cap-cell--lg .cap-icon svg{width:28px;height:28px}.cap-title{font-family:var(--font-display);letter-spacing:.3px;color:var(--text);font-size:1.25rem;font-weight:600;line-height:1.2}.cap-cell--lg .cap-title{text-transform:uppercase;letter-spacing:-.3px;font-size:clamp(1.4rem,2vw,1.8rem)}.cap-body{color:var(--text-dim);flex:1;margin-top:.75rem;font-size:.98rem;line-height:1.7}.cap-cell--lg .cap-body{font-size:1.05rem;line-height:1.75}.cap-proof{border-top:1px solid var(--border);font-family:var(--font-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--accent2);margin-top:1.2rem;padding-top:.9rem;font-size:.8rem;font-weight:500}.cap-cell--lg .cap-proof{font-size:.86rem}@media (prefers-reduced-motion:reduce){.cap-cell,.cap-icon{transition:none}}@media (width<=1100px){.cap-cell--lg{grid-column:span 12}.cap-cell--md,.cap-cell--sm{grid-column:span 6}}@media (width<=700px){.cap{gap:1rem}.cap-cell--lg,.cap-cell--md,.cap-cell--sm{grid-column:span 12}.cap-cell{padding:1.35rem 1.25rem 1.45rem}.cap-cell--lg{padding:1.5rem 1.35rem 1.6rem}}.portfolio-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.portfolio-item{clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));overflow:hidden}.portfolio-img{border:1px solid var(--border);aspect-ratio:16/10;--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:border-color .3s}.portfolio-img:hover{border-color:var(--accent)}.portfolio-tags{flex-wrap:wrap;gap:.35rem;margin-top:.8rem;display:flex}.portfolio-tags span{background:color-mix(in srgb, var(--accent) 20%, transparent);font-family:var(--font-display);letter-spacing:.5px;color:var(--accent-light);border-radius:3px;padding:.25rem .6rem;font-size:.72rem}.portfolio-more{text-align:center;margin-top:3rem}.games-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.game-reviews{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:-.35rem 0 .85rem;display:flex}.game-reviews-label{font-family:var(--font-display);letter-spacing:1.2px;text-transform:uppercase;color:var(--success);font-size:.72rem;font-weight:700}.game-reviews-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.74rem}.game-img{aspect-ratio:16/9;border-bottom:1px solid var(--border);width:calc(100% + 3.5rem);margin:-1.75rem -1.75rem 1.35rem}.game-card--mini .game-img{width:calc(100% + 2.5rem);margin:-1.25rem -1.25rem 1rem}.game-card{background:var(--surface-1);border:1px solid var(--border);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:all .4s var(--ease-out-expo);padding:1.75rem;display:block;position:relative;overflow:hidden}.game-card:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));height:2px;transition:transform .4s var(--ease-out-expo);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.game-card:hover{background:var(--surface-2);border-color:var(--accent);box-shadow:0 20px 40px rgba(var(--shadow-color), .3)}.game-card:hover:after{transform:scaleX(1)}.game-card--featured{border-color:color-mix(in srgb, var(--accent) 20%, transparent);background:linear-gradient(135deg, var(--surface) 0%, var(--surface-2) 100%)}.game-card--featured:before{content:"";clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));background:radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--accent) 6%, transparent) 0%, transparent 60%);pointer-events:none;position:absolute;inset:0}.game-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.game-studio{font-family:var(--font-display);color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;font-size:.72rem}.game-status{border:1px solid var(--border-strong);background:var(--surface-inset);color:var(--text-dim);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;border-radius:3px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.72rem;display:inline-flex}.game-status:before{content:"";background:var(--text-muted);border-radius:50%;flex:none;width:6px;height:6px}.status-released:before{background:var(--success)}.status-soon:before{background:var(--gold)}.game-card h3{letter-spacing:-.3px;margin-bottom:.5rem;font-size:1.2rem;font-weight:700}.game-card p{color:var(--text-dim);margin-bottom:1rem;font-size:.9rem;line-height:1.7}.game-tags{flex-wrap:wrap;gap:.35rem;display:flex}.game-tags span{background:var(--border);border:1px solid var(--border);color:var(--text-muted);font-size:.72rem;font-family:var(--font-display);border-radius:3px;padding:.2rem .5rem}.plugins-grid{grid-template-columns:repeat(2,1fr);gap:2rem;display:grid}.games-roblox-details{border-top:1px solid var(--border);max-width:760px;margin:2.75rem 0 0}.games-roblox-summary{cursor:pointer;color:var(--text-muted);opacity:.7;align-items:center;gap:.75rem;padding:1rem 0 0;list-style:none;transition:opacity .25s;display:flex}.games-roblox-summary:hover{opacity:1}.games-roblox-summary::-webkit-details-marker{display:none}.games-roblox-summary-label{color:var(--text-dim);font-size:.85rem;font-weight:500}.games-sub-tag{font-family:var(--font-display);color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;font-size:.72rem}.games-roblox-chevron{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-left:auto;transition:transform .25s;transform:rotate(45deg)}.games-roblox-details[open] .games-roblox-chevron{transform:rotate(-135deg)}.games-roblox{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;max-width:760px;margin-top:1.25rem;display:grid}.game-card--mini{opacity:.88;padding:1.25rem}.game-card--mini:hover{opacity:1}.game-card--mini h3{font-size:1.02rem}.game-card--mini p{margin-bottom:.75rem;font-size:.9rem}.plugin-card{background:var(--surface-1);border:1px solid var(--border);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:all .4s var(--ease-out-expo);color:inherit;padding:2.5rem;text-decoration:none;display:block;position:relative}.plugin-card:hover{background:var(--surface-2);border-color:var(--accent);box-shadow:0 30px 60px rgba(var(--shadow-color), .3), 0 0 40px var(--accent-glow)}.plugin-icon{width:48px;height:48px;color:var(--accent);margin-bottom:1.25rem}.plugin-badge{background:color-mix(in srgb, var(--accent) 15%, transparent);font-family:var(--font-display);letter-spacing:1px;color:var(--accent-light);text-transform:uppercase;border-radius:3px;margin-bottom:1rem;padding:.25rem .6rem;font-size:.72rem;display:inline-block}.plugin-card h3{letter-spacing:-.5px;margin-bottom:.75rem;font-size:1.5rem;font-weight:700}.plugin-img{aspect-ratio:16/9;border:1px solid var(--border);--chamfer:var(--chamfer-sm);width:100%;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));margin-bottom:1.25rem}.plugin-meta{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.plugin-store{border:1px solid var(--border-strong);background:var(--surface-inset);color:var(--text-dim);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;border-radius:3px;align-items:center;gap:.4rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.plugin-store--git{background:var(--surface-inset);color:var(--text-dim);border:1px solid var(--border)}.plugin-store--dev{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent-light);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}.plugin-store:before{content:"";background:var(--text-muted);border-radius:50%;flex:none;width:6px;height:6px}.plugin-store--fab:before{background:var(--accent2)}.plugin-store--soon:before{background:var(--gold)}.plugin-store--live:before{background:var(--success)}.plugin-store--git:before{background:var(--text-dim)}.plugin-store--dev:before{background:var(--accent)}.plugin-links{margin-top:1.25rem}.plugin-link-label{font-family:var(--font-display);color:var(--accent);letter-spacing:.5px;font-size:.75rem;transition:color .3s}.plugin-link-label:hover{color:var(--accent-light)}.assets-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.asset-card{background:var(--surface-1);border:1px solid var(--border);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:all .4s var(--ease-out-expo);padding:2rem;text-decoration:none;display:block;position:relative;overflow:hidden}.asset-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.asset-card:hover{background:var(--surface-2);border-color:var(--accent);box-shadow:0 20px 40px rgba(var(--shadow-color), .3), 0 0 30px var(--accent-glow)}.asset-card:hover:before{opacity:1}.asset-visual{aspect-ratio:16/9;border-bottom:1px solid var(--border);width:calc(100% + 4rem);margin:-2rem -2rem 1.25rem}.asset-meta{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.asset-price{font-family:var(--font-display);letter-spacing:.5px;color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.86rem;font-weight:700}.asset-price--free{color:var(--accent2);text-transform:uppercase;letter-spacing:1.4px;font-size:.72rem}.asset-card h3{letter-spacing:-.3px;margin-bottom:.6rem;font-size:1.2rem;font-weight:700}.asset-card p{color:var(--text-dim);margin-bottom:1rem;font-size:.95rem;line-height:1.7}.asset-tags{flex-wrap:wrap;gap:.35rem;display:flex}.asset-tags span{background:color-mix(in srgb, var(--accent) 6%, transparent);border:1px solid color-mix(in srgb, var(--accent) 12%, transparent);color:var(--accent-light);font-size:.72rem;font-family:var(--font-display);border-radius:3px;padding:.2rem .5rem}.plugin-card p{color:var(--text-dim);margin-bottom:1.25rem;font-size:.95rem;line-height:1.7}.plugin-features{flex-direction:column;gap:.5rem;list-style:none;display:flex}.plugin-features li{color:var(--text-dim);padding-left:1.25rem;font-size:.8rem;position:relative}.plugin-features li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.5em;left:0}.tier-label{font-family:var(--font-display);letter-spacing:2.4px;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.85rem;margin:3.5rem 0 1.5rem;font-size:.78rem;font-weight:600;display:flex}.tier-label:first-of-type{margin-top:0}.tier-rule{background:var(--accent);flex:none;width:26px;height:2px}.tier-count{background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.tier-grid{gap:1.5rem;display:grid}.tier-grid--wide{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr))}.tier-grid--mid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.tier-grid--tight{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:1.1rem}[data-cat=vfx]{--cat:var(--cat-vfx)}[data-cat=env]{--cat:var(--cat-env)}[data-cat=mech]{--cat:var(--cat-mech)}[data-cat=props]{--cat:var(--cat-props)}.fab-legend{flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:1.25rem;display:flex}.fab-legend-item{font-family:var(--font-display);letter-spacing:1.8px;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.5rem;font-size:.72rem;font-weight:600;display:inline-flex}.fab-legend-dot{background:var(--cat);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);flex:none;width:9px;height:10px}.fab-legend-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:700}.fab-card{background:var(--surface-1);border:1px solid var(--border);border-bottom:2px solid color-mix(in srgb, var(--cat) 55%, transparent);--chamfer:var(--chamfer-sm);clip-path:polygon(0 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%);transition:border-color .35s var(--ease-out-expo), box-shadow .35s var(--ease-out-expo);flex-direction:column;display:flex;position:relative;overflow:hidden}.fab-card:hover{border-color:color-mix(in srgb, var(--cat) 70%, transparent);border-bottom-color:var(--cat);box-shadow:var(--shadow-lift)}.fab-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fab-visual{aspect-ratio:16/9;overflow:hidden}.fab-visual img{object-fit:contain;width:100%;height:100%}.fab-body{z-index:1;grid-template-columns:1fr auto;align-items:center;gap:.35rem .75rem;padding:.9rem 1rem 1.05rem;display:grid;position:relative}.fab-title{font-family:var(--font-display);color:var(--text);font-size:1.02rem;font-weight:600;line-height:1.25}.fab-price{font-family:var(--font-display);color:var(--accent2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.98rem;font-weight:700}.fab-price--free{color:var(--success)}@media (prefers-reduced-motion:reduce){.fab-card{transition:none}}@media (width<=720px){.tier-label{margin:2.75rem 0 1.25rem}.tier-grid{gap:1.1rem}}.page-plain{background:var(--bg);min-height:100vh}.nav.is-solid{background:var(--nav-bg-solid);border-bottom:1px solid var(--border)}.exp-page{padding:9rem 0 6rem}.exp-header{border-bottom:1px solid var(--border);margin-bottom:3.5rem;padding-bottom:1.4rem;position:relative}.exp-header:after{content:"";background:var(--accent);width:72px;height:2px;position:absolute;bottom:-1px;left:0}.exp-summary{flex-wrap:wrap;gap:.5rem .75rem;margin-top:1.25rem;display:flex}.exp-summary-years,.exp-summary-role{border:1px solid var(--border);background:var(--surface-1);font-family:var(--font-display);letter-spacing:1.6px;text-transform:uppercase;color:var(--text-dim);--chamfer:6px;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));align-items:center;gap:.5rem;padding:.4rem .9rem;font-size:.74rem;font-weight:600;display:inline-flex}.exp-summary-years{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--text)}a.exp-summary-role{transition:border-color .3s var(--ease-out-expo), color .3s var(--ease-out-expo)}a.exp-summary-role:hover{border-color:var(--accent);color:var(--text)}a.exp-summary-role:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a.exp-summary-role svg{color:var(--accent)}.exp-list--flat .exp-item{border-left:2px solid var(--accent);grid-template-columns:1fr;gap:0;padding-left:1.5rem}.exp-list--flat .exp-meta{display:none}.exp-list{gap:0;list-style:none;display:grid}.exp-item{border-top:1px solid var(--border);grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:2rem;padding:2rem 0 2.25rem;display:grid}.exp-item:last-child{border-bottom:1px solid var(--border)}.exp-meta{border-left:2px solid var(--accent);flex-direction:column;gap:.35rem;padding-left:1.25rem;display:flex}.exp-period{font-family:var(--font-display);letter-spacing:1.2px;color:var(--text);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.exp-location{font-family:var(--font-display);letter-spacing:1.6px;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:500}.exp-company{font-family:var(--font-display);letter-spacing:-.3px;text-transform:uppercase;color:var(--text);font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:700;line-height:1.1}.exp-company a{color:inherit;transition:color .3s var(--ease-out-expo);align-items:center;gap:.5rem;display:inline-flex}.exp-company a:hover{color:var(--accent-ink)}.exp-company svg{color:var(--accent)}.exp-role{font-family:var(--font-display);letter-spacing:1.4px;text-transform:uppercase;color:var(--accent2);margin-top:.4rem;font-size:.9rem;font-weight:600}.exp-text{max-width:68ch;color:var(--text-dim);margin-top:.9rem;font-size:1rem;line-height:1.75}.exp-projects{flex-wrap:wrap;gap:.5rem .75rem;margin-top:1.1rem;list-style:none;display:flex}.exp-projects li{background:var(--surface-1);border:1px solid var(--border);color:var(--text-dim);--chamfer:6px;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));align-items:center;gap:.55rem;padding:.4rem .85rem;font-size:.92rem;display:inline-flex}.exp-projects li a{color:inherit;transition:color .3s var(--ease-out-expo)}.exp-projects li:hover{border-color:var(--accent)}.exp-projects li:hover a{color:var(--text)}.exp-projects li:before{content:"";background:var(--accent);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);flex:none;width:7px;height:8px}.exp-stack{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.exp-cta{flex-wrap:wrap;gap:.9rem;margin-top:3.5rem;display:flex}@media (width<=760px){.exp-page{padding:7rem 0 4rem}.exp-item{border-left:2px solid var(--accent);grid-template-columns:1fr;gap:.9rem;padding-left:1.25rem}.exp-meta{border-left:none;padding-left:0}.exp-cta .btn{justify-content:center;width:100%}}.videos-grid{grid-template-columns:repeat(3,1fr);gap:1.75rem;display:grid}.video-card{border:1px solid var(--border);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));background:var(--surface-1);box-shadow:var(--shadow-card);transition:border-color .35s var(--ease-out-expo), transform .35s var(--ease-out-expo), box-shadow .35s var(--ease-out-expo);flex-direction:column;display:flex;overflow:hidden}.video-card:hover{border-color:var(--accent);box-shadow:var(--shadow-lift);transform:translateY(-4px)}.video-thumb{aspect-ratio:16/9;background:var(--surface);position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease-out-expo)}.video-card:hover .video-thumb img{transform:scale(1.04)}.video-thumb:after{content:"";pointer-events:none;background:linear-gradient(#0000 55%,#00000073 100%);position:absolute;inset:0}.video-play{background:var(--accent);width:52px;height:52px;color:var(--text-on-accent);opacity:0;transition:opacity .3s var(--ease-out-expo), transform .3s var(--ease-spring);box-shadow:0 6px 24px var(--accent-glow);border-radius:50%;place-items:center;margin:auto;display:grid;position:absolute;inset:0;transform:scale(.8)}.video-play svg{fill:currentColor;margin-left:3px}.video-card:hover .video-play{opacity:1;transform:scale(1)}.video-duration{color:#fff;font-family:var(--font-display);letter-spacing:.5px;background:#000000c7;border-radius:4px;padding:.15rem .45rem;font-size:.72rem;position:absolute;bottom:.6rem;right:.6rem}.video-body{padding:1.1rem 1.25rem 1.35rem}.video-meta{font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;align-items:center;gap:.55rem;margin-bottom:.6rem;font-size:.72rem;display:flex}.video-topic{color:var(--accent-ink)}.video-views{color:var(--text-muted)}.video-lang{border:1px solid var(--border-strong);color:var(--text-muted);letter-spacing:.5px;border-radius:4px;margin-left:auto;padding:.1rem .4rem}.video-card h3{color:var(--text);margin-bottom:.4rem;font-size:1.02rem;line-height:1.35}.video-original{color:var(--text-muted);font-size:.86rem;line-height:1.4}@media (width<=1024px){.videos-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (width<=640px){.videos-grid{grid-template-columns:1fr}}.hire{gap:3rem;display:grid}.hire-modes{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:1.5rem;display:grid}.hire-mode{background:var(--surface-1);border:1px solid var(--border);border-top:2px solid var(--accent);--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));padding:1.75rem 1.6rem 1.9rem}.hire-mode-num{font-family:var(--font-display);letter-spacing:2.4px;color:var(--accent-ink);font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:600;display:block}.hire-mode-title{font-family:var(--font-display);letter-spacing:.5px;text-transform:uppercase;color:var(--text);margin-top:.6rem;font-size:1.25rem;font-weight:700}.hire-mode-body{color:var(--text-dim);margin-top:.7rem;font-size:.99rem;line-height:1.65}.hire-cta{background:var(--surface-1);border:1px solid var(--border-strong);--chamfer:var(--chamfer-lg);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));justify-items:start;gap:1.4rem;padding:2.25rem clamp(1.5rem,3vw,2.5rem);display:grid}.hire-cta .hire-chip{margin-top:0}.hire-mail{background:var(--accent);color:var(--text-on-accent);font-family:var(--font-display);letter-spacing:.5px;box-shadow:0 0 24px var(--accent-glow);--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:background .3s var(--ease-out-expo), box-shadow .3s var(--ease-out-expo);align-items:center;gap:.85rem;padding:1rem 1.6rem;font-size:clamp(1.05rem,2.2vw,1.5rem);font-weight:700;display:inline-flex}.hire-mail:hover{background:var(--accent-light);box-shadow:0 0 44px color-mix(in srgb, var(--accent) 32%, transparent)}.hire-mail:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hire-mail-value{word-break:break-all}.hire-mail-arrow{transition:transform .3s var(--ease-out-expo)}.hire-mail:hover .hire-mail-arrow{transform:translate(3px,-3px)}.hire-note{max-width:56ch;color:var(--text-dim);font-size:.98rem;line-height:1.7}.hire-links{flex-wrap:wrap;gap:.75rem;list-style:none;display:flex}.hire-link{border:1px solid var(--border);background:var(--surface-1);min-height:44px;color:var(--text-dim);--chamfer:var(--chamfer-sm);clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:border-color .3s var(--ease-out-expo), color .3s var(--ease-out-expo);align-items:center;gap:.6rem;padding:.7rem 1.1rem;display:inline-flex}.hire-link:hover{border-color:var(--accent);color:var(--text)}.hire-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hire-link svg{color:var(--accent);flex:none}.hire-link-label{font-family:var(--font-display);letter-spacing:1.8px;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.hire-link-value{font-size:.94rem}@media (prefers-reduced-motion:reduce){.hire-mail,.hire-mail-arrow,.hire-link{transition:none}.hire-mail:hover .hire-mail-arrow{transform:none}}@media (width<=620px){.hire{gap:2.25rem}.hire-mail{justify-content:space-between;width:100%;font-size:1rem}.hire-link-value{display:none}}.footer{z-index:2;border-top:1px solid var(--border);padding:2rem 0;position:relative}.footer-content{justify-content:space-between;align-items:center;display:flex}.footer-logo{font-family:var(--font-display);font-size:1.2rem;font-weight:700}.footer-copy{color:var(--text-muted);font-size:.75rem}.footer-aside{border-top:1px solid var(--border);margin-top:1.1rem;padding-top:1rem}.footer-aside-link{color:var(--text-muted);transition:color .25s var(--ease-out-quart), border-color .25s var(--ease-out-quart);border-bottom:1px solid #0000;font-size:.75rem;line-height:1.6}.footer-aside-link:hover{color:var(--accent-ink);border-bottom-color:color-mix(in srgb, var(--accent) 45%, transparent)}.ol-mark{width:100%;height:100%;display:block;overflow:visible}.ol-badge-fill,.ol-letter{fill:var(--text);transition:fill .45s var(--ease-out-quart)}.ol-badge-draw{fill:none;stroke:var(--accent);stroke-width:10px;opacity:0}.nav-mark{flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.nav-mark .ol-letter{fill:var(--accent)}.nav-mark:hover .ol-badge-draw{opacity:.9}@media (width<=480px){.nav-mark{width:34px;height:34px}}.theme-toggle{border:1px solid var(--border-strong);background:var(--surface-1);height:34px;color:var(--text-dim);font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;transition:border-color .3s var(--ease-out-expo), color .3s var(--ease-out-expo), background .3s var(--ease-out-expo);flex:none;align-items:center;gap:.5rem;padding:0 .85rem 0 .7rem;font-size:.72rem;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);color:var(--text);background:var(--surface-2)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle-icon{flex:none;place-items:center;width:18px;height:18px;display:grid}.theme-toggle-icon svg{width:18px;height:18px;overflow:visible}.theme-toggle-label{display:none}:root[data-theme=dark] .theme-toggle-label--dark,:root[data-theme=light] .theme-toggle-label--light{display:inline}.theme-toggle-disc{transition:transform .5s var(--ease-spring);transform-origin:50%}.theme-toggle-rays line{transition:opacity .3s var(--ease-out-quart), transform .5s var(--ease-spring);transform-origin:50%}.theme-toggle-cut{transition:transform .5s var(--ease-spring)}:root[data-theme=dark] .theme-toggle-cut{transform:translate(9px,-9px)}:root[data-theme=dark] .theme-toggle-rays line{opacity:1}:root[data-theme=light] .theme-toggle-cut{transform:translate(3.5px,-3.5px)}:root[data-theme=light] .theme-toggle-rays line{opacity:0;transform:scale(.4)}:root[data-theme=light] .theme-toggle-disc{transform:rotate(-25deg)}@media (width<=720px){.theme-toggle{gap:0;padding:0 .6rem}.theme-toggle-label{display:none!important}}@media (prefers-reduced-motion:reduce){.theme-toggle-disc,.theme-toggle-rays line,.theme-toggle-cut{transition:none}}#smooth-content{flex-direction:column;display:flex}#smooth-content>*{order:100}#smooth-content>main{display:contents}.section.is-lead{padding-top:5rem}.section.is-lead .section-title{font-size:clamp(2.6rem,6vw,5rem)}.section.is-lead .section-header:before{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:64px;height:2px;margin-bottom:1.5rem;display:block}.section.is-folded{padding:0}.section.is-folded>.container{display:none}.section.is-folded.is-open>.container{padding-top:2rem;padding-bottom:4rem;display:block}.fold-bar{border:1px solid var(--border);background:var(--surface-1);width:min(1200px,100% - 4rem);color:var(--text-dim);text-align:left;clip-path:polygon(var(--chamfer) 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%, 0 var(--chamfer));transition:border-color .3s var(--ease-out-expo), background .3s var(--ease-out-expo), color .3s var(--ease-out-expo);align-items:center;gap:1rem;margin:0 auto;padding:1rem 1.25rem;display:flex}.section:not(.is-folded)>.fold-bar{display:none}.fold-bar:hover{border-color:var(--accent);background:var(--surface-2);color:var(--text)}.fold-bar:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fold-bar-title{font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;font-size:.85rem}.fold-bar-count{font-family:var(--font-display);background:var(--accent-soft);color:var(--accent-ink);padding:.15rem .5rem;font-size:.72rem}.fold-bar-hint{font-family:var(--font-display);letter-spacing:1px;color:var(--text-muted);margin-left:auto;font-size:.72rem}.fold-bar-chevron{transition:transform .35s var(--ease-out-expo);flex:none}.section.is-open>.fold-bar .fold-bar-chevron{transform:rotate(180deg)}.form-switch{border:1px solid var(--border-strong);background:var(--surface-1);align-items:center;gap:.15rem;height:34px;padding:0 .25rem;display:flex;position:relative}.form-switch-btn{z-index:1;font-family:var(--font-display);letter-spacing:1.5px;text-transform:uppercase;color:var(--text-muted);transition:color .3s var(--ease-out-expo);white-space:nowrap;padding:.4rem .9rem;font-size:.72rem;position:relative}.form-switch-btn:hover{color:var(--text)}.form-switch-btn.is-active{color:var(--text-on-accent)}.form-switch-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-switch-thumb{background:var(--accent);box-shadow:0 2px 12px var(--accent-glow);transition:transform .5s var(--ease-out-expo), width .5s var(--ease-out-expo), background .4s var(--ease-out-quart);pointer-events:none;z-index:0;position:absolute;top:3px;bottom:3px}@media (prefers-reduced-motion:reduce){.form-switch-thumb{transition:none}}@media (width<=1024px){.form-switch-btn{letter-spacing:1px;padding:.4rem .7rem;font-size:.72rem}}.reveal-up{opacity:0;transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo);transition-delay:var(--delay,0s);transform:translateY(40px)}.reveal-up.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo);transform:translate(-40px)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo);transform:translate(40px)}.reveal-right.visible{opacity:1;transform:translate(0)}.hero-title .char{will-change:transform;transition:transform .35s cubic-bezier(.16,1,.3,1),color .3s;display:inline-block;position:relative}#hexcursor{z-index:10001;pointer-events:none;opacity:.85;will-change:transform;transition:opacity .25s;position:fixed;top:0;left:0;overflow:visible}#hexcursor polygon{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linejoin:miter;transition:stroke-width .3s var(--ease-out-expo)}#hexcursor.is-locked{opacity:.6}#hexcursor.is-locked polygon{stroke-width:1px}#hexcursor.is-out{opacity:0}@media (pointer:coarse),(prefers-reduced-motion:reduce){#hexcursor{display:none}}.back-to-top{background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);z-index:100;opacity:0;pointer-events:none;width:auto;height:auto;transition:all .4s var(--ease-out-expo);backdrop-filter:blur(16px);color:var(--accent-light);font-family:var(--font-display);letter-spacing:1px;text-transform:uppercase;box-shadow:0 4px 20px rgba(var(--shadow-color), .3);border-radius:100px;align-items:center;gap:.45rem;padding:.6rem 1rem .6rem .85rem;font-size:.72rem;display:flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(16px)}.back-to-top:after{content:"Top"}.back-to-top.visible{opacity:1;pointer-events:all;transform:translateY(0)}.back-to-top:hover{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);box-shadow:0 0 30px color-mix(in srgb, var(--accent) 40%, transparent);transform:translateY(-3px)}@media (width>=2560px){.container{max-width:1800px}.section{padding:10rem 0}.section-title{font-size:4.5rem}.hero-title{letter-spacing:-5px;font-size:8rem}.about-grid{gap:6rem}.games-grid{grid-template-columns:repeat(3,1fr)}.plugins-grid{gap:3rem}}@media (width>=1440px) and (width<=2559px){.container{max-width:1400px}}@media (width>=769px) and (width<=1024px){.nav{padding:1rem 1.5rem}.section{padding:6rem 0}.hero-title{letter-spacing:-2px}.portfolio-grid,.games-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.nav-links{display:none}.nav-burger{display:flex}.nav{padding:.9rem 1.25rem}.hero-title{letter-spacing:-1px}.hero-cta{gap:.75rem}.hero-cta .btn{padding:.85rem 1.25rem;font-size:.8rem}.about-grid{grid-template-columns:1fr;gap:2rem}.about-photo-wrap{max-width:380px}html,body,a,button{cursor:auto!important}}@media (width<=540px){.games-grid{grid-template-columns:1fr}.section-desc{font-size:.95rem}.hero-cta{flex-direction:column;align-items:stretch}.hero-cta .btn{justify-content:center}}@media (width<=480px){.container{padding:0 1.25rem}.section{padding:4rem 0}.nav{padding:.8rem 1rem}.nav-logo-img{height:28px}.btn{padding:.8rem 1.1rem;font-size:.78rem}.game-card,.plugin-card{padding:1.1rem}.hero-badge{letter-spacing:1.8px;padding:.4rem .75rem;font-size:.62rem}}@media (width<=360px){.container{padding:0 .85rem}.hero-title{letter-spacing:-1px}.section{padding:3.5rem 0}}
