:root{color-scheme:dark;scrollbar-width:thin;scrollbar-color:rgba(240,180,95,.38) transparent;--bg: #120d09;--panel: rgba(39, 27, 17, .78);--panel-solid: #24180f;--border: rgba(255, 222, 176, .13);--border-strong: rgba(255, 200, 130, .3);--text: #f7ecdc;--muted: #b7a48a;--accent: #f0b45f;--accent-strong: #e08b2d;--good: #8fd6a1;--bad: #ee8b8b;--radius: 18px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 18% -10%,rgba(224,139,45,.18),transparent 45%),radial-gradient(circle at 85% 0%,rgba(240,180,95,.1),transparent 40%),radial-gradient(circle at 50% 120%,rgba(122,74,34,.24),transparent 55%),var(--bg);color:var(--text)}button,input{font:inherit}.shell{width:min(1120px,100%);margin:0 auto;padding:2.25rem 1.5rem 3rem}h1,h2{font-family:ui-serif,Georgia,Times New Roman,serif;font-weight:600;letter-spacing:.01em}h1{margin:0;font-size:1.45rem}h2{margin:0;font-size:1.05rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.brand{display:flex;align-items:center;gap:.85rem}.brand-mark{display:inline-block;width:2.4rem;height:2.4rem;flex:none;border-radius:50%;border:.2rem solid #8a5326;background:radial-gradient(circle at 32% 28%,#f3c984,transparent 38%),radial-gradient(circle at 50% 50%,#c98a45,#9a5f2c 72%);box-shadow:inset 0 -.2rem .35rem #3c1e0873,0 .35rem .8rem #0006;position:relative}.brand-mark:before,.brand-mark:after{content:"";position:absolute;width:.3rem;height:.3rem;border-radius:50%;background:#54300f}.brand-mark:before{top:30%;left:26%}.brand-mark:after{bottom:26%;right:28%}.brand-mark-large{width:4.5rem;height:4.5rem;border-width:.35rem}.brand-mark-large:before,.brand-mark-large:after{width:.55rem;height:.55rem}.room-code{display:inline-block;margin-top:.15rem;font-size:.78rem;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:.75rem}.status{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--muted);white-space:nowrap}.status:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:var(--muted)}.status[data-status=open]:before{background:var(--good);box-shadow:0 0 .6rem #8fd6a180}.status[data-status=connecting]:before,.status[data-status=reconnecting]:before{background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.status[data-status=closed]:before{background:var(--bad)}@keyframes pulse{50%{opacity:.3}}.panel{background:linear-gradient(160deg,rgba(255,240,215,.045),transparent 55%),var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1rem 2.5rem #00000047;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.9rem}.panel-head .muted{font-size:.76rem}.muted{color:var(--muted)}.game-grid{display:grid;grid-template-columns:minmax(16rem,.85fr) minmax(20rem,1.15fr) minmax(17rem,.9fr);gap:1.25rem;align-items:start}.pane{display:grid;gap:1.25rem;min-width:0;align-content:start}.pane-cookie{position:sticky;top:1.5rem}.pane-bakery .panel,.pane-social .panel{padding:1.1rem 1.15rem}.pane{align-content:start;padding-right:.3rem}::-webkit-scrollbar{width:.55rem;height:.55rem}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:99px;border:2px solid transparent;background-clip:padding-box;background-color:#f0b45f4d;transition:background-color .12s ease}::-webkit-scrollbar-thumb:hover{background-color:#f0b45f8c}::-webkit-scrollbar-thumb:active{background-color:#f0b45fb3}::-webkit-scrollbar-corner{background:transparent}.chat{display:grid;grid-template-rows:auto min(13rem,30vh) auto;gap:.75rem;padding:1.25rem;align-content:start}.chat-log{display:flex;flex-direction:column;gap:.55rem;height:100%;overflow-y:auto;padding-right:.35rem;overscroll-behavior:contain}.chat-log p{margin:0;display:grid;gap:.12rem;font-size:.84rem;line-height:1.4}.chat-log p.mine .chat-text{color:#ffe1b0}.chat-meta{display:flex;align-items:baseline;gap:.45rem}.chat-meta strong{font-size:.76rem;color:var(--accent)}.chat-meta time{font-size:.66rem;color:var(--muted);font-variant-numeric:tabular-nums}.chat-text{overflow-wrap:anywhere;white-space:pre-wrap}.chat-empty{margin:auto;color:var(--muted);font-size:.78rem}.chat-compose{display:grid;gap:.45rem}.chat-compose textarea{width:100%;resize:vertical;min-height:3.2rem;max-height:9rem;padding:.6rem .7rem;border-radius:10px;border:1px solid var(--border);background:#0f0a0699;color:var(--text);font:inherit;font-size:.85rem}.chat-compose textarea:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--border-strong)}.chat-compose textarea:disabled{opacity:.6}.chat-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.chat-actions .over{color:var(--bad)}.counter-panel{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:1.5rem 1.2rem 1.4rem;position:relative;overflow:hidden}.counter-panel:before{content:"";position:absolute;inset:-40% 20% auto;height:60%;background:radial-gradient(circle,rgba(240,180,95,.16),transparent 70%);pointer-events:none}.cookie{width:clamp(9.5rem,18vw,12.5rem);aspect-ratio:1;border-radius:50%;border:.6rem solid #8a5326;background:radial-gradient(circle at 30% 26%,#f6d79c 0%,transparent 34%),radial-gradient(circle at 72% 76%,#a8642b 0%,transparent 42%),radial-gradient(circle at 50% 45%,#d99a52,#b0713a 62%,#9a5f2c);box-shadow:inset 0 -.9rem 1.4rem #502a0c59,0 1rem #6b3f1c,0 1.4rem 2rem #0006;cursor:pointer;position:relative;transition:transform 70ms ease,box-shadow 70ms ease,filter .12s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.cookie:hover:not(:disabled){filter:brightness(1.04)}.cookie:active:not(:disabled){transform:translateY(.55rem) scale(.985);box-shadow:inset 0 -.5rem 1rem #502a0c66,0 .4rem #6b3f1c,0 .6rem 1rem #00000059}.cookie:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.cookie:disabled{filter:grayscale(.7) brightness(.7);cursor:not-allowed}.cookie-chip{position:absolute;border-radius:50%;background:#54300f;box-shadow:inset 0 .1rem .15rem #00000080;opacity:.85}.chip-a{width:1.1rem;height:1.1rem;top:24%;left:27%}.chip-b{width:.8rem;height:.8rem;top:42%;right:24%}.chip-c{width:1.3rem;height:1.3rem;bottom:24%;left:36%}.chip-d{width:.6rem;height:.6rem;bottom:32%;right:33%}.counter{text-align:center;position:relative}.counter strong{display:block;font-family:ui-serif,Georgia,serif;font-size:clamp(2.6rem,6vw,3.8rem);font-weight:600;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.counter span{display:block;margin-top:.3rem;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.14em}.rate{margin:0;font-size:.88rem;color:var(--accent);font-variant-numeric:tabular-nums}.buildings,.leaderboard{padding:1.25rem}.building-list{display:grid;gap:.55rem}.building{display:flex;align-items:center;justify-content:space-between;gap:.85rem;width:100%;padding:.6rem .85rem;border-radius:12px;border:1px solid var(--border);background:#fff0d709;color:inherit;text-align:left;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.building:hover:not(:disabled){background:#fff0d713;border-color:var(--border-strong);transform:translateY(-1px)}.building:disabled{opacity:.45;cursor:not-allowed}.building-info{display:grid;gap:.12rem;min-width:0}.building-info strong{font-size:.92rem}.building-info small{color:var(--muted);font-size:.74rem}.building-rate{color:var(--accent)!important}.building-meta{display:grid;justify-items:end;gap:.1rem;flex:none}.building-count{font-family:ui-serif,Georgia,serif;font-size:1.25rem;font-variant-numeric:tabular-nums;line-height:1}.building-cost{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.building-cost:after{content:" cookies"}.roster{list-style:none;margin:0;padding:0 .3rem 0 0;display:grid;gap:.3rem;max-height:min(15rem,22vh);overflow-y:auto;overscroll-behavior:contain}.roster li{display:grid;grid-template-columns:1.2rem minmax(0,1fr) auto .55rem;align-items:center;gap:.55rem;padding:.5rem .55rem;border-radius:10px;font-size:.85rem}.roster li.self{background:#f0b45f1c;border:1px solid rgba(240,180,95,.2)}.roster li.offline{opacity:.55}.rank{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;text-align:right}.player-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-name em{margin-left:.4rem;padding:.05rem .35rem;border-radius:99px;background:#f0b45f2e;color:var(--accent);font-size:.62rem;font-style:normal;text-transform:uppercase;letter-spacing:.08em}.player-score{display:grid;justify-items:end;color:var(--accent);font-variant-numeric:tabular-nums}.player-score small{color:var(--muted);font-size:.64rem}.contribution{margin:0;max-width:28rem;font-size:.75rem;line-height:1.5;text-align:center}.presence{width:.5rem;height:.5rem;border-radius:50%;background:#5b4a37}.presence[data-online=true]{background:var(--good);box-shadow:0 0 .5rem #8fd6a18c}.lobby-total{margin:1rem 0 0;padding-top:.85rem;border-top:1px solid var(--border);font-size:.76rem}.shell.landing{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem}.landing-head{display:grid;justify-items:center;gap:.7rem;text-align:center}.landing-head h1{font-size:clamp(2rem,5vw,2.8rem)}.landing-head p{margin:0;max-width:26rem;color:var(--muted);font-size:.95rem}.landing-card{width:min(440px,100%);display:grid;gap:1rem;padding:1.75rem}.field{display:grid;gap:.4rem}.field>span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}input{width:100%;padding:.72rem .8rem;border-radius:10px;border:1px solid var(--border);background:#0f0a0699;color:var(--text)}input::placeholder{color:#7d6c58}input:focus{border-color:var(--border-strong)}.primary,.ghost{border-radius:11px;padding:.78rem 1rem;cursor:pointer;transition:filter .12s ease,background .12s ease,transform .12s ease}.primary{border:0;background:linear-gradient(160deg,#f6c878,var(--accent-strong));color:#2b1803;font-weight:700}.primary:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.primary:disabled{opacity:.6;cursor:progress}.ghost{border:1px solid var(--border-strong);background:transparent;color:var(--text);font-size:.85rem}.ghost:hover{background:#f0b45f1a}.divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;margin:.15rem 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.notice{margin:0;padding:.65rem .8rem;border-radius:10px;border:1px solid rgba(238,139,139,.3);background:#ee8b8b1a;color:#ffc0c0;font-size:.82rem}.footnote{margin:.2rem 0 0;font-size:.74rem;text-align:center;line-height:1.5}.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%);max-width:min(28rem,calc(100vw - 2rem));padding:.7rem 1rem;border-radius:12px;border:1px solid var(--border-strong);background:var(--panel-solid);box-shadow:0 1rem 2rem #00000073;font-size:.85rem;z-index:20}@media(max-width:1100px){.game-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.pane-cookie{position:static;grid-column:1 / -1}.counter-panel{flex-direction:row;flex-wrap:wrap;justify-content:center;text-align:left}}@media(max-width:760px){.game-grid{grid-template-columns:minmax(0,1fr)}.counter-panel{flex-direction:column;text-align:center}}@media(max-width:560px){.shell{padding:1.5rem 1rem 2.5rem}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:space-between}.cookie{width:10.5rem}.counter-panel{padding:1.6rem 1rem 1.4rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stack-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:100%;margin:.25rem 0 0}.stack-stats div{padding:.55rem .4rem;border-radius:10px;border:1px solid var(--border);background:#0f0a0659;text-align:center}.stack-stats dt{font-size:.64rem;color:var(--muted)}.stack-stats dd{margin:.15rem 0 0;font-family:ui-serif,Georgia,serif;font-size:1rem;font-variant-numeric:tabular-nums}.upgrades{display:grid;gap:.7rem}.upgrades-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.upgrades-head span{font-family:ui-serif,Georgia,serif;font-size:1.05rem}.upgrades-head em{color:var(--muted);font-size:.72rem;font-style:normal;font-variant-numeric:tabular-nums}.upgrade-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(2.6rem,1fr));gap:.4rem}.upgrade{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;padding:.45rem;border-radius:10px;border:1px solid var(--border);background:#0f0a068c;color:var(--accent);cursor:pointer;transition:transform .1s ease,border-color .1s ease,background .1s ease}.upgrade svg{width:100%;height:100%;max-width:1.5rem;max-height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.upgrade[data-affordable=true]{border-color:var(--border-strong);background:#f0b45f24;box-shadow:0 0 .9rem #f0b45f2e}.upgrade:disabled{cursor:not-allowed;opacity:.55;color:var(--muted)}.upgrade[data-affordable=true]:disabled{opacity:1}.upgrade:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.upgrade-tip{position:absolute;left:50%;bottom:calc(100% + .5rem);z-index:30;display:none;width:13.5rem;max-width:min(13.5rem,calc(100vw - 1.5rem));flex-direction:column;gap:.2rem;padding:.55rem .65rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--panel-solid);color:var(--text);font-size:.74rem;line-height:1.35;box-shadow:0 .8rem 1.8rem #00000080;pointer-events:none;text-align:left}.upgrade-tip{right:auto;translate:0 0}.upgrade-tip[data-below=true]{top:calc(100% + .5rem);bottom:auto}.upgrade-tip[data-below=true]:after{top:-.3rem;bottom:auto}.upgrade-tip strong{color:var(--accent);font-weight:600}.upgrade-price{color:var(--muted);font-variant-numeric:tabular-nums}.upgrade:hover .upgrade-tip,.upgrade:focus-visible .upgrade-tip{display:flex}.upgrade-owned{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;margin:0;padding:.7rem 0 0;border-top:1px solid var(--border)}.upgrade-owned li{position:relative;display:grid;place-items:center;width:1.85rem;height:1.85rem;padding:.26rem;border-radius:8px;background:#f0b45f1f;color:#c9a46c}.upgrade-owned svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.upgrade-owned li:hover .upgrade-tip,.upgrade-owned li:focus-within .upgrade-tip{display:flex}.upgrades-empty{margin:0;font-size:.78rem;color:var(--muted);line-height:1.5}.building-icon{flex:none;width:1.5rem;height:1.5rem;fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.building[data-locked=true] .building-icon{stroke:var(--muted)}.building[data-locked=true] .building-info small{color:#6f5f4c}.golden-banner{position:fixed;left:50%;top:1.2rem;translate:-50% 0;z-index:25;padding:.65rem 1.1rem;border-radius:99px;border:1px solid rgba(255,210,110,.6);background:radial-gradient(circle at 30% 20%,#ffe7a6,#d99a37 70%);color:#3a2103;font-size:.85rem;font-weight:600;box-shadow:0 .8rem 2rem #f0b45f59;animation:golden-in .26s ease-out}@keyframes golden-in{0%{opacity:0;translate:-50% -.6rem}}.upgrade-rows{display:grid;gap:.45rem}.upgrade-row{display:grid;grid-template-columns:4.7rem minmax(0,1fr);align-items:center;gap:.45rem}.upgrade-cat{color:var(--muted);font-size:.64rem;line-height:1.2;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upgrade-row .upgrade-grid{grid-template-columns:repeat(auto-fill,2.25rem);justify-content:start}.upgrade-row{min-height:2.25rem}.upgrade-row .upgrade svg{max-width:1.15rem;max-height:1.15rem}@media(max-width:760px){.upgrade-row{grid-template-columns:3.6rem minmax(0,1fr)}}
