:root{--font-mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--primary: #ffffff;--dark: #000000;--light: #ffffff;--gray: #cccccc;--surface: #0b0b0b;--surface-alt: #151515;--surface-border: rgba(255, 255, 255, .15);--surface-border-strong: rgba(255, 255, 255, .35);--text-muted: rgba(255, 255, 255, .65);--text-strong: rgba(255, 255, 255, .92);--text-inverse: #000000;--focus-outline: rgba(255, 255, 255, .8);--link-hover: rgba(255, 255, 255, .2);--layer-strong: rgba(10, 10, 10, .95);--tint-weak: rgba(255, 255, 255, .04);--tint-strong: rgba(255, 255, 255, .08);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: clamp(4rem, 8vw, 6rem);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.25rem, 2.5vw, 1.5rem);--text-2xl: clamp(1.75rem, 4vw, 2.25rem);--text-hero: clamp(2.25rem, 8vw, 4rem);--leading-tight: 1.2;--leading-normal: 1.6;--radius-sm: 2px;--radius-md: 6px;--radius-lg: 12px;--radius-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 8px 24px rgba(0, 0, 0, .25);--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--z-nav: 100;--z-overlay: 900;--z-modal: 1000;--page-max: 1100px;--measure: 62ch}body.light-mode{--primary: #000000;--dark: #ffffff;--light: #000000;--gray: #333333;--surface: #f5f5f5;--surface-alt: #ffffff;--surface-border: rgba(0, 0, 0, .18);--surface-border-strong: rgba(0, 0, 0, .35);--text-muted: rgba(0, 0, 0, .75);--text-strong: rgba(0, 0, 0, .95);--text-inverse: #ffffff;--focus-outline: rgba(0, 0, 0, .75);--link-hover: rgba(0, 0, 0, .08);--layer-strong: rgba(255, 255, 255, .95);--tint-weak: rgba(0, 0, 0, .035);--tint-strong: rgba(0, 0, 0, .07);--shadow-1: 0 1px 2px rgba(0, 0, 0, .08);--shadow-2: 0 8px 24px rgba(0, 0, 0, .1)}@media (prefers-reduced-motion: reduce){:root{--dur-fast: 1ms;--dur-base: 1ms;--dur-slow: 1ms}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-mono-v17-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-mono-v17-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-family:var(--font-mono)}html,body{background:var(--dark);transition:background var(--dur-base) ease,color var(--dur-base) ease}body{background:var(--dark);color:var(--light);line-height:var(--leading-normal);overflow-x:hidden;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,0);transition:background var(--dur-base) ease,color var(--dur-base) ease}button,input,textarea,select{font:inherit;letter-spacing:inherit}kbd,code,samp,pre{font-family:inherit;font-size:inherit}@supports (height: 100dvh){body{min-height:100dvh}}body{cursor:url('data:image/svg+xml;utf8,<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="2" height="2" fill="white"/><rect x="0" y="2" width="2" height="2" fill="white"/><rect x="0" y="4" width="2" height="2" fill="white"/></svg>'),auto}body.light-mode{cursor:url('data:image/svg+xml;utf8,<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="2" height="2" fill="black"/><rect x="0" y="2" width="2" height="2" fill="black"/><rect x="0" y="4" width="2" height="2" fill="black"/></svg>'),auto}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--dark)}::-webkit-scrollbar-thumb{background:#ffffff40;border-radius:var(--radius-sm);transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#ffffff80}::selection{background:var(--light);color:var(--dark)}a{color:inherit;text-decoration-color:var(--surface-border-strong);text-underline-offset:.2em}a:hover{text-decoration-color:currentColor}.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}*:focus-visible{outline:2px solid var(--focus-outline);outline-offset:2px}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.cursor-blink{animation:cursor-blink 1s infinite;font-weight:400}.skip-link{position:absolute;top:-40px;left:6px;background:var(--surface-alt);color:var(--light);padding:var(--space-2) var(--space-3);border:1px solid var(--surface-border-strong);text-decoration:none;z-index:var(--z-overlay);border-radius:var(--radius-sm);transition:top var(--dur-base) ease}.skip-link:focus{top:6px}.parallax-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.parallax-layer{position:absolute;width:100%;height:100%;transition:transform .1s ease-out}.parallax-dots{background-image:radial-gradient(circle,var(--light) 1px,transparent 1px);background-size:50px 50px;opacity:.1}body.light-mode .parallax-dots{opacity:.05}.honeypot{display:none}.page-main{display:flex;flex-direction:column;align-items:center;gap:var(--space-8)}.section-block{padding:var(--space-24) var(--space-8);max-width:var(--page-max);margin:0 auto;width:100%;text-align:center;display:flex;flex-direction:column;gap:var(--space-8);position:relative}.section-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);max-width:720px;width:min(100%,720px);margin:0 auto;text-align:center;position:relative;z-index:1}.section-title{font-size:var(--text-2xl);text-align:center;margin:0;color:var(--light);letter-spacing:.08em;text-transform:uppercase}.section-title:after{content:"";display:block;width:var(--space-8);height:1px;background:var(--surface-border-strong);margin:var(--space-4) auto 0}.section-lead{max-width:var(--measure);margin:0 auto;color:var(--text-muted);font-size:var(--text-lg);line-height:var(--leading-normal);text-wrap:balance}.card{background:var(--tint-weak);padding:var(--space-6);border:1px solid var(--surface-border);border-radius:var(--radius-md);text-align:left;transition:border-color var(--dur-base) var(--ease-out-quart)}.card:hover{border-color:var(--surface-border-strong)}.card-title{font-size:var(--text-base);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--light);margin-bottom:var(--space-4)}.card-body{display:flex;flex-direction:column;gap:var(--space-3)}.btn,.cta-button{display:inline-block;padding:var(--space-3) var(--space-6);background:transparent;border:1px solid var(--surface-border-strong);color:var(--light);text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:var(--text-sm);border-radius:var(--radius-sm);transition:background var(--dur-base) var(--ease-out-quart),color var(--dur-base) var(--ease-out-quart),border-color var(--dur-base) var(--ease-out-quart);cursor:pointer}.btn:hover,.cta-button:hover{background:var(--light);color:var(--dark)}.cta-button-ghost{border-color:var(--surface-border)}body.js .fade-in{opacity:0;transform:translateY(var(--space-6));transition:opacity var(--dur-slow) var(--ease-out-quart),transform var(--dur-slow) var(--ease-out-quart)}body.js .fade-in.visible{opacity:1;transform:translateY(0)}@media (max-width: 768px){.section-block{padding-inline:var(--space-4);gap:var(--space-6)}.section-title{letter-spacing:.05em}.section-lead{font-size:var(--text-base)}}nav{position:fixed;top:0;left:0;right:0;background:var(--layer-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);z-index:var(--z-nav);padding:calc(.85rem + env(safe-area-inset-top,0px)) 2rem .85rem;border-bottom:1px solid var(--surface-border);transition:background var(--dur-base) ease,border-color var(--dur-base) ease,padding .3s var(--ease-out-quart)}.nav-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{display:none}.nav-links{display:flex;list-style:none;gap:.5rem;justify-content:center;margin:0 auto}.nav-links a{color:var(--light);text-decoration:none;transition:all .25s var(--ease-out-quart);padding:.45rem .9rem;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-sm);letter-spacing:.5px;position:relative}.nav-links a:hover{border-color:var(--surface-border);background:#ffffff0a}.nav-links a.active{border-color:var(--surface-border-strong);background:#ffffff0f}body.light-mode .nav-links a:hover{background:#0000000a}body.light-mode .nav-links a.active{background:#0000000f}.nav-controls{display:flex;gap:.4rem;align-items:center}.theme-toggle,.easter-egg-btn{background:transparent;border:1px solid var(--surface-border);color:var(--light);padding:.35rem .6rem;cursor:pointer;transition:all .2s var(--ease-out-quart);font-size:var(--text-xs);opacity:.7;display:flex;align-items:center;justify-content:center;letter-spacing:1px;text-transform:uppercase;border-radius:var(--radius-sm)}.theme-toggle:hover,.easter-egg-btn:hover{opacity:1;background:var(--light);color:var(--text-inverse);border-color:var(--light)}.easter-egg-btn{font-weight:400;letter-spacing:1.5px}.theme-toggle{font-size:var(--text-xs);letter-spacing:1px}.mobile-menu-toggle{display:none;background:none;border:1px solid var(--surface-border);color:var(--light);font-size:var(--text-xl);padding:.5rem;cursor:pointer;border-radius:var(--radius-sm);transition:all .2s var(--ease-out-quart)}.mobile-menu-toggle:hover{background:#ffffff0f}body.light-mode .mobile-menu-toggle:hover{background:#0000000d}@media (max-width: 768px){nav{padding:calc(.6rem + env(safe-area-inset-top,0px)) .75rem .6rem}.nav-links{display:none;position:absolute;top:calc(100% + env(safe-area-inset-top,0px));left:0;right:0;background:var(--layer-strong);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);flex-direction:column;padding:1rem;gap:.25rem;border-top:1px solid var(--surface-border)}body.light-mode .nav-links{background:#fffffff2}.nav-links.active{display:flex}.mobile-menu-toggle{display:block;flex-shrink:0}.nav-controls{gap:.25rem;margin-left:auto}.theme-toggle,.easter-egg-btn{padding:.3rem .4rem;font-size:var(--text-xs);letter-spacing:.5px}.crt-toggle{padding:.3rem .4rem;font-size:var(--text-xs)}}footer{background:var(--surface-alt);padding:2rem;text-align:center;border-top:1px solid var(--surface-border);margin-top:2rem;position:relative;bottom:0;width:100%;font-size:var(--text-sm);line-height:1.5;color:var(--text-muted)}.footer-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:.75rem}footer p{margin:.2rem 0;color:inherit;opacity:.75}footer a{color:var(--light);text-decoration:none;transition:opacity .2s var(--ease-out-quart)}footer a:hover{opacity:.6}.social-links{display:flex;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-1);align-items:center}.social-links a{color:var(--light);transition:opacity var(--dur-base) var(--ease-out-quart),border-color var(--dur-base) var(--ease-out-quart),background var(--dur-base) var(--ease-out-quart);text-decoration:none;opacity:.6;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-md);border:1px solid transparent}.social-links a:hover{opacity:1;border-color:var(--surface-border);background:var(--tint-weak)}.social-links svg{width:1rem;height:1rem;fill:currentColor;display:block}.keyboard-shortcuts{font-size:var(--text-xs);opacity:.7;margin-top:var(--space-2)}.keyboard-shortcuts kbd{border:1px solid var(--surface-border);border-radius:var(--radius-sm);padding:0 var(--space-1)}.hero{height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative}.hero-content{display:flex;flex-direction:column;align-items:center;gap:.5rem}.hero-content h1{font-size:var(--text-hero);font-weight:400;margin-bottom:.5rem;color:var(--light);text-transform:lowercase;letter-spacing:.08em;line-height:1.1}.hero-name{display:inline-block}.hero-content p{font-size:var(--text-lg);font-weight:400;color:var(--text-muted);margin-bottom:2rem;max-width:600px;text-transform:lowercase;letter-spacing:.15em}.about-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);text-align:left}.about-text h3{font-size:var(--text-lg);font-weight:700;color:var(--light);margin-bottom:var(--space-3)}.about-text p{color:var(--text-muted);line-height:var(--leading-normal)}.subsection-title{font-size:var(--text-base);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--light);margin-bottom:var(--space-4)}.timeline{text-align:left}.timeline-item{position:relative;padding-left:var(--space-6);padding-bottom:var(--space-6);border-left:1px solid var(--surface-border)}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-3px;top:.55em;width:5px;height:5px;border-radius:var(--radius-pill);background:var(--surface-border-strong)}.timeline-date{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.timeline-title{font-size:var(--text-base);font-weight:700;color:var(--light);margin:var(--space-1) 0}.timeline-item p{font-size:var(--text-sm);color:var(--text-muted)}.matrix-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6);text-align:left}.skills-dossier{display:flex;flex-direction:column;gap:var(--space-4)}.skill-track+.skill-track{border-top:1px solid var(--surface-border);padding-top:var(--space-4)}.skill-track-title{font-size:var(--text-sm);font-weight:700;color:var(--light)}.skill-copy{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-1) 0 var(--space-3)}.skill-track-pills,.interest-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.skill-pill,.interest-tag{font-size:var(--text-xs);color:var(--text-muted);border:1px solid var(--surface-border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);white-space:nowrap}.interest-grid{flex-direction:column;gap:var(--space-3)}.interest-item+.interest-item{border-top:1px solid var(--surface-border);padding-top:var(--space-3)}.interest-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.interest-label{font-size:var(--text-sm);color:var(--light)}.cv-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-6);align-items:stretch;max-width:var(--page-max);width:100%;margin:0 auto}.project-card{background:var(--tint-weak);border:1px solid var(--surface-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--dur-base) var(--ease-out-quart);position:relative}.project-card:hover{border-color:var(--surface-border-strong)}.project-image{width:100%;aspect-ratio:16 / 9;background:var(--surface);display:block;overflow:hidden;position:relative}.project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease-out-quart);filter:grayscale(100%) contrast(1.2)}.project-card a[href="/app.html"] .project-image img,.project-card a[href="/monodot.html"] .project-image img,.project-image-themeable img{object-fit:contain;object-position:center;padding:var(--space-6);background:var(--surface);filter:grayscale(100%) contrast(1.1)}.project-image-themeable .project-image-light,body.light-mode .project-image-themeable .project-image-dark{display:none}body.light-mode .project-image-themeable .project-image-light{display:block}.project-card:hover .project-image img{transform:scale(1.04)}.project-card a,.project-card a:visited,.project-card a:hover,.project-card a:active{text-decoration:none;color:inherit;display:block}.project-content{padding:var(--space-6);color:var(--light);text-align:left}.project-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);letter-spacing:1px;text-transform:uppercase}.project-label{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--surface-border);border-radius:var(--radius-pill);background:var(--tint-weak);font-size:var(--text-xs);letter-spacing:1.5px}.project-year{font-weight:700;font-size:var(--text-sm)}.project-content p{color:inherit}.project-description{color:var(--text-muted);margin-bottom:var(--space-3);line-height:var(--leading-normal);font-size:var(--text-base)}.project-highlights{list-style:none;padding:0;margin:0 0 var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);color:var(--text-muted);font-size:var(--text-sm)}.project-highlights li:before{content:"→";margin-right:var(--space-2);color:var(--light);opacity:.5}.project-title{color:var(--light);margin-bottom:var(--space-2);letter-spacing:.06em;font-size:var(--text-lg);line-height:var(--leading-tight)}.project-tech{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.tech-tag{background:transparent;color:var(--text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);border:1px solid var(--surface-border);transition:background var(--dur-base) var(--ease-out-quart),color var(--dur-base) var(--ease-out-quart),border-color var(--dur-base) var(--ease-out-quart);letter-spacing:.3px}.tech-tag:hover{background:var(--tint-strong);color:var(--light);border-color:var(--surface-border-strong)}@media (max-width: 768px){.projects-grid{grid-template-columns:1fr;gap:var(--space-4)}.project-content{padding:var(--space-4)}}.contact-terminal{border:1px solid var(--surface-border);border-radius:var(--radius-lg);overflow:hidden;text-align:left;max-width:900px;width:100%;margin:0 auto}.contact-shell{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.shell-line{font-size:var(--text-xs);color:var(--text-muted)}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--space-6)}.contact-aside{display:flex;flex-direction:column;gap:var(--space-4)}.contact-aside-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--light)}.contact-aside-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.contact-code-block{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);border-left:1px solid var(--surface-border);padding-left:var(--space-3)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.form-group.full-width{grid-column:1 / -1}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.form-group input,.form-group textarea{background:var(--tint-weak);border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--light);padding:var(--space-3);font-size:var(--text-sm);width:100%;transition:border-color var(--dur-base) var(--ease-out-quart)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--surface-border-strong)}.form-group textarea{resize:vertical;min-height:8rem}.form-footer{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6)}.form-group.error input,.form-group.error textarea{border-color:var(--light);border-left-width:3px}.form-group .error-message{display:none;font-size:var(--text-xs);font-weight:700;color:var(--light)}.form-group.error .error-message{display:block}.form-group .error-message:before{content:"! "}.form-group.success input,.form-group.success textarea{border-color:var(--surface-border-strong)}.submit-btn{width:100%;padding:var(--space-3);background:transparent;border:1px solid var(--surface-border-strong);border-radius:var(--radius-sm);color:var(--light);text-transform:uppercase;letter-spacing:.14em;font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:background var(--dur-base) var(--ease-out-quart),color var(--dur-base) var(--ease-out-quart)}.submit-btn:hover:not(:disabled){background:var(--light);color:var(--dark)}.submit-btn:disabled{opacity:.5;cursor:not-allowed}.form-message{display:none;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid var(--surface-border-strong)}.form-message.show{display:block}.form-message.success:before{content:"OK — ";font-weight:700}.form-message.error:before{content:"! ";font-weight:700}@media (max-width: 768px){.contact-grid{grid-template-columns:1fr}.contact-shell{padding:var(--space-4)}}.retro-loading-bar{display:none}.submit-btn.loading .retro-loading-bar,.submit-btn.loading>.retro-loading-bar{display:block;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tint-strong);transform-origin:left;animation:retroLoad 3s var(--ease-out-quart) forwards;pointer-events:none}.submit-btn{position:relative;overflow:hidden}.submit-btn.success{border-color:var(--light);font-weight:700}@keyframes retroLoad{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.terminal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--surface-border);background:var(--tint-weak)}.terminal-title{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.14em}.terminal-status{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);border:1px solid var(--surface-border);border-radius:var(--radius-pill);padding:0 var(--space-2)}.cursor{animation:blink 1s steps(2,jump-none) infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.games-info{text-align:center;max-width:600px;margin:0 auto;padding:2rem}.games-info p{color:var(--text-muted);margin-bottom:2rem;font-size:var(--text-lg)}.game-shortcuts{display:flex;flex-direction:column;gap:1rem;align-items:center}.shortcut-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--surface-border);border-radius:var(--radius-md);background:var(--surface-alt);transition:all .3s ease}.shortcut-item:hover{background:var(--surface);transform:translateY(-2px)}.shortcut-item kbd{background:var(--light);color:var(--text-inverse);padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:700}body.game-modal-open{overflow:hidden;touch-action:none}.game-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#000000d9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);padding:2rem}.game-overlay.active{display:flex}.game-terminal{background:#000000fa;border:2px solid #ffffff;border-radius:var(--radius-md);display:flex;flex-direction:column;width:min(640px,90vw);max-height:90vh;box-shadow:var(--shadow-2);overflow:hidden}.game-terminal.active{box-shadow:0 0 35px #ffffff40}.game-terminal .terminal-header{background:var(--surface);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--surface-border)}.game-terminal .terminal-title{color:var(--light);font-size:var(--text-base);font-weight:400}.game-terminal .close-btn{background:transparent;color:var(--text-muted);border:1px solid var(--surface-border);width:20px;height:20px;border-radius:var(--radius-pill);cursor:pointer;transition:border-color var(--dur-base) var(--ease-out-quart),color var(--dur-base) var(--ease-out-quart);font-size:var(--text-xs);display:flex;align-items:center;justify-content:center}.game-terminal .close-btn:hover{border-color:var(--surface-border-strong);color:var(--light)}.game-terminal .terminal-body{padding:20px;color:var(--light)}.game-terminal .game-info{display:flex;justify-content:space-between;margin-bottom:20px;font-size:var(--text-base)}.game-terminal .score-info{color:var(--light)}.game-terminal .controls-info{color:var(--text-muted);text-align:right}.game-terminal .game-canvas-container{display:flex;justify-content:center;align-items:flex-start;gap:12px;margin-bottom:20px}.game-terminal .game-canvas{border:1px solid var(--surface-border);background:var(--dark)}.game-terminal .next-piece{width:80px;height:80px;border:1px solid var(--surface-border);background:var(--dark);flex-shrink:0}.game-terminal .game-controls{text-align:center;color:var(--text-muted);font-size:var(--text-sm);line-height:1.4}.game-over,.snake-game-over{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface-alt);border:2px solid var(--surface-border-strong);border-radius:var(--radius-md);padding:2rem;text-align:center;color:var(--light);z-index:calc(var(--z-modal) + 1);display:none;box-shadow:0 20px 50px #00000073}.game-over.active,.snake-game-over.active{display:block}.game-over-touch-controls{display:none;gap:.75rem;margin-top:1rem;justify-content:center}.game-over-btn{padding:.7rem 1.4rem;background:transparent;border:1px solid var(--surface-border-strong);color:var(--light);font-size:var(--text-sm);font-weight:700;cursor:pointer;border-radius:var(--radius-sm);letter-spacing:1px;transition:background .2s,color .2s}.game-over-btn:active{background:var(--light);color:var(--dark)}.touch-controls{display:none;justify-content:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.touch-btn{width:3.5rem;height:3.5rem;background:transparent;border:2px solid var(--surface-border-strong);color:var(--light);font-size:var(--text-xl);cursor:pointer;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.touch-btn:active{background:var(--light);color:var(--dark)}.mobile-hint{display:none}.desktop-hint{display:inline}@media (max-width: 768px){.mobile-hint{display:inline}.desktop-hint{display:none}.touch-controls,.game-over-touch-controls{display:flex}.game-overlay{padding:1rem}.game-terminal{width:95vw;min-width:300px;max-width:95vw;max-height:90vh;padding:0;border-radius:var(--radius-md)}.game-terminal .close-btn:hover{border-color:var(--surface-border-strong);color:var(--light)}.game-terminal .terminal-body{padding:12px;height:calc(100% - 40px);overflow-y:auto}.game-terminal .game-canvas{width:100%;height:auto;max-width:280px;max-height:400px}.game-terminal .game-canvas-container{display:flex;flex-direction:column;align-items:center;gap:10px}.game-terminal .game-info{flex-direction:column;gap:8px;margin-bottom:12px}.game-terminal .score-info,.game-terminal .controls-info{text-align:center;font-size:var(--text-sm)}.game-terminal .game-controls{font-size:var(--text-xs);margin-top:8px}.game-shortcuts{flex-direction:column}.shortcut-item{flex-direction:column;text-align:center;gap:.5rem}.game-over,.snake-game-over{width:90%;max-width:350px;padding:15px}}@media print{body>*{display:none!important}#cvPrintable{display:block!important;background-color:#fff!important;width:100%;height:100%;position:absolute;top:0;left:0;margin:0;padding:0}@page{margin:2cm}body{background:#fff!important;color:#000!important}.cv-container{font-family:var(--font-mono);color:#000;padding:20px;max-width:800px;margin:0 auto;line-height:1.5}.cv-container h1{margin-bottom:0;font-size:24pt;color:#000}.cv-container .subtitle{margin-top:4px;color:#444;font-size:12pt}.cv-container hr{margin:16px 0;border:0;border-top:1px solid #ccc}.cv-container h2{font-size:16pt;margin-top:20px;margin-bottom:10px;border-bottom:1px solid #eee;padding-bottom:5px}.cv-container ul{list-style:none;padding:0;margin-bottom:1rem}.cv-container li{margin-bottom:.8rem}.cv-container li strong{display:block;font-weight:700}.cv-container .meta{font-size:var(--text-base);opacity:.8;display:block;margin-top:2px}.cv-container h3{font-size:var(--text-base);margin-top:1rem;margin-bottom:.5rem;font-weight:700}.cv-container p{margin:0}}@media screen{#cvPrintable{display:none!important}}
