@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;900&display=swap');
:root{--ink:#65564d;--muted:#a39083;--pink:#b96c78;--paper:#fffdf8;--line:#e9dfd3;--green:#859475}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#f5f0e8;font:14px 'Noto Sans TC',sans-serif;overflow:hidden}button,select,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:var(--paper);border-radius:12px;transition:transform .15s,background .15s}button:hover{background:#f7ece5;transform:translateY(-2px)}button:focus-visible{outline:3px solid #b96c78;outline-offset:3px}button:disabled{opacity:.45;cursor:default;transform:none}small{color:var(--muted);font-size:11px;letter-spacing:1px}h1,h2,p{margin:0}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 30px;background:#fffdf9ed;border-bottom:1px solid var(--line);gap:22px;box-shadow:0 4px 24px #80634605}.brand{display:flex;gap:14px;align-items:center}.avatar{flex-shrink:0;width:64px;height:64px;background:#f7e5e1 url('assets/characters.png') no-repeat;background-size:400% 200%;background-position:0 0;border-radius:50%;border:2px solid white}.brand small{font-size:9px;letter-spacing:2px}.brand h1{font-size:21px;letter-spacing:.2px}.brand h1 span{font-size:15px;margin-left:6px;font-weight:500}.level{display:flex;gap:9px;align-items:center;margin-top:7px;font-size:10px}.level b{color:var(--pink)}.track{height:5px;background:#eaddd3;border-radius:10px;overflow:hidden}.level .track{width:110px}.track i{display:block;height:100%;background:#c38d8d;border-radius:10px;width:0;transition:width .5s}.level span{color:var(--muted)}.stats{display:flex;gap:32px;align-items:center}.stats>div{display:flex;flex-direction:column;gap:5px}.stats strong{font-size:20px;font-weight:600}.stats .money{padding:9px 24px;border-radius:16px;background:#fbf1dc}.money strong{color:#a17d38}.controls{display:flex;gap:7px}.controls button{width:38px;height:38px;font-size:19px}.controls button.active{background:#ead9d4;color:#9f5661}main{height:calc(100dvh - 222px);min-height:280px;position:relative;background:radial-gradient(ellipse at 48% 50%,#fcf8ee 0,#f1ecdf 78%);overflow:hidden}canvas{width:100%;height:100%;display:block;touch-action:none}.scene-label{position:absolute;left:36px;top:30px;pointer-events:none}.eyebrow{color:#aa9586;font-size:9px;letter-spacing:2.5px}.scene-label h2{font-size:23px;letter-spacing:2px;margin:10px 0;color:#7d695d;font-weight:500}.scene-label p{font-size:11px;color:#a69587;letter-spacing:1px}.open-pill{display:inline-block;margin-top:20px;padding:6px 13px;background:#e7ecdf;border:1px solid #d3ddc8;color:#7a8b66;border-radius:20px;font-size:11px}.quests{position:absolute;right:28px;top:30px;width:236px;border:1px solid #e5dbce;background:#fffdf8e8;border-radius:18px;box-shadow:0 8px 28px #a28b7010;overflow:hidden}.quests>button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px;border:0;border-bottom:1px dashed var(--line);border-radius:0;background:none;font-weight:600}.quest{padding:15px 17px}.quest+.quest{border-top:1px dashed var(--line)}.quest b{font-size:12px}.quest p{font-size:10px;color:var(--muted);margin:7px 0 12px;line-height:1.8}.quest .progress{display:flex;align-items:center;gap:9px;font-size:10px}.quest .track{flex:1}.quest button{font-size:11px;padding:8px;width:100%;margin-top:10px;background:#f1e5d5;border:0;color:#977d52}.aroma{position:absolute;left:36px;bottom:30px;display:flex;align-items:center;gap:12px;padding:12px 18px;background:#fffcf6cc;border-radius:16px;border:1px solid var(--line)}.aroma>span{font-size:28px;color:#929f7e}.aroma small{display:block;font-size:10px}.aroma b{font-size:18px}.aroma .track{width:95px}.aroma i{background:#96a683}.view{position:absolute;right:28px;bottom:30px;display:flex;align-items:center;gap:8px;background:#fffaf3;border:1px solid var(--line);padding:5px;border-radius:14px}.view button{width:34px;height:32px;border:0;font-size:20px;background:none}.view span{font-size:10px;color:var(--muted);min-width:36px;text-align:center}footer{height:112px;padding:14px 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffdf9;border-top:1px solid var(--line)}.dialogue{display:flex;gap:12px;align-items:center;max-width:350px}.dialogue .avatar{width:47px;height:47px}.dialogue b{font-size:11px;color:#a77979}.dialogue p{font-size:10px;color:#a39285;line-height:1.9;margin-top:5px}nav{display:flex;gap:10px}nav button{min-width:97px;padding:9px 17px;display:grid;grid-template-columns:24px 1fr;gap:2px 8px;text-align:left;box-shadow:0 3px 0 #eee4db}nav span{grid-row:span 2;font-size:27px;align-self:center;color:#ae8c74}nav b{font-size:13px}nav small{font-size:8px;letter-spacing:1px}.primary{background:#b77b80;color:white;border-color:#b77b80;box-shadow:0 3px 0 #9b6469}.primary:hover{background:#a86c72}.primary span,.primary small{color:#f7e5e2}.collect{padding:13px 16px;font-size:11px}.collect b{display:inline-block;margin-left:8px;color:#aa823b}#toast{position:absolute;top:18px;left:50%;transform:translateX(-50%) translateY(-100px);opacity:0;transition:.3s;background:#fffdf7;padding:12px 24px;border-radius:12px;box-shadow:0 6px 30px #7b594029;z-index:8;max-width:90%;text-align:center;font-size:13px;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%)}#toast.error{color:#ad444e;border:1px solid #e4a0a5}#placement{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:10px 16px;border-radius:13px;background:#fffdf9;box-shadow:0 5px 25px #77604e22;white-space:nowrap;font-size:12px}#placement button{padding:6px 10px;margin-left:7px;font-size:11px}dialog{width:min(650px,92vw);max-height:85dvh;border:1px solid #dfd0bf;border-radius:24px;padding:25px;background:#fffaf3;color:var(--ink);box-shadow:0 30px 100px #493d4033}dialog::backdrop{background:#50463f55;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-head h2{font-size:23px;margin-top:7px}.modal-head button{width:36px;height:36px;font-size:22px}.shop-note{line-height:1.8;font-size:12px;color:#a08a79;margin-bottom:18px}.shop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{border:1px solid var(--line);background:white;border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:9px}.card .icon{font-size:32px}.card h3{margin:0;font-size:14px}.card p{font-size:11px;color:var(--muted);line-height:1.7;flex:1}.card button{padding:9px;background:#f0e3d0;color:#93764f}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);gap:20px}.setting-row select{padding:8px;border:1px solid var(--line);border-radius:10px;background:white}.help{font-size:12px;line-height:2;margin-top:20px;color:#8c796a}.setting-row input{accent-color:#b77b80}.status-message{margin:15px 0;font-size:12px;color:#ab7077}
.quests{max-height:calc(100% - 110px);overflow-y:auto;scrollbar-width:thin}.quests>button{position:sticky;top:0;background:#fffdf8;z-index:1}
@media(min-width:1600px){.scene-label{top:45px;left:50px}.quests{right:45px;top:45px}}@media(max-width:1100px){.topbar{padding:12px 18px;gap:12px}.brand h1 span{display:block;font-size:12px}.stats{gap:14px}.stats strong{font-size:17px}.controls{gap:4px}.controls button{width:32px}.quests{width:190px;right:14px;top:20px}.scene-label{left:22px;top:20px}.scene-label h2{font-size:17px}.dialogue{max-width:230px}footer{padding:12px 18px;gap:10px}nav button{min-width:75px;padding:8px 11px;gap:1px 4px}nav span{font-size:21px}.collect{padding:10px}.aroma{left:20px}}@media(max-width:760px){body{overflow:auto}.topbar{flex-wrap:wrap;gap:10px;height:143px}.brand{gap:8px}.brand .avatar{width:45px;height:45px}.brand h1{font-size:16px}.brand h1 span{display:inline;font-size:11px}.brand small{font-size:7px}.stats{order:3;width:100%;justify-content:space-around}.stats>div{gap:2px}.stats .money{padding:4px 18px}.stats strong{font-size:15px}.stats small{font-size:9px}.controls button{width:29px;height:32px;font-size:16px}.level{margin-top:3px}.scene-label{top:15px;left:16px}.scene-label h2{font-size:14px;margin:6px 0}.scene-label p,.eyebrow{font-size:8px}.open-pill{margin-top:10px;font-size:9px}.quests{width:150px;top:15px;right:10px;max-height:145px}.quests>button{padding:11px;font-size:11px}.quest{padding:10px 12px}.quest p{font-size:9px;margin:5px 0}.quest b{font-size:10px}main{height:calc(100dvh - 270px);min-height:360px}.aroma{bottom:16px;left:12px;padding:8px 10px}.aroma>span{font-size:20px}.aroma small{font-size:8px}.aroma b{font-size:14px}.view{bottom:16px;right:12px;gap:0}.view button{width:30px}footer{height:127px;flex-wrap:wrap;padding:10px 12px;gap:7px}.dialogue{max-width:calc(100% - 120px);order:0}.dialogue .avatar{display:none}.dialogue p{font-size:9px;margin-top:2px}.dialogue b{font-size:10px}.collect{order:1;font-size:10px;padding:8px}nav{order:2;width:100%;gap:7px;justify-content:center}nav button{flex:1;min-width:0;padding:7px 8px}nav b{font-size:11px}nav small{font-size:7px}#placement{bottom:65px;white-space:normal;width:90%;font-size:10px}.shop-grid{gap:9px}.card{padding:12px}.card h3{font-size:12px}}
