:root{--font-display: "Outfit", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--maxw: 1180px;--radius: 5px;--radius-sm: 5px;--pill-radius: 5px;--shadow: 0 6px 24px rgba(0, 0, 0, .18);--shadow-lg: 0 14px 48px rgba(0, 0, 0, .28);--ring: 0 0 0 3px color-mix(in srgb, var(--accent) 40%, transparent)}:root,:root[data-theme=dark]{--bg: #0e1015;--bg-2: #12151c;--surface: #171b23;--surface-2: #1e2431;--surface-hover: #232a39;--text: #e9edf5;--text-muted: #98a3b4;--border: rgba(255, 255, 255, .09);--accent: #5aa0e6;--accent-strong: #83bbf3;--accent-contrast: #06101d;--pill-bg: color-mix(in srgb, var(--accent) 22%, transparent);--pill-text: var(--accent-strong);--icon-pure: #ffffff;color-scheme:dark}:root[data-theme=light]{--bg: #ffffff;--bg-2: #f5f8fc;--surface: #eef3f9;--surface-2: #e3ecf6;--surface-hover: #dce7f3;--text: #1a1d24;--text-muted: #5c6673;--border: rgba(15, 23, 42, .1);--accent: #3d84c6;--accent-strong: #2c6aa6;--accent-contrast: #ffffff;--pill-bg: color-mix(in srgb, var(--accent) 14%, transparent);--pill-text: var(--accent-strong);--icon-pure: #000000;color-scheme:light}*{box-sizing:border-box}:root.theme-anim,:root.theme-anim *,:root.theme-anim *:before,:root.theme-anim *:after{transition:background-color .25s ease,color .25s ease,border-color .25s ease,fill .25s ease!important}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}a{color:inherit;text-decoration:none}sup{font-size:.68em;line-height:0}img{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.1;margin:0}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(16px,4vw,40px)}.section-title{font-size:clamp(1.7rem,3.4vw,2.5rem);letter-spacing:-.01em;margin:0 0 22px;display:flex;align-items:center;gap:14px}.section-title:before{content:"";width:10px;height:1.1em;border-radius:4px;background:var(--accent);display:inline-block}.pill{display:inline-flex;align-items:center;gap:6px;background:var(--pill-bg);color:var(--pill-text);font-weight:700;font-size:.78rem;padding:4px 12px;border-radius:var(--pill-radius);white-space:nowrap}.site-header{padding:clamp(28px,6vw,56px) 0 22px;background:var(--surface);transition:background-color .25s ease}.header-inner{display:flex;gap:clamp(20px,4vw,40px);align-items:center;flex-wrap:wrap}.avatar{width:clamp(104px,15vw,150px);height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;flex:none}.header-text{flex:1 1 320px;min-width:260px}.header-text h1{font-size:clamp(2.4rem,6vw,4rem);letter-spacing:-.02em}.header-role{font-size:clamp(1.05rem,2.4vw,1.5rem);font-weight:700;margin-top:2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-role .at{color:var(--text);font-weight:600}.header-role .employer{color:var(--accent-strong)}.header-tagline{color:var(--accent-strong);font-size:1.1rem;font-weight:600;margin-top:8px}.header-meta{color:var(--text-muted);margin-top:6px}.socials{display:flex;gap:22px;margin-left:auto;align-self:flex-start;margin-top:22px;flex-wrap:wrap}.social-link{color:var(--icon-pure);transition:color .15s,transform .15s;display:inline-flex}.social-link:hover{color:var(--accent);transform:translateY(-2px)}@media(max-width:620px){.socials{margin-left:0;align-self:auto;margin-top:6px}}.tabbar{position:sticky;top:0;z-index:50;background:var(--surface);transition:background-color .25s ease}.tabbar-inner{display:flex;align-items:center;gap:6px}.tab{font-family:var(--font-display);font-weight:700;font-size:1.05rem;padding:16px 18px;color:var(--text-muted);background:none;border:none;cursor:pointer;position:relative;transition:color .2s}.tab[aria-selected=true]{color:var(--text)}.tab[aria-selected=true]:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:3px;background:var(--accent);border-radius:3px 3px 0 0}.theme-toggle{margin-left:auto;padding:8px;border:none;background:none;color:var(--text-muted);cursor:pointer;display:grid;place-items:center;transition:color .2s,transform .15s}.theme-toggle:hover{color:var(--accent);transform:scale(1.08)}.theme-toggle svg{width:20px;height:20px}.theme-toggle .sun{display:none}:root[data-theme=light] .theme-toggle .sun{display:block}:root[data-theme=light] .theme-toggle .moon{display:none}.panel{display:none;padding:34px 0 80px}.panel.active{display:block}.platform-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.8rem;color:var(--text-muted)}.platform-badge svg{width:16px;height:16px}.game-large{display:grid;grid-template-columns:minmax(260px,5fr) 7fr;gap:clamp(20px,3vw,36px);background:var(--surface);border-radius:var(--radius);padding:clamp(20px,3vw,32px);margin-bottom:24px;align-items:center}.game-large .gl-cover{display:block;border-radius:var(--radius-sm);overflow:hidden;margin-bottom:16px;background:var(--surface-2)}.game-large .gl-cover img{width:100%;height:100%;object-fit:cover}.game-large h3{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:8px}.game-large .gl-desc{color:var(--text-muted);font-size:1.05rem;margin:10px 0 18px}.gl-right{display:flex;flex-direction:column;gap:16px;align-items:flex-start}.gl-meta{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}.cta{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-family:var(--font-display);background:var(--accent);color:var(--accent-contrast);padding:11px 20px;border-radius:var(--pill-radius);transition:transform .15s,filter .2s}.cta:hover{transform:translateY(-2px);filter:brightness(1.07)}.cta svg{width:18px;height:18px}.game-large.no-media{grid-template-columns:1fr;text-align:center}.game-large.no-media .gl-cover{max-width:700px;margin:0 auto 18px}.game-large.no-media .gl-meta{justify-content:center}.game-large.no-media .gl-desc{margin-left:auto;margin-right:auto;max-width:56ch}@media(max-width:820px){.game-large{grid-template-columns:1fr}}.carousel{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.carousel-track{display:flex;height:100%;transition:transform .35s ease}.carousel-slide{flex:0 0 100%;height:100%;position:relative}.carousel-slide>a{display:block;width:100%;height:100%}.carousel-slide img{width:100%;height:100%;object-fit:contain}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;background:#0000008c;color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .2s,background .2s}.carousel:hover .carousel-nav{opacity:1}.carousel-nav:hover{background:var(--accent);color:var(--accent-contrast)}.carousel-nav.prev{left:10px}.carousel-nav.next{right:10px}.carousel-nav svg{width:20px;height:20px}.carousel-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:7px}.carousel-dots button{width:8px;height:8px;border-radius:50%;border:none;background:#ffffff73;cursor:pointer;padding:0}.carousel-dots button[aria-current=true]{background:#fff;width:22px;border-radius:4px}.yt-facade,.video-facade{position:absolute;inset:0;cursor:pointer}.yt-facade img,.video-facade video{width:100%;height:100%;object-fit:cover}.play-btn{position:absolute;inset:0;margin:auto;width:68px;height:48px;border-radius:12px;background:#0009;display:grid;place-items:center;pointer-events:none}.play-btn:after{content:"";border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:5px}.yt-facade:hover .play-btn{background:#cc1a1a}.grid-medium{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:start}@media(max-width:940px){.grid-medium{grid-template-columns:repeat(3,1fr)}}@media(max-width:680px){.grid-medium{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.grid-medium{grid-template-columns:1fr}}.card-medium{background:var(--surface);border-radius:var(--radius);overflow:hidden;transition:transform .18s,box-shadow .2s;display:flex;flex-direction:column}.card-medium:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-medium .cm-media{position:relative}.cm-empty{display:grid;place-items:center;aspect-ratio:16 / 9;background:var(--surface-2);color:var(--text-muted);padding:10px;text-align:center;font-weight:700}.card-medium .cm-body{padding:14px 16px 18px}.card-medium .cm-title{font-size:1.2rem;display:flex;align-items:center;gap:8px}.card-medium .cm-title .platform-badge svg{opacity:.8}.card-medium .cm-catch{color:var(--text-muted);font-size:.92rem;margin:4px 0 0}.cm-media .carousel-nav{width:34px;height:34px}.grid-small{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;align-items:start}@media(max-width:900px){.grid-small{grid-template-columns:repeat(4,1fr)}}@media(max-width:560px){.grid-small{grid-template-columns:repeat(3,1fr)}}.card-small{text-align:center;transition:transform .18s}.card-small:hover{transform:translateY(-4px)}.card-small .cs-thumb{border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);box-shadow:var(--shadow);position:relative}.card-small .cs-thumb img{width:100%;height:100%;object-fit:contain;transition:transform .3s}.card-small:hover .cs-thumb img{transform:scale(1.06)}.cs-empty{display:grid;place-items:center;aspect-ratio:1;color:var(--text-muted);font-size:.78rem;padding:6px}.card-small .cs-title{font-weight:700;font-size:.86rem;margin-top:8px;line-height:1.25}.tier-label{color:var(--text-muted);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin:40px 0 16px}.tier-sep{border:none;width:64px;height:3px;border-radius:3px;background:var(--border);margin:44px auto}.about-grid{display:grid;grid-template-columns:1fr 320px;gap:clamp(24px,4vw,48px);align-items:start}@media(max-width:900px){.about-grid{grid-template-columns:1fr}}.about-intro{font-size:1.15rem;color:var(--text-muted);margin-bottom:34px;max-width:60ch}.timeline{position:relative}.tl-item{display:grid;grid-template-columns:68px 1fr;gap:18px;padding-bottom:26px;position:relative}.tl-logo{width:56px;height:56px;border-radius:var(--radius);background:var(--surface);color:var(--text);display:grid;place-items:center;overflow:hidden}.tl-logo a{display:grid;place-items:center;width:100%;height:100%;transition:background-color .15s,transform .15s}.tl-logo a:hover{background:var(--surface-hover);transform:scale(1.05)}.tl-logo .logo-fallback{font-family:var(--font-display);font-weight:700;color:var(--accent-strong);font-size:1.15rem}.tl-detail{color:var(--text-muted);margin:4px 0 0}.tl-body h4{font-size:1.25rem;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.tl-body .tl-org{color:var(--accent-strong);font-weight:700}.tl-sub{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 8px;color:var(--text-muted);font-size:.9rem}.tl-body ul{margin:8px 0 0;padding-left:18px;color:var(--text-muted)}.tl-body li{margin-bottom:3px}.stack-tags{display:flex;gap:6px;flex-wrap:wrap}.side-card{background:var(--surface);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px}.side-card h3{font-size:1.25rem;margin-bottom:14px}.skill-list{display:grid;grid-template-columns:1fr 1fr;gap:11px 14px}.skill-row{display:flex;align-items:center;gap:9px}.skill-logo{width:22px;height:22px;flex:none;display:grid;place-items:center;color:var(--text)}.skill-logo img,.skill-logo svg{width:100%;height:100%;object-fit:contain}.skill-logo .logo-fallback{font-family:var(--font-display);font-weight:700;color:var(--accent-strong);font-size:.8rem}.skill-name{font-weight:600;font-size:.92rem}.lang-row{display:flex;justify-content:space-between;margin-bottom:8px;gap:10px}.lang-row .lvl{color:var(--accent-strong);font-weight:700;font-size:.9rem}.lang-row .lvl-muted{color:var(--text-muted);font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--surface-2);border-radius:var(--pill-radius);padding:5px 12px;font-size:.85rem;font-weight:600}.chip-link{transition:background .15s,color .15s}.chip-link:hover{background:var(--accent);color:var(--accent-contrast)}footer.site-footer{border-top:1px solid var(--border);padding:26px 0;color:var(--text-muted);font-size:.85rem;text-align:center}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
