:root{color-scheme: dark;--bg: #07080d;--bg-raised: #0b0e15;--surface: #0f131b;--surface-2: #161b26;--text: #e9edf5;--muted: #9ba4b6;--border: #1f2633;--border-strong: #303a4d;--cyan: #22d3ee;--cyan-light: #67e8f9;--violet: #a78bfa;--pink: #f472b6;--green: #4ade80;--yellow: #facc15;--accent: var(--cyan);--accent-hover: var(--cyan-light);--accent-ink: #031318;--neon: linear-gradient(120deg,var(--cyan),var(--violet) 55%,var(--pink));--glow: 0 0 24px -6px rgb(34 211 238 / 55%);--focus: var(--pink);--radius: 16px;--font: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono: ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}*,*::before,*::after{box-sizing: border-box}html{-webkit-text-size-adjust: 100%;text-size-adjust: 100%;background: var(--bg)}@media (prefers-reduced-motion: no-preference){html{scroll-behavior: smooth}}body{margin: 0;background-color: var(--bg);background-image: radial-gradient(900px 520px at 85% -160px,rgb(34 211 238 / 13%),transparent 70%),radial-gradient(760px 520px at -10% 240px,rgb(167 139 250 / 11%),transparent 70%),radial-gradient(rgb(255 255 255 / 4%) 1px,transparent 1px);background-size: auto,auto,24px 24px;background-repeat: no-repeat,no-repeat,repeat;color: var(--text);font-family: var(--font);font-size: 1rem;line-height: 1.6;overflow-wrap: break-word;-webkit-font-smoothing: antialiased}::selection{background: rgb(34 211 238 / 30%);color: #fff}h1,h2,h3,p,ul,ol,figure{margin: 0}ul,ol{padding: 0;list-style: none}img,svg,picture{display: block;max-width: 100%}img{height: auto}h1,h2,h3{line-height: 1.2;letter-spacing: -0.015em;font-weight: 700}h1{font-size: clamp(2.1rem,1.6rem + 2.6vw,3.25rem);letter-spacing: -0.03em}h2{font-size: clamp(1.45rem,1.25rem + 1vw,1.875rem);letter-spacing: -0.02em}h3{font-size: 1.125rem}a{color: var(--accent);text-underline-offset: 0.18em;text-decoration-thickness: 1px}a:hover{color: var(--accent-hover)}:focus-visible{outline: 2px solid var(--focus);outline-offset: 3px;border-radius: 6px}main:focus{outline: none}.sr-only{position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap;border: 0}.skip-link{position: absolute;left: 16px;top: -100px;z-index: 10;padding: 10px 16px;border-radius: 10px;background: var(--accent);color: var(--accent-ink);font-weight: 650;text-decoration: none}.skip-link:focus{top: 12px}.skip-link:hover{color: var(--accent-ink)}.wrap{width: 100%;max-width: 1040px;margin-inline: auto;padding-inline: 16px}.wrap.narrow{max-width: 760px}@media (min-width: 640px){.wrap{padding-inline: 24px}}.icon{flex: none}.site-header{border-bottom: 1px solid var(--border);background: rgb(7 8 13 / 72%)}.header-inner{display: grid;grid-template-columns: 1fr auto;grid-template-areas: "brand tools" "nav nav";align-items: center;column-gap: 12px;padding-block: 10px 4px}.brand{grid-area: brand;display: inline-flex;align-items: center;gap: 10px;min-width: 0;min-height: 44px;color: var(--text);font-weight: 700;letter-spacing: -0.01em;text-decoration: none}.brand:hover{color: var(--text)}.brand-name{white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.brand-mark{display: grid;flex: none;place-items: center;width: 34px;height: 34px;border-radius: 10px;background: var(--neon);box-shadow: var(--glow);color: var(--accent-ink);font-size: 0.8rem;font-weight: 800;letter-spacing: 0.02em}.site-nav{grid-area: nav}.site-nav ul{display: flex;gap: 4px;margin-left: -10px}.site-nav a{display: inline-flex;align-items: center;min-height: 44px;padding-inline: 10px;border-radius: 8px;color: var(--muted);font-weight: 550;text-decoration: none}.site-nav a:hover{color: var(--text);background: var(--surface-2)}.site-nav a[aria-current="page"]{color: var(--text);background: var(--neon) no-repeat center bottom 6px / calc(100% - 20px) 2px}.header-tools{grid-area: tools;display: flex;align-items: center;gap: 4px}.social-icons{display: flex;gap: 2px}.icon-link,.lang-switch{display: inline-grid;place-items: center;min-width: 44px;height: 44px;border-radius: 10px;color: var(--muted);text-decoration: none}.icon-link:hover,.lang-switch:hover{color: var(--accent);background: var(--surface-2)}.lang-switch{margin-left: 4px;padding-inline: 10px;border: 1px solid var(--border-strong);height: 36px;min-width: 44px;font-family: var(--mono);font-size: 0.8125rem;font-weight: 650;letter-spacing: 0.06em}.lang-switch:hover{border-color: var(--accent)}@media (min-width: 760px){.header-inner{grid-template-columns: auto 1fr auto;grid-template-areas: "brand nav tools";column-gap: 24px;padding-block: 14px}.site-nav ul{justify-content: flex-end;margin-left: 0}}.actions{display: flex;flex-wrap: wrap;gap: 12px}.btn{display: inline-flex;align-items: center;justify-content: center;gap: 8px;min-height: 46px;padding: 10px 18px;border: 1px solid transparent;border-radius: 12px;font: inherit;font-weight: 650;line-height: 1.2;text-decoration: none;cursor: pointer;transition: background-color 0.2s,border-color 0.2s,box-shadow 0.2s,color 0.2s}.btn-primary{background: var(--accent);color: var(--accent-ink);box-shadow: var(--glow)}.btn-primary:hover{background: var(--accent-hover);color: var(--accent-ink);box-shadow: 0 0 32px -4px rgb(34 211 238 / 70%)}.btn-secondary{background: rgb(255 255 255 / 3%);border-color: var(--border-strong);color: var(--text)}.btn-secondary:hover{border-color: var(--accent);color: var(--accent);background: rgb(34 211 238 / 6%)}.text-link{display: inline-flex;align-items: center;gap: 6px;min-height: 44px;font-weight: 650;text-decoration: none}.text-link:hover{text-decoration: underline}.hero{padding-block: 48px 40px}.hero-inner{display: grid;gap: 28px;justify-items: start}.eyebrow{margin-bottom: 12px;color: var(--accent);font-family: var(--mono);font-size: 0.875rem;font-weight: 500;letter-spacing: 0.01em}.eyebrow::before{content: "// ";content: "// " / "";color: var(--muted)}.hero h1{background: linear-gradient(120deg,#fff 35%,var(--cyan-light) 65%,var(--pink));-webkit-background-clip: text;background-clip: text;color: transparent}.lead{font-size: 1.125rem;color: var(--muted);max-width: 40em}.hero .lead{margin-top: 16px}.hero .actions{margin-top: 28px}@media (min-width: 760px){.hero{padding-block: 88px 64px}.hero-inner{grid-template-columns: auto 1fr;gap: 44px;align-items: center}.lead{font-size: 1.2rem}}.avatar{display: grid;flex: none;place-items: center;padding: 3px;border-radius: 50%;background: var(--cyan);box-shadow: 0 0 40px -8px rgb(34 211 238 / 60%);color: var(--accent-ink);font-weight: 800;letter-spacing: 0.02em}.avatar img{width: 100%;height: 100%;object-fit: cover;border-radius: 50%;border: 3px solid var(--bg)}.hero-avatar{width: 104px;height: 104px;font-size: 2rem}.page-avatar{width: 84px;height: 84px;font-size: 1.6rem;margin-bottom: 24px}@media (min-width: 760px){.hero-avatar{width: 132px;height: 132px;font-size: 2.6rem}.page-avatar{width: 96px;height: 96px}}.section{padding-block: 40px}.section + .section{border-top: 1px solid var(--border)}.section-head{display: grid;gap: 8px;margin-bottom: 28px}.section-head h2::after,.block h2::after{content: "";display: block;width: 44px;height: 3px;margin-top: 12px;border-radius: 2px;background: var(--neon);box-shadow: 0 0 12px rgb(34 211 238 / 50%)}.section-head p{color: var(--muted)}@media (min-width: 760px){.section{padding-block: 64px}}.app-grid{display: grid;gap: 16px}@media (min-width: 720px){.app-grid{grid-template-columns: repeat(2,minmax(0,1fr));gap: 20px}}.app-grid>li{display: flex}.app-card{position: relative;display: flex;flex-direction: column;gap: 14px;width: 100%;padding: 20px;border: 1px solid var(--border);border-radius: var(--radius);background: linear-gradient(180deg,var(--surface-2),var(--surface) 60%);scroll-margin-top: 16px}.app-card::before{content: "";position: absolute;inset: -1px 24px auto;height: 1px;background: linear-gradient(90deg,transparent,rgb(34 211 238 / 70%),rgb(244 114 182 / 60%),transparent)}.app-head{display: flex;align-items: center;gap: 14px}.app-icon img{width: 56px;height: 56px;border-radius: 13px;box-shadow: 0 0 0 1px rgb(255 255 255 / 10%),0 8px 24px -10px rgb(0 0 0 / 80%)}.app-head h3{font-size: 1.2rem}.app-meta{display: flex;flex-wrap: wrap;align-items: center;gap: 6px 8px;margin-top: 4px;font-size: 0.875rem;color: var(--muted)}.platforms{font-family: var(--mono);font-size: 0.8125rem}.badge{display: inline-flex;align-items: center;gap: 6px;padding: 1px 9px;border: 1px solid currentColor;border-radius: 999px;font-size: 0.8125rem;font-weight: 650;line-height: 1.5}.badge-live{color: var(--green);background: rgb(74 222 128 / 8%);border-color: rgb(74 222 128 / 35%)}.badge-soon{color: var(--yellow);background: rgb(250 204 21 / 8%);border-color: rgb(250 204 21 / 35%)}.badge-live::before,.badge-soon::before{content: "";width: 6px;height: 6px;border-radius: 50%;background: currentColor;box-shadow: 0 0 8px currentColor}.badge-plain{color: var(--muted);border-color: var(--border-strong)}.app-summary{color: var(--muted)}.app-links{display: flex;flex-wrap: wrap;gap: 8px;margin-top: auto;padding-top: 4px}.chip-link{display: inline-flex;align-items: center;gap: 7px;min-height: 40px;padding: 7px 12px;border: 1px solid var(--border-strong);border-radius: 10px;background: rgb(255 255 255 / 2%);color: var(--text);font-size: 0.9375rem;font-weight: 600;line-height: 1.2;text-decoration: none;transition: border-color 0.2s,box-shadow 0.2s,color 0.2s}a.chip-link:hover{border-color: var(--accent);color: var(--accent);box-shadow: 0 0 16px -6px rgb(34 211 238 / 70%)}.chip-link.is-accent{border-color: rgb(34 211 238 / 40%);background: rgb(34 211 238 / 8%);color: var(--accent)}.chip-link.is-soon{border-style: dashed;background: none;color: var(--muted);font-weight: 550}.soon-note{font-size: 0.8125rem;font-weight: 500}.soon-note::before{content: "· "}.contact-panel{display: grid;gap: 20px;padding: 24px;border: 1px solid transparent;border-radius: var(--radius);background: linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(120deg,rgb(34 211 238 / 70%),rgb(167 139 250 / 40%),rgb(244 114 182 / 70%)) border-box;box-shadow: 0 0 48px -24px rgb(34 211 238 / 60%)}.contact-copy{display: grid;gap: 8px}.contact-copy p{color: var(--muted)}.contact-actions{display: grid;gap: 8px;justify-items: start}@media (min-width: 860px){.contact-panel{grid-template-columns: 1fr auto;align-items: center;padding: 32px;gap: 32px}}.email-box{display: flex;flex-wrap: wrap;align-items: center;gap: 10px 12px}.email-link{font-family: var(--mono);font-size: 1.0625rem;font-weight: 600;overflow-wrap: anywhere}.email-box.is-large .email-link{font-size: clamp(1.1rem,0.95rem + 1vw,1.375rem)}.copy-btn{min-height: 40px;padding: 8px 14px}.copy-btn[hidden]{display: none}.copy-done-icon{display: none}.copy-btn.is-done{border-color: var(--green);color: var(--green)}.copy-btn.is-done .copy-icon{display: none}.copy-btn.is-done .copy-done-icon{display: inline}.copy-buffer{position: fixed;top: 0;left: -9999px;opacity: 0}.page-head{padding-block: 48px 8px}.page-head h1{margin-bottom: 16px}.page-head p + p{margin-top: 14px}.page-head p:not(.lead){color: var(--muted)}.block{padding-block: 28px}.block h2{margin-bottom: 20px}.block p + p{margin-top: 12px}.block p{color: var(--muted)}.block:last-child{padding-bottom: 64px}@media (min-width: 760px){.page-head{padding-block: 72px 16px}.block{padding-block: 36px}}.skill-groups{display: grid;gap: 22px}.skill-group h3{margin-bottom: 10px;color: var(--accent);font-family: var(--mono);font-size: 0.875rem;font-weight: 600;letter-spacing: 0.02em}.tags{display: flex;flex-wrap: wrap;gap: 8px}.tags li{padding: 5px 11px;border: 1px solid var(--border-strong);border-radius: 8px;background: var(--surface);font-family: var(--mono);font-size: 0.875rem;line-height: 1.4}.entries{display: grid;gap: 4px;border-left: 1px solid var(--border-strong);margin-left: 5px}.entries li{position: relative;padding: 4px 0 22px 24px}.entries li::before{content: "";position: absolute;left: -6px;top: 10px;width: 11px;height: 11px;border-radius: 50%;background: var(--bg);border: 2px solid var(--cyan);box-shadow: 0 0 10px rgb(34 211 238 / 60%)}.entries li:last-child{padding-bottom: 4px}.entries h3{font-size: 1.0625rem}.entry-meta{margin-top: 2px;font-size: 0.9375rem;color: var(--muted)}.entries .entry-meta + p{margin-top: 6px}.link-list{display: grid;gap: 10px;margin-top: 16px}.link-row{display: flex;align-items: center;gap: 14px;min-height: 56px;padding: 12px 16px;border: 1px solid var(--border);border-radius: 12px;background: var(--surface);color: var(--text);text-decoration: none;transition: border-color 0.2s,box-shadow 0.2s}.link-row:hover{border-color: rgb(34 211 238 / 60%);box-shadow: 0 0 20px -10px rgb(34 211 238 / 70%);color: var(--text)}.link-row-text{display: grid;flex: 1;min-width: 0}.link-row-name{font-weight: 650}.link-row-detail{color: var(--muted);font-family: var(--mono);font-size: 0.8125rem;overflow-wrap: anywhere}.link-row>.icon:last-of-type{color: var(--muted)}.link-row:hover>.icon:last-of-type{color: var(--accent)}.not-found{padding-block: 72px 96px}.not-found-code{margin-bottom: 16px;background: var(--neon);-webkit-background-clip: text;background-clip: text;color: transparent;font-family: var(--mono);font-size: 5rem;font-weight: 800;letter-spacing: -0.04em;line-height: 1}.not-found h1{margin-bottom: 12px}.not-found .actions{margin-top: 28px}.inline-links{display: flex;flex-wrap: wrap;gap: 4px 20px;margin-top: 20px}.inline-links a{display: inline-flex;align-items: center;min-height: 44px;font-weight: 600}.site-footer{border-top: 1px solid var(--border);background: var(--bg-raised);font-size: 0.9375rem}.footer-inner{display: grid;gap: 16px;padding-block: 28px 12px}.footer-name{font-weight: 700}.footer-note{color: var(--muted);margin-top: 4px}.footer-side{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 8px 16px}.footer-social{margin-left: -12px}.footer-langs{display: flex;gap: 4px 16px}.footer-langs a,.footer-langs span{display: inline-flex;align-items: center;min-height: 44px}.footer-langs span{color: var(--muted)}.footer-bottom{padding-block: 8px 28px;color: var(--muted);font-family: var(--mono);font-size: 0.8125rem}@media (min-width: 760px){.footer-inner{grid-template-columns: 1fr auto;align-items: center}.footer-social{margin-left: 0}}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important;scroll-behavior: auto !important}}@media (forced-colors: active){.hero h1,.not-found-code{color: CanvasText;background: none}}@media print{html,body{background: #fff;color: #000}.site-header,.site-footer,.copy-btn,.skip-link{display: none}.hero h1,.not-found-code{color: #000;background: none}}