Improve authentication recovery and mobile gameplay
This commit is contained in:
192
app/mobile-game.css
Normal file
192
app/mobile-game.css
Normal file
@@ -0,0 +1,192 @@
|
||||
.mobile-map-toggle,
|
||||
.report-icon {
|
||||
display: none;
|
||||
}
|
||||
@media (max-width: 700px) {
|
||||
.game-page {
|
||||
min-height: 0;
|
||||
}
|
||||
.game-header {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) 44px;
|
||||
gap: 8px;
|
||||
padding: max(10px, env(safe-area-inset-top))
|
||||
max(10px, env(safe-area-inset-right)) 12px
|
||||
max(10px, env(safe-area-inset-left));
|
||||
}
|
||||
.game-header .brand {
|
||||
font-size: 17px;
|
||||
white-space: nowrap;
|
||||
gap: 6px;
|
||||
}
|
||||
.game-header .brand-cube {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.game-header .report-trigger {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
}
|
||||
.game-header .report-trigger > span {
|
||||
display: none;
|
||||
}
|
||||
.game-header .report-icon {
|
||||
display: block;
|
||||
}
|
||||
.game-info {
|
||||
grid-column: 1 / -1;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
width: 100%;
|
||||
gap: 8px;
|
||||
padding: 8px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.game-info > div {
|
||||
min-width: 0;
|
||||
}
|
||||
.game-info small {
|
||||
white-space: nowrap;
|
||||
font-size: 8px;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
.game-info strong {
|
||||
white-space: nowrap;
|
||||
font-size: 17px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
.panorama-controls {
|
||||
top: calc(max(10px, env(safe-area-inset-top)) + 112px);
|
||||
left: max(10px, env(safe-area-inset-left));
|
||||
gap: 6px;
|
||||
}
|
||||
.panorama-controls button {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
padding: 0;
|
||||
}
|
||||
.game-page .game-map,
|
||||
.game-page .game-map.expanded {
|
||||
right: max(8px, env(safe-area-inset-right));
|
||||
left: max(8px, env(safe-area-inset-left));
|
||||
bottom: max(10px, env(safe-area-inset-bottom));
|
||||
width: auto;
|
||||
max-width: none;
|
||||
box-shadow: 0 8px 24px #0006;
|
||||
}
|
||||
.game-map:not(.expanded) .game-map-content {
|
||||
position: absolute;
|
||||
bottom: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
}
|
||||
.mobile-map-toggle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
width: 100%;
|
||||
min-height: 56px;
|
||||
padding: 12px;
|
||||
border: 0;
|
||||
color: #fff1d0;
|
||||
background: #241e18;
|
||||
font: 14px var(--font-pixel, monospace);
|
||||
}
|
||||
.mobile-map-toggle small {
|
||||
font: 11px monospace;
|
||||
}
|
||||
.game-map.expanded .mobile-map-toggle {
|
||||
display: none;
|
||||
}
|
||||
.game-map .map-topline {
|
||||
min-height: 44px;
|
||||
padding: 0 8px 0 12px;
|
||||
}
|
||||
.game-map .map-topline button {
|
||||
display: grid;
|
||||
place-items: center;
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
.game-page .game-map .map-surface {
|
||||
height: min(46dvh, 360px);
|
||||
border-width: 12px;
|
||||
border-image-width: 12px;
|
||||
}
|
||||
.game-map .map-actions {
|
||||
padding: 8px 10px 10px;
|
||||
}
|
||||
.game-map .map-actions .button {
|
||||
min-height: 48px;
|
||||
padding: 10px 12px;
|
||||
font-size: 13px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.game-map .map-actions small {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.game-map .leaflet-bar a {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
.look-help {
|
||||
display: none;
|
||||
}
|
||||
.round-result {
|
||||
max-width: calc(100% - 24px);
|
||||
max-height: calc(100dvh - 140px);
|
||||
overflow-y: auto;
|
||||
padding: 20px;
|
||||
}
|
||||
html[lang] .round-result h2 {
|
||||
font-size: 21px;
|
||||
}
|
||||
.round-result .score {
|
||||
font-size: 42px;
|
||||
}
|
||||
}
|
||||
@media (max-height: 500px) and (max-width: 950px) {
|
||||
.game-page {
|
||||
min-height: 0;
|
||||
}
|
||||
.game-header {
|
||||
display: flex;
|
||||
padding: 8px 12px;
|
||||
gap: 10px;
|
||||
}
|
||||
.game-header .brand {
|
||||
font-size: 16px;
|
||||
}
|
||||
.game-header .report-trigger {
|
||||
order: 3;
|
||||
}
|
||||
.game-info {
|
||||
width: auto;
|
||||
flex: 1;
|
||||
max-width: 300px;
|
||||
margin-left: auto;
|
||||
gap: 16px;
|
||||
padding: 6px 10px;
|
||||
}
|
||||
.panorama-controls {
|
||||
top: 72px;
|
||||
left: 12px;
|
||||
}
|
||||
.game-page .game-map,
|
||||
.game-page .game-map.expanded {
|
||||
left: auto;
|
||||
width: min(440px, calc(100vw - 80px));
|
||||
right: 8px;
|
||||
bottom: max(8px, env(safe-area-inset-bottom));
|
||||
}
|
||||
.game-page .game-map .map-surface {
|
||||
height: max(100px, calc(100dvh - 190px));
|
||||
}
|
||||
.round-result {
|
||||
max-height: calc(100dvh - 80px);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user