:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;background:#080d18;color:#edf3ff;font-synthesis:none}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#080d18;color:#edf3ff}
button,textarea{font-family:inherit}
button{color:#f7faff;background:#242f4c;border:1px solid #455675;border-radius:11px;cursor:pointer;font-size:14px;padding:11px 17px}
button:focus,button:hover{border-color:#9d8aff;outline:2px solid transparent;background:#344364}
button:disabled{opacity:.4;cursor:default}
.shell{width:100%;max-width:1560px;margin:auto;padding:25px 28px 18px}
.top{display:flex;align-items:center;gap:18px;padding-bottom:24px;border-bottom:1px solid #26354e}
.brand-icon{width:65px;height:65px;border-radius:17px;display:grid;place-items:center;font-size:26px;font-weight:900;background:linear-gradient(135deg,#8761f6,#3f6dce);box-shadow:0 9px 26px #090b20}
.heading{flex:1}
.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:#80d6d1;margin:0 0 7px}
h1{font-size:clamp(25px,3vw,39px);margin:0 0 6px;letter-spacing:-.03em}
.heading>p:last-child{color:#a9b8d0;font-size:14px;margin:0}
.version{border:1px solid #455675;padding:10px 13px;border-radius:12px;font-size:12px;font-weight:800;white-space:nowrap}
.notice{font-size:14px;line-height:1.6;background:#11213b;border:1px solid #27486d;border-radius:12px;padding:12px 17px;margin:19px 0 25px;color:#bfdbf6}
.notice strong{color:white}
.layout{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(320px,0.78fr);gap:22px;align-items:start}
.game-panel,.diagnostics{min-width:0;background:#10192b;border:1px solid #273654;border-radius:18px;padding:18px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
h2{font-size:21px;letter-spacing:-.03em;margin:0}
.status-badge{font-size:12px;white-space:nowrap;padding:8px 12px;border-radius:999px;background:#24334e;color:#b6c9df}
.game-wrap{position:relative;width:100%;height:0;padding-top:75%;display:block;background:#000;border-radius:12px;border:1px solid #303b51;overflow:hidden}
#nesCanvas{position:absolute;left:0;top:0;display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;object-fit:contain}
.screen-cover{position:absolute;inset:0;background:linear-gradient(135deg,#080d18,#111d35);display:flex;flex-direction:column;gap:12px;justify-content:center;align-items:center;text-align:center;padding:18px}
.screen-cover[hidden]{display:none}
.screen-cover strong{font-size:clamp(19px,2vw,25px)}
.screen-cover span{color:#9caec8}
.screen-mark{font-size:clamp(44px,7vw,90px);font-weight:950;letter-spacing:.16em;color:#a088ff;text-shadow:0 0 40px #5b44e8}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}
button.primary{background:#7056d4;border-color:#9483f5;font-weight:750;min-height:46px}
button.primary:hover,button.primary:focus{background:#836be8}
.input-area{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:end;padding:3px 4px 0}
.input-area button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;font-weight:800}
.input-area button.pressed{background:#9a77ff!important;border-color:white!important}
.pad{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px);gap:4px;justify-content:start}
.pad button{min-width:0;padding:0;border-radius:50%;font-size:20px}
.pad .up{grid-column:2;grid-row:1}.pad .left{grid-column:1;grid-row:2}.pad .right{grid-column:3;grid-row:2}.pad .down{grid-column:2;grid-row:3}
.input-center{align-self:center;display:flex;flex-direction:column;gap:7px;align-items:center}
.mini-metric{display:flex;gap:8px;align-items:baseline}
.mini-metric strong{font-size:18px;color:#8ae5cf}
.mini-metric span{font-size:10px;color:#a8bad1}
.tiny-buttons{display:flex;gap:7px;margin-top:4px}
.tiny-buttons button{font-size:11px;min-height:31px;padding:6px 11px}
.face-buttons{display:flex;justify-content:flex-end;gap:10px;align-items:center}
.face-buttons button{border-radius:50%;height:61px;width:61px;padding:0;font-size:23px}
.face-buttons button.a{margin-top:37px;background:#5a4dab}.face-buttons button.b{margin-bottom:32px}
.hint{font-size:12px;line-height:1.65;color:#a8bad1;margin:13px 0 1px}
.hint strong{color:#eff7ff}
.tests{border:1px solid #283955;border-radius:12px;overflow:hidden}
.test-line{padding:9px 12px;border-bottom:1px solid #283955;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.test-line:last-child{border:0}
.test-line span{color:#ccd7ea}.test-line strong{font-size:12px;white-space:nowrap;color:#a8b9d4}
.test-line .yes{color:#8de9be}.test-line .no{color:#ffadba}.test-line .neutral{color:#ffda8b}
.controller-status,.result{margin-top:15px;border-radius:12px;padding:15px;background:#15233b;border:1px solid #2c4566}
.controller-status strong{display:block;font-size:15px;margin-bottom:8px}
.controller-status small{font-size:12px;color:#a8bad1;line-height:1.55}
.result{background:linear-gradient(130deg,#1b2449,#192b3a);border-color:#49467f}
.result strong{display:block;font-size:18px;margin-bottom:8px}
.result p{font-size:13px;color:#c0cde2;line-height:1.5;margin:0}
.log-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:18px 0 7px}
.log-header strong{font-size:13px}
.log-header button{font-size:11px;padding:7px 10px}
#log{resize:vertical;width:100%;font-size:12px;color:#dbe9ff;background:#08111f;border:1px solid #30425d;border-radius:9px;padding:10px;line-height:1.5}
footer{text-align:center;color:#788aa6;font-size:11px;margin-top:20px}
@media(max-width:1040px){.layout{grid-template-columns:1fr}.game-wrap{max-height:70vh;max-height:70dvh}.diagnostics{margin-bottom:10px}}
@media(max-width:650px){.shell{padding:14px 11px}.top{gap:10px;padding-bottom:17px}.brand-icon{width:45px;height:45px;font-size:18px}.version{display:none}.notice{margin:12px 0 18px}.game-panel,.diagnostics{padding:12px}.input-area{grid-template-columns:1fr 1fr;gap:8px}.input-center{grid-column:1 / 3;grid-row:2;flex-direction:row;justify-content:center;gap:12px}.pad{grid-template-columns:repeat(3,43px);grid-template-rows:repeat(3,43px)}.face-buttons button{width:52px;height:52px}.face-buttons button.a{margin-top:17px}.face-buttons button.b{margin-bottom:20px}.actions button{font-size:12px;padding:10px 12px}}
@media(max-width:400px){.pad{grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,38px);gap:3px}}
