:root{color-scheme:dark}[hidden]{display:none!important}html,body{margin:0;padding:0;width:100%;height:100%;background:#111318;overflow:hidden;overscroll-behavior:none;touch-action:pan-x pan-y}#app{width:100%;height:100%;display:flex;align-items:center;justify-content:center}#app canvas{touch-action:none}#pixelhome-gate{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-gate__message{color:#cfcfcf;font-size:16px;text-align:center}#pixelhome-naming-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#111318e6;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-dialog{width:100%;max-width:320px;background:#1c1f26;border:1px solid #3a3f4b;border-radius:16px;padding:24px 20px;box-sizing:border-box;text-align:center;color:#f3ede3}.pixelhome-dialog__title{margin:0 0 4px;font-size:15px}.pixelhome-dialog__body{margin:0 0 16px;font-size:14px;color:#cfcfcf}.pixelhome-dialog__input{width:100%;box-sizing:border-box;font-size:16px;padding:10px 12px;border-radius:10px;border:1px solid #4a4f5c;background:#111318;color:#f3ede3;text-align:center}.pixelhome-dialog__input:focus{outline:2px solid #ffb74d}.pixelhome-dialog__hint{margin:8px 0 16px;font-size:12px;color:#8a8f9c}.pixelhome-dialog__hint--error{color:#ef9a9a}.pixelhome-dialog__submit{width:100%;padding:12px;border:none;border-radius:10px;background:#ffb74d;color:#3e2723;font-size:15px;font-weight:600}#pixelhome-thumbstick{position:fixed;left:calc(14px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;width:116px;height:116px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:#1c1f268c;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#pixelhome-thumbstick.pixelhome-thumbstick--active{background:#1c1f26b8;border-color:#ffb74d73}.pixelhome-thumbstick__knob{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#cfc4b4e6;transition:transform .12s ease-out;pointer-events:none}.pixelhome-thumbstick--active .pixelhome-thumbstick__knob{transition:none;background:#ffe0b2}.pixelhome-action-button{position:fixed;z-index:60;width:52px;height:52px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:#1c1f26eb;color:#f3ede3;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;font-size:19px;font-weight:600;line-height:1;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}#pixelhome-feed-button{right:calc(72px + env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom))}#pixelhome-play-button{right:calc(12px + env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom))}#pixelhome-meow-button{right:calc(72px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom))}#pixelhome-talk-button{right:calc(12px + env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom))}.pixelhome-action-button:disabled{opacity:.4}.pixelhome-action-button--busy{border-color:#ffb74d99;opacity:.75}.pixelhome-action-button--pending:after{content:"";position:absolute;top:3px;right:3px;width:10px;height:10px;border-radius:50%;background:#ffb74d;border:2px solid #1c1f26}#pixelhome-offline-indicator{position:fixed;top:calc(58px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));z-index:50;font-size:18px;pointer-events:none}#pixelhome-photo-wall{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;background:#111318f0;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-photowall__panel{width:100%;max-width:340px;max-height:100%;display:flex;flex-direction:column;color:#f3ede3;text-align:center}.pixelhome-photowall__title{margin:0 0 14px;font-size:16px;flex:none}.pixelhome-photowall__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.pixelhome-photowall__slot{aspect-ratio:4 / 3;border:2px solid #4a3f35;border-radius:6px;background:#241f1b;overflow:hidden}.pixelhome-photowall__slot img{width:100%;height:100%;object-fit:cover;display:block;image-rendering:pixelated}.pixelhome-photowall__slot--locked{border-style:dashed;border-color:#3a332c}.pixelhome-photowall__close{width:100%;flex:none;min-height:44px;padding:12px;border:none;border-radius:10px;background:#ffb74d;color:#3e2723;font-size:15px;font-weight:600}.pixelhome-photowall__viewer[hidden]{display:none}.pixelhome-photowall__viewer{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;box-sizing:border-box;background:#08090cf7}.pixelhome-photowall__full{max-width:100%;max-height:72vh;border-radius:6px}.pixelhome-photowall__caption{margin:0;color:#cfcfcf;font-size:13px;text-align:center}#pixelhome-date-lock{position:fixed;inset:0;z-index:92;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#111318f0;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-lock__panel{width:100%;max-width:300px;text-align:center;color:#f3ede3}@keyframes pixelhome-lock-shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.pixelhome-lock__panel--wrong{animation:pixelhome-lock-shake .4s ease-in-out}.pixelhome-lock__hint{margin:0 0 16px;font-size:14px;color:#cfcfcf}.pixelhome-lock__display{display:flex;justify-content:center;gap:10px;margin-bottom:20px}.pixelhome-lock__slot{width:44px;height:56px;line-height:56px;border:2px solid #4a4f5c;border-radius:8px;background:#111318;font-size:24px}.pixelhome-lock__slot--filled{border-color:#ffb74d}.pixelhome-lock__keys{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.pixelhome-lock__key{min-height:52px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#1c1f26eb;color:#f3ede3;font-size:20px;touch-action:manipulation}.pixelhome-lock__close{width:100%;min-height:44px;border:none;border-radius:10px;background:transparent;color:#8a8f9c;font-size:14px}#pixelhome-title{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#0b0d12;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;cursor:pointer}.pixelhome-title__inner{text-align:center;padding:24px}.pixelhome-title__name{margin:0 0 20px;color:#f3ede3;font-size:26px;letter-spacing:.2em}.pixelhome-title__start{margin:0;color:#b9a88f;font-size:14px;letter-spacing:.1em;animation:pixelhome-breathe 2.4s ease-in-out infinite}@keyframes pixelhome-breathe{0%,to{opacity:.35}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.pixelhome-title__start{animation:none;opacity:1}}#pixelhome-skip{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);z-index:200;padding:8px 14px;border:1px solid #4a4f5b;border-radius:999px;background:#111318b8;color:#cfc4b4;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;font-size:13px}#pixelhome-memory{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 20px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;background:#111318f0;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-memory__panel{width:100%;max-width:340px;color:#f3ede3;text-align:center}.pixelhome-memory__title{margin:0 0 14px;font-size:16px}.pixelhome-memory__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.pixelhome-memory__card{aspect-ratio:1;padding:0;border:2px solid #4a3f35;border-radius:6px;background:#241f1b;overflow:hidden}.pixelhome-memory__card--down{background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(255,183,77,.12) 6px 12px),#241f1b}.pixelhome-memory__card img{width:100%;height:100%;object-fit:cover;display:block}.pixelhome-memory__face--pixel{image-rendering:pixelated}.pixelhome-memory__card--matched{border-color:#ffb74d}.pixelhome-memory__done{margin:0 0 10px;font-size:14px;line-height:1.7}.pixelhome-memory__again{width:100%;min-height:44px;margin-bottom:8px;padding:12px;border:1px solid #4a4f5b;border-radius:10px;background:#2a2f3a;color:#f3ede3;font-size:15px}.pixelhome-memory__close{width:100%;min-height:44px;padding:12px;border:none;border-radius:10px;background:#ffb74d;color:#3e2723;font-size:15px;font-weight:600}.pixelhome-panel{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 20px) 20px calc(env(safe-area-inset-bottom,0px) + 20px);box-sizing:border-box;background:#0b0d12eb;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-panel__box{width:100%;max-width:330px;max-height:100%;overflow-y:auto;box-sizing:border-box;padding:22px 20px;border:1px solid #3a3f4b;border-radius:16px;background:#1c1f26;color:#f3ede3}.pixelhome-panel__title{margin:0 0 14px;font-size:17px;text-align:center;letter-spacing:.05em}.pixelhome-panel__paragraph{margin:0 0 12px;font-size:14px;line-height:1.9;text-align:justify}.pixelhome-panel__actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.pixelhome-panel__button{padding:12px 16px;border:1px solid #4a4f5b;border-radius:10px;background:#2a2f3a;color:#f3ede3;font-family:inherit;font-size:14px}.pixelhome-panel__button:active{background:#3a4150}#pixelhome-credits-button{position:fixed;left:calc(env(safe-area-inset-left,0px) + 10px);top:calc(env(safe-area-inset-top,0px) + 10px);z-index:50;width:32px;height:32px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#1c1f26b3;color:#8a8f9a;font-size:15px;line-height:1}#pixelhome-credits{position:fixed;inset:0;z-index:160;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box;background:#0b0d12eb;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-credits__box{width:100%;max-width:320px;padding:22px 20px;box-sizing:border-box;border:1px solid #3a3f4b;border-radius:16px;background:#1c1f26;color:#f3ede3}.pixelhome-credits__title{margin:0 0 14px;font-size:16px;text-align:center}.pixelhome-credits__list{margin:0;padding-left:18px;font-size:13px;line-height:2}.pixelhome-credits__list a{color:#90caf9}.pixelhome-credits__author{color:#9aa0ab}.pixelhome-credits__close{width:100%;margin-top:18px;padding:12px 16px;border:1px solid #4a4f5b;border-radius:10px;background:#2a2f3a;color:#f3ede3;font-family:inherit;font-size:14px}#pixelhome-mute-button{position:fixed;left:calc(env(safe-area-inset-left,0px) + 50px);top:calc(env(safe-area-inset-top,0px) + 10px);z-index:50;width:32px;height:32px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:#1c1f26b3;color:#cfc4b4;font-size:14px;line-height:1}#pixelhome-install-hint{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 146px);z-index:70;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #3a3f4b;border-radius:14px;background:#1c1f26f5;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;color:#f3ede3}.pixelhome-install__text{flex:1;margin:0;font-size:13px;line-height:1.7}.pixelhome-install__close{flex-shrink:0;min-height:44px;padding:10px 14px;border:1px solid #4a4f5b;border-radius:10px;background:#2a2f3a;color:#f3ede3;font-family:inherit;font-size:13px}.ph-mini{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;background:#111318f0;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.ph-mini__panel{width:100%;max-width:340px;color:#f3ede3;text-align:center}.ph-mini__panel--wide{max-width:380px}.ph-mini__title{margin:0 0 14px;font-size:16px}.ph-mini__note{margin:0 0 10px;font-size:14px;line-height:1.7}.ph-mini__button{width:100%;min-height:44px;margin-bottom:8px;padding:12px;border:1px solid #4a4f5b;border-radius:10px;background:#2a2f3a;color:#f3ede3;font-family:inherit;font-size:15px}.ph-mini__button--primary{border:none;background:#ffb74d;color:#3e2723;font-weight:600}.ph-jigsaw__status{margin-bottom:14px}.ph-jigsaw__preview{width:96px;margin:0 auto 14px}.ph-jigsaw__preview-img{display:block;width:100%;height:auto;border:1px solid #4a3f35;border-radius:4px;image-rendering:pixelated}.ph-jigsaw__stage{position:relative;width:224px;max-width:100%;aspect-ratio:4 / 3;margin:0 auto 14px}.ph-jigsaw__grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,1fr);gap:2px;transition:opacity .5s ease}.ph-jigsaw__piece{padding:0;border:2px solid #4a3f35;border-radius:4px;background-repeat:no-repeat;image-rendering:pixelated;transition:transform .15s ease,border-color .15s ease}.ph-jigsaw__piece--selected{border-color:#ffb74d;transform:scale(.94)}.ph-jigsaw__reveal-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .5s ease}.ph-jigsaw__stage--solved .ph-jigsaw__grid{opacity:0;pointer-events:none}.ph-jigsaw__stage--solved .ph-jigsaw__reveal-img{opacity:1}@media(prefers-reduced-motion:reduce){.ph-jigsaw__grid,.ph-jigsaw__reveal-img{transition:none}}.ph-yarn__panel{max-width:380px}.ph-yarn__stage{position:relative;height:60vh;margin:14px 0 16px;box-sizing:border-box;overflow:hidden;border-radius:14px;background:linear-gradient(#222a32,#2a333c 55%,#38424d);touch-action:none}.ph-yarn__stage:after{content:"";position:absolute;inset:auto 0 0;height:14px;background:linear-gradient(#0000,#0000004d);pointer-events:none}.ph-yarn__counter{position:absolute;inset:0 0 auto;height:25%;min-height:44px;background:linear-gradient(#e7e2da,#c9c2b6);border-bottom:3px solid #9a9186;pointer-events:none}.ph-yarn__cat{position:absolute;bottom:4px;left:50%;width:40px;height:40px;transform:translate(-50%);background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;pointer-events:none;animation:ph-yarn-idle 2.4s ease-in-out infinite}@keyframes ph-yarn-idle{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(1.5px)}}@keyframes ph-yarn-nudge{0%{transform:translate(-50%) translateY(0) rotate(0)}40%{transform:translate(-50%) translateY(3px) rotate(-4deg)}to{transform:translate(-50%) translateY(0) rotate(0)}}.ph-yarn__cat--nudge{animation:ph-yarn-nudge .22s ease}.ph-yarn__cat--fallback{background-image:radial-gradient(ellipse 46% 38% at 50% 62%,#f2efe6 99%,transparent 100%)}.ph-yarn__cat--fallback:before,.ph-yarn__cat--fallback:after{content:"";position:absolute;top:6px;width:12px;height:12px;background:#f2efe6;clip-path:polygon(50% 0,0 100%,100% 100%)}.ph-yarn__cat--fallback:before{left:7px}.ph-yarn__cat--fallback:after{right:7px}.ph-yarn__balls{position:absolute;inset:0 0 48px;pointer-events:none}.ph-yarn__ball{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;pointer-events:none}.ph-yarn__ball--spin-cw{animation:ph-yarn-spin-cw 1.3s linear infinite}.ph-yarn__ball--spin-ccw{animation:ph-yarn-spin-ccw 1.7s linear infinite}@keyframes ph-yarn-spin-cw{to{transform:rotate(360deg)}}@keyframes ph-yarn-spin-ccw{to{transform:rotate(-360deg)}}.ph-yarn__miss{position:absolute;bottom:-13px;width:26px;height:26px;margin-left:-13px;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;pointer-events:none;opacity:0;transform-origin:50% 100%}.ph-yarn__miss--play{animation:ph-yarn-miss .38s ease-out forwards}@keyframes ph-yarn-miss{0%{opacity:.9;transform:scale(1)}35%{opacity:.85;transform:scale(1.25,.5)}to{opacity:0;transform:scale(1.45,.35)}}.ph-yarn__ball--fallback{background-image:repeating-linear-gradient(35deg,transparent 0 4px,rgba(255,236,214,.55) 4px 6px),repeating-linear-gradient(-35deg,transparent 0 4px,rgba(255,236,214,.35) 4px 6px),radial-gradient(circle at 35% 30%,#ff8a65,#d84315)}.ph-yarn__basket{position:absolute;bottom:14px;left:50%;transform:translate(-50%);will-change:left;display:flex;flex-direction:column;align-items:center;pointer-events:none}.ph-yarn__basket-tilt{width:100%;transform-origin:50% 0;will-change:transform}.ph-yarn__basket-body{width:100%;height:34px;border-radius:6px 6px 12px 12px;background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;transform-origin:50% 100%}.ph-yarn__basket-body--bounce{animation:ph-yarn-basket-bounce .24s ease}@keyframes ph-yarn-basket-bounce{0%{transform:scale(1)}35%{transform:scale(1.08,.8)}70%{transform:scale(.96,1.06)}to{transform:scale(1)}}.ph-yarn__basket-body--fallback{background-image:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.12) 5px 7px),linear-gradient(#c8935a,#a8703a);border:2px solid #7a4f28}.ph-yarn__basket-stack{display:flex;flex-wrap:wrap-reverse;justify-content:center;align-content:flex-end;width:100%;margin-bottom:-6px}.ph-yarn__stack-ball{width:10px;height:10px;margin:1px;border-radius:50%;background-repeat:no-repeat;background-position:center;background-size:contain;image-rendering:pixelated;animation:ph-yarn-stack-in .24s ease-out}@keyframes ph-yarn-stack-in{0%{transform:scale(.2)}60%{transform:scale(1.4)}to{transform:scale(1)}}.ph-yarn__basket-stack--wave .ph-yarn__stack-ball{animation:ph-yarn-stack-wave .9s ease-in-out calc(var(--i, 0) * 45ms) 3}@keyframes ph-yarn-stack-wave{0%,to{transform:translateY(0)}35%{transform:translateY(-7px)}}.ph-yarn__stack-ball--fallback{background-image:radial-gradient(circle at 35% 30%,#ff8a65,#d84315)}@media(prefers-reduced-motion:reduce){.ph-yarn__ball--spin-cw,.ph-yarn__ball--spin-ccw,.ph-yarn__cat,.ph-yarn__cat--nudge,.ph-yarn__basket-body--bounce,.ph-yarn__stack-ball,.ph-yarn__basket-stack--wave .ph-yarn__stack-ball,.ph-yarn__miss--play{animation:none}}.ph-four__board{position:relative;width:100%;margin:0 0 10px}.ph-four__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:3px;padding:4px;box-sizing:border-box;aspect-ratio:7 / 6;border-radius:10px;background:#20242f}.ph-four__cell{position:relative;border-radius:50%;background:#12141c}.ph-four__cell--win{box-shadow:0 0 0 3px #ffd54f inset}.ph-four__piece{position:absolute;inset:6%;border-radius:50%}.ph-four__piece--her{background:#ffb74d}.ph-four__piece--him{background:#5c6bc0}.ph-four__piece img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;image-rendering:pixelated}.ph-four__piece--drop{animation:ph-four-drop .32s both}@keyframes ph-four-drop{0%{transform:translateY(var(--ph-drop-y, 0px));opacity:.85;animation-timing-function:cubic-bezier(.5,0,.9,.6)}74%{transform:translateY(0);opacity:1;animation-timing-function:ease-out}87%{transform:translateY(-8%);animation-timing-function:ease-in}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.ph-four__piece--drop{animation:none}}.ph-four__columns{position:absolute;inset:0;padding:0 4px;box-sizing:border-box;display:flex}.ph-four__column-btn{flex:1 1 0;min-width:0;height:100%;padding:0;border:none;background:transparent;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ph-four__column-btn:disabled{cursor:default}.ph-four__line{min-height:1.7em;margin:0 0 10px;color:#cfc4b4;font-size:13px;line-height:1.7}#pixelhome-video{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:calc(16px + env(safe-area-inset-top)) 12px calc(16px + env(safe-area-inset-bottom));box-sizing:border-box;background:#111318f7;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif}.pixelhome-video__frame{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;height:100%;min-height:0}.pixelhome-video__player{flex:1;min-height:0;width:100%;object-fit:contain;border-radius:12px;background:#000}.pixelhome-video__close{flex:none;min-width:120px;min-height:44px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#1c1f26eb;color:#f3ede3;font-family:inherit;font-size:15px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ph-train{position:fixed;inset:0;z-index:96;overflow:hidden;background:#bfe0ee;font-family:PingFang TC,Noto Sans TC,system-ui,sans-serif;touch-action:none;cursor:pointer}.ph-train__sky{position:absolute;inset:0 0 55%;background:linear-gradient(#a8d4e8,#cfe9f2)}.ph-train__clouds{position:absolute;inset:6% 0 auto;height:18%;background:radial-gradient(ellipse 46px 16px at 30% 40%,#ffffff 99%,transparent 100%),radial-gradient(ellipse 60px 20px at 75% 70%,#f4fbff 99%,transparent 100%);background-repeat:repeat-x;background-size:480px 100%;animation:ph-train-scroll 9s linear infinite}.ph-train__sea{position:absolute;inset:45% 0 32%;background:repeating-linear-gradient(0deg,transparent 0 9px,rgba(255,255,255,.16) 9px 10px),linear-gradient(#5c93b8,#4a7fa8)}.ph-train__sea:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 16px 2px at 30px 22px,rgba(255,255,255,.5) 99%,transparent 100%),radial-gradient(ellipse 22px 2px at 110px 58px,rgba(255,255,255,.35) 99%,transparent 100%),radial-gradient(ellipse 14px 2px at 180px 36px,rgba(255,255,255,.45) 99%,transparent 100%),radial-gradient(ellipse 20px 2px at 226px 84px,rgba(255,255,255,.3) 99%,transparent 100%);background-size:264px 104px;background-repeat:repeat;animation:ph-train-scroll-sea 3.2s linear infinite}.ph-train__ground{position:absolute;inset:68% 0 0;background:repeating-linear-gradient(90deg,#d8cdb0 0 34px,#d2c6a5 34px 68px),#d8cdb0;background-size:136px 100%;animation:ph-train-scroll .9s linear infinite}.ph-train__track{position:absolute;left:0;right:0;top:68%;height:6px;background:repeating-linear-gradient(90deg,#6d685c 0 22px,#55514a 22px 26px);background-size:104px 100%;animation:ph-train-scroll .9s linear infinite}.ph-train__car{position:absolute;left:50%;top:68%;transform:translate(-50%,-100%);animation:ph-train-bob .5s ease-in-out infinite}.ph-train__roof{height:10px;margin:0 -6px;border-radius:8px 8px 0 0;background:#4e6e8e}.ph-train__body{display:flex;gap:16px;padding:14px 18px 12px;border-radius:0 0 8px 8px;background:linear-gradient(#7fa8c9,#6d97ba);border:3px solid #4e6e8e;border-top:none}.ph-train__window{width:46px;height:44px;border-radius:6px;border:3px solid #4e6e8e;background:linear-gradient(#e8f4fa,#cfe9f2);overflow:hidden;display:flex;justify-content:center;align-items:flex-end}.ph-train__window img{width:44px;height:88px;margin-bottom:-52px;image-rendering:pixelated}.ph-train__wheels{display:flex;justify-content:space-around;margin-top:-2px}.ph-train__wheel{width:18px;height:18px;border-radius:50%;background:conic-gradient(#2f2c28 0 25%,#55514a 25% 50%,#2f2c28 50% 75%,#55514a 75% 100%);border:3px solid #1f1d1a;animation:ph-train-spin .5s linear infinite}.ph-train__caption{position:absolute;left:20px;right:20px;bottom:calc(24px + env(safe-area-inset-bottom));margin:0;text-align:center;color:#2b3a45;font-size:15px;line-height:1.6;text-shadow:0 1px 0 rgba(255,255,255,.6)}@keyframes ph-train-scroll{0%{background-position-x:0}to{background-position-x:-480px}}.ph-train__sea:after{animation-name:ph-train-scroll-sea}@keyframes ph-train-scroll-sea{0%{background-position-x:0}to{background-position-x:-264px}}.ph-train__ground,.ph-train__track{animation-name:ph-train-scroll-ground}@keyframes ph-train-scroll-ground{0%{background-position-x:0}to{background-position-x:-136px}}.ph-train__track{animation-name:ph-train-scroll-track}@keyframes ph-train-scroll-track{0%{background-position-x:0}to{background-position-x:-104px}}@keyframes ph-train-bob{0%,to{transform:translate(-50%,-100%)}50%{transform:translate(-50%,calc(-100% + 2px))}}@keyframes ph-train-spin{to{transform:rotate(360deg)}}.ph-train--still .ph-train__clouds,.ph-train--still .ph-train__sea:after,.ph-train--still .ph-train__ground,.ph-train--still .ph-train__track,.ph-train--still .ph-train__car,.ph-train--still .ph-train__wheel{animation:none}@media(prefers-reduced-motion:reduce){.ph-train__clouds,.ph-train__sea:after,.ph-train__ground,.ph-train__track,.ph-train__car,.ph-train__wheel{animation:none}}
