@font-face{font-family:Nunito;font-style:normal;font-weight:600 900;font-display:swap;src:url(/fonts/nunito-latin.woff2) format("woff2")}:root{--pl-bg: #fcfaf6;--pl-ink: #2b1236;--pl-ink-soft: #6f6378;--pl-line: #ece6de;--pl-coral: #f2665a;--pl-coral-edge: #c9463c;--pl-board: #2d1540;--pl-board-cell: #3a1e4f;--pl-tile: #fff8ec;--pl-tile-edge: #d9cbb8;--pl-chip: #f1ece6;--pl-radius: 14px;--pl-board-max: 440px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--pl-bg);color:var(--pl-ink);font-family:Nunito,ui-rounded,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:600;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}@keyframes pl-pop{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes pl-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.pl-pop{animation:pl-pop .26s ease-out}.pl-shake{animation:pl-shake .32s ease-in-out}@media (prefers-reduced-motion: reduce){.pl-pop,.pl-shake{animation:none}}:root{--topbar-h: 66px;--tabbar-h: 0px;--gutter: 64px;--plum: #2b1236;--lav: #e6ddfb;--shadow: 0 1px 2px rgba(43, 18, 54, .06), 0 6px 18px rgba(43, 18, 54, .08)}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:900;letter-spacing:-.01em}p{margin:0}button{cursor:pointer;border:0;background:none;padding:0}img{display:block;max-width:100%}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--pl-coral);outline-offset:2px;border-radius:8px}#view{min-height:calc(100svh - var(--topbar-h));padding-bottom:calc(var(--tabbar-h) + 32px)}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--gutter);background:color-mix(in srgb,var(--pl-bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--pl-line)}.brand{display:inline-flex;align-items:center;gap:12px;justify-self:start}.brand .mark{width:50px;height:50px;margin:0 -4px 0 -6px}.wordmark{font-size:31px;font-weight:900;letter-spacing:-.02em;line-height:1}.wordmark span{color:var(--pl-coral)}.tabs{display:flex;gap:40px;height:100%}.tabs a{display:flex;align-items:center;height:100%;font-size:17px;font-weight:700;position:relative}.tabs a:hover,.tabs a.active{color:var(--pl-coral)}.tabs a.active:after{content:"";position:absolute;left:-3px;right:-3px;bottom:13px;height:3px;border-radius:3px;background:var(--pl-coral)}.topbar-end{justify-self:end;display:flex;align-items:center;gap:14px}.coins{display:inline-flex;align-items:center;gap:6px;padding:6px 13px 6px 8px;border-radius:999px;background:#fff;border:1px solid var(--pl-line);font-size:16px;font-weight:800}.avatar{display:block;width:44px;height:44px;border-radius:50%;overflow:hidden}.search-link{display:none}body[data-page=play] .search-link{display:inline-flex}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--pl-ink)}.icon-btn svg{width:24px;height:24px}.tabbar{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 28px;border-radius:12px;font-size:18px;font-weight:800;white-space:nowrap;transition:transform 80ms ease,filter .12s ease}.btn:active{transform:translateY(2px)}.btn svg{width:20px;height:20px}.btn.primary{background:var(--pl-coral);color:#fff;box-shadow:0 3px 0 var(--pl-coral-edge)}.btn.primary:hover{filter:brightness(1.05)}.btn.dark{background:var(--plum);color:#fff}.btn.outline{background:#fff;border:1.5px solid var(--plum);height:48px;padding:0 18px;font-size:16px}.btn.ghost{background:transparent;color:var(--pl-ink)}.link-btn{color:var(--pl-coral);font-weight:800;text-decoration:underline}.chip{height:40px;padding:0 26px;border-radius:999px;background:var(--pl-chip);font-size:15px;font-weight:700}.chip:hover{background:#e8e1d8}.chip.on{background:var(--plum);color:#fff}.chips{display:flex;gap:14px;flex-wrap:wrap}.kicker{font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.page{max-width:1536px;margin:0 auto;padding:22px var(--gutter) 0}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head h1{font-size:56px;line-height:1.05}.page-tools{display:flex;gap:16px;align-items:center}.search{display:flex;align-items:center;gap:12px;width:292px;height:50px;padding:0 16px;background:#fff;border:1.5px solid #d9d2e3;border-radius:12px;color:var(--pl-ink-soft)}.search:focus-within{border-color:var(--plum)}.search input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:16px;color:var(--pl-ink)}.search input::placeholder{color:#8b8196}.section-head{display:flex;align-items:center;gap:48px;margin:28px 0 14px;flex-wrap:wrap;row-gap:12px}.section-head h2{font-size:34px}.hero{display:grid;grid-template-columns:1.78fr 1fr;gap:18px}.featured,.daily{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:265px;border-radius:16px;overflow:hidden;transition:transform .12s ease}.featured:hover,.daily:hover{transform:translateY(-2px)}.featured{background:var(--plum);color:#fff;padding:36px 40px}.featured .kicker{color:#e3d6ee;margin-bottom:8px}.featured h2{font-size:52px;line-height:1.05}.featured-tag{font-size:22px;color:#e9ddf3;margin:6px 0 30px}.featured .btn{width:156px}.featured-art{height:236px;width:auto;flex-shrink:1;min-width:0;object-fit:contain}.daily{background:var(--lav);padding:26px}.daily-label{font-size:22px;font-weight:800}.daily h2{font-size:28px;margin:12px 0 40px}.text-link{white-space:nowrap;display:inline-flex;align-items:center;gap:10px;color:var(--pl-coral);font-size:20px;font-weight:800}.text-link svg{width:22px;height:22px}.daily-text{flex:1 1 auto;min-width:190px}.daily-art{flex:0 1 auto;height:220px;width:auto;min-width:0;max-width:55%;object-fit:contain}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 20px}.tile{position:relative;display:block}.tile-art{display:flex;align-items:center;justify-content:center;aspect-ratio:338 / 188;border-radius:12px;background:var(--card);overflow:hidden;transition:transform .12s ease}.tile:hover .tile-art{transform:translateY(-2px)}.tile-art img{height:94%;width:auto;object-fit:contain}.tile-name{display:block;margin-top:8px;font-size:19px;font-weight:700}.tile-cat{display:block;font-size:15px;color:var(--pl-ink-soft)}.tile-meta{display:block;font-size:14px;font-weight:700;color:var(--pl-ink-soft)}.grid.recent .tile-cat,.grid.saved .tile-cat{display:none}.recent-wrap .section-head{margin-top:26px}.tile .heart{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--pl-coral);box-shadow:var(--shadow)}.tile .heart svg{width:22px;height:22px;fill:currentColor}.grid.saved{grid-template-columns:repeat(3,1fr);gap:16px 18px;margin-top:18px}.grid.saved .tile-art{aspect-ratio:460 / 180}.empty-note{color:var(--pl-ink-soft);margin-top:16px}.continue-wrap>h2,.my section>.section-head h2{font-size:34px}.continue-wrap>h2{margin-bottom:12px}.continue{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cont-card{display:flex;align-items:center;gap:40px;min-height:220px;padding:12px 40px 12px 64px;border-radius:14px;background:var(--card);transition:transform .12s ease}.cont-card:hover{transform:translateY(-2px)}.cont-card img{height:196px;width:216px;object-fit:contain;flex-shrink:0}.cont-text h3{font-size:32px}.cont-meta{font-size:20px;color:#6d6477;margin-top:10px}.cont-when{font-size:17px;color:var(--pl-ink-soft);margin:2px 0 16px}.cont-text .btn{width:196px}.saved-head{justify-content:space-between;margin-top:22px}.saved-head .count{color:var(--pl-ink-soft);font-weight:800}.sort{position:relative;display:inline-flex;align-items:center}.sort select{appearance:none;height:44px;padding:0 44px 0 20px;border-radius:10px;border:1.5px solid #d9d2e3;background:#fff;font:inherit;font-size:15px;color:var(--pl-ink)}.sort svg{position:absolute;right:14px;width:18px;height:18px;pointer-events:none}.empty{text-align:center;padding:48px 24px;display:grid;justify-items:center;gap:14px}.empty.slim{padding:28px 24px;border:2px dashed var(--pl-line);border-radius:16px;grid-column:1 / -1}.empty .kicker{color:var(--pl-coral)}.empty p{max-width:380px;color:var(--pl-ink-soft)}.play-page{padding:18px 16px 0}body[data-page=play]{overflow:hidden;overscroll-behavior:none}body[data-page=play] #view{padding-bottom:0}.deck{position:relative;overflow:hidden;height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 18px - 16px)}.daily-page .deck{height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 18px - 44px - 16px)}.deck>.gcard{position:absolute;inset:0;margin:0 auto;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;transition:transform .32s cubic-bezier(.2,.8,.2,1)}.deck>.gcard[data-pos=above]{transform:translateY(calc(-100% - 24px))}.deck>.gcard[data-pos=below]{transform:translateY(calc(100% + 24px))}.deck>.gcard.no-anim{transition:none}.deck>.gcard .stage{flex:1 0 auto;align-items:center}.deck.empty-deck{display:grid;place-items:center}@media (prefers-reduced-motion: reduce){.deck>.gcard{transition:none}}.daily-kicker{text-align:center;font-weight:800;color:var(--pl-ink-soft);margin:4px 0 16px}.gcard{position:relative;width:min(612px,100%);padding:26px 30px 28px;border-radius:18px;background:var(--card)}.gcard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gcard-title{display:flex;align-items:center;gap:18px;flex-wrap:wrap;row-gap:4px}.gcard h2{font-size:38px;line-height:1.1}.level-tag{padding:5px 20px;border-radius:999px;font-size:16px;font-weight:700;background:color-mix(in srgb,var(--card) 70%,#7a5bd0);background:#3c146e1a}.gcard-tools{display:flex;gap:4px}.gcard-tools .help-btn{border:2px solid var(--pl-ink);width:42px;height:42px}.gcard-tools .help-btn svg{width:22px;height:22px;stroke-width:2.2}.gcard-tools .help-btn svg circle{display:none}.save-btn.on svg{fill:var(--pl-coral);stroke:var(--pl-coral)}.only-phone{display:none}.tagline{font-size:20px;margin-top:6px}.pill-row{display:flex;justify-content:center;min-height:36px;margin:14px 0 12px}.status-pill{padding:6px 24px;border-radius:999px;background:#ffffffd9;font-size:17px;font-weight:700}.stage{position:relative;display:flex;flex-direction:column;justify-content:center;--pl-board-max: 472px;min-height:200px}.game-root{display:block;width:min(100%,var(--pl-board-max));margin:0 auto;position:relative;z-index:0;isolation:isolate}.stage-preview{width:min(100%,472px);aspect-ratio:480 / 300;border-radius:14px;display:flex;align-items:center;justify-content:center}.stage-preview img{width:100%;height:100%;object-fit:contain}.stage-error,.daily-done{padding:40px 16px;text-align:center;display:grid;gap:12px;justify-items:center}.daily-done img{width:240px}.daily-done .kicker{color:var(--pl-coral)}.gcard-actions{display:flex;justify-content:center;gap:20px;margin-top:22px}.chip-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:164px;height:48px;padding:0 22px;border-radius:999px;background:#fff;font-size:18px;font-weight:700;box-shadow:0 1px #2b12360f}.chip-btn:active{transform:translateY(1px)}.chip-btn svg{width:24px;height:24px}.chip-btn .cost{display:inline-flex;align-items:center;gap:3px;font-size:14px;font-weight:800;color:#b07a06}.chip-btn .cost svg{width:16px;height:16px}.overlay{position:absolute;inset:-8px;z-index:10;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--card) 80%,transparent);backdrop-filter:blur(3px);border-radius:16px;animation:fade-in .18s ease-out}.overlay-box{position:relative;width:min(92%,380px);padding:26px 24px 22px;background:#fff;border-radius:18px;box-shadow:var(--shadow);text-align:center;display:grid;gap:8px;justify-items:center}.overlay-box .kicker{color:var(--pl-coral)}.overlay-box h3{font-size:28px}.overlay-box .detail{display:inline-flex;align-items:center;gap:6px;font-size:18px;color:var(--pl-ink-soft)}.overlay-box .fine{font-size:14px;color:var(--pl-ink-soft)}.howto .detail{display:block;text-align:left;line-height:1.45;color:var(--pl-ink)}.overlay-box .close{position:absolute;top:8px;right:8px}.overlay-actions{display:grid;gap:6px;width:100%;margin-top:10px}.overlay-actions .btn{width:100%}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.rail{position:fixed;top:calc(var(--topbar-h) + 140px);left:calc(50% + 328px);display:grid;justify-items:center;gap:10px;width:104px}.rail-btn{display:grid;justify-items:center;gap:6px;font-size:15px;font-weight:600}.rail-btn .icon-btn{width:60px;height:60px;background:#fff;box-shadow:var(--shadow)}.rail-btn:hover .icon-btn{transform:translateY(-1px)}.rail-btn.save.on svg{fill:var(--pl-coral);stroke:var(--pl-coral)}.rail hr{width:60px;border:0;border-top:1px solid var(--pl-line);margin:6px 0}.rail-tip{font-size:14px;color:var(--pl-ink-soft);text-align:left;margin-top:12px}.rail-tip kbd{font:inherit}body[data-page=admin]{--tabbar-h: 0px}body[data-page=admin] .topbar,body[data-page=admin] .tabbar{display:none}.toast{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom));z-index:50;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:12px;background:var(--plum);color:#fff;font-weight:700;text-align:center;transition:opacity .18s ease,transform .18s ease}.toast.show{opacity:1;transform:translate(-50%)}@media (max-width: 1180px){:root{--gutter: 32px}.grid{grid-template-columns:repeat(3,1fr)}.rail{display:none}.only-phone{display:inline-flex}.hero{grid-template-columns:1fr}.cont-card{padding:12px 24px;gap:24px}.cont-card img{width:160px;height:160px}}@media (max-width: 900px){.tabs{gap:24px}.wordmark{font-size:26px}.continue{grid-template-columns:1fr}.grid.saved{grid-template-columns:repeat(2,1fr)}}@media (max-width: 760px){:root{--topbar-h: 56px;--tabbar-h: calc(64px + env(safe-area-inset-bottom)) ;--gutter: 16px}.topbar{grid-template-columns:1fr auto}.tabs{display:none}.brand .mark{width:40px;height:40px;margin:0 -4px 0 -5px}.brand{gap:8px}.wordmark{font-size:24px}.avatar,.avatar svg{width:36px;height:36px}.topbar-end{gap:8px}.coins{font-size:15px;padding:4px 10px 4px 6px}.tabbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--pl-line)}.tabbar a{display:grid;justify-items:center;align-content:center;gap:3px;font-size:12px;font-weight:700;color:var(--pl-ink-soft)}.tabbar a svg{width:24px;height:24px}.tabbar a.active{color:var(--pl-coral)}.page{padding-top:14px}.page-head{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:14px}.page-head h1{font-size:34px}.page-tools{gap:10px}.search{flex:1;width:auto;height:46px}.btn.outline{height:46px;padding:0 14px}.btn.outline span{display:none}.featured{min-height:0;padding:22px 20px}.featured h2{font-size:32px}.featured-tag{font-size:16px;margin:4px 0 16px}.featured .btn{width:120px;height:44px;font-size:17px}.featured-art{height:130px}.daily{min-height:0;padding:18px 20px}.daily-label{font-size:16px}.daily h2{font-size:22px;margin:6px 0 14px}.text-link{font-size:17px}.daily-art{height:110px}.section-head{gap:12px;margin:22px 0 12px}.section-head h2,.continue-wrap>h2,.my section>.section-head h2{font-size:26px}.chips{gap:8px;flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}.chip{height:36px;padding:0 18px;flex-shrink:0}.grid,.grid.saved{grid-template-columns:repeat(2,1fr);gap:14px 12px}.tile-name{font-size:16px}.tile-cat{font-size:13px}.tile .heart{top:8px;right:8px;width:34px;height:34px}.cont-card{min-height:0;padding:14px;gap:16px}.cont-card img{width:108px;height:108px}.cont-text h3{font-size:22px}.cont-meta{font-size:15px;margin-top:4px}.cont-when{font-size:13px;margin-bottom:10px}.cont-text .btn{width:auto;height:40px;padding:0 20px;font-size:16px}.play-page{padding:8px 8px 0}.deck{height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 8px - 8px)}.daily-page .deck{height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 8px - 36px - 8px)}.gcard{padding:16px 14px 18px;border-radius:16px}.gcard.tight{padding:8px 12px 10px}.gcard.tight .tagline{display:none}.gcard.tight h2{font-size:21px}.gcard.tight .gcard-title{flex-wrap:nowrap}.gcard.tight .level-tag{padding:2px 9px;font-size:12px;white-space:nowrap}.gcard.tight .gcard-tools .icon-btn,.gcard.tight .gcard-tools .help-btn{width:32px;height:32px}.gcard.tight .pill-row{margin:4px 0;min-height:26px}.gcard.tight .status-pill{font-size:13px;padding:3px 14px}.gcard.tight .gcard-actions{margin-top:6px}.gcard.tight .chip-btn{height:38px;font-size:15px}.gcard h2{font-size:26px}.gcard-title{gap:10px}.level-tag{padding:3px 12px;font-size:13px}.gcard-tools .icon-btn,.gcard-tools .help-btn{width:36px;height:36px}.gcard-tools svg{width:21px;height:21px}.tagline{font-size:16px;margin-top:2px}.pill-row{margin:10px 0;min-height:32px}.status-pill{font-size:15px;padding:5px 18px}.stage{--pl-board-max: min( calc(100vw - 44px) , calc(100dvh - var(--topbar-h) - var(--tabbar-h) - 280px))}.gcard-actions{gap:12px;margin-top:14px}.chip-btn{min-width:0;flex:1;max-width:180px;height:46px;font-size:16px;padding:0 12px}}
