*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;color:var(--text)}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--lime)}.arcade-header{height:64px;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 24px;border-bottom:2px solid var(--lime);background:linear-gradient(135deg,#212431 25%,transparent 25%) 0 0/24px 24px,#101011}.arcade-brand{display:flex;align-items:center;gap:12px;font:700 11px "IBM Plex Mono",monospace;letter-spacing:2px}.arcade-brand>span{display:grid;place-items:center;width:34px;height:34px;font:24px "Archivo Black",sans-serif;color:var(--black);background:var(--lime);border:2px solid var(--black);box-shadow:3px 3px 0 var(--purple)}.arcade-header nav{display:flex;align-items:center;gap:12px;font:700 10px "IBM Plex Mono",monospace;text-transform:uppercase}.arcade-header nav a{padding:9px 12px;color:var(--lime)}.arcade-header nav button{background:var(--blue);color:var(--black);border:2px solid var(--black);box-shadow:3px 3px 0 var(--mint);padding:8px 12px;font:700 10px "IBM Plex Mono",monospace;text-transform:uppercase}#sound-toggle[aria-pressed=true]{background:var(--mint);box-shadow:3px 3px 0 var(--purple)}#fullscreen-toggle{font-size:18px;padding:3px 10px}.arcade-main{width:100%;height:calc(100dvh - 64px);max-width:none;margin:0;padding:14px 24px}.arcade-arena,.arcade-page .memory-game{width:100%;height:100%}.arcade-page .memory-game{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:60px minmax(0,1fr);gap:14px;padding:0;background:transparent}.arcade-page .memory-heading{grid-column:2;grid-row:1;align-self:center;margin:0}.memory-heading>div{display:none}.memory-heading .btn{font-size:9px;padding:10px 13px}.arcade-page .memory-scoreboard{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:60px;max-width:680px;width:100%;justify-self:center;gap:0;border:2px solid var(--black);box-shadow:4px 4px 0 var(--blue);margin:0}.arcade-page .memory-scoreboard>div{border:0;border-right:2px solid var(--black);border-radius:0;background:var(--text);color:var(--black);box-shadow:none;padding:8px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.arcade-page .memory-scoreboard>div:nth-child(2){background:var(--purple)}.arcade-page .memory-scoreboard>div:nth-child(3){background:var(--lime)}.arcade-page .memory-scoreboard>div:nth-child(4){background:var(--mint);border-right:0}.arcade-page .memory-scoreboard small{font:700 9px/1.4 "IBM Plex Mono",monospace;color:var(--black);letter-spacing:0}.arcade-page .memory-scoreboard strong{font:24px "Archivo Black",sans-serif;color:var(--black);margin:0;white-space:nowrap}.arcade-page .memory-board{--display-cols:var(--memory-columns);--display-rows:var(--memory-rows);grid-column:1 / -1;grid-row:2;align-self:center;justify-self:center;grid-template-columns:repeat(var(--display-cols),minmax(0,1fr));gap:14px;margin:0;max-width:1400px;width:min(100%,calc((100dvh - 166px - (var(--display-rows) - 1)*14px)/var(--display-rows)/1.12*var(--display-cols) + (var(--display-cols) - 1)*14px))}.arcade-page .memory-card{aspect-ratio:1/1.12;border-radius:0}.arcade-page .memory-back,.arcade-page .memory-front{border:3px solid var(--black);border-radius:0;box-shadow:5px 5px 0 var(--blue)}.arcade-page .memory-back{background:linear-gradient(135deg,#262b43 25%,transparent 25%) 0 0/22px 22px,#151822;color:var(--text);font-family:"IBM Plex Mono",monospace}.arcade-page .memory-back-mark{border:3px solid var(--black);background:var(--lime);color:var(--black);box-shadow:5px 5px 0 var(--purple);font-size:clamp(22px,4vw,50px)}.arcade-page .memory-chain{left:0;top:0;width:100%;border-radius:0;text-align:center;padding:7px 4px;font:700 9px "IBM Plex Mono",monospace;border-bottom:2px solid var(--black)}.arcade-page .memory-chain.is-rh{background:var(--mint);color:var(--black)}.arcade-page .memory-chain.is-ink{background:var(--purple);color:var(--black)}.arcade-page .memory-front>img{height:calc(100% - 58px);margin-top:28px;object-fit:contain}.arcade-page .memory-card-footer{height:30px;padding:0 8px;justify-content:center;gap:5px;font:10px "IBM Plex Mono",monospace}.memory-card-footer b{font-size:9px}.arcade-page .memory-match-check{top:34px;border-radius:0;background:var(--lime);border:2px solid var(--black)}.arcade-page .memory-card.is-matched .memory-front{border-color:var(--mint);box-shadow:5px 5px 0 var(--mint)}.arcade-page .memory-status:not(.is-win):not(.is-loss){display:none}.arcade-page .memory-status.is-win,.arcade-page .memory-status.is-loss{position:fixed;z-index:10;bottom:22px;left:50%;transform:translateX(-50%);width:max-content;max-width:90vw;border:2px solid var(--mint);border-radius:0;background:var(--black);color:var(--mint);box-shadow:5px 5px 0 var(--purple);font:11px/1.6 "IBM Plex Mono",monospace;margin:0}.arcade-page .memory-status.is-loss{border-color:var(--purple);color:var(--purple)}.arcade-page .memory-rules{position:fixed;bottom:14px;left:14px;border:0;margin:0;padding:0;z-index:15;font:11px/1.7 "IBM Plex Mono",monospace;color:var(--muted)}.memory-rules summary{list-style:none;width:27px;height:27px;display:grid;place-items:center;background:var(--black);border:1px solid #555;color:var(--mint);cursor:pointer}.memory-rules[open]{max-width:350px;padding:16px;background:var(--black);border:2px solid var(--mint)}.memory-rules p{max-width:310px;margin:12px 0 0}.arcade-page .memory-ranking{display:none}.arcade-page .memory-ranking:target{display:block;position:fixed;z-index:30;top:50%;left:50%;transform:translate(-50%,-50%);width:min(440px,90vw);max-height:85dvh;overflow:auto;margin:0;padding:28px;background:var(--panel);border:3px solid var(--text);box-shadow:8px 8px 0 var(--blue),0 0 0 100vmax #000b}.memory-ranking-close{position:absolute;top:9px;right:13px;font:28px "IBM Plex Mono",monospace;color:var(--purple)}.memory-ranking-head{display:block;padding-right:20px}.arcade-page .memory-ranking h3{font:24px "Archivo Black",sans-serif;color:var(--lime)}.memory-ranking-head>span{display:block;font:11px/1.8 "IBM Plex Mono",monospace;margin-top:12px;color:var(--muted)}.memory-ranking form>div{gap:12px}.memory-ranking form .btn{font-size:10px;padding:10px}.arcade-page .memory-ranking input{border:2px solid var(--blue);background:#22222a;color:var(--text);font:12px "IBM Plex Mono",monospace}.arcade-page .memory-ranking form small,.memory-ranking-message,.memory-ranking-empty{font:10px/1.8 "IBM Plex Mono",monospace;color:var(--muted)}.memory-ranking label{font:700 10px "IBM Plex Mono",monospace;text-transform:uppercase;color:var(--mint)}.memory-ranking-list li{border-color:#45454f;padding:15px 0}.memory-ranking-list li::marker{color:var(--purple)}.memory-ranking-list li>strong{font:700 12px "IBM Plex Mono",monospace}.memory-ranking-list li>span{color:var(--lime)}.arcade-loading{height:100%;display:grid;place-content:center;text-align:center;gap:12px;font:13px "IBM Plex Mono",monospace}.arcade-loading button{justify-self:center;padding:12px 18px}@media(max-width:790px){.arcade-header{padding:12px 16px}.arcade-main{padding:12px 16px}.arcade-page .memory-scoreboard>div{padding:7px 9px;gap:5px}.arcade-page .memory-scoreboard small{font-size:8px}.arcade-page .memory-scoreboard strong{font-size:20px}.arcade-page .memory-board{--display-cols:var(--memory-mobile-columns);--display-rows:var(--memory-mobile-rows);gap:10px;width:min(100%,calc((100dvh - 166px - (var(--display-rows) - 1)*10px)/var(--display-rows)/1.12*var(--display-cols) + (var(--display-cols) - 1)*10px))}}@media(max-width:520px){.arcade-header{padding:10px 12px;height:58px}.arcade-brand{font-size:9px;gap:8px;letter-spacing:.5px}.arcade-brand b{max-width:50px}.arcade-brand>span{width:28px;height:28px;font-size:20px}.arcade-header nav{gap:6px;font-size:8px}.arcade-header nav a{padding:7px 5px}.arcade-header nav button{padding:7px;font-size:8px}#fullscreen-toggle{font-size:18px;padding:2px 6px}.arcade-main{height:calc(100dvh - 58px);padding:12px}.arcade-page .memory-game{grid-template-columns:minmax(0,1fr);grid-template-rows:57px minmax(0,1fr);gap:12px}.arcade-page .memory-scoreboard{height:57px;max-width:none;grid-column:1}.arcade-page .memory-scoreboard>div{padding:6px;flex-direction:column;justify-content:center;gap:3px}.arcade-page .memory-scoreboard small{font-size:7px}.arcade-page .memory-scoreboard strong{font-size:21px}.arcade-page .memory-heading{position:fixed;left:50px;bottom:14px;z-index:15}.memory-heading .btn{padding:6px 9px;font-size:8px}.arcade-page .memory-card-footer{height:24px;font-size:9px;padding:0 4px}.memory-card-footer b{font-size:8px}.arcade-page .memory-chain{font-size:8px;padding:5px 2px}.arcade-page .memory-front>img{height:calc(100% - 47px);margin-top:23px}.arcade-page .memory-back{font-size:9px;gap:6px;letter-spacing:1px}.arcade-page .memory-back-mark{box-shadow:3px 3px 0 var(--purple);font-size:30px}.arcade-page .memory-match-check{top:26px;width:19px;height:19px;font-size:12px}.arcade-page .memory-back,.arcade-page .memory-front{border-width:2px;box-shadow:3px 3px 0 var(--blue)}}@media(max-height:560px){.arcade-page .memory-chain{font-size:6px;padding:3px 1px}.arcade-page .memory-front>img{margin-top:18px;height:calc(100% - 36px)}.arcade-page .memory-card-footer{height:18px;font-size:7px}.memory-card-footer b{font-size:6px}.arcade-page .memory-back{font-size:8px;gap:4px}.arcade-page .memory-back-mark{font-size:20px}}
.memory-run-result{font:12px/1.8 "IBM Plex Mono",monospace;color:var(--purple);margin:16px 0}.memory-ranking:has(#memory-playagain) form>div{flex-direction:column}.memory-ranking:has(#memory-playagain) form button{font-size:12px;padding:13px;background:var(--lime);width:100%}.memory-ranking:has(#memory-playagain) input{padding:13px}.memory-ranking #memory-playagain{font-size:11px;padding:11px 15px;margin:8px 0}.memory-online-label{border-top:1px solid #45454f;padding-top:20px;margin:20px 0 0;font:700 12px "IBM Plex Mono",monospace;color:var(--mint)}
