@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'IBM Plex Mono';src:url('/assets/fonts/ibm-plex-mono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'IBM Plex Mono Fallback';src:local('Courier New');ascent-override:82%;descent-override:20%;line-gap-override:0%;size-adjust:100%}*{margin:0;padding:0;box-sizing:border-box}:root{--bg:rgba(18,18,24,0.62);--bg-solid:#141414;--surface:#1c1c1c;--fg:#fff;--muted:#888;--border:#fff;--border-subtle:#333;--hover:rgba(40,40,48,0.7);--success:#4caf50;--danger:#f44336}html{background:#0a0a10}body{font-family:"IBM Plex Mono","IBM Plex Mono Fallback",monospace;background:transparent;color:var(--fg);font-size:13px;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 60% 50% at 15% 10%,rgba(64,120,200,0.35),transparent 70%),radial-gradient(ellipse 55% 45% at 85% 20%,rgba(180,70,140,0.30),transparent 70%),radial-gradient(ellipse 70% 55% at 80% 85%,rgba(60,160,130,0.30),transparent 70%),radial-gradient(ellipse 65% 50% at 10% 90%,rgba(220,130,50,0.28),transparent 70%),radial-gradient(ellipse 50% 40% at 50% 50%,rgba(120,80,200,0.22),transparent 75%),linear-gradient(135deg,#0d0d10 0%,#161620 50%,#0d0d10 100%);z-index:-2;pointer-events:none}body::after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,0.45) 100%);z-index:-1;pointer-events:none}a{color:var(--fg)}header{background:var(--bg-solid);padding:24px 0;border-bottom:1px solid var(--border)}.header-wrapper{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 20px}.terminal-prompt{display:flex;align-items:center;gap:4px;font-size:12px}.cursor{animation:blink 1s step-end infinite}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}header h1{font-size:18px;font-weight:500}header h1 a{text-decoration:none;color:inherit}.header-stats{display:flex;gap:20px}.stat-item{display:flex;flex-direction:column;gap:2px;text-align:right}.stat-label{font-size:10px;color:var(--muted);text-transform:uppercase}.stat-value{font-size:12px}.env-badge{font-size:10px;color:var(--muted);border:1px solid var(--border-subtle);padding:2px 8px;letter-spacing:1px}.nav{display:flex;justify-content:flex-start;align-items:center;gap:4px;padding:10px max(20px,calc((100% - 1200px) / 2 + 20px));border-bottom:1px solid var(--border-subtle);background:var(--bg-solid)}.nav-links{display:flex;gap:4px;flex:1}.nav-links-header,.nav-link-num,.nav-backdrop{display:none}.nav-toggle{display:none}.nav-burger{display:none}.nav a{color:var(--muted);text-decoration:none;padding:6px 12px;font-size:12px;transition:color 0.2s,background 0.2s}.nav a .nav-link-label{display:inline}.nav a:hover{color:var(--fg);background:var(--hover)}.nav a.active{color:var(--fg);background:var(--hover)}html:has(.nav-toggle:checked){overflow:hidden}.container{max-width:1200px;margin:0 auto;padding:30px 20px;flex:1;width:100%;--border:#888}.tiles-section{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--border)}.tile{background:var(--bg-solid);border-right:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;transition:background 0.3s,box-shadow 0.3s;overflow:hidden}.tile:nth-child(even){border-right:none}.tile:last-child:nth-child(odd){grid-column:1 / -1;border-right:none}.tile::before{content:"";position:absolute;inset:0;left:-100%;width:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.05),transparent);transition:left 0.5s}.tile:hover{background:#1f1f24;box-shadow:0 8px 25px rgba(255,255,255,0.1)}.tile:hover::before{left:100%}.tile-counter{position:absolute;top:8px;right:8px;font-size:12px;color:var(--muted);opacity:0.5}.tile-link{display:block;padding:24px;text-decoration:none;color:inherit}.tile-content{display:flex;gap:16px;align-items:flex-start}.tile-icon svg{width:25px;height:25px;stroke:var(--border);fill:none;flex-shrink:0;transition:stroke 0.3s}.tile-icon svg .filled{fill:var(--border);stroke:none;transition:fill 0.3s}.tile h2{font-size:16px;font-weight:500;margin-bottom:4px}.tile p{font-size:12px;color:var(--muted)}.tile-tech{font-size:11px;color:var(--muted);margin-top:6px;opacity:0.7}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;margin-bottom:16px}.info-grid .info-card{border:1px solid var(--border);margin-bottom:0}.info-card{background:var(--bg-solid);border:1px solid var(--border);padding:24px;margin-bottom:16px}.info-card h2,.info-card h3{font-size:14px;font-weight:500;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px}.info-table{width:100%;border-collapse:collapse}.info-table td,.info-table th{padding:8px 10px;border-bottom:1px solid var(--border-subtle);font-size:12px}.info-table tr:last-child td{border-bottom:none}.info-table td:first-child{color:var(--muted);width:45%}.info-table-full th{text-align:left;color:var(--muted);font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:0.5px}.ext-list{color:var(--muted);font-size:12px;line-height:1.8;word-break:break-all}.server-info{color:var(--muted);font-size:12px;margin-bottom:20px}.server-info .ok{color:var(--success)}.server-info .err{color:var(--danger)}.page-header{margin-bottom:16px;background:transparent;border:0;padding:0}.page-header::before{content:none}.page-header h2{font-size:18px;font-weight:500;margin-bottom:4px;color:var(--fg)}.page-sub{color:var(--muted);font-size:12px;max-width:720px;line-height:1.5}.page-header-cmd{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-bottom:6px}.ph-prompt{color:var(--success);margin-right:4px}.ph-cmd{color:var(--fg)}.ph-cursor{color:var(--fg);animation:blink 1s step-end infinite;margin-left:2px}.page-meta{display:flex;gap:18px;margin-top:10px;flex-wrap:wrap;font-family:'IBM Plex Mono',monospace;font-size:11px}.page-meta-item{display:inline-flex;align-items:center;gap:6px}.page-meta-key{color:var(--muted)}.page-meta-key::after{content:":"}.page-meta-val{color:var(--fg)}.status-pill{display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:0.5px;padding:2px 8px;border:1px solid currentColor;border-radius:2px}.status-pill .status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}.status-ok{color:var(--success)}.status-warn{color:#ffb74d}.status-err{color:var(--danger)}.home-intro{padding:28px 0 20px;border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.home-intro-cmd{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--muted);margin-bottom:12px}.home-intro-title{font-size:26px;font-weight:500;line-height:1.3;max-width:720px;color:var(--fg)}.home-intro-sub{color:var(--muted);margin-top:12px;max-width:640px;line-height:1.6;font-size:14px}@media (max-width:700px){.home-intro-title{font-size:20px}.home-intro-sub{font-size:13px}}kbd{font-family:'IBM Plex Mono',monospace;font-size:11px;background:var(--surface);border:1px solid var(--border);padding:1px 6px;border-radius:3px;color:var(--fg)}@keyframes blink{0%,50%{opacity:1}51%,100%{opacity:0}}.note-form{background:var(--bg-solid);border:1px solid var(--border);padding:24px;margin-bottom:24px}.note-form h2{font-size:14px;font-weight:500;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px}.note-form input,.note-form textarea{width:100%;padding:10px 12px;border:1px solid var(--border-subtle);background:var(--surface);color:var(--fg);font-family:inherit;font-size:13px;margin-bottom:10px}.note-form textarea{min-height:80px;resize:vertical}.note-form input:focus,.note-form textarea:focus{outline:none;border-color:var(--fg)}.btn{display:inline-block;padding:8px 20px;border:1px solid var(--border);background:var(--bg-solid);color:var(--fg);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background 0.2s}.btn:hover{background:var(--hover)}.btn-primary{background:var(--fg);color:var(--bg-solid);border-color:var(--fg)}.btn-primary:hover{background:var(--muted)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);font-size:11px;padding:4px 10px}.btn-danger:hover{background:rgba(244,67,54,0.15)}.notes-list h2{font-size:14px;font-weight:500;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px}.note-card{background:var(--bg-solid);border:1px solid var(--border-subtle);padding:16px 20px;margin-bottom:8px;transition:border-color 0.2s}.note-card:hover{border-color:var(--border)}.note-card .note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.note-card .note-title{font-weight:500;font-size:13px}.note-card .note-date{color:var(--muted);font-size:11px}.note-card .note-body{color:var(--muted);font-size:12px;line-height:1.6;white-space:pre-wrap}.empty-state{text-align:center;color:var(--muted);padding:40px 20px;font-size:12px}.toast{position:fixed;bottom:20px;right:20px;padding:10px 16px;color:var(--fg);font-family:inherit;font-size:12px;opacity:0;transition:opacity 0.3s;pointer-events:none;border:1px solid var(--border);background:var(--bg-solid)}.toast.show{opacity:1}.toast.success{border-color:var(--success)}.toast.error{border-color:var(--danger)}.link-list{list-style:none;padding:0}.link-list li{padding:6px 0;border-bottom:1px solid var(--border-subtle)}.link-list li:last-child{border-bottom:none}.link-list a{color:var(--fg);text-decoration:none;font-size:12px}.link-list a:hover{color:var(--muted)}.error-page{text-align:center;padding:60px 20px;border:1px solid var(--border)}.error-page h2{font-size:18px;font-weight:500;margin-bottom:8px}.error-page p{color:var(--muted);font-size:12px;margin-bottom:20px}footer{padding:20px 0;text-align:center;border-top:1px solid var(--border);background:var(--bg-solid)}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 20px}footer p{font-size:12px;color:var(--muted)}footer a{color:var(--muted);text-decoration:none;font-size:12px}footer a:hover{color:var(--fg)}.pulse-dots{display:flex;gap:6px}.pulse-dot{width:6px;height:6px;background:var(--fg);border-radius:50%;animation:pulse 2s ease-in-out infinite}.pulse-dot:nth-child(2){animation-delay:0.3s}.pulse-dot:nth-child(3){animation-delay:0.6s}@keyframes pulse{0%,100%{opacity:0.3}50%{opacity:1}}.sensor-tile{background:var(--bg-solid)}.sensor-tile:hover{background:var(--bg-solid);box-shadow:none}.sensor-tile:hover::before{left:-100%}.sensor-tile .tile-icon svg{stroke:var(--muted)}.sensor-tile .tile-link::before{content:none}.sensor-tile:hover .tile-link{padding-left:14px}.sensor-tile .tile-link{transition:none;cursor:default}.tiles-section.no-hover .tile,.tiles-section.no-hover .tile:hover{background:var(--bg-solid) !important;box-shadow:none !important;transition:none !important}.tiles-section.no-hover .tile::before,.tiles-section.no-hover .tile:hover::before{content:none !important;background:none !important;transition:none !important}.tiles-section.no-hover .tile .tile-link,.tiles-section.no-hover .tile:hover .tile-link{transition:none !important;cursor:default !important}.tiles-section.no-hover:not([data-sensor-tiles]) .tile .tile-link,.tiles-section.no-hover:not([data-sensor-tiles]) .tile:hover .tile-link{padding-left:24px}.tiles-section.no-hover .tile .tile-link::before,.tiles-section.no-hover .tile:hover .tile-link::before{content:none !important;opacity:0 !important;transform:none !important;transition:none !important}.tiles-section[data-sensor-tiles]{grid-template-columns:repeat(4,1fr)}.tiles-section[data-sensor-tiles] .tile{border-right:1px solid var(--border);border-bottom:none}.tiles-section[data-sensor-tiles] .tile:nth-child(even){border-right:1px solid var(--border)}.tiles-section[data-sensor-tiles] .tile:last-child{border-right:none}.tiles-section[data-sensor-tiles] .tile .tile-link,.tiles-section[data-sensor-tiles] .tile:hover .tile-link{padding:12px 14px}.tiles-section[data-sensor-tiles] .tile-content{display:flex;align-items:center;gap:10px}.tiles-section[data-sensor-tiles] .tile-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;color:var(--muted)}.tiles-section[data-sensor-tiles] .tile-icon svg{width:14px;height:14px;stroke-width:2}.tiles-section[data-sensor-tiles] .tile-text{min-width:0}.tiles-section[data-sensor-tiles] .tile h2{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.6px;color:var(--muted);margin-bottom:2px}.tiles-section[data-sensor-tiles] .tile p{display:none}.tiles-section[data-sensor-tiles] .sensor-value{font-size:18px;margin-top:2px}.tiles-section[data-sensor-tiles] .tile-counter{font-size:10px;top:6px;right:8px}@media (max-width:800px){.tiles-section[data-sensor-tiles]{grid-template-columns:repeat(2,1fr)}.tiles-section[data-sensor-tiles] .tile:nth-child(even){border-right:none}.tiles-section[data-sensor-tiles] .tile:nth-child(-n+2){border-bottom:1px solid var(--border)}}.sensor-header .sensor-header-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.sensor-updated{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:0.3px}.sensor-value{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:500;color:var(--fg);margin-top:10px;letter-spacing:0.5px}.chart-grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:16px}.chart-tile{background:var(--bg-solid);border:1px solid var(--border);padding:16px;margin-top:16px}.chart-tile h3{font-size:13px;font-weight:500;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;padding:10px}.chart-tile canvas{width:100% !important;height:340px !important;background:transparent}.sensor-chart{padding:8px}.env-analysis{background:var(--bg-solid);border:1px solid var(--border);margin-top:16px;padding:16px 18px 18px;font-family:'IBM Plex Mono',monospace}.env-analysis-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;padding-bottom:10px;border-bottom:1px dashed var(--border-subtle)}.env-analysis-head h3{font-size:12px;font-weight:500;letter-spacing:0.6px;text-transform:uppercase;color:var(--fg);margin:0}.env-analysis-window{font-size:11px;color:var(--muted);letter-spacing:0.3px}.env-analysis-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.env-analysis-cell{padding:10px 16px;border-right:1px dashed var(--border-subtle)}.env-analysis-cell:last-child{border-right:none}.env-analysis-cell:first-child{padding-left:0}.env-analysis-cell:last-child{padding-right:0}.eac-label{font-size:10px;letter-spacing:0.6px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.eac-table{width:100%;border-collapse:collapse;margin-bottom:8px;font-size:11px}.eac-table td{padding:2px 8px 2px 0;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;width:22%}.eac-table td b{color:var(--fg);font-weight:500;font-size:13px;letter-spacing:0.3px;text-transform:none}.eac-table td:nth-child(even){width:28%}.eac-recent{font-size:10px;color:var(--muted);letter-spacing:0.3px;line-height:1.4}.eac-recent b{color:var(--fg);font-weight:500}.trend-up{color:#cb4b16}.trend-down{color:#268bd2}.trend-flat{color:var(--muted)}.env-analysis-section{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border-subtle)}.eas-label{font-size:11px;color:var(--muted);letter-spacing:0.5px;text-transform:uppercase;margin-bottom:10px}.eas-records{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,auto);grid-auto-flow:column;gap:6px 18px}.eas-records li{display:flex;flex-direction:column;gap:2px;font-size:11px}.eas-records em{font-style:normal;color:var(--muted);font-size:10px;letter-spacing:0.4px;text-transform:uppercase}.eas-records b{color:var(--fg);font-weight:500;font-size:12px;letter-spacing:0.3px}.eas-records .rec-ts{color:var(--muted);font-weight:400;font-size:10px;margin-left:6px}.env-analysis-insights{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.eai-card{border:1px solid var(--border);padding:10px 12px}.eai-label{font-size:10px;color:var(--muted);letter-spacing:0.5px;text-transform:uppercase;margin-bottom:6px}.eai-big{font-size:18px;color:var(--fg);font-weight:500;letter-spacing:0.3px;margin-bottom:4px}.eai-meta{font-size:11px;color:var(--muted);line-height:1.4}.eai-meta b{color:var(--fg);font-weight:500}.eai-sub{display:block;font-size:10px;opacity:0.8;margin-top:2px}.eai-bar{width:100%;height:6px;background:var(--surface);border:1px solid var(--border-subtle);margin-bottom:8px;overflow:hidden}.eai-bar span{display:block;height:100%;background:#859900;transition:width 0.4s ease}.eai-bar span.warn{background:#cb4b16}.eai-bar span.alert{background:var(--danger)}.eai-rhythm{display:flex;flex-direction:column;gap:6px}.eai-rhythm>div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:11px}.eai-rhythm em{font-style:normal;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:0.4px}.eai-rhythm b{color:var(--fg);font-weight:500;font-size:12px}.eai-rhythm .rec-ts{color:var(--muted);font-weight:400;font-size:10px;margin-left:6px}.env-analysis-foot{display:flex;align-items:center;gap:14px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--border-subtle);font-size:11px;color:var(--muted);letter-spacing:0.3px;flex-wrap:wrap}.ea-label{text-transform:uppercase}.ea-badge{display:inline-block;padding:3px 10px;border:1px solid var(--border);color:var(--fg);letter-spacing:0.5px;text-transform:uppercase;font-size:10px}.ea-badge.ok{color:#859900;border-color:#859900}.ea-badge.warn{color:#cb4b16;border-color:#cb4b16}.ea-badge.alert{color:var(--danger);border-color:var(--danger)}.ea-meta{margin-left:auto}@media (max-width:900px){.env-analysis-insights{grid-template-columns:repeat(2,1fr)}.eas-records{grid-template-columns:repeat(2,1fr)}}@media (max-width:700px){.env-analysis-grid{grid-template-columns:1fr}.env-analysis-cell{border-right:none;border-bottom:1px dashed var(--border-subtle);padding:12px 0}.env-analysis-cell:last-child{border-bottom:none}.env-analysis-insights{grid-template-columns:1fr}.eas-records{grid-template-columns:1fr}}.portfolio-hero{border:1px solid var(--border);margin-bottom:32px;display:grid;grid-template-columns:1fr 210px;overflow:hidden}.portfolio-hero-main{background:var(--surface);padding:44px 48px;position:relative}.portfolio-hero-main::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,0.06) 3px,rgba(0,0,0,0.06) 4px);pointer-events:none}.portfolio-hero-main>*{position:relative}.portfolio-hero-side{background:var(--bg-solid);border-left:1px solid var(--border-subtle);padding:24px 20px;display:flex;flex-direction:column;justify-content:center;gap:11px}.hero-terminal-line{display:grid;grid-template-columns:56px 1fr;gap:6px;align-items:baseline}.hero-terminal-key{font-size:10px;color:var(--border-subtle)}.hero-terminal-val{font-size:10px;color:var(--muted);word-break:break-word}.hero-terminal-val.ok{color:var(--success)}.portfolio-hero-prompt{font-size:11px;color:var(--success);margin-bottom:20px;letter-spacing:0.3px}.portfolio-hero-prompt::after{content:' ▋';animation:blink 1.2s step-end infinite}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}.portfolio-hero h1{font-size:24px;font-weight:500;line-height:1.3;margin-bottom:16px;letter-spacing:-0.3px}.portfolio-hero h1 em{color:var(--success);font-style:normal}.portfolio-hero-bio{font-size:12px;color:var(--muted);line-height:1.9;margin-bottom:24px}.portfolio-hero-tags{display:flex;flex-wrap:wrap;gap:6px}.portfolio-section-title{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin:0 0 14px;display:flex;align-items:center;gap:14px}.portfolio-section-title::after{content:'';flex:1;height:1px;background:var(--border-subtle)}.portfolio-projects{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto auto;gap:10px}.project-card{background:var(--surface);border:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:border-color 0.25s}.project-card:hover{border-color:#555}.project-card:hover .project-img img{transform:scale(1.05);filter:grayscale(0%)}.project-card:nth-child(1){grid-column:1;grid-row:1 / 3}.project-card:nth-child(2){grid-column:2;grid-row:1}.project-card:nth-child(3){grid-column:3;grid-row:1}.project-card:nth-child(4){grid-column:2;grid-row:2}.project-card:nth-child(5){grid-column:3;grid-row:2}.project-card:nth-child(6){grid-column:1 / 4;grid-row:3;flex-direction:row}.project-img{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:linear-gradient(135deg,#1e1e1e 25%,transparent 25%) -10px 0,linear-gradient(225deg,#1e1e1e 25%,transparent 25%) -10px 0,linear-gradient(315deg,#1e1e1e 25%,transparent 25%),linear-gradient(45deg,#1e1e1e 25%,transparent 25%);background-size:20px 20px;background-color:#181818;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.project-card:nth-child(1) .project-img{flex:1;aspect-ratio:unset;min-height:220px}.project-card:nth-child(6) .project-img{width:38%;aspect-ratio:unset;border-bottom:none;border-right:1px solid var(--border-subtle);min-height:160px}.project-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.5s ease,filter 0.4s ease;filter:grayscale(25%)}.project-img-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,0.5));pointer-events:none}.project-card:nth-child(6) .project-img-overlay{background:linear-gradient(to right,transparent 55%,rgba(20,20,20,0.8))}.project-status{position:absolute;top:10px;right:10px;font-size:9px;padding:2px 8px;border:1px solid;text-transform:uppercase;letter-spacing:1.5px;z-index:2}.status-active{color:var(--success);border-color:var(--success);background:rgba(76,175,80,0.12)}.status-done{color:var(--muted);border-color:var(--border-subtle);background:rgba(0,0,0,0.5)}.status-ongoing{color:#f0a500;border-color:#f0a500;background:rgba(240,165,0,0.1)}.project-body{padding:18px 20px 14px;display:flex;flex-direction:column;gap:10px;flex:1}.project-body h2{font-size:13px;font-weight:500}.project-card:nth-child(1) .project-body{padding:20px 24px 16px}.project-card:nth-child(1) .project-body h2{font-size:15px}.project-card:nth-child(6) .project-body{padding:28px 28px;justify-content:center}.project-card:nth-child(6) .project-body h2{font-size:15px}.project-desc{font-size:11px;color:var(--muted);line-height:1.75;flex:1}.project-tech{display:flex;flex-wrap:wrap;gap:4px}.p-tag{font-size:9px;padding:2px 7px;border:1px solid var(--border-subtle);color:var(--muted);text-transform:uppercase;letter-spacing:0.5px}.project-footer{padding:10px 20px;border-top:1px solid var(--border-subtle);display:flex;align-items:center;flex-shrink:0}.project-card:nth-child(6) .project-footer{border-top:none;border-left:1px solid var(--border-subtle);padding:24px 28px;flex-direction:column;justify-content:center;align-items:flex-start;min-width:150px}.project-links{display:flex;gap:16px}.project-links a{font-size:11px;color:var(--fg);text-decoration:none;opacity:0.45;transition:opacity 0.2s}.project-links a:hover{opacity:1}.gallery-filters{display:flex;gap:10px;margin-bottom:24px;flex-wrap:wrap}.gallery-filter{font-family:"IBM Plex Mono",monospace;font-size:11px;padding:7px 16px;background:none;border:1px solid var(--border-subtle);color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:border-color 0.2s,color 0.2s}.gallery-filter:hover,.gallery-filter.active{border-color:var(--fg);color:var(--fg)}.gallery-grid{display:flex;gap:10px;align-items:flex-start}.gallery-col{flex:1;display:flex;flex-direction:column;gap:10px}.gallery-item{display:block;position:relative;overflow:hidden;cursor:pointer;border:1px solid var(--border-subtle);transition:border-color 0.2s}.gallery-item:hover{border-color:#555}.gallery-item img{width:100%;display:block;filter:grayscale(20%);transition:filter 0.35s,transform 0.45s}.gallery-item:hover img{filter:grayscale(0%);transform:scale(1.04)}.gallery-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,0.85),transparent);padding:24px 12px 10px;font-size:11px;color:#fff;transform:translateY(100%);transition:transform 0.25s}.gallery-item:hover .gallery-caption{transform:translateY(0)}.gallery-cat{font-size:9px;color:var(--success);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px}.lightbox{display:none;position:fixed;inset:0;z-index:1000;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.93);cursor:pointer}.lightbox-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.lightbox-content img{max-width:90vw;max-height:84vh;object-fit:contain;display:block;border:1px solid var(--border-subtle)}.lightbox-close{position:absolute;top:-34px;right:0;background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;font-family:inherit;transition:color 0.2s;padding:4px 8px}.lightbox-close:hover{color:var(--fg)}.lightbox-caption{font-size:11px;color:var(--muted);margin-top:12px;text-align:center}@media (max-width:700px){.tiles-section{grid-template-columns:1fr}.tile{border-right:none}header{padding:16px 0}.header-wrapper{flex-wrap:wrap;gap:8px;padding:0 16px}.header-stats{gap:12px}.nav{padding:0 max(16px,calc((100% - 1200px) / 2 + 16px));position:relative;z-index:100}.nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;margin:4px 0 4px auto;padding:11px 10px;cursor:pointer;background:transparent;border:1px solid var(--border-subtle);transition:border-color 0.2s,background 0.2s;z-index:102}.nav-burger:hover{border-color:var(--fg);background:var(--hover)}.nav-burger span{display:block;height:2px;width:100%;background:var(--fg);transition:transform 0.3s cubic-bezier(.4,.0,.2,1),opacity 0.2s ease,width 0.3s ease;transform-origin:center}.nav-burger span:nth-child(2){width:70%;margin-left:auto}.nav-burger:hover span:nth-child(2){width:100%}.nav-toggle:checked~.nav-burger{border-color:var(--fg)}.nav-toggle:checked~.nav-burger span{width:100%}.nav-toggle:checked~.nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle:checked~.nav-burger span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-toggle:checked~.nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity 0.3s ease;z-index:100;cursor:pointer}.nav-toggle:checked~.nav-backdrop{opacity:1;pointer-events:auto}.nav-links{display:flex;flex-direction:column;gap:0;position:fixed;top:0;right:0;bottom:0;width:min(86vw,340px);margin:0;padding:0;background:var(--bg-solid);border-left:1px solid var(--border-subtle);box-shadow:-20px 0 40px rgba(0,0,0,0.4);transform:translateX(100%);transition:transform 0.35s cubic-bezier(.4,.0,.2,1);z-index:101;overflow-y:auto}.nav-toggle:checked~.nav-links{transform:translateX(0)}.nav-links-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border-subtle);font-family:monospace;font-size:12px;color:var(--muted);letter-spacing:1px}.nav-close{font-size:28px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px;transition:color 0.2s}.nav-close:hover{color:var(--fg)}.nav-links a{display:flex;align-items:baseline;gap:16px;padding:18px 24px;font-size:20px;color:var(--fg);border-bottom:1px solid var(--border-subtle);opacity:0;transform:translateX(20px);transition:opacity 0.3s ease,transform 0.3s ease,background 0.2s,color 0.2s;transition-delay:0s}.nav-toggle:checked~.nav-links a{opacity:1;transform:translateX(0);transition-delay:calc(0.08s + var(--i,0) * 0.05s)}.nav-link-num{display:inline-block;font-size:11px;color:var(--muted);font-family:monospace;letter-spacing:1px;min-width:24px}.nav-links a .nav-link-label{flex:1;letter-spacing:0.5px}.nav-links a:hover,.nav-links a:focus{background:var(--hover)}.nav-links a.active{background:transparent;color:var(--fg)}.nav-links a.active .nav-link-num{color:var(--fg)}.nav-links a.active .nav-link-label::before{content:'> ';color:var(--fg)}footer{padding:16px 0}.footer-content{padding:0 16px}.container{padding:20px 16px}.chart-grid{grid-template-columns:1fr}.chart-tile canvas{height:200px}.portfolio-hero{grid-template-columns:1fr}.portfolio-hero-side{display:none}.portfolio-hero-main{padding:28px 24px}.portfolio-hero h1{font-size:20px}.portfolio-projects{grid-template-columns:1fr;gap:8px}.project-card:nth-child(n){grid-column:auto;grid-row:auto;flex-direction:column}.project-card:nth-child(6) .project-img{width:100%;min-height:auto;border-bottom:1px solid var(--border-subtle);border-right:none}.project-card:nth-child(6) .project-footer{border-left:none;border-top:1px solid var(--border-subtle);padding:10px 20px;min-width:0;flex-direction:row}.project-card:nth-child(1) .project-img{flex:none;aspect-ratio:16 / 9}}@media (min-width:701px) and (max-width:960px){.portfolio-hero{grid-template-columns:1fr}.portfolio-hero-side{display:none}.portfolio-hero-main{padding:32px 36px}.portfolio-projects{grid-template-columns:1fr 1fr;gap:8px}.project-card:nth-child(n){grid-column:auto;grid-row:auto;flex-direction:column}.project-card:nth-child(6) .project-img{width:100%;min-height:auto;border-bottom:1px solid var(--border-subtle);border-right:none}.project-card:nth-child(6) .project-footer{border-left:none;border-top:1px solid var(--border-subtle);padding:10px 20px;min-width:0;flex-direction:row}.project-card:nth-child(1) .project-img{flex:none;aspect-ratio:16 / 9}}@media (min-width:701px) and (max-width:1240px){.container{max-width:100%}.chart-grid{grid-template-columns:repeat(2,1fr)}}.skip-link{position:absolute;left:-9999px;top:0;background:var(--fg);color:var(--bg-solid);padding:8px 12px;z-index:9999}.skip-link:focus{left:8px;top:8px}.terminal-prompt .prompt-user{color:var(--success)}.terminal-prompt .prompt-sep{color:var(--muted);margin-right:6px}.terminal-prompt .prompt-cmd{color:var(--fg)}.env-badge{font-size:10px;color:var(--success);border:1px solid var(--success);padding:2px 8px;letter-spacing:1.5px;text-transform:uppercase;align-self:center;background:rgba(76,175,80,0.08)}body[data-section="404"] .env-badge{color:var(--danger);border-color:var(--danger);background:rgba(244,67,54,0.08)}.tile-link{position:relative}.tile-link::before{content:'>';position:absolute;left:8px;top:24px;color:var(--success);opacity:0;transform:translateX(-4px);transition:opacity 0.2s,transform 0.2s;font-weight:500}.tile:hover .tile-link::before{opacity:1;transform:translateX(0)}.tile:hover .tile-link{padding-left:36px}.tile-link{transition:padding-left 0.2s}.skeleton{display:inline-block;min-width:80px;min-height:1em;background:linear-gradient(90deg,#1f1f1f 25%,#2a2a2a 50%,#1f1f1f 75%);background-size:200% 100%;animation:skel 1.4s ease-in-out infinite;color:transparent;border-radius:2px}@keyframes skel{0%{background-position:200% 0}100%{background-position:-200% 0}}.sensor-tile.tint-cold,.sensor-tile.tint-cool,.sensor-tile.tint-warm,.sensor-tile.tint-hot,.sensor-tile.tint-low,.sensor-tile.tint-high{background:var(--surface)}.sensor-tile.tint-cold .tile-icon svg,.sensor-tile.tint-cool .tile-icon svg,.sensor-tile.tint-warm .tile-icon svg,.sensor-tile.tint-hot .tile-icon svg,.sensor-tile.tint-low .tile-icon svg,.sensor-tile.tint-high .tile-icon svg{stroke:var(--muted)}.pulse-dots[data-state="ok"] .pulse-dot{background:var(--success)}.pulse-dots[data-state="warn"] .pulse-dot{background:#f0a500}.pulse-dots[data-state="err"] .pulse-dot{background:var(--danger)}footer{padding:16px 30px}.footer-content{display:grid;grid-template-columns:1fr 2fr 1fr;gap:16px;align-items:center}.footer-left,.footer-right{display:flex;align-items:center;gap:16px}.footer-right{justify-content:flex-end}.footer-left a,.footer-right a,.footer-right .build-info{font-size:11px;color:var(--muted);text-decoration:none}.footer-left a:hover{color:var(--fg)}.build-info code{font-family:inherit;color:var(--fg);background:var(--surface);padding:1px 5px;border:1px solid var(--border-subtle)}.footer-center{display:flex;justify-content:center}.live-log{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:baseline;max-width:100%;overflow:hidden;white-space:nowrap}.live-log-prompt{color:var(--success)}.live-log-cursor{animation:blink 1s step-end infinite;color:var(--fg)}@media (max-width:700px){.tile{border-bottom:none;border-top:1px solid var(--border-subtle)}.tile:first-child{border-top:none}.footer-content{grid-template-columns:1fr;text-align:center;gap:8px}.footer-left,.footer-right{justify-content:center}.footer-center{display:none}.terminal-prompt .prompt-cmd{display:none}.header-stats .env-badge{display:none}}.terminal-page{border:1px solid var(--border);background:var(--bg-solid);padding:28px 32px}.term-block{font-family:"IBM Plex Mono",monospace;font-size:12px;line-height:1.5;color:var(--fg);white-space:pre;margin:0 0 20px;overflow-x:auto}.term-block.teapot{font-size:11px}.term-prompt{color:var(--success)}.term-dim{color:var(--muted)}.term-accent{color:#f0a500;font-weight:500}.term-cursor{animation:blink 1s step-end infinite}.term-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.term-help{font-size:11px;color:var(--muted);margin-top:8px}.snake-canvas{display:block;margin-top:16px;background:var(--bg-solid);border:1px solid var(--border-subtle);image-rendering:pixelated}.error-page-term{padding:24px 28px}.cmd-palette{position:fixed;inset:0;z-index:2000;display:none;align-items:flex-start;justify-content:center;padding-top:12vh}.cmd-palette.open{display:flex}.cmd-palette-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.7)}.cmd-palette-window{position:relative;width:min(640px,92vw);background:var(--bg-solid);border:1px solid var(--border);box-shadow:0 20px 60px rgba(0,0,0,0.6);font-family:"IBM Plex Mono",monospace}.cmd-palette-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.cmd-prompt{color:var(--success);font-size:12px;flex-shrink:0}#cmd-input{flex:1;background:transparent;border:none;color:var(--fg);font:inherit;font-size:13px;outline:none}.cmd-list{list-style:none;margin:0;padding:4px 0;max-height:280px;overflow-y:auto}.cmd-list li{padding:8px 16px;font-size:12px;color:var(--muted);cursor:pointer;display:flex;justify-content:space-between;gap:16px}.cmd-list li.active,.cmd-list li:hover{background:var(--hover);color:var(--fg)}.cmd-list li .cmd-key{color:var(--success)}.cmd-list li .cmd-desc{color:var(--muted);font-size:11px}.cmd-output{border-top:1px solid var(--border-subtle);padding:10px 16px;color:var(--muted);font-size:12px;white-space:pre-wrap;max-height:200px;overflow-y:auto}.cmd-output:empty{display:none}.cmd-hint{border-top:1px solid var(--border-subtle);padding:6px 16px;font-size:10px;color:var(--muted);letter-spacing:0.5px}.p-tag{cursor:pointer;user-select:none;transition:color 0.15s,border-color 0.15s}.p-tag:hover{color:var(--fg);border-color:var(--fg)}.p-tag.copied{color:var(--success);border-color:var(--success)}.portfolio-hero-title{font-size:24px;font-weight:500;line-height:1.3;margin-bottom:16px;letter-spacing:-0.3px}.portfolio-hero-title em{color:var(--success);font-style:normal}@media (max-width:700px){.portfolio-hero-title{font-size:20px}}.gallery-controls{display:flex;gap:12px;margin-bottom:24px;align-items:flex-start;flex-wrap:wrap}.gallery-tags-bar{display:flex;gap:8px;flex-wrap:wrap;flex:1}.gallery-tag-btn{font-family:"IBM Plex Mono",monospace;font-size:11px;padding:7px 14px;background:none;border:1px solid var(--border-subtle);color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:1px;transition:border-color 0.2s,color 0.2s}.gallery-tag-btn:hover,.gallery-tag-btn.active{border-color:var(--fg);color:var(--fg)}.gallery-sort-btn{font-family:"IBM Plex Mono",monospace;font-size:11px;padding:7px 14px;background:none;border:1px solid var(--border-subtle);color:var(--muted);cursor:pointer;letter-spacing:1px;white-space:nowrap;transition:border-color 0.2s,color 0.2s}.gallery-sort-btn:hover{border-color:var(--fg);color:var(--fg)}#gallery-sentinel{height:1px;margin-top:32px}.sensor-chart{position:relative}.chart-range-toggle{position:absolute;top:8px;right:8px;z-index:10;display:flex}.crt-btn{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--muted);background:none;border:1px solid var(--border-subtle);border-right:none;padding:3px 10px;cursor:pointer;transition:color 0.15s,background 0.15s;user-select:none}.crt-btn:last-child{border-right:1px solid var(--border-subtle)}.crt-btn:hover{color:var(--fg);background:rgba(255,255,255,0.04)}.crt-btn.active{color:var(--fg);border-color:var(--muted);background:rgba(255,255,255,0.06)}.crt-btn.active+.crt-btn{border-left-color:var(--muted)}.crt-btn.active+.crt-btn{border-left-color:var(--muted)}.ea-gas-badge{font-size:10px;padding:1px 5px;border-radius:2px;border:1px solid var(--border-subtle);color:var(--muted);vertical-align:middle;letter-spacing:0.02em}.ea-gas-badge.gas-sehr-gut{color:#2aa198;border-color:#2aa198}.ea-gas-badge.gas-gut{color:#859900;border-color:#859900}.ea-gas-badge.gas-mittel{color:var(--muted)}.ea-gas-badge.gas-schlecht{color:#cb4b16;border-color:#cb4b16}.ea-gas-badge.gas-sehr-schlecht{color:#dc322f;border-color:#dc322f}#ea-monthly-chart{margin-top:8px}.eam-row{display:flex;align-items:center;gap:6px;height:16px;margin-bottom:3px;cursor:default}.eam-row:hover .eam-bar{opacity:0.75}.eam-lbl{width:34px;font-size:9px;font-family:'IBM Plex Mono',monospace;color:#555;flex-shrink:0;text-align:right}.eam-track{flex:1;height:4px;background:#1c1c1c;border-radius:2px;position:relative}.eam-bar{position:absolute;height:100%;border-radius:2px;opacity:0.45;transition:opacity 0.15s}.eam-mark{position:absolute;width:2px;height:10px;top:-3px;margin-left:-1px;border-radius:1px}.eam-val{width:36px;font-size:9px;font-family:'IBM Plex Mono',monospace;color:#555;flex-shrink:0}.eam-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;opacity:0.8}.sys-bar-wrap{margin-top:8px;height:4px;background:rgba(255,255,255,0.08);border-radius:2px;overflow:hidden}.sys-bar{height:100%;width:0;background:#127ca6;border-radius:2px;transition:width 0.6s ease,background-color 0.4s ease}.sys-bar.sys-bar-warn{background:#d9a71a}.sys-bar.sys-bar-crit{background:#c0392b}.sys-info-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.game-tile-btn{display:block;width:100%;padding:24px;background:none;border:none;color:inherit;font-family:inherit;font-size:inherit;text-align:left;cursor:pointer}.game-tile-disabled{display:block;padding:24px;opacity:0.4;cursor:default}.game-badge{position:absolute;bottom:10px;right:12px;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border-subtle);padding:2px 7px;color:var(--muted)}.game-badge--active{border-color:var(--success);color:var(--success)}body.overlay-open{overflow:hidden}.game-overlay{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,0.82);display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:16px}.game-overlay[hidden]{display:none}.game-overlay-inner{background:var(--bg-solid);border:1px solid var(--border);max-width:100%;position:relative}.game-overlay-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border-subtle);gap:16px;min-width:0}.game-overlay-title{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.game-overlay-close{flex-shrink:0;background:none;border:1px solid var(--border-subtle);color:var(--fg);font-family:inherit;font-size:14px;cursor:pointer;padding:2px 9px;line-height:1.4;transition:border-color 0.15s,color 0.15s}.game-overlay-close:hover{border-color:var(--danger);color:var(--danger)}.tetris-layout{display:flex;gap:16px;padding:20px;align-items:flex-start}#tetris-canvas{display:block;image-rendering:pixelated;border:1px solid var(--border-subtle)}.tetris-sidebar{display:flex;flex-direction:column;gap:10px;min-width:106px}.tetris-panel{border:1px solid var(--border-subtle);padding:8px 12px}.tetris-panel-label{font-size:9px;letter-spacing:2px;color:var(--muted);margin-bottom:4px}.tetris-panel-value{font-size:22px;font-weight:500;color:#f0a500;font-variant-numeric:tabular-nums}#tetris-next{display:block;image-rendering:pixelated}.tetris-hint{font-size:10px;color:var(--muted);line-height:1.8}.tetris-touch-controls{display:none;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--border-subtle);justify-content:center}.touch-btn{background:var(--surface);border:1px solid var(--border-subtle);color:var(--fg);font-family:inherit;font-size:20px;line-height:1;padding:14px 20px;cursor:pointer;min-width:64px;transition:background 0.08s}.touch-btn:active,.touch-btn--drop:active{background:#2a2a2a}@media (pointer:coarse){.tetris-touch-controls{display:flex}}.ms-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border-subtle);background:#111}.ms-display{font-size:26px;font-weight:500;color:#ef5350;font-variant-numeric:tabular-nums;letter-spacing:2px;min-width:56px;font-family:inherit}.ms-face-btn{font-size:22px;background:var(--surface);border:1px solid var(--border-subtle);cursor:pointer;padding:4px 10px;line-height:1;transition:transform 0.1s}.ms-face-btn:active{transform:scale(0.9)}.ms-difficulty{display:flex;gap:8px;padding:8px 20px;border-bottom:1px solid var(--border-subtle)}.ms-diff-btn{font-size:11px;padding:4px 12px;opacity:0.5;transition:opacity 0.15s}.ms-diff-btn--active{opacity:1}.ms-board-wrapper{overflow:auto;padding:14px 20px 18px}.ms-board{display:inline-grid;gap:2px}.ms-cell{width:28px;height:28px;font-size:13px;font-weight:600;font-family:inherit;border:1px solid var(--border-subtle);background:var(--surface);color:var(--fg);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background 0.05s;box-sizing:border-box}.ms-cell--hidden:hover{background:#252528}.ms-cell--revealed{background:#0e0e0e;border-color:#191919;cursor:default}.ms-cell--flagged{background:var(--surface)}.ms-cell--mine{background:#1a0000;border-color:#3a0000;font-size:16px}.ms-cell--exploded{background:var(--danger);border-color:#c62828;font-size:16px}.game-scores-panel{border-top:1px solid var(--border-subtle);background:#0d0d0d}.scores-panel-hdr{padding:7px 16px;font-size:11px;border-bottom:1px solid var(--border-subtle);color:var(--muted)}.scores-panel-body{max-height:200px;overflow-y:auto;padding:10px 16px;font-size:11px}.scores-empty{font-size:11px}.scores-table{width:100%;border-collapse:collapse;font-size:11px;font-family:'IBM Plex Mono',monospace}.scores-table th{text-align:left;color:var(--muted);font-weight:400;letter-spacing:1px;padding:2px 10px 5px 0;border-bottom:1px solid var(--border-subtle)}.scores-table td{padding:3px 10px 3px 0;color:var(--fg);border-bottom:1px solid #191919}.scores-rank{color:var(--muted);min-width:24px}.scores-val{color:#f0a500;font-weight:500}.scores-date{color:var(--muted);white-space:nowrap}.scores-won{color:var(--success);font-weight:500}.scores-lost{color:var(--danger)}@media (max-width:620px){.tetris-layout{flex-direction:column;align-items:center;padding:12px}.tetris-sidebar{flex-direction:row;flex-wrap:wrap;width:100%;min-width:0}.tetris-panel{flex:1 1 80px}.tetris-hints-panel{display:none}.game-overlay-title .term-dim{display:none}.ms-cell{width:22px;height:22px;font-size:11px}}.name-prompt[hidden]{display:none}.name-prompt{display:flex;align-items:center;gap:0.5rem;padding:0.6rem;font-family:'IBM Plex Mono',monospace;font-size:0.8rem;flex-wrap:wrap;border-top:1px solid var(--border-subtle);margin-top:0.25rem}.name-input{background:transparent;color:var(--fg);border:none;border-bottom:1px solid var(--border-subtle);font-family:inherit;font-size:inherit;padding:0.15rem 0.25rem;width:150px;outline:none;transition:border-color 0.15s}.name-input:focus{border-bottom-color:var(--border)}.name-input::placeholder{color:var(--muted)}.name-prompt-btns{display:flex;gap:0.4rem}.name-prompt-btns .btn{padding:4px 12px;font-size:0.75rem}.scores-name{max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;transition-delay:0s !important;scroll-behavior:auto !important}.nav-links{transition:none !important}.nav-toggle:checked~.nav-links a{opacity:1 !important;transform:none !important}.ph-cursor,.live-log-cursor,.cursor,.pulse-dot{animation:none !important}}.contact-section{max-width:720px;margin:24px auto 0}.contact-form{display:flex;flex-direction:column;gap:20px;background:var(--bg-solid);border:1px solid var(--border);padding:28px}.contact-field{display:flex;flex-direction:column;gap:6px}.contact-field label{font-family:monospace;font-size:12px;color:var(--muted);letter-spacing:1px;text-transform:uppercase}.contact-label-prompt{color:var(--success);margin-right:4px}.contact-field input,.contact-field textarea{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--fg);background:#0f0f0f;border:1px solid var(--border-subtle);padding:12px 14px;width:100%;transition:border-color 0.2s,background 0.2s}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--fg);background:#141418}.contact-field textarea{resize:vertical;min-height:160px;line-height:1.5}.contact-counter{font-family:monospace;font-size:11px;color:var(--muted);text-align:right;letter-spacing:1px}.contact-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}.contact-note{font-family:monospace;font-size:12px;color:var(--muted)}.contact-note a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--border-subtle);text-underline-offset:3px}.contact-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-success{border-color:var(--success)}.contact-success h3{color:var(--success)}.contact-errors{border-color:var(--danger)}.contact-errors h3{color:var(--danger)}.contact-errors ul{margin-left:18px;color:var(--fg)}@media (max-width:700px){.contact-form{padding:20px 16px}.contact-actions{flex-direction:column;align-items:flex-start;gap:10px}}