/* Notte al Circoletto — a shared visual language for the three bot entrances. */
:root{color-scheme:dark;--ink:#f5eddd;--muted:#b5b8cc;--paper:#101527;--gold:#e9c88e;--line:#ffffff16;--green:#46bdb1;--deep:#090e1d;--coral:#ee8b86}
body{background:radial-gradient(ellipse at 90% 0,#26334a80,transparent 50%),radial-gradient(ellipse at 0 70%,#3b234a40,transparent 60%),#090e1d;color:var(--ink);padding-bottom:100px}
body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.25;background-image:radial-gradient(#f6daa4 1px,transparent 1px);background-size:89px 127px;z-index:-1}
.shell{max-width:1180px;padding:0 32px}header{border-color:var(--line);padding:24px 0;background:transparent;gap:14px}h1,h2,h3,.brand{color:var(--ink)}p,.note,small{color:var(--muted)}h1{letter-spacing:-.045em}button{color:var(--ink);background:#1a2135;border:1px solid #ffffff20;border-radius:14px;transition:transform .2s,background .2s,border-color .2s}button:hover{background:#27304a;border-color:#e9c88e80;transform:translateY(-2px)}button:disabled{opacity:.38;transform:none;cursor:default}.primary{background:linear-gradient(115deg,#f3dbac,#d5ad6a);border-color:#f1d5a1;color:#17192b;box-shadow:0 4px 24px #e7c08418}.primary:hover{background:#f5dfb6;color:#0a1020}.secondary{background:#1a2135;border-color:#ffffff20;color:var(--ink)}.text-button{background:transparent;color:var(--gold)}input,select,textarea{color:var(--ink);background:#11192d;border:1px solid #ffffff29;border-radius:12px;max-width:100%;padding:13px;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:2px}label{color:var(--ink)}fieldset{border:1px solid var(--line);border-radius:18px;padding:16px}legend{color:var(--muted)}input[type=checkbox],input[type=radio]{accent-color:var(--gold)}.eyebrow{color:var(--gold);letter-spacing:.19em}.brand{font-family:Georgia,serif;font-size:21px;letter-spacing:.01em;gap:13px}.brand small{font-family:system-ui,sans-serif;letter-spacing:.2em;font-size:10px;color:var(--gold);margin-top:5px}.crest{display:inline-flex;align-items:center;justify-content:center;position:relative;width:54px;height:64px;border:1px solid #e8c88e9c;border-radius:26px 26px 20px 20px;color:#f2d6a2;background:linear-gradient(150deg,#d8bb8120,#0e172a);font:38px Georgia,serif;box-shadow:inset 0 0 0 4px #0b1225,0 0 30px #d8b98116;flex-shrink:0}.crest>span{font:12px system-ui,sans-serif;align-self:flex-end;margin:0 0 13px -4px}.brand .mark{display:none}.identity-button{display:flex;align-items:center;gap:9px;background:none;border:0;text-align:left;padding:4px;font-size:13px}.identity-button small{display:block;font-size:10px}.avatar,.profile-thumb{width:38px;height:38px;border-radius:50%;object-fit:cover;background:#29304a;color:var(--gold);border:1px solid #e9c88e55}.hero{isolation:isolate;overflow:hidden;position:relative;background:#11182b;border:1px solid #e9c88e24;border-radius:30px;margin-top:24px;min-height:365px;padding:44px;color:var(--ink)}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0c1429f2 5%,#0d142ab3 48%,#10152900),url('/night-piazza.png') center right/cover;z-index:-1}.hero h1{font-size:clamp(36px,5vw,62px);line-height:1.06;color:var(--ink);margin:20px 0}.hero h1 em{color:var(--gold)}.hero p{max-width:400px;color:#d2d1dc;font-size:15px;line-height:1.8}.hero-art{opacity:.3;transform:scale(.8);margin-top:70px}.creator-ribbon{color:var(--coral);border-color:#ee8b8640;font-size:10px}.hero .creator-ribbon{margin-top:14px}.toolbar{margin:36px 0 20px;gap:16px}.toolbar h2{font:26px Georgia,serif;letter-spacing:0}.toolbar select{max-width:220px}.grid{gap:18px}.game-card{background:linear-gradient(145deg,#1b2339,#12192b);border:1px solid #c5cce020;border-radius:22px;box-shadow:0 15px 35px #0002;transition:transform .25s,border-color .25s}.game-card:hover{transform:translateY(-5px);border-color:#e9c88e70}.game-art{background:radial-gradient(ellipse at center,#70628666,#18243d);border-bottom:1px solid #ffffff0c;min-height:150px}.game-card:nth-child(3n+2) .game-art{background:radial-gradient(ellipse at center,#377b7966,#142e3b)}.game-card:nth-child(3n) .game-art{background:radial-gradient(ellipse at center,#b35f6755,#33273c)}.game-info h3{font:26px Georgia,serif}.game-info p{font-size:13px;line-height:1.65;min-height:42px}.tag{color:var(--gold);font-size:10px;letter-spacing:.1em}.game-bottom{border-color:var(--line);align-items:center;gap:10px}.game-bottom>span{font-size:10px;color:var(--muted)}.game-bottom button{font-size:12px}.mini-card{color:#24253b}.community-note,.resume-room,.room-link{background:#151d31;border:1px solid #ffffff15;color:var(--ink)}.community-note{margin:24px 0 34px;border-radius:18px}.community-note strong{color:var(--gold)}.community-note>span{color:var(--gold)}.room-link small{color:var(--muted)}footer{border-color:var(--line);margin-top:50px}.footer-creator{color:var(--muted)}.footer-creator strong{color:var(--gold)}.club-nav{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-around;gap:4px;background:#151d30f5;backdrop-filter:blur(18px);border:1px solid #d8c29a44;border-radius:24px;z-index:80;box-shadow:0 10px 50px #0009;padding:7px;width:min(460px,calc(100% - 24px))}.club-nav button{border:none;background:none;color:var(--muted);font-size:10px;padding:8px 6px;flex:1;line-height:1.6;border-radius:17px}.club-nav button span{display:block;font-size:22px;color:#b5bace}.club-nav button.current{background:#e8ca8d14;color:var(--gold)}.club-nav button.current span{color:var(--gold)}.club-heading{padding:42px 0 24px;max-width:760px}.club-heading h1{font:clamp(32px,5vw,50px)/1.12 Georgia,serif;margin:16px 0}.club-heading p{font-size:15px;line-height:1.8;max-width:620px}.club-tiles,.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.feature-tile,.memory-card{background:linear-gradient(145deg,#1a243b,#11182c);border:1px solid #e4ca9630;border-radius:24px;padding:28px;text-align:left}.feature-tile>span{font-size:32px;color:var(--gold)}.feature-tile h2,.memory-card h2{font:27px Georgia,serif}.feature-tile p{line-height:1.8;font-size:14px}.feature-tile strong{display:block;color:var(--gold);margin-top:22px;font-size:13px}.feature-tile:nth-child(2){border-color:#46bdb140}.feature-tile:nth-child(3){border-color:#ee8b8640}.staff-tile{background:linear-gradient(120deg,#2d2539,#121c30)}.passport{display:flex;align-items:center;gap:28px;min-height:230px;border:1px solid #e8c88e60;background:radial-gradient(at 100% 0,#9a7d4e35,transparent 60%),linear-gradient(130deg,#18243d,#101629);border-radius:26px;padding:30px;margin-bottom:30px;box-shadow:inset 0 0 0 6px #10182a}.passport-emblem{text-align:center;flex-basis:160px}.passport-emblem .crest{width:74px;height:88px;font-size:53px}.passport-emblem small{display:block;font-size:8px;letter-spacing:.19em;color:var(--gold);margin-top:14px}.passport h2{font:30px Georgia,serif;margin:12px 0}.badges{display:flex;gap:8px;flex-wrap:wrap}.badges>span{background:#c9ae7f18;color:var(--gold);border:1px solid #dabc8130;padding:6px 10px;border-radius:20px;font-size:11px}.club-form{background:#141c2f;border:1px solid var(--line);border-radius:24px;padding:28px;max-width:760px;display:grid;gap:20px}.club-form label{display:grid;gap:9px;font-size:14px}.club-form label small{font-size:11px;line-height:1.7}.club-form .check-row{display:flex;align-items:center;gap:12px;font-size:13px}.avatar-options{display:flex;flex-wrap:wrap;gap:10px}.avatar-options label{display:inline-flex;position:relative}.avatar-options input{position:absolute;opacity:0}.avatar-options span{font-size:26px;border:1px solid var(--line);border-radius:15px;padding:10px;width:50px;text-align:center}.avatar-options input:checked+span{border-color:var(--gold);background:#e9c88e15}.avatar-options input:focus-visible+span{outline:2px solid var(--gold)}.photo-preview img{width:100px;height:100px;border-radius:50%;border:3px solid var(--gold);object-fit:cover}.onboarding{padding:20px;line-height:2}.rank-filters{display:flex;gap:20px;margin-bottom:24px}.rank-filters label{display:grid;gap:8px;flex:1}.podium{display:flex;gap:14px;margin:24px 0}.podium article{flex:1;text-align:center;padding:30px 15px;background:linear-gradient(#26304a,#131b30);border:1px solid #e9c88e35;border-radius:22px}.podium article:first-child{border-color:#e9c88e;background:radial-gradient(at top,#dabc8133,#172038)}.podium article>span{display:block;color:var(--gold);font-size:40px}.podium article>small{display:block;margin-top:8px}.podium article h2{font:22px Georgia,serif;overflow-wrap:anywhere}.podium strong{color:var(--gold)}.ranking-row{display:flex;align-items:center;gap:18px;padding:16px;border-bottom:1px solid var(--line)}.ranking-row>span:nth-child(2){flex:1}.ranking-row small{display:block;margin-top:5px}.ranking-row.is-me{background:#46bdb112;border-radius:14px}.ranking-row b{color:var(--gold)}.champion{padding:16px;border:1px solid #e9c88e30;border-radius:14px}.champion strong{float:right;color:var(--gold)}.buddy-row{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:18px 0}.buddy-row>span{flex:1}.buddy-row small{display:block;margin-top:6px}.buddy-row button{font-size:12px}.empty-state{padding:36px;text-align:center;width:100%;border:1px dashed #e9c88e30;border-radius:22px;line-height:1.8}.empty-state>span{font-size:42px;color:var(--gold)}.reactions{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.reactions button{font-size:17px;padding:8px 12px}.portal-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.portal-card{padding:28px;background:linear-gradient(130deg,#1b2339,#141b2d);border:1px solid var(--line);border-radius:24px;margin-bottom:18px}.portal-message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;font-size:14px}.portal-message:first-line{font-weight:700;color:var(--gold);font-size:17px}.portal-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.portal-buttons button{padding:16px;text-align:left;font-size:13px}.portal-area .club-form{margin:20px 0}.show-board{max-width:820px;margin:auto;padding:24px;text-align:center}.show-meta{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--gold);margin-bottom:25px}.show-board h2{font:clamp(24px,4vw,35px)/1.3 Georgia,serif}.show-board p{line-height:1.8}.show-choices{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:26px 0}.show-choices button{text-align:left;background:#17223a;border:1px solid #e4c68c70;padding:20px;display:flex;align-items:center;gap:14px;min-height:75px}.show-choices button>span{color:var(--gold);font-weight:bold}.show-aids{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.show-aids button{font-size:12px}.clue-list{list-style:none;padding:0;counter-reset:clue;display:grid;gap:10px;margin:24px 0}.clue-list li{counter-increment:clue;padding:15px;background:#20304a;border:1px solid #e9c88e30;border-radius:14px;animation:clue-open .6s ease-out}.clue-list li:before{content:counter(clue) ' · ';color:var(--gold)}.clue-list .locked-clue{color:#8c94ad;background:#152037;border-color:#ffffff0b;font-size:12px}.show-board form label{display:grid;gap:10px;text-align:left}.show-board form button{margin-top:15px;width:100%}.show-reveal{padding:25px;background:#46bdb118;border:1px solid #46bdb166;border-radius:20px;margin:20px 0}.show-reveal h3{font:32px Georgia,serif;color:var(--gold)}.answer-sealed{font-size:13px;color:#75d6ca}.table{background:radial-gradient(at center,#203149,#121e34);border:1px solid #e9c88e4d;box-shadow:inset 0 0 60px #0004,0 15px 50px #0004}.table-signature{color:#dec18b55;letter-spacing:.16em}.table-signature span{color:#dec18b77}.table h2{color:var(--ink)}.players .player{color:var(--ink);background:#10192b66;border-color:#ffffff12}.players .player.active{border-color:var(--gold);box-shadow:0 0 18px #e9c88e20}.players .player.ready{border-color:#46bdb188}.player .avatar{margin:auto auto 6px}.room-creator,.room-note{color:var(--gold)}.pill{color:var(--gold);background:#d7b47c15;border:1px solid #d7b47c35}.hand-zone,.voice-controls,.auto-draw-controls,.number-board{background:#151e32;border-color:#ffffff1a;color:var(--ink)}.hand-title strong{color:var(--gold)}.rules{color:var(--muted);border-color:var(--line)}.rules summary{color:var(--gold)}.status-bar,.scores>span{background:#1a243b;color:var(--ink);border-color:#ffffff16}.ticket{border-color:#e9c88e44;background:#152039}.ticket>span{color:var(--ink);background:#1f2b44;border-color:#ffffff15}.ticket>span.hit{background:#e9c88e;color:#171b2c}.number-grid>span{color:var(--muted);background:#18243d}.number-grid .called{background:#46bdb132;color:#8fe4d8}.number-grid .latest{background:#e9c88e;color:#12192b}.number{color:var(--gold)}.game-actions{background:#111a2ef5;backdrop-filter:blur(15px);border-color:#e9c88e2b;bottom:96px}.connection-status{color:#78c6bd}.hangman-board,.hangman-scene{background:#15243a;color:var(--ink)}.alphabet button{background:#26344d;color:var(--ink)}.alphabet button.used{background:#172136}.word-letter{color:var(--gold)}dialog{background:#151e32;color:var(--ink);border:1px solid #e9c88e55;border-radius:26px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#050a17bb;backdrop-filter:blur(8px)}#toast{background:#e9c88e;color:#15192b;border:1px solid #f9e0b3;bottom:110px;z-index:110}.demo{background:#46bdb115;color:#a6ddd5;border-color:#46bdb133}.loading .mark{background:#19233b;color:var(--gold)}.voice-settings{display:flex;gap:15px;margin-top:16px}.voice-settings label{display:grid;gap:8px;flex:1;font-size:12px}.night-note{color:var(--gold);text-align:center;letter-spacing:.14em;font-size:10px;margin:34px 0}a{color:var(--gold)}
@keyframes clue-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:650px){.shell{padding:0 18px}header{padding:18px 0}.brand{font-size:15px;gap:9px}.brand small{font-size:8px;letter-spacing:.13em}.brand .crest{width:42px;height:51px;font-size:29px}.brand .crest>span{font-size:9px;margin-bottom:10px}.identity-button>span:last-child{display:none}.hero{padding:27px 24px;min-height:345px;border-radius:24px}.hero:before{background:linear-gradient(90deg,#0c1429e3 5%,#0d142a95 70%,#10152933),url('/night-piazza.png') center/cover}.hero-art{display:none}.hero h1{font-size:39px}.hero p{font-size:13px;max-width:270px}.toolbar{display:block}.toolbar h2{font-size:25px}.toolbar select{margin-top:12px;max-width:100%;width:100%}.grid{gap:15px}.game-art{min-height:135px}.club-tiles,.memory-grid{grid-template-columns:1fr}.club-heading{padding:30px 0 18px}.club-form,.portal-card{padding:21px}.passport{gap:15px;padding:24px 18px}.passport-emblem{flex-basis:85px;min-width:85px}.passport-emblem .crest{width:58px;height:72px;font-size:44px}.passport h2{font-size:25px}.passport-emblem small{font-size:6px}.badges>span{font-size:9px}.podium{gap:7px}.podium article{padding:22px 5px}.podium article h2{font-size:16px}.podium strong{font-size:12px}.rank-filters{gap:10px}.rank-filters select{font-size:12px;padding:10px}.show-board{padding:18px 12px}.show-choices{grid-template-columns:1fr;gap:10px}.show-choices button{padding:15px;min-height:55px}.portal-buttons{gap:8px}.portal-buttons button{font-size:12px;padding:13px 10px}.table{padding:15px 8px}.table-signature{font-size:10px}.player{min-width:70px}.club-nav{bottom:max(10px,env(safe-area-inset-bottom));border-radius:22px}footer{display:block;text-align:center;font-size:10px}footer a{display:block;margin-top:12px}.buddy-row{flex-wrap:wrap}.buddy-row>span{min-width:45%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

.grid .game-card .game-art{background:radial-gradient(ellipse at center,#70628666,#18243d)}.grid .game-card:nth-child(3n+2) .game-art{background:radial-gradient(ellipse at center,#377b7966,#142e3b)}.grid .game-card:nth-child(3n) .game-art{background:radial-gradient(ellipse at center,#b35f6755,#33273c)}
.shell>header{background:linear-gradient(110deg,#131c32,#101628);margin:0 -24px;padding:18px 30px;border-color:#e9c88e33;min-height:96px;height:auto}.hero-art{display:none}.hero{grid-template-columns:1fr}.creator-ribbon{background:#121a2b99;border-color:#e9c88e44;color:var(--gold)}.grid .game-card{border:1px solid #e9c88e30;border-radius:22px;grid-column:auto}.grid .game-card .text-button{color:var(--gold)}.grid .game-info .tag{color:var(--gold)}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid .game-card .game-art{height:150px}.voice-controls{flex-wrap:wrap}.voice-settings{flex-basis:100%}
@media(max-width:700px){.shell>header{margin:0 -10px;padding:16px 18px;min-height:84px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid .game-card:last-child{grid-column:span 2}.grid .game-card .game-art{height:120px;min-height:120px}.grid .game-info{padding:17px 13px}.grid .game-info h3{font-size:23px;line-height:1.12;overflow-wrap:break-word}.grid .game-info .tag{font-size:8px}.grid .game-info p{font-size:12px}.hero{padding:30px 23px}.brand{letter-spacing:0}.hero h1{font-size:39px}.voice-settings{width:100%}.club-nav button{font-size:10px}}

.portal-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 26px}.portal-metrics article{background:linear-gradient(140deg,#24314c,#151e32);border:1px solid #e9c88e44;border-radius:20px;padding:22px}.portal-metrics strong{display:block;font:34px Georgia,serif;color:var(--gold)}.portal-metrics span{display:block;color:var(--muted);font-size:11px;margin-top:8px}[data-club-area=community] .portal-metrics article{border-color:#46bdb144}[data-club-area=staff] .portal-metrics article{border-color:#ee8b8644}@media(max-width:700px){.portal-metrics{grid-template-columns:1fr 1fr;gap:10px}.portal-metrics article{padding:18px}.portal-metrics strong{font-size:30px}}

.avatar.frame-teal,.profile-thumb.frame-teal{border:2px solid #46bdb1;box-shadow:0 0 14px #46bdb144}.avatar.frame-coral,.profile-thumb.frame-coral{border:2px solid #ee8b86;box-shadow:0 0 14px #ee8b8644}.avatar.frame-champagne,.profile-thumb.frame-champagne{border:2px solid #e9c88e}

.passport-photo,.passport-avatar{width:86px;height:86px;object-fit:cover;border-radius:50%;border:2px solid var(--gold);display:inline-flex;align-items:center;justify-content:center;background:#202c45;color:var(--gold);font-size:48px}.passport-photo.frame-teal,.passport-avatar.frame-teal{border-color:#46bdb1}.passport-photo.frame-coral,.passport-avatar.frame-coral{border-color:#ee8b86}@media(max-width:700px){.passport-photo,.passport-avatar{width:68px;height:68px;font-size:36px}}

.grid .game-card[data-game="scalata"] .game-art:after{content:"◆";font-size:100px;opacity:.1}
.grid .game-card[data-game="legame"] .game-art:after{content:"∞";font-size:100px;opacity:.1}
.grid .game-card[data-game="mistero"] .game-art:after{content:"?";font-size:100px;opacity:.1}
.grid .game-card[data-game="scopa"] .game-art:after{content:"♦";font-size:100px;opacity:.1}
.grid .game-card[data-game="scala40"] .game-art:after{content:"♠";font-size:100px;opacity:.1}
.grid .game-card[data-game="cromia"] .game-art:after{content:"◈";font-size:100px;opacity:.1}
.grid .game-card[data-game="burraco"] .game-art:after{content:"♣";font-size:100px;opacity:.1}
.grid .game-card[data-game="tombola"] .game-art:after{content:"90";font-size:100px;opacity:.1}
.grid .game-card[data-game="impiccato"] .game-art:after{content:"Aa";font-size:100px;opacity:.1}
.show-choices button.chosen-answer{border-color:#62dbcd;background:#2c82744d;opacity:1}.show-choices button.chosen-answer:after{content:"✓";margin-left:auto;color:#7be2d5}

.portal-metrics .metric-card{background:linear-gradient(140deg,#24314c,#151e32);border:1px solid #e9c88e44;border-radius:20px;padding:22px;text-align:left}[data-club-area=community] .portal-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}[data-club-area=community] .metric-card{border-color:#46bdb144}[data-club-area=staff] .metric-card{border-color:#ee8b8644}@media(max-width:700px){.portal-metrics .metric-card{padding:16px 12px}.portal-metrics .metric-card span{font-size:10px}.portal-metrics .metric-card strong{font-size:27px}}

.show-aids button{padding:11px 15px;min-height:42px}.pill{white-space:normal;text-align:center}

/* Light form surfaces need explicit dark text, including native WebView menus. */
body :is(.shell,dialog) :is(select,textarea,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"])){background:#fffdf7;color:#172238;-webkit-text-fill-color:#172238;caret-color:#172238;color-scheme:light;font-weight:500;opacity:1}
body :is(.shell,dialog) :is(select,textarea,input)::placeholder{color:#536070;-webkit-text-fill-color:#536070;opacity:1}
body :is(.shell,dialog) select :is(option,optgroup){background:#fffdf7;color:#172238;-webkit-text-fill-color:#172238}
body :is(.shell,dialog) :is(select,textarea,input):disabled{color:#536070;-webkit-text-fill-color:#536070}
