/* The playable slice shares the site's day/night colours. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.demo-open{overflow:hidden}.demo-dialog{width:min(920px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:18px 28px 28px;border:2px solid var(--outline);border-radius:26px;background:var(--paper);color:var(--ink);box-shadow:10px 12px 0 #21152d80;overscroll-behavior:contain}.demo-dialog::backdrop{background:#1c1423c9;backdrop-filter:blur(7px)}
.demo-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.demo-page-link{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:4px}.demo-close{border:1px solid var(--line);border-radius:50%;background:var(--white);color:var(--ink);font:20px Arial,sans-serif;width:44px;height:44px;cursor:pointer}.demo-close:hover{background:var(--lavender)}
.demo-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:34px;align-items:center}.demo-playarea{min-width:0}.demo-info{min-width:0}.demo-info .eyebrow{font-size:9px;letter-spacing:1.2px;color:var(--muted)}.demo-info h1{font:900 clamp(38px,4vw,54px)/1.02 var(--display);letter-spacing:-2.5px;margin:17px 0}.demo-info h1 span{color:var(--headline-accent)}.demo-description{font-size:21px;line-height:1.45;font-weight:700}.demo-rules{font-size:13px;line-height:1.8;color:var(--muted);margin-top:16px;max-width:300px}.demo-rules strong{color:var(--ink)}
.demo-scorebar{display:flex;align-items:center;gap:26px;margin-bottom:13px}.demo-scorebar strong{display:block;font:900 26px/1.2 var(--display);font-variant-numeric:tabular-nums}.demo-kicker{font-size:8px;letter-spacing:1.5px;font-weight:800;color:var(--muted)}.demo-goal strong{color:var(--lime)}:root:not([data-theme="dark"]) .demo-goal strong{color:#7828a4}.demo-goal strong span{font-size:18px}.demo-restart{margin-left:auto;padding:10px 0 10px 10px;border:0;background:transparent;color:var(--muted);font:700 12px "Trebuchet MS",sans-serif;cursor:pointer;min-height:44px}.demo-restart:hover{color:var(--ink)}
.demo-board-wrap{position:relative}.demo-board{display:flex;flex-direction:column;gap:8px;padding:10px;border:2px solid var(--outline);border-radius:20px;background:var(--outline);box-shadow:0 6px 0 #21152d55;aspect-ratio:1;touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:5px}.demo-board:focus-visible{outline:3px solid var(--focus)}.demo-board-row{display:flex;flex:1;gap:8px;min-height:0}.demo-cell{position:relative;flex:1;min-width:0;background:var(--white);border-radius:12px;isolation:auto}.demo-tile{position:absolute;inset:0;display:grid;place-items:center;background:#fff9ed;border-radius:12px;overflow:hidden;box-shadow:0 2px 0 #0002;will-change:transform}.demo-tile img{height:100%;width:100%;object-fit:contain;pointer-events:none}.demo-tile>span{position:absolute;right:3px;bottom:3px;min-width:23px;padding:2px 5px;background:#34263f;color:#fff6e6;border-radius:6px;font:900 clamp(12px,2vw,18px)/1 var(--display);box-shadow:0 1px 2px #0003}.rank-1>span{background:#745387}.rank-2>span{background:#397989}.rank-3>span{background:#775329}.rank-4>span{background:#974c4c}.rank-5>span{background:#633d86}.rank-6>span{background:#1f705a}.demo-tile.is-new{animation:cat-appear .18s ease-out}.demo-tile.is-merged{animation:cat-merge .22s ease-out}
.demo-help{text-align:center;font-size:10px;line-height:1.8;color:var(--muted);margin:15px 0 8px}.demo-help kbd{font:11px monospace;margin-left:3px}.demo-controls{text-align:center}.demo-controls>div{display:flex;justify-content:center;gap:6px;margin-top:5px}.demo-controls button{width:44px;height:40px;min-height:40px;background:var(--white);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:22px/1 Arial,sans-serif;cursor:pointer;touch-action:manipulation}.demo-controls button:hover{background:var(--lavender)}.demo-controls button:active{transform:translateY(2px)}.demo-controls button:disabled{opacity:.35;cursor:default}
.demo-collection{border-top:1px solid var(--line);margin-top:26px;padding-top:18px}.collection-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.collection-heading h2{font-size:13px}.collection-heading>span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.cat-lineup{display:flex;gap:6px;margin-top:14px}.cat-member{flex:1;min-width:0;text-align:center}.cat-member img{width:100%;border-radius:9px;opacity:.3;filter:grayscale(1)}.cat-member.is-discovered img{opacity:1;filter:none;box-shadow:0 0 0 2px var(--blue)}.cat-member>span{font-size:9px;color:var(--muted);display:block;margin-top:7px}.demo-collection>p{font-size:11px;color:var(--muted);line-height:1.5;margin-top:12px}.demo-smallprint{display:flex;gap:12px;align-items:center;font-size:11px;line-height:1.7;color:var(--muted);margin-top:26px}.demo-smallprint>span{font-size:27px;color:var(--section-accent)}
.demo-result{position:absolute;inset:0;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#30253ff5;color:#fff1df;z-index:3}.demo-result[hidden]{display:none}.result-spark{font-size:42px;color:#ffc59c;margin-bottom:12px}.demo-result h2{font:900 29px/1.1 var(--display);letter-spacing:-1px;max-width:240px}.demo-result>p{font-size:13px;line-height:1.6;max-width:250px;margin-top:12px;color:#d5c4db}.demo-result .button{margin-top:19px;padding:13px 20px;gap:15px;cursor:pointer;font-family:inherit}.demo-result>p.demo-result-note{font-size:10px;margin-top:20px}
.demo-page{max-width:1120px}.demo-standalone{padding:24px 0 48px}.demo-standalone .demo-panel{gap:60px;max-width:860px;margin:0 auto}.demo-load-error{padding:35px;font-size:15px;line-height:1.7}.demo-load-error a{text-decoration:underline}
.game-demo-button{margin-top:20px;font-family:inherit;gap:22px}.game-copy>p.demo-card-note{font-size:11px;margin-top:14px}.game-art .cat-preview{position:absolute;width:108px;height:120px;object-fit:cover;border:3px solid var(--outline);border-radius:18px;box-shadow:5px 5px 0 var(--outline);background:#fff9ed}.cat-preview-one{left:calc(50% - 147px);top:90px;transform:rotate(-13deg);z-index:1}.cat-preview-two{left:calc(50% - 41px);top:118px;transform:rotate(5deg);z-index:3}.cat-preview-three{left:calc(50% + 49px);top:74px;transform:rotate(16deg);z-index:2}.game-art.cat-art{min-height:370px}.cat-art .game-art-title{font-size:29px;bottom:27px}
@keyframes cat-appear{from{transform:scale(.6);opacity:.4}to{transform:scale(1);opacity:1}}@keyframes cat-merge{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
@media(max-width:740px){.demo-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:10px 16px 20px;border-radius:20px}.demo-dialog-bar{margin-bottom:8px}.demo-panel,.demo-standalone .demo-panel{grid-template-columns:1fr;gap:22px;max-width:410px;margin:auto}.demo-info{border-top:1px solid var(--line);padding-top:18px}.demo-info h1{font-size:34px;letter-spacing:-1.5px;margin:10px 0}.demo-info h1 br{display:none}.demo-description{font-size:17px}.demo-description br{display:none}.demo-rules{font-size:12px;max-width:none;margin-top:8px}.demo-collection{margin-top:16px;padding-top:14px}.demo-smallprint{margin-top:18px}.demo-board{gap:7px;padding:8px;border-radius:16px}.demo-board-row{gap:7px}.demo-cell,.demo-tile{border-radius:10px}.demo-help{margin-top:12px}.demo-scorebar{gap:22px;margin-bottom:10px}.demo-scorebar strong{font-size:24px}.demo-controls{display:flex;justify-content:center;gap:6px}.demo-controls>div{margin:0}.demo-controls button{height:44px;min-height:44px}.demo-info .eyebrow{font-size:8px}.demo-standalone{padding-top:15px}.game-art.cat-art{min-height:290px}.cat-preview-one{top:60px}.cat-preview-two{top:89px}.cat-preview-three{top:47px}.cat-art .game-art-title{font-size:23px;bottom:20px}.demo-tile>span{font-size:15px}.demo-result{padding:17px}.demo-result h2{font-size:25px}.result-spark{font-size:30px;margin-bottom:8px}}
@media(max-width:370px){.demo-dialog{padding:10px 12px 18px}.demo-scorebar{gap:15px}.demo-tile>span{font-size:12px;min-width:20px;padding:2px 4px}.demo-board{gap:5px;padding:6px}.demo-board-row{gap:5px}.demo-result>p.demo-result-note{margin-top:10px}.demo-result .button{margin-top:12px}.game-art .cat-preview{width:94px;height:107px}.cat-preview-one{left:calc(50% - 129px)}.cat-preview-two{left:calc(50% - 38px)}.cat-preview-three{left:calc(50% + 40px)}}
@media(prefers-reduced-motion:reduce){.demo-tile.is-new,.demo-tile.is-merged{animation:none}}

/* Additional character art introduces the mobile game's collections.
   The playable demo continues to use the Cat Club only. */
