game3 / client / public / style.css
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
:root{
  --bg1:#f3ddc4; --bg2:#e2b49b; --bg3:#c98d92;
  --panel:#fbf3e4ee; --line:#d9c0a2; --text:#5c4636; --dim:#a08468;
  --accent:#c96f4a; --teal:#5fb3a1; --gold:#e3b23c;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
  --hud:44px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html,body{height:100%; overscroll-behavior:none}
body{
  position:fixed; inset:0; width:100%;
  background:linear-gradient(180deg,var(--bg1) 0%,var(--bg2) 55%,var(--bg3) 100%);
  color:var(--text); overflow:hidden;
  font-family:"Avenir Next","Avenir","Trebuchet MS","Segoe UI",sans-serif;
  -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; touch-action:none;
}
#stage{position:fixed; inset:0;
  padding:calc(var(--hud) + var(--sat) + 6px) calc(8px + var(--sar)) calc(8px + var(--sab)) calc(8px + var(--sal))}
#arena{width:100%; height:100%; display:flex; align-items:center; justify-content:center}
canvas#game{max-width:100%; max-height:100%}
/* top HUD */
#hud{position:fixed; top:0; left:0; right:0; height:calc(var(--hud) + var(--sat));
  padding:var(--sat) calc(12px + var(--sar)) 0 calc(12px + var(--sal));
  display:flex; align-items:center; gap:10px;
  background:#fbf3e4cc; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line); z-index:5}
#logo{font-weight:600; letter-spacing:.34em; font-size:13px; color:var(--accent); white-space:nowrap; padding-left:.34em}
#clock{font-size:12px; color:var(--text); white-space:nowrap; font-variant-numeric:tabular-nums}
#chips{display:flex; gap:6px; flex:1; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch}
#chips::-webkit-scrollbar{display:none}
.chip{display:flex; align-items:center; gap:6px; padding:3px 9px; border:1px solid var(--line); border-radius:20px;
  font-size:11px; white-space:nowrap; background:#fffdf7}
.chip .dot{width:9px; height:9px; border-radius:50%; flex:none}
.chip.me{border-color:var(--accent)}
.chip .sc{color:var(--dim); font-variant-numeric:tabular-nums}
#status{font-size:10px; color:var(--dim); white-space:nowrap; display:flex; align-items:center; gap:6px}
#statdot{width:8px; height:8px; border-radius:50%; background:#c96f4a; flex:none}
#statdot.on{background:#5fb3a1}
button{
  font-family:inherit; font-size:12px; letter-spacing:.14em; color:#fffdf7; background:var(--accent);
  border:none; border-radius:22px; padding:11px 20px; cursor:pointer; text-transform:uppercase;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
button:active{transform:translateY(1px)}
button:hover:not(:disabled){background:#b55c39}
button:disabled{opacity:.4; cursor:default}
button.big{font-size:14px; padding:14px 34px}
/* overlays */
.overlay{position:fixed; inset:0; display:flex; align-items:center; justify-content:center; z-index:10;
  padding:calc(var(--sat) + 10px) calc(var(--sar) + 10px) calc(var(--sab) + 10px) calc(var(--sal) + 10px);
  background:#e8c9ac66; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px)}
.panel{background:var(--panel); border:1px solid var(--line); border-radius:18px; padding:28px 30px;
  display:flex; flex-direction:column; gap:16px; align-items:center; min-width:290px; max-width:100%;
  max-height:100%; overflow-y:auto; box-shadow:0 18px 50px #7c4a3a33}
.title{font-size:30px; font-weight:600; letter-spacing:.44em; color:var(--accent); padding-left:.44em}
.title .p{color:var(--teal)}
.sub{font-size:11px; color:var(--dim); letter-spacing:.22em; text-transform:uppercase}
input#nick{
  font-family:inherit; font-size:16px; text-align:center; letter-spacing:.1em; color:var(--text);
  background:#fffdf7; border:1px solid var(--line); border-radius:22px; padding:12px 14px; width:230px; outline:none;
}
input#nick:focus{border-color:var(--accent)}
#roster{display:flex; flex-direction:column; gap:6px; width:100%; max-height:38vh; overflow-y:auto}
.rrow{display:flex; align-items:center; gap:10px; font-size:13px; padding:8px 12px; background:#fffdf7;
  border:1px solid var(--line); border-radius:12px}
.rrow .dot{width:12px; height:12px; border-radius:50%; flex:none}
.rrow .hostb{margin-left:auto; font-size:9px; color:var(--teal); letter-spacing:.15em}
.hint{font-size:10.5px; color:var(--dim); text-align:center; line-height:1.8}
#bigmsg{font-size:min(40px,8.5vw); font-weight:600; letter-spacing:.14em; text-align:center;
  text-shadow:0 2px 0 #fffdf7aa}
#submsg{font-size:13px; color:var(--text); letter-spacing:.1em; text-align:center}
.hidden{display:none !important}
/* boot splash: html.boot from first paint; main.ts drops it once the gate/auto-join decision lands */
html.boot #ovJoin{display:none !important}
html:not(.boot) #ovSplash{display:none !important}
html.boot .soc-joinchip{display:none !important}
#copybtn{font-size:10px; padding:7px 12px}
#toast{position:fixed; bottom:calc(18px + var(--sab)); left:50%; transform:translateX(-50%);
  background:#fbf3e4; border:1px solid var(--line); max-width:90vw;
  color:var(--text); font-size:11px; padding:9px 16px; border-radius:20px; z-index:20; letter-spacing:.08em;
  opacity:0; transition:opacity .3s; pointer-events:none; text-align:center; box-shadow:0 6px 20px #7c4a3a22}
#countnum{font-size:100px; font-weight:600; color:#fffdf7; text-shadow:0 4px 30px #7c4a3a55; z-index:8;
  position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none}
#tapzones{position:fixed; inset:0; z-index:7; display:flex; align-items:flex-end; justify-content:center;
  padding-bottom:calc(26px + var(--sab)); pointer-events:none;
  font-size:12px; color:#5c463699; letter-spacing:.2em}
@media (max-width:640px){ .title{font-size:24px} #logo{display:none} }

/* social-kit chrome adopts the game's palette */
:root{
  --soc-bg:#fbf3e4; --soc-fg:var(--text); --soc-dim:var(--dim);
  --soc-line:var(--line); --soc-accent:var(--accent);
}

static mirror of HEAD · about · clone: git clone https://git.ardegazu.ro/game3.git