* { margin: 0; padding: 0; box-sizing: border-box; } html, body { width: 100vw; height: 100vh; overflow: hidden; } body { background: #f7f7f7; display: flex; align-items: center; justify-content: center; font-family: 'Arial', sans-serif; user-select: none; } main { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; border-radius: 10px; min-width: fit-content; flex-shrink: 0; gap: 16px; } .game-layout { width: min(95vw, 1000px); } .toolbox { width: 100%; background: #dfe5f8; border-radius: 10px; padding: 14px; display: flex; flex-direction: column; gap: 10px; } .toolbox h2 { font-size: 1rem; } .toolbox p { font-size: 0.9rem; color: #334; } .glass-palette { display: flex; gap: 10px; flex-wrap: wrap; } /* ================================ GRID ================================ */ .map { display: flex; flex-direction: column; gap: 0px; padding: 10px; background: #DADEEF; border-radius: 5px; } .lign { display: flex; gap: 0px; margin: 0; } /* ================================ CELLS ================================ */ .cell { width: clamp(28px, 5.5vmin, 60px); height: clamp(28px, 5.5vmin, 60px); transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; margin: 0; position: relative; background-color: #2a2a2a; user-select: none; overflow: hidden; } .cell.can-drop { outline: 2px dashed rgba(0, 0, 0, 0.2); } /* ================================ CASES TYPE ================================ */ .empty { background-color: #DADEEF; } .empty:hover { background-color: #333333; } .laser { background-color: #DADEEF; background-image: url("../img/tiles/Laser.svg"); background-size: 80%; background-repeat: no-repeat; background-position: center; transform: rotate(180deg); } .colored-laser { background-color: #DADEEF; background-image: url("../img/tiles/Prisme.svg"); background-size: 80%; background-repeat: no-repeat; background-position: center; } .mirror { background-color: #DADEEF; position: relative; overflow: hidden; } .wall { background-color: #DADEEF; background-image: url("../img/tiles/Tuile.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } .door { background-color: #DADEEF; background-image: url("../img/tiles/WoodenDoor.svg"); transform: rotate(90deg); background-size: 100%; background-repeat: no-repeat; background-position: center; } .door-open { opacity: 0.5; } .button { background-color: #DADEEF; background-image: url("../img/tiles/ButtonComplete.svg"), url("../img/tiles/Tuile.svg"); background-size: 100% 100%; background-repeat: no-repeat; background-position: center; } .button-active { opacity: 0.7; } .demi-wall { background-color: #DADEEF; background-image: url("../img/tiles/VerticaleSemi.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } .target { background-color: #DADEEF; background-image: url("../img/tiles/Trigger.svg"); background-size: 80%; background-repeat: no-repeat; background-position: center; } .demi-wall-corner-up-left { background-color: #DADEEF; background-image: url("../img/tiles/TopLeft.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } .demi-wall-corner-up-right { background-color: #DADEEF; background-image: url("../img/tiles/TopRight.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } .demi-wall-corner-down-left { background-color: #DADEEF; background-image: url("../img/tiles/BottomLeft.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } .demi-wall-corner-down-right { background-color: #DADEEF; background-image: url("../img/tiles/BottomRight.svg"); background-size: 100%; background-repeat: no-repeat; background-position: center; } /* ================================ LIGHT LASER ================================ */ .light-laser { position: relative; } .laser-horizontal { background: linear-gradient(to bottom, transparent 0%, transparent 45%, red 45%, red 55%, transparent 55%, transparent 100%), #DADEEF } .laser-vertical { background: linear-gradient(to right, transparent 0%, transparent 45%, red 45%, red 55%, transparent 55%, transparent 100%), #DADEEF; } .laser-diagonal-down { background: linear-gradient(45deg, transparent 0%, transparent 46%, red 46%, red 54%, transparent 54%, transparent 100%), #DADEEF; } .laser-diagonal-up { background: linear-gradient(135deg, transparent 0%, transparent 46%, red 46%, red 54%, transparent 54%, transparent 100%), #DADEEF; } /* ================================ MIRROR ================================ */ .btn-mirror { background: none; border: none; cursor: pointer; height: 100%; width: 100%; position: relative; display: flex; align-items: center; justify-content: center; } .mirror-img { width: 80%; height: 80%; object-fit: contain; } .button-door { background: none; border: none; cursor: pointer; width: 100%; height: 100%; position: absolute; inset: 0; } /* ================================ RESPONSIVE ================================ */ @media (max-width: 600px) { .map { padding: 5px; border-radius: 3px; } main { padding: 8px; } } @media (max-height: 500px) { .map { padding: 4px; } }