:root{color-scheme:light;--paper:#f5f7f3;--ink:#183d36;--muted:#667970;--teal:#23765c;--line:#dce5dc;--gold:#e8bc55;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #d89730;outline-offset:5px}button:disabled{opacity:.6;cursor:default}[hidden]{display:none!important}.center-header{max-width:1200px;margin:auto;padding:25px 32px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.center-brand{display:flex;align-items:center;gap:13px;font-size:21px;font-weight:750;letter-spacing:1px}.center-brand small{display:block;font-size:12px;letter-spacing:2.8px;font-weight:600;color:#778b7b;margin-top:5px}.logo-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#e1ead6;color:#2f7d53;font-size:32px;overflow:hidden}.logo-symbol img{width:100%;height:100%;object-fit:cover}.install-button{display:flex;align-items:center;gap:10px;border:1px solid #bfcfbd;border-radius:12px;min-height:46px;padding:10px 17px;background:transparent;color:var(--ink);font-size:14px;font-weight:650}.install-button>span{font-size:22px}.center-main{max-width:1136px;margin:auto;padding:43px 0 0}.welcome{display:flex;justify-content:space-between;align-items:center;margin:0 0 38px}.greeting{font-size:14px;color:#6e826d;letter-spacing:1px}.welcome h1{font-size:44px;letter-spacing:2px;line-height:1.25;margin:13px 0 15px;font-weight:800}.welcome h1>span{color:#56864e}.welcome p{font-size:16px;color:var(--muted);margin:0}.creator-stamp{width:150px;height:126px;border:1px solid #d7e2cf;border-radius:25px;transform:rotate(6deg);display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e9efdf;color:#5b794d;gap:7px}.creator-stamp>span{font-size:27px;color:#c59c44}.creator-stamp strong{font-size:17px}.creator-stamp small{font-size:12px}.collection-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.collection-title h2{display:flex;align-items:center;gap:10px;margin:0;font-size:19px}.collection-title h2>span{font:12px monospace;background:#e4ecdf;color:#637956;border-radius:7px;padding:5px 7px}.collection-title>span{font-size:13px;color:#829080}.featured-game{display:grid;grid-template-columns:1.23fr 1fr;overflow:hidden;background:#fff;border:1px solid #d9e3d7;border-radius:25px;box-shadow:0 12px 35px #244e2410}.game-cover{position:relative;display:block;min-height:385px;overflow:hidden;background:#254c3d}.game-cover img{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:62% 50%;transition:transform .6s}.game-cover:hover img{transform:scale(1.03)}.game-cover:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#11281be8)}.cover-label{position:absolute;top:23px;left:23px;background:#eff0dcf2;color:#355442;border-radius:8px;padding:8px 11px;font-size:12px;font-weight:600;box-shadow:0 2px 8px #10271b30}.cover-caption{position:absolute;bottom:25px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;font-size:19px;letter-spacing:1px;font-weight:600;color:#fff5de;z-index:1}.cover-caption b{font-size:31px;color:#e6ca79}.game-detail{padding:36px 34px;display:flex;flex-direction:column;justify-content:center}.game-tags{display:flex;gap:7px}.game-tags>span{font-size:12px;color:#5f7857;background:#eef3e8;padding:6px 9px;border-radius:6px}.game-detail h2{font-size:33px;letter-spacing:2px;margin:15px 0 11px}.game-detail>p{font-size:16px;line-height:1.85;margin:0;color:#65766b}.game-facts{display:flex;align-items:center;gap:20px;margin:23px 0 25px;color:#7a8a78;font-size:12px}.game-facts b{font:600 20px ui-rounded,sans-serif;color:#3c6652;margin-right:4px}.game-facts>span+span{border-left:1px solid #e5e9df;padding-left:20px}.play-button{min-height:53px;background:#276c50;color:#fff;border-radius:12px;padding:14px 18px;font-size:17px;font-weight:600;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 0 #164f38}.play-button:hover{background:#1d6044}.play-button>span:last-child{font-size:24px;font-weight:400}.save-note{font-size:12px;color:#8c9786;text-align:center;display:block;margin-top:14px}.saved-progress{background:#edf4e8;border-radius:8px;font-size:13px;padding:10px 12px;margin:-8px 0 17px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6f8268}.saved-progress strong{font-size:13px;color:#395c42}.next-game{margin-top:17px;display:flex;align-items:center;gap:18px;border:1px dashed #c9d6c4;border-radius:18px;padding:23px;background:#f0f4eb}.empty-game-icon{width:59px;height:59px;display:grid;place-items:center;background:#e4eddb;color:#86a173;font-size:34px;border-radius:15px}.next-game h3{font-size:17px;margin:0 0 7px;font-weight:600}.next-game p{font-size:14px;color:#8a9881;margin:0}.coming-label{margin-left:auto;white-space:nowrap;font-size:12px;color:#829473;border:1px solid #d6e1ce;border-radius:20px;padding:6px 11px}.pocket-card{display:flex;align-items:center;gap:22px;margin-top:28px;border:1px solid #dbe5d8;border-radius:19px;padding:27px;background:#e9f0e4}.pocket-icon{width:62px;height:74px;background:#d6e5ca;border:1px solid #b5cda4;border-radius:14px;display:grid;place-items:center;font-size:33px;color:#557f41;transform:rotate(-7deg)}.pocket-copy>span{font-size:12px;letter-spacing:1px;color:#758b65}.pocket-copy h2{font-size:21px;margin:7px 0}.pocket-copy p{font-size:14px;color:#6b805f;margin:0;line-height:1.6}.pocket-copy small{display:block;color:#728865;font-size:12px;margin-top:8px}.pocket-button{margin-left:auto;border:1px solid #b0c49d;border-radius:10px;background:transparent;color:#4e7140;min-height:45px;padding:10px 14px;white-space:nowrap;font-size:14px}.pocket-button span{margin-left:20px}.center-footer{max-width:1136px;margin:34px auto 0;display:flex;justify-content:space-between;color:#8a9983;font-size:12px;border-top:1px solid #e0e8dc;padding:23px 0 30px;padding-bottom:calc(30px + env(safe-area-inset-bottom))}.center-footer b{color:#c4a357;margin-left:8px}.install-dialog{color:#214534;background:#fafcf7;border:1px solid #c9dbbb;border-radius:23px;padding:29px;width:min(450px,calc(100% - 30px));max-height:85dvh;overflow:auto;box-shadow:0 20px 100px #15342655}.install-dialog::backdrop{background:#132e2480;backdrop-filter:blur(5px)}.dialog-x{position:absolute;right:13px;top:13px;width:40px;height:40px;border:0;background:transparent;font-size:27px;color:#607957}.dialog-symbol{font-size:34px;color:#c4a050}.install-dialog h2{font-size:23px;line-height:1.4;margin:16px 0}.install-dialog p,.install-dialog li{font-size:16px;line-height:1.8;color:#64765c}.install-dialog ol{padding-left:24px}.install-dialog li{margin:12px 0}.install-dialog b{color:#2c563b}.install-dialog .install-note{background:#eaf1e4;border-radius:10px;padding:12px;font-size:14px}.dialog-primary,.dialog-secondary{width:100%;min-height:47px;border-radius:10px;border:0;font-weight:600;margin-top:12px;background:#2d7250;color:white}.dialog-secondary{border:1px solid #d4dfcb;background:transparent;color:#45623b}.update-notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:14px 18px;color:#edf5e3;background:#274c3a;border-radius:12px;font-size:14px;max-width:calc(100vw - 32px);width:max-content;z-index:10}
@media(max-width:1200px){.center-main,.center-footer{margin-left:32px;margin-right:32px}.game-detail{padding:27px}.game-facts{gap:13px}.game-facts>span+span{padding-left:13px}}
@media(max-width:720px){.center-header{padding:18px 20px;padding-top:calc(18px + env(safe-area-inset-top))}.center-brand{font-size:18px;gap:10px}.center-brand small{font-size:10px;letter-spacing:1.7px}.logo-symbol{width:42px;height:42px;border-radius:12px}.install-button{font-size:13px;padding:9px 11px;min-height:44px}.install-button>span{font-size:19px}.center-main{margin:0;padding:29px 20px 0}.welcome{margin-bottom:30px}.welcome h1{font-size:33px;letter-spacing:.7px;margin:11px 0}.welcome p{font-size:14px}.greeting{font-size:13px}.creator-stamp{width:82px;height:89px;border-radius:18px;gap:4px;flex-shrink:0;margin-left:8px}.creator-stamp>span{font-size:20px}.creator-stamp strong{font-size:13px}.creator-stamp small{display:none}.collection-title{margin-bottom:14px}.collection-title h2{font-size:18px}.collection-title>span{font-size:12px}.featured-game{grid-template-columns:1fr;border-radius:19px}.game-cover{min-height:0;aspect-ratio:1.55}.game-cover img{object-position:62% 60%}.cover-label{top:15px;left:16px;font-size:12px;padding:6px 9px}.cover-caption{bottom:18px;left:18px;right:18px;font-size:16px}.cover-caption b{font-size:25px}.game-detail{padding:21px 21px 23px}.game-detail h2{font-size:28px;margin:12px 0 9px}.game-detail>p{font-size:15px;line-height:1.75}.game-detail>p br{display:none}.game-tags>span{font-size:12px;padding:5px 8px}.game-facts{margin:17px 0 22px;justify-content:flex-start;gap:17px}.game-facts>span+span{padding-left:17px}.game-facts b{font-size:19px}.play-button{font-size:17px;min-height:51px}.next-game{padding:17px;gap:13px;border-radius:15px}.empty-game-icon{width:45px;height:45px;flex-shrink:0;font-size:28px;border-radius:12px}.next-game h3{font-size:15px;margin-bottom:5px}.next-game p{font-size:13px;line-height:1.6}.coming-label{display:none}.pocket-card{margin-top:22px;padding:20px;gap:14px;flex-wrap:wrap;align-items:flex-start}.pocket-icon{width:44px;height:58px;font-size:25px;border-radius:11px;flex-shrink:0;margin-top:6px}.pocket-copy{flex:1;min-width:0}.pocket-copy h2{font-size:18px}.pocket-copy p{font-size:14px}.pocket-copy>span{font-size:12px}.pocket-button{width:100%;margin:4px 0 0;display:flex;justify-content:space-between;min-height:46px}.center-footer{margin:27px 20px 0;padding:20px 0 calc(22px + env(safe-area-inset-bottom));font-size:12px;display:block;text-align:center;line-height:2}.center-footer>span{display:block}}
@media(max-width:359px){.center-header{padding-left:15px;padding-right:15px}.center-brand{font-size:16px}.install-button{font-size:12px;padding:8px}.center-main{padding-left:15px;padding-right:15px}.welcome h1{font-size:28px}.creator-stamp{width:66px;height:77px}.game-facts{gap:10px}.game-facts>span+span{padding-left:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:720px){.welcome h1{font-size:31px}.creator-stamp{display:none}}

/* The library and adventure share the same twilight-and-gold palette. */
body{background:#102c38;color:#f3e9d0}.center-header{border-color:#b1c9c329}.center-brand small,.greeting,.collection-title>span{color:#a7c2c2}.welcome h1>span{color:#e4bf7a}.welcome p{color:#a9c3c7}.install-button{border-color:#87aaa964;color:#efe4c6;background:#1c3e49}.collection-title h2>span{background:#254853;color:#d6e2d7}.featured-game{background:#173844;border-color:#8cadac4d;box-shadow:0 20px 60px #03192366}.game-cover img{object-position:70% 50%}.game-detail>p{color:#b5cbd0}.game-tags>span{background:#2b4e57;color:#cddccc}.game-facts{color:#98b6bd}.game-facts b{color:#edce96}.game-facts>span+span{border-color:#61868f55}.play-button{background:linear-gradient(135deg,#f7dfab,#d9b16b);color:#3b3429;box-shadow:0 4px 0 #9a7847}.play-button:hover{background:#f3d79b}.save-note{color:#92b2bb}.saved-progress{background:#244852;color:#b7cbc9}.saved-progress strong{color:#f1d6a5}.next-game,.pocket-card{background:#183a45;border-color:#82a5a34d}.next-game p,.pocket-copy p,.pocket-copy small{color:#a8c2c3}.empty-game-icon,.pocket-icon,.logo-symbol{background:#294d53;color:#e8cc95;border-color:#809f8e66}.pocket-copy>span{color:#bad0c8}.pocket-button{color:#edd5a5;border-color:#a6b69a66}.center-footer{color:#9ab7bc;border-color:#789a9c33}.center-main{padding-top:34px}.welcome{margin-bottom:30px}.game-cover:after{background:linear-gradient(transparent,#0a2536d9)}

.school-game{margin-top:26px}.school-game .game-cover img{object-position:center}.school-game .game-tags>span{background:#24534d;color:#bde5cf}

/* The center mark is an original drawing by 沐沐. */
.logo-symbol{flex-shrink:0;background:#f14536;border-radius:10px}.logo-symbol img{display:block}

.garden-game{border-style:solid;background:#edf4e5;gap:24px}.garden-mini-art{display:block;flex-shrink:0;width:100px;height:100px;background:url('/games/assets/garden-actors.png') 0 0/300% 200% no-repeat}.garden-game .play-button{margin-left:auto;white-space:nowrap;width:auto;padding:14px 22px}@media(max-width:640px){.garden-game{flex-wrap:wrap}.garden-game .play-button{margin-left:0;width:100%}.garden-mini-art{width:72px;height:72px}}

.highway-game{margin-top:26px}.highway-game .game-cover img{object-position:center}.highway-game .game-tags>span{background:#2c493f;color:#d7dfb5}

/* Pet portraits are individual cells from the shared 4 × 2 transparent atlas. */
.pet-game{margin-top:26px;background:#fbf6e9;border-color:#dce5cd;color:#304d3f;box-shadow:0 20px 55px #03192338}.pet-game .game-detail{padding:35px 32px}.pet-game .game-detail h2{font-size:30px;letter-spacing:1px}.pet-game .game-detail>p{color:#697663}.pet-game .game-tags>span{background:#e6edda;color:#5d7654}.pet-game .game-facts{color:#78856b;gap:15px}.pet-game .game-facts b{color:#5c7a4d}.pet-game .game-facts>span+span{border-color:#dce2cf;padding-left:15px}.pet-game .play-button{background:#668557;color:#fffdf1;box-shadow:0 4px 0 #47603d}.pet-game .play-button:hover{background:#59774b}.pet-game .save-note{color:#89927c}.pet-cover{isolation:isolate;background:radial-gradient(ellipse at 65% 24%,#fffcec 0,transparent 50%),linear-gradient(155deg,#f4edda 15%,#e0ead4 100%)}.pet-cover:after{inset:auto 0 0;height:80px;background:linear-gradient(transparent,#dbe6cd);z-index:0}.pet-cover:before{content:'';position:absolute;width:85%;height:34%;border-radius:50%;background:#c9dab699;left:8%;bottom:35px;transform:rotate(-7deg)}.pet-cover .cover-label{z-index:3;color:#647649;background:#fffcefec;box-shadow:0 2px 10px #76875314}.pet-cover .cover-caption{color:#4b6844;letter-spacing:0;font-size:18px;z-index:3}.pet-cover .cover-caption b{color:#b2a35d}.pet-cover-scene{position:absolute;inset:0;z-index:1}.pet-cover-sprite{position:absolute;display:block;aspect-ratio:1;background-image:url('/games/pets/companions.png');background-size:400% 200%;background-repeat:no-repeat;filter:drop-shadow(0 12px 7px #4d663c1f);transition:transform .45s ease}.pet-cover-orange{width:46%;max-width:260px;left:9%;bottom:49px;background-position:0 0;transform:rotate(-5deg)}.pet-cover-dog{width:44%;max-width:240px;right:9%;bottom:83px;background-position:100% 0;transform:rotate(5deg)}.pet-cover-chest{width:29%;max-width:160px;right:12%;bottom:46px;background-position:100% 100%;transform:rotate(-7deg)}.pet-cover:hover .pet-cover-orange{transform:translateY(-5px) rotate(-3deg)}.pet-cover:hover .pet-cover-dog{transform:translateY(-4px) rotate(3deg)}.pet-cover-spark{position:absolute;color:#bfaa68;font-size:29px}.pet-cover-spark-one{left:14%;top:30%}.pet-cover-spark-two{right:13%;top:22%;font-size:40px}
@media(max-width:1000px) and (min-width:721px){.pet-game .game-detail{padding:25px}.pet-game .game-detail h2{font-size:25px}.pet-game .game-facts{gap:10px;font-size:11px}.pet-game .game-facts>span+span{padding-left:10px}.pet-cover .cover-caption{font-size:16px}.pet-cover-orange{left:3%;width:53%}.pet-cover-dog{right:3%;width:49%}.pet-cover-chest{right:7%;width:32%}}
@media(max-width:720px){.pet-game .game-detail{padding:23px 21px 25px}.pet-game .game-detail h2{font-size:27px}.pet-cover{min-height:280px;aspect-ratio:1.4}.pet-cover-orange{bottom:41px;left:7%;width:48%}.pet-cover-dog{bottom:71px;right:8%;width:44%}.pet-cover-chest{right:11%;bottom:37px;width:28%}.pet-cover .cover-caption{font-size:16px}.pet-cover-spark-one{top:29%;left:11%}.pet-cover-spark-two{top:19%;right:12%;font-size:30px}}
.center-actions{display:flex;align-items:center;gap:18px}.welcome-link{font-size:14px;color:#dfd5ad;white-space:nowrap}.welcome-link:hover{text-decoration:underline}@media(max-width:520px){.center-actions{gap:12px}.center-actions .install-button{padding:10px;font-size:12px;min-height:42px}.center-brand{font-size:17px;gap:8px}.center-header{padding-left:16px;padding-right:16px}.center-actions .welcome-link{font-size:12px}}

.journey-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;border:1px solid #759b9770;border-radius:17px;background:#214754;margin:0 0 30px}.journey-card h2{font-size:23px;margin:7px 0 9px;color:#f5dfb0}.journey-card p{font-size:13px;line-height:1.7;color:#adc5c8;margin:0}.journey-card>div>span{font-size:12px;color:#cadab9}.journey-card .play-button{width:auto;min-width:180px;flex-shrink:0;margin:0}@media(max-width:600px){.journey-card{flex-direction:column;align-items:stretch;padding:20px}.journey-card h2{font-size:20px}.journey-card .play-button{width:100%}}

.sealed-game{background:#e6eddf;border-color:#bdccb5}.sealed-emblem{width:90px;height:100px;flex-shrink:0;border-radius:45px 45px 8px 8px;border:8px solid #879a7a;background:#31584b;color:#e1c382;display:grid;place-items:center;font-size:65px;box-shadow:inset 0 0 0 5px #253f39}.sealed-trial{color:#4f6c54;font-size:14px}.sealed-game h3{margin-bottom:8px;color:#274d3c}.sealed-game p{color:#617361}.sealed-game .play-button{white-space:nowrap}
@media(max-width:720px){.sealed-game{flex-wrap:wrap}.sealed-game>div:not(.sealed-emblem){flex:1;min-width:150px}.sealed-game .sealed-emblem{width:72px;height:84px;border-width:6px;font-size:52px}.sealed-game .play-button{width:100%;max-width:100%;min-width:0;margin-left:0;justify-content:center;white-space:normal}.sealed-game .play-button>span{font-size:15px;font-weight:600;white-space:normal;overflow-wrap:anywhere}}
.robot-game{background:#f1eddd;color:#274d3c;border-color:#cccba7;margin-top:18px;flex-wrap:wrap}.robot-game>div:not(.robot-emblem){flex:1;min-width:150px}.robot-game h3{margin-bottom:8px}.robot-game p{color:#617361;line-height:1.7}.robot-game .play-button{white-space:nowrap;margin-left:auto;flex-shrink:0}.robot-game .play-button>span{font-size:15px;font-weight:600}.robot-emblem{position:relative;flex-shrink:0;width:90px;height:94px;border:6px solid #577d68;border-radius:23px 23px 17px 17px;background:linear-gradient(135deg,#c8ddac,#78b69a);box-shadow:inset 0 0 0 3px #e0e4b8;color:#315443;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:8px}.robot-emblem:before{content:'';position:absolute;width:35px;height:19px;border:6px solid #577d68;border-bottom:0;border-radius:13px 13px 0 0;top:-22px;left:21px}.robot-emblem span{font-size:18px;letter-spacing:4px;margin-left:4px}.robot-emblem i{display:block;width:44px;height:22px;border:3px solid #567e63;border-radius:5px 5px 11px 11px;background:#dfd397}.robot-game .sealed-trial{display:inline-block;margin-top:2px}@media(max-width:720px){.robot-game .play-button{width:100%;white-space:normal;justify-content:center;margin-left:0}.robot-emblem{width:72px;height:80px;margin-top:14px}.robot-emblem:before{width:30px;height:16px;left:15px;top:-19px}.robot-emblem span{font-size:14px}.robot-emblem i{width:36px;height:18px}}

/* Public homepage and filing links, retained from the live site. */
.center-footer{align-items:center;flex-wrap:wrap;gap:8px 18px}.center-footer .personal-home-link{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:inherit;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.center-footer .filing-link{flex-basis:100%;display:flex;align-items:center;min-height:44px;color:inherit;text-decoration:underline;text-underline-offset:3px}@media(max-width:720px){.center-footer .filing-link{justify-content:center}}
