.cp{--cp-ink:#2b2140;--cp-dim:#6c5f80;--cp-cyan:#1d766f;--cp-violet:#c23b55;--cp-gold:#94500f;--cp-red:#d9364f;--cp-glass:#fff8eae6;--cp-line:#2b214040;--cp-top:var(--pk-fx-top,72px);padding:var(--cp-top) max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));color:var(--cp-ink);font-family:var(--pk-font-body,system-ui, sans-serif);-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden;container:cp/size}.cp-stage{flex-direction:column;gap:clamp(4px,1.2cqmin,9px);width:min(100%,44rem);height:100%;min-height:0;margin:0 auto;display:flex}.cp-head{border:1px solid var(--cp-line);background:var(--cp-glass);border-radius:14px 4px;flex:none;grid-template-columns:1fr auto;grid-template-areas:"run beacons""stop beacons";column-gap:10px;padding:5px 12px 6px;display:grid}.cp-head__run{letter-spacing:.2em;text-transform:uppercase;color:var(--cp-cyan);grid-area:run;margin:0;font:700 .6rem/1.3 ui-monospace,SF Mono,Menlo,Consolas,monospace}.cp-head__stop{font:800 clamp(.95rem, .8rem + 1.3cqmin, 1.2rem) / 1.15 var(--pk-font-display,system-ui, sans-serif);letter-spacing:.01em;grid-area:stop;margin:0}.cp-beacons{grid-area:beacons;align-self:center;gap:3px;margin:0;padding:0;list-style:none;display:flex}.cp-beacons__b{background:0 0;border:1.5px dashed #2b214059;width:11px;height:14px}.cp-beacons__b[data-got]{background:var(--cp-violet);border-style:solid;border-color:#8a2c3a;animation:.5s ease-out cp-pop}.cp-chart{border:1px solid var(--cp-line);background:repeating-linear-gradient(170deg,#0000 0 22px,#7fb3c259 22px 30px,#0000 30px 60px),#fff8eaf0;border-radius:4px;flex:none;grid-template-rows:auto minmax(0,1fr);gap:2px;height:5.6rem;padding:4px 8px 6px;display:grid;box-shadow:0 2px 6px #2b214040}.cp[data-phase=choose] .cp-chart{flex:auto;height:auto;min-height:0}.cp-chart__title{letter-spacing:.14em;text-transform:uppercase;color:var(--cp-dim);margin:0;font:700 .72rem/1.2 ui-monospace,SF Mono,Menlo,Consolas,monospace}.cp[data-phase=choose] .cp-chart__title{color:var(--cp-cyan);font-size:clamp(.85rem,.7rem + 1cqmin,1.05rem)}.cp-chart__map{min-height:0;position:relative}.cp-lanes{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cp-lane{stroke:#6c5f8059;stroke-width:1.4px;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.cp-lane--open{stroke:var(--cp-cyan);stroke-dasharray:5 4}.cp-lane--flown{stroke:var(--cp-gold);stroke-dasharray:none;stroke-width:2.4px}.cp-node,.cp-stop{left:calc(var(--x,0) * 100%);top:calc(var(--y,0) * 100%);position:absolute;translate:-50% -50%}.cp-node{border:2px solid var(--cp-cyan);letter-spacing:.06em;text-transform:uppercase;width:2.4rem;height:2.4rem;color:var(--cp-cyan);background:#fff4dc;border-radius:50%;place-items:center;font:800 .48rem/1 ui-monospace,monospace;display:grid}.cp-node--signal{border-color:var(--cp-violet);color:var(--cp-violet)}.cp-node--signal[data-lit]{background:var(--cp-violet);color:#fff;box-shadow:0 0 18px var(--cp-violet)}.cp-stop{min-width:44px;min-height:44px;color:var(--cp-ink);cursor:pointer;background:0 0;border:0;border-radius:12px;justify-items:center;gap:1px;padding:2px;display:grid}.cp-stop[hidden]{display:none}.cp-stop:disabled{cursor:default}.cp-stop__mark{aspect-ratio:1;background:radial-gradient(circle, transparent 52%, hsl(var(--hue) 55% 45%) 54% 62%, transparent 64%), hsl(var(--hue) 70% 88%);border:2px dashed hsl(var(--hue) 55% 40%);border-radius:50%;width:clamp(1.4rem,.8rem + 3cqmin,2.6rem);position:relative}.cp-stop__name{font:700 clamp(.58rem, .5rem + .6cqmin, .78rem) / 1.1 var(--pk-font-body,system-ui, sans-serif);white-space:nowrap;text-shadow:0 1px #fff}.cp-stop__rule{color:var(--cp-gold);white-space:nowrap;font:600 .66rem/1.1 ui-monospace,monospace;display:none}.cp[data-phase=choose] .cp-stop__rule{display:block}.cp-stop[data-open] .cp-stop__mark{box-shadow:0 0 0 3px var(--cp-cyan), 0 0 18px var(--cp-cyan);animation:1.8s ease-in-out infinite cp-breathe}.cp-stop[data-open]:hover .cp-stop__mark,.cp-stop:focus-visible .cp-stop__mark{box-shadow:0 0 0 3px #2b2140, 0 0 18px var(--cp-cyan)}.cp-stop:focus-visible{outline-offset:2px;outline:2px solid #2b2140}.cp-stop[data-chosen] .cp-stop__mark{box-shadow:0 0 0 3px var(--cp-gold)}.cp-stop[data-closed]{opacity:.35}.cp-rule{border-left:3px solid var(--cp-cyan);background:#fff4dcf2;border-radius:4px;flex:none;padding:5px 12px}.cp-rule[hidden]{display:none}.cp-rule__name{color:var(--cp-cyan);text-transform:uppercase;letter-spacing:.08em;margin:0;font:800 .8rem/1.2 ui-monospace,monospace}.cp-rule__brief{margin:1px 0 0;font-size:clamp(.72rem,.66rem + .5cqmin,.86rem);line-height:1.3}.cp-board{--sw:clamp(1.4rem, .8rem + 2.5cqw, 2.2rem);border:1px solid var(--cp-line);scrollbar-width:thin;background:radial-gradient(at 50% 120%,#2fa39a1f,#0000 60%),#fffaf0ed;border-radius:16px;flex-wrap:wrap;flex:auto;place-content:safe center center;gap:8px 13px;min-height:0;padding:10px;display:flex;overflow-y:auto}.cp-word{gap:3px;display:inline-flex}.cp-stamp{width:var(--sw);min-width:24px;color:var(--cp-violet);cursor:pointer;touch-action:manipulation;background:#fffdf6;border:2px dashed #2b214047;border-radius:2px;justify-items:center;gap:3px;padding:4px 2px 2px;display:grid;box-shadow:0 1px 2px #2b214033}.cp-stamp__written{font:700 calc(var(--sw) * .62) / 1 "American Typewriter", "Courier New", var(--pk-font-body,monospace);color:var(--cp-violet)}.cp-stamp__face{width:100%;min-height:1.35em;font:800 calc(var(--sw) * .62) / 1.1 var(--pk-font-display,system-ui, sans-serif);color:var(--cp-gold);border-top:2px solid #2fa39a59;place-items:center;display:grid}.cp-stamp[data-sel]{box-shadow:0 0 0 2px var(--cp-cyan);color:#fff;background:#2fa39a33}.cp-stamp:focus-visible{outline-offset:1px;outline:3px solid #2b2140}.cp-stamp[data-given] .cp-stamp__written{font:700 calc(var(--sw) * .62) / 1 "American Typewriter", "Courier New", var(--pk-font-body,monospace);color:var(--cp-violet)}.cp-stamp__face{color:var(--cp-violet)}.cp-stamp[data-wrong]{color:var(--cp-red);background:#ff7d8f40;animation:.36s ease-out cp-shake}.cp-stamp[data-pop] .cp-stamp__written{font:700 calc(var(--sw) * .62) / 1 "American Typewriter", "Courier New", var(--pk-font-body,monospace);color:var(--cp-violet)}.cp-stamp__face{animation:.32s ease-out cp-pop}.cp-board[data-flare] .cp-stamp{animation:.9s ease-out both cp-flare;animation-delay:calc(var(--i,0) * 25ms)}.cp-keys{flex:none;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;display:grid}.cp-key{min-width:0;min-height:42px;color:var(--cp-ink);font:800 clamp(.95rem, .8rem + .8cqw, 1.15rem) / 1 var(--pk-font-display,system-ui, sans-serif);cursor:pointer;touch-action:manipulation;background:linear-gradient(#fffaf0,#efe2c4);border:1px dashed #2fa39a66;border-radius:8px;place-items:center;padding:0;display:grid;box-shadow:0 2px #2b214040}.cp-key:hover{background:linear-gradient(#fff,#f5e8cc)}.cp-key:active{background:var(--cp-cyan);color:#fff}.cp-key[data-used]{color:var(--cp-dim);background:#2b21401f}.cp-key:focus-visible{outline-offset:-3px;outline:3px solid #2b2140}.cp-key--clear{background:linear-gradient(#f6c7cf,#e9a1ad)}.cp-foot{flex:none;gap:5px;display:grid}.cp-status{background:var(--cp-glass);border-radius:8px;min-height:2.4em;margin:0;padding:4px 10px;font-size:clamp(.78rem,.72rem + .5cqmin,.92rem);line-height:1.25}.cp-status[data-tone=good]{color:var(--cp-cyan)}.cp-status[data-tone=bad]{color:#ffc0c9}.cp-status[data-tone=note]{color:var(--cp-gold)}.cp-actions{gap:8px;display:flex}.cp-btn{border:1px solid var(--cp-cyan);min-height:44px;color:var(--cp-ink);font:700 .88rem / 1 var(--pk-font-body,system-ui, sans-serif);cursor:pointer;background:#fff8ea;border-radius:22px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.cp-btn:hover{background:#fdeccf}.cp-btn:focus-visible{outline-offset:2px;outline:3px solid #2b2140}.cp-btn[aria-pressed=false]{opacity:.75}.cp-btn__cost{color:var(--cp-dim);font-size:.64rem}.cp[data-hinted] .cp-btn__cost{color:var(--cp-gold)}.cp[data-phase=choose] .cp-rule,.cp[data-phase=choose] .cp-board,.cp[data-phase=choose] .cp-keys,.cp[data-phase=choose] .cp-actions{display:none}.cp-card{left:50%;top:calc(var(--cp-top) + 4px);width:min(100% - 20px,30rem);max-height:calc(100% - var(--cp-top) - 12px);border:1px solid var(--cp-cyan);background:linear-gradient(160deg,#fffaf0,#f3e4c4);border-radius:20px 6px;gap:6px;padding:16px 18px 18px;animation:.36s cubic-bezier(.2,1.2,.4,1) both cp-card-in;display:grid;position:absolute;overflow-y:auto;transform:translate(-50%);box-shadow:0 0 30px #2fa39a40,0 18px 40px #0009}.cp-card[hidden]{display:none}.cp-card__kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--cp-cyan);margin:0;font:700 .68rem/1.2 ui-monospace,monospace}.cp-card__title{font:800 clamp(1.3rem, 1rem + 2cqmin, 1.75rem) / 1.1 var(--pk-font-display,system-ui, sans-serif);margin:0}.cp-card__rule{color:var(--cp-gold);text-transform:uppercase;letter-spacing:.06em;margin:0;font:800 .9rem/1.2 ui-monospace,monospace}.cp-card__body{color:#3b2f52;margin:0;font-size:.92rem;line-height:1.4}.cp-card__text{border-left:3px solid var(--cp-violet);font:700 1rem / 1.35 var(--pk-font-display,system-ui, sans-serif);background:#e66a7f1a;margin:0;padding:10px 12px}.cp-example{border-top:1px dashed var(--cp-line);flex-wrap:wrap;gap:8px;margin:0;padding:8px 0 0;list-style:none;display:flex}.cp-example[hidden]{display:none}.cp-example__pair{width:2.6rem;color:var(--cp-cyan);justify-items:center;gap:3px;display:grid}.cp-example__pair .cp-example__true{font:800 1.15rem / 1 var(--pk-font-display,system-ui, sans-serif);color:var(--cp-gold)}.cp-go{color:#fff;min-height:48px;font:800 1.05rem / 1 var(--pk-font-body,system-ui, sans-serif);cursor:pointer;background:linear-gradient(90deg,#e66a7f,#c9772e);border:0;border-radius:24px;margin-top:6px}.cp-go:focus-visible{outline-offset:2px;outline:3px solid #2b2140}.cp[data-clean=yes] .cp-card--arrived .cp-card__title{color:var(--cp-cyan)}.cp[data-cover] .cp-keys,.cp[data-cover] .cp-foot,.cp[data-cover] .cp-rule{visibility:hidden}@container cp (height<=34rem){.cp-head__run{display:none}.cp-head{padding:3px 10px}.cp-head__stop{font-size:.9rem}.cp:not([data-phase=choose]) .cp-chart{display:none}.cp-rule{padding:3px 8px}.cp-rule__brief{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;display:-webkit-box;overflow:hidden}.cp-keys{gap:3px}.cp-board{gap:5px 9px;padding:6px}.cp-status{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:2px 8px;font-size:.72rem;display:-webkit-box;overflow:hidden}.cp-btn{min-height:40px}.cp-stop__name{display:none}.cp[data-phase=choose] .cp-stop__name{display:block}.cp-key{min-height:34px}.cp-status{min-height:0}.cp-btn__cost{display:none}}@container cp (height<=26rem){.cp:not([data-phase=choose]) .cp-chart{display:none}}@container cp (height<=26rem) and (width>=34rem){.cp:not([data-phase=choose]) .cp-stage{grid-template:"rule keys""board keys"minmax(0,1fr)"board status""board actions"/minmax(0,1.2fr) minmax(0,1fr);column-gap:10px;width:100%;display:grid}.cp:not([data-phase=choose]) .cp-head{display:none}.cp-rule{grid-area:rule;padding:3px 8px}.cp-rule__brief{display:none}.cp-board{grid-area:board}.cp-keys{grid-area:keys;align-self:start;gap:3px}.cp-key{min-height:32px;font-size:.9rem}.cp:not([data-phase=choose]) .cp-foot{display:contents}.cp-status{white-space:nowrap;text-overflow:ellipsis;grid-area:status;padding:2px 6px;font-size:.72rem;overflow:hidden}.cp-actions{grid-area:actions}.cp-btn{min-height:36px;font-size:.8rem}}@container cp (width>=40rem) and (height>=40rem){.cp-keys{grid-template-columns:repeat(14,minmax(0,1fr))}}@keyframes cp-dash{to{stroke-dashoffset:-18px}}@keyframes cp-breathe{50%{scale:1.08}}@keyframes cp-pop{0%{opacity:.2;scale:.4}70%{scale:1.15}to{scale:1}}@keyframes cp-flare{0%{color:var(--cp-cyan)}30%{color:#fff;background:#2fa39a66;translate:0 -4px}to{translate:0}}@keyframes cp-shake{30%{translate:-3px}60%{translate:3px}}@keyframes cp-card-in{0%{opacity:0;translate:0 14px}}[data-pk-motion=reduce] .cp-stamp,[data-pk-motion=reduce] .cp-stamp__face,[data-pk-motion=reduce] .cp-card,[data-pk-motion=reduce] .cp-stop__mark,[data-pk-motion=reduce] .cp-lane,[data-pk-motion=reduce] .cp-beacons__b{animation:none!important}
