.dmz .board,.dmz .mosaic-stage{position:relative;margin:0 auto;aspect-ratio:1/1}.dmz .board{width:min(92vw,360px,42vh);box-sizing:content-box;padding:12px;border:2px dashed var(--warm-400);border-radius:12px}.dmz .mosaic-stage{width:min(92vw,380px)}.dmz .board svg,.dmz .mosaic-stage svg{display:block;width:100%;height:100%;overflow:visible}.dmz .mtile{cursor:pointer}.dmz .mtile-fill{fill:#fff;stroke:var(--warm-200);stroke-width:.5;transition:fill .35s ease,stroke .2s ease}.dmz .mtile:hover:not(.solved):not(.active) .mtile-fill{fill:var(--primary-200);stroke:var(--primary-600);stroke-width:1.4}.dmz .mtile.active .mtile-fill{fill:var(--primary-200);stroke:var(--primary-600);stroke-width:2}.dmz .mtile.solved .mtile-fill{fill:var(--primary-600);stroke:var(--primary-700);stroke-width:.5}.dmz .mtile.just-solved .mtile-fill{animation:dmTileSolvePulse .6s ease-out}.dmz .mtile-cue{font-family:var(--font-brand);font-size:9px;fill:var(--primary-600);pointer-events:none;opacity:.75;animation:dmCuePulse 2.4s ease-in-out infinite}.dmz .mtile:hover:not(.active) .mtile-cue{opacity:1}.dmz .mtile.active .mtile-cue{fill:var(--primary-700);opacity:1;animation:none}.dmz .mtile-cracks{font-size:4px;font-weight:700;letter-spacing:.35px;fill:var(--primary-700);text-transform:uppercase;pointer-events:none}.dmz .mgap,.dmz .mtile-tick{fill:none;stroke:var(--warm-50);stroke-linejoin:round;pointer-events:none}.dmz .mtile-tick{stroke-width:1.6;stroke-linecap:round}.dmz .mgap{stroke-width:1.4}.dmz .mosaic-piece{opacity:0;transition:transform .8s cubic-bezier(.5,.05,.2,1),opacity .5s ease}.dmz .mosaic-piece.shown{opacity:1}.dmz .mosaic-final{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s ease}.dmz .mosaic-final.show{opacity:1}.dmz .letter-box.correct-flash{animation:dmBoxFlash .5s ease-out}.dmz .letter-box.wrong-flash{animation:dmBoxWrongFlash .5s ease-out}@keyframes dmTileSolvePulse{0%{fill:var(--primary-200)}40%{fill:var(--primary-700);transform:scale(1.03)}to{fill:var(--primary-600)}}@keyframes dmCuePulse{0%,to{opacity:.5}50%{opacity:.9}}@keyframes dmBoxWrongFlash{0%{background:#fff}40%{background:var(--destructive);color:#fff;border-color:#991b1b}to{background:#fff;border-color:var(--warm-300);color:#000}}@keyframes dmBoxFlash{0%{background:#fff}40%{background:var(--primary-600);color:var(--warm-50);border-color:var(--primary-700)}to{background:var(--primary-200);border-color:var(--primary-600);color:var(--primary-700)}}