:root {
  /* Il mondo della segnaletica italiana: asfalto, cartello bianco, verde autostrada, blu extraurbano, marrone turistico */
  --asphalt: #1f2225;
  --asphalt-2: #2a2e32;
  --asphalt-3: #363b40;
  --stripe: #f1c232;
  --sign: #f7f7f3;
  --ink: #111214;
  --green: #0f7a43;
  --blue: #1d58a8;
  --brown: #74472a;
  --red: #c8202f;
  --mute: #8f979f;
  --font-display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --font-body: "Barlow", "Helvetica Neue", Arial, sans-serif;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  background-color: var(--asphalt);
  background-image:
    radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.2px),
    radial-gradient(rgba(0,0,0,.35) 1px, transparent 1.2px),
    radial-gradient(120% 60% at 50% 0%, #2b3035 0%, transparent 70%);
  background-size: 6px 6px, 9px 9px, 100% 100%;
  background-position: 0 0, 3px 4px, 0 0;
  background-attachment: scroll, scroll, fixed;
  color: var(--sign);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
}
button { font-family: inherit; }
.wrap { max-width: 470px; margin: 0 auto; padding: 16px 16px 110px; display: flex; flex-direction: column; gap: 18px; }
:focus-visible { outline: 3px solid var(--stripe); outline-offset: 2px; }
.view { display: none; flex-direction: column; gap: 18px; }
.view.on { display: flex; animation: viewin .3s ease-out; }
@keyframes viewin { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* Testata */
header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.logo { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; text-decoration: none; color: inherit; }
.logo-plate {
  background: var(--green); border: 2.5px solid #fff; border-radius: 7px; padding: 4px 11px 3px;
  font: 800 28px/1 var(--font-display); letter-spacing: .06em; text-transform: uppercase;
  box-shadow: 0 0 0 2px var(--green), 0 6px 14px rgba(0,0,0,.4); margin: 2px;
}
.logo-plate .n { color: var(--stripe); font-weight: 800; }
.logo-sub { font: 500 12.5px/1.25 var(--font-body); color: var(--mute); }
.who { display: flex; align-items: center; gap: 8px; background: var(--asphalt-2); border: 1px solid #3c4248; border-radius: 999px; padding: 4px 12px 4px 4px; color: var(--sign); text-decoration: none; font: 600 13px var(--font-body); max-width: 100%; }
#head-right { min-width: 0; display: flex; justify-content: flex-end; }
.head-r { display: flex; align-items: center; gap: 8px; min-width: 0; max-width: 62%; }
.help { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--brown); color: #fff; font: 800 20px/1 var(--font-display); cursor: pointer; box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--brown); }
.btn.howbtn { padding: 14px; font-size: 18px; }
/* schermata di gioco: niente barra in basso, freccia per tornare */
.back { display: none; width: 40px; height: 40px; border-radius: 50%; background: var(--asphalt-2); color: var(--sign); place-items: center; box-shadow: 0 0 0 1px #3c4248; flex: none; }
.back svg { width: 22px; height: 22px; }
body.playing .back { display: grid; }
body.playing nav.tabs { display: none; }
body.playing .wrap { padding-bottom: 40px; }
body.playing header { justify-content: flex-start; }
body.playing .head-r { margin-left: auto; }
body.playing .logo-plate { font-size: 22px; }
/* lobby */
.lvl { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: center; background: var(--asphalt-2); border-radius: 16px; padding: 12px 14px; box-shadow: 0 0 0 1px #3a4045; }
.lvl-badge { width: 64px; height: 70px; display: grid; place-items: center; background: var(--green); clip-path: polygon(50% 0, 100% 18%, 100% 70%, 50% 100%, 0 70%, 0 18%); position: relative; }
.lvl-badge::before { content: ""; position: absolute; inset: 4px; background: #0b5e33; clip-path: inherit; }
.lvl-badge span { position: relative; font: 800 30px/1 var(--font-display); color: #fff; }
.lvl-info { display: grid; gap: 4px; min-width: 0; }
.lvl-info b { font: 800 22px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.lvl-info > span { font-size: 13px; color: var(--mute); }
.xpbar { height: 10px; border-radius: 6px; background: rgba(0,0,0,.35); overflow: hidden; box-shadow: inset 0 1px 2px rgba(0,0,0,.5); }
.xpbar i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #f1c232, #ffde75); transition: width .8s cubic-bezier(.2,.8,.3,1); }
.xptext { font: 600 12px var(--font-body); color: #c9ced2; font-variant-numeric: tabular-nums; }
.arena { display: grid; gap: 14px; justify-items: center; padding: 8px 0 4px; }
.arena-sign { width: 100%; position: relative; overflow: hidden; background: linear-gradient(140deg, #fdfdfb 0%, #ecece7 48%, #f8f8f4 52%, #e8e8e2 100%); color: var(--ink); border-radius: 14px; padding: 22px 16px 16px; display: grid; justify-items: center; gap: 8px; box-shadow: inset 0 0 0 5px var(--ink), inset 0 0 0 9px #f4f4f0, 0 18px 34px rgba(0,0,0,.5); }
.arena-stripe { position: absolute; left: 0; right: 0; top: 0; height: 8px; background: repeating-linear-gradient(-45deg, var(--stripe) 0 12px, var(--ink) 12px 24px); }
.arena-kicker { font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: .14em; color: #6a6f74; }
.arena-sign b { font: 800 44px/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.arena-sign .status { background: #e6e6e0; color: #3e4449; }
.arena-sign .status.ok { background: #d8f0e2; color: #0b5e33; }
.arena-sign .status.ko { background: #f6d9dc; color: #8c1622; }
.arena-count { font-size: 12.5px; color: #6a6f74; font-variant-numeric: tabular-nums; }
.btn.play { width: 100%; padding: 22px 20px; font-size: 38px; letter-spacing: .1em; border-radius: 18px; background: linear-gradient(180deg, #ffd84d 0%, #f1c232 55%, #e0a800 100%); box-shadow: 0 7px 0 #a9851c, 0 14px 26px rgba(0,0,0,.5), inset 0 2px 0 rgba(255,255,255,.6); animation: breathe 2.4s ease-in-out infinite; }
.btn.play:active { transform: translateY(5px); box-shadow: 0 2px 0 #a9851c, 0 6px 14px rgba(0,0,0,.4), inset 0 2px 0 rgba(255,255,255,.6); }
.btn.play.done { animation: none; background: linear-gradient(180deg, #f7f7f3, #d9d9d2); box-shadow: 0 6px 0 #9aa0a6, 0 12px 22px rgba(0,0,0,.45); font-size: 28px; }
@keyframes breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.025); } }
.btn.train { background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 4px 0 #4a2c19; padding: 13px 22px; font-size: 18px; gap: 10px; }
.btn.train svg { width: 20px; height: 20px; }
.tour { display: grid; gap: 4px; background: var(--asphalt-2); border-radius: 16px; padding: 12px 14px 4px; box-shadow: 0 0 0 1px #3a4045; }
.tour-top { display: grid; grid-template-columns: 56px 1fr; gap: 12px; align-items: center; }
.tour-top .lvl-badge { width: 56px; height: 62px; }
.tour-top .lvl-badge span { font-size: 26px; }
.tour-k { font: 700 11px var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: var(--stripe); }
.tour-top b { font: 800 19px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.tour .tour-scroll { margin: 0 -14px; padding: 0 14px 4px; }
.nando-row { display: grid; grid-template-columns: 170px 1fr; gap: 10px; align-items: end; }
.nando-wrap svg { display: block; filter: drop-shadow(0 6px 10px rgba(0,0,0,.4)); }
.bubble { position: relative; margin: 0 0 22px; background: var(--sign); color: var(--ink); border-radius: 14px; padding: 10px 13px; font: 500 14.5px/1.35 var(--font-body); box-shadow: 0 6px 14px rgba(0,0,0,.35); }
.bubble::before { content: ""; position: absolute; left: -8px; bottom: 14px; border: 8px solid transparent; border-right-color: var(--sign); border-left: 0; }
.mode-main { display: grid; gap: 14px; }
.mode-gives { font: 600 11.5px var(--font-body); color: #0b5e33; background: #d8f0e2; padding: 3px 8px; border-radius: 999px; }
.mode-list { display: grid; gap: 10px; }
.mode-card { display: grid; grid-template-columns: 50px 1fr 18px; gap: 12px; align-items: center; text-decoration: none; color: #fff; border-radius: 14px; padding: 12px 14px; }
.mode-card.duel { background: linear-gradient(180deg, #d63443, #a91b28); box-shadow: inset 0 0 0 2px rgba(255,255,255,.85), 0 4px 0 #6e0f18; }
.mode-card.train { background: linear-gradient(180deg, #84522f, #6a4024); box-shadow: inset 0 0 0 2px rgba(255,255,255,.85), 0 4px 0 #3f2514; }
.mode-card:active { transform: translateY(2px); }
.mode-ico { width: 50px; height: 50px; border-radius: 12px; background: rgba(0,0,0,.22); display: grid; place-items: center; font-size: 28px; }
.mode-ico svg { width: 26px; height: 26px; }
.mode-txt { display: grid; gap: 2px; min-width: 0; }
.mode-txt b { font: 800 21px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.mode-txt span { font-size: 13px; line-height: 1.3; opacity: .92; }
.mode-txt em { font: 700 11.5px var(--font-body); font-style: normal; color: #ffe08a; margin-top: 2px; }
.mode-go { font: 800 28px var(--font-display); opacity: .8; }
.linkbtn { justify-self: center; }
.tour-road .reward { display: flex; align-items: center; gap: 4px; padding: 2px 7px 2px 2px; }
.tour-road .reward svg { width: 22px; height: 26px; background: #fff; border-radius: 50%; }
.end-head { display: grid; grid-template-columns: 70px 1fr; gap: 12px; align-items: center; margin-top: 6px; }
.end-head h2 { margin: 0; }
.endmap { display: grid; gap: 6px; justify-items: center; }
.endmap .map { max-width: 240px; }
.xp-title { display: flex; align-items: center; gap: 10px; font: 600 14px var(--font-body); color: #ffd98a; }
#r-nando svg { display: block; filter: drop-shadow(0 8px 14px rgba(0,0,0,.45)); }
.pl .av svg, .vs-p .av svg { width: 100%; height: 100%; }
.pl.me .av, .vs-p .av:not(.op) { background: #f7f7f3; overflow: hidden; }
.vs-p .av:not(.op) { align-items: end; }
.profile-head .av { background: #f7f7f3; overflow: hidden; align-items: end; }
.profile-head .av svg { width: 64px; height: 75px; margin-top: 8px; }
.how-nando { display: grid; grid-template-columns: 64px 1fr; gap: 10px; align-items: end; }
.how-nando .bubble { margin-bottom: 14px; }
.how-stages { display: grid; gap: 8px; }
#how-stages { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; }
.stg { flex: none; width: 74px; display: grid; justify-items: center; gap: 2px; background: rgba(0,0,0,.22); border-radius: 10px; padding: 6px 4px; opacity: .55; }
.stg.got { opacity: 1; box-shadow: inset 0 0 0 1.5px var(--stripe); }
.stg b { font: 700 12px var(--font-display); text-transform: uppercase; }
.stg span { font-size: 10.5px; color: var(--mute); }
.modes2 { display: grid; grid-template-columns: 1.3fr 1fr; gap: 10px; width: 100%; }
.btn.duel { background: linear-gradient(180deg, #e2414f, #b51d2b); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 4px 0 #6e0f18; padding: 10px 12px; justify-content: flex-start; gap: 10px; text-align: left; font-size: 19px; }
.btn.duel .sw { font-size: 26px; }
.btn.duel small { display: block; font: 600 11px var(--font-body); text-transform: none; letter-spacing: 0; opacity: .9; margin-top: 2px; }
.modes2 .btn.train { padding: 10px; font-size: 17px; }
/* duello */
#v-duel { gap: 10px; position: relative; }
.duel-top { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; }
.pl { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pl.op { justify-content: flex-end; text-align: right; }
.pl b { display: block; font: 700 13px var(--font-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 110px; }
.pl > div span { font: 800 26px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.pl.me > div span { color: var(--stripe); }
.pl .av, .vs-p .av { width: 38px; height: 38px; flex: none; border-radius: 50%; display: grid; place-items: center; font: 800 18px var(--font-display); background: var(--blue); box-shadow: inset 0 0 0 2px #fff; }
.pl.op .av, .vs-p .av.op { background: #b51d2b; }
.clock { font: 800 28px/1 var(--font-display); font-variant-numeric: tabular-nums; background: var(--sign); color: var(--ink); padding: 6px 12px; border-radius: 10px; box-shadow: inset 0 0 0 3px var(--ink); }
.clock.hurry { background: var(--red); color: #fff; box-shadow: inset 0 0 0 3px #fff; animation: breathe .8s infinite; }
.tug { height: 8px; border-radius: 4px; background: #b51d2b; overflow: hidden; }
.tug i { display: block; height: 100%; width: 50%; background: var(--stripe); transition: width .4s; }
.duel-q { display: grid; justify-items: center; background: var(--sign); color: var(--ink); border-radius: 12px; padding: 8px 12px 9px; box-shadow: inset 0 0 0 4px var(--ink), inset 0 0 0 7px #f4f4f0; }
.duel-q span { font: 700 11px var(--font-body); text-transform: uppercase; letter-spacing: .14em; color: #6a6f74; }
.duel-q b { font: 800 32px/1.05 var(--font-display); text-transform: uppercase; text-align: center; text-wrap: balance; }
.duel-q small { font-size: 11.5px; color: #6a6f74; }
.duel-q.flash { animation: pop .35s ease-out; }
.duel-mapbox { position: relative; border-radius: 16px; overflow: hidden; background: radial-gradient(120% 90% at 45% 35%, #24495e 0%, #173445 55%, #0f2533 100%); }
#d-map { display: block; width: 100%; height: max(330px, calc(100dvh - 330px)); touch-action: none; cursor: crosshair; -webkit-tap-highlight-color: transparent; user-select: none; }
#d-map .land { fill: #ece6d4; }
#d-map .reg { fill: none; stroke: #c4b793; stroke-width: 1; vector-effect: non-scaling-stroke; }
#d-map .coast { fill: none; stroke: #fbf8ee; stroke-width: 1.4; vector-effect: non-scaling-stroke; }
#d-map .d-tap { fill: var(--blue); stroke: #fff; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
#d-map .d-true { fill: #13924f; stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
#d-map .d-line { stroke: #1d2226; stroke-width: 1.6; stroke-dasharray: 4 3; vector-effect: non-scaling-stroke; }
.pop { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); padding: 8px 12px; border-radius: 10px; font: 600 13.5px var(--font-body); color: #fff; box-shadow: 0 6px 16px rgba(0,0,0,.4); white-space: nowrap; max-width: calc(100% - 20px); overflow: hidden; text-overflow: ellipsis; animation: pop .3s ease-out; }
.pop b { font: 800 20px var(--font-display); margin-right: 4px; }
.pop.great { background: var(--green); } .pop.good { background: #2b7a4b; } .pop.meh { background: #8a6d1d; } .pop.miss { background: #8c1622; }
.duel-over { position: absolute; inset: -6px -6px auto; min-height: calc(100% + 12px); z-index: 10; background: rgba(20,22,25,.96); border-radius: 18px; display: grid; align-content: center; justify-items: center; gap: 18px; padding: 24px 16px; text-align: center; }
.duel-over[hidden] { display: none; }
/* la schermata finale del duello ha anche la classe "end" (come la fine partita), che la teneva nascosta: qui deve vedersi */
.duel-over.end { display: grid; }
.duel-over.end .xp-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.duel-over.end .xp-row + .xp-row { margin-top: 4px; }
.r-coins { display: inline-flex; align-items: center; gap: 5px; font: 800 15px var(--font-display); color: var(--stripe); }
.res-actions .btn[hidden] { display: none; }
#r-detail { font-size: 14px; padding: 11px; }
/* con la rivincita in vista, "Altro avversario" passa in secondo piano */
#r-rematch:not([hidden]) ~ #r-again { background: transparent; color: #fff; box-shadow: inset 0 0 0 2px #4f565d; }
.duel-over.end[hidden] { display: none; }
.vs-card { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; width: 100%; }
.vs-p { display: grid; justify-items: center; gap: 6px; min-width: 0; }
.vs-p .av.big { width: 76px; height: 76px; font-size: 36px; box-shadow: inset 0 0 0 3px #fff, 0 8px 18px rgba(0,0,0,.5); }
.vs-p b { font: 800 20px var(--font-display); text-transform: uppercase; overflow-wrap: anywhere; }
.vs-p small { font-size: 12px; color: var(--mute); }
.vs-x { font: 800 44px var(--font-display); color: var(--stripe); text-shadow: 0 4px 0 #a9851c; }
.vs-rule { margin: 0; color: #c9ced2; max-width: 34ch; }
.vs-count { font: 800 54px/1 var(--font-display); color: var(--sign); min-height: 56px; animation: pop .4s ease-out; }
.res-badge { font: 800 46px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; padding: 8px 22px; border-radius: 14px; }
.res-badge.W { background: var(--green); box-shadow: inset 0 0 0 3px #fff; }
.res-badge.L { background: #8c1622; box-shadow: inset 0 0 0 3px #fff; }
.res-badge.D { background: #555c63; box-shadow: inset 0 0 0 3px #fff; }
.res-score { display: flex; align-items: center; gap: 18px; }
.res-score div { display: grid; }
.res-score b { font: 800 48px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.res-score span { font-size: 12.5px; color: var(--mute); max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.res-score em { font: 800 30px var(--font-display); color: var(--mute); font-style: normal; }
.res-line { margin: 0; color: #c9ced2; }
.duel-over .xpgain { width: 100%; text-align: left; }
.res-actions { display: grid; gap: 10px; width: 100%; }
.res-actions .btn { padding: 14px; font-size: 18px; justify-content: center; }
.res-share { margin: 0; white-space: pre-wrap; font-size: 13px; background: #1e5c4b; color: #e9f5f1; padding: 10px 12px; border-radius: 12px; text-align: left; width: 100%; }
.linkbtn { background: none; border: 0; color: #c9ced2; font: 600 14px var(--font-body); display: inline-flex; align-items: center; gap: 8px; cursor: pointer; padding: 6px; }
.linkbtn .qm { width: 22px; height: 22px; border-radius: 50%; background: var(--brown); color: #fff; display: inline-grid; place-items: center; box-shadow: inset 0 0 0 1.5px #fff; font: 800 13px var(--font-display); }
.tour-head { display: flex; justify-content: space-between; align-items: baseline; }
.tour-head b { font: 800 20px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.tour-head span { font: 700 14px var(--font-display); color: var(--stripe); }
.tour-scroll { overflow-x: auto; margin: 0 -16px; padding: 4px 16px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.tour-scroll::-webkit-scrollbar { display: none; }
.tour-road { list-style: none; margin: 0; padding: 54px 0 4px; display: flex; position: relative; width: max-content; }
.tour-road::before { content: ""; position: absolute; left: 36px; right: 36px; top: 76px; height: 14px; background: #3b4046; border-radius: 7px; box-shadow: inset 0 0 0 1px #4a5057; }
.tour-road::after { content: ""; position: absolute; left: 40px; right: 40px; top: 82px; height: 2px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.55) 0 10px, transparent 10px 18px); }
.tour-road li { position: relative; width: 78px; display: grid; justify-items: center; gap: 6px; z-index: 1; }
.tour-road .node { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font: 800 18px var(--font-display); background: #2a2e32; color: var(--mute); box-shadow: inset 0 0 0 2px #50575e; }
.tour-road li.done .node { background: var(--green); color: #fff; box-shadow: inset 0 0 0 2.5px #fff; }
.tour-road li.cur .node { background: var(--stripe); color: var(--ink); box-shadow: inset 0 0 0 3px var(--ink), 0 0 0 4px rgba(241,194,50,.35); transform: scale(1.12); }
.tour-road .city { font: 700 12px/1.1 var(--font-body); color: #c9ced2; text-align: center; max-width: 74px; }
.tour-road li.next .city { color: var(--mute); }
.tour-road .car { position: absolute; top: -26px; font-size: 22px; animation: bob 1.6s ease-in-out infinite; }
@keyframes bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
.tour-road .reward { position: absolute; top: -28px; white-space: nowrap; font: 700 10.5px var(--font-body); background: var(--brown); color: #fff; padding: 3px 7px; border-radius: 6px; box-shadow: inset 0 0 0 1.5px #fff; }
.tour-road li.cur .reward { top: -52px; }
.tour-rules { margin: 0; font-size: 12px; color: var(--mute); }
.xpgain:empty { display: none; }
.xpgain { display: grid; gap: 8px; background: rgba(241,194,50,.1); border: 1px solid rgba(241,194,50,.35); border-radius: 12px; padding: 12px; }
.xp-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.xp-row b { font: 800 26px/1 var(--font-display); color: var(--stripe); }
.xp-row span { font-size: 13px; color: #d7dbde; text-align: right; }
.xp-title { font: 700 14px var(--font-body); color: #ffd98a; }
.xp-none { font-size: 13px; color: var(--mute); }
.todaybar { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--asphalt-2); border-radius: 12px; padding: 10px 12px; box-shadow: 0 0 0 1px #3a4045; position: relative; overflow: hidden; }
.todaybar::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: repeating-linear-gradient(-45deg, var(--stripe) 0 8px, var(--ink) 8px 16px); }
.todaybar > div { padding-left: 6px; min-width: 0; }
.todaybar b { display: block; font: 800 20px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.todaybar span#h-count { font-size: 12.5px; color: var(--mute); }
.todaybar .status { flex: none; }
.pips { display: inline-flex; gap: 6px; vertical-align: middle; }
.pips i { width: 10px; height: 10px; border-radius: 50%; background: #d3d3cc; }
.pips i.used { background: var(--blue); }
.pips i.cur { background: transparent; box-shadow: inset 0 0 0 2px var(--ink); }
.hintnote { margin: -10px 0 0; font-size: 12.5px; color: var(--mute); text-align: center; min-height: 0; }
.hintnote:empty { display: none; }
.hints[hidden] { display: none; }
.game-extra[hidden] { display: none; }
.game-extra { display: grid; gap: 14px; margin-top: 10px; padding-top: 18px; border-top: 1px dashed #3f454b; }
.howbtn .qm { width: 26px; height: 26px; border-radius: 50%; background: var(--brown); color: #fff; display: inline-grid; place-items: center; box-shadow: inset 0 0 0 1.5px #fff; font-size: 16px; }
.howsheet .hero { gap: 12px; }
.howsheet .shape-wrap { max-width: 160px; }
.howsheet .hero-text h2 { margin: 0; font: 800 32px/0.98 var(--font-display); text-transform: uppercase; text-wrap: balance; }
.howsheet .hero-text em { font-style: normal; color: var(--stripe); }
.howsheet .hero-text p { margin: 6px 0 0; color: #c4cacf; }
.howsheet .steps li { background: rgba(0,0,0,.22); box-shadow: none; }
.who .av { width: 28px; height: 28px; border-radius: 50%; background: var(--blue); display: grid; place-items: center; font: 800 15px var(--font-display); flex: none; box-shadow: inset 0 0 0 2px #fff; }
.who span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.modes { display: flex; background: var(--asphalt-2); border-radius: 999px; padding: 3px; border: 1px solid #3c4248; }
.chip { font: 600 13px/1 var(--font-body); color: var(--mute); background: transparent; border: 0; border-radius: 999px; padding: 8px 12px; cursor: pointer; }
.chip[aria-pressed="true"] { background: var(--sign); color: var(--ink); }
.lane { height: 4px; margin: -4px -16px 0; background: repeating-linear-gradient(90deg, rgba(255,255,255,.75) 0 26px, transparent 26px 46px); opacity: .5; }

/* Barra di navigazione */
nav.tabs {
  position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
  background: rgba(24,26,29,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-top: 1px solid #353a3f;
}
nav.tabs ul { list-style: none; margin: 0 auto; padding: 0; max-width: 470px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
nav.tabs a { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 6px 0; border-radius: 10px; color: var(--mute); text-decoration: none; font: 600 11.5px var(--font-body); }
nav.tabs a svg { width: 22px; height: 22px; }
nav.tabs a[aria-current="page"] { color: var(--sign); background: var(--asphalt-3); }
nav.tabs a[aria-current="page"] svg { color: var(--stripe); }

/* Il cartello */
.signpost { position: relative; padding-bottom: 26px; }
.signpost::before, .signpost::after { content: ""; position: absolute; bottom: 0; width: 12px; height: 40px; background: linear-gradient(90deg, #5d6369, #b9bfc5 45%, #6c7278); border-radius: 2px; }
.signpost::before { left: 22%; } .signpost::after { right: 22%; }
.sign {
  position: relative; z-index: 1; color: var(--ink); border-radius: 14px; padding: 9px;
  background: linear-gradient(140deg, #fdfdfb 0%, #ecece7 48%, #f8f8f4 52%, #e8e8e2 100%);
  box-shadow: 0 1px 0 #fff inset, 0 0 0 1.5px #9aa0a6, 0 22px 40px rgba(0,0,0,.55), 0 4px 10px rgba(0,0,0,.35);
  overflow: hidden;
}
.sign-inner { border: 5px solid var(--ink); border-radius: 8px; padding: 18px 18px 12px; display: flex; flex-direction: column; align-items: center; gap: 6px; position: relative; }
.bolt { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff, #8d9399 60%, #5b6066); box-shadow: 0 1px 1px rgba(0,0,0,.3); z-index: 2; }
.bolt.t { top: 2px; left: calc(50% - 4.5px); } .bolt.b { bottom: 2px; left: calc(50% - 4.5px); }
.shape-wrap { width: 100%; max-width: 250px; aspect-ratio: 1; position: relative; }
.shape-wrap::before {
  content: ""; position: absolute; inset: 4%; border-radius: 50%;
  background: repeating-linear-gradient(0deg, transparent 0 23px, rgba(0,0,0,.05) 23px 24px), repeating-linear-gradient(90deg, transparent 0 23px, rgba(0,0,0,.05) 23px 24px);
  -webkit-mask: radial-gradient(circle, #000 40%, transparent 72%); mask: radial-gradient(circle, #000 40%, transparent 72%);
}
svg.shape { position: relative; display: block; width: 100%; height: 100%; overflow: visible; }
.shape path { fill: var(--ink); fill-rule: evenodd; stroke: var(--ink); stroke-width: .6; stroke-linejoin: round; filter: drop-shadow(0 1.5px 0 rgba(0,0,0,.18)); }
.shape.draw path { animation: draw 1.1s ease-out both, fill 0.5s .8s ease-out both; stroke-dasharray: 1; }
@keyframes draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes fill { from { fill-opacity: 0; } to { fill-opacity: 1; } }
.plate { font: 800 34px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; text-align: center; text-wrap: balance; min-height: 38px; }
.plate.hidden { color: #c3c3bc; letter-spacing: .12em; font-weight: 700; }
.plate.reveal { animation: reveal .6s cubic-bezier(.2,.9,.3,1.3) both; }
@keyframes reveal { from { transform: scale(.7); opacity: 0; filter: blur(4px); } to { transform: none; opacity: 1; filter: none; } }
.plate-sub { font: 600 13px var(--font-body); color: #5a5f64; min-height: 18px; text-align: center; }
.sign.lost::after {
  content: ""; position: absolute; z-index: 3; left: -25%; right: -25%; top: 50%; height: 22px; margin-top: -11px;
  background: var(--red); transform: rotate(-38deg); box-shadow: 0 2px 6px rgba(0,0,0,.25);
  animation: slash .5s .15s ease-out both; transform-origin: center; opacity: .92;
}
@keyframes slash { from { transform: rotate(-38deg) scaleX(0); } to { transform: rotate(-38deg) scaleX(1); } }
.badge { position: absolute; z-index: 3; top: 16px; right: 16px; background: var(--green); color: #fff; font: 700 13px/1 var(--font-body); padding: 7px 10px; border-radius: 999px; display: none; box-shadow: 0 3px 8px rgba(0,0,0,.25); }
.sign.won .badge { display: block; animation: reveal .5s .2s both; }

/* Home */
.hero { display: grid; grid-template-columns: 1fr; gap: 16px; }
.hero .sign-inner { padding: 14px 14px 10px; }
.hero .shape-wrap { max-width: 200px; }
.hero .shape path { transition: opacity .35s; }
.hero .shape.fade path { opacity: 0; }
.hero-text h2 { margin: 0; font: 800 34px/0.98 var(--font-display); text-transform: uppercase; letter-spacing: .01em; text-wrap: balance; }
.howto { display: grid; gap: 14px; background: var(--asphalt-2); border-radius: 16px; padding: 16px; box-shadow: 0 0 0 1px #3a4045; }
.howto .hero .shape-wrap { max-width: 170px; }
.howto .steps li { background: rgba(0,0,0,.2); box-shadow: none; }
.mapbox { position: relative; border-radius: 16px; overflow: hidden; background: radial-gradient(120% 90% at 45% 35%, #24495e 0%, #173445 55%, #0f2533 100%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 18px 36px rgba(0,0,0,.45); }
.mapstat { position: absolute; left: 10px; top: 10px; background: rgba(247,247,243,.95); color: var(--ink); border-radius: 12px; padding: 8px 12px 9px; display: grid; gap: 3px; min-width: 150px; box-shadow: 0 4px 12px rgba(0,0,0,.35); pointer-events: none; }
.mapstat b { font: 800 17px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.mapstat span { font: 600 13px var(--font-body); color: #3f464c; font-variant-numeric: tabular-nums; }
.mapstat .progress { height: 5px; background: rgba(0,0,0,.12); }
.mapctl { position: absolute; right: 10px; top: 10px; display: grid; gap: 6px; }
.mapctl button { width: 40px; height: 40px; border-radius: 10px; border: 0; background: rgba(247,247,243,.94); color: var(--ink); font: 700 22px/1 var(--font-body); cursor: pointer; display: grid; place-items: center; box-shadow: 0 3px 8px rgba(0,0,0,.4); }
.mapctl button svg { width: 20px; height: 20px; }
.maphint { position: absolute; left: 10px; bottom: 10px; right: 60px; font-size: 11.5px; color: #b9c0c6; background: rgba(20,22,25,.7); padding: 5px 8px; border-radius: 7px; pointer-events: none; transition: opacity .4s; }
.maphint.off { opacity: 0; }
.legend .l-today { background: #fff3c4; border: 2px solid #e0a800; }
.hero-text h1 em { font-style: normal; color: var(--stripe); }
.hero-text p { margin: 8px 0 0; color: #c4cacf; max-width: 38ch; }
.today {
  background: linear-gradient(180deg, #2c3135, #262a2e); border-radius: 16px; padding: 16px; display: grid; gap: 12px;
  box-shadow: 0 0 0 1px #3c4248, 0 14px 30px rgba(0,0,0,.35); position: relative; overflow: hidden;
}
.today::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: repeating-linear-gradient(-45deg, var(--stripe) 0 12px, var(--ink) 12px 24px); }
.today-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-top: 4px; }
.today-head b { font: 800 22px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.today-head span { font-size: 13px; color: var(--mute); font-variant-numeric: tabular-nums; }
.status { display: inline-flex; align-items: center; gap: 6px; font: 600 13px var(--font-body); padding: 5px 10px; border-radius: 999px; background: var(--asphalt-3); color: #d6dade; justify-self: start; }
.status.ok { background: rgba(15,122,67,.25); color: #8fe0b2; }
.status.ko { background: rgba(200,32,47,.22); color: #ff9aa3; }
.btn {
  font: 800 18px/1 var(--font-display); text-transform: uppercase; letter-spacing: .06em; text-decoration: none; text-align: center;
  padding: 0 20px; border-radius: 10px; border: 0; background: var(--stripe); color: var(--ink); cursor: pointer;
  box-shadow: 0 3px 0 #a9851c; transition: transform .08s, box-shadow .08s; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.btn:active { transform: translateY(2px); box-shadow: 0 1px 0 #a9851c; }
.btn:disabled { opacity: .35; cursor: default; transform: none; }
.btn.big { padding: 17px 20px; font-size: 21px; }
.btn.ghost { background: transparent; color: var(--sign); box-shadow: inset 0 0 0 2px #4f565d; }
.btn.ghost:active { box-shadow: inset 0 0 0 2px #4f565d; }
.cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.card { background: var(--asphalt-2); border-radius: 14px; padding: 14px; box-shadow: 0 0 0 1px #3a4045; text-decoration: none; color: inherit; display: flex; flex-direction: column; gap: 6px; min-height: 120px; }
.card .ico { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.card .ico svg { width: 20px; height: 20px; }
.card b { font: 800 19px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.card span { font-size: 13px; color: var(--mute); }
.mini-board { list-style: none; margin: 2px 0 0; padding: 0; display: grid; gap: 4px; font-size: 13px; }
.mini-board li { display: flex; justify-content: space-between; gap: 6px; }
.mini-board li b { font: 600 13px var(--font-body); text-transform: none; letter-spacing: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.section-title { margin: 0; font: 600 12px var(--font-body); color: var(--mute); text-transform: uppercase; letter-spacing: .08em; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.steps li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: center; background: var(--asphalt-2); border-radius: 12px; padding: 10px 12px; box-shadow: 0 0 0 1px #33393e; font-size: 14.5px; color: #d3d8dc; }
.steps li i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 800 17px var(--font-display); font-style: normal; color: var(--ink); background: var(--sign); }

/* Indizi */
.riddle {
  display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; margin: 2px;
  background: var(--brown); color: #fff; border-radius: 8px; padding: 12px 14px;
  box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--brown), 0 8px 18px rgba(0,0,0,.3);
}
.riddle .q { width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--brown); display: grid; place-items: center; font: 800 20px var(--font-display); }
.riddle small { display: block; font: 700 12px var(--font-display); text-transform: uppercase; letter-spacing: .1em; opacity: .85; margin-bottom: 2px; }
.riddle p { margin: 0; font: italic 500 16px/1.4 var(--font-body); text-wrap: pretty; }
.facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: f; }
.facts li { counter-increment: f; display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; background: rgba(0,0,0,.25); border-radius: 10px; padding: 10px 12px; font-size: 14.5px; line-height: 1.4; color: #dfe3e6; }
.facts li::before { content: counter(f); width: 28px; height: 28px; border-radius: 50%; background: var(--stripe); color: var(--ink); display: grid; place-items: center; font: 800 16px var(--font-display); }
.facts-wrap { display: grid; gap: 8px; }
.italy-card { display: grid; gap: 10px; }
.italy-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.italy-head b { font: 800 22px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.italy-head span { font: 700 15px var(--font-display); color: var(--stripe); font-variant-numeric: tabular-nums; white-space: nowrap; }
.progress { height: 6px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; }
.progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--green), #3bbf74); border-radius: 3px; }
.bigmap { width: 100%; height: max(380px, calc(100vh - 250px)); height: max(380px, calc(100dvh - 250px)); display: block; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; -webkit-tap-highlight-color: transparent; }
.bigmap.drag { cursor: grabbing; }
.bigmap .grat { fill: none; stroke: rgba(170,205,225,.10); stroke-width: .8; vector-effect: non-scaling-stroke; }
.bigmap .land { fill: #ece6d4; }
.bigmap .reg { fill: none; stroke: #c4b793; stroke-width: 1; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bigmap .coast { fill: none; stroke: #fbf8ee; stroke-width: 1.4; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.bigmap .rl { fill: rgba(110,92,58,.42); font-family: var(--font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .12em; pointer-events: none; }
.bigmap .mk { vector-effect: non-scaling-stroke; stroke-width: 1.6; }
.bigmap .mk.todo { fill: #b7a77f; stroke: #f6f1e3; stroke-width: 1; opacity: .75; }
.bigmap .mk.lost { fill: #7b8288; stroke: #fff; }
.bigmap .mk.won { fill: #13924f; stroke: #fff; stroke-width: 1.8; }
.bigmap .mk.free { fill: #a2a8ad; stroke: #13924f; stroke-width: 2.6; }
.bigmap .mk.today { stroke: #e0a800; stroke-width: 3; stroke-dasharray: none; fill: #fff3c4; }
.bigmap .cs { vector-effect: non-scaling-stroke; stroke-linejoin: round; fill-rule: evenodd; }
.bigmap .cs.won { fill: #13924f; stroke: #0a5a30; stroke-width: 1; }
.bigmap .cs.free { fill: #a9afb3; stroke: #13924f; stroke-width: 2.6; }
.bigmap .cs.lost { fill: #858c92; stroke: #5d646a; stroke-width: .8; }
.bigmap .lbl { fill: #1d2226; font-family: var(--font-body); font-weight: 700; paint-order: stroke; stroke: rgba(246,242,230,.92); stroke-linejoin: round; pointer-events: none; }
.bigmap .lbl.lost { fill: #4b5258; }
.bigmap .lbl.free { fill: #0d6b39; }
.legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 12px; font-size: 12px; color: var(--mute); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.legend .l-won { background: #13924f; box-shadow: 0 0 0 1.5px #fff; }
.legend .l-lost { background: #7d858c; }
.legend .l-free { background: #a2a8ad; box-shadow: 0 0 0 2px #13924f; }
.legend .l-todo { background: #b7a77f; box-shadow: 0 0 0 1px #f6f1e3; }
.pick { display: grid; gap: 6px; }
.pick button { text-align: left; background: var(--asphalt-3); border: 0; color: var(--sign); border-radius: 9px; padding: 10px 12px; font: 600 15px var(--font-body); cursor: pointer; display: flex; justify-content: space-between; gap: 8px; }
.pick button:disabled { color: var(--mute); cursor: default; font-style: italic; }
.toast { position: fixed; z-index: 40; left: 50%; bottom: 90px; transform: translateX(-50%); background: #111; color: #fff; padding: 10px 14px; border-radius: 10px; font-size: 14px; box-shadow: 0 8px 20px rgba(0,0,0,.5); max-width: calc(100% - 32px); text-align: center; }
.modal { position: fixed; z-index: 50; inset: 0; background: rgba(8,9,10,.72); display: flex; align-items: flex-end; justify-content: center; padding: 16px; animation: viewin .2s ease-out; }
.modal[hidden] { display: none; }
.sheet { width: 100%; max-width: 470px; max-height: calc(100% - 20px); overflow-y: auto; background: #272b2f; border-radius: 18px; padding: 18px; display: grid; gap: 14px; box-shadow: 0 -10px 40px rgba(0,0,0,.5); position: relative; }
.sheet .x { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--asphalt-3); color: var(--sign); font-size: 20px; cursor: pointer; }
.sum-head { display: grid; grid-template-columns: 88px 1fr; gap: 14px; align-items: center; padding-right: 30px; }
.sum-sign { background: var(--sign); border-radius: 8px; padding: 6px; box-shadow: inset 0 0 0 3px var(--ink); }
.sum-sign svg { display: block; width: 100%; aspect-ratio: 1; }
.sum-sign path { fill: var(--ink); fill-rule: evenodd; }
.sum-head b { display: block; font: 800 26px/1.05 var(--font-display); text-transform: uppercase; overflow-wrap: anywhere; }
.sum-head span { font-size: 13px; color: var(--mute); }
.sum-tries { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sum-tries li { display: grid; grid-template-columns: 22px 1fr auto auto; gap: 8px; align-items: center; background: rgba(0,0,0,.22); border-radius: 8px; padding: 7px 10px; font-size: 14px; }
.sum-tries li.win { background: rgba(15,122,67,.35); }
.sum-tries .n { font: 700 13px var(--font-display); color: var(--mute); }
.sum-tries .k { font-variant-numeric: tabular-nums; color: #cfd4d8; }
@media (min-width: 560px) { .modal { align-items: center; } }
.hints { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hint {
  display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 6px; min-height: 48px;
  background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--brown);
  margin: 2px; font: 700 16px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .02em;
}
.hint small { display: block; font: 500 11px var(--font-body); text-transform: none; letter-spacing: 0; opacity: .8; margin-bottom: 2px; }
.hint svg { flex: none; width: 20px; height: 20px; }
.hint.locked { background: transparent; color: var(--mute); box-shadow: inset 0 0 0 1.5px #464c52; font: 500 13px/1.2 var(--font-body); text-transform: none; }
.hint.new { animation: pop .45s cubic-bezier(.2,.9,.3,1.4); }
@keyframes pop { from { transform: scale(.85); opacity: .2; } to { transform: none; opacity: 1; } }

/* Campo di ricerca */
.guess-box { position: relative; }
.guess-row { display: flex; gap: 8px; }
.field { flex: 1; min-width: 0; position: relative; }
.field svg { position: absolute; left: 13px; top: 50%; width: 18px; height: 18px; margin-top: -9px; color: var(--mute); pointer-events: none; }
.input {
  width: 100%; font: 500 17px var(--font-body); padding: 14px; border-radius: 10px;
  border: 1.5px solid #464c52; background: var(--asphalt-2); color: var(--sign); box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.input:focus { border-color: var(--stripe); outline: none; }
.input::placeholder { color: var(--mute); }
#guess { padding-left: 40px; }
.suggest {
  position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 6px); margin: 0; padding: 5px; list-style: none;
  background: #2f3438; border: 1px solid #4a5157; border-radius: 10px; box-shadow: 0 14px 30px rgba(0,0,0,.55);
  max-height: 280px; overflow-y: auto;
}
.suggest li { padding: 11px 10px; border-radius: 7px; cursor: pointer; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-weight: 600; }
.suggest li span { color: var(--mute); font-size: 12.5px; font-weight: 500; white-space: nowrap; }
.suggest li mark { background: none; color: var(--stripe); }
.suggest li[aria-selected="true"], .suggest li:hover { background: #41484f; }
.msg { min-height: 18px; margin-top: -8px; font-size: 14px; color: var(--stripe); }

/* Tentativi */
.guesses { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.g { --tip: 20px; position: relative; background: #fff; padding: 2.5px; clip-path: polygon(0 0, calc(100% - var(--tip)) 0, 100% 50%, calc(100% - var(--tip)) 100%, 0 100%); border-radius: 6px 0 0 6px; filter: drop-shadow(0 4px 6px rgba(0,0,0,.35)); }
.gi {
  display: grid; grid-template-columns: 26px 1fr auto 34px; align-items: center; column-gap: 10px;
  background: var(--blue); padding: 7px calc(var(--tip) + 4px) 7px 9px; border-radius: 4px 0 0 4px;
  clip-path: polygon(0 0, calc(100% - var(--tip) + 1px) 0, 100% 50%, calc(100% - var(--tip) + 1px) 100%, 0 100%);
}
.g .n { width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.18); display: grid; place-items: center; font: 700 14px var(--font-display); }
.g .nm { font: 700 20px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .02em; overflow-wrap: anywhere; }
.g .nm small { display: block; font: 500 12px/1.3 var(--font-body); text-transform: none; letter-spacing: 0; opacity: .8; }
.g .km { font: 700 20px/1 var(--font-display); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.g .km small { display: block; font: 500 11px var(--font-body); opacity: .75; margin-top: 2px; }
.g .dir { width: 34px; height: 34px; background: #fff; border-radius: 50%; display: grid; place-items: center; }
.g .dir svg { width: 22px; height: 22px; transition: transform .7s cubic-bezier(.2,.9,.3,1.25); }
.bar { grid-column: 2 / -1; height: 4px; background: rgba(255,255,255,.18); border-radius: 2px; overflow: hidden; margin-top: 6px; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, #fff, var(--stripe)); border-radius: 2px; transform-origin: left; }
.g.new .bar i { animation: grow .7s .15s ease-out both; }
@keyframes grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.g.win .gi { background: var(--green); }
.g.new { animation: drive .45s cubic-bezier(.2,.8,.3,1) both; }
@keyframes drive { from { transform: translateX(-40px); opacity: 0; } to { transform: none; opacity: 1; } }
.slot { height: 50px; border-radius: 6px; border: 1.5px dashed #41474d; display: flex; align-items: center; padding-left: 14px; color: #5b6268; font: 700 15px var(--font-display); }

/* Pannelli */
.panel { display: flex; flex-direction: column; gap: 16px; background: linear-gradient(180deg, #2c3135, #262a2e); border-radius: 16px; padding: 18px; box-shadow: 0 0 0 1px #3c4248, 0 18px 36px rgba(0,0,0,.4); position: relative; overflow: hidden; }
.panel.striped::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: repeating-linear-gradient(-45deg, var(--stripe) 0 12px, var(--ink) 12px 24px); }
.end { display: none; }
.end.show { display: flex; animation: pop .5s ease-out; }
.panel h2 { margin: 6px 0 0; font: 800 32px/1.05 var(--font-display); text-transform: uppercase; text-wrap: balance; }
.panel p { margin: 0; color: #c4cacf; }
.endgrid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 14px; align-items: center; }
.map { width: 100%; height: auto; }
.map .land { fill: #424950; stroke: #6b737b; stroke-width: .7; }
.map .gl { stroke: rgba(255,255,255,.45); stroke-width: 1; stroke-dasharray: 2 3; }
.map .gp { fill: var(--blue); stroke: #fff; stroke-width: 1.2; }
.map text { font: 700 8.5px var(--font-body); fill: #fff; }
.map .tg { fill: var(--stripe); stroke: var(--ink); stroke-width: 1; }
.map .pulse { fill: none; stroke: var(--stripe); stroke-width: 1.5; animation: pulse 1.8s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes pulse { from { transform: scale(.4); opacity: 1; } to { transform: scale(2.4); opacity: 0; } }
.stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stat { background: rgba(0,0,0,.25); border-radius: 10px; padding: 10px 6px 8px; text-align: center; }
.stat b { display: block; font: 800 30px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.stat span { display: block; font-size: 11.5px; line-height: 1.2; color: var(--mute); margin-top: 3px; }
.dist { display: flex; flex-direction: column; gap: 4px; }
.dist div { display: grid; grid-template-columns: 14px 1fr; gap: 8px; align-items: center; font: 600 13px var(--font-body); font-variant-numeric: tabular-nums; }
.dist i { display: block; background: #4a5158; color: #fff; font-style: normal; text-align: right; padding: 2px 7px; border-radius: 3px; min-width: 24px; }
.dist i.cur { background: var(--green); }
.bubble-wrap { display: flex; flex-direction: column; gap: 6px; }
pre.share { align-self: flex-end; margin: 0; max-width: 85%; white-space: pre-wrap; font: 15px/1.35 var(--font-body); background: #1e5c4b; color: #e9f5f1; padding: 9px 12px; border-radius: 12px 12px 3px 12px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.actions .btn { padding: 15px 8px; font-size: 16px; letter-spacing: .03em; white-space: nowrap; }
.next { font-size: 13px; color: var(--mute); text-align: center; margin-top: -4px; }
.note { font-size: 13px; color: var(--mute); background: rgba(0,0,0,.2); border-radius: 10px; padding: 10px 12px; }
.note a { color: var(--stripe); }
.join { display: grid; gap: 8px; background: rgba(241,194,50,.08); border: 1px dashed rgba(241,194,50,.5); border-radius: 12px; padding: 12px; }
.join b { font: 700 17px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.row { display: flex; gap: 8px; }
.row .input { flex: 1; min-width: 0; }
.row .btn { padding: 0 16px; font-size: 16px; }

/* Classifica */
.seg { display: grid; grid-template-columns: 1fr 1fr; background: var(--asphalt-2); border-radius: 12px; padding: 4px; box-shadow: 0 0 0 1px #3a4045; }
.seg button { border: 0; background: transparent; color: var(--mute); font: 700 15px var(--font-display); text-transform: uppercase; letter-spacing: .05em; padding: 10px; border-radius: 9px; cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--sign); color: var(--ink); }
.podium { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 8px; align-items: end; }
.pod { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; min-width: 0; }
.pod .av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font: 800 22px var(--font-display); background: var(--blue); box-shadow: inset 0 0 0 2.5px #fff; }
.pod.p1 .av { width: 58px; height: 58px; font-size: 27px; background: var(--green); }
.pod .nk { font: 600 13px var(--font-body); max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pod .sc { font: 700 13px var(--font-body); color: var(--mute); }
.pod .base { width: 100%; border-radius: 8px 8px 0 0; display: grid; place-items: center; font: 800 26px var(--font-display); color: var(--ink); background: var(--sign); }
.pod.p1 .base { height: 74px; background: var(--stripe); } .pod.p2 .base { height: 54px; } .pod.p3 .base { height: 40px; background: #d9b28e; }
.board { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.board li { display: grid; grid-template-columns: 30px 1fr auto; gap: 10px; align-items: center; background: var(--asphalt-2); border-radius: 10px; padding: 10px 12px; box-shadow: 0 0 0 1px #33393e; }
.board li.me { box-shadow: inset 4px 0 0 var(--stripe), 0 0 0 1px #5a5130; background: #2f2d25; }
.board .rk { font: 800 18px var(--font-display); color: var(--mute); text-align: center; font-variant-numeric: tabular-nums; }
.board .nk { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board .nk small { display: block; font-size: 12px; color: var(--mute); font-weight: 500; }
.board .sc { font: 800 20px var(--font-display); font-variant-numeric: tabular-nums; text-align: right; }
.board .sc small { display: block; font: 500 11px var(--font-body); color: var(--mute); }
.empty { text-align: center; color: var(--mute); padding: 18px 10px; font-size: 14px; }

/* Profilo */
/* ===== Profilo ===== */
.pf-card { display: grid; grid-template-columns: 138px 1fr; gap: 10px 14px; align-items: end; padding: 14px; border-radius: 16px; background: linear-gradient(180deg, #2c3135, #24282b); box-shadow: 0 0 0 1px #3c4248, 0 16px 30px rgba(0,0,0,.4); overflow: hidden; }
.pf-av { grid-row: 1; align-self: stretch; min-height: 150px; display: grid; justify-items: center; align-items: end; overflow: hidden; border-radius: 12px; background: #17191b; box-shadow: inset 0 0 0 2px #3c4248; }
.pf-av img, .pf-av svg { display: block; width: 150px; max-width: none; height: auto; margin-top: 2px; }
.pf-id { display: grid; gap: 6px; align-content: center; min-width: 0; }
.pf-id b { font: 800 30px/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; overflow-wrap: anywhere; }
.pf-title { justify-self: start; font: 700 13px var(--font-display); text-transform: uppercase; letter-spacing: .08em; color: #fff; background: var(--green); border-radius: 6px; padding: 4px 10px 3px; box-shadow: inset 0 0 0 1.5px #fff; }
.pf-sub { font: 500 12.5px/1.3 var(--font-body); color: var(--mute); overflow-wrap: anywhere; }
.pf-xp { grid-column: 1 / -1; display: grid; gap: 6px; }
.pf-xp .bar { height: 10px; border-radius: 5px; background: rgba(0,0,0,.35); overflow: hidden; }
.pf-xp .bar i { display: block; height: 100%; width: 0; background: var(--stripe); border-radius: 5px; }
.pf-xp span { font: 600 12.5px var(--font-body); color: #c4cacf; text-align: center; }
.pf-key { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pf-key .k { display: grid; justify-items: center; gap: 4px; padding: 12px 6px 10px; border-radius: 10px; color: #fff; text-align: center; box-shadow: inset 0 0 0 2px #fff, 0 6px 14px rgba(0,0,0,.35); }
.pf-key .k b { display: flex; align-items: center; gap: 4px; font: 800 32px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.pf-key .k b small { font-size: 16px; opacity: .75; }
.pf-key .k span { font: 600 11.5px/1.2 var(--font-body); opacity: .92; }
.pf-key .k-fire { background: #c2571a; } .pf-key .k-fire b svg { color: #ffd84d; }
.pf-key .k-green { background: var(--green); }
.pf-key .k-xp { background: var(--blue); }
.pf-sec { display: grid; gap: 10px; }
.pf-sec[hidden] { display: none; }
#p-stats { grid-template-columns: repeat(3, 1fr); }
.pf-h { margin: 0; font: 700 13px var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: var(--mute); }
.pf-stages { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.pf-stages .stg { display: grid; justify-items: center; gap: 2px; padding: 6px 0 5px; min-width: 0; width: auto; box-shadow: none; border-radius: 10px; background: rgba(0,0,0,.22); opacity: .45; filter: grayscale(.85); text-align: center; overflow: hidden; }
.pf-stages .stg.got { opacity: 1; filter: none; box-shadow: none; }
.pf-stages .stg.now { background: rgba(241,194,50,.16); box-shadow: inset 0 0 0 2px var(--stripe); }
.pf-stages .stg img, .pf-stages .stg svg { width: 100%; max-width: 52px; height: auto; }
.pf-stages .stg b { font: 700 8.5px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.pf-stages .stg small { font: 500 9px var(--font-body); color: var(--mute); }
.pf-av { position: relative; }
.pf-custom { position: absolute; left: 8px; right: 8px; bottom: 8px; border: 0; border-radius: 8px; padding: 7px 4px 6px; background: rgba(15,17,19,.82); color: var(--stripe); font: 800 12px var(--font-display); text-transform: uppercase; letter-spacing: .08em; box-shadow: inset 0 0 0 1.5px var(--stripe); cursor: pointer; }
/* Profilo: Amici e Partite affiancati; pagina "Le tue partite" */
.pf-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pf-duo .pf-friends { position: relative; padding: 10px 11px; gap: 9px; text-decoration: none; min-width: 0; }
.pf-duo .pfr-ic { width: 34px; height: 34px; }
.pf-duo .pfr-t b { font-size: 18px; }
.pf-duo .pfr-t small { font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf-duo .pfr-badge { position: absolute; top: -6px; right: -4px; min-width: 22px; text-align: center; padding: 4px 6px 3px; box-shadow: 0 0 0 2px #1f2225; }
.pf-duo .pf-matches { background: var(--brown); }
.pf-duo .pf-matches .pfr-ic { color: var(--brown); }
.scope { margin-top: 6px; padding: 3px; }
.scope button { font-size: 13px; padding: 7px; }
.mt-head { display: flex; align-items: center; gap: 10px; }
.mt-head h2 { margin: 0; font: 800 28px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.mt-back { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--asphalt-3); color: #fff; font-size: 28px; line-height: 1; text-decoration: none; box-shadow: 0 0 0 1px #3c4248; }
/* storico delle partite */
.board[hidden], .podium[hidden], #b-explain[hidden], #b-note[hidden] { display: none; }
.hist { display: grid; gap: 10px; }
.hist[hidden] { display: none; }
.hs-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.hs-sum > div { background: rgba(0,0,0,.25); border-radius: 10px; padding: 10px 6px 8px; text-align: center; }
.hs-sum b { display: block; font: 800 28px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.hs-sum span { display: block; font-size: 11.5px; color: var(--mute); margin-top: 3px; }
.hs-kinds { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 12px; font-size: 12.5px; color: #c4cacf; }
.hs-kinds span { display: inline-flex; align-items: center; gap: 5px; }
.hs-kinds svg { width: 16px; height: 16px; color: var(--stripe); }
.hs-kinds b { color: #fff; }
.hs-chips { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
.hs-chips::-webkit-scrollbar { display: none; }
.hs-chips .cu-chip { flex: none; }
.hs-day { margin: 8px 0 0; text-transform: capitalize; }
.hs-row { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 12px; background: #262a2e; color: #fff; text-align: left; cursor: pointer; box-shadow: 0 0 0 1px #343a40; }
.hs-row:active { transform: translateY(1px); }
.hs-ic { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; color: #fff; }
.hs-ic.k-day { background: #c2571a; } .hs-ic.k-duel { background: #b51d2b; } .hs-ic.k-five { background: var(--blue); }
.hs-t { display: grid; gap: 2px; min-width: 0; flex: 1; }
.hs-t b { font: 700 15px/1.15 var(--font-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hs-t small { font: 500 12.5px/1.2 var(--font-body); color: var(--mute); }
.hs-b { flex: none; min-width: 38px; text-align: center; font: 800 17px/1 var(--font-display); font-style: normal; padding: 7px 8px 6px; border-radius: 8px; color: #fff; background: #4a5157; }
.hs-b.b-W { background: #13924f; } .hs-b.b-L { background: #b51d2b; } .hs-b.b-D { background: #6a7077; } .hs-b.b-P { background: #8a6d12; }
.hs-score { font: 800 20px var(--font-display); } .hs-score i { font-style: normal; } .hs-score .b-W { color: #4fd48a; } .hs-score .b-L { color: #ff9aa3; } .hs-score small { font: 500 12px var(--font-body); color: var(--mute); }
.hs-empty { margin: 18px 0; text-align: center; color: var(--mute); font-size: 14px; }
.hs-more { margin-top: 4px; }
.hs-vs { display: flex; align-items: center; justify-content: space-around; gap: 8px; padding: 10px; border-radius: 12px; background: rgba(0,0,0,.25); }
.hs-vs > div { display: grid; justify-items: center; }
.hs-vs b { font: 800 40px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.hs-vs span { font-size: 12px; color: var(--mute); }
.hs-vs em { font: 800 15px var(--font-display); font-style: normal; text-transform: uppercase; letter-spacing: .08em; color: var(--stripe); }
.hs-rounds { max-height: 34vh; overflow-y: auto; }
.hs-rounds li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; }
/* amici */
.pf-friends { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 14px; border: 0; border-radius: 14px; background: var(--blue); color: #fff; text-align: left; cursor: pointer; box-shadow: inset 0 0 0 2px #fff, 0 6px 14px rgba(0,0,0,.35); }
.pf-friends:active { transform: translateY(1px); }
.pfr-ic { flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--blue); }
.pfr-t { display: grid; gap: 1px; min-width: 0; flex: 1; }
.pfr-t b { font: 800 20px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.pfr-t small { font: 500 12px/1.2 var(--font-body); opacity: .92; }
.pfr-badge { flex: none; font: 800 12px var(--font-display); font-style: normal; text-transform: uppercase; letter-spacing: .05em; padding: 5px 9px 4px; border-radius: 999px; background: var(--stripe); color: var(--ink); }
.pfr-go { flex: none; font-style: normal; font-size: 26px; line-height: 1; opacity: .8; }
.me-chip { position: relative; }
.me-chip.has-req::after { content: ""; position: absolute; top: -1px; right: -1px; width: 12px; height: 12px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 2px #2a2e32; }
.fr-h { margin: 6px 0 2px; font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: .12em; color: var(--mute); }
.fr-row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid #343a40; }
.fr-row b { flex: 1; min-width: 0; font: 800 19px/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; overflow: hidden; text-overflow: ellipsis; }
.fr-av { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #fff; font: 800 17px var(--font-display); box-shadow: inset 0 0 0 2px #fff; }
.fr-act { display: flex; gap: 6px; flex: none; }
.fr-act .btn { padding: 8px 12px; font-size: 14px; }
.fr-x { width: 32px; height: 32px; border-radius: 50%; border: 0; background: var(--asphalt-3); color: #c9ced2; font-size: 20px; line-height: 1; cursor: pointer; }
.fr-empty { margin: 2px 0 6px; font-size: 13.5px; color: var(--mute); }
.fr-add { margin-top: 8px; }
.fr-share { display: grid; gap: 6px; margin-top: 4px; }
.f5-friends { display: grid; gap: 6px; margin-top: 10px; }
.f5-fl { display: flex; flex-wrap: wrap; gap: 6px; }
.f5-fb { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px 4px 4px; border: 0; border-radius: 999px; background: var(--asphalt-3); color: #fff; font: 700 14px var(--font-body); cursor: pointer; }
.f5-fb:disabled { opacity: .5; }
/* galleria dei personaggi */
.ch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ch-card { display: grid; justify-items: center; gap: 2px; padding: 6px 4px 8px; border: 0; border-radius: 12px; background: #17191b; color: #fff; box-shadow: inset 0 0 0 2px #3c4248; cursor: pointer; text-align: center; overflow: hidden; }
.ch-card.on { box-shadow: inset 0 0 0 3px var(--stripe); background: #2a2616; }
.ch-img { display: grid; justify-items: center; align-items: end; width: 100%; height: 104px; overflow: hidden; }
.ch-img img { width: 100px; height: auto; max-width: none; }
.ch-card b { font: 800 17px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.ch-card small { font: 500 10.5px/1.2 var(--font-body); color: var(--mute); }
.ch-special { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 11px 12px; border-radius: 12px; background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.ch-special.lock { background: #3a3f44; color: #c9ced2; box-shadow: inset 0 0 0 2px #6a7077; }
.ch-special b { display: block; font: 800 15px var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.ch-special small { font: 500 12px/1.25 var(--font-body); opacity: .9; }
.ch-lock { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(0,0,0,.25); }
/* schermata "Il tuo Nando" (vecchia, non più usata) */
.cu-prev { display: grid; justify-items: center; align-items: end; height: 190px; overflow: hidden; border-radius: 14px; background: #17191b; box-shadow: inset 0 0 0 2px #3c4248; margin-bottom: 4px; }
.cu-prev .nstack { height: auto; }
.cu-row { display: grid; grid-template-columns: 70px 1fr; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px solid #343a40; }
.cu-row > span { font: 700 11.5px var(--font-body); text-transform: uppercase; letter-spacing: .1em; color: var(--mute); }
.cu-row > div { display: flex; flex-wrap: wrap; gap: 6px; }
.cu-row.off { opacity: .4; pointer-events: none; }
.cu-chip { border: 0; border-radius: 999px; padding: 7px 12px; background: var(--asphalt-3); color: #e4e8ea; font: 600 13px var(--font-body); cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.cu-chip.on { background: var(--stripe); color: var(--ink); }
.cu-chip:disabled { opacity: .45; cursor: default; }
.cu-chip.lock { box-shadow: inset 0 0 0 1.5px #5a6168; }
.cu-sw { width: 30px; height: 30px; border-radius: 50%; border: 0; background: var(--c); box-shadow: inset 0 0 0 2px rgba(255,255,255,.25); cursor: pointer; }
.cu-sw.on { box-shadow: 0 0 0 3px var(--stripe), inset 0 0 0 2px rgba(0,0,0,.25); }
.cu-note { margin: 4px 0 0; font-size: 12px; color: var(--mute); }
.pf-card { cursor: pointer; position: relative; }
.pf-card:active { transform: translateY(1px); }
.pf-edit { justify-self: start; display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; font: 700 12px var(--font-body); color: var(--stripe); }
.pf-edit i { font-style: normal; font-size: 18px; line-height: 1; }
.pf-card.pf-attn::after { content: ""; position: absolute; top: 12px; right: 12px; width: 12px; height: 12px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 2px #2c3135; }
.acc-who { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.acc-av { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: #17191b; box-shadow: inset 0 0 0 2px #3c4248; display: grid; align-items: end; justify-items: center; flex: none; }
.acc-av img { width: 76px; max-width: none; height: auto; }
.acc-who b { display: block; font: 800 22px/1 var(--font-display); text-transform: uppercase; }
.acc-who span { font-size: 12.5px; color: var(--mute); overflow-wrap: anywhere; }
.profile-head { display: flex; align-items: center; gap: 14px; }
.profile-head .av { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; font: 800 30px var(--font-display); background: var(--blue); box-shadow: inset 0 0 0 3px #fff, 0 6px 14px rgba(0,0,0,.4); flex: none; }
.profile-head b { display: block; font: 800 28px/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; overflow-wrap: anywhere; }
.profile-head span { font-size: 13px; color: var(--mute); }
.history { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.history li { aspect-ratio: 1; border-radius: 8px; display: grid; place-items: center; font: 800 16px var(--font-display); background: var(--asphalt-3); color: var(--mute); position: relative; }
.history li small { position: absolute; bottom: -16px; font: 500 10px var(--font-body); color: var(--mute); }
.history li.w { background: var(--green); color: #fff; }
.history li.l { background: var(--red); color: #fff; }
.history-wrap { padding-bottom: 14px; }
label.lbl { font: 600 12px var(--font-body); color: var(--mute); text-transform: uppercase; letter-spacing: .08em; }
.form { display: grid; gap: 8px; }
.okmsg { font-size: 13px; color: #8fe0b2; min-height: 16px; }
.credit { font-size: 11.5px; color: #6c747b; text-align: center; }

@media (max-width: 390px) {
  .endgrid { grid-template-columns: 1fr 1fr; }
  .g .nm, .g .km { font-size: 18px; }
  .hero-text h1 { font-size: 34px; }
}
@media (min-width: 560px) {
  .hero { grid-template-columns: 1fr 1fr; align-items: center; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* ===== Segnaletica: componenti del nuovo Gran Tour ===== */
.g .dir { color: var(--blue); }
.g.win .dir { color: var(--green); }
.xp-pill { margin-left: auto; display: flex; align-items: center; gap: 7px; background: var(--asphalt-2); border-radius: 999px; padding: 4px 12px 4px 4px; box-shadow: 0 0 0 1px #3c4248; text-decoration: none; color: var(--sign); font: 700 15px var(--font-display); letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.xp-pill i { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 800 11px var(--font-display); font-style: normal; color: var(--ink); background: var(--stripe); }
body.playing .xp-pill { display: none; }
header { gap: 10px; }

/* arena = cartello turistico marrone */
.arena { position: relative; display: grid; justify-items: center; gap: 4px; padding: 16px 16px 14px; border-radius: 14px; background: var(--brown); color: #fff; box-shadow: inset 0 0 0 3px #fff, 0 0 0 3px var(--brown), 0 20px 36px rgba(0,0,0,.45); margin: 3px; }
.cloud { display: none; }
.arena-k { font: 600 12px var(--font-body); letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.arena-name { margin: 0; font: 800 46px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; text-align: center; text-wrap: balance; }
.arena-art { background: none; border: 0; padding: 0; cursor: pointer; }
.arena-art svg { display: block; }
.arena-prog { width: 100%; display: grid; gap: 6px; margin-top: 2px; }
.arena .bar { height: 10px; border-radius: 5px; background: rgba(0,0,0,.3); overflow: hidden; }
.arena .bar i { display: block; height: 100%; width: 0; background: var(--stripe); border-radius: 5px; transition: width .8s cubic-bezier(.2,.8,.3,1); }
.arena-prog span { font: 600 12.5px var(--font-body); text-align: center; opacity: .9; }

.nando-row { display: grid; grid-template-columns: 170px 1fr; gap: 10px; align-items: end; }
.nando-wrap svg { display: block; filter: drop-shadow(0 6px 10px rgba(0,0,0,.4)); }

/* pulsante GIOCA a strisce di cantiere */
.btn-play { position: relative; display: grid; justify-items: center; gap: 2px; text-decoration: none; color: var(--ink); padding: 18px 16px 15px; border-radius: 14px; background: var(--stripe); box-shadow: 0 5px 0 #a9851c, 0 14px 26px rgba(0,0,0,.45); overflow: hidden; transition: transform .08s, box-shadow .08s; }
.btn-play::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 7px; background: repeating-linear-gradient(-45deg, var(--ink) 0 10px, transparent 10px 20px); opacity: .85; }
.btn-play b { font: 800 44px/1 var(--font-display); text-transform: uppercase; letter-spacing: .08em; }
.btn-play small { font: 600 13px var(--font-body); color: #4a3a0a; }
.btn-play:active { transform: translateY(4px); box-shadow: 0 1px 0 #a9851c, 0 6px 12px rgba(0,0,0,.4); }
.btn-play.done { background: var(--sign); box-shadow: 0 5px 0 #9aa0a6, 0 14px 26px rgba(0,0,0,.45); }
.btn-play.done b { font-size: 32px; }

.mode-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mode-tile { display: grid; grid-template-columns: 38px 1fr; column-gap: 10px; align-items: center; text-decoration: none; color: #fff; padding: 12px; border-radius: 10px; margin: 2px; }
.mode-tile.duel { background: #b51d2b; box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px #b51d2b, 0 8px 16px rgba(0,0,0,.35); }
.mode-tile.train { background: var(--blue); box-shadow: inset 0 0 0 2px #fff, 0 0 0 2px var(--blue), 0 8px 16px rgba(0,0,0,.35); }
.mode-ic { grid-row: span 2; width: 38px; height: 38px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.mode-tile.duel .mode-ic { color: #b51d2b; } .mode-tile.train .mode-ic { color: var(--blue); }
.mode-ic svg { width: 21px; height: 21px; }
.mode-tile b { font: 800 21px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.mode-tile small { font: 600 11.5px/1.25 var(--font-body); opacity: .9; }

/* percorso = una strada vista dall'alto */
.road-wrap { display: grid; gap: 6px; }
.road-head { display: flex; justify-content: space-between; align-items: baseline; }
.road-head h2 { margin: 0; font: 800 22px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.road-head span { font: 700 15px var(--font-display); color: var(--stripe); }
.road-hint { margin: 0; font-size: 13px; color: var(--mute); }
.road-scroll { max-height: 560px; overflow-y: auto; margin: 0 -16px; padding: 24px 16px 16px; scrollbar-width: none; mask-image: linear-gradient(180deg, transparent 0, #000 30px, #000 calc(100% - 30px), transparent 100%); }
.road-scroll::-webkit-scrollbar { display: none; }
.road { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 16px; }
.road::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 46px; margin-left: -23px; background: #34383d; border-left: 3px solid #e9e9e4; border-right: 3px solid #e9e9e4; }
.road::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 4px; margin-left: -2px; background: repeating-linear-gradient(180deg, var(--stripe) 0 16px, transparent 16px 30px); }
.r-stop { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 64px 1fr; align-items: center; gap: 12px; }
.r-node { grid-column: 2; width: 64px; height: 64px; border: 0; padding: 6px; cursor: pointer; border-radius: 8px; background: var(--sign); box-shadow: inset 0 0 0 3px var(--ink), 0 6px 12px rgba(0,0,0,.4); display: grid; place-items: center; }
.r-node svg { width: 40px; height: 40px; }
.r-node svg path { fill: var(--ink); fill-rule: evenodd; }
.r-stop.done .r-node { background: var(--green); box-shadow: inset 0 0 0 3px #fff, 0 6px 12px rgba(0,0,0,.4); }
.r-stop.done .r-node svg path { fill: #fff; }
.r-stop.next .r-node { background: #4a5057; box-shadow: inset 0 0 0 3px #6b737b; }
.r-stop.next .r-node svg path { fill: #8f979f; }
.r-stop.cur .r-node { background: var(--stripe); box-shadow: inset 0 0 0 3px var(--ink), 0 0 0 5px rgba(241,194,50,.3), 0 6px 12px rgba(0,0,0,.4); transform: scale(1.1); }
.r-lbl { font: 800 17px/1.05 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.r-lbl small { display: block; font: 500 11.5px var(--font-body); text-transform: none; letter-spacing: 0; color: var(--mute); margin-top: 2px; }
.r-stop.r .r-lbl { grid-column: 3; }
.r-stop.l .r-lbl { grid-column: 1; grid-row: 1; text-align: right; }
.r-pin { position: absolute; left: calc(50% + 24px); top: -6px; width: 14px; height: 14px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 3px #fff; }
.r-arena { position: relative; z-index: 1; }
.r-card { width: calc(100% - 6px); margin: 3px; border: 0; cursor: pointer; text-align: left; display: grid; grid-template-columns: 96px 1fr; align-items: center; gap: 12px; padding: 10px 14px 10px 10px; border-radius: 12px; background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2.5px #fff, 0 0 0 3px var(--brown), 0 10px 20px rgba(0,0,0,.4); position: relative; }
.nando.img { display: block; max-width: 100%; height: auto; }
/* Nando a strati: i livelli sono tutti della stessa misura e si sovrappongono; il primo dà la dimensione */
.nstack { position: relative; display: inline-block; line-height: 0; vertical-align: bottom; }
.nstack img.lay { position: absolute; left: 0; top: 0; }
img.city-art { display: block; max-width: 100%; height: auto; }
.nando-wrap img.nando { filter: drop-shadow(0 6px 10px rgba(0,0,0,.4)); }
.sart img.nando { filter: drop-shadow(0 4px 6px rgba(0,0,0,.4)); }
.r-card svg.city-art { display: block; }
.city-art.locked { filter: grayscale(1) brightness(.75); opacity: .85; }   /* città ancora da raggiungere */
.r-txt small { display: block; font: 600 11px var(--font-body); letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.r-txt b { display: block; font: 800 27px/1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.r-reward { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; background: rgba(0,0,0,.25); border-radius: 999px; padding: 2px 10px 2px 2px; font: 600 12px var(--font-body); }
.r-reward svg { width: 24px; height: 28px; background: #f7f7f3; border-radius: 50%; }
.r-arena.next .r-card { background: #4a5057; box-shadow: inset 0 0 0 2.5px #8f979f, 0 0 0 3px #4a5057; color: #c9ced2; }
.r-lock { position: absolute; right: 12px; top: 12px; width: 28px; height: 28px; border-radius: 50%; background: rgba(0,0,0,.3); display: grid; place-items: center; color: #fff; }
.r-lock svg { width: 15px; height: 15px; }

/* cartolina */
.post { display: grid; justify-items: center; gap: 8px; text-align: center; }
.post-stamp { font: 700 12px var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--stripe); border: 2px dashed var(--stripe); border-radius: 6px; padding: 3px 9px; transform: rotate(-3deg); }
.post-shape { width: 150px; height: 150px; background: var(--sign); border-radius: 12px; padding: 12px; box-shadow: inset 0 0 0 4px var(--ink); }
.post-shape path { fill: var(--ink); fill-rule: evenodd; }
.post h3 { margin: 0; font: 800 30px/1.05 var(--font-display); text-transform: uppercase; }
.post-where { font-size: 13px; color: var(--mute); }
.post p { margin: 0; color: #c4cacf; }
.post .facts { width: 100%; text-align: left; }
.post .city-art { border-radius: 12px; }

/* ===== Shop, gettoni, cartellini ===== */
.coin-pill { margin-left: 0; padding-left: 3px; gap: 6px; }
.coin-pill span:first-child { display: grid; }
header .xp-pill:first-of-type { margin-left: auto; }
.wallet { display: grid; grid-template-columns: 56px auto 1fr; gap: 12px; align-items: center; background: var(--asphalt-2); border-radius: 14px; padding: 14px; box-shadow: 0 0 0 1px #3c4248; }
.wallet b { display: block; font: 800 34px/1 var(--font-display); color: var(--stripe); font-variant-numeric: tabular-nums; }
.wallet > div > span { font: 600 12px var(--font-body); color: var(--mute); text-transform: uppercase; letter-spacing: .1em; }
.wallet p { margin: 0; font-size: 12.5px; color: #c4cacf; }
.shop-sec { display: grid; gap: 10px; }
.shop-sec h2 { margin: 6px 0 0; font: 800 22px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.sec-note { margin: -4px 0 0; font-size: 13px; color: var(--mute); }
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 10px; }
.sitem { display: grid; justify-items: center; align-content: start; gap: 4px; text-align: center; background: var(--asphalt-2); border-radius: 12px; padding: 12px 10px; box-shadow: 0 0 0 1px #3c4248; }
.sitem.own { box-shadow: 0 0 0 1.5px var(--green); }
.sart { height: 84px; display: grid; place-items: center; }
.sart svg.nando { filter: drop-shadow(0 4px 6px rgba(0,0,0,.4)); }
.sitem b { font: 800 16px/1.1 var(--font-display); text-transform: uppercase; letter-spacing: .02em; }
.sitem > span { font-size: 11.5px; color: var(--mute); line-height: 1.3; min-height: 30px; }
.sbtn { margin-top: 4px; width: 100%; border: 0; border-radius: 8px; padding: 9px 8px; font: 800 15px var(--font-display); letter-spacing: .04em; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 6px; cursor: pointer; background: var(--asphalt-3); color: var(--sign); }
.sbtn.buy { background: var(--stripe); color: var(--ink); box-shadow: 0 3px 0 #a9851c; }
.sbtn.buy:disabled { opacity: .45; cursor: default; box-shadow: none; }
.sbtn.on { background: var(--green); color: #fff; }
.sbtn.owned { cursor: default; color: var(--mute); background: transparent; box-shadow: inset 0 0 0 1px #4a5157; font-size: 12px; }
.shop-list { display: grid; gap: 10px; }
.prem { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; background: linear-gradient(135deg, #2c3a33, #24302a); border-radius: 12px; padding: 14px; box-shadow: inset 0 0 0 1.5px #5d8a6e; }
.prem b { display: block; font: 800 18px var(--font-display); text-transform: uppercase; color: #bfe8cf; }
.prem span { font-size: 12.5px; color: #c4cacf; }
.sbtn.soon { width: auto; flex-direction: column; gap: 1px; background: var(--sign); color: var(--ink); opacity: .7; cursor: default; padding: 8px 12px; }
.sbtn.soon small { font: 600 10px var(--font-body); text-transform: none; letter-spacing: 0; }
.theme-prev { width: 78px; height: 78px; display: grid; place-items: center; border-radius: 8px; padding: 10px; background: var(--sign); box-shadow: inset 0 0 0 4px var(--ink); }
.theme-prev svg { width: 100%; height: 100%; }
.theme-prev path { fill: var(--ink); fill-rule: evenodd; }
.theme-prev.th-notte { background: #17284a; box-shadow: inset 0 0 0 4px #fff; } .theme-prev.th-notte path { fill: #fff; }
.theme-prev.th-vintage { background: #efe0b8; box-shadow: inset 0 0 0 4px #5b3f22; } .theme-prev.th-vintage path { fill: #5b3f22; }
.theme-prev.th-autostrada { background: var(--green); box-shadow: inset 0 0 0 4px #fff; } .theme-prev.th-autostrada path { fill: #fff; }
.col-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(102px, 1fr)); gap: 8px; }
.coll { display: grid; justify-items: center; gap: 6px; padding: 12px 6px 9px; border-radius: 10px; border: 0; cursor: pointer; background: var(--asphalt-2); box-shadow: 0 0 0 1px #3c4248; }
.coll small { font: 600 10.5px var(--font-body); color: var(--mute); }
.coll.on { box-shadow: 0 0 0 2px var(--stripe); }
.coll.on small { color: var(--stripe); }
.coll.lock { opacity: .4; cursor: default; filter: grayscale(.8); }

/* il cartellino: un piccolo cartello stradale */
.emo { display: inline-block; font: 800 14px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; padding: 6px 9px 5px; border-radius: 5px; white-space: nowrap; }
.emo.big { font-size: 18px; padding: 8px 12px 7px; }
.emo.r-c { background: var(--sign); color: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); }
.emo.r-p { background: var(--blue); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 0 0 1.5px var(--blue); }
.emo.r-s { background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 0 0 1.5px var(--brown); }
.emo.r-a { background: var(--green); color: #fff; box-shadow: inset 0 0 0 2px #fff, 0 0 0 1.5px var(--green); }

/* cartellini nel duello */
.emo-bar { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; }
.emo-bar button { border: 0; background: none; padding: 2px; cursor: pointer; transition: transform .1s, opacity .2s; }
.emo-bar button:active { transform: scale(.92); }
.emo-bar button.sent { opacity: .35; }
.emo-say { position: absolute; z-index: 6; top: 54px; pointer-events: none; opacity: 0; transform: translateY(6px) scale(.8); transition: opacity .2s, transform .25s cubic-bezier(.2,.9,.3,1.4); filter: drop-shadow(0 6px 10px rgba(0,0,0,.5)); }
.emo-say.me { left: 4px; } .emo-say.op { right: 4px; }
.emo-say.show { opacity: 1; transform: none; }

/* temi del cartello della sfida */
body.th-notte .sign { background: linear-gradient(140deg, #1e3460, #17284a); }
body.th-notte .sign-inner { border-color: #fff; }
body.th-notte .shape path { fill: #fff; stroke: #fff; }
body.th-notte .plate, body.th-notte .plate-sub { color: #fff; }
body.th-notte .plate.hidden { color: #6f86b3; }
body.th-vintage .sign { background: linear-gradient(140deg, #f3e6c2, #e6d3a3 50%, #efe0b8); }
body.th-vintage .sign-inner { border-color: #5b3f22; }
body.th-vintage .shape path { fill: #5b3f22; stroke: #5b3f22; }
body.th-vintage .plate { color: #5b3f22; }
body.th-autostrada .sign { background: linear-gradient(140deg, #13894d, #0f7a43); }
body.th-autostrada .sign-inner { border-color: #fff; }
body.th-autostrada .shape path { fill: #fff; stroke: #fff; }
body.th-autostrada .plate, body.th-autostrada .plate-sub { color: #fff; }
body.th-autostrada .plate.hidden { color: #8fd1ae; }
nav.tabs ul { grid-template-columns: repeat(5, 1fr); }
nav.tabs a { font-size: 11px; }

/* ===== Intestazione: nome e immagine del giocatore sempre visibili, XP e gettoni sotto ===== */
.hd-right { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 0; }
.me-chip { display: flex; align-items: center; gap: 8px; max-width: 168px; background: var(--asphalt-2); border-radius: 999px; padding: 3px 12px 3px 3px; box-shadow: 0 0 0 1px #3c4248; text-decoration: none; color: var(--sign); }
.me-chip .av { width: 34px; height: 34px; border-radius: 50%; background: #f7f7f3; overflow: hidden; display: grid; align-items: end; justify-items: center; flex: none; box-shadow: inset 0 0 0 2px #fff; }
.me-chip .av svg { width: 34px; height: 40px; margin-top: 6px; }
.me-chip b { font: 700 14px/1 var(--font-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.me-chip.guest b { color: var(--mute); font-weight: 600; }
.hd-pills { display: flex; gap: 6px; }
.hd-pills .xp-pill { margin-left: 0; padding: 2px 10px 2px 2px; font-size: 13.5px; gap: 5px; }
.hd-pills .xp-pill i { width: 22px; height: 22px; font-size: 10px; }
body.playing .hd-pills { display: none; }
body.playing .hd-right { margin-left: auto; }
/* invito a creare l'account */
.ask-btns { display: grid; gap: 10px; }
.ask-btns .linkbtn { justify-self: center; }
.sheet .ask-p { margin: 0; color: #c4cacf; font-size: 15px; line-height: 1.45; }

/* ===== Collezione, Gran Tour ===== */
.seg.three { grid-template-columns: repeat(3, 1fr); }
.seg.three button { font-size: 14px; padding: 10px 4px; }
.shop-link { display: grid; gap: 3px; padding: 14px; border-radius: 14px; background: var(--asphalt-2); box-shadow: 0 0 0 1px #3c4248; text-decoration: none; color: var(--sign); }
.shop-link b { font: 800 18px var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.shop-link span { font-size: 13px; color: var(--mute); }

/* pulsante Gran Tour: cartello verde da autostrada */
.tour-btn { position: relative; display: grid; grid-template-columns: 52px 1fr 34px; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 14px; background: var(--green); color: #fff; text-decoration: none; box-shadow: inset 0 0 0 3px #fff, 0 5px 0 #0a5430, 0 14px 26px rgba(0,0,0,.4); margin: 3px; }
.tour-btn:active { transform: translateY(3px); box-shadow: inset 0 0 0 3px #fff, 0 2px 0 #0a5430, 0 6px 12px rgba(0,0,0,.4); }
.tb-ic { width: 52px; height: 52px; border-radius: 50%; background: #fff; color: var(--green); display: grid; place-items: center; }
.tb-ic svg { width: 30px; height: 30px; }
.tb-txt { display: grid; gap: 3px; min-width: 0; }
.tb-txt b { font: 800 26px/1 var(--font-display); text-transform: uppercase; letter-spacing: .05em; }
.tb-txt small { font: 600 12.5px/1.2 var(--font-body); opacity: .92; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tb-bar { height: 7px; border-radius: 4px; background: rgba(0,0,0,.32); overflow: hidden; margin-top: 2px; }
.tb-bar i { display: block; height: 100%; width: 0; background: var(--stripe); border-radius: 4px; }
.tb-go { width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.2); display: grid; place-items: center; }
.tb-go svg { width: 18px; height: 18px; }

/* Gran Tour: finestra a tutto schermo sopra l'app */
body.tour-open { overflow: hidden; }
#v-tour { position: fixed; inset: 0; z-index: 35; background: var(--asphalt); overflow-y: auto; overscroll-behavior: contain; padding: 0 16px calc(32px + env(safe-area-inset-bottom)); animation: tourin .3s ease-out; }
.tour-sheet { width: 100%; max-width: 470px; margin: 0 auto; display: grid; gap: 8px; }
.tour-bar { position: sticky; top: 0; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: calc(14px + env(safe-area-inset-top)) 0 12px; margin: 0 -16px; padding-left: 16px; padding-right: 16px; background: var(--asphalt); box-shadow: 0 1px 0 #3c4248; }
.tour-bar h2 { margin: 0; font: 800 26px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.tour-bar span { font: 700 15px var(--font-display); color: var(--stripe); }
.tour-x { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--asphalt-3); color: var(--sign); font-size: 28px; line-height: 1; text-decoration: none; box-shadow: 0 0 0 1px #3c4248; flex: none; }
#v-tour .road-scroll { max-height: none; overflow: visible; mask-image: none; margin: 0; padding: 12px 0 8px; }
@keyframes tourin { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }

/* ===== Gioca: tutto in una schermata, senza scorrere ===== */
#v-lobby { gap: 12px; }
#v-lobby .arena { grid-template-columns: auto 1fr; column-gap: 14px; row-gap: 2px; justify-items: start; align-items: center; padding: 14px 16px; }
#v-lobby .arena-art { grid-column: 1; grid-row: 1 / span 3; }
#v-lobby .arena-art svg, #v-lobby .arena-art img { width: var(--art, 120px); height: auto; }
#v-lobby .arena-k { grid-column: 2; grid-row: 1; }
#v-lobby .arena-name { grid-column: 2; grid-row: 2; font-size: clamp(28px, calc(var(--art, 120px) * .26), 50px); text-align: left; }
#v-lobby .arena-prog { grid-column: 2; grid-row: 3; margin-top: 4px; }
#v-lobby .arena-prog span { text-align: left; font-size: 12px; }
#v-lobby .nando-row { grid-template-columns: auto 1fr; align-items: center; }
#v-lobby .nando-wrap svg, #v-lobby .nando-wrap img { width: auto; height: max(64px, calc(var(--art, 120px) * .72)); }
#v-lobby .bubble { margin: 0; font-size: 13.5px; padding: 9px 12px; }
#v-lobby .btn-play { padding: 13px 16px 11px; }
#v-lobby .btn-play b { font-size: 38px; }
#v-lobby .mode-tile { padding: 10px; }
@media (max-height: 700px) {
  #v-lobby { gap: 9px; }
  #v-lobby .tour-btn { padding: 8px 12px; }
  #v-lobby .tb-txt b { font-size: 22px; }
  #v-lobby .btn-play b { font-size: 32px; }
  #v-lobby .arena { padding: 8px 12px; }
  #v-lobby .bubble { font-size: 13px; padding: 7px 10px; }
  #v-lobby .btn-play { padding: 9px 14px 8px; }
  #v-lobby .btn-play b { font-size: 28px; }
  #v-lobby .btn-play.done b { font-size: 26px; }
  #v-lobby .mode-tile { padding: 7px 9px; }
  .wrap { padding-top: 10px; }
}

/* "Come si gioca" in alto a destra, sopra il fumetto di Nando */
#v-lobby .say-col { display: grid; gap: 6px; justify-items: stretch; min-width: 0; }
#v-lobby #help2 { justify-self: end; padding: 2px 4px; font-size: 13px; }
#v-lobby #help2 .qm { width: 20px; height: 20px; font-size: 12px; }
body.lobby-fits { overflow: hidden; }
/* "Come si gioca" allineato in basso, sulla linea dei piedi di Nando */
#v-lobby .nando-row { align-items: stretch; }
#v-lobby .nando-wrap { align-self: end; }
#v-lobby .say-col { grid-template-rows: 1fr auto; align-self: stretch; gap: 4px; }
#v-lobby .say-col .bubble { align-self: center; }
#v-lobby #help2 { align-self: end; }

/* ===== Collezione: riepilogo, album, cartoline, cartellini ===== */
.sr { position: absolute; left: -9999px; }
.c-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.c-badge { display: grid; justify-items: center; gap: 6px; padding: 10px 6px 9px; border: 0; border-radius: 12px; cursor: pointer; color: #fff; font: inherit; box-shadow: inset 0 0 0 2.5px #fff, 0 6px 14px rgba(0,0,0,.35); }
.c-badge.cb-g { background: var(--green); --rc: #7ff0ae; }
.c-badge.cb-b { background: var(--brown); --rc: #f1c232; }
.c-badge.cb-u { background: var(--blue); --rc: #8fc2ff; }
.c-badge .ring { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--rc) calc(var(--p) * 1%), rgba(0,0,0,.3) 0); position: relative; }
.c-badge .ring::before { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: rgba(0,0,0,.38); }
.c-badge .ring b { position: relative; font: 800 20px var(--font-display); font-variant-numeric: tabular-nums; }
.c-badge .bl { font: 800 15px/1 var(--font-display); text-transform: uppercase; letter-spacing: .05em; display: grid; gap: 2px; justify-items: center; }
.c-badge .bl small { font: 600 11px var(--font-body); text-transform: none; letter-spacing: 0; opacity: .85; }
.c-goal { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--blue); color: #fff; font: 600 14px/1.3 var(--font-body); box-shadow: inset 0 0 0 2px #fff; }
.c-goal .gi { width: 30px; height: 30px; flex: none; border-radius: 50%; background: #fff; color: var(--blue); display: grid; place-items: center; font: 800 17px var(--font-display); }
.seg.four { grid-template-columns: repeat(4, 1fr); }
.seg.four button { font-size: 13.5px; padding: 10px 2px; letter-spacing: .03em; position: relative; }
.seg.mini { padding: 3px; }
.seg.mini button { font-size: 13px; padding: 8px 2px; }
.newdot { position: absolute; top: 5px; right: 3px; width: 9px; height: 9px; border-radius: 50%; background: #e63946; box-shadow: 0 0 0 2px var(--asphalt-2); }
.newdot[hidden] { display: none; }
.al-ctl { display: grid; gap: 8px; }
select.input { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, #8f979f 50%), linear-gradient(135deg, #8f979f 50%, transparent 50%); background-position: calc(100% - 20px) 55%, calc(100% - 14px) 55%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 36px; }
.al-sec, .cg { display: grid; gap: 8px; margin-top: 14px; }
.al-head { margin: 0; display: flex; align-items: baseline; gap: 10px; font: 800 22px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }
.al-head em { font: 700 15px var(--font-display); font-style: normal; color: var(--stripe); }
.al-done { margin-left: auto; font: 700 12px var(--font-body); color: var(--ink); background: var(--stripe); padding: 4px 8px; border-radius: 999px; }
.al-bar { height: 5px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; }
.al-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--green), #3bbf74); }
.al-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.al { display: grid; justify-items: center; align-content: start; gap: 5px; padding: 8px 6px 7px; border: 0; border-radius: 10px; background: var(--sign); color: var(--ink); cursor: pointer; font: inherit; box-shadow: inset 0 0 0 3px var(--ink); }
.al .al-art { width: 100%; aspect-ratio: 1; display: grid; place-items: center; }
.al .al-art svg { width: 76%; height: 76%; }
.al .al-art svg path { fill: var(--ink); fill-rule: evenodd; }
.al small { font: 700 12px/1.15 var(--font-body); text-align: center; overflow-wrap: anywhere; }
.al.won { box-shadow: inset 0 0 0 3px #0f7a43; }
.al.won .al-art svg path { fill: #0f7a43; }
.al.free { box-shadow: inset 0 0 0 3px #7fbf9b; }
.al.lost { background: #4a5056; color: #d3d8dc; box-shadow: none; }
.al.lost .al-art svg path { fill: #aab1b7; }
.al.mystery { background: var(--asphalt-2); color: var(--mute); box-shadow: inset 0 0 0 2px #3c4248; cursor: default; }
.al.mystery .al-art { font: 800 44px var(--font-display); color: #4a5157; }
.al.mystery small { font-weight: 600; }
.c-regions { display: grid; gap: 8px; margin-top: 4px; }
.rg-row { display: grid; grid-template-columns: 1fr 74px 40px; gap: 10px; align-items: center; padding: 9px 12px; border: 0; border-radius: 10px; background: var(--asphalt-2); color: var(--sign); font: inherit; cursor: pointer; text-align: left; box-shadow: 0 0 0 1px #33393e; }
.rg-row .rg-n { font: 600 14px var(--font-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rg-row .rg-bar { height: 6px; border-radius: 3px; background: rgba(255,255,255,.1); overflow: hidden; }
.rg-row .rg-bar i { display: block; height: 100%; background: var(--green); }
.rg-row .rg-c { font: 700 13px var(--font-display); color: var(--mute); text-align: right; font-variant-numeric: tabular-nums; }
.rg-row.done { box-shadow: 0 0 0 2px var(--stripe); }
.rg-row.done .rg-n { color: var(--stripe); }
.rg-row.done .rg-bar i { background: var(--stripe); }
.bigmap .reg.done { fill: rgba(241,194,50,.32); stroke: #d9a521; }
.bigmap .rl.done { fill: rgba(120,84,0,.7); }
/* cartoline: vere cartoline con francobollo e timbro */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pcard { position: relative; display: grid; justify-items: center; align-content: start; gap: 5px; padding: 12px 6px 8px; border-radius: 6px; border: 0; cursor: pointer; background: #f6f1e3; color: var(--ink); font: inherit; box-shadow: inset 0 0 0 2px #e1d9bf, 0 6px 12px rgba(0,0,0,.4); transform: rotate(-1.3deg); }
.pcard:nth-child(even) { transform: rotate(1.1deg); }
.pcard .pc-art { width: 100%; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; }
.pcard .pc-art svg { width: 76%; height: 76%; }
.pcard.got .pc-art svg { width: 100%; height: 100%; }
.pcard.arena { background: var(--brown); color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.7), 0 6px 12px rgba(0,0,0,.4); }
.pcard.arena .pc-art svg { width: 100%; height: 100%; }
.pcard small { font: 700 12px/1.15 var(--font-body); text-align: center; overflow-wrap: anywhere; }
.pc-new { position: absolute; bottom: -6px; right: -4px; z-index: 2; background: #e63946; color: #fff; font: 800 11px var(--font-display); font-style: normal; text-transform: uppercase; letter-spacing: .06em; padding: 3px 7px; border-radius: 999px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform: rotate(4deg); }
.pc-need { font: 600 10.5px var(--font-body); font-style: normal; color: var(--stripe); }
.pcard.lock { background: transparent; color: var(--mute); box-shadow: inset 0 0 0 2px #3c4248; transform: none; }
.pcard.lock .pc-art { opacity: .3; filter: grayscale(1); }
.pcard.lock .pc-art svg path { fill: #8d959c; }
/* cartellini */
.slots { display: grid; gap: 8px; }
.slot-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.slot { min-height: 54px; display: grid; place-items: center; border: 0; border-radius: 10px; background: var(--asphalt-2); box-shadow: inset 0 0 0 2px var(--stripe); cursor: pointer; padding: 4px; }
.slot .emo { font-size: 12px; padding: 5px 6px 4px; white-space: normal; text-align: center; }
.slot.empty { box-shadow: inset 0 0 0 2px #3c4248; color: #4a5157; font: 800 26px var(--font-display); cursor: default; }
.rar-c .al-head em { color: #e9e9e4; } .rar-p .al-head em { color: #8fc2ff; } .rar-s .al-head em { color: #e0a56a; } .rar-a .al-head em { color: #5fdc98; }
.coll.lock small { color: #aab1b7; }
.al.mystery .al-art { aspect-ratio: 1.6; }
.al.mystery { padding-bottom: 9px; }
#c-map:not([hidden]) { display: grid; gap: 14px; }
.c-regions { grid-template-columns: 1fr; }
.rg-row { width: 100%; }

/* premi della collezione */
.c-next { display: grid; gap: 6px; padding: 10px 12px; border-radius: 12px; background: var(--asphalt-2); box-shadow: 0 0 0 1px #3c4248; }
.c-next .nx-t { font: 600 13.5px/1.3 var(--font-body); color: #d3d8dc; }
.c-next .nx-t b { color: var(--stripe); font-weight: 700; }
.c-next .nx-bar { height: 7px; border-radius: 4px; background: rgba(255,255,255,.1); overflow: hidden; }
.c-next .nx-bar i { display: block; height: 100%; background: var(--stripe); border-radius: 4px; }
.al { position: relative; }
.al.star::after { content: "★"; position: absolute; top: 4px; right: 7px; color: #d9a521; font-size: 15px; line-height: 1; text-shadow: 0 0 0 #fff; }
.theme-prev.th-oro { background: linear-gradient(140deg, #f8e08a, #d9a521); box-shadow: inset 0 0 0 4px #3a2808; } .theme-prev.th-oro path { fill: #3a2808; }
body.th-oro .sign { background: linear-gradient(140deg, #f8e08a, #d9a521 50%, #f1c232); }
body.th-oro .sign-inner { border-color: #3a2808; }
body.th-oro .shape path { fill: #3a2808; stroke: #3a2808; }
body.th-oro .plate, body.th-oro .plate-sub { color: #3a2808; }
body.th-oro .plate.hidden { color: #8a6a1a; }

/* ===== Sfida a 5 ===== */
.five-inbox { display: grid; gap: 6px; }
.five-inbox[hidden] { display: none; }
.five-inbox .fi { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px 8px 12px; border-radius: 12px; background: var(--blue); color: #fff; box-shadow: inset 0 0 0 2px #fff; font: 600 13.5px/1.25 var(--font-body); }
.five-inbox .fi .btn { padding: 8px 14px; font-size: 15px; flex: none; }
.five-inbox small { color: var(--mute); text-align: center; }
.f5-card { display: grid; justify-items: center; gap: 8px; padding: 18px 14px; border-radius: 16px; background: var(--asphalt-2); box-shadow: 0 0 0 1px #3c4248; text-align: center; }
.f5-badge { font: 800 34px/1 var(--font-display); text-transform: uppercase; letter-spacing: .06em; padding: 8px 16px 6px; border-radius: 8px; background: var(--sign); color: var(--ink); box-shadow: inset 0 0 0 3px var(--ink); }
.f5-badge.W { background: var(--green); color: #fff; box-shadow: inset 0 0 0 3px #fff; }
.f5-badge.L { background: #b51d2b; color: #fff; box-shadow: inset 0 0 0 3px #fff; }
.f5-score { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: center; width: 100%; }
.f5-score div { display: grid; gap: 2px; justify-items: center; min-width: 0; }
.f5-score b { font: 800 54px/1 var(--font-display); font-variant-numeric: tabular-nums; }
.f5-score span { font-size: 12.5px; color: var(--mute); max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f5-score em { font: 800 30px var(--font-display); color: var(--mute); font-style: normal; }
.f5-line { margin: 0; font-size: 13.5px; color: #c4cacf; }
.f5-rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.f5-rows li { display: grid; grid-template-columns: 1fr 54px 54px; gap: 8px; align-items: center; padding: 9px 12px; border-radius: 10px; background: var(--asphalt-2); box-shadow: 0 0 0 1px #33393e; }
.f5-rows b { font: 700 15px var(--font-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f5-rows span { text-align: center; font: 800 15px var(--font-display); padding: 4px 0; border-radius: 6px; background: var(--asphalt-3); color: var(--mute); }
.f5-rows span.ok { background: rgba(19,146,79,.25); color: #7ff0ae; }
.f5-rows span.ko { background: rgba(181,29,43,.25); color: #ff9aa3; }
.f5-coins { display: grid; gap: 2px; justify-items: center; }
.f5-coins span { font: 800 22px var(--font-display); color: var(--stripe); }
.f5-coins small { font-size: 12.5px; color: var(--mute); text-align: center; }
.f5-invite { display: grid; gap: 10px; }
.f5-hint { margin: 0; font-size: 13.5px; color: #c4cacf; }
.f5-btns { display: grid; gap: 8px; }
.f5-btns .btn { padding: 14px 18px; }
.f5-actions { display: grid; gap: 10px; }
.f5-nick .row { display: flex; gap: 8px; }
.f5-nick .btn { padding: 0 18px; }

/* cartoline disegnate da Tom: l'immagine è tutta la carta */
.pcard.got { padding: 0; background: transparent; border-radius: 10px; box-shadow: 0 6px 12px rgba(0,0,0,.45); }
.pcard.got .pc-art { overflow: visible; }
.pcard.got .pc-art svg { display: block; border-radius: 10px; }
.pcard.maestro.got { box-shadow: 0 0 18px rgba(241,194,50,.55); }
.pcard.maestro.lock .pc-art b.q { font: 800 56px var(--font-display); color: #4a5157; }
.post-card { width: min(300px, 100%); border-radius: 12px; box-shadow: 0 10px 24px rgba(0,0,0,.5); }
.post-card svg { display: block; width: 100%; height: auto; border-radius: 12px; }
/* "Che Italia!": cartellino esclusivo con bordo oro e stella */
.emo.top { box-shadow: inset 0 0 0 2px #fff, inset 0 0 0 4px var(--stripe), 0 0 0 1.5px var(--green); padding-left: 22px; position: relative; }
.emo.top::before { content: ""; position: absolute; left: 7px; top: 50%; width: 9px; height: 9px; background: var(--stripe); transform: translateY(-50%); clip-path: polygon(50% 0, 62% 36%, 100% 38%, 70% 60%, 80% 100%, 50% 76%, 20% 100%, 30% 60%, 0 38%, 38% 36%); }
/* Cartello Oro (ritocco di Tom): oro piatto, sagoma e testi pieni, doppio bordo */
body.th-oro .sign { background: #f1c232; box-shadow: inset 0 0 0 3px #7a5a0c; }
body.th-oro .sign-inner { border-color: #111214; }
body.th-oro .shape path { fill: #111214; stroke: #111214; }
body.th-oro .plate, body.th-oro .plate-sub { color: #111214; }
body.th-oro .plate.hidden { color: #6b4e0a; }
.theme-prev.th-oro { background: #f1c232; box-shadow: inset 0 0 0 4px #111214; } .theme-prev.th-oro path { fill: #111214; }

/* ===== Intestazione: sotto COMUNANDO gli XP e i gettoni, a destra il giocatore ===== */
.hd-left { display: grid; gap: 5px; justify-items: start; min-width: 0; }
.hd-left .logo { display: inline-flex; }
.hd-left .hd-pills { display: flex; gap: 6px; }
.hd-right { margin-left: auto; flex-direction: row; }
body:not(.playing) .logo-sub { display: none; }
body.playing .hd-left .logo-sub { display: block; }

/* ===== Collezione: tutta in una schermata ===== */
body.collect-fits { overflow: hidden; }
#v-collect { gap: 8px; overflow: hidden; }
#v-collect .c-tabs { flex: none; }
.c-tabs button { display: grid; gap: 1px; justify-items: center; padding: 6px 2px 5px; }
.c-tabs button span { font: 700 14px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.c-tabs button small { font: 600 11px/1 var(--font-body); opacity: .8; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.c-info { flex: none; display: grid; border-radius: 12px; background: var(--blue); color: #fff; box-shadow: inset 0 0 0 2px #fff; overflow: hidden; }
.c-info .c-goal { background: none; box-shadow: none; border-radius: 0; padding: 7px 10px; font: 600 13px/1.25 var(--font-body); }
.c-info .c-goal .gi { width: 24px; height: 24px; font-size: 14px; }
.c-info .c-next { background: rgba(0,0,0,.18); box-shadow: none; border-radius: 0; padding: 6px 10px 7px; gap: 4px; }
.c-info .c-next .nx-t { color: #fff; font: 600 12.5px/1.25 var(--font-body); }
.c-info .c-next .nx-t b { color: var(--stripe); }
.c-info .c-next .nx-bar { height: 5px; background: rgba(0,0,0,.3); }
.c-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.c-body > div { min-height: 0; }
.c-body > div:not([hidden]) { flex: 1; display: flex; flex-direction: column; gap: 8px; }
#c-map:not([hidden]) { display: flex; }
#c-map .italy-card { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 6px; }
#c-map .mapbox { flex: 1; min-height: 0; }
#c-map .bigmap { height: 100%; }
#c-map .mapstat { display: none; }
#c-map .legend { flex: none; font-size: 11.5px; gap: 3px 10px; }
.mapctl { top: 8px; right: 8px; gap: 5px; }
.mapctl button { width: 36px; height: 36px; font-size: 20px; }
#c-album .al-ctl { flex: none; display: grid; grid-template-columns: 1fr 1.25fr; gap: 8px; align-items: center; }
#c-album .al-ctl select.input { height: 40px; padding-top: 0; padding-bottom: 0; font-size: 14px; }
#c-album .sec-note, #c-cards .sec-note { flex: none; margin: 0; font-size: 12px; line-height: 1.3; }
#c-album-body, #c-cards-body, #c-emo-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-bottom: 8px; scrollbar-width: none; }
#c-album-body::-webkit-scrollbar, #c-cards-body::-webkit-scrollbar, #c-emo-body::-webkit-scrollbar { display: none; }
#c-album-body .al-sec:first-child, #c-cards-body .cg:first-child { margin-top: 0; }

/* targhe con i numeri = schede della Collezione */
.c-sum { flex: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.cb { position: relative; display: grid; justify-items: center; gap: 4px; padding: 7px 4px 6px; border: 0; border-radius: 12px; cursor: pointer; color: #fff; font: inherit; opacity: .68; box-shadow: inset 0 0 0 2.5px #fff, 0 4px 10px rgba(0,0,0,.3); transition: opacity .15s; }
.cb[aria-pressed="true"] { opacity: 1; box-shadow: inset 0 0 0 2.5px #fff, 0 0 0 3px var(--stripe), 0 6px 14px rgba(0,0,0,.4); }
.cb.cb-g { background: var(--green); --rc: #7ff0ae; }
.cb.cb-b { background: var(--brown); --rc: #f1c232; }
.cb.cb-u { background: var(--blue); --rc: #8fc2ff; }
.cb .ring { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--rc) calc(var(--p, 0) * 1%), rgba(0,0,0,.3) 0); position: relative; }
.cb .ring::before { content: ""; position: absolute; inset: 4.5px; border-radius: 50%; background: rgba(0,0,0,.4); }
.cb .ring b { position: relative; font: 800 18px var(--font-display); font-variant-numeric: tabular-nums; }
.cb .bl { display: grid; gap: 1px; justify-items: center; font: 800 14px/1 var(--font-display); text-transform: uppercase; letter-spacing: .05em; }
.cb .bl small { font: 600 10.5px var(--font-body); text-transform: none; letter-spacing: 0; opacity: .85; }
.c-sub { flex: none; }
.c-sub[hidden] { display: none; }
.seg.two { grid-template-columns: 1fr 1fr; }
.c-sub button small { font: 600 11px var(--font-body); text-transform: none; letter-spacing: 0; opacity: .75; margin-left: 4px; }

/* ===== Shop: portafoglio, schede, oggetti più chiari ===== */
.shop-sec[hidden] { display: none; }
body.shop-fits { overflow: hidden; }
#v-shop { gap: 8px; overflow: hidden; }
.wallet2 { flex: none; display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 14px; background: linear-gradient(135deg, #3a3320, #2a2e32 60%); box-shadow: inset 0 0 0 1.5px #6b5a22, 0 6px 14px rgba(0,0,0,.3); }
.wallet2 .wallet-coin { width: 48px; height: 48px; }
.wallet2 .w-txt { display: grid; gap: 1px; }
.wallet2 .w-txt b { font: 800 34px/1 var(--font-display); color: var(--stripe); font-variant-numeric: tabular-nums; }
.wallet2 .w-txt span { font: 600 11.5px var(--font-body); color: var(--mute); text-transform: uppercase; letter-spacing: .1em; }
.w-info { border: 0; border-radius: 999px; padding: 8px 12px; background: rgba(255,255,255,.1); color: #fff; font: 700 12.5px var(--font-body); cursor: pointer; }
.sh-tabs { flex: none; }
.sh-tabs button { display: grid; gap: 1px; justify-items: center; padding: 6px 2px 5px; }
.sh-tabs button span { font: 700 14px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.sh-tabs button small { font: 600 10.5px/1 var(--font-body); opacity: .8; text-transform: none; letter-spacing: 0; }
.sh-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding-bottom: 8px; }
.sh-body::-webkit-scrollbar { display: none; }
.sh-body > div { display: grid; gap: 10px; align-content: start; }
.sh-body > div[hidden] { display: none; }
.sh-body .sec-note { margin: 0; font-size: 12.5px; }
.shop-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
.sitem { position: relative; gap: 6px; padding: 14px 10px 10px; border-radius: 14px; background: linear-gradient(180deg, #31363b, #272b2f); box-shadow: 0 0 0 1px #3c4248, 0 8px 16px rgba(0,0,0,.3); }
.sitem.own { box-shadow: 0 0 0 2px var(--green), 0 8px 16px rgba(0,0,0,.3); }
.sitem .sart { height: 96px; }
.sitem .theme-prev { width: 92px; height: 92px; }
.sitem b { font: 800 17px/1.1 var(--font-display); }
.sitem > span { min-height: 0; font-size: 12px; }
.s-tag { position: absolute; top: 8px; left: 8px; font: 800 10px var(--font-display); font-style: normal; text-transform: uppercase; letter-spacing: .08em; padding: 3px 7px 2px; border-radius: 4px; }
.s-tag.r-c { background: var(--sign); color: var(--ink); } .s-tag.r-p { background: var(--blue); color: #fff; } .s-tag.r-s { background: var(--brown); color: #fff; } .s-tag.r-a { background: var(--green); color: #fff; }
.s-own { position: absolute; top: 8px; right: 8px; font: 800 11px var(--font-display); font-style: normal; text-transform: uppercase; letter-spacing: .06em; padding: 3px 7px 2px; border-radius: 4px; background: var(--green); color: #fff; }
.sitem .sbtn { margin-top: 6px; padding: 10px 8px; font-size: 17px; }
.sbtn.buy { gap: 7px; }
.short { width: 100%; display: grid; gap: 3px; justify-items: center; margin-top: 6px; }
.sbtn.need { width: 100%; background: #3a4045; color: #8f979f; box-shadow: none; gap: 7px; font-size: 17px; padding: 10px 8px; cursor: default; opacity: .9; }
.short small { font: 700 11.5px var(--font-body); color: var(--stripe); }
.s-bar { width: 100%; height: 4px; border-radius: 2px; background: rgba(255,255,255,.1); overflow: hidden; }
.s-bar i { display: block; height: 100%; background: var(--stripe); }
.prem { grid-template-columns: 1fr; gap: 10px; padding: 14px; border-radius: 14px; }
.prem.plus { background: linear-gradient(135deg, #2e4a3a, #1f3a2c); box-shadow: inset 0 0 0 2px #7fe0a8, 0 8px 16px rgba(0,0,0,.3); }
.prem .prem-t { display: grid; gap: 6px; }
.prem ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.prem li { font-size: 13.5px; color: #e4f4ea; padding-left: 22px; position: relative; }
.prem li::before { content: "✓"; position: absolute; left: 2px; color: #7fe0a8; font-weight: 800; }
.prem .sbtn.soon { width: 100%; flex-direction: row; justify-content: space-between; opacity: .85; padding: 11px 14px; }
.buybox { display: grid; gap: 10px; justify-items: center; text-align: center; }
.buybox .sart.big { height: 120px; display: grid; place-items: center; }
.buybox .sart.big .theme-prev { width: 110px; height: 110px; }
.buybox h3 { margin: 0; font: 800 28px/1.05 var(--font-display); text-transform: uppercase; }
.buybox p { margin: 0; color: #c4cacf; font-size: 14px; }
.buy-sum { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; padding: 12px; border-radius: 12px; background: rgba(0,0,0,.25); text-align: left; }
.buy-sum span { color: var(--mute); font-size: 13.5px; }
.buy-sum b { font: 800 18px var(--font-display); display: inline-flex; align-items: center; gap: 6px; justify-self: end; font-variant-numeric: tabular-nums; }
.buy-btns { width: 100%; display: grid; gap: 8px; }
.earn { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.earn li { display: grid; gap: 1px; padding: 9px 12px; border-radius: 10px; background: rgba(0,0,0,.22); }
.earn b { font: 800 16px var(--font-display); text-transform: uppercase; letter-spacing: .03em; color: var(--stripe); }
.earn span { font-size: 13px; color: #c4cacf; }
.sbtn.buy { flex-direction: row; }
.sbtn.buy svg.coin { flex: none; }
.buy-btns .btn { padding: 15px 18px; }

/* Shop: una sola lista che scorre; portafoglio e schede restano fissi */
.sh-body { position: relative; gap: 0; display: block; }
.sh-body > div { display: grid; gap: 10px; align-content: start; margin-bottom: 18px; }
.sh-h { margin: 0; font: 800 24px/1 var(--font-display); text-transform: uppercase; letter-spacing: .03em; }

/* mappa della Collezione: comandi più discreti; condividi in basso, quasi nascosto */
.mapctl { top: 8px; right: 8px; gap: 5px; }
.mapctl button { width: 32px; height: 32px; border-radius: 50%; background: rgba(20,22,25,.5); color: #fff; border: 1px solid rgba(255,255,255,.2); box-shadow: none; font-size: 18px; opacity: .8; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.mapctl button:hover, .mapctl button:active { opacity: 1; background: rgba(20,22,25,.75); }
.mapctl button svg { width: 16px; height: 16px; }
.legend-row { flex: none; display: flex; align-items: center; gap: 4px; }
.legend-row .legend { flex: 1; min-width: 0; }
.share-quiet { flex: none; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: var(--mute); display: grid; place-items: center; cursor: pointer; opacity: .75; }
.share-quiet svg { width: 17px; height: 17px; }
.share-quiet:hover, .share-quiet:active { opacity: 1; color: var(--sign); }
#c-map .legend-row .legend { flex: 1 1 auto; min-width: 0; font-size: 11px; gap: 3px 8px; justify-content: flex-start; }
#c-map .legend-row .legend i { width: 9px; height: 9px; }
.legend-row { display: grid; grid-template-columns: minmax(0, 1fr) 30px; gap: 4px; align-items: center; }
#c-map .legend-row .legend { width: 100%; }

/* condivisione: dentro la mappa, in basso a destra, in un cerchietto come gli altri comandi */
.map-share { position: absolute; right: 8px; bottom: 8px; z-index: 2; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(20,22,25,.5); color: #fff; display: grid; place-items: center; cursor: pointer; opacity: .8; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.map-share svg { width: 16px; height: 16px; }
.map-share:hover, .map-share:active { opacity: 1; background: rgba(20,22,25,.75); }
.maphint { right: 52px; }
.legend-row { grid-template-columns: minmax(0, 1fr); }

/* suggerimento sotto la mappa, insieme alla legenda */
.maphint-out { flex: none; margin: 0; text-align: center; font-size: 11px; color: var(--mute); }
#c-map .legend-row .legend { justify-content: center; }

/* ===== Comune del giorno: Nando, fumetto, Gioca, serie di giorni ===== */
.day { display: grid; grid-template-columns: 138px 1fr; gap: 8px 12px; align-items: stretch; margin: 2px 0; }
.day-frame { display: grid; align-items: end; justify-items: center; overflow: hidden; border-radius: 14px; background: #17191b; box-shadow: inset 0 0 0 2px #3c4248; min-height: 150px; }
.day-frame { grid-template-columns: minmax(0, 1fr); }
.day-frame .nando-wrap { width: 100%; display: grid; justify-items: center; }
/* Nando più grande della cornice: i margini trasparenti dell'immagine escono e vengono tagliati, così testa e spalle riempiono lo spazio */
#v-lobby .day-frame .nando-wrap svg, #v-lobby .day-frame .nando-wrap img { display: block; width: 150px; max-width: none; height: auto; max-height: none; margin-top: 2px; }
.day-main { display: grid; gap: 8px; align-content: space-between; min-width: 0; }
.day-top { display: flex; gap: 6px; align-items: flex-start; }
#v-lobby .day-top .bubble { flex: 1; margin: 0; font-size: 13.5px; padding: 9px 11px; }
#v-lobby #help2.day-help { padding: 0; justify-self: auto; align-self: flex-start; font-size: 13px; }
.day-help { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 0; background: var(--brown); color: #fff; box-shadow: inset 0 0 0 1.5px #fff; font: 800 13px var(--font-display); cursor: pointer; }
.day-text { margin: 0; font: 500 13.5px/1.3 var(--font-body); color: #d3d8dc; }
.day-text b { color: #fff; font-weight: 700; }
.day .btn-play { padding: 12px 14px 10px; }
.day .btn-play b { font-size: 34px; }
.day .btn-play.done b { font-size: 24px; }
.day-foot { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; font: 600 12.5px var(--font-body); color: #c4cacf; }
.day-streak { display: inline-flex; align-items: center; gap: 5px; }
@media (max-height: 700px) {
  .day-frame { min-height: 120px; } #v-lobby .day-frame .nando-wrap svg, #v-lobby .day-frame .nando-wrap img { width: 120px; }
  .day .btn-play b { font-size: 28px; } .day-text { font-size: 12.5px; }
}
#v-lobby .day .btn-play.done b { font-size: 28px; letter-spacing: .05em; }

/* titolo "Comune del giorno" tra il fumetto e Gioca */
.day-text { display: grid; gap: 2px; text-align: right; padding-right: 2px; }
.day-title { font: 800 23px/1 var(--font-display); text-transform: uppercase; letter-spacing: .04em; color: #fff; }
.day-sub { font: 500 12.5px/1.2 var(--font-body); color: var(--mute); }

/* "?" nell'angolo del riquadro di Nando, serie di giorni in evidenza */
.day-frame { position: relative; }
#v-lobby #help2.day-help { position: absolute; top: 8px; right: 8px; z-index: 2; width: 26px; height: 26px; background: rgba(0,0,0,.35); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.7); font-size: 14px; align-self: auto; }
.day-foot { align-items: center; }
.day-streak { gap: 8px; padding: 3px 12px 3px 8px; border-radius: 999px; background: linear-gradient(135deg, rgba(255,138,43,.28), rgba(255,138,43,.1)); box-shadow: inset 0 0 0 1.5px #ff8a2b; color: #fff; font: 700 13.5px var(--font-body); }
.day-streak .flame { flex: none; filter: drop-shadow(0 0 5px rgba(255,138,43,.85)); }
.day-streak .st-t b { font: 800 20px var(--font-display); color: #ffb04d; margin-right: 1px; }
.day-streak.off { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1.5px #4a5157; color: var(--mute); }
.day-streak.off .flame { filter: grayscale(1) opacity(.55); }

/* "?" nell'angolo in alto a sinistra del riquadro di Nando */
#v-lobby #help2.day-help { right: auto; left: 8px; }
/* fiammella animata: danza, si allunga e il bagliore pulsa (ferma se la serie è zero o se l'utente preferisce meno movimento) */
@keyframes flame-out { 0%, 100% { transform: scale(1, 1) rotate(-1.5deg); } 25% { transform: scale(1.05, .95) rotate(1.5deg); } 50% { transform: scale(.96, 1.08) rotate(-1deg); } 75% { transform: scale(1.04, .97) rotate(2deg); } }
@keyframes flame-in { 0%, 100% { transform: scale(1, 1); } 30% { transform: scale(.88, 1.14); } 65% { transform: scale(1.1, .92); } }
@keyframes flame-glow { 0%, 100% { filter: drop-shadow(0 0 4px rgba(255,138,43,.7)); } 50% { filter: drop-shadow(0 0 10px rgba(255,176,77,1)); } }
.day-streak:not(.off) .flame { animation: flame-glow 1.7s ease-in-out infinite; overflow: visible; }
.day-streak:not(.off) .f-out { transform-box: fill-box; transform-origin: 50% 100%; animation: flame-out 1.35s ease-in-out infinite; }
.day-streak:not(.off) .f-in { transform-box: fill-box; transform-origin: 50% 100%; animation: flame-in .9s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .day-streak .flame, .day-streak .f-out, .day-streak .f-in { animation: none !important; } }

/* fiammella appoggiata sulla riga del testo (il bordo basso della fiamma sta sulla linea di base) */
.day-streak { align-items: baseline; padding: 5px 13px 5px 10px; gap: 7px; }
.day-streak .flame { position: relative; top: 1px; }
.day-streak .st-t { line-height: 1; }
.day-streak .st-t b { line-height: 1; }

/* ===== Partita in una sola schermata ===== */
body.game-fits { overflow: hidden; }
#v-game { overflow: hidden; gap: 8px; }
#v-game > * { flex: none; }
#v-game .f5-steps { order: 0; } #v-game .signpost { order: 1; } #v-game .guess-box { order: 2; } #v-game .msg { order: 3; } #v-game .riddle { order: 4; } #v-game .hints { order: 5; } #v-game .hintnote { order: 6; }
#v-game .guesses { order: 7; flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; justify-content: flex-start; }
#v-game .guesses::-webkit-scrollbar { display: none; }
#v-game .msg { margin-top: 0; min-height: 0; } #v-game .msg:empty { display: none; }
#v-game .signpost { align-self: center; width: min(100%, calc(var(--gh, 700px) * .4)); padding-bottom: 14px; }
#v-game .signpost::before, #v-game .signpost::after { height: 24px; }
#v-game .sign-inner { padding: 10px 12px 6px; gap: 2px; border-width: 4px; }
#v-game .shape-wrap { max-width: 100%; }
#v-game .plate { font-size: 24px; min-height: 28px; }
#v-game .plate-sub { font-size: 11.5px; min-height: 14px; }
#v-game .riddle { padding: 8px 12px; gap: 10px; }
#v-game .riddle p { font-size: 13.5px; line-height: 1.3; }
#v-game .riddle small { display: none; }
#v-game .riddle .q { width: 24px; height: 24px; font-size: 16px; flex: none; }
#v-game .hint { padding: 6px 10px; }
#v-game .hintnote { margin: 0; font-size: 12px; }
#v-game .suggest { top: calc(100% + 6px); bottom: auto; max-height: min(240px, 34vh); z-index: 30; }
#v-game .guess-box { padding-bottom: 2px; }
/* tastiera aperta: la sagoma resta com'è, si fa spazio nascondendo l'elenco dei tentativi; se serve si scorre */
body.kb-open #v-game { overflow-y: auto; overscroll-behavior: contain; }
body.kb-open #v-game .guesses, body.kb-open #v-game .f5-steps, body.kb-open #v-game .hintnote { display: none; }
body.kb-open #v-game .riddle small { display: none; }
/* tastiera aperta: indovinello e indizi (regione, provincia) salgono sopra la sagoma e il campo di testo, così la tastiera non li copre */
body.kb-open #v-game .riddle { order: 1; }
body.kb-open #v-game .hints { order: 2; }
body.kb-open #v-game .signpost { order: 3; }
body.kb-open #v-game .guess-box { order: 4; }
body.kb-open #v-game .msg { order: 5; }
/* la sagoma si rimpicciolisce per far stare tutto nello spazio rimasto sopra la tastiera (indovinello + sagoma + campo di testo): prima usciva dallo schermo */
body.kb-open #v-game .signpost { width: clamp(110px, calc((var(--kbh, 520px) - 185px) * .86), 300px); }
body.kb-open #v-game:has(.hints:not([hidden])) .signpost { width: clamp(110px, calc((var(--kbh, 520px) - 245px) * .86), 300px); }
/* e i suggerimenti si aprono verso l'alto: sotto il campo c'è la tastiera */
body.kb-open #v-game .suggest { top: auto; bottom: calc(100% + 6px); max-height: min(150px, 30vh); }   /* quattro righe al massimo: coprono la sagoma, non l'indovinello */
/* tappe della Sfida a 5 */
.f5-steps { display: flex; align-items: center; justify-content: center; padding: 0 22px; }
.f5-steps[hidden] { display: none; }
.f5-steps i { flex: 1; height: 3px; background: #3c4248; }
.f5-steps .s { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: #2a2e32; box-shadow: inset 0 0 0 2px #4a5157; color: #8f979f; font: 800 14px var(--font-display); flex: none; }
.f5-steps .s.ok { background: #13924f; box-shadow: none; color: #fff; }
.f5-steps .s.ko { background: #b51d2b; box-shadow: none; color: #fff; }
.f5-steps .s.cur { background: var(--stripe); color: var(--ink); box-shadow: 0 0 0 4px rgba(241,194,50,.3); }

/* ===== Foglio di fine partita: sale dal basso ===== */
.end.show { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; margin: 0 auto; width: min(470px, 100%); max-height: 80vh; max-height: 80dvh; overflow-y: auto; border-radius: 20px 20px 0 0; padding: 10px 16px calc(16px + env(safe-area-inset-bottom)); gap: 12px; box-shadow: 0 -14px 34px rgba(0,0,0,.6); animation: sheetin .4s cubic-bezier(.2,.9,.3,1) both; transition: transform .3s ease; }
@keyframes sheetin { from { transform: translateY(100%); } to { transform: none; } }
.end.collapsed { transform: translateY(calc(100% - 86px)); overflow: hidden; }
.end .grab { display: block; width: 52px; height: 6px; border: 0; padding: 0; border-radius: 3px; background: #4a5157; margin: 2px auto 0; cursor: pointer; position: relative; z-index: 2; }
.end .grab::after { content: ""; position: absolute; inset: -12px -20px; }
.end .endmap, .end .bubble-wrap, .end #copy { display: none; }
.end .actions { display: grid; gap: 8px; }
.end .actions #again { order: -1; }
.end #share-img { background: none; box-shadow: none; color: var(--mute); font: 600 13px var(--font-body); text-transform: none; letter-spacing: 0; padding: 4px; }
.end.five .facts-wrap, .end.five .xpgain, .end.five #end-join, .end.five #share-img { display: none; }
.end.five .end-head h2 { font-size: 26px; }

/* ===== Ingresso in partita ("Pronta?") ===== */
.entry { position: fixed; inset: 0; z-index: 60; display: grid; align-content: center; justify-items: center; gap: 12px; padding: 20px 22px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; background: radial-gradient(120% 80% at 50% 22%, #2d3237, #1b1d20); animation: viewin .25s ease-out; }
.entry[hidden] { display: none; }
.entry > * { width: min(100%, 420px); box-sizing: border-box; }
.entry > .en-sign, .entry > .en-x { width: auto; }
.en-x { position: absolute; top: calc(14px + env(safe-area-inset-top)); left: 14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--asphalt-3); color: var(--sign); font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 0 0 1px #3c4248; }
.en-sign { width: 170px; height: 170px; border-radius: 16px; background: linear-gradient(140deg, #fdfdfb, #ecece7 50%, #f8f8f4); box-shadow: inset 0 0 0 5px var(--ink), inset 0 0 0 9px #f4f4f0, 0 14px 28px rgba(0,0,0,.55); display: grid; place-items: center; transform: rotate(-3deg); animation: signdrop .7s cubic-bezier(.2,.9,.3,1.15) both; }
.en-sign span { font: 800 110px/1 var(--font-display); color: #b9bbb6; }
@keyframes signdrop { from { transform: translateY(-130%) rotate(-14deg); opacity: 0; } 60% { opacity: 1; } to { transform: rotate(-3deg); opacity: 1; } }
.entry h2 { margin: 6px 0 0; font: 800 38px/1 var(--font-display); text-transform: uppercase; color: #fff; text-align: center; }
.en-s { margin: -4px 0 0; text-align: center; color: var(--mute); font: 500 14px var(--font-body); }
.en-l { list-style: none; margin: 4px 0; padding: 0; display: grid; gap: 7px; }
.en-l li { padding: 10px 12px 10px 36px; border-radius: 10px; background: rgba(0,0,0,.25); font: 500 14px/1.3 var(--font-body); color: #d3d8dc; position: relative; }
.en-l li::before { content: "✓"; position: absolute; left: 13px; color: #7fe0a8; font-weight: 800; }
.en-st { display: flex; justify-content: space-between; align-items: center; }
.en-st[hidden] { display: none; }
.en-warn { font: 600 13px var(--font-body); color: #c4cacf; }
.entry .btn.big { margin-top: 4px; padding: 18px; font-size: 32px; letter-spacing: .1em; }

/* ===== Sfida a 5: scelta ===== */
#v-fivestart { gap: 12px; }
.fs-t { margin: 4px 0 0; font: 800 36px/1 var(--font-display); text-transform: uppercase; }
.fs-s { margin: -6px 0 0; color: var(--mute); font-size: 14px; }
.fs-card { display: grid; gap: 10px; padding: 14px; border-radius: 14px; background: var(--asphalt-2); box-shadow: 0 0 0 1px #3c4248; }
.fs-card b { font: 800 24px/1 var(--font-display); text-transform: uppercase; }
.fs-card span { font-size: 13.5px; color: #c4cacf; }
.fs-card.friend { background: linear-gradient(135deg, #1b3a64, #15294a); box-shadow: inset 0 0 0 2px #fff; }
.fs-card .btn { width: 100%; padding: 15px; }
.fs-card .btn:disabled { opacity: .4; }
.fs-note { margin: 0; font-size: 12.5px; color: #c9d6ea; }
.fs-note:empty { display: none; }
.fs-note a { color: var(--stripe); }
.fs-inbox { display: grid; gap: 8px; }
.fs-inbox .note { margin: 0; }
.fs-inbox .note[hidden] { display: none; }

#v-game .signpost { width: min(100%, calc(var(--gh, 700px) * .31)); }
.entry > .en-sign { width: 170px; flex: none; }
.entry > .en-x { width: 44px; }
.end #again { background: var(--stripe); color: var(--ink); box-shadow: 0 3px 0 #a9851c; padding: 15px; font-size: 20px; }

/* sito di prova su Netlify: spazio per l'etichetta in basso, sotto il menu */
.nf-badge nav.tabs { padding-bottom: calc(54px + env(safe-area-inset-bottom)); }
