@font-face{font-family:Balsamiq Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/balsamiq-sans-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Balsamiq Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/balsamiq-sans-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/nunito-500-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/nunito-500-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/nunito-500-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/nunito-500-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--max-width: 1216px;--hero-max-width: 1168px;--radius: 14px;--font-body: "Nunito", "Trebuchet MS", "Segoe UI", sans-serif;--font-display: "Balsamiq Sans", "Trebuchet MS", cursive;--font-accent: "Balsamiq Sans", "Trebuchet MS", "Segoe UI", sans-serif;--bg: #fff9f0;--surface: #fffaf1;--surface-soft: #f3eadc;--surface-glass: rgba(255, 250, 241, .78);--text: #08233f;--heading: #08233f;--muted: #4c5968;--accent: #214f8d;--accent-strong: #173f75;--accent-2: #eda21a;--accent-3: #6f8b47;--project-status-dev-bg: #f5cc79;--project-status-dev-text: #7a5105;--project-status-released-bg: #d7e5bf;--project-status-released-text: #2f4b22;--project-status-shelved-bg: #d8d4cc;--project-status-shelved-text: #4b4f55;--project-status-contributed-bg: #eadcff;--project-status-contributed-text: #54347a;--award-medal-face: #f7ecd1;--award-medal-face-border: #9b7440;--award-medal-face-shadow: rgba(70, 46, 20, .2);--award-medal-mark: #1f251b;--paint: #285590;--paint-fill: color-mix(in srgb, var(--accent) 88%, #000000);--border: #ded2c2;--border-strong: #cbbca9;--shadow: 0 18px 42px rgba(52, 42, 28, .1);--shadow-soft: 0 10px 28px rgba(52, 42, 28, .08);--shadow-accent: 0 20px 44px color-mix(in srgb, var(--accent) 18%, transparent);--shadow-accent-soft: 0 20px 46px color-mix(in srgb, var(--accent) 12%, transparent);--shadow-button: 0 12px 26px color-mix(in srgb, var(--accent) 18%, transparent);--button-text: #ffffff;--image-filter: saturate(1.08) contrast(1.04);--focus-ring: 3px solid color-mix(in srgb, var(--accent) 48%, transparent);--focus-ring-soft: 3px solid color-mix(in srgb, var(--accent) 42%, transparent);--focus-halo: 0 0 0 3px color-mix(in srgb, var(--accent) 38%, transparent);--hover-lift: translateY(-2px);--hover-lift-subtle: translateY(-1px);--hover-lift-strong: translateY(-4px);--surface-hover: color-mix(in srgb, var(--accent) 4%, var(--bg));--surface-hover-strong: color-mix(in srgb, var(--accent) 9%, var(--surface));--surface-tint: color-mix(in srgb, var(--accent) 5%, var(--bg));--motion-button: .12s ease;--motion-fast: .14s ease;--motion-medium: .22s ease;--motion-tooltip: .18s ease;--motion-gallery: .9s;--toggle-accent: #eda21a;--toggle-thumb-border: #eda21a;--toggle-shadow-color: rgba(52, 42, 28, .08);--brush-mask: url(/assets/textures/role-brush.webp) center / 100% 100% no-repeat;--nav-brush-mask: url(/assets/textures/nav-brush.webp) center / 100% 100% no-repeat;--paint-texture: url(/assets/textures/paint-texture.webp);--theme-transition: 0ms;--theme-transition-text: 0ms;--theme-transition-background: background-color var(--theme-transition);--theme-transition-border: border-color var(--theme-transition);--theme-transition-color: color var(--theme-transition-text);--theme-transition-filter: filter var(--theme-transition);--theme-transition-opacity: opacity var(--theme-transition);--theme-transition-shadow: box-shadow var(--theme-transition);--theme-transition-page-background: background-color var(--theme-transition);--theme-transition-surface: var(--theme-transition-background), var(--theme-transition-border), var(--theme-transition-shadow), var(--theme-transition-color);color-scheme:light;font-family:var(--font-body)}:root[data-theme-ready]{--theme-transition: .36s ease;--theme-transition-text: var(--motion-medium)}:root[data-theme=light]{--bg: #fff9f0;--surface: #fffaf1;--surface-soft: #f3eadc;--surface-glass: rgba(255, 250, 241, .8);--text: #08233f;--heading: #08233f;--muted: #4c5968;--accent: #214f8d;--accent-strong: #173f75;--accent-2: #eda21a;--accent-3: #6f8b47;--project-status-dev-bg: #f5cc79;--project-status-dev-text: #7a5105;--project-status-released-bg: #d7e5bf;--project-status-released-text: #2f4b22;--project-status-shelved-bg: #d8d4cc;--project-status-shelved-text: #4b4f55;--project-status-contributed-bg: #eadcff;--project-status-contributed-text: #54347a;--award-medal-face: #f7ecd1;--award-medal-face-border: #9b7440;--award-medal-face-shadow: rgba(70, 46, 20, .2);--award-medal-mark: #1f251b;--paint: #285590;--border: #ded2c2;--border-strong: #cbbca9;--shadow: 0 18px 42px rgba(52, 42, 28, .1);--shadow-soft: 0 10px 28px rgba(52, 42, 28, .08);--shadow-accent: 0 20px 44px color-mix(in srgb, var(--accent) 18%, transparent);--shadow-accent-soft: 0 20px 46px color-mix(in srgb, var(--accent) 12%, transparent);--shadow-button: 0 12px 26px color-mix(in srgb, var(--accent) 18%, transparent);--image-filter: saturate(1.08) contrast(1.04);--toggle-accent: #eda21a;--toggle-thumb-border: #eda21a;--toggle-shadow-color: rgba(52, 42, 28, .08);color-scheme:light}:root[data-theme=dark]{--bg: #06111f;--surface: #0a1729;--surface-soft: #101f36;--surface-glass: rgba(10, 23, 41, .84);--text: #f6f2ff;--heading: #fffaff;--muted: #c9c2db;--accent: #a885ff;--accent-strong: #8f6cff;--accent-2: #b995ff;--accent-3: #6d58d5;--project-status-dev-bg: #5d4321;--project-status-dev-text: #ffe2a3;--project-status-released-bg: #425f43;--project-status-released-text: #f1ffe8;--project-status-shelved-bg: #3f4652;--project-status-shelved-text: #f2f0e9;--project-status-contributed-bg: #523a76;--project-status-contributed-text: #f6ecff;--award-medal-face: #efe0bc;--award-medal-face-border: #b88948;--award-medal-face-shadow: rgba(0, 0, 0, .36);--award-medal-mark: #171c16;--paint: #7f58e8;--border: #293a56;--border-strong: #405474;--shadow: 0 20px 50px rgba(0, 0, 0, .34);--shadow-soft: 0 12px 34px rgba(0, 0, 0, .28);--shadow-accent: 0 20px 44px color-mix(in srgb, var(--accent) 20%, transparent);--shadow-accent-soft: 0 20px 46px color-mix(in srgb, var(--accent) 14%, transparent);--shadow-button: 0 12px 26px color-mix(in srgb, var(--accent) 20%, transparent);--image-filter: saturate(1.14) contrast(1.12) brightness(.88);--toggle-accent: #a885ff;--toggle-thumb-border: color-mix(in srgb, #a885ff 70%, #405474);--toggle-shadow-color: rgba(0, 0, 0, .24);color-scheme:dark}@media(prefers-reduced-motion:reduce){:root[data-theme-ready]{--theme-transition: 0ms;--theme-transition-text: 0ms}}*{box-sizing:border-box}html{background-color:var(--bg);overflow-x:hidden;overflow-x:clip;transition:var(--theme-transition-page-background),var(--theme-transition-color)}body{position:relative;margin:0;min-width:320px;background-color:transparent;color:var(--text);font-family:var(--font-body);font-size:16px;font-weight:600;line-height:1.55;overflow-x:hidden;overflow-x:clip;transition:var(--theme-transition-color)}a{color:inherit;text-decoration:none}p,h1,h2,h3{margin:0}img{display:block;max-width:100%}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:12px;left:16px;z-index:100;border:1px solid color-mix(in srgb,var(--accent) 46%,var(--border));border-radius:8px;background-color:color-mix(in srgb,var(--surface) 94%,var(--bg));box-shadow:var(--shadow-soft);color:var(--accent-strong);font-family:var(--font-body);font-size:.92rem;font-weight:900;line-height:1;padding:12px 14px;transform:translateY(calc(-100% - 18px));transition:var(--theme-transition-surface),transform var(--motion-fast)}.skip-link:focus-visible{outline:var(--focus-ring);outline-offset:3px;transform:translateY(0)}main{position:relative;z-index:2}main:focus{outline:none}@media(max-width:560px){body{font-size:15px}}.asset-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.5rem;height:1.5rem;color:currentColor}.asset-icon>svg,.asset-icon>img{display:block;width:100%;height:100%}.asset-icon>svg{fill:currentColor}.asset-icon>img{object-fit:contain}.site-header{position:sticky;top:0;z-index:20;background-color:var(--bg);transition:var(--theme-transition-page-background)}.site-nav{width:min(100% - 32px,var(--max-width));margin-inline:auto}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:10px 0}.brand{display:inline-flex;align-items:center;flex:0 0 auto;gap:12px;color:var(--heading);font-family:var(--font-display);font-size:clamp(1.48rem,2vw,1.78rem);font-weight:400;line-height:1;white-space:nowrap;transition:var(--theme-transition-color)}.brand img{width:48px;height:48px;border:0px solid transparent;border-radius:50%;background:transparent;filter:var(--image-filter);image-rendering:pixelated;object-fit:contain;object-position:center;padding:0;transition:var(--theme-transition-filter)}.nav-cluster,.control-cluster,.nav-links{display:flex;align-items:center;gap:10px}.nav-cluster{min-width:0;justify-content:flex-end}.control-cluster{flex:0 0 auto}.nav-links{flex-wrap:wrap;justify-content:flex-end}@media(min-width:900px){.nav-links{padding-block-start:3px}}.nav-links a{position:relative;border-radius:8px;padding:9px 12px 12px;color:var(--text);font-family:var(--font-accent);font-size:1.18rem;font-weight:400;line-height:1;transition:var(--theme-transition-color),transform var(--motion-fast)}.nav-links a:after{content:"";position:absolute;left:50%;bottom:1px;width:70%;height:4px;background-color:var(--paint);-webkit-mask:var(--nav-brush-mask);mask:var(--nav-brush-mask);opacity:0;transform:translate(-50%);pointer-events:none;transition:var(--theme-transition-background)}.nav-links a:hover,.nav-links a[aria-current=page]{color:var(--accent)}.nav-links a:hover,.theme-toggle:hover,.leaves-toggle:hover,.leaves-toggle:focus-visible,.theme-toggle:focus-visible{transform:var(--hover-lift-subtle)}.nav-links a:focus-visible{color:var(--accent);outline:var(--focus-ring-soft);outline-offset:3px}.nav-links a[aria-current=page]:after{opacity:1}.theme-toggle,.leaves-toggle{position:relative;align-items:center;flex:0 0 auto;height:40px;cursor:pointer;padding:0}.theme-toggle{--toggle-height: 40px;--toggle-width: 80px;--toggle-thumb-gap: 0px;--toggle-thumb-size: calc(var(--toggle-height) - (var(--toggle-thumb-gap) * 2));--toggle-thumb-travel: calc(var(--toggle-width) - var(--toggle-thumb-size) - (var(--toggle-thumb-gap) * 2));overflow:hidden;border:0;border-radius:999px;background-color:color-mix(in srgb,var(--surface) 90%,var(--bg));box-shadow:inset 0 0 0 1px var(--border),inset 0 1px 2px color-mix(in srgb,#ffffff 24%,transparent),0 2px 7px var(--toggle-shadow-color);display:inline-grid;grid-template-columns:1fr 1fr;height:var(--toggle-height);width:var(--toggle-width);transition:var(--theme-transition-background),var(--theme-transition-shadow),transform var(--motion-fast)}.leaves-toggle{display:inline-flex;justify-content:center;width:32px;border:0;background:transparent;color:color-mix(in srgb,var(--accent-3) 76%,var(--text));transition:var(--theme-transition-color),transform var(--motion-fast)}.theme-toggle:focus,.leaves-toggle:focus{outline:none}.theme-toggle:focus-visible,.leaves-toggle:focus-visible{outline:2px solid color-mix(in srgb,var(--toggle-accent) 70%,transparent);outline-offset:3px}.theme-toggle:before{content:"";position:absolute;box-sizing:border-box;z-index:0;top:var(--toggle-thumb-gap);left:var(--toggle-thumb-gap);width:var(--toggle-thumb-size);height:var(--toggle-thumb-size);border:1px solid var(--toggle-thumb-border);border-radius:999px;background-color:var(--surface);box-shadow:0 1px 4px var(--toggle-shadow-color);transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-shadow),transform var(--theme-transition)}:root[data-theme=dark] .theme-toggle:before{background-color:var(--surface-soft);transform:translate(var(--toggle-thumb-travel))}.leaves-toggle[aria-pressed=false]{color:color-mix(in srgb,var(--muted) 68%,var(--surface))}.leaf-icon{display:block;width:22px;height:22px;transition:opacity var(--motion-fast),transform var(--motion-fast)}.leaves-toggle[aria-pressed=true] .leaf-icon{opacity:1;transform:scale(1.07)}.leaves-toggle[aria-pressed=false] .leaf-icon{opacity:.48;transform:scale(.9)}.theme-icon{position:relative;z-index:1;display:block;justify-self:center;width:22px;height:22px;--theme-icon-scale: 1;color:var(--muted);transform:scale(var(--theme-icon-scale));transition:var(--theme-transition-color),var(--theme-transition-opacity),transform var(--theme-transition)}.theme-icon-light{color:var(--accent-2)}.theme-icon-dark{color:color-mix(in srgb,var(--muted) 72%,var(--surface))}:root[data-theme=dark] .theme-icon-light{color:color-mix(in srgb,var(--muted) 64%,var(--surface))}:root[data-theme=dark] .theme-icon-dark{color:var(--toggle-accent)}:root[data-theme=light] .theme-icon-dark,:root[data-theme=dark] .theme-icon-light{opacity:.48;--theme-icon-scale: .9}:root[data-theme=light] .theme-icon-light,:root[data-theme=dark] .theme-icon-dark{opacity:1;--theme-icon-scale: 1.07}@media(max-width:899px){.site-nav{align-items:flex-start;flex-direction:column;gap:10px;padding-block:12px}.nav-cluster{width:100%;justify-content:space-between}}@media(max-width:560px){.site-nav{width:min(100% - 22px,var(--max-width))}.brand{font-size:1.42rem}.brand img{width:36px;height:36px}.nav-cluster{align-items:flex-start;gap:8px}.nav-links{gap:4px}.nav-links a{padding-inline:7px;font-size:1.04rem}.theme-toggle{--toggle-height: 38px;--toggle-width: 76px}.leaves-toggle{width:32px;height:38px}}.falling-leaves{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:paint}:root[data-leaves=off] .falling-leaves{display:none}.falling-leaves-layer{position:absolute;inset:0}.falling-leaf{--leaf-texture-image: url(/assets/images/leaf.webp);--leaf-texture-opacity: .58;--leaf-fill: color-mix(in srgb, var(--bg) 38%, var(--accent-3));--leaf-filter: saturate(.94) contrast(1.08);--leaf-shape-mask: url(/assets/images/leaf.webp) center / contain no-repeat;position:absolute;top:0;left:0;width:var(--leaf-size);aspect-ratio:1;background-color:var(--leaf-fill);filter:var(--leaf-filter);isolation:isolate;transform-origin:50% 56%;-webkit-mask:var(--leaf-shape-mask);mask:var(--leaf-shape-mask);will-change:transform;transition:var(--theme-transition-background),var(--theme-transition-filter)}.falling-leaf:after{position:absolute;inset:0;background:var(--leaf-texture-image) center / contain no-repeat;content:"";mix-blend-mode:luminosity;opacity:var(--leaf-texture-opacity);pointer-events:none;transition:var(--theme-transition-opacity)}:root[data-theme=dark] .falling-leaf{--leaf-filter: saturate(.88) contrast(1.12) brightness(.82)}.falling-leaves-layer-back .falling-leaf{--leaf-texture-image: url(/assets/images/leaf-blur-back.webp);--leaf-texture-opacity: .16;--leaf-fill: color-mix(in srgb, var(--bg) 76%, var(--accent-3))}.falling-leaves-layer-mid .falling-leaf{--leaf-texture-image: url(/assets/images/leaf-blur-mid.webp);--leaf-texture-opacity: .28;--leaf-fill: color-mix(in srgb, var(--bg) 60%, var(--accent-3))}.falling-leaves-layer-front .falling-leaf{--leaf-texture-image: url(/assets/images/leaf.webp);--leaf-texture-opacity: .5;--leaf-fill: color-mix(in srgb, var(--bg) 36%, var(--accent-3))}@media(max-width:560px){.falling-leaf{--leaf-filter: none}.falling-leaf:after{mix-blend-mode:normal}}@media(prefers-reduced-motion:reduce){.falling-leaves{display:none}}.button{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:58px;border:2px solid transparent;border-radius:13px;background-color:var(--paint-fill);background-blend-mode:multiply;background-image:var(--paint-texture);background-position:center;background-repeat:repeat;background-size:150px 150px;box-shadow:var(--shadow-button);color:var(--button-text);font-family:var(--font-body);font-size:1rem;font-weight:800;line-height:1;padding:13px 25px 15px;text-shadow:0 1px 0 color-mix(in srgb,#000000 24%,transparent);transition:var(--theme-transition-surface),transform var(--motion-button)}.button:hover{transform:var(--hover-lift-subtle)}.button:focus-visible{outline:var(--focus-ring);outline-offset:3px}.button-icon{width:24px;height:24px}.button-2{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background-color:var(--bg);background-blend-mode:normal;background-image:none;box-shadow:none;color:var(--accent);text-shadow:none}.button-2:hover{border-color:color-mix(in srgb,var(--accent) 66%,var(--border));background-color:color-mix(in srgb,var(--accent) 7%,var(--bg))}:root[data-theme=dark] .button-2{border-color:color-mix(in srgb,var(--accent-2) 56%,var(--border-strong));color:var(--accent-2)}:root[data-theme=dark] .button-2:hover{background-color:color-mix(in srgb,var(--accent-2) 10%,var(--bg))}.text-link{color:var(--accent)}.text-link{display:inline-flex;align-items:center;align-self:center;gap:8px;font-family:var(--font-accent);font-size:1.22rem;font-weight:400;line-height:1;white-space:nowrap;transition:var(--theme-transition-color),transform var(--motion-fast)}.text-link:hover,.text-link:focus-visible{transform:var(--hover-lift-subtle)}.text-link:focus-visible{outline:var(--focus-ring-soft);outline-offset:3px}.text-link:after{content:"";flex:0 0 auto;width:1.05em;height:.78em;background-color:currentColor;clip-path:polygon(0 42%,62% 42%,62% 18%,100% 50%,62% 82%,62% 58%,0 58%)}.hero{width:min(100% - 32px,var(--hero-max-width));margin-inline:auto;position:relative;display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:center;min-height:670px;padding:0 0 4px}.hero-content{position:relative;z-index:3;min-width:0;width:100%;max-width:520px}h1,h2,h3{color:var(--heading);font-family:var(--font-display);font-weight:400;letter-spacing:0;transition:var(--theme-transition-color)}h1{margin-top:18px;max-width:560px;font-size:clamp(5.2rem,9vw,8.2rem);line-height:.78;text-wrap:balance}.hero-title{color:var(--heading);font-size:clamp(4.1rem,6.45vw,6.4rem);font-weight:700;line-height:.94;padding-block:.04em .08em;width:fit-content;max-width:min(calc(100vw - 32px),680px);text-wrap:initial}.hero-title-line{display:block}.hero-title-line-nowrap{white-space:nowrap}h2{font-size:clamp(2.15rem,4vw,2.9rem);line-height:1}h3{font-size:1.55rem;line-height:1.06}.hero-role{position:relative;isolation:isolate;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin-top:18px;color:#fff;font-family:var(--font-display);font-size:clamp(1.22rem,2.45vw,1.72rem);font-weight:800;letter-spacing:0;line-height:1.05;padding:18px clamp(38px,3.6vw,48px) 13px;text-align:center;text-shadow:0 1px 0 color-mix(in srgb,#000000 24%,transparent);white-space:nowrap}.hero-role:before{content:"";position:absolute;inset:0;z-index:-1;background-color:var(--paint-fill);background-blend-mode:multiply;background-image:var(--paint-texture);background-position:center;background-repeat:repeat;background-size:150px 150px;-webkit-mask:var(--brush-mask);mask:var(--brush-mask);pointer-events:none;transition:var(--theme-transition-background)}.hero-intro{margin-top:24px;max-width:440px;color:var(--text);font-size:1.08rem;font-weight:700;line-height:1.72;transition:var(--theme-transition-color)}.hero-intro-line{display:block}.hero-intro-line+.hero-intro-line{margin-top:.35rem}.hero-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:14px;margin-top:25px}.hero-actions .button{flex:1 1 0;min-width:0;white-space:nowrap}.hero-art{position:relative;z-index:1;min-height:650px;margin-left:-210px;margin-right:-18px;overflow:hidden;isolation:isolate;transform:translateY(16px)}.theme-asset{position:absolute;inset:0;width:100%;height:100%;background-position:center right;background-repeat:no-repeat;background-size:contain;filter:var(--image-filter);image-rendering:pixelated;opacity:0;transition:var(--theme-transition-filter),var(--theme-transition-opacity)}.theme-asset-light{background-image:var(--theme-asset-light-image)}.theme-asset-dark{background-image:var(--theme-asset-dark-image)}:root[data-theme=light] .theme-asset-light,:root[data-theme=dark] .theme-asset-dark{opacity:1}@media(min-width:900px)and (max-width:1040px){.hero{grid-template-columns:1fr;min-height:590px;overflow:hidden;padding:0 0 36px}.hero:after{content:"";position:absolute;inset:0;z-index:2;background-image:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 90%,transparent) 44%,color-mix(in srgb,var(--bg) 54%,transparent) 68%,transparent 100%);pointer-events:none}.hero-content{max-width:620px}.hero-art{position:absolute;top:50%;right:-116px;z-index:1;width:min(700px,80vw);height:min(700px,80vw);min-height:0;margin:0;transform:translateY(calc(-50% + 16px))}.theme-asset{background-position:center right}}@media(max-width:899px){.hero{grid-template-columns:1fr;min-height:590px;overflow:hidden;padding:0 0 36px}.hero:after{content:"";position:absolute;inset:0;z-index:2;background-image:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 90%,transparent) 44%,color-mix(in srgb,var(--bg) 54%,transparent) 68%,transparent 100%);pointer-events:none}.hero-content{max-width:620px}.hero-art{position:absolute;top:50%;right:-116px;z-index:1;width:min(700px,80vw);height:min(700px,80vw);min-height:0;margin:0;transform:translateY(calc(-50% + 16px))}.theme-asset{background-position:center right}}@media(max-width:560px){h1{font-size:clamp(4.1rem,18vw,5.45rem)}.hero{width:min(100% - 22px,var(--hero-max-width));padding-top:0}.hero-title{font-size:clamp(2.85rem,13.4vw,4rem);max-width:calc(100vw - 22px)}h2{font-size:2.25rem}.hero-content{max-width:none}.hero-intro,.hero-actions{max-width:368px}.hero-actions{gap:8px}.hero-actions .button{min-height:54px;gap:7px;padding:11px 8px 13px;font-size:clamp(.82rem,3.7vw,.95rem)}.hero-actions .button-icon{width:21px;height:21px}.hero-role{font-size:clamp(.86rem,4.15vw,1.13rem);padding:13px clamp(24px,6.5vw,32px) 9px}}@media(max-width:640px){.hero{display:block;min-height:0;overflow:visible;padding:0 0 18px}.hero:after{content:none}.hero-content{box-sizing:border-box;max-width:42rem;margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2rem);text-align:left}.hero-art{position:relative;top:auto;right:auto;width:clamp(288px,80vw,374px);height:auto;aspect-ratio:1;min-height:0;margin:20px auto 0;overflow:visible;transform:translate(-4%,12px)}.theme-asset{background-position:center}}@media(max-width:420px){.hero-art{width:clamp(274px,86vw,338px)}}.page-hero{width:min(100% - 32px,var(--max-width));margin-inline:auto;padding:58px 0 22px}.page-hero p,.section-heading p{color:var(--muted);transition:var(--theme-transition-color)}.page-hero h1{max-width:860px;font-size:clamp(3.5rem,7vw,5.8rem);line-height:.86}.page-hero p:last-child{margin-top:18px;max-width:680px;color:var(--text);font-size:1.08rem;font-weight:700;transition:var(--theme-transition-color)}.section{width:min(100% - 32px,var(--max-width));margin-inline:auto;padding:20px 0 30px}.contact-section{padding-top:0}.section-heading{display:grid;gap:8px;margin-bottom:18px}.section-heading.split{gap:14px}.section-heading.split>p{max-width:560px}@media(min-width:720px){.section-heading.split{grid-template-columns:minmax(0,1fr) auto;align-items:end}}@media(max-width:560px){.page-hero,.section{width:min(100% - 22px,var(--max-width))}}.project-image-frame{position:relative;isolation:isolate;display:block;overflow:hidden;background-color:var(--surface-soft);transition:var(--theme-transition-background)}.project-image-frame-backdrop{position:absolute;inset:-18px;z-index:0;width:calc(100% + 36px);max-width:none;height:calc(100% + 36px);filter:var(--image-filter) blur(18px) saturate(1.16);image-rendering:pixelated;object-fit:cover;transform:scale(1.04);pointer-events:none;transition:var(--theme-transition-filter)}.project-image-frame:after{position:absolute;inset:0;z-index:1;background-color:color-mix(in srgb,var(--surface-soft) 18%,transparent);content:"";pointer-events:none;transition:var(--theme-transition-background)}.project-image-frame-img{position:relative;z-index:2;width:100%;height:100%;filter:var(--image-filter);image-rendering:pixelated;object-fit:contain;transition:var(--theme-transition-filter)}.company-logo-tone{--company-logo-filter: var(--image-filter);filter:var(--company-logo-filter);transition:var(--theme-transition-filter)}.company-logo-tone-light-light,:root[data-theme=dark] .company-logo-tone-dark-light{--company-logo-filter: brightness(0) invert(1)}.company-logo-tone-light-dark,:root[data-theme=dark] .company-logo-tone-dark-dark{--company-logo-filter: brightness(0)}.project-wheel-company-badge{--project-wheel-company-badge-padding: 4px;position:absolute;right:9px;bottom:9px;z-index:3;display:block;width:58px;height:58px;box-sizing:border-box;border-radius:999px;overflow:hidden;background:transparent;color:var(--accent);isolation:isolate;transition:var(--theme-transition-color)}.project-wheel-company-badge-back{position:absolute;inset:0;z-index:0;border-radius:inherit;background-color:var(--surface);pointer-events:none;transition:var(--theme-transition-background)}.project-wheel-company-badge-icon{position:absolute;inset:var(--project-wheel-company-badge-padding);z-index:1;width:calc(100% - (var(--project-wheel-company-badge-padding) * 2));height:calc(100% - (var(--project-wheel-company-badge-padding) * 2));border-radius:inherit;filter:var(--company-logo-filter, var(--image-filter)) drop-shadow(0 3px 5px rgba(0,0,0,.24));image-rendering:pixelated;object-fit:contain;transition:var(--theme-transition-filter)}.project-wheel-company-badge-label{position:absolute;inset:var(--project-wheel-company-badge-padding);z-index:1;display:grid;place-items:center;font-family:var(--font-display);font-size:1.15rem;line-height:1}.project-grid{display:grid;gap:22px}.project-card{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg);box-shadow:var(--shadow);transition:var(--theme-transition-surface)}.project-grid{grid-template-columns:1fr}.project-card-shell{position:relative}.project-card{display:block;overflow:hidden;padding:9px;color:inherit;text-decoration:none;transition:var(--theme-transition-surface),transform var(--motion-fast)}.project-card:hover{transform:var(--hover-lift)}.project-card:focus-visible{outline:var(--focus-ring);outline-offset:4px}.project-card-awards{top:0;right:clamp(10px,1.6vw,18px)}.project-card-awards:before{top:3px;width:clamp(34px,3.8vw,44px);height:5px;background-image:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,transparent) 0%,color-mix(in srgb,var(--accent) 7%,transparent) 48%,transparent 76%)}.project-card-awards .project-award-list{gap:6px}.project-card-awards .project-award{--award-medal-width: clamp(42px, 4.2vw, 52px)}.project-card-awards .project-award-medal-base{filter:drop-shadow(0 2px 3px color-mix(in srgb,var(--accent) 10%,transparent))}.project-image{width:100%;aspect-ratio:16 / 9;border-radius:9px}.project-image .project-card-company-badge{right:8px;bottom:8px;width:56px;height:56px}.project-body{display:grid;gap:6px;padding:11px 8px 6px}.project-company{display:none}.project-card h3{font-size:1.52rem}.project-card p{color:var(--muted);font-size:.98rem;font-weight:700;line-height:1.42;transition:var(--theme-transition-color)}@media(min-width:720px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1040px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.project-tag-list{display:flex;flex-wrap:wrap;align-items:flex-start;column-gap:18px;row-gap:8px;margin-top:6px}.project-tag-group{display:inline-flex;flex-wrap:wrap;gap:8px;min-width:0}.project-tag{--tag-bg: #e9e0d2;--tag-text: #394353;--tag-border: #d2c5b5;--tag-dark-bg: #283348;--tag-dark-text: #f1f0eb;--tag-dark-border: #40506a;display:inline-flex;align-items:center;min-height:28px;border:1px solid var(--tag-border);border-radius:7px;background-color:var(--tag-bg);color:var(--tag-text);font-family:var(--font-body);font-size:.82rem;font-weight:800;line-height:1;padding:7px 11px;transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-color),var(--theme-transition-shadow)}.project-tag[data-tag-style=website]{--tag-bg: #cfe9cd;--tag-text: #244f31;--tag-border: #acd4ad;--tag-dark-bg: #31563a;--tag-dark-text: #eefbe9;--tag-dark-border: #588963}.project-tag[data-tag-style=video]{--tag-bg: #ffd4c7;--tag-text: #77402e;--tag-border: #efb29d;--tag-dark-bg: #704333;--tag-dark-text: #ffece5;--tag-dark-border: #9c6757}.project-tag[data-tag-style=game]{--tag-bg: #f5cc79;--tag-text: #6f4800;--tag-border: #dea949;--tag-dark-bg: #665024;--tag-dark-text: #fff0bf;--tag-dark-border: #a57a34}.project-tag[data-tag-style=map]{--tag-bg: #d8ead2;--tag-text: #33582e;--tag-border: #bad6b1;--tag-dark-bg: #3a5b38;--tag-dark-text: #efffed;--tag-dark-border: #668d61}.project-tag[data-tag-style=mod]{--tag-bg: #d6e3c3;--tag-text: #3d5523;--tag-border: #b9ce91;--tag-dark-bg: #405438;--tag-dark-text: #f2ffe8;--tag-dark-border: #6f884f}.project-tag[data-tag-style=party-game]{--tag-bg: #ffe0a6;--tag-text: #674900;--tag-border: #e8bd69;--tag-dark-bg: #654d23;--tag-dark-text: #fff1ca;--tag-dark-border: #9a7437}.project-tag[data-tag-style=web]{--tag-bg: #e8f0ff;--tag-text: #254c78;--tag-border: #c4d5f1;--tag-dark-bg: #263e60;--tag-dark-text: #edf4ff;--tag-dark-border: #526d96}.project-tag[data-tag-style=youtube]{--tag-bg: #ffe0dc;--tag-text: #83372f;--tag-border: #f2b6ae;--tag-dark-bg: #693733;--tag-dark-text: #ffecea;--tag-dark-border: #9b5f59}.project-tag[data-tag-style=pc]{--tag-bg: #dce9f2;--tag-text: #304b61;--tag-border: #bfd1df;--tag-dark-bg: #2c4258;--tag-dark-text: #edf6ff;--tag-dark-border: #5a7088}.project-tag[data-tag-style=steam]{--tag-bg: #d7e3f8;--tag-text: #24476f;--tag-border: #b6c9eb;--tag-dark-bg: #243c5b;--tag-dark-text: #eaf3ff;--tag-dark-border: #526b91}.project-tag[data-tag-style=vr]{--tag-bg: #dfe2ff;--tag-text: #383d7a;--tag-border: #c2c5f4;--tag-dark-bg: #363a67;--tag-dark-text: #f0f1ff;--tag-dark-border: #6167a3}.project-tag[data-tag-style=mobile]{--tag-bg: #d7efe9;--tag-text: #28564f;--tag-border: #b3d8d0;--tag-dark-bg: #2f554f;--tag-dark-text: #eafffb;--tag-dark-border: #5e847d}.project-tag[data-tag-style=portfolio]{--tag-bg: #efe1bf;--tag-text: #5e4a16;--tag-border: #d8c28c;--tag-dark-bg: #5a4b29;--tag-dark-text: #fff3ce;--tag-dark-border: #87713d}.project-tag[data-tag-style=puzzle]{--tag-bg: #e7d8f5;--tag-text: #52376e;--tag-border: #ceb4e7;--tag-dark-bg: #4d3d67;--tag-dark-text: #f5edff;--tag-dark-border: #79679b}.project-tag[data-tag-style=group-play]{--tag-bg: #ffe2be;--tag-text: #664617;--tag-border: #e8c086;--tag-dark-bg: #604a2c;--tag-dark-text: #fff0d4;--tag-dark-border: #917347}.project-tag[data-tag-style=animation]{--tag-bg: #f1d6ee;--tag-text: #693366;--tag-border: #deb4da;--tag-dark-bg: #65375f;--tag-dark-text: #ffecfb;--tag-dark-border: #965f8d}.project-tag[data-tag-style=action]{--tag-bg: #ffd3bd;--tag-text: #743d19;--tag-border: #eead88;--tag-dark-bg: #6d3f25;--tag-dark-text: #ffeadf;--tag-dark-border: #9d694e}.project-tag[data-tag-style=arcade]{--tag-bg: #d8e7ff;--tag-text: #2c4d79;--tag-border: #b8d0f3;--tag-dark-bg: #2e466b;--tag-dark-text: #edf5ff;--tag-dark-border: #5e78a2}.project-tag[data-tag-style=age-of-mythology]{--tag-bg: #e1d6bd;--tag-text: #58431d;--tag-border: #cbb383;--tag-dark-bg: #55452d;--tag-dark-text: #fff0c9;--tag-dark-border: #826b43}.project-tag[data-tag-style=cozy]{--tag-bg: #ffe1bd;--tag-text: #674612;--tag-border: #e8c083;--tag-dark-bg: #60492b;--tag-dark-text: #fff0d2;--tag-dark-border: #927147}.project-tag[data-tag-style=adventure]{--tag-bg: #d8ead2;--tag-text: #33582e;--tag-border: #bad6b1;--tag-dark-bg: #3a5b38;--tag-dark-text: #efffed;--tag-dark-border: #668d61}.project-tag[data-tag-style=hidden-object]{--tag-bg: #e3d5ec;--tag-text: #513669;--tag-border: #cab2de;--tag-dark-bg: #4b3d62;--tag-dark-text: #f4edff;--tag-dark-border: #766597}.project-tag[data-tag-style=memory-game]{--tag-bg: #f2ddc7;--tag-text: #604420;--tag-border: #d9bb92;--tag-dark-bg: #5b482e;--tag-dark-text: #fff0d8;--tag-dark-border: #887045}.project-tag[data-tag-style=training]{--tag-bg: #d5e9f0;--tag-text: #2d5260;--tag-border: #b4d2dc;--tag-dark-bg: #315260;--tag-dark-text: #edfbff;--tag-dark-border: #5f8190}.project-tag[data-tag-style=interactive-experience]{--tag-bg: #d9def9;--tag-text: #3a4675;--tag-border: #bdc5ec;--tag-dark-bg: #374463;--tag-dark-text: #eef2ff;--tag-dark-border: #66749c}.project-tag[data-tag-style=strategy]{--tag-bg: #e4e0c7;--tag-text: #544d24;--tag-border: #ccc393;--tag-dark-bg: #504d31;--tag-dark-text: #f8f2d1;--tag-dark-border: #7b754a}.project-tag[data-tag-style=autobattler]{--tag-bg: #ead6ce;--tag-text: #65382e;--tag-border: #d4aca1;--tag-dark-bg: #5c3b36;--tag-dark-text: #ffede8;--tag-dark-border: #8b665f}.project-tag[data-tag-style=card-game]{--tag-bg: #d8e4f6;--tag-text: #2d4a70;--tag-border: #b8cae6;--tag-dark-bg: #2c435f;--tag-dark-text: #edf5ff;--tag-dark-border: #5c7397}.project-tag[data-tag-style=modding]{--tag-bg: #d7e5d2;--tag-text: #345730;--tag-border: #b7d0ad;--tag-dark-bg: #37563a;--tag-dark-text: #efffeb;--tag-dark-border: #638d5f}.project-tag[data-tag-style=survival]{--tag-bg: #efd4c4;--tag-text: #663d25;--tag-border: #d7ad94;--tag-dark-bg: #5e4435;--tag-dark-text: #ffede3;--tag-dark-border: #8b6d5c}.project-tag[data-tag-style=astro]{--tag-bg: #e1d9ee;--tag-text: #473766;--tag-border: #c7b8df;--tag-dark-bg: #423c5f;--tag-dark-text: #f1edff;--tag-dark-border: #6c6492}.project-tag[data-tag-style=typescript]{--tag-bg: #d3e4f8;--tag-text: #28507a;--tag-border: #b2cbed;--tag-dark-bg: #2a4567;--tag-dark-text: #edf5ff;--tag-dark-border: #5b759d}.project-tag[data-tag-style=flash]{--tag-bg: #ffe0b4;--tag-text: #674711;--tag-border: #e7bd78;--tag-dark-bg: #624b27;--tag-dark-text: #fff0ce;--tag-dark-border: #94713f}.project-tag[data-tag-style=scenario-editor]{--tag-bg: #dce7d6;--tag-text: #365534;--tag-border: #bfd1b2;--tag-dark-bg: #3c5538;--tag-dark-text: #efffe9;--tag-dark-border: #69865d}.project-tag[data-tag-style=unity]{--tag-bg: #dbe3ee;--tag-text: #35485d;--tag-border: #c0ccda;--tag-dark-bg: #303f52;--tag-dark-text: #eef4fb;--tag-dark-border: #5e7189}.project-tag[data-tag-style=c]{--tag-bg: #deddf5;--tag-text: #3f3d70;--tag-border: #c2c0e8;--tag-dark-bg: #393c61;--tag-dark-text: #f0f1ff;--tag-dark-border: #686c9b}.project-tag[data-tag-style=firebase]{--tag-bg: #ffe4b9;--tag-text: #68470c;--tag-border: #e9c47b;--tag-dark-bg: #624c2a;--tag-dark-text: #fff2d4;--tag-dark-border: #927343}.project-tag[data-tag-style=fmod]{--tag-bg: #d7e4ed;--tag-text: #314d60;--tag-border: #bbcedb;--tag-dark-bg: #304a5b;--tag-dark-text: #eff8ff;--tag-dark-border: #60798a}.project-tag[data-tag-style=xml]{--tag-bg: #e2e6dc;--tag-text: #445137;--tag-border: #c4cfb7;--tag-dark-bg: #3f4b36;--tag-dark-text: #f1fae9;--tag-dark-border: #6b7d5f}.project-tag-group[data-tag-group=format] .project-tag{border-color:color-mix(in srgb,var(--tag-border) 82%,var(--tag-text));box-shadow:inset 0 -1px color-mix(in srgb,var(--tag-text) 16%,transparent)}.project-tag-group[data-tag-group=platform] .project-tag,.project-tag-group[data-tag-group=tech] .project-tag{background-color:color-mix(in srgb,var(--tag-bg) 64%,var(--surface))}.project-tag-group[data-tag-group=platform] .project-tag{border-style:dashed}:root[data-theme=dark] .project-tag{border-color:var(--tag-dark-border);background-color:var(--tag-dark-bg);color:var(--tag-dark-text)}:root[data-theme=dark] .project-tag-group[data-tag-group=format] .project-tag{box-shadow:inset 0 -1px color-mix(in srgb,var(--tag-dark-text) 14%,transparent)}:root[data-theme=dark] .project-tag-group[data-tag-group=platform] .project-tag,:root[data-theme=dark] .project-tag-group[data-tag-group=tech] .project-tag{background-color:color-mix(in srgb,var(--tag-dark-bg) 82%,var(--surface))}.arrow-button{--arrow-button-size: 48px;--arrow-button-icon-size: 18px;--arrow-button-icon-color: var(--accent);position:relative;display:inline-grid;place-items:center;width:var(--arrow-button-size);height:var(--arrow-button-size);border:1px solid color-mix(in srgb,var(--accent) 36%,var(--border));border-radius:999px;background-color:color-mix(in srgb,var(--surface) 88%,var(--bg));box-shadow:var(--shadow-soft);color:var(--accent);cursor:pointer;padding:0;transition:var(--theme-transition-surface),opacity var(--motion-fast),transform var(--motion-fast)}.arrow-button:hover{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));background-color:var(--surface-hover-strong);transform:var(--hover-lift-subtle)}.arrow-button:focus-visible{outline:var(--focus-ring);outline-offset:4px}.arrow-button-icon{display:grid;place-items:center;width:100%;height:100%;color:var(--arrow-button-icon-color);transition:var(--theme-transition-color)}.arrow-button-icon:before{display:block;width:var(--arrow-button-icon-size);height:var(--arrow-button-icon-size);background-color:currentColor;clip-path:polygon(28% 12%,78% 50%,28% 88%,20% 76%,54% 50%,20% 24%);content:"";transition:var(--theme-transition-background)}.arrow-button-prev .arrow-button-icon:before{transform:rotate(180deg)}.site-footer{--footer-legal-gap: 12px;position:relative;z-index:2}.footer-visual{--footer-frame-width: min(100% - 32px, var(--hero-max-width));--footer-frame-trim: 0px;--footer-visual-offset-x: 0px;--footer-content-offset-y: clamp(-30px, -2.5vw, -18px);position:relative;isolation:isolate;overflow:hidden;padding:clamp(68px,7vw,86px) 0 clamp(34px,4vw,52px)}.footer-visual:before,.footer-visual:after{content:"";position:absolute;left:50%;top:0;bottom:var(--footer-frame-trim);z-index:0;width:var(--footer-frame-width);image-rendering:pixelated;opacity:0;pointer-events:none;transform:translate(calc(-50% + var(--footer-visual-offset-x)));transition:var(--theme-transition-opacity)}.footer-visual:before{background:url(/assets/images/footer-frame-light.webp) center bottom / contain no-repeat}.footer-visual:after{background:url(/assets/images/footer-frame-dark.webp) center bottom / contain no-repeat}:root[data-theme=light] .footer-visual:before,:root[data-theme=dark] .footer-visual:after{opacity:1}.footer-inner{width:min(100% - 32px,var(--hero-max-width));margin-inline:auto;position:relative;z-index:1;display:grid;justify-items:center;gap:10px;padding:0 22px;text-align:center;transform:translate(var(--footer-visual-offset-x),var(--footer-content-offset-y))}.footer-heart{position:relative;width:42px;height:35px}.footer-heart:before,.footer-heart:after{content:"";position:absolute;inset:0;background-position:center;background-repeat:no-repeat;background-size:100% 100%;transition:var(--theme-transition-opacity)}.footer-heart:before{background-image:url(/assets/images/footer-heart-light.webp);opacity:1}.footer-heart:after{background-image:url(/assets/images/footer-heart-dark.webp);opacity:0}:root[data-theme=dark] .footer-heart:before{opacity:0}:root[data-theme=dark] .footer-heart:after{opacity:1}.footer-inner p:first-of-type{color:var(--heading);font-family:var(--font-display);font-size:1.48rem;font-weight:400}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;color:var(--accent);font-family:var(--font-body);font-size:.86rem;font-weight:800}.footer-links a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));border-radius:10px;background-color:color-mix(in srgb,var(--surface) 84%,var(--bg));color:var(--accent);transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-color),transform var(--motion-fast)}.footer-links a:hover,.footer-links a:focus-visible{border-color:color-mix(in srgb,var(--accent) 58%,var(--border));background-color:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent-strong);transform:var(--hover-lift-subtle)}.footer-links a:focus-visible{outline:var(--focus-ring-soft);outline-offset:3px}.footer-links .asset-icon{width:26px;height:26px}.copyright{color:var(--muted);font-size:.96rem;font-weight:700}.footer-legal{position:relative;z-index:1;margin-top:var(--footer-legal-gap);padding-inline:16px;text-align:center}.footer-media-disclaimer{width:min(100%,760px);margin-inline:auto;color:color-mix(in srgb,var(--muted) 84%,var(--bg));font-size:.72rem;font-weight:700;line-height:1.5;transition:var(--theme-transition-color)}@media(max-width:560px){.footer-visual{--footer-frame-width: min(100% - 10px, var(--hero-max-width));--footer-content-offset-y: 0px;--footer-scene-width: min(100% - 12px, 520px);--footer-scene-height: clamp(142px, 36vw, 180px);--footer-scene-gap: 0px;--footer-scene-offset-y: -58px;--footer-scene-bottom-compensation: 0px;display:grid;grid-template-areas:"content" "scene";justify-items:center;row-gap:var(--footer-scene-gap);overflow:visible;padding:42px 0 var(--footer-scene-bottom-compensation)}.footer-visual:before,.footer-visual:after{display:block;position:relative;left:auto;top:auto;bottom:auto;grid-area:scene;z-index:0;width:var(--footer-scene-width);height:var(--footer-scene-height);margin-top:var(--footer-scene-offset-y);background-position:center bottom;background-size:100% auto;transform:none}.footer-inner{grid-area:content;width:min(100% - 22px,var(--hero-max-width));gap:7px;padding-inline:8px;transform:none}.footer-heart{width:29px;height:24px}.footer-inner p:first-of-type{font-size:1.12rem;line-height:1.15}.footer-links{flex-wrap:nowrap;gap:5px}.footer-links a{width:40px;height:40px}.footer-links .asset-icon{width:22px;height:22px}.copyright{font-size:.82rem;line-height:1.25}}@media(min-width:430px)and (max-width:560px){.footer-visual{--footer-scene-width: min(100% - 20px, 500px);--footer-scene-height: clamp(150px, 34vw, 180px);--footer-scene-gap: 0px;--footer-scene-offset-y: -66px;--footer-scene-bottom-compensation: 0px}}@media(max-width:420px){.footer-visual{--footer-scene-bottom-compensation: 0px}}@media(max-width:360px){.footer-links{flex-wrap:wrap;max-width:142px;row-gap:6px}}.project-wheel{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px;margin-top:8px}.project-showcase{--showcase-shadow-bleed: clamp(24px, 2vw, 36px);overflow-x:hidden;overflow-x:clip;overflow-clip-margin:var(--showcase-shadow-bleed);overflow-anchor:none}.project-wheel-viewport{position:relative;min-height:300px;overflow:visible;isolation:isolate}.project-wheel-card{--project-wheel-card-background: color-mix(in srgb, var(--bg) 88%, var(--surface));--project-wheel-card-fade: 0;position:absolute;top:50%;left:50%;z-index:0;display:grid;align-content:start;gap:8px;grid-template-rows:auto minmax(0,1fr);width:clamp(174px,17vw,228px);height:222px;border:1px solid var(--border);border-radius:14px;background-color:var(--project-wheel-card-background);box-shadow:var(--shadow-soft);color:inherit;cursor:pointer;opacity:0;padding:8px;pointer-events:none;text-align:left;transform:translate(-50%,-50%) scale(.68);transform-origin:center;transition:var(--theme-transition-surface),opacity var(--motion-medium),transform var(--motion-medium)}.project-wheel-card:after{position:absolute;inset:0;z-index:3;border-radius:inherit;background-color:color-mix(in srgb,var(--bg) 88%,var(--surface));content:"";opacity:var(--project-wheel-card-fade);pointer-events:none;transition:opacity var(--motion-medium),var(--theme-transition-background)}.project-wheel[data-wheel-initializing] .project-wheel-card{transition:none}.project-wheel-card[data-slot]{pointer-events:auto}.project-wheel-card[data-slot="-3"]{z-index:0;opacity:0;pointer-events:none;transform:translate(-281%,-32%) rotate(-17deg) scale(.62)}.project-wheel-card[data-slot="-2"]{--project-wheel-card-fade: .62;z-index:1;opacity:1;transform:translate(-218%,-42%) rotate(-10deg) scale(.76)}.project-wheel-card[data-slot="-1"]{--project-wheel-card-fade: .34;z-index:2;opacity:1;transform:translate(-139%,-51%) rotate(-4deg) scale(.9)}.project-wheel-card[data-slot="0"]{--project-wheel-card-fade: 0;z-index:4;border-color:color-mix(in srgb,var(--accent) 72%,var(--border));box-shadow:var(--shadow-accent);opacity:1;transform:translate(-50%,-54%) rotate(0) scale(1.04)}.project-wheel-card[data-slot="1"]{--project-wheel-card-fade: .34;z-index:2;opacity:1;transform:translate(39%,-51%) rotate(4deg) scale(.9)}.project-wheel-card[data-slot="2"]{--project-wheel-card-fade: .62;z-index:1;opacity:1;transform:translate(118%,-42%) rotate(10deg) scale(.76)}.project-wheel-card[data-slot="3"]{z-index:0;opacity:0;pointer-events:none;transform:translate(181%,-32%) rotate(17deg) scale(.62)}.project-wheel-card:hover{border-color:color-mix(in srgb,var(--accent) 46%,var(--border));background-color:var(--surface-tint)}.project-wheel-card:focus-visible{outline:var(--focus-ring);outline-offset:4px}.project-wheel-media{width:100%;aspect-ratio:16 / 9;border-radius:9px}.project-wheel-status-ribbon{position:absolute;top:8px;right:8px;z-index:3;border-radius:7px;background-color:var(--project-status-dev-bg);color:var(--project-status-dev-text);font-family:var(--font-body);font-size:.78rem;font-weight:800;line-height:1;padding:7px 10px;text-align:center;white-space:nowrap;transition:var(--theme-transition-background),var(--theme-transition-color)}.project-wheel-status-ribbon[data-status=released]{background-color:var(--project-status-released-bg);color:var(--project-status-released-text)}.project-wheel-status-ribbon[data-status=shelved]{background-color:var(--project-status-shelved-bg);color:var(--project-status-shelved-text)}.project-wheel-status-ribbon[data-status=contributed]{background-color:var(--project-status-contributed-bg);color:var(--project-status-contributed-text)}.project-wheel-body{display:grid;align-content:center;gap:6px;min-width:0;text-align:center}.project-wheel-title{color:var(--heading);font-family:var(--font-display);font-size:1.36rem;font-weight:400;line-height:1.05;overflow-wrap:anywhere;transition:var(--theme-transition-color)}.project-wheel-year{color:var(--muted);font-family:var(--font-display);font-size:1.08rem;font-weight:400;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:var(--theme-transition-color)}.project-wheel-nav{position:relative;z-index:5}.project-wheel-chest{position:relative;z-index:3;display:block;width:clamp(140px,18vw,230px);aspect-ratio:672 / 602;height:auto;margin:-12px auto -34px;filter:var(--image-filter);image-rendering:pixelated;pointer-events:none;transition:var(--theme-transition-filter)}@media(max-width:820px){.project-wheel{grid-template-columns:42px minmax(0,1fr) 42px;gap:6px}.project-wheel-viewport{min-height:292px}.project-wheel-card{width:clamp(172px,34vw,220px);height:220px}.project-wheel-card[data-slot="-2"]{opacity:0;pointer-events:none;transform:translate(-201%,-38%) rotate(-13deg) scale(.66)}.project-wheel-card[data-slot="-1"]{opacity:1;transform:translate(-135%,-47%) rotate(-7deg) scale(.82)}.project-wheel-card[data-slot="1"]{opacity:1;transform:translate(35%,-47%) rotate(7deg) scale(.82)}.project-wheel-card[data-slot="2"]{opacity:0;pointer-events:none;transform:translate(101%,-38%) rotate(13deg) scale(.66)}.project-wheel-nav{--arrow-button-icon-size: 16px;width:42px;height:42px}.project-wheel-chest{width:clamp(132px,25vw,190px);margin-top:-12px;margin-bottom:-28px}}@media(max-width:560px){.project-wheel{grid-template-columns:42px minmax(0,1fr) 42px;overflow:hidden;overflow:clip;overflow-clip-margin:var(--showcase-shadow-bleed)}.project-wheel-viewport{min-height:270px}.project-wheel-card{width:clamp(186px,62vw,222px);height:220px}.project-wheel-card[data-slot="0"]{transform:translate(-50%,-52%) rotate(0) scale(1)}.project-wheel-card[data-slot="-1"]{--project-wheel-card-fade: .68;opacity:1;pointer-events:none;transform:translate(-122%,-43%) rotate(-9deg) scale(.72)}.project-wheel-card[data-slot="1"]{--project-wheel-card-fade: .68;opacity:1;pointer-events:none;transform:translate(22%,-43%) rotate(9deg) scale(.72)}.project-wheel-chest{width:clamp(118px,38vw,162px);margin-top:-8px;margin-bottom:-22px}}.project-detail-company,.project-detail-meta{display:flex;align-items:center;min-width:0}.project-detail-company{gap:7px;color:var(--text);font-size:.9rem;font-weight:800;transition:var(--theme-transition-color)}.project-detail-company-link{border-radius:8px;text-decoration:none;transition:var(--theme-transition-color)}.project-detail-company-link:hover{color:var(--accent-strong)}.project-detail-company-link:focus-visible{color:var(--accent-strong);outline:var(--focus-ring-soft);outline-offset:4px}.project-detail-company img{flex:0 0 auto;width:20px;height:20px;border-radius:5px;filter:var(--company-logo-filter, var(--image-filter));image-rendering:pixelated;object-fit:contain;transition:var(--theme-transition-filter)}.project-detail-company span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-detail-meta{flex-wrap:wrap;gap:8px 12px;color:var(--muted);font-size:.86rem;font-weight:800;transition:var(--theme-transition-color)}.project-detail .project-detail-meta{font-size:1rem}.project-detail .project-detail-company{gap:9px}.project-detail .project-detail-company img{width:24px;height:24px;border-radius:6px}.project-detail-content .project-tag-list{column-gap:22px;row-gap:10px}.project-detail-content .project-tag-group{gap:7px}.project-detail-panel{--project-detail-panel-pad-bottom: clamp(14px, 2.4vw, 28px);--project-detail-panel-pad-top: clamp(32px, 3.4vw, 44px);--project-detail-panel-pad-x: clamp(14px, 2.4vw, 28px);position:relative;overflow:visible;margin-top:0;border:1px solid var(--border);border-radius:18px;background-color:var(--bg);box-shadow:var(--shadow);padding:var(--project-detail-panel-pad-top) var(--project-detail-panel-pad-x) var(--project-detail-panel-pad-bottom);transition:var(--theme-transition-surface)}.project-detail-panel:has(>.project-detail:not([hidden])>.project-awards-medal-rack){--project-detail-panel-pad-top: clamp(58px, 5.4vw, 72px)}.project-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.85fr);align-items:start;gap:clamp(20px,4vw,42px)}.project-detail[hidden]{display:none}.project-detail-media-column{display:grid;gap:clamp(10px,1.4vw,14px);min-width:0}.project-detail-media{position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--border) 84%,var(--surface));border-radius:16px;background-color:var(--surface-soft);box-shadow:var(--shadow-soft);transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-shadow)}.project-detail-content{display:grid;align-content:start;gap:0;min-width:0}.project-detail-kicker{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.project-detail-topline{align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:clamp(8px,1vw,12px)}.project-detail-kicker>span{border-radius:8px;background-color:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);font-size:.84rem;font-weight:900;line-height:1;padding:8px 10px;transition:var(--theme-transition-background),var(--theme-transition-color)}.project-detail-kicker>span:nth-child(2){background-color:color-mix(in srgb,var(--accent-2) 18%,var(--surface));color:color-mix(in srgb,var(--accent-2) 72%,var(--text))}.project-detail-kicker>span[data-status=dev]{background-color:var(--project-status-dev-bg);color:var(--project-status-dev-text)}.project-detail-kicker>span[data-status=released]{background-color:var(--project-status-released-bg);color:var(--project-status-released-text)}.project-detail-kicker>span[data-status=shelved]{background-color:var(--project-status-shelved-bg);color:var(--project-status-shelved-text)}.project-detail-kicker>span[data-status=contributed]{background-color:var(--project-status-contributed-bg);color:var(--project-status-contributed-text)}.project-detail h3{font-size:clamp(2.35rem,4.3vw,4.05rem);letter-spacing:0;line-height:1;overflow-wrap:anywhere}.project-detail h3+.project-detail-meta{margin-top:clamp(14px,1.4vw,18px)}.project-detail-description{color:var(--muted);font-weight:700;transition:var(--theme-transition-color)}.project-detail-description{max-width:58ch;font-size:1.02rem;line-height:1.58}.project-detail-meta+.project-detail-description{margin-top:clamp(14px,1.6vw,20px)}.project-detail-description+.project-tag-list{margin-top:clamp(20px,2vw,26px)}.project-detail-media-notice{max-width:62ch;margin:0;color:color-mix(in srgb,var(--muted) 88%,var(--bg));font-size:.82rem;font-weight:800;line-height:1.45;transition:var(--theme-transition-color)}.project-detail-sections{display:grid;gap:14px;max-width:62ch;margin-top:clamp(16px,1.8vw,22px)}.project-detail-section{display:grid;gap:8px}.project-detail-section h4{color:var(--text);font-size:.92rem;font-weight:900;letter-spacing:.02em;line-height:1.2;text-transform:uppercase;transition:var(--theme-transition-color)}.project-detail-section ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.project-detail-section li{border:1px solid color-mix(in srgb,var(--border) 82%,var(--text));border-radius:7px;background-color:color-mix(in srgb,var(--surface-raised) 74%,var(--surface));color:var(--muted);font-size:.88rem;font-weight:800;line-height:1.15;padding:7px 10px;transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-color)}.project-detail-sections+.project-tag-list{margin-top:clamp(20px,2vw,26px)}.project-awards{display:grid;gap:10px}.project-awards-medal-rack{position:absolute;top:-4px;right:clamp(12px,2vw,28px);z-index:6;isolation:isolate;pointer-events:none}.project-awards-medal-rack:before{position:absolute;top:4px;right:clamp(5px,.6vw,8px);z-index:0;width:clamp(40px,4.4vw,56px);height:8px;border-radius:999px;background-color:transparent;background-image:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 28%,transparent) 0%,color-mix(in srgb,var(--accent) 14%,transparent) 48%,transparent 76%);content:"";pointer-events:none;transition:var(--theme-transition-background)}.project-award-list{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.project-award{--award-medal-width: clamp(52px, 5.4vw, 68px);position:relative;display:inline-block;width:var(--award-medal-width);height:calc(var(--award-medal-width) * 1.7778);outline-offset:3px;pointer-events:auto;transition:transform var(--motion-fast)}.project-awards-medal-rack:not([data-awards-initializing]) .project-award:hover{transform:var(--hover-lift-strong)}.project-award:focus{outline:none}.project-award:focus-visible{outline:var(--focus-ring-soft)}.project-award-medal-base{position:absolute;inset:0;z-index:0;width:100%;height:100%;filter:drop-shadow(0 4px 7px color-mix(in srgb,var(--accent) 16%,transparent));image-rendering:pixelated;object-fit:contain;transition:var(--theme-transition-filter)}.project-award-medal-face,.project-award-emblem{position:absolute;left:50%;transform:translate(-50%,-50%)}.project-award-medal-face{top:72%;z-index:1;width:68%;height:38%;border:1px solid var(--award-medal-face-border);border-radius:50%;background-color:var(--award-medal-face);background-image:radial-gradient(circle at 32% 26%,color-mix(in srgb,#ffffff 54%,transparent) 0 17%,transparent 18%),radial-gradient(circle at 70% 78%,color-mix(in srgb,var(--award-medal-face-border) 14%,transparent) 0 22%,transparent 23%);box-shadow:inset 0 2px 4px color-mix(in srgb,#ffffff 52%,transparent),inset 0 -3px 5px var(--award-medal-face-shadow),0 1px 1px color-mix(in srgb,#000000 20%,transparent);transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-shadow)}.project-award-emblem{--project-award-emblem-src: none;top:72%;z-index:2;width:57%;height:31%;background-color:var(--award-medal-mark);filter:drop-shadow(0 1px 1px color-mix(in srgb,var(--heading) 18%,transparent));mask:var(--project-award-emblem-src) center / contain no-repeat;-webkit-mask:var(--project-award-emblem-src) center / contain no-repeat;transition:var(--theme-transition-background),var(--theme-transition-filter)}.project-award-details{position:absolute;top:calc(100% + 12px);right:0;z-index:5;display:grid;gap:3px;width:max-content;max-width:min(260px,calc(100vw - 48px));border:1px solid color-mix(in srgb,var(--accent) 46%,var(--border));border-radius:14px;background-color:color-mix(in srgb,var(--accent) 5%,var(--bg));box-shadow:var(--shadow-soft);color:var(--muted);font-size:.82rem;font-weight:800;line-height:1.24;opacity:0;padding:10px 12px 9px;pointer-events:none;text-align:left;transform:translateY(6px);transition:var(--theme-transition-surface),opacity var(--motion-tooltip),transform var(--motion-tooltip)}.project-award-details:after{position:absolute;top:-6px;right:25px;width:10px;height:10px;border-top:1px solid color-mix(in srgb,var(--accent) 46%,var(--border));border-left:1px solid color-mix(in srgb,var(--accent) 46%,var(--border));background-color:color-mix(in srgb,var(--accent) 5%,var(--bg));content:"";transform:rotate(45deg);transition:var(--theme-transition-background),var(--theme-transition-border)}.project-awards-medal-rack:not([data-awards-initializing]) .project-award:hover .project-award-details,.project-awards-medal-rack:not([data-awards-initializing]) .project-award:focus-visible .project-award-details{opacity:1;transform:translateY(0)}.project-award-details strong{color:var(--heading);font-size:.94rem;line-height:1.15;overflow-wrap:anywhere;transition:var(--theme-transition-color)}.project-award-details span,.project-award-details small{overflow-wrap:anywhere}.project-award-details small{color:var(--accent);font-size:.8rem;font-weight:900;line-height:1;transition:var(--theme-transition-color)}.project-detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:clamp(18px,1.8vw,24px)}.project-detail-actions .button{flex:0 1 auto;min-width:max-content;min-height:48px;padding:11px 18px 13px;white-space:nowrap}@media(max-width:960px){.project-detail{grid-template-columns:1fr}.project-detail-content{max-width:680px}}@media(max-width:820px){.project-detail-panel{margin-top:0;--project-detail-panel-pad-top: 34px}}@media(max-width:560px){.project-detail-panel{--project-detail-panel-pad-bottom: 12px;--project-detail-panel-pad-top: 28px;--project-detail-panel-pad-x: 12px;border-radius:14px}.project-detail h3{font-size:clamp(2.1rem,10.8vw,3.1rem)}.project-detail-actions .button{flex:1 1 100%;min-width:0;width:100%}}.project-detail-gallery{--project-gallery-transition-ms: var(--motion-gallery);position:relative;isolation:isolate;overflow:hidden;width:100%;aspect-ratio:16 / 9;border-radius:inherit;background-color:var(--surface-soft);transition:var(--theme-transition-background)}.project-detail-gallery .project-image-frame-backdrop{opacity:.42;filter:var(--image-filter) blur(20px) saturate(.78) contrast(.92);transform:scale(1.08);transition:var(--theme-transition-filter)}.project-detail-gallery .project-image-frame:after{background-color:color-mix(in srgb,var(--surface-soft) 34%,transparent);transition:var(--theme-transition-background)}.project-detail-gallery-image{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:0;transition:opacity var(--project-gallery-transition-ms) ease-in-out}.project-detail-gallery-image[data-gallery-state=active]{opacity:1;z-index:2}.project-detail-gallery-image[data-gallery-state=exiting]{opacity:0;z-index:1}.project-detail-gallery-control{--arrow-button-icon-color: var(--heading);position:absolute;top:0;bottom:0;z-index:2;display:flex;align-items:center;width:50%;height:auto;border:0;background:transparent;box-shadow:none;color:var(--heading);cursor:pointer;padding:0 14px;transform:none;transition:var(--theme-transition-color)}.project-detail-gallery-control-prev{left:0;justify-content:flex-start}.project-detail-gallery-control-next{right:0;justify-content:flex-end}.project-detail-gallery-control:hover{border-color:transparent;background:transparent;box-shadow:none;transform:none}.project-detail-gallery-control .arrow-button-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--surface) 70%,var(--border));border-radius:999px;background-color:color-mix(in srgb,var(--surface-glass) 82%,var(--bg));box-shadow:var(--shadow-soft);opacity:0;transform:translateY(2px);transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-shadow),opacity var(--motion-fast),transform var(--motion-fast)}.project-detail-gallery-control:hover .arrow-button-icon,.project-detail-gallery-control:focus-visible .arrow-button-icon{opacity:1;transform:translateY(0)}.project-detail-gallery-control:hover .arrow-button-icon{--arrow-button-icon-color: var(--accent);border-color:color-mix(in srgb,var(--accent) 62%,var(--surface));background-color:var(--surface-hover-strong)}.project-detail-gallery-control:focus-visible{outline:none}.project-detail-gallery-control:focus-visible .arrow-button-icon{border-color:color-mix(in srgb,var(--accent) 62%,var(--surface));box-shadow:var(--focus-halo),var(--shadow-soft)}.project-detail-gallery-dots{position:absolute;right:0;bottom:12px;left:0;z-index:3;display:flex;justify-content:center;gap:8px;pointer-events:none}.project-detail-gallery-dot{width:11px;height:11px;border:1px solid color-mix(in srgb,var(--surface) 78%,var(--border));border-radius:999px;background-color:color-mix(in srgb,var(--surface-glass) 84%,var(--bg));box-shadow:var(--shadow-soft);cursor:pointer;padding:0;pointer-events:auto;transition:var(--theme-transition-background),var(--theme-transition-border),var(--theme-transition-shadow),transform var(--motion-fast)}.project-detail-gallery-dot[aria-current=true]{border-color:color-mix(in srgb,var(--accent) 70%,var(--surface));background-color:var(--accent);transform:scale(1.16)}.project-detail-gallery-dot:focus-visible{outline:var(--focus-ring);outline-offset:3px}@media(prefers-reduced-motion:reduce){.project-detail-gallery-image{transition:none}}
