:root{color-scheme:dark;--bg:#12151b;--panel:#1b2028;--line:#333842;--muted:#a4abb5;--ink:#f3f4ee;--lime:#d7ff79;--accent:var(--lime)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Segoe UI','Yu Gothic UI','Meiryo',sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px}button{touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.15)}[hidden]{display:none!important}.site-header{max-width:1440px;margin:auto;padding:26px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.logo{font-size:16px;font-weight:800;letter-spacing:1.7px;display:flex;align-items:center;gap:12px}.logo-icon{display:grid;place-items:center;width:34px;height:34px;background:var(--lime);color:var(--bg);border-radius:9px;font-size:27px;letter-spacing:-3px;padding-right:4px}.beta{font-size:9px;font-weight:500;letter-spacing:1px;color:var(--muted);border-left:1px solid var(--line);padding-left:13px}.header-right{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.live-dot{width:6px;height:6px;background:var(--lime);border-radius:50%}main{max-width:1344px;padding:0 48px;margin:auto}.hero{padding:66px 0 49px;display:flex;justify-content:space-between;align-items:flex-end}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--accent);font-weight:700;margin:0 0 20px}.hero h1{font-size:clamp(50px,6.5vw,88px);letter-spacing:-5px;line-height:1.15;margin:0;font-weight:900;position:relative}.outlined{color:var(--lime)}.spark{font-style:normal;color:var(--lime);position:absolute;right:-85px;top:24px;font-size:83px;font-weight:400;transform:rotate(13deg)}.hero-copy{color:var(--muted);line-height:1.9;font-size:14px;margin:25px 0 0}.hero-note{text-align:right}.hero-note>span{font-size:11px;letter-spacing:2px;display:block;transform:rotate(-8deg);color:var(--lime);margin-bottom:20px}.hero-note p{font-size:12px;line-height:1.9;color:var(--muted)}.collection-count{display:flex;align-items:center;justify-content:flex-end;gap:15px;margin-top:25px}.collection-count b{font-size:66px;font-weight:300;line-height:1}.collection-count span{font-size:10px;letter-spacing:1.5px;text-align:left;line-height:1.8;color:var(--muted)}.section-top{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:26px 0 20px}.section-top h2{font-size:16px;margin:0}.section-top>span{font-size:9px;letter-spacing:1.6px;color:var(--muted)}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.game-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#1a1e25;transition:transform .25s,border-color .25s}.game-card:hover{transform:translateY(-7px);border-color:var(--lime)}.card-art{height:260px;position:relative;overflow:hidden}.card-art:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(black,transparent)}.pin-card .card-art{background:#28352b}.sort-card .card-art{background:#29243e}.tower-card .card-art{background:#3b2c26}.card-number{position:absolute;top:20px;left:20px;font-size:10px;letter-spacing:1.7px;color:#ffffffb0}.art-tag{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-size:11px;font-weight:600;color:#ffffffc9}.card-info{padding:23px 22px 18px}.card-heading{display:flex;align-items:center;justify-content:space-between}.card-heading h3{font-size:21px;letter-spacing:-1px;margin:0}.arrow{border:1px solid #565b60;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:19px}.card-info>p{font-size:12px;color:var(--muted);line-height:1.8;margin:10px 0 21px}.card-meta{display:flex;justify-content:space-between;font-size:10px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);gap:5px}.card-meta span:last-child{color:var(--lime);font-size:9px;letter-spacing:1px}.pin-preview{position:absolute;width:210px;height:180px;left:50%;top:47px;transform:translateX(-50%);border:9px solid #60775b;border-radius:24px;background:#152c25;box-shadow:0 12px 25px #0003}.mini-tank{position:absolute;top:0;height:52px;width:92px;display:grid;place-items:center;font-size:26px;font-weight:900}.water{left:0;background:#54bde8;color:#d0faff;border-radius:14px 0 0 0}.lava{right:0;background:#fb814b;color:#ffdab0;border-radius:0 14px 0 0}.mini-pin{position:absolute;height:8px;border-radius:5px;background:#e8e693;box-shadow:0 3px #857941;width:96px;top:54px;z-index:2}.mini-pin:after{content:'';width:15px;height:15px;border:4px solid #e8e693;border-radius:50%;position:absolute;right:-9px;top:-3px}.p1{left:-10px}.p2{right:-10px}.p3{top:115px;width:205px;left:-8px}.mini-gem{color:#d7ff79;font-size:48px;position:absolute;top:60px;left:73px;line-height:1;text-shadow:0 0 22px #d7ff7950}.mini-person{position:absolute;bottom:-4px;left:80px;font-size:40px;color:#f5e8bb}.sort-preview{position:absolute;inset:72px 32px 48px;display:flex;gap:12px;align-items:flex-end;justify-content:center;transform:rotate(-7deg)}.preview-tube{display:flex;flex-direction:column;width:42px;border:3px solid #ac9ccc;border-top-width:5px;height:127px;padding:18px 3px 3px;border-radius:5px 5px 22px 22px;overflow:hidden;box-shadow:4px 5px 0 #0002}.preview-tube i{flex:1;background:#e796e3}.preview-tube i:nth-child(2){background:#7ccee5}.preview-tube i:nth-child(3){background:#ffd277}.preview-tube i:nth-child(4){background:#ac92ee}.preview-tube:nth-child(2){transform:translateY(-20px)}.preview-tube:nth-child(2) i:nth-child(2n){background:#ac92ee}.preview-tube:nth-child(3) i:nth-child(2n){background:#7ccee5}.empty{background:#ffffff08}.tower-preview{position:absolute;top:35px;width:210px;left:50%;transform:translateX(-50%)}.mini-crown{display:block;text-align:center;font-size:28px;color:#ffd18b}.tower-preview>div{display:flex;gap:5px;border-bottom:7px solid #806257;background:#49382f;padding:4px 9px}.tower-preview>div>span{background:#2b211f;flex:1;padding:5px 7px;color:#ec9c83;display:flex;align-items:center;justify-content:space-around;font-size:23px}.tower-preview b{font-size:17px}.tower-preview .you{color:#d7ff79}.collection-footer{display:flex;justify-content:space-between;padding:20px 0 50px;font-size:12px;color:var(--muted)}.collection-footer span{color:var(--lime);margin-right:8px}.site-footer{border-top:1px solid var(--line);max-width:1344px;margin:auto;padding:24px 48px;display:flex;justify-content:space-between;font-size:10px;color:#939ba6;gap:15px}.footer-brand{font-weight:700;letter-spacing:1px}.quiet{background:transparent;border:1px solid var(--line);border-radius:8px;padding:9px 13px;font-size:12px;min-height:40px}.player-nav{padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px}.back{color:var(--muted)}#game-index{font-size:10px;letter-spacing:2px;color:var(--muted)}#quick-switch{display:flex;gap:8px}#quick-switch a{padding:8px 12px;border-radius:20px;color:var(--muted)}#quick-switch a[aria-current=true]{background:var(--accent);color:#17191d}.play-layout{display:grid;grid-template-columns:1fr minmax(360px,530px);gap:70px;max-width:1090px;margin:20px auto 60px;align-items:start}.game-intro{padding-top:25px}.game-intro h1{font-size:clamp(32px,4vw,49px);line-height:1.3;letter-spacing:-2px;margin:0 0 22px;white-space:pre-line}.game-intro>p:not(.eyebrow){font-size:14px;line-height:1.9;color:var(--muted)}.instruction{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:30px 0}.instruction>span{font-size:9px;letter-spacing:2px;color:var(--accent)}.instruction p{font-size:13px;line-height:2;margin:10px 0 0;white-space:pre-line}.stage-label{display:flex;justify-content:space-between;font-size:12px}.stage-label>span{color:var(--muted);font-size:10px}.level-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:15px 0}.level-picker button{background:var(--panel);border:1px solid var(--line);border-radius:10px;min-height:51px;font-size:16px;position:relative}.level-picker button.active{background:var(--accent);color:#191c20;border-color:var(--accent)}.level-picker button.cleared:after{content:'•';position:absolute;font-size:15px;right:5px;top:0;color:var(--accent)}.level-picker button.active:after{color:#191c20}.best-record{font-size:12px;color:var(--accent);min-height:25px}.hint-box{font-size:12px;margin:20px 0;color:var(--muted);line-height:1.9}.hint-box summary{cursor:pointer;padding:10px 0}.hint-box p{border-left:2px solid var(--accent);padding-left:12px}.game-intro .save-note{font-size:10px!important}.game-shell{border:1px solid var(--line);border-radius:20px;background:var(--panel);overflow:hidden;box-shadow:0 25px 80px #0003}.board-top{display:flex;justify-content:space-between;padding:21px 25px;align-items:center;border-bottom:1px solid var(--line)}#stage-number{font-size:9px;letter-spacing:2px;color:var(--accent)}.board-top h2{font-size:17px;margin:6px 0 0}.moves{text-align:right}.moves span{font-size:8px;letter-spacing:1.5px;color:var(--muted);display:block}.moves b{font-size:25px;font-weight:600}.board-wrap{position:relative;background:radial-gradient(ellipse at 50% 30%,#2b343b,#161c24)}.board{min-height:490px;position:relative;padding:16px}.board-bottom{padding:16px 20px;border-top:1px solid var(--line)}#message{font-size:12px;color:#c8d0da;text-align:center;min-height:21px;margin:0 0 12px;line-height:1.75}.board-actions{display:flex;justify-content:center;gap:10px}.result{position:absolute;inset:0;background:#10151cce;backdrop-filter:blur(8px);z-index:5;display:grid;place-items:center;padding:25px}.result-card{text-align:center;width:100%;max-width:330px;background:#242c35;border:1px solid #ffffff26;border-radius:22px;padding:28px;box-shadow:0 18px 60px #0005;animation:pop .3s ease-out}#result-kicker{font-size:10px;letter-spacing:2px;color:var(--accent)}#result-icon{font-size:60px;line-height:1.5;color:var(--accent)}.result h2{font-size:27px;margin:0 0 12px}.result p{font-size:13px;line-height:1.9;color:#bdc7d2;margin-bottom:24px}.primary{background:var(--accent);color:#161c20;border:0;border-radius:10px;min-height:48px;padding:12px 18px;width:100%;font-weight:700}.text-button{border:0;background:none;color:#bbc4cf;padding:15px 10px 0;font-size:12px;min-height:44px}.pin-svg{display:block;width:100%;height:auto;max-height:490px;overflow:visible}.pin-button{cursor:pointer}.pin-button:focus{outline:none}.pin-button:focus-visible .pin-handle{stroke:white;stroke-width:5}.pin-button:hover .pin-shaft{stroke:#fff8bc}.room-content{transition:fill .2s}.flowing{stroke-dasharray:10 8;animation:flow 1.2s linear infinite}.tube-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 21px;padding:36px 10px 25px;align-content:center;min-height:424px}.tube-button{background:none;border:0;padding:0 4px;color:var(--muted);transition:transform .2s;position:relative}.tube-button.selected{transform:translateY(-15px)}.tube-button.selected:before{content:'↓';position:absolute;color:var(--accent);font-size:24px;left:0;right:0;top:-28px}.tube-glass{width:65px;height:164px;border:3px solid #8195b1;border-top:6px solid #a6b6cd;border-radius:9px 9px 27px 27px;display:flex;flex-direction:column-reverse;padding:4px;overflow:hidden;background:linear-gradient(90deg,#ffffff10,transparent 50%,#ffffff08);box-shadow:inset 5px 0 #ffffff08,4px 8px 15px #0003}.selected .tube-glass{border-color:var(--accent);box-shadow:0 0 20px #d7ff7920}.liquid{height:32px;flex-shrink:0;background:var(--liquid);color:#152034;font-size:14px;display:grid;place-items:center;font-weight:800;border-top:1px solid #ffffff40;animation:fill .2s}.tube-label{display:block;font-size:10px;margin-top:11px;letter-spacing:1px}.complete-tube .tube-label{color:var(--accent)}.sort-legend{display:flex;justify-content:center;gap:13px;font-size:10px;color:var(--muted);padding-bottom:15px}.sort-legend i{font-style:normal;color:var(--c)}.tower-board{padding:18px 20px}.hero-power{display:flex;align-items:center;justify-content:space-between;background:#d7ff7910;border:1px solid #d7ff7940;border-radius:12px;padding:12px 18px;margin-bottom:18px}.hero-avatar{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--lime)}.hero-avatar svg{width:38px;height:43px}.power-number{font-size:30px;font-weight:800;color:var(--lime)}.tower-rows{display:flex;flex-direction:column-reverse;gap:8px}.tower-floor{display:grid;grid-template-columns:30px 1fr 1fr;gap:8px;align-items:center;opacity:.5}.tower-floor.active{opacity:1}.tower-floor.visited{opacity:.33}.floor-num{font-size:10px;text-align:center;color:var(--muted)}.tower-choice{min-height:59px;border:1px solid #7d6055;border-radius:10px;background:#352d2c;display:flex;align-items:center;justify-content:center;gap:12px;position:relative}.tower-choice:disabled{opacity:1}.tower-choice svg{width:27px;height:33px}.tower-choice b{font-size:22px}.tower-choice small{font-size:9px;display:block;font-weight:400;color:#c7b5ac}.tower-choice.enemy{color:#ffad92}.tower-choice.potion{color:#89d9ed;background:#203540;border-color:#3f6c7c}.tower-choice.multiply{color:#d8b1ff;background:#33293f;border-color:#6f548e}.tower-floor.active .tower-choice{border-width:2px;box-shadow:0 0 14px #ffd59a0a}.tower-choice.chosen:after{content:'✓';position:absolute;right:7px;top:4px;color:var(--lime)}.boss .tower-choice{grid-column:span 2;color:#ffcc7d;background:#443424;border-color:#aa8050}.tower-tip{text-align:center;color:var(--muted);font-size:10px;line-height:1.7;margin:16px 0 0}@keyframes pop{from{opacity:0;transform:translateY(15px) scale(.96)}to{opacity:1;transform:none}}@keyframes fill{from{opacity:.3}to{opacity:1}}@keyframes flow{to{stroke-dashoffset:-36}}@media(min-width:1500px){.hero{padding-top:80px}.card-art{height:280px}.pin-preview{top:60px}.sort-preview{top:85px}.tower-preview{top:50px}}@media(max-width:1000px){main{padding:0 28px}.site-header{padding:22px 28px}.game-grid{gap:15px}.card-info{padding:18px 15px}.card-heading h3{font-size:18px}.card-art{height:240px}.card-number{font-size:8px;left:15px}.sort-preview{left:18px;right:18px;gap:9px}.play-layout{gap:30px}.game-intro h1{font-size:35px}.level-picker{gap:4px}.level-picker button{min-height:44px}.hero h1{font-size:68px}.site-footer{padding:24px 28px}.beta{display:none}}@media(max-width:740px){.site-header{padding:18px 20px}.header-right>span{display:none}.logo{font-size:12px;gap:8px}.logo-icon{height:29px;width:29px;font-size:24px}main{padding:0 20px}.hero{padding:42px 0 35px}.hero h1{font-size:56px;letter-spacing:-3px}.spark{font-size:54px;right:-51px;top:24px}.hero-copy{font-size:12px}.eyebrow{font-size:8px}.hero-note{display:none}.section-top>span{display:none}.section-top h2{font-size:14px}.game-grid{grid-template-columns:1fr}.game-card{display:grid;grid-template-columns:40% 60%;border-radius:15px}.card-art{height:205px}.card-info{display:flex;flex-direction:column;justify-content:center;padding:16px}.card-heading{gap:5px}.card-heading h3{font-size:18px}.arrow{width:27px;height:27px;flex-shrink:0}.card-info>p{font-size:11px;margin-bottom:13px}.card-meta{font-size:9px;flex-wrap:wrap;gap:6px}.card-number{font-size:8px;top:13px;left:10px;letter-spacing:1px}.art-tag{display:none}.pin-preview{transform:translateX(-50%) scale(.57);top:35px}.sort-preview{inset:52px 8px 33px;gap:5px}.preview-tube{width:26px;height:104px;padding:14px 1px 2px;border-width:2px}.tower-preview{transform:translateX(-50%) scale(.64);top:8px}.collection-footer{display:block;font-size:10px;padding-bottom:26px}.site-footer{padding:20px;flex-wrap:wrap;font-size:9px}.site-footer>span:last-child{display:none}.player-nav{padding:19px 0;gap:8px}.player-nav #game-index{display:none}#quick-switch{gap:0}#quick-switch a{padding:8px 10px}.play-layout{grid-template-columns:1fr;gap:22px;margin:0 auto 35px;max-width:530px}.game-intro{padding-top:6px}.game-intro .eyebrow{margin-bottom:10px}.game-intro h1{font-size:33px;white-space:normal;margin-bottom:12px}.game-intro>p#game-description{display:none}.instruction{margin:15px 0;padding:12px 0}.instruction>span{display:none}.instruction p{margin:0;font-size:12px;line-height:1.85}.stage-label{font-size:11px}.level-picker{margin:10px 0;gap:7px}.hint-box{margin:7px 0}.hint-box summary{padding:4px 0}.best-record{min-height:0;font-size:11px}.game-intro .save-note{display:none}.board{min-height:400px;padding:8px}.board-top{padding:16px 20px}.board-wrap{min-height:400px}.tube-grid{padding:30px 0 18px;gap:25px 12px;min-height:395px}.tube-glass{width:57px;height:151px}.liquid{height:29px}.tower-board{padding:16px 12px}.tower-choice{min-height:58px}.board-bottom{padding:14px}.result{padding:18px}.result-card{padding:20px}.hero-power{margin-bottom:12px}.site-header .quiet{font-size:10px;min-height:36px;padding:7px 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Other projects: link to the original running games so updates and saves stay there. */
.collection-jump{display:inline-block;margin-top:23px;font-size:12px;color:var(--lime);border-bottom:1px solid #d7ff7950;padding:0 0 7px}
#collection{scroll-margin-top:24px}
.collection-description{font-size:12px;line-height:1.9;color:var(--muted);margin:-6px 0 23px}
.featured-grid .card-info>p{min-height:44px}
.collection-art{position:absolute;left:50%;top:41px;transform:translateX(-50%);width:88%;height:185px;filter:drop-shadow(0 10px 12px #0003)}
.gate-card .card-art{background:#1d3441}
.fps-card .card-art{background:#334946}
.rescue-card .card-art{background:#25443b}
.dev-badge{position:absolute;top:16px;right:16px;font-size:9px;border:1px solid #ffffff38;border-radius:20px;padding:4px 8px;color:#e4ece2;background:#101c1b40}
.featured-grid .card-number{font-size:9px;letter-spacing:1px;max-width:65%}
.linked-games-note{font-size:11px;color:var(--muted);line-height:1.9;margin:20px 0 35px}
@media(max-width:1000px) and (min-width:741px){.featured-grid .card-heading h3{font-size:16px}.featured-grid .card-number{font-size:8px}.dev-badge{right:10px;padding:4px 6px}.collection-art{height:165px}.featured-grid .card-info>p{font-size:11px}}
@media(max-width:740px){.collection-jump{margin-top:17px;font-size:11px}.collection-description{font-size:11px;margin-bottom:17px}.featured-grid .card-art{height:220px}.collection-art{width:170%;max-width:none;height:164px;top:44px}.featured-grid .card-number{font-size:7px;letter-spacing:0;top:12px;max-width:100%;left:9px}.dev-badge{top:31px;left:9px;right:auto;font-size:8px;padding:2px 6px}.featured-grid .card-info>p{min-height:0;line-height:1.9}.featured-grid .card-heading h3{font-size:16px;letter-spacing:-.5px}.featured-grid .card-meta{font-size:9px}.linked-games-note{font-size:10px;margin-bottom:26px}}

/* Brand: the game people wanted to play when they saw the ad. */
.logo .logo-icon{font-size:17px;letter-spacing:0;padding:0 0 0 2px;border-radius:9px}
.brand-name{font-size:23px;font-weight:900;letter-spacing:-1px;white-space:nowrap}.brand-name>span{color:var(--lime)}
.hero .eyebrow{font-size:12px;letter-spacing:2px}.hero h1{letter-spacing:-4px}.hero .spark{font-size:85px;left:300px;right:auto;top:53px;transform:rotate(0)}
.hero-copy{font-size:23px;line-height:1.7;color:var(--ink);font-weight:700;margin-top:26px}
.origin-copy{font-size:13px;line-height:1.9;color:var(--muted);margin:17px 0 0}
.hero-note>span{font-size:11px;letter-spacing:1px}.collection-count span{letter-spacing:.5px}
.origin-story{padding:35px 0 50px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.2fr;column-gap:45px}.origin-story>.eyebrow{grid-column:1/-1;font-size:10px;margin:0 0 15px}.origin-story h2{font-size:25px;line-height:1.6;letter-spacing:-1px;margin:0}.origin-story p{color:var(--muted);font-size:13px;line-height:2;margin:0}.mobile-break{display:none}
@media(max-width:740px){.brand-name{font-size:21px}.hero .eyebrow{font-size:10px;letter-spacing:.7px}.hero h1{font-size:64px}.hero .spark{font-size:64px;left:205px;right:auto;top:45px}.hero-copy{font-size:20px}.origin-copy{font-size:11px}.origin-story{display:block;padding:26px 0 35px}.origin-story h2{font-size:23px;margin:15px 0}.origin-story p{font-size:11px;line-height:2}.mobile-break{display:block}.site-footer>span:nth-child(2){font-size:9px}}

/* Additional puzzle boards share the collection's controls and saved records. */
.new-board-caption{display:flex;justify-content:space-between;align-items:center;color:var(--accent);padding:15px 9px 22px;font-size:11px;letter-spacing:1px}.new-board-caption b{font-size:12px;letter-spacing:0}.new-board-note{font-size:11px;line-height:1.8;text-align:center;color:var(--muted);padding:12px 4px;margin:8px 0}.parking-lot{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));aspect-ratio:1;gap:5px;margin:0 12px;background-color:#24323d;background-image:linear-gradient(#8fc2d215 1px,transparent 1px),linear-gradient(90deg,#8fc2d215 1px,transparent 1px);background-size:16.666% 16.666%;border:3px dashed #7495a9;border-radius:17px;padding:8px}.park-car{background:var(--car);color:#172c39;border:0;border-radius:13px;position:relative;box-shadow:inset 0 -5px #0002,0 3px 0 #101922;display:flex;align-items:center;justify-content:center;min-width:0;padding:0;transition:transform .15s}.park-car:hover{transform:translateY(-2px);filter:brightness(1.1)}.park-car b{font-size:27px;z-index:1;text-shadow:0 1px #fff8}.park-car small{position:absolute;bottom:4px;right:6px;font-size:9px;font-weight:bold}.car-window{position:absolute;inset:18% 29%;border:3px solid #182e4370;border-radius:5px;background:#eefaff40}.park-car.vertical .car-window{inset:29% 18%}.tile-shelves{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;min-height:260px;padding:0 4px}.tile-column{text-align:center;background:#ffffff04;border-radius:10px;padding:7px 2px}.shelf-number{display:block;color:var(--muted);font-size:10px;margin-bottom:8px}.fruit-tile{width:100%;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff1d9;color:#3b2a36;border:2px solid #ffb4cf;border-radius:10px;padding:7px 0;box-shadow:0 5px #b8878d}.fruit-tile>span{font-size:30px}.fruit-tile small{font-size:8px;font-weight:700;letter-spacing:-.5px}.fruit-tile:hover{background:#fff;transform:translateY(-2px)}.tile-upcoming{display:flex;flex-direction:column;gap:5px;padding-top:13px}.tile-upcoming span{background:#fff1d925;border:1px solid #ffffff12;border-radius:6px;line-height:32px;font-size:23px}.shelf-empty{color:var(--accent);font-size:24px;display:block;padding-top:19px}.tray-header{display:flex;justify-content:space-between;font-size:12px;padding:20px 6px 10px;color:var(--muted)}.tray-warning{color:#ffac95}.tile-tray{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;background:#131a23;border:1px solid #ffb4cf44;border-radius:12px;padding:9px 7px}.tray-slot{display:grid;place-items:center;aspect-ratio:1;min-width:0;border:1px dashed #ffffff25;border-radius:7px;font-size:27px}.tray-slot.filled{background:#fff1d9;border:1px solid #fff1d9;animation:pop .18s}.pipe-grid{display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));gap:5px;background:#0c2429;border:1px solid #79e2cb44;padding:9px;border-radius:14px}.pipe-cell{padding:0;aspect-ratio:1;min-width:0;background:#25373f;border:1px solid #41525a;border-radius:9px;display:block}.pipe-cell svg{display:block;width:100%;height:100%;overflow:hidden}.pipe-rim{stroke:#799298;stroke-width:20;fill:none;stroke-linecap:round}.pipe-water{stroke:#263d46;stroke-width:11;fill:none;stroke-linecap:round}.pipe-cell circle{fill:#263d46}.pipe-cell.wet .pipe-water{stroke:#79e2cb}.pipe-cell.wet circle{fill:#79e2cb}.pipe-cell.wet{background:#254b4b;border-color:#79e2cb66}.pipe-cell:hover{border-color:white}.pipe-inlet,.pipe-outlet{color:#79e2cb;font-size:11px;padding:7px 12px}.pipe-outlet{text-align:right;color:#ffd17c}.parking-card .card-art{background:#203d4c}.tiles-card .card-art{background:#4b3040}.pipes-card .card-art{background:#19443f}.new-preview{position:absolute;inset:55px 25px 44px;display:grid;align-content:center;justify-content:center;gap:9px;transform:rotate(-7deg)}.parking-preview{grid-template-columns:70px 70px}.parking-preview i{font-style:normal;background:#83d4ef;color:#203d4c;border:5px solid #b0e9ff;border-radius:12px;text-align:center;font-size:29px;line-height:47px;box-shadow:0 5px #0002}.parking-preview i:nth-child(2n){background:#ffc982;border-color:#ffdda9}.tiles-preview{grid-template-columns:repeat(3,49px);transform:rotate(7deg)}.tiles-preview i{font-style:normal;background:#fff1d9;border-radius:9px;display:grid;place-items:center;height:59px;font-size:32px;box-shadow:0 5px #b8878d}.pipes-preview{font-family:monospace;grid-template-columns:repeat(3,48px);gap:0;color:#8eeedc;transform:rotate(0);font-size:64px;line-height:50px;text-shadow:0 0 20px #79e2cb55}.pipes-preview i{font-style:normal;text-align:center}#quick-switch{flex-wrap:wrap;justify-content:flex-end}.player-nav{flex-wrap:wrap}#game-index{display:none}.result-undo{display:block;margin:10px auto 0;border:1px solid #ffffff38;background:transparent;color:var(--accent);border-radius:8px;padding:10px;min-height:44px;width:100%}.result-undo[hidden]{display:none}
@media(max-width:740px){#quick-switch{gap:2px}#quick-switch a{font-size:11px;padding:8px}.player-nav .back{flex-shrink:0}.new-preview{inset:45px 0 30px;transform:scale(.65) rotate(-7deg)}.pipes-preview{transform:scale(.72)}.parking-lot{margin:0 5px;padding:6px;gap:4px}.park-car{border-radius:9px}.park-car b{font-size:23px}.fruit-tile>span{font-size:25px}.fruit-tile small{font-size:7px}.tile-shelves{gap:4px}.fruit-tile{min-height:67px}.tray-slot{font-size:24px}.new-board-caption{padding-top:10px}.pipe-grid{gap:4px;padding:7px}.tile-upcoming span{font-size:21px}}
/* Four linked games form a balanced two-column collection. */
.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hole-card .card-art{background:radial-gradient(ellipse at 50% 60%,#243b50,#111b30)}
.hole-card .card-meta span:last-child{color:#7de7d9}
@media(max-width:740px){.featured-grid{grid-template-columns:1fr}.hole-card .card-art{height:230px}.hole-card .card-heading h3{font-size:15px}}
/* Parking: readable cars, exit lanes, and movement feedback. */
.parking-scene{position:relative;overflow:hidden;padding:28px 16px;border-radius:18px;background:#111d27;margin:0 2px;isolation:isolate}
.parking-scene .parking-lot{margin:0;border:2px dashed #7495a9;padding:9px;gap:7px;border-radius:12px}
.parking-exit{position:absolute;color:#9adff1;font:700 10px/1 sans-serif;letter-spacing:2px;z-index:3;pointer-events:none}
.exit-top{top:10px;left:50%;transform:translateX(-50%)}.exit-bottom{bottom:9px;left:50%;transform:translateX(-50%)}.exit-left{left:3px;top:50%;font-size:17px;letter-spacing:0}.exit-right{right:3px;top:50%;font-size:17px;letter-spacing:0}
.parking-scene .park-car{z-index:2;border:2px solid #ffffff50;box-shadow:inset 0 -4px #0002,0 3px 4px #0006;transition:filter .15s,outline-color .15s}
.parking-scene .park-car:hover{transform:none;filter:brightness(1.13)}.parking-scene .park-car:disabled{opacity:1;cursor:wait}
.parking-scene .park-car:before,.parking-scene .park-car:after{content:'';position:absolute;background:#101820;border:1px solid #7695a2;border-radius:3px;z-index:-1;pointer-events:none}
.park-car.horizontal:before,.park-car.horizontal:after{width:15%;height:6px;left:17%;box-shadow:40px 0 #101820}.park-car.horizontal:before{top:-5px}.park-car.horizontal:after{bottom:-5px}
.park-car.vertical:before,.park-car.vertical:after{height:15%;width:6px;top:17%;box-shadow:0 40px #101820}.park-car.vertical:before{left:-5px}.park-car.vertical:after{right:-5px}
.car-lights{position:absolute;background:#fff8c4;border-radius:2px;box-shadow:0 0 5px #fff8c4aa;pointer-events:none}
.direction-0 .car-lights,.direction-2 .car-lights{height:3px;left:18%;right:18%}.direction-0 .car-lights{top:2px}.direction-2 .car-lights{bottom:2px}
.direction-1 .car-lights,.direction-3 .car-lights{width:3px;top:18%;bottom:18%}.direction-1 .car-lights{right:2px}.direction-3 .car-lights{left:2px}
.parking-scene .car-moving{z-index:4;will-change:transform;outline:2px solid #caffdd;outline-offset:2px}
.parking-scene .car-blocked,.parking-scene .car-obstacle{outline:3px solid #ff917f;outline-offset:2px}.parking-scene .car-obstacle{filter:brightness(1.15);box-shadow:0 0 20px #ff795c88}
.parking-trail{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.parking-trail path{fill:none;stroke:#a8f5d7;stroke-width:9;stroke-dasharray:8 9;stroke-linecap:round;opacity:.75}.blocked-trail path{stroke:#ff917f}
#parking-feedback{letter-spacing:0;font-size:11px;line-height:1.6;max-width:70%;color:#b9f2ff}.new-board-caption:has(#parking-feedback){min-height:60px;padding-bottom:12px;gap:8px}.new-board-caption:has(#parking-feedback) b{white-space:nowrap}
@media(max-width:740px){.parking-scene{padding:25px 12px}.parking-scene .parking-lot{padding:7px;gap:6px}.parking-scene .park-car{border-radius:10px}.park-car.horizontal:before,.park-car.horizontal:after{box-shadow:27px 0 #101820}.park-car.vertical:before,.park-car.vertical:after{box-shadow:0 27px #101820}.parking-scene .park-car b{font-size:22px}.parking-scene .park-car small{font-size:9px;bottom:2px;right:4px}.exit-left{left:1px}.exit-right{right:1px}}
/* Pipe ports are aligned with the actual left inlet and right outlet. */
.pipe-port-label{display:flex;align-items:center;gap:11px;font-size:12px;line-height:1.6;margin:4px 0 13px;color:#bdcbd2}.pipe-port-label b{display:inline-block;border-radius:8px;padding:7px 14px;font-size:16px;letter-spacing:2px;background:#69d7ff;color:#122638;white-space:nowrap}.pipe-port-label strong{color:#8ce4ff}.outlet-label{justify-content:flex-end;margin:13px 0 4px}.outlet-label b{background:#ffd177;color:#332515}.outlet-label strong{color:#ffd177}
.pipe-network{--port-width:42px;--pipe-gap:5px;--pipe-pad:9px;display:grid;grid-template-columns:var(--port-width) minmax(0,1fr) var(--port-width);align-items:stretch}.pipe-network .pipe-grid{gap:var(--pipe-gap);padding:var(--pipe-pad);border-radius:10px}.pipe-port-side{display:grid;grid-template-rows:repeat(var(--size),minmax(0,1fr));gap:var(--pipe-gap);padding-block:calc(var(--pipe-pad) + 1px)}.pipe-source,.pipe-sink{display:flex;align-items:center;position:relative;z-index:1}.pipe-source{grid-row:1;color:#69d7ff}.pipe-sink{grid-row:var(--size);color:#ffd177}.pipe-port-side svg{width:100%;height:auto;overflow:visible}.port-pipe{fill:none;stroke:currentColor;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.tap-handle{fill:none;stroke:currentColor;stroke-width:5;stroke-linecap:round}.port-stream{fill:none;stroke:#e7fbff;stroke-width:3;stroke-dasharray:3 4}.port-arrow{fill:none;stroke:#15323e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.catch-basin{fill:#ffd17722;stroke:#ffd177;stroke-width:3;stroke-linejoin:round}.basin-water{stroke:#687b88;stroke-width:3}.water-delivered .basin-water{stroke:#79e2cb;stroke-width:6}
.pipe-network .pipe-cell{position:relative}.pipe-network .source-cell{border:2px solid #69d7ff;box-shadow:0 0 12px #69d7ff33}.pipe-network .sink-cell{border:2px solid #ffd177;box-shadow:0 0 12px #ffd17733}.source-cell:before,.sink-cell:after{content:'';position:absolute;top:50%;height:9px;width:calc(var(--pipe-pad) + 5px);transform:translateY(-50%);pointer-events:none}.source-cell:before{right:100%;background:#69d7ff}.sink-cell:after{left:100%;background:#ffd177}.port-cell-label{position:absolute;top:2px;left:2px;padding:1px 3px;border-radius:3px;color:#0d2734;background:#8ce4ff;font-size:9px;line-height:1.3;font-weight:800;pointer-events:none}.sink-cell .port-cell-label{background:#ffd177;color:#392710}
@media(max-width:740px){.pipe-network{--port-width:30px;--pipe-gap:4px;--pipe-pad:5px}.pipe-port-label{font-size:10px;gap:8px}.pipe-port-label b{font-size:14px;padding:6px 11px}.port-cell-label{font-size:8px;padding:1px 2px}.pipe-network .pipe-cell{border-radius:6px}}
@media(max-width:350px){.pipe-network{--port-width:25px;--pipe-gap:3px;--pipe-pad:4px}.pipe-port-label{font-size:9px}.pipe-port-label b{font-size:13px;padding:5px 9px}.port-cell-label{font-size:7px}}
/* Strategy edition: goals, movable cars, overlapping tiles and route constraints. */
.play-modes{display:flex;gap:5px;padding:5px;background:#111821;border:1px solid var(--line);border-radius:12px;margin:18px 0}.play-modes[hidden]{display:none}.play-modes button{flex:1;min-height:43px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;font-weight:700}.play-modes button[aria-pressed=true]{background:var(--accent);color:#15202b}.challenge-goal{font-size:12px;line-height:1.8;background:#ffffff07;border:1px solid #ffffff14;border-radius:8px;padding:10px;color:var(--accent);margin:8px 0 14px}.strategy-parking{padding:16px 35px 16px 12px}.strategy-parking .parking-lot{position:relative}.strategy-parking .strategy-gate{position:absolute;left:100%;top:36%;height:11%;width:34px;display:grid;place-items:center;background:#ff859e22;border:2px solid #ff859e;border-left:0;border-radius:0 6px 6px 0;color:#ffb1c0;font-size:9px;font-weight:800;white-space:nowrap}.strategy-parking .car-selected{outline:3px solid #f3fbff;outline-offset:1px}.strategy-parking .goal-car{box-shadow:0 0 16px #ff859e55}.slide-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 5px 0}.slide-controls>span{width:100%;text-align:center;font-size:12px;color:var(--accent)}.slide-controls button{flex:1;border:1px solid #80d6ef66;border-radius:9px;background:#253d4b;color:#dcf7ff;min-height:46px;font-weight:700}.slide-controls button:disabled{opacity:.35}
.layered-tiles{position:relative;width:100%;margin:5px 0 20px;border-radius:12px;background:radial-gradient(ellipse,#443148,#1a2530);isolation:isolate}.layer-tile{position:absolute;padding:2px;border:2px solid #ffe3ab;border-radius:10px;background:#fff0d5;color:#3b2635;box-shadow:0 4px 0 #a98472,0 6px 12px #0007;display:grid;place-items:center;transition:filter .15s,box-shadow .15s}.layer-tile>span{font-size:clamp(25px,3.2vw,40px);line-height:1}.layer-tile>small{position:absolute;bottom:3px;right:4px;font-size:9px;color:#675462}.layer-tile.covered:disabled{opacity:1;background:#aea6a7;border-color:#bbb4b1;color:#4a4343;filter:saturate(.55)}.layer-tile.available{border-color:#ffb4cf;box-shadow:0 4px 0 #ad728c,0 5px 10px #0007}.layer-tile.available:hover{filter:brightness(1.1);box-shadow:0 4px #ad728c,0 0 0 3px #ffb4cf,0 5px 10px #0007}.layer-tile:focus-visible{outline:3px solid white;outline-offset:-5px}
.pipe-objectives{display:flex;justify-content:center;gap:8px;align-items:center;color:#d8e0e5;font-size:12px;margin:0 0 9px}.pipe-objectives>span{display:grid;place-items:center;min-width:35px;height:35px;background:#243943;border:2px solid #d9b8ff;border-radius:50%;font-weight:800;color:#ead5ff}.pipe-objectives>span.passed{background:#79e2cb;color:#142f2e;border-color:#caffed}.pipe-condition{text-align:center;font-size:11px;line-height:1.7;min-height:32px;color:#c2cdd5;margin:0 0 14px}.pipe-checkpoint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;display:grid;place-items:center;background:#e3c5ff;color:#251338;border:2px solid #fff3ff;border-radius:50%;font-size:13px;font-weight:900;pointer-events:none}.wet .pipe-checkpoint{background:#b3ffe5;border-color:#e8fff7;color:#113c30}.pipe-cell.fixed-pipe:disabled,.pipe-cell.rock-cell:disabled{opacity:1}.pipe-cell.fixed-pipe{background:repeating-linear-gradient(135deg,#30424a 0 6px,#28383f 6px 12px);border-color:#bfbbb0}.pipe-lock{position:absolute;bottom:1px;right:1px;font-size:8px;background:#d4c8ad;color:#2c2820;padding:1px 2px;border-radius:3px}.pipe-cell.rock-cell{background:#171e25;border-style:dashed}.rock-cell svg{visibility:hidden}.pipe-rock{position:absolute;inset:0;display:grid;place-items:center;color:#7d8b95;font-size:16px;font-weight:900}
@media(max-width:740px){.strategy-parking{padding:12px 30px 12px 8px}.strategy-parking .strategy-gate{width:29px;font-size:8px}.layer-tile{border-radius:7px}.layer-tile>span{font-size:29px}.layer-tile>small{font-size:8px}.pipe-checkpoint{width:20px;height:20px;font-size:11px}.pipe-lock{font-size:7px}.challenge-goal{font-size:11px}.pipe-objectives{gap:7px}.pipe-condition{font-size:10px}}
