:root{color:#29382c;font-synthesis:none;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);background:#faf8f3;font-family:ui-rounded,-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button,.link-button{color:#29382c;cursor:pointer;background:#fff;border:1px solid #446334;border-radius:12px;min-height:44px;padding:10px 16px;font-weight:650}button:disabled{opacity:.55;cursor:wait}button.primary{color:#fff;background:#446334}button.peach{background:#f3bf97}a{color:#446334}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #29382c}.shell{max-width:1160px;padding:calc(16px + var(--safe-top)) 24px calc(40px + var(--safe-bottom));margin:auto}.masthead{border-bottom:1px solid #bed59e;justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand img{object-fit:contain;width:56px;height:56px}.brand b{font-size:22px;display:block}.eyebrow{letter-spacing:.12em;color:#446334;font-size:12px}.nav{flex-wrap:wrap;gap:8px;margin:16px 0 24px;display:flex}.nav button[aria-current=page]{color:#fff;background:#29382c}.hero{grid-template-columns:1fr 200px;align-items:center;gap:24px;margin:24px 0;display:grid}.hero h1{margin:12px 0;font-size:clamp(28px,5vw,48px);line-height:1.2}.hero img{object-fit:contain;width:180px;height:160px}.muted{color:#566451;font-size:14px;line-height:1.6}.tag{background:#e6eddc;border:1px solid #446334;border-radius:99px;padding:4px 10px;font-size:12px;display:inline-block}.rooms{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;display:grid}.panel,.room-tile{background:#fff;border:1px solid #bed59e;border-radius:20px;min-width:0;margin-bottom:20px;padding:24px}.room-tile{margin:0;position:relative;overflow:hidden}.room-tile h2{overflow-wrap:anywhere;margin:16px 0;font-size:24px}.tile-head{align-items:center;gap:12px;display:flex}.tile-head img{object-fit:contain;width:72px;height:72px}.tile-data,.counters{flex-wrap:wrap;gap:24px;margin:16px 0;display:flex}.tile-data b,.counters b{font-size:28px;display:block}.row,.actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.actions{margin:16px 0}.space{justify-content:space-between}.warning,.notice{overflow-wrap:anywhere;background:#f8e3d2;border-left:4px solid #446334;border-radius:8px;margin:12px 0;padding:12px 16px;line-height:1.6}.notice.error{background:#fff1ed;border-color:#932c22}.notice:empty{display:none}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:32px}h2{font-size:24px}p{line-height:1.6}.odds-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:16px 0;display:grid}.odds-row{background:#faf8f3;border-radius:12px;flex-direction:column;min-width:0;padding:12px;display:flex}.odds-row b{font-size:20px}.odds-row span{font-size:14px}.odds-row small{color:#566451;font-size:12px}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.detail-grid p{background:#faf8f3;border-radius:10px;margin:0;padding:12px;font-size:14px}.play-layout{grid-template-columns:minmax(0,1fr) 280px;gap:20px;display:grid}.play-layout aside{align-self:start}.hands-strip{flex-wrap:wrap;gap:8px;display:flex}.hand-chip{background:#f5f8f0;border:1px dashed #446334;border-radius:12px;padding:8px 12px;font-size:14px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:12px;display:grid}.card-item{text-align:left;background:linear-gradient(155deg,#fff,#f1f5eb);border:1px solid #859774;border-radius:16px;flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex;position:relative;overflow:hidden}.card-item[aria-pressed=true]{outline-offset:-3px;background:#e6eddc;outline:3px solid #446334}.card-item .portrait{object-fit:contain;color:#446334;place-items:center;width:100%;height:100px;font-size:26px;font-weight:750;display:grid}.card-item img{object-fit:contain;width:100%;height:100px}.card-item strong{overflow-wrap:anywhere;font-size:15px;line-height:1.4}.card-item small{overflow-wrap:anywhere;font-size:12px}.card-item .rarity{border:1px solid #446334;border-radius:6px;align-self:flex-start;padding:2px 6px;font-size:12px;font-weight:750}.card-item[data-tier=UR]{background:linear-gradient(140deg,#fff,#f8e3d2);border-color:#8c5130}.card-item[data-tier=SSR]{background:linear-gradient(140deg,#fff,#eee2f0)}.card-item .quantity{font-size:16px;font-weight:750}.card-item .hit{background:#f3bf97;border-radius:4px;padding:3px 6px;font-size:12px}.results{border-top:3px solid #f3bf97;margin-top:16px;padding-top:16px}.play-controls{z-index:2;background:#fff;border-bottom:1px solid #bed59e;padding:12px 0;position:sticky;top:0}.countdown{font-variant-numeric:tabular-nums;font-weight:650;line-height:1.6}.countdown.urgent{color:#932c22}.fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:8px;min-width:0;font-size:14px;display:flex}.field input,.field select,.field textarea{color:#29382c;background:#fff;border:1px solid #859774;border-radius:10px;width:100%;min-width:0;min-height:44px;padding:12px}.field textarea{min-height:120px}.tier-editor{border-bottom:1px solid #bed59e;grid-template-columns:minmax(64px,1fr) 1fr 1fr;align-items:center;gap:12px;padding:12px 0;display:grid}.tier-editor input{border:1px solid #859774;border-radius:8px;width:100%;min-width:0;padding:10px}.check-row{flex-wrap:wrap;gap:12px;margin:12px 0;display:flex}.check-row label{align-items:center;gap:6px;min-height:44px;display:flex}.check-row input{accent-color:#446334;width:20px;height:20px}summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:650}details{min-width:0}code,pre{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.empty{text-align:center;color:#566451;padding:32px 16px}.collection-item details{font-size:12px}.collection-item details p{max-height:180px;overflow:auto}.footnote{color:#566451;margin-top:24px;font-size:12px}.auth-panel{max-width:480px;margin:40px auto}.subnav{margin:16px 0}.compact{font-size:14px}.room-identity{color:#566451;overflow-wrap:anywhere;font-size:12px}.room-banner{color:#fff;background:#29382c;border-radius:20px;margin-bottom:20px;padding:24px}.room-banner .muted{color:#e6eddc}.room-banner h1{margin:8px 0}.room-banner button{background:#f3bf97}.page-controls{align-items:center;gap:12px;margin:16px 0;display:flex}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=720px){.shell{padding-left:16px;padding-right:16px}.play-layout{grid-template-columns:1fr}.hero{grid-template-columns:1fr 88px;gap:8px}.hero img{width:88px;height:110px}.hero h1{font-size:30px}.panel,.room-tile{border-radius:16px;padding:16px}.masthead{align-items:flex-start}.brand b{font-size:18px}.brand img{width:44px;height:44px}.masthead .muted{text-align:right;max-width:100px;font-size:12px}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.odds-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nav{gap:6px}.nav button{padding:8px 12px;font-size:14px}.counters{gap:16px}.play-controls{top:var(--safe-top)}.tier-editor{grid-template-columns:64px 1fr 1fr}.room-banner{padding:16px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.catalogue-row{border-bottom:1px solid #bed59e;grid-template-columns:2fr 1fr 1fr 90px;gap:12px;padding:16px 0;display:grid}.tier-editor{grid-template-columns:minmax(54px,1fr) 1.4fr .8fr .8fr}@media (width<=720px){.catalogue-row{grid-template-columns:1fr 1fr}.tier-editor{grid-template-columns:44px 1.4fr .8fr .8fr;gap:6px;font-size:12px}.tier-editor input{padding:10px 5px}}.tag{color:#29382c}@media (width<=720px){.shell{padding-left:12px;padding-right:12px}.panel{padding:12px}.cards-grid{align-items:start;gap:8px}.collection-item>details summary{padding:10px 0;font-size:11px;line-height:1.4}.collection-item>.quantity{font-size:14px}}@media (width>=380px) and (width<=720px){.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
