.fifteen-shell{width:min(560px,100%);margin:auto;display:grid;gap:16px}.fifteen-hud{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.fifteen-hud>div{display:grid;gap:4px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--game-accent) 22%,#ffffff12);border-radius:13px;background:#0d1623}.fifteen-hud span{color:#7f8ca0;font-size:.61rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.fifteen-hud strong{font:850 .9rem/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#eef5fb}.fifteen-frame{padding:clamp(10px,2.5vw,16px);border:1px solid color-mix(in srgb,var(--game-accent) 32%,#ffffff15);border-radius:24px;background:linear-gradient(145deg,#26303c,#111923);box-shadow:inset 0 2px 8px #0008,0 20px 55px #0005}.fifteen-frame.is-complete{box-shadow:inset 0 2px 8px #0008,0 0 0 2px color-mix(in srgb,var(--game-accent-2) 55%,transparent),0 22px 65px color-mix(in srgb,var(--game-accent) 20%,#000)}.fifteen-board{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(7px,1.7vw,12px);width:100%;aspect-ratio:1;padding:clamp(8px,2vw,13px);border-radius:17px;background:linear-gradient(145deg,#0b1018,#171f2b);box-shadow:inset 0 0 0 1px #ffffff0b;outline:none;touch-action:manipulation}.fifteen-board:focus-visible{outline:3px solid color-mix(in srgb,var(--game-accent-2) 70%,white);outline-offset:5px}.fifteen-tile,.fifteen-empty{aspect-ratio:1;border-radius:16px}.fifteen-tile{position:relative;border:1px solid color-mix(in srgb,var(--game-accent) 34%,#ffffff20);background:radial-gradient(circle at 34% 22%,#ffffff20,transparent 33%),linear-gradient(145deg,color-mix(in srgb,var(--game-accent) 34%,#334155),color-mix(in srgb,var(--game-accent) 14%,#111827));color:#fff;font:900 clamp(1.35rem,6vw,2.65rem)/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-shadow:0 2px 6px #0007;box-shadow:inset 0 1px #ffffff27,inset 0 -3px #0003,0 7px 14px #0005;cursor:default;transition:filter .14s ease,border-color .14s ease,transform .14s ease}.fifteen-tile.is-movable{cursor:pointer}.fifteen-tile.is-movable:hover{filter:brightness(1.1);border-color:color-mix(in srgb,var(--game-accent-2) 65%,white);transform:translateY(-1px)}.fifteen-tile:focus-visible{outline:3px solid #fff;outline-offset:-5px}.fifteen-empty{border:1px dashed #ffffff10;background:radial-gradient(circle at 50% 50%,#ffffff05,transparent 60%),#090e15;box-shadow:inset 0 5px 16px #0007}.fifteen-instructions{margin:0;text-align:center;color:#738198;font-size:.76rem;line-height:1.55}.fifteen-tile.move-up{animation:fifteen-up .17s ease-out}.fifteen-tile.move-down{animation:fifteen-down .17s ease-out}.fifteen-tile.move-left{animation:fifteen-left .17s ease-out}.fifteen-tile.move-right{animation:fifteen-right .17s ease-out}@keyframes fifteen-up{from{transform:translateY(calc(100% + 12px))}to{transform:none}}@keyframes fifteen-down{from{transform:translateY(calc(-100% - 12px))}to{transform:none}}@keyframes fifteen-left{from{transform:translateX(calc(100% + 12px))}to{transform:none}}@keyframes fifteen-right{from{transform:translateX(calc(-100% - 12px))}to{transform:none}}html[data-theme="light"] .fifteen-hud>div{background:#f7f9fc;border-color:#dbe3ee}html[data-theme="light"] .fifteen-hud span{color:#667085}html[data-theme="light"] .fifteen-hud strong{color:#172033}html[data-theme="light"] .fifteen-frame{background:linear-gradient(145deg,#d8c7a5,#b89c6d);box-shadow:inset 0 2px 8px #60491d33,0 18px 42px #23304a18}html[data-theme="light"] .fifteen-board{background:linear-gradient(145deg,#5c4935,#372c21)}html[data-theme="light"] .fifteen-empty{background:#2c241c;border-color:#ffffff18}@media(max-width:600px){.fifteen-shell{gap:12px}.fifteen-hud{grid-template-columns:repeat(3,minmax(0,1fr))}.fifteen-hud>div{padding:8px}.fifteen-hud>div:nth-child(4),.fifteen-hud>div:nth-child(5){grid-column:span 1}.fifteen-frame{border-radius:18px}.fifteen-board{border-radius:13px}.fifteen-tile,.fifteen-empty{border-radius:11px}}@media(prefers-reduced-motion:reduce){.fifteen-tile{transition:none}.fifteen-tile.move-up,.fifteen-tile.move-down,.fifteen-tile.move-left,.fifteen-tile.move-right{animation:none}}
