:root{--color-bg: #f0f4f8;--color-text: #333;--color-primary: #0066aa;--color-primary-hover: #004d80;--color-surface: #fff;--color-border: rgba(0, 0, 0, .08);--color-muted: #555;--color-chip-bg: rgba(0, 102, 170, .08);--font-sans: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--shadow-sm: 0 2px 6px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--radius: 8px;--max-content: 800px}html.dark{--color-bg: rgb(30, 30, 34);--color-text: #e4e4e7;--color-primary: #58a6ff;--color-primary-hover: #79b8ff;--color-surface: rgb(44, 44, 48);--color-border: rgba(255, 255, 255, .08);--color-muted: #a1a1aa;--color-chip-bg: rgba(88, 166, 255, .12)}html{scroll-behavior:smooth}body{font-family:var(--font-sans);margin:0;padding:0;background:var(--color-bg);color:var(--color-text);line-height:1.6}.app{min-height:100vh;display:flex;flex-direction:column}.nav{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem 1rem;padding:.6rem 1.25rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.nav__brand{font-weight:700;font-size:1.05rem;color:var(--color-text);text-decoration:none}.nav__links{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .9rem}.nav__link{color:var(--color-muted);text-decoration:none;font-size:.95rem;font-weight:500;transition:color .15s ease}.nav__link:hover{color:var(--color-primary)}.theme-toggle{padding:.35rem .6rem;font-size:1.1rem;border-radius:var(--radius);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);transition:transform .15s ease}.theme-toggle:hover{transform:scale(1.05)}.hero{background:linear-gradient(135deg,#06a,#004d80);color:#fff;padding:3.5rem 1.5rem;text-align:center}html.dark .hero{background:linear-gradient(135deg,#1a3a52,#0d2137)}.hero__title{margin:0 0 .5rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600;letter-spacing:-.02em}.hero__tagline{margin:0 0 1.5rem;font-size:clamp(1rem,2vw,1.125rem);opacity:.95}.hero__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.btn{display:inline-block;padding:.55rem 1.2rem;border-radius:var(--radius);font-size:.95rem;font-weight:600;font-family:inherit;text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.btn--solid{background:#fff;color:#004d80;border:1px solid transparent}.btn--solid:hover{transform:translateY(-1px)}.btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.6)}.btn--ghost:hover{background:#ffffff1f}.btn--sm{padding:.3rem .75rem;font-size:.85rem}.main .btn--solid{background:var(--color-primary);color:var(--color-surface)}.main .btn--ghost{color:var(--color-primary);border-color:var(--color-primary)}.main .btn--ghost:hover{background:var(--color-chip-bg)}.main{flex:1;padding:0 1rem 2rem}.section{max-width:var(--max-content);margin:0 auto;padding:2.5rem 0}.section:not(:last-child){border-bottom:1px solid var(--color-border)}.section h2{margin:0 0 1rem;font-size:1.5rem;font-weight:600;color:var(--color-text)}.section__subheading{margin:2rem 0 .75rem;font-size:1.1rem;font-weight:600;color:var(--color-text)}.section__note{margin:0 0 1.25rem;font-size:.95rem;color:var(--color-muted)}.prose{max-width:65ch}.prose p{margin:0 0 1rem;font-size:clamp(1rem,2.5vw,1.0625rem);line-height:1.65;color:var(--color-text)}.prose p:last-child{margin-bottom:0}.link{text-decoration:none;font-weight:500;transition:color .15s ease}.link--primary{color:var(--color-primary)}.link--primary:hover{color:var(--color-primary-hover);text-decoration:underline}.chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:.75rem 0 0}.chip{padding:.15rem .6rem;border-radius:999px;background:var(--color-chip-bg);color:var(--color-primary);font-size:.78rem;font-weight:600;white-space:nowrap}.chip--lg{font-size:.88rem;padding:.25rem .75rem}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.25rem;margin-top:1rem}.project-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;color:inherit;text-decoration:none;transition:box-shadow .2s ease,transform .2s ease}.project-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card__title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--color-primary)}.project-card__desc{margin:0;flex:1;font-size:.9rem;color:var(--color-muted);line-height:1.5}.project-list{list-style:none;padding:0;margin:0}.project-list__item{padding:.85rem 0;border-bottom:1px solid var(--color-border)}.project-list__item:last-child{border-bottom:none}.project-list__item .link{display:inline-block;margin-bottom:.25rem}.project-list__desc{margin:0;font-size:.95rem;color:var(--color-muted);line-height:1.5}.skills{display:flex;flex-direction:column;gap:1.5rem}.skills__label{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em}.game{max-width:520px}.game__hud{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:.75rem;font-size:.95rem;font-weight:600}.game__stage{position:relative}.game__canvas{display:block;width:100%;aspect-ratio:4 / 3;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);touch-action:none;cursor:none}.game__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;text-align:center;padding:1rem;background:color-mix(in srgb,var(--color-surface) 82%,transparent);border-radius:var(--radius);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.game__overlay-title{margin:0;font-size:1.35rem;font-weight:700}.game__overlay-hint{margin:0 0 .75rem;color:var(--color-muted);font-size:.95rem}.game__hint{margin:.75rem 0 0;font-size:.85rem;color:var(--color-muted)}.footer{background:var(--color-surface);border-top:1px solid var(--color-border);text-align:center;padding:1.25rem 1rem;font-size:.875rem;color:var(--color-muted)}
