:root{--paper: #faf9f6;--ink: #1d2129;--muted: #6a7080;--rule: #e6e3db;--tint: #f3f1ea;--accent: #8a5a10;--green: #3e9e5f;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.65;overflow:hidden}#app{width:100vw;height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#chrome{position:fixed;top:16px;right:16px;z-index:100;display:flex;gap:8px}#mode-toggle,#lang-toggle{background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:2px;padding:7px 12px;font-family:var(--font-mono);font-size:12px;cursor:pointer;box-shadow:0 1px 2px #1d21290f}#mode-toggle:hover,#lang-toggle:hover{border-color:var(--muted)}#classic-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--paper);overflow-y:auto}#classic-overlay.hidden{display:none}.classic-view{max-width:960px;margin:0 auto;padding:88px 24px 48px}.contact,.infra,.skills{max-width:760px}.hero{display:flex;gap:52px;align-items:flex-start}.hero-main{flex:1;min-width:0}.hero-side{flex:none;width:224px;display:flex;flex-direction:column;gap:16px}.hero-photo{width:224px;height:224px;border-radius:6px;object-fit:cover;border:1px solid var(--rule);box-shadow:0 2px 14px #1d212914}.hero-cv{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;background:#fff}.hero-cv:hover{text-decoration:none;border-color:var(--muted)}.hero-cv-thumb{width:52px;border:1px solid var(--rule);border-radius:2px}.hero-cv-label{display:flex;flex-direction:column;gap:2px}.hero-cv-label strong{color:var(--ink);font-size:14px;font-weight:600}.hero-cv-label span{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.hero-name{font-size:34px;font-weight:700;letter-spacing:-.5px;line-height:1.2}.hero-role{font-size:18px;color:var(--muted);margin-top:6px}.hero-pitch{font-size:17px;margin-top:18px;max-width:58ch}.hero-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px;font-family:var(--font-mono);font-size:14px}.game-cta{display:inline-block;margin-top:26px;background:var(--ink);color:var(--paper);border:none;border-radius:2px;padding:11px 18px;font-family:var(--font-body);font-size:15px;font-weight:500;cursor:pointer}.game-cta:hover{background:#343a46}.section{margin-top:64px}.section-title{font-family:var(--font-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-bottom:24px}.project-list{display:flex;flex-direction:column;gap:84px}.project{display:flex;gap:44px;align-items:center}.project:nth-of-type(2n){flex-direction:row-reverse}.project-body{flex:1;min-width:0}.project-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}.project-title h3{font-size:22px;font-weight:600;letter-spacing:-.2px}.project--featured .project-title h3{font-size:27px}.project-type{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.project-description{margin-top:10px;font-size:16px}.project-stack{margin-top:12px;font-family:var(--font-mono);font-size:13px;color:var(--muted)}.project-links{display:flex;gap:18px;margin-top:12px;font-family:var(--font-mono);font-size:13px}.project-image{flex:none;width:46%;aspect-ratio:16 / 10;object-fit:cover;border:1px solid var(--rule);border-radius:3px;box-shadow:0 2px 14px #1d212914}.project--featured .project-image{width:52%}.project-image--pixel{image-rendering:pixelated}.skills-core{font-family:var(--font-mono);font-size:15px;line-height:2}.skills-note{margin-top:12px;color:var(--muted);max-width:58ch}.infra-intro{max-width:58ch}.infra-list{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:8px;font-size:15px}.infra-list strong{font-weight:600}.infra-list span{color:var(--muted)}.contact-email{display:inline-block;margin-top:12px;font-family:var(--font-mono);font-size:18px}.colophon{margin-top:72px;padding-top:20px;border-top:1px solid var(--rule);font-size:13px;color:var(--muted)}.dialog-box{--g-surface: #151a30;--g-raised: #1d2440;--g-frame: #3b4368;--g-text: #e8e6dc;--g-gold: #f0b429;position:fixed;top:0;right:0;bottom:0;z-index:50;width:360px;max-width:90vw;background:var(--g-surface);color:var(--g-text);border-left:4px solid var(--g-frame);padding:24px 20px;overflow-y:auto;display:flex;flex-direction:column}.dialog-box.hidden{display:none}.dialog-inner{display:flex;flex-direction:column;gap:16px;flex:1}.dialog-spacer{flex:1}.dialog-image{width:100%;aspect-ratio:16 / 9;object-fit:cover;image-rendering:pixelated;border:2px solid var(--g-frame)}.dialog-title{font-family:"Press Start 2P",monospace;font-size:13px;line-height:1.6;color:var(--g-gold)}.dialog-description{font-size:14px;line-height:1.7}.dialog-stack{display:flex;flex-wrap:wrap;gap:8px}.dialog-box .stack-tag{font-size:12px;background:var(--g-raised);border:1px solid var(--g-frame);padding:3px 8px}.dialog-links{display:flex;gap:16px}.dialog-links a{color:var(--g-gold);font-family:var(--font-mono);font-size:13px}.dialog-close{background:transparent;border:2px solid var(--g-frame);color:var(--g-text);font-family:var(--font-mono);font-size:12px;padding:8px 10px;cursor:pointer}.dialog-close:hover{background:var(--g-raised)}@media(max-width:767px){body{overflow:auto}#app{height:auto;min-height:100vh}#mode-toggle,.game-cta{display:none}.hero{flex-direction:column-reverse;gap:22px}.hero-side{width:100%;flex-direction:row;align-items:center}.hero-photo{width:96px;height:96px}.project,.project:nth-of-type(2n){flex-direction:column;align-items:stretch;gap:18px}.project-list{gap:56px}.project-image,.project--featured .project-image{width:100%}.skills-row{grid-template-columns:1fr;gap:2px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
