.splash{min-height:100%;display:grid;place-items:center;padding:1.5rem;background:linear-gradient(125deg,rgba(217,164,65,.11),transparent 36%),radial-gradient(circle at 78% 18%,rgba(47,191,113,.13),transparent 28%),#090b10}.splash-inner{width:min(27rem,100%);text-align:center;background:#151922d1;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:1.75rem;box-shadow:0 22px 70px #00000057}.splash-mark{width:42px;height:42px;display:grid;place-items:center;margin:0 auto .85rem;border-radius:50%;background:var(--accent);color:#17140c;font-size:.76rem;font-weight:800}.splash h1{font-size:1.18rem;margin:0 0 .5rem}:root{--bg: #0c0e13;--panel: #151922;--panel-2: #1c2130;--line: #262c3a;--text: #e9ebee;--dim: #8b93a5;--accent: #d9a441;--err: #ef6d6d;--radius: 10px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.splash{min-height:100%;display:grid;place-items:center;padding:1.5rem}.splash-inner{text-align:center;max-width:26rem}.splash h1{font-size:1.2rem;margin:0 0 .5rem}.splash p{color:var(--dim);margin:0}.spin{width:26px;height:26px;margin:0 auto 1rem;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.signin{width:min(22rem,100%);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem;display:grid;gap:.75rem}.signin h1{font-size:1.15rem;margin:0 0 .25rem;text-align:center}.signin input{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;width:100%}.signin input:focus-visible,.filters select:focus-visible,.filters input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.signin .row{display:flex;gap:.5rem}.signin .row button{flex:1}.signin button,.filters button{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem}.signin button.primary{background:var(--accent);border-color:var(--accent);color:#17140c;font-weight:600}.signin button:disabled{opacity:.5;cursor:default}.err{color:var(--err);margin:0;font-size:.9rem}.header{display:flex;align-items:center;gap:.75rem;padding:.7rem 1rem;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.header .spacer{flex:1}.brand{background:none;border:0;padding:0;font-weight:600;letter-spacing:.02em}.balance{display:flex;align-items:baseline;gap:.35rem}.balance .label{color:var(--dim);font-size:.8rem}.balance b{font-variant-numeric:tabular-nums;color:var(--accent)}.who{color:var(--dim);font-size:.85rem;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost{background:none;border:1px solid var(--line);border-radius:8px;padding:.35rem .7rem;color:var(--dim);font-size:.85rem}.cats{display:flex;gap:.5rem;padding:.75rem 1rem;overflow-x:auto;scrollbar-width:none}.cats::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem;font-size:.88rem;color:var(--dim);white-space:nowrap}.chip.on{background:var(--accent);border-color:var(--accent);color:#17140c;font-weight:600}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:0 1rem 1rem}.filters select,.filters input{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;max-width:12rem}.filters .count{color:var(--dim);font-size:.85rem;margin-left:auto}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:.75rem;padding:0 1rem 2rem}.card{background:none;border:0;padding:0;text-align:left;display:grid;gap:.35rem}.card .thumb{aspect-ratio:4 / 3;border-radius:var(--radius);overflow:hidden;display:grid;place-items:center;border:1px solid var(--line);transition:transform .12s ease}.card:hover .thumb{transform:translateY(-2px)}.card .thumb img{width:100%;height:100%;object-fit:cover}.card .initials{font-size:1.6rem;font-weight:700;color:#ffffffd1;letter-spacing:.04em}.card .title{font-size:.88rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .sub{font-size:.75rem;color:var(--dim)}.card.busy{opacity:.45}.state{padding:3rem 1rem;text-align:center;color:var(--dim)}.toast{position:fixed;left:50%;bottom:1.25rem;transform:translate(-50%);max-width:min(30rem,calc(100vw - 2rem));background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem 2.2rem .8rem 1rem;box-shadow:0 8px 30px #00000080;z-index:20}.toast .msg{font-size:.9rem}.toast .corr{color:var(--dim);font-size:.75rem;margin-top:.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.toast .close{position:absolute;top:.4rem;right:.5rem;background:none;border:0;color:var(--dim)}.frame-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:30}.game-frame{width:100%;height:100%;border:0;display:block}.frame-cover{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);display:grid;place-content:center;justify-items:center;gap:.5rem;padding:1.5rem;text-align:center;color:var(--dim);z-index:1}.frame-cover h1{font-size:1.1rem;margin:0;color:var(--text)}.frame-cover p{margin:0}.frame-cover .row{display:flex;gap:.5rem;margin-top:.75rem}.frame-cover .row button{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:.55rem 1rem}.frame-cover .row button.primary{background:var(--accent);border-color:var(--accent);color:#17140c;font-weight:600}.frame-exit{position:absolute;top:max(.6rem,env(safe-area-inset-top));right:.6rem;width:34px;height:34px;border-radius:50%;background:#0000008c;border:1px solid rgba(255,255,255,.16);color:#fff;z-index:2}
