@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@700&display=swap";@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@700&family=IM+Fell+English:ital@0;1&display=swap";body{min-width:320px;min-height:100vh}#root{min-height:100vh}button:focus-visible{outline:3px solid oklch(.68 .16 145);outline-offset:3px}a:focus-visible{outline:3px solid oklch(.68 .16 145);outline-offset:3px}:root{--paper: oklch(.985 .003 85);--paper-2: oklch(.965 .004 85);--ink: oklch(.18 .01 260);--ink-2: oklch(.32 .01 260);--mute: oklch(.55 .008 260);--rule: oklch(.88 .004 260);--rule-soft: oklch(.93 .004 260);--ink-inv: oklch(.985 .003 85);--bg-dark: oklch(.18 .01 260);--accent: oklch(.68 .16 145);--accent-ink: oklch(.28 .08 145);--danger: oklch(.62 .19 28);--gutter: 32px;--col-gap: 24px;--max: 1280px;--section-pad-y: 96px;--font-sans: "Inter Tight", ui-sans-serif, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}[data-density=compact]{--section-pad-y: 64px;--gutter: 24px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv11"}a{color:inherit;text-decoration:none}button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}.mono{font-family:var(--font-mono);font-feature-settings:"zero"}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:500}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.rule{border:0;border-top:1px solid var(--rule)}.nav{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--paper) 88%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--rule)}.nav__inner{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);height:72px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:2px;margin-left:24px;color:var(--ink)}.brand img{display:block}.brand__dot{width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 20%,transparent);flex-shrink:0}.nav__links{display:flex;gap:28px;justify-content:center}.nav__links a{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);letter-spacing:.02em}.nav__links a:hover{color:var(--ink)}.nav__right{display:flex;align-items:center;gap:16px;justify-self:end}.nav__status{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:11px;color:var(--mute)}.nav__status:before{content:"";width:6px;height:6px;border-radius:999px;background:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 18%,transparent)}.nav__cta{font-family:var(--font-mono);font-size:12px;padding:8px 14px;border:1px solid var(--ink);color:var(--ink);border-radius:4px}.nav__cta:hover{background:var(--ink);color:var(--paper)}.lang-switcher{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:11px}.lang-switcher__btn{padding:4px 6px;border-radius:3px;color:var(--mute);letter-spacing:.04em;transition:color .15s,background .15s}.lang-switcher__btn:hover{color:var(--ink)}.lang-switcher__btn--active{color:var(--ink);font-weight:600}.lang-switcher__sep{color:var(--rule)}.section{padding:var(--section-pad-y) 0;border-bottom:1px solid var(--rule);position:relative}.section__hd{display:grid;grid-template-columns:200px 1fr;gap:var(--col-gap);margin-bottom:48px;align-items:baseline}.section__num{font-family:var(--font-mono);font-size:12px;color:var(--mute);letter-spacing:.04em}.section__title{font-size:clamp(28px,3.4vw,44px);font-weight:700;letter-spacing:-.025em;line-height:1.05;max-width:18ch}.section__sub{grid-column:2 / -1;margin-top:16px;color:var(--ink-2);max-width:56ch;font-size:16px}.hero{position:relative;padding:120px 0 96px;border-bottom:1px solid var(--rule);overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,var(--rule-soft) 1px,transparent 1px);background-size:calc((100% - 2*var(--gutter)) / 12) 100%;background-position:var(--gutter) 0;-webkit-mask-image:linear-gradient(to bottom,black 0%,black 70%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 70%,transparent 100%);opacity:.7;pointer-events:none}.hero__grid{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:200px 1fr;gap:var(--col-gap);position:relative;z-index:2}.hero__meta{display:flex;flex-direction:column;gap:12px}.hero__meta .kv{font-family:var(--font-mono);font-size:11px;color:var(--mute);display:flex;flex-direction:column;gap:2px}.hero__meta .kv b{color:var(--ink);font-weight:500}.hero__title{font-size:clamp(44px,7.2vw,108px);font-weight:700;letter-spacing:-.035em;line-height:.96;color:var(--ink)}.hero__title em{font-style:normal;font-weight:400;color:var(--mute)}.slash{color:var(--accent);font-weight:500}.hero__sub{margin-top:28px;font-size:clamp(16px,1.4vw,19px);color:var(--ink-2);max-width:54ch;line-height:1.5}.hero__actions{margin-top:36px;display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:4px;font-family:var(--font-mono);font-size:12px;letter-spacing:.02em;transition:transform .15s ease,background .15s,color .15s,border-color .15s}.btn--ink{background:var(--ink);color:var(--paper)}.btn--ink:hover{transform:translateY(-1px)}.btn--ghost{border:1px solid var(--rule);color:var(--ink)}.btn--ghost:hover{border-color:var(--ink)}.btn .arrow{transition:transform .15s}.btn:hover .arrow{transform:translate(3px)}.ticker{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden;background:var(--paper-2)}.ticker__track{display:flex;gap:48px;padding:14px 0;font-family:var(--font-mono);font-size:12px;color:var(--ink-2);white-space:nowrap;animation:tick 40s linear infinite}.ticker__track span{display:inline-flex;align-items:center;gap:10px}.ticker__track .dot{width:5px;height:5px;border-radius:999px;background:var(--accent)}@keyframes tick{0%{transform:translate(0)}to{transform:translate(-50%)}}.platform__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.pcard{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:28px;min-height:260px;display:flex;flex-direction:column;position:relative;background:var(--paper);transition:background .2s}.pcard--w2{grid-column:span 2}.pcard--w3{grid-column:span 3}.pcard--w4{grid-column:span 4;min-height:320px}.pcard--w6{grid-column:span 6}.pcard--feature{background:var(--ink);color:var(--paper)}.pcard--feature .label{color:color-mix(in oklab,var(--paper) 60%,transparent)}.pcard--feature .pcard__sub{color:color-mix(in oklab,var(--paper) 70%,transparent)}.pcard__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;gap:16px}.pcard__status{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:999px;color:var(--mute);opacity:.8}.pcard--feature .pcard__status{color:color-mix(in oklab,var(--paper) 60%,transparent)}.pcard__status--live{color:var(--accent-ink);border-color:color-mix(in oklab,var(--accent) 50%,transparent);background:color-mix(in oklab,var(--accent) 16%,transparent)}.pcard--feature .pcard__status--live{color:var(--accent);background:color-mix(in oklab,var(--accent) 12%,transparent);border-color:color-mix(in oklab,var(--accent) 40%,transparent)}.pcard__title{font-size:clamp(22px,2.2vw,32px);font-weight:700;letter-spacing:-.02em;line-height:1.1;margin-bottom:12px}.pcard--w4 .pcard__title,.pcard--w6 .pcard__title{font-size:clamp(28px,3vw,44px)}.pcard__sub{font-size:14px;color:var(--ink-2);line-height:1.5;max-width:40ch}.pcard__foot{margin-top:auto;padding-top:32px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.pcard__link{font-family:var(--font-mono);font-size:12px;color:inherit;display:inline-flex;gap:6px;align-items:center;border-bottom:1px solid transparent}.pcard__link:hover{border-bottom-color:currentColor}.pcard__link--muted{color:var(--mute)}.pcard__illus{margin-top:24px;flex:1;border:1px solid var(--rule);background:repeating-linear-gradient(135deg,transparent 0,transparent 10px,var(--rule-soft) 10px,var(--rule-soft) 11px);min-height:120px;position:relative}.pcard__illus:after{content:attr(data-label);position:absolute;top:10px;left:10px;font-family:var(--font-mono);font-size:10px;color:var(--mute);letter-spacing:.05em;text-transform:uppercase;background:var(--paper);padding:2px 6px}.pcard--feature .pcard__illus{border-color:color-mix(in oklab,var(--paper) 20%,transparent);background:repeating-linear-gradient(135deg,transparent 0,transparent 10px,color-mix(in oklab,var(--paper) 8%,transparent) 10px,color-mix(in oklab,var(--paper) 8%,transparent) 11px)}.pcard--feature .pcard__illus:after{background:var(--ink);color:color-mix(in oklab,var(--paper) 60%,transparent)}.apps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule);border-left:1px solid var(--rule)}.app{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:28px;display:grid;grid-template-columns:44px 1fr auto;gap:20px;align-items:start;background:var(--paper);transition:background .15s;position:relative}.app:hover{background:var(--paper-2)}.app:hover .app__arrow{transform:translate(4px);color:var(--ink)}.app__logo{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--rule);border-radius:6px;background:var(--paper)}.app__logo svg{width:26px;height:26px}.app__body{padding-top:2px}.app__top{display:flex;align-items:center;gap:10px;margin-bottom:4px}.app__name{font-size:16px;font-weight:600;letter-spacing:-.01em}.app__tag{font-family:var(--font-mono);font-size:10px;color:var(--mute);letter-spacing:.04em;text-transform:uppercase}.app__desc{font-size:13px;color:var(--ink-2);line-height:1.45}.app__host{font-family:var(--font-mono);font-size:11px;color:var(--mute);margin-top:8px}.app__arrow{font-family:var(--font-mono);color:var(--mute);font-size:18px;transition:transform .15s,color .15s;align-self:center}.dark{background:var(--ink);color:var(--ink-inv);border-top:1px solid var(--rule)}.dark .section__num{color:color-mix(in oklab,var(--paper) 55%,transparent)}.dark .section__title{color:var(--paper)}.dark .section__sub{color:color-mix(in oklab,var(--paper) 70%,transparent)}.dark .eyebrow,.dark .label{color:color-mix(in oklab,var(--paper) 55%,transparent)}.svcs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid color-mix(in oklab,var(--paper) 14%,transparent);border-left:1px solid color-mix(in oklab,var(--paper) 14%,transparent)}.svc{border-right:1px solid color-mix(in oklab,var(--paper) 14%,transparent);border-bottom:1px solid color-mix(in oklab,var(--paper) 14%,transparent);padding:24px;display:flex;flex-direction:column;gap:16px;min-height:180px}.svc__top{display:flex;gap:14px;align-items:flex-start}.svc__logo{width:36px;height:36px;display:grid;place-items:center;border-radius:6px;background:color-mix(in oklab,var(--paper) 10%,transparent);border:1px solid color-mix(in oklab,var(--paper) 14%,transparent);color:var(--paper);flex-shrink:0}.svc__logo svg{width:20px;height:20px}.svc__name{font-size:14px;font-weight:600;color:var(--paper);margin-bottom:2px;letter-spacing:-.01em}.svc__desc{font-size:12px;color:color-mix(in oklab,var(--paper) 55%,transparent);line-height:1.5}.svc__endpoint{margin-top:auto;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:10px 12px;border-radius:4px;border:1px solid color-mix(in oklab,var(--paper) 14%,transparent);background:color-mix(in oklab,black 30%,transparent);width:100%;text-align:left}.svc__endpoint:hover{border-color:color-mix(in oklab,var(--paper) 30%,transparent)}.svc__addr{font-family:var(--font-mono);font-size:11px;color:color-mix(in oklab,var(--paper) 85%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc__copy{font-family:var(--font-mono);font-size:10px;color:var(--accent);letter-spacing:.04em;text-transform:uppercase}.about{display:grid;grid-template-columns:200px 1fr 1fr;gap:var(--col-gap)}.about__big{grid-column:2 / -1;font-size:clamp(36px,5vw,72px);font-weight:700;letter-spacing:-.03em;line-height:1.02;margin-bottom:32px;max-width:22ch}.about__big em{font-style:normal;color:var(--mute)}.about__col p{font-size:15px;color:var(--ink-2);max-width:48ch;margin-bottom:12px}.about__signature{margin-top:24px;display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:12px;color:var(--mute)}.about__signature .pig{width:28px;height:28px;display:grid;place-items:center;background:var(--paper-2);border:1px solid var(--rule);border-radius:6px}.footer{background:var(--paper-2);border-top:1px solid var(--rule);padding:64px 0 32px}.footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:var(--col-gap);padding-bottom:48px;border-bottom:1px solid var(--rule)}.footer__brand .brand{margin-bottom:20px}.footer__brand p{font-size:13px;color:var(--mute);max-width:32ch;line-height:1.5}.footer__col-title{font-family:var(--font-mono);font-size:10px;color:var(--mute);letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.footer__col a,.footer__col span{display:block;font-size:13px;color:var(--ink-2);padding:3px 0}.footer__col a:hover{color:var(--ink)}.footer__bottom{display:flex;justify-content:space-between;padding-top:24px;font-family:var(--font-mono);font-size:11px;color:var(--mute)}.tweaks{position:fixed;bottom:20px;right:20px;z-index:200;width:280px;background:var(--paper);border:1px solid var(--rule);border-radius:8px;box-shadow:0 14px 40px #0000001f;overflow:hidden;font-size:13px;display:none}.tweaks.open{display:block}.tweaks__hd{padding:12px 14px;border-bottom:1px solid var(--rule);background:var(--paper-2);display:flex;justify-content:space-between;align-items:center}.tweaks__hd h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}.tweaks__hd .close{font-family:var(--font-mono);font-size:14px;color:var(--mute)}.tweaks__body{padding:14px;display:flex;flex-direction:column;gap:16px}.tweaks__row{display:flex;flex-direction:column;gap:8px}.tweaks__row>span{font-family:var(--font-mono);font-size:10px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase}.tweaks__opts{display:flex;gap:6px;flex-wrap:wrap}.tweaks__opts button{font-family:var(--font-mono);font-size:11px;padding:6px 10px;border:1px solid var(--rule);border-radius:4px;color:var(--ink-2)}.tweaks__opts button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tweaks__swatches{display:flex;gap:8px}.tweaks__swatches button{width:28px;height:28px;padding:0;border-radius:999px;border:2px solid var(--rule)}.tweaks__swatches button.on{border-color:var(--ink);outline:2px solid var(--paper);outline-offset:-4px}.cookie-banner{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:100;display:inline-flex;align-items:center;gap:14px;padding:10px 14px 10px 16px;background:var(--ink);color:var(--ink-inv);border-radius:6px;font-family:var(--font-mono);font-size:12px;white-space:nowrap;box-shadow:0 4px 24px #0000002e}.cookie-banner__close{color:color-mix(in oklab,var(--ink-inv) 50%,transparent);font-size:11px;padding:2px 4px;border-radius:3px;transition:color .15s;flex-shrink:0}.cookie-banner__close:hover{color:var(--ink-inv)}@media(max-width:960px){.hero__grid,.section__hd,.about{grid-template-columns:1fr}.section__sub,.about__big{grid-column:1}.platform__grid{grid-template-columns:repeat(2,1fr)}.pcard--w2,.pcard--w3,.pcard--w4,.pcard--w6{grid-column:span 2}.apps,.svcs{grid-template-columns:1fr}.footer__grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){:root{--gutter: 16px;--section-pad-y: 64px}.nav__inner{height:56px;gap:8px}.brand{margin-left:0}.brand img{height:40px}.brand__dot{width:5px;height:5px}.nav__links,.nav__status{display:none}.nav__cta{padding:6px 10px;font-size:11px}.hero{padding:48px 0 40px}.hero__meta{display:none}.hero__sub{font-size:15px;margin-top:20px}.hero__actions{margin-top:24px}.platform__grid{grid-template-columns:1fr}.pcard--w2,.pcard--w3,.pcard--w4,.pcard--w6{grid-column:span 1}.pcard{min-height:auto;padding:20px}.pcard--w4,.pcard--w6{min-height:auto}.apps{grid-template-columns:1fr}.app{grid-template-columns:44px 1fr auto}.svcs{grid-template-columns:repeat(2,1fr)}.about__big{font-size:clamp(28px,8vw,44px);margin-bottom:24px}.section__title{font-size:clamp(24px,6vw,36px)}.section__hd{margin-bottom:32px}.footer__grid{grid-template-columns:1fr}.footer{padding:40px 0 24px}}.pm-page{min-height:100vh;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;font-family:"Press Start 2P",monospace}.pm-hd{display:flex;align-items:center;justify-content:space-between}.pm-logo{font-size:16px;color:gold;letter-spacing:4px;text-shadow:0 0 20px #FFD70080}.pm-stats{display:flex;gap:24px}.pm-stats>div{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.pm-lbl{font-size:7px;color:#555;letter-spacing:2px}.pm-val{font-size:12px;color:#fff}.pm-hearts{color:#f44;letter-spacing:4px}.pm-wrap{position:relative}.pm-canvas{display:block;border:2px solid #1a4fd4;box-shadow:0 0 0 1px #0a2596,0 0 30px #1a4fd450,0 0 80px #1a4fd420}.pm-overlay{position:absolute;inset:0;background:#000000d1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.pm-ov-title{font-size:22px;letter-spacing:4px}.pm-ov-title.gold{color:gold;text-shadow:0 0 24px #FFD70090}.pm-ov-title.red{color:#f33;text-shadow:0 0 24px #FF333390}.pm-ov-score{font-size:18px;color:#fff;letter-spacing:6px}.pm-ov-sub{font-size:7px;color:#555;letter-spacing:2px;text-align:center}.pm-btn{padding:12px 22px;background:transparent;border:2px solid #FFD700;color:gold;font-family:"Press Start 2P",monospace;font-size:11px;letter-spacing:2px;cursor:pointer;transition:background .15s,color .15s}.pm-btn:hover{background:gold;color:#000}.pm-hint{font-size:7px;color:#333;letter-spacing:2px}@media(max-width:500px){.pm-logo{font-size:12px}.pm-ov-title{font-size:14px}}.lobby{min-height:100vh;background:radial-gradient(ellipse at center,#1a5c2b,#0d3d1c 60%,#060f09);color:#f0e6c8;font-family:Cinzel,serif;display:flex;flex-direction:column;align-items:center;padding:40px 16px 60px}.lobby-title{font-family:Cinzel Decorative,serif;font-size:clamp(1.8rem,5vw,3rem);color:#f0c040;text-shadow:0 0 30px rgba(240,192,64,.5),0 2px 4px rgba(0,0,0,.8);letter-spacing:.08em;text-align:center;margin-bottom:6px}.lobby-subtitle{font-size:.85rem;color:#9db89a;letter-spacing:.2em;text-transform:uppercase;margin-bottom:40px}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;max-width:860px}@media(max-width:620px){.lobby-grid{grid-template-columns:1fr}}.lobby-panel{background:#00000073;border:1px solid rgba(240,192,64,.25);border-radius:12px;padding:28px 24px}.panel-title{font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;color:#f0c040;margin-bottom:20px;display:flex;align-items:center;gap:10px}.panel-title:after{content:"";flex:1;height:1px;background:#f0c04033}label{display:block;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:#9db89a;margin-bottom:6px;margin-top:16px}label:first-of-type{margin-top:0}input[type=text]{width:100%;background:#ffffff0f;border:1px solid rgba(240,192,64,.3);border-radius:6px;padding:10px 12px;color:#f0e6c8;font-family:Cinzel,serif;font-size:.95rem;outline:none;transition:border-color .2s}input[type=text]:focus{border-color:#f0c040b3}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.mode-btn{background:#ffffff0a;border:1px solid rgba(240,192,64,.25);border-radius:8px;padding:14px 10px;color:#c8b880;font-family:Cinzel,serif;font-size:.8rem;cursor:pointer;transition:all .2s;text-align:center;line-height:1.4}.mode-btn:hover{border-color:#f0c04080;background:#f0c04012}.mode-btn.active{border-color:#f0c040;background:#f0c04026;color:#f0c040}.mode-btn .mode-icon{font-size:1.4rem;display:block;margin-bottom:4px}.create-btn{width:100%;margin-top:22px;padding:13px;background:linear-gradient(135deg,#c9a227,#a07a10);border:none;border-radius:8px;color:#1a1a00;font-family:Cinzel,serif;font-weight:700;font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .2s,transform .1s}.create-btn:hover{opacity:.9}.create-btn:active{transform:scale(.98)}.create-btn:disabled{opacity:.4;cursor:not-allowed}.rooms-list{display:flex;flex-direction:column;gap:10px}.room-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;transition:border-color .2s}.room-card:hover{border-color:#f0c0404d}.room-info{flex:1;min-width:0}.room-creator{font-size:.9rem;color:#f0e6c8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-meta{font-size:.7rem;color:#7a9a7a;margin-top:3px;letter-spacing:.1em}.room-actions{display:flex;gap:8px;flex-shrink:0}.btn-join{padding:8px 16px;background:#f0c04026;border:1px solid rgba(240,192,64,.5);border-radius:6px;color:#f0c040;font-family:Cinzel,serif;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-join:hover{background:#f0c04040}.btn-watch{padding:8px 14px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#9db89a;font-family:Cinzel,serif;font-size:.75rem;cursor:pointer;transition:all .2s}.btn-watch:hover{border-color:#ffffff4d;color:#c8d8c8}.empty-rooms{text-align:center;color:#5a7a5a;font-size:.85rem;padding:30px 0;letter-spacing:.1em}.refresh-note{font-size:.65rem;color:#4a6a4a;text-align:right;margin-top:10px;letter-spacing:.1em}.name-modal-overlay{position:fixed;inset:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100}.name-modal{background:#0f2e17;border:1px solid rgba(240,192,64,.4);border-radius:12px;padding:32px 28px;width:360px;max-width:90vw}.name-modal h3{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:#f0c040;margin-bottom:16px}.modal-actions{display:flex;gap:10px;margin-top:20px}.btn-cancel{flex:1;padding:11px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#7a8a7a;font-family:Cinzel,serif;cursor:pointer}.btn-confirm{flex:2;padding:11px;background:linear-gradient(135deg,#c9a227,#a07a10);border:none;border-radius:6px;color:#1a1a00;font-family:Cinzel,serif;font-weight:700;cursor:pointer}.lobby-topbar{width:100%;max-width:900px;display:flex;justify-content:flex-end;margin-bottom:8px}*{box-sizing:border-box;margin:0;padding:0}.room{width:100vw;height:100dvh;background:radial-gradient(ellipse at center,#1a5c2b,#0d3d1c 60%,#060f09);display:flex;flex-direction:column;font-family:Cinzel,serif;color:#f0e6c8;overflow:hidden;-webkit-user-select:none;user-select:none}.room-header{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;background:#0006;border-bottom:1px solid rgba(240,192,64,.15);flex-shrink:0}.room-id{font-size:.65rem;letter-spacing:.2em;color:#f0c040;opacity:.7}.scores{display:flex;gap:24px}.score-item{text-align:center}.score-name{font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:#9db89a}.score-val{font-size:1.3rem;font-weight:700;color:#f0c040;line-height:1.1}.score-sep{font-size:1rem;color:#f0c0404d;align-self:center}.btn-leave{background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 14px;color:#7a8a7a;font-family:Cinzel,serif;font-size:.65rem;letter-spacing:.1em;cursor:pointer;transition:all .2s}.btn-leave:hover{border-color:#ff646466;color:#c88}.table{flex:1;display:flex;flex-direction:column;padding:12px 16px;gap:10px;min-height:0}.opponent-zone{display:flex;flex-direction:column;align-items:center;gap:8px}.opponent-name{font-size:.7rem;letter-spacing:.15em;color:#9db89a;text-transform:uppercase}.opponent-hand{display:flex;gap:8px;justify-content:center}.trick-area{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:0}.tricks-history{display:flex;gap:10px;align-items:center}.trick-dot{width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(255,255,255,.2)}.trick-dot.won{background:#f0c040;border-color:#f0c040}.trick-dot.lost{background:#c84040;border-color:#c84040}.trick-dot.parda{background:#ffffff4d;border-color:#ffffff4d}.current-trick{display:flex;gap:20px;align-items:center;justify-content:center}.trick-slot{display:flex;flex-direction:column;align-items:center;gap:4px}.trick-slot-label{font-size:.6rem;letter-spacing:.1em;color:#6a8a6a;text-transform:uppercase}.status-bar{text-align:center;font-size:.75rem;color:#a0c8a0;letter-spacing:.1em;padding:4px 0;min-height:22px}.status-bar.highlight{color:#f0c040}.player-zone{display:flex;flex-direction:column;align-items:center;gap:10px}.player-name{font-size:.7rem;letter-spacing:.15em;color:#f0c040;text-transform:uppercase}.player-hand{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.actions{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;padding:0 8px;min-height:40px}.action-btn{padding:8px 14px;border-radius:7px;font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.1em;cursor:pointer;border:1px solid;transition:all .15s;white-space:nowrap}.action-btn.envido{background:#4078c026;border-color:#4078c080;color:#80b0f0}.action-btn.envido:hover{background:#4078c040}.action-btn.truco{background:#f0c0401f;border-color:#f0c04080;color:#f0c040}.action-btn.truco:hover{background:#f0c04038}.action-btn.accept{background:#40b4401f;border-color:#40b44080;color:#80e080}.action-btn.accept:hover{background:#40b44038}.action-btn.decline{background:#c840401f;border-color:#c8404066;color:#e08080}.action-btn.decline:hover{background:#c8404038}.card{width:58px;height:88px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:5px 4px;position:relative;cursor:default;transition:transform .15s,box-shadow .15s;flex-shrink:0}.card.face-up{background:#fef9f0;border:1.5px solid #c8b090;box-shadow:0 2px 8px #00000080}.card.face-down{background:repeating-linear-gradient(45deg,#0d3d1c 0px 4px,#0f4520 4px 8px);border:1.5px solid #1a6030;box-shadow:0 2px 8px #00000080}.card.playable{cursor:pointer}.card.playable:hover{transform:translateY(-10px);box-shadow:0 8px 20px #0009;border-color:#f0c040}.card.selected{transform:translateY(-12px);box-shadow:0 10px 24px #f0c04066;border-color:#f0c040}.card.in-trick{transform:rotate(var(--rot, 0deg));cursor:default}.card-corner{font-family:IM Fell English,serif;font-size:.9rem;font-weight:700;line-height:1;color:var(--suit-color)}.card-corner.bottom{transform:rotate(180deg)}.card-center{font-family:IM Fell English,serif;font-size:1.4rem;color:var(--suit-color);line-height:1}.overlay{position:fixed;inset:0;background:#000000bf;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:50;padding:20px}.overlay-title{font-family:Cinzel Decorative,serif;font-size:clamp(1.4rem,4vw,2.2rem);color:#f0c040;text-align:center;text-shadow:0 0 30px rgba(240,192,64,.5)}.overlay-body{font-size:.9rem;color:#9db89a;letter-spacing:.1em;text-align:center}.overlay-code{font-size:2.5rem;font-weight:700;color:#f0c040;letter-spacing:.3em;background:#0000004d;padding:12px 28px;border-radius:10px;border:1px solid rgba(240,192,64,.3)}.overlay-btn{padding:13px 32px;background:linear-gradient(135deg,#c9a227,#a07a10);border:none;border-radius:8px;color:#1a1a00;font-family:Cinzel,serif;font-weight:700;font-size:.9rem;letter-spacing:.1em;cursor:pointer;transition:opacity .2s}.overlay-btn:hover{opacity:.9}.overlay-btn.secondary{background:transparent;border:1px solid rgba(255,255,255,.2);color:#9db89a}.envido-reveal{background:#0006;border:1px solid rgba(64,120,192,.4);border-radius:10px;padding:16px 24px;text-align:center}.envido-reveal h4{font-size:.7rem;letter-spacing:.2em;color:#80b0f0;margin-bottom:10px}.envido-scores{display:flex;gap:20px;justify-content:center}.envido-player{text-align:center}.envido-player-name{font-size:.7rem;color:#9db89a}.envido-player-score{font-size:1.6rem;font-weight:700;color:#f0e6c8}.envido-player-score.winner{color:#f0c040}.call-banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000e6;border:1px solid rgba(240,192,64,.5);border-radius:10px;padding:12px 28px;font-size:1.1rem;color:#f0c040;letter-spacing:.2em;pointer-events:none;z-index:10;white-space:nowrap;animation:fadeInOut 2s ease forwards}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%,-60%)}20%{opacity:1;transform:translate(-50%,-50%)}70%{opacity:1}to{opacity:0}}.spectator-badge{font-size:.65rem;letter-spacing:.15em;color:#7a9a7a;text-align:center;padding:4px 0}.waiting-dots:after{content:"";animation:dots 1.5s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}@media(max-width:400px){.card{width:50px;height:76px}.card-corner{font-size:.8rem}.card-center{font-size:1.2rem}}.lang-switcher--truco .lang-switcher__btn{color:#f0e6c866;font-family:Cinzel,serif;font-size:10px;letter-spacing:.12em}.lang-switcher--truco .lang-switcher__btn:hover{color:#f0e6c8}.lang-switcher--truco .lang-switcher__btn--active{color:#f0c040;font-weight:600}.lang-switcher--truco .lang-switcher__sep{color:#f0c04033}