.roster-art{min-height:380px;padding:0 24px}.preview-roster{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;position:absolute;left:24px;right:24px;top:103px}.crew-preview{display:block;min-width:0}.crew-preview img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff9ed;border:2px solid var(--outline);border-radius:13px;box-shadow:3px 4px 0 var(--outline)}.crew-preview span{display:block;text-align:center;margin-top:13px;font-size:10px;font-weight:800}.crew-preview:nth-child(1){transform:rotate(-8deg)}.crew-preview:nth-child(2){transform:rotate(4deg);margin-top:12px}.crew-preview:nth-child(3){transform:rotate(-4deg)}.crew-preview:nth-child(4){transform:rotate(7deg);margin-top:12px}.crew-preview:nth-child(5){transform:rotate(9deg)}.roster-art-title{position:absolute;left:25px;bottom:32px;font:900 24px/1.07 var(--display);letter-spacing:-.7px}.roster-count{position:absolute;right:23px;bottom:30px;display:flex;flex-direction:column;align-items:center;font-size:8px;max-width:80px;text-align:center;line-height:1.5}.roster-count strong{font:900 46px/1 var(--display);letter-spacing:-2px}
@media(max-width:1000px){.roster-art-title{font-size:21px}.preview-roster{gap:7px;left:19px;right:19px}.crew-preview span{font-size:9px}}
@media(max-width:740px){.roster-art{min-height:310px}.preview-roster{top:81px;left:20px;right:20px;gap:8px}.crew-preview span{font-size:9px;margin-top:11px}.crew-preview img{border-radius:10px;box-shadow:2px 3px 0 var(--outline)}.roster-art-title{font-size:21px;bottom:28px;left:23px}.roster-count{right:22px;bottom:28px;max-width:59px;font-size:7px}.roster-count strong{font-size:37px}}
@media(max-width:370px){.preview-roster{gap:6px;left:15px;right:15px}.crew-preview span{font-size:8px}.roster-art-title{font-size:16px;left:18px}.roster-count{right:16px}.roster-art{min-height:290px}}
