@import "https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,300;0,400;0,600;0,700;1,400&family=Noto+Serif+JP:wght@300;400&display=swap";@font-face{font-family:Victor Mono;src:url(https://cdn.jsdelivr.net/npm/@fontsource/victor-mono@5.0.18/files/victor-mono-all-300-normal.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Victor Mono;src:url(https://cdn.jsdelivr.net/npm/@fontsource/victor-mono@5.0.18/files/victor-mono-all-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Victor Mono;src:url(https://cdn.jsdelivr.net/npm/@fontsource/victor-mono@5.0.18/files/victor-mono-all-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Victor Mono;src:url(https://cdn.jsdelivr.net/npm/@fontsource/victor-mono@5.0.18/files/victor-mono-all-700-normal.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Victor Mono;src:url(https://cdn.jsdelivr.net/npm/@fontsource/victor-mono@5.0.18/files/victor-mono-all-700-italic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}:root{--radius:8px;--gap:1rem;--t:.16s ease}[data-theme=dark]{--bg:#08040f;--bg-2:#0f0820;--bg-card:#13092a;--bg-card-h:#1c1038;--border:#2e1a54;--border-h:#7b2fff;--text:#f0e6ff;--text-2:#b89ede;--text-muted:#6b4f99;--accent:#bf00ff;--accent-2:#7b2fff;--accent-soft:#bf00ff1a;--glow:0 0 0 1px #7b2fff, 0 0 28px #bf00ff4d;--pill-bg:#7b2fff33;--pill-color:#c084fc;--skeleton:#1e1038;--skeleton-h:#2a1850;--dot-on:#22c55e;--dot-off:#6b4f99;--dot-away:#f59e0b;--shadow:0 4px 32px #0009;--grid-line:#7b2fff1f}[data-theme=light]{--bg:#f0e8ff;--bg-2:#e8dcff;--bg-card:#ecdcff;--bg-card-h:#e3d0ff;--border:#c9a8f0;--border-h:#9b60e8;--text:#2d1065;--text-2:#5b2d9e;--text-muted:#8b6abf;--accent:#7a2fd4;--accent-2:#a060e0;--accent-soft:#7a2fd414;--glow:0 0 0 1px #c4a0f0, 0 4px 20px #7a2fd426;--pill-bg:#7a2fd41a;--pill-color:#6a28b8;--skeleton:#d8c4f5;--skeleton-h:#c8b0ee;--dot-on:#16a34a;--dot-off:#8b6abf;--dot-away:#d97706;--shadow:0 2px 16px #643cb41f;--grid-line:#7a2fd414}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);color:var(--text);min-height:100vh;transition:background var(--t), color var(--t);-webkit-font-smoothing:antialiased;background-size:40px 40px;flex-direction:column;font-family:Nunito,Victor Mono,ui-sans-serif,sans-serif;display:flex;position:relative}[data-theme=dark] body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(1px 1px at 8% 7%,#ffffffbf 0%,#0000 100%),radial-gradient(1px 1px at 23% 3%,#c084fcb3 0%,#0000 100%),radial-gradient(1.5px 1.5px at 37% 11%,#bf00ffe6 0%,#0000 100%),radial-gradient(1px 1px at 52% 5%,#fff9 0%,#0000 100%),radial-gradient(1px 1px at 67% 9%,#c084fccc 0%,#0000 100%),radial-gradient(1px 1px at 81% 4%,#ffffffa6 0%,#0000 100%),radial-gradient(1.5px 1.5px at 93% 14%,#7b2fffcc 0%,#0000 100%),radial-gradient(1px 1px at 14% 22%,#c084fc8c 0%,#0000 100%),radial-gradient(1px 1px at 44% 18%,#ffffffa6 0%,#0000 100%),radial-gradient(1px 1px at 73% 20%,#c084fc99 0%,#0000 100%),radial-gradient(1px 1px at 88% 25%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 29% 32%,#ffffff8c 0%,#0000 100%),radial-gradient(1.5px 1.5px at 58% 28%,#bf00ffa6 0%,#0000 100%),radial-gradient(1px 1px at 96% 38%,#c084fc80 0%,#0000 100%),linear-gradient(#0f0820 0%,#0c0618 20%,#08040f 55% 100%);position:fixed;inset:0}[data-theme=dark] body:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(90deg,#0000,#7b2fff26 20%,#bf00ff59 50%,#7b2fff26 80%,#0000);height:1px;position:fixed;top:340px;left:0;right:0;box-shadow:0 0 20px 4px #bf00ff14}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header{z-index:100;-webkit-backdrop-filter:blur(12px);background:color-mix(in srgb, var(--bg) 80%, transparent);border-top:2px solid var(--accent);border-bottom:1px solid var(--border);transition:background var(--t), border-color var(--t);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;max-width:none;padding:.6rem max(1.5rem,5vw);display:flex}.logo{color:var(--text);letter-spacing:-.01em;font-family:Victor Mono,monospace;font-size:1rem;font-weight:700}.logo:hover{text-decoration:none}.logo:hover .logo-tld{color:var(--accent-2)}.logo-tld{color:var(--accent);transition:color var(--t)}.header-nav{gap:.25rem;margin-left:auto;margin-right:1rem;display:flex}.header-nav a{color:var(--text-2);letter-spacing:.03em;transition:color var(--t), border-color var(--t), background var(--t);border:1px solid #0000;border-radius:6px;padding:.3rem .65rem;font-size:.75rem}.header-nav a:hover{color:var(--accent);border-color:var(--border);background:var(--accent-soft);text-decoration:none}.theme-toggle{border:1px solid var(--border);cursor:pointer;color:var(--text-2);transition:border-color var(--t), color var(--t), background var(--t);background:0 0;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;padding:.4rem;display:flex}.theme-toggle:hover{border-color:var(--border-h);color:var(--accent);background:var(--accent-soft)}.theme-toggle svg{width:16px;height:16px}[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon,[data-theme=light] .icon-sun{display:none}[data-theme=light] .icon-moon{display:block}.hero{z-index:1;border-bottom:1px solid var(--border);padding:3.5rem max(1.5rem,5vw) 2rem;position:relative}.hero-name{color:var(--text);letter-spacing:-.03em;margin-bottom:.6rem;font-family:Victor Mono,monospace;font-size:clamp(3rem,9vw,6rem);font-weight:700;line-height:1}.cursor{color:var(--accent);animation:1.1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-row{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.hero-sub{color:var(--text-muted);letter-spacing:.06em;font-size:.82rem}.hero-eyebrow{color:var(--accent);letter-spacing:.25em;margin-bottom:.55rem;font-family:Noto Serif JP,serif;font-size:.72rem;font-weight:300}[data-theme=dark] .hero-eyebrow{opacity:.65}.butterfly{opacity:.18;pointer-events:none;animation:7s ease-in-out infinite flutter;position:absolute;top:2rem;right:max(1.5rem,5vw)}[data-theme=light] .butterfly{opacity:.1}@keyframes flutter{0%,to{opacity:.18;transform:translateY(0)rotate(-4deg)}50%{opacity:.3;transform:translateY(-10px)rotate(4deg)}}.horizon-divider{background:linear-gradient(90deg,#0000,#7b2fff33 30%,#bf00ff66 50%,#7b2fff33 70%,#0000);grid-column:1/-1;height:1px;margin:.1rem 0;box-shadow:0 0 12px 2px #bf00ff0f}.vndb-japanese{color:var(--accent);opacity:.5;letter-spacing:.2em;margin-left:auto;margin-right:.6rem;font-family:Noto Serif JP,serif;font-size:.63rem;font-weight:300}.discord-activity{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);white-space:nowrap;border-radius:6px;align-items:center;gap:.4rem;padding:.25rem .7rem;font-size:.75rem;display:flex}.discord-activity-icon{flex-shrink:0}.discord-badge{color:var(--text-2);background:var(--bg-card);border:1px solid var(--border);cursor:default;border-radius:6px;align-items:center;gap:.45rem;padding:.25rem .7rem .25rem .55rem;font-size:.78rem;display:inline-flex}.discord-icon{color:#5865f2;flex-shrink:0;width:14px;height:14px}.grid{z-index:1;gap:var(--gap);grid-template-columns:repeat(3,1fr);padding:2rem max(1.5rem,5vw) 4rem;display:grid;position:relative}.card--wide{grid-column:span 2}.card--full{grid-column:span 3}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:border-color var(--t), background var(--t), box-shadow var(--t);cursor:pointer;position:relative;overflow:hidden}.card:hover{border-color:var(--border-h);background:var(--bg-card-h);box-shadow:var(--glow)}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.9rem 1.1rem .75rem;display:flex}.card-title-row{align-items:center;gap:.5rem;display:flex}.card-title-meta{flex-direction:column;gap:.1rem;display:flex}.card-desc{color:var(--text-muted);letter-spacing:.02em;font-size:.65rem;font-style:italic}.service-icon{width:16px;height:16px;color:var(--accent);flex-shrink:0}.service-name{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);font-size:.8rem;font-weight:700}.pill{letter-spacing:.08em;text-transform:uppercase;background:var(--pill-bg);color:var(--pill-color);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);transition:background var(--t), color var(--t);border-radius:999px;padding:.2rem .55rem;font-size:.65rem;font-weight:700}.pill--leetify{color:#a78bfa;background:#a78bfa1f;border-color:#a78bfa40}.pill--online{color:#4ade80;background:#4ade801a;border-color:#4ade8040}.pill--playing{color:#60a5fa;background:#60a5fa1a;border-color:#60a5fa40}.pill--live{color:#f87171;background:#f871711f;border-color:#f8717140}.pill--error{color:#f87171;background:#f871711a;border-color:#f8717133}.card-body{padding:1rem 1.1rem}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-line,.skeleton-art{background:linear-gradient(90deg, var(--skeleton) 25%, var(--skeleton-h) 50%, var(--skeleton) 75%);pointer-events:none;-webkit-user-select:none;user-select:none;background-size:800px 100%;border-radius:4px;animation:1.6s linear infinite shimmer;color:#0000!important}.skeleton-line{min-width:80px;height:1em;display:inline-block}.skeleton-line.wide{min-width:200px}.skeleton-art{border-radius:8px;flex-shrink:0;width:56px;height:56px}.lastfm-body{gap:1.5rem;display:flex}.lastfm-left{flex:0 0 22rem;min-width:0}.lastfm-right{border-left:1px solid var(--border);flex:1 1 0;min-width:0;padding-left:1.25rem}.lastfm-right-cols{gap:1rem;display:flex}.lastfm-right-col{flex:1 1 0;min-width:0}.now-playing{align-items:center;gap:.9rem;margin-bottom:.9rem;display:flex}.album-art{object-fit:cover;border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:56px;height:56px}.track-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.track-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.65rem;font-style:italic}.track-label.live{color:#f87171}.track-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:700;overflow:hidden}.track-artist{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.track-list{flex-direction:column;gap:.3rem;margin-bottom:.9rem;display:flex}.track-item{color:var(--text-2);transition:background var(--t);border-radius:6px;align-items:center;gap:.5rem;padding:.28rem .5rem;font-size:.78rem;display:flex}.track-item:hover{background:var(--accent-soft)}.track-item-num{color:var(--text-muted);text-align:right;flex-shrink:0;width:1rem;font-size:.7rem}.track-item-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}.track-item-sep{color:var(--text-muted);flex-shrink:0}.track-item-artist{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;font-size:.78rem;overflow:hidden}.lastfm-right .track-item{flex-wrap:nowrap}.lastfm-right .track-item>span:last-child{color:var(--text-muted);white-space:nowrap;flex-shrink:0}.steam-profile{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.steam-avatar{border:1px solid var(--border);border-radius:8px;flex-shrink:0;width:48px;height:48px}.steam-avatar.hidden{display:none}.steam-profile-info{flex-direction:column;gap:.2rem;display:flex}.steam-level{color:var(--text-muted);font-size:.7rem}.steam-status{color:var(--text-2);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.status-dot{background:var(--dot-off);width:8px;height:8px;transition:background var(--t), box-shadow var(--t);border-radius:50%;flex-shrink:0}.status-dot.online{background:var(--dot-on);box-shadow:0 0 6px var(--dot-on)}.status-dot.away{background:var(--dot-away);box-shadow:0 0 6px var(--dot-away)}.status-dot.playing{background:#60a5fa;box-shadow:0 0 6px #60a5fa}.status-dot.dnd{background:#f87171;box-shadow:0 0 6px #f87171}.current-game{color:var(--text);margin-bottom:.75rem;font-size:.85rem;font-style:italic}.recent-games{flex-direction:column;gap:.3rem;display:flex}.game-thumb{object-fit:cover;border:1px solid var(--border);border-radius:4px;flex-shrink:0;width:64px;height:30px}.game-item-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.game-item{transition:background var(--t);border-radius:6px;align-items:center;gap:.6rem;padding:.3rem .5rem;font-size:.78rem;display:flex}.game-item:hover{background:var(--accent-soft)}.game-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.game-item-hrs{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.big-stat{flex-direction:column;align-items:center;gap:.2rem;padding:.25rem 0 .5rem;display:flex}.big-stat-value{color:var(--accent);font-family:Victor Mono,monospace;font-size:3rem;font-weight:700;line-height:1}[data-theme=dark] .big-stat-value{text-shadow:0 0 20px var(--accent), 0 0 40px #bf00ff59}.big-stat-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);font-size:.7rem;font-style:italic}.stats-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.cs2-ranks{border-bottom:1px solid var(--border);grid-template-columns:repeat(2,1fr);margin-bottom:.5rem;padding-bottom:.75rem}.stat-cell{background:var(--bg);border:1px solid var(--border);text-align:center;transition:border-color var(--t);border-radius:8px;padding:.6rem .5rem}.stat-cell:hover{border-color:var(--border-h)}.stat-value{color:var(--text);margin-bottom:.15rem;font-family:Victor Mono,monospace;font-size:1.05rem;font-weight:700;display:block}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.62rem;display:block}.vndb-body{gap:1.5rem;display:flex}.vndb-left{flex:1 1 0;min-width:0}.vndb-right{border-left:1px solid var(--border);flex:1 1 0;min-width:0;padding-left:1.25rem}.vn-reading{margin-bottom:.9rem}.vn-item{align-items:flex-start;gap:.85rem;display:flex}.vn-cover{object-fit:cover;border:1px solid var(--border);border-radius:6px;flex-shrink:0;width:44px;height:62px}.vn-cover-placeholder{background:var(--skeleton);border:1px solid var(--border);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:62px;font-size:1.2rem;display:flex}.vn-meta{flex-direction:column;justify-content:center;gap:.2rem;min-width:0;display:flex}.vn-status{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:.65rem;font-style:italic}.vn-title{color:var(--text);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;font-weight:700;display:-webkit-box;overflow:hidden}.vn-developer{color:var(--text-2);font-size:.77rem}.cs2-vndb-rated{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.25rem;text-decoration:none;display:block}.cs2-vndb-rated:hover{text-decoration:none}.vn-rated{flex-direction:column;gap:.25rem;display:flex}.vn-rated-item{transition:background var(--t);border-radius:6px;align-items:center;gap:.5rem;padding:.2rem .4rem;font-size:.78rem;display:flex}.vn-rated-item:hover{background:var(--accent-soft)}.vn-thumb{object-fit:cover;border:1px solid var(--border);border-radius:4px;flex-shrink:0;width:28px;height:40px}.vn-thumb--placeholder{background:var(--skeleton)}.vn-rated-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1 1 0;font-weight:500;overflow:hidden}.vn-rated-score{color:var(--accent);flex-shrink:0;font-family:Victor Mono,monospace;font-size:.78rem;font-weight:700}.stats-row{flex-wrap:wrap;gap:.5rem;display:flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.35rem;font-size:.65rem}.lastfm-right-col .section-label+.track-list,.lastfm-right>.section-label+.genre-tags{margin-bottom:.75rem}.genre-tags{flex-wrap:wrap;gap:.4rem;display:flex}.genre-tag{background:var(--accent-soft);border:1px solid var(--border);color:var(--text-2);border-radius:999px;padding:.2rem .55rem;font-size:.7rem}.stat-badge{background:var(--bg);border:1px solid var(--border);color:var(--text-2);white-space:nowrap;border-radius:6px;padding:.25rem .6rem;font-size:.72rem}.stat-badge strong{color:var(--text)}.error-msg{color:var(--text-muted);padding:.5rem 0;font-size:.78rem;font-style:italic}footer{z-index:1;text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin-top:auto;padding:1.5rem;font-size:.72rem;position:relative}#card-lastfm{border-top:3px solid #d51007}#card-steam{border-top:3px solid #66c0f4}#card-cs2{border-top:3px solid #f4a21e}#card-vndb{border-top:3px solid var(--accent)}#card-github{border-top:3px solid #8b5cf6}#card-osu{border-top:3px solid #ff66ab}#card-discord{border-top:3px solid #5865f2}#card-discord .card-body{padding:.75rem 1rem}#card-lastfm .service-icon{color:#d51007}#card-steam .service-icon{color:#66c0f4}#card-cs2 .service-icon{color:#f4a21e}#card-vndb .service-icon{color:var(--accent)}#card-github .service-icon{color:#8b5cf6}#card-osu .service-icon{color:#ff66ab}#card-discord .service-icon{color:#5865f2}.github-body{gap:1.5rem;display:flex}.github-left{flex:1 1 0;min-width:0}.github-right{border-left:1px solid var(--border);flex:1 1 0;min-width:0;padding-left:1.25rem}.github-stats{grid-template-columns:repeat(2,1fr)}.repo-list{grid-template-columns:repeat(2,1fr);align-items:start;gap:.35rem;display:grid}.repo-item{transition:background var(--t);border-radius:6px;flex-direction:column;gap:.15rem;min-width:0;padding:.35rem .5rem;text-decoration:none;display:flex}.repo-item:hover{background:var(--accent-soft);text-decoration:none}.repo-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.repo-desc{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.repo-meta{align-items:center;gap:.75rem;margin-top:.1rem;display:flex}.repo-lang{align-items:center;gap:.3rem;display:flex}.lang-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.lang-name,.repo-stars{color:var(--text-muted);font-size:.72rem}.discord-body{flex-direction:column;gap:.55rem;display:flex}.discord-profile{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding-bottom:.5rem;display:flex}.discord-avatar{border:2px solid #5865f2;border-radius:50%;flex-shrink:0;width:36px;height:36px}.discord-avatar.hidden{display:none}.discord-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.discord-name-row{align-items:center;gap:.4rem;display:flex}.discord-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;overflow:hidden}.discord-custom{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.discord-activity{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:.1rem;padding:.35rem .55rem;display:flex}.discord-activity:empty{display:none}.discord-act-type{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.6rem}.discord-act-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;overflow:hidden}.discord-act-detail{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;overflow:hidden}.osu-body{gap:1.5rem;display:flex}.osu-left{flex-shrink:0;width:16rem}.osu-right{border-left:1px solid var(--border);flex:1 1 0;min-width:0;padding-left:1.25rem}@media (width<=768px){.grid{grid-template-columns:1fr;padding-inline:1rem}.card--wide{grid-column:1}.lastfm-body{flex-direction:column}.lastfm-right{border-left:none;border-top:1px solid var(--border);width:100%;padding-top:1rem;padding-left:0}.vndb-body{flex-direction:column}.vndb-right{border-left:none;border-top:1px solid var(--border);padding-top:1rem;padding-left:0}.github-body{flex-direction:column}.github-left{width:100%}.github-right{border-left:none;border-top:1px solid var(--border);padding-top:1rem;padding-left:0}.stats-grid{grid-template-columns:repeat(2,1fr)}.hero{padding-block:2.5rem 1.5rem}.hero-name{font-size:clamp(2.5rem,12vw,4rem)}.header-inner{padding-inline:1rem}}
