@charset "UTF-8";
:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#304d4c;font-synthesis:none;--green:#397765;--paper:#fffaf0}*{box-sizing:border-box}body{margin:0;width:100vw;height:100dvh;overflow:hidden;background:#bddedb}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible{outline:3px solid #fbac5d;outline-offset:4px}button:disabled{cursor:default}svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;flex-shrink:0}#world{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#shade{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#c7e3df75,transparent 18%,transparent 65%,#60887520)}body[data-page=home] #shade{background:linear-gradient(90deg,#dcece3f2,#dcece3de 21%,#dcece366 39%,transparent 56%)}
#header{position:absolute;left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:4;pointer-events:none}#header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:18px;letter-spacing:1px}.brand-mark{display:grid;place-items:center;color:#fffbdf;background:#ed965e;width:37px;height:40px;border-radius:15px 15px 19px 19px;box-shadow:0 4px 0 #c97d492e;transform:rotate(-5deg)}.brand-sub{display:block;font-size:9px;letter-spacing:2px;font-weight:500;margin-top:3px;color:#648178}.nav{display:flex;align-items:center;gap:10px}.glass,.icon-btn{border:1px solid #fff9e69e;background:#fffbedcb;backdrop-filter:blur(14px);box-shadow:0 5px 20px #45684712}.icon-btn{border-radius:17px;min-width:47px;height:46px;display:flex;align-items:center;justify-content:center;gap:8px;color:#304d4c;padding:0 13px}.icon-btn:hover{background:#fffdf6}.crumb{display:flex;align-items:center;gap:12px;padding:12px 19px;border-radius:18px;font-size:14px}.crumb strong{font-size:15px}.heat{min-width:186px;border-radius:19px;padding:10px 15px}.heat-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;font-weight:600;margin-bottom:6px}.heat-track{height:7px;background:#e1e4d1;border-radius:8px;overflow:hidden}.heat-fill{height:100%;background:var(--heat-color,#ebaa5e);border-radius:8px;transition:width .7s}
#ui{position:absolute;inset:0;pointer-events:none}#ui button,#ui .interactive{pointer-events:auto}.hero{position:absolute;top:24%;left:6.5%;max-width:450px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:3px;display:flex;align-items:center;gap:10px;color:#608477}.eyebrow::before{content:"";height:7px;width:7px;border-radius:50%;background:#eca366}.hero h1{font-size:clamp(48px,5.7vw,84px);line-height:1.12;letter-spacing:3px;margin:22px 0 20px;font-weight:900;color:#315647;text-shadow:0 3px 0 #ffffff60}.hero h1 span{color:#d98d51}.hero p{font-size:15px;line-height:1.9;color:#688573;margin:0 0 26px}.primary{border:1px solid #ffffff40;background:#447e63;color:#fffbed;box-shadow:0 5px 0 #2e604c,0 12px 24px #406c5630;padding:15px 25px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:18px;font-weight:700;min-height:57px;transition:transform .16s,background .16s}.primary:hover{background:#508d6e;transform:translateY(-2px)}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 #2e604c}.secondary{border:1px solid #fff8e8;background:#fff9e9db;box-shadow:0 3px 0 #d9c8a755;color:#60775b;border-radius:16px;padding:13px 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:700;min-height:48px}.secondary:hover{background:#fffef8}.hero-links{display:flex;gap:12px;margin-top:18px}.hero-footer{position:absolute;bottom:30px;left:6.5%;font-size:12px;letter-spacing:1px;color:#719383;display:flex;gap:9px;align-items:center}.scene-note{position:absolute;right:4%;bottom:7%;display:flex;align-items:center;gap:9px;border-radius:24px;padding:11px 19px;color:#617d68;font-size:12px;background:#fffbedb0;backdrop-filter:blur(6px)}.scene-note::before{content:"";width:6px;height:6px;border-radius:50%;background:#7cad74;box-shadow:0 0 0 4px #9ccb7729}
.dialog{position:absolute;left:4%;right:4%;bottom:25px;max-width:1240px;margin:auto;background:#fffaf0f5;border:1px solid #fffdf7;border-radius:25px;box-shadow:0 15px 55px #324d3e24,0 4px 0 #dfcca56b;display:grid;grid-template-columns:minmax(240px,1fr) minmax(300px,1.08fr);gap:25px;padding:23px 27px;min-height:162px;backdrop-filter:blur(12px);animation:appear .25s ease-out;pointer-events:auto}.speech{display:flex;gap:16px;align-items:flex-start}.avatar{border:3px solid white;box-shadow:0 3px 10px #836d4020;width:54px;height:54px;flex:0 0 54px;border-radius:19px;display:grid;place-items:center;background:#f8d3a3;color:#a46e43}.avatar svg{width:29px;height:29px}.speech .speaker{font-size:12px;color:#8ba082;letter-spacing:1px;margin:0 0 9px;display:flex;align-items:center;gap:10px;font-weight:700}.repeat{position:relative;border:0;background:none;color:#90a181;padding:0;display:inline-flex}.repeat::after{content:"";position:absolute;inset:-12px}.repeat svg{width:16px;height:16px}.speech p{font-size:17px;line-height:1.75;margin:0;color:#4a604f}.speech .subline{font-size:11px;color:#a1a893;margin-top:11px}.actions{display:flex;flex-wrap:wrap;gap:10px;align-content:center;justify-content:center}.action{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #e9e0c9;background:#f7f0df;box-shadow:0 3px 0 #e3d8bf4d;color:#617057;border-radius:15px;padding:12px 15px;min-height:54px;font-size:14px;font-weight:700;flex:1 1 44%;transition:.15s}.action svg{width:25px;height:25px;color:#be9462}.action:hover,.action.selected{background:#e8efd9;border-color:#a8bf8d;transform:translateY(-2px)}.action.selected svg{color:#65936b}.actions .primary{font-size:15px;min-height:49px;padding:11px 19px}.actions .wide{flex:1 1 100%}.action-hint{width:100%;text-align:center;font-size:11px;color:#99a58d;margin:0}.feeling{flex:1;min-width:85px;flex-direction:column;padding:13px 8px;gap:8px}.feeling svg{height:34px;width:34px;color:#dbab63}.celebration{display:flex;align-items:center;justify-content:center;gap:23px;width:100%;margin-bottom:5px}.reward-star{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;color:#a28f69}.reward-star svg{width:34px;height:34px;stroke:#e4aa4d;fill:#f7d279}.badge{font-size:11px;color:#929674;text-align:center;width:100%;margin:4px 0 0}.skill-tag{position:absolute;left:4%;top:103px;display:flex;align-items:center;gap:8px;font-size:12px;color:#638172;background:#faffebbb;border:1px solid #ffffff85;padding:10px 15px;border-radius:24px;backdrop-filter:blur(5px)}.skill-tag svg{width:17px;height:17px}.hint-top{position:absolute;left:50%;transform:translateX(-50%);top:105px;background:#fffbeece;border:1px solid #fffff4;border-radius:25px;padding:11px 20px;font-size:13px;color:#66816d;white-space:nowrap}
.hotspot{position:absolute;z-index:3;transform:translate(-50%,-100%);border:2px solid #fffbee;background:#fffbebeb;color:#617353;border-radius:15px;padding:10px 15px;font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px;box-shadow:0 5px 20px #68542d20;white-space:nowrap;animation:float 2.2s ease-in-out infinite}.hotspot::after{content:"";position:absolute;bottom:-7px;left:calc(50% - 6px);width:12px;height:12px;background:#fffbeb;transform:rotate(45deg);border-radius:2px}.hotspot svg{width:19px;height:19px;color:#dc975c}.calendar-game{display:flex;align-items:center;justify-content:center;gap:18px;width:100%}.phone-drag{border:1px solid #e5dbc6;display:grid;place-items:center;width:69px;height:83px;background:#f8f1e1;border-radius:15px;cursor:grab;touch-action:none;color:#669389;flex-shrink:0}.phone-drag svg{width:34px;height:45px}.calendar-drop{padding:15px 24px;border:2px dashed #a7bf91;background:#eff3dd;border-radius:18px;display:flex;align-items:center;gap:13px;color:#729166;min-height:83px}.calendar-drop strong{display:block;font-size:17px}.calendar-drop small{font-size:10px}.calendar-drop.over{background:#d6e9be;border-style:solid}.drag-ghost{position:fixed;z-index:10;pointer-events:none;opacity:.85;transform:translate(-50%,-50%);background:#fff8e9;border-radius:13px;padding:15px;box-shadow:0 10px 30px #685b3833;color:#4c8271}.drag-ghost svg{width:35px;height:35px}
.breath-actions{display:flex;flex-direction:column;align-items:center;gap:10px}.breath-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}.breath-row .primary{user-select:none;min-width:220px}.count-stars{display:flex;gap:5px}.count-stars button{background:none;border:0;color:#d7b771;padding:5px}.count-stars .counted{color:#7e9c6c}.count-stars button svg{fill:currentColor;width:26px;height:26px}
.map-panel{position:absolute;left:4%;top:110px;width:380px;bottom:25px;border:1px solid #fffdf0;background:#fff9e9ed;border-radius:26px;padding:23px;box-shadow:0 18px 45px #4f705724;backdrop-filter:blur(14px);overflow:auto;pointer-events:auto;animation:appear .25s ease-out}.panel-eyebrow{color:#a0a184;font-size:10px;letter-spacing:2px;margin-bottom:10px}.map-panel h2{font-size:25px;margin:0 0 6px;color:#476b54}.map-panel .intro{font-size:12px;color:#8c9a7e;margin:0 0 21px}.level-card{width:100%;border:1px solid #e5dfc9;border-radius:17px;padding:15px;display:flex;align-items:center;gap:14px;text-align:left;color:#5e7057;background:#f8f1de;margin:10px 0;box-shadow:0 3px 0 #dfd2b436}.level-card.available{background:#fffdf3}.level-card.available:hover{border-color:#95b28a;background:#edf4e3}.level-card svg{width:29px;height:29px;color:#b99761}.level-card strong{display:block;font-size:15px}.level-card small{display:block;margin-top:6px;font-size:10px;color:#9aab8b}.level-card:disabled{opacity:.63}.level-no{font-size:10px;color:#b29a73}.level-arrow{margin-left:auto;color:#85a176}.room-panel{position:absolute;right:4%;top:115px;bottom:25px;width:295px;display:flex;flex-direction:column;overflow:hidden;background:#fff9e9e8;border:1px solid #fffdf1;border-radius:25px;padding:23px;box-shadow:0 15px 40px #415a421c;pointer-events:auto;backdrop-filter:blur(12px)}.room-panel h2{font-size:23px;margin:0 0 8px}.room-panel p{font-size:12px;line-height:1.8;color:#939d83}.furniture{display:flex;align-items:center;gap:9px;border:1px solid #e4ddc5;border-radius:16px;background:#fffbee;padding:11px;margin-top:11px;color:#789065}.furniture-pick{flex:1;display:flex;align-items:center;gap:13px;border:0;background:none;padding:0;text-align:left;color:inherit}.furniture svg{width:30px;height:30px;color:#c6a36a}.furniture strong{display:block;font-size:14px}.furniture small{display:block;font-size:10px;margin-top:5px;color:#a2a88b}.furniture.placed{border-color:#aabf8e;background:#eef2db}.furniture.picked{border-color:#708e76;box-shadow:0 0 0 3px #708e7626}.furniture-toggle{border:1px solid #d6cdb6;background:#fffdf4;color:#8b9a7c;border-radius:10px;padding:7px 9px;font-size:11px;flex-shrink:0}.furniture-list{flex:1;min-height:0;overflow:auto;padding-right:4px}.room-reset{margin-top:12px;width:100%;justify-content:center}.room-actions{margin-top:14px;display:flex}.room-actions button{flex:1;justify-content:center}.room-caption{position:absolute;left:5%;bottom:9%;background:#fffbe9d9;padding:16px 22px;border-radius:20px;font-size:13px;color:#79906e}
#toast{position:absolute;top:92px;left:50%;transform:translate(-50%,-10px);background:#426954ea;color:#fffae9;padding:12px 22px;border-radius:24px;z-index:8;font-size:13px;pointer-events:none;opacity:0;transition:.2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#save-warning{position:absolute;bottom:0;left:0;right:0;background:#f7d7a4;text-align:center;padding:6px;color:#826342;font-size:12px;z-index:10}#loading{position:fixed;inset:0;background:#dcebe0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;z-index:20;color:#5e8069;transition:opacity .6s}#loading span{font-size:12px;color:#91a486}.loading-mark{background:#f3b46f;color:#fff2cb;font-size:39px;border-radius:26px;width:70px;height:80px;display:grid;place-items:center;animation:float 1.5s ease-in-out infinite}#loading.hidden{opacity:0;pointer-events:none}#loading.error{padding:30px;text-align:center}#landscape{display:none;position:fixed;inset:0;z-index:12;background:#e7eee2f2;backdrop-filter:blur(14px);flex-direction:column;align-items:center;justify-content:center;padding:45px;text-align:center;gap:20px;color:#66826b}#landscape>span{font-size:70px;color:#d29a62}#landscape strong{font-size:25px}#landscape p{font-size:14px;line-height:1.9}#landscape button{border:1px solid #afc49b;border-radius:16px;background:#f5f5e5;color:#768d6b;padding:14px 25px}#landscape.dismissed{display:none!important}
#landscape .landscape-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
#landscape #portrait-force{background:#447e63;color:#fffbed;border-color:#2e604c;box-shadow:0 4px 0 #2e604c}
body.force-landscape{width:100dvh;height:100dvw;transform:rotate(90deg) translateY(-100%);transform-origin:0 0}
body.force-portrait{width:100dvh;height:100dvw;transform:rotate(-90deg) translateX(-100%);transform-origin:0 0}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -5px}}@keyframes appear{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
body[data-layout="landscape"][data-short] #header{top:12px;left:20px;right:20px}body[data-layout="landscape"][data-short] .brand{font-size:14px}body[data-layout="landscape"][data-short] .brand-mark{width:29px;height:32px}body[data-layout="landscape"][data-short] .brand-sub{display:none}body[data-layout="landscape"][data-short] .icon-btn{height:40px;min-width:40px;border-radius:12px;padding:0 10px}body[data-layout="landscape"][data-short] .crumb{padding:8px 12px;font-size:11px}body[data-layout="landscape"][data-short] .crumb strong{font-size:12px}body[data-layout="landscape"][data-short] .heat{min-width:147px;padding:7px 11px}body[data-layout="landscape"][data-short] .heat-caption{font-size:9px;margin-bottom:4px}body[data-layout="landscape"][data-short] .hero{top:20%;left:5%}body[data-layout="landscape"][data-short] .hero h1{font-size:46px;margin:14px 0}body[data-layout="landscape"][data-short] .hero p{font-size:12px;margin-bottom:15px}body[data-layout="landscape"][data-short] .eyebrow{font-size:10px}body[data-layout="landscape"][data-short] .hero .primary{font-size:14px;min-height:44px;padding:10px 18px}body[data-layout="landscape"][data-short] .hero-links{margin-top:12px}body[data-layout="landscape"][data-short] .hero-links .secondary{min-height:36px;padding:8px 12px;font-size:11px}body[data-layout="landscape"][data-short] .hero-footer{bottom:15px;font-size:10px}body[data-layout="landscape"][data-short] .scene-note{bottom:5%;font-size:10px;padding:8px 13px}body[data-layout="landscape"][data-short] .dialog{left:2%;right:2%;bottom:13px;padding:14px 17px;gap:17px;min-height:110px;border-radius:20px;grid-template-columns:1fr 1.05fr}body[data-layout="landscape"][data-short] .avatar{width:37px;height:37px;flex-basis:37px;border-radius:13px}body[data-layout="landscape"][data-short] .avatar svg{width:23px;height:23px}body[data-layout="landscape"][data-short] .speech{gap:10px}body[data-layout="landscape"][data-short] .speech p{font-size:13px;line-height:1.65}body[data-layout="landscape"][data-short] .speech .speaker{font-size:10px;margin-bottom:6px}body[data-layout="landscape"][data-short] .speech .subline{font-size:9px;margin-top:5px}body[data-layout="landscape"][data-short] .action{font-size:11px;padding:7px 10px;min-height:37px;border-radius:11px;gap:8px}body[data-layout="landscape"][data-short] .action svg{width:20px;height:20px}body[data-layout="landscape"][data-short] .actions{gap:7px}body[data-layout="landscape"][data-short] .actions .primary{font-size:12px;min-height:34px;padding:7px 15px}body[data-layout="landscape"][data-short] .action-hint{font-size:9px}body[data-layout="landscape"][data-short] .skill-tag{top:65px;left:3%;font-size:10px;padding:7px 10px}body[data-layout="landscape"][data-short] .hint-top{top:63px;font-size:10px;padding:7px 12px}body[data-layout="landscape"][data-short] .hotspot{font-size:10px;padding:7px 10px}body[data-layout="landscape"][data-short] .breath-progress{top:65px;padding:9px 22px}body[data-layout="landscape"][data-short] .breath-progress strong{font-size:17px}body[data-layout="landscape"][data-short] .breath-progress small{font-size:10px}body[data-layout="landscape"][data-short] .breath-row .primary{min-height:40px;min-width:150px;font-size:12px;padding:9px 12px}body[data-layout="landscape"][data-short] .breath-row .secondary{min-height:35px;font-size:10px;padding:9px 12px}body[data-layout="landscape"][data-short] .breath-actions{gap:7px}body[data-layout="landscape"][data-short] .feeling{min-height:65px;padding:8px}body[data-layout="landscape"][data-short] .feeling svg{width:25px;height:25px}body[data-layout="landscape"][data-short] .calendar-drop{min-height:63px;padding:8px 15px}body[data-layout="landscape"][data-short] .calendar-drop strong{font-size:14px}body[data-layout="landscape"][data-short] .phone-drag{width:48px;height:62px}body[data-layout="landscape"][data-short] .phone-drag svg{height:33px}body[data-layout="landscape"][data-short] .map-panel{top:65px;bottom:14px;width:300px;padding:16px}body[data-layout="landscape"][data-short] .map-panel h2{font-size:21px}body[data-layout="landscape"][data-short] .map-panel .intro{margin-bottom:10px}body[data-layout="landscape"][data-short] .level-card{padding:10px;margin:7px 0}body[data-layout="landscape"][data-short] .level-card strong{font-size:12px}body[data-layout="landscape"][data-short] .level-card small{font-size:9px}body[data-layout="landscape"][data-short] .room-panel{top:70px;bottom:12px;width:245px;padding:17px}body[data-layout="landscape"][data-short] .room-panel>p{display:none}body[data-layout="landscape"][data-short] .room-panel h2{font-size:20px}body[data-layout="landscape"][data-short] .furniture{padding:12px}body[data-layout="landscape"][data-short] .reward-star svg{width:25px;height:25px}body[data-layout="landscape"][data-short] .celebration{gap:18px}body[data-layout="landscape"][data-short] .badge{font-size:9px}body[data-layout="landscape"][data-short] .reward-star{font-size:9px;gap:3px}body[data-layout="landscape"][data-short] .secondary{min-height:36px;font-size:11px}body[data-layout="landscape"][data-short] .primary{font-size:13px;min-height:40px;padding:10px 14px}
.actions:has(.picture-card){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.actions:has(.picture-card:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.actions .picture-card{display:flex;flex-direction:column;gap:3px;padding:7px;min-width:0;transition:transform .18s,border-color .18s}.actions .picture-card .choice-picture{width:100%;height:100px;fill:none;stroke:none}.picture-card small{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:normal;gap:4px}.picture-card small svg{width:16px;height:16px}.picture-card.selected{transform:translateY(-5px);border:2px solid #708e76;background:#e5eddb}.actions .picture-confirm{grid-column:1/-1;min-height:48px;justify-content:center}.picture-confirm svg{width:32px;height:32px}.actions:has(.picture-card) .action-hint{grid-column:1/-1}.picture-card:focus-visible{outline:3px solid #658776;outline-offset:3px}
body[data-layout="landscape"][data-short] .actions .picture-card .choice-picture{height:65px}body[data-layout="landscape"][data-short] .actions .picture-card{padding:4px;gap:1px}body[data-layout="landscape"][data-short] .picture-card small{font-size:9px}body[data-layout="landscape"][data-short] .actions .picture-confirm{min-height:40px}body[data-layout="landscape"][data-short] .picture-confirm svg{width:26px;height:26px}
body[data-layout="portrait"]:not(.force-portrait) #landscape{display:flex}body[data-layout="portrait"] .hero{left:7%;top:20%;width:80%}body[data-layout="portrait"] .hero h1{font-size:55px}body[data-layout="portrait"] #header{left:15px;right:15px;top:17px}body[data-layout="portrait"] .brand{font-size:14px}body[data-layout="portrait"] .crumb{padding:9px}body[data-layout="portrait"] .heat{min-width:130px}body[data-layout="portrait"] .nav{gap:5px}body[data-layout="portrait"] .icon-btn{min-width:40px;padding:0 8px}body[data-layout="portrait"] .dialog{grid-template-columns:1fr;left:12px;right:12px;bottom:17px;padding:17px;gap:16px}body[data-layout="portrait"] .speech p{font-size:14px}body[data-layout="portrait"] .action{font-size:12px}body[data-layout="portrait"] .skill-tag{top:85px;left:15px}body[data-layout="portrait"] .hint-top{top:130px;font-size:11px}body[data-layout="portrait"] .map-panel{left:5%;right:5%;width:auto;top:85px}body[data-layout="portrait"] .room-panel{right:5%;width:265px;top:90px}body[data-layout="portrait"] .scene-note{display:none}body[data-layout="portrait"] .hero-footer{font-size:10px}body[data-layout="portrait"] .breath-progress{top:100px}body[data-layout="portrait"] .hotspot{font-size:11px;padding:8px 11px}

.progress-note{font-size:13px;color:#6f8a78;margin:-12px 0 18px;background:#ffffffa8;border-radius:14px;padding:8px 15px;display:inline-block}
.reset-progress{margin-top:18px;background:none;border:0;color:#9aab9c;font-size:12px;text-decoration:underline;text-underline-offset:3px;padding:6px 2px;font-family:inherit;cursor:pointer}
.reset-progress:hover{color:#c97a5a}
.reset-progress.armed{color:#c25a45;font-weight:700;text-decoration:none;background:#ffe6dd;border-radius:12px;padding:8px 15px}
