*,:before,:after{box-sizing:border-box}html,body,#root{background:#c9a6e0;width:100%;height:100%;margin:0;padding:0;overflow:hidden}canvas{cursor:grab;touch-action:none}canvas:active{cursor:grabbing}.paper-card{--paper:#efe8d3;--edge:clamp(12px, .95vw, 18px);--corner:clamp(28px, 2vw, 38px);isolation:isolate;box-sizing:border-box;border-radius:var(--corner);background:var(--paper);position:relative;box-shadow:0 18px 40px #3c28462e}.paper-card:before{content:"";inset:var(--edge) calc(var(--edge) * -1) calc(var(--edge) * -1) var(--edge);z-index:-2;border-radius:var(--corner);background:repeating-linear-gradient(115deg,#e9a13f 0 34px,#f3c077 34px 58px);position:absolute}.paper-card:after{content:"";z-index:-1;border-radius:inherit;background:var(--paper);position:absolute;inset:0}.auth{--ink:#6e5b45;--field:#fcfaf5;--orange:#e9a13f;--rest:#cbc4ae;z-index:8;background:#d6bee238;place-items:center;padding:16px 28px 28px 16px;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;transition:opacity .35s;display:grid;position:fixed;inset:0;overflow:auto}.auth--leaving{opacity:0;pointer-events:none}.auth__card{width:min(100%,max(640px,50vw));padding:clamp(18px,9vh,96px) clamp(18px,7.2vw,138px) clamp(16px,6vh,64px)}.auth__field{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(10px,2.2vw,42px);margin-bottom:clamp(10px,4.6vh,50px);display:grid}.auth__field label{color:var(--ink);letter-spacing:.22em;white-space:nowrap;font-size:clamp(20px,1.2vw + 14px,38px);font-weight:800}.auth__field input{box-sizing:border-box;background:var(--field);color:#3f3324;width:100%;height:clamp(42px,2.8vw,54px);font:inherit;border:2px solid #0000;border-radius:6px;outline:none;padding:0 12px;font-size:16px;transition:border-color .15s}.auth__field input:focus{border-color:var(--orange)}.auth__message{text-align:center;min-height:1.5em;margin:0 0 clamp(6px,1.6vh,14px);font-size:15px;font-weight:600;line-height:1.5}.auth__message--error{color:#a8432f}.auth__message--success{color:#2f7a58}.auth__buttons{justify-content:center;gap:clamp(8px,2.2vw,42px);display:flex}.auth__button{color:#fff;min-width:0;max-width:clamp(150px,10.5vw,202px);min-height:clamp(48px,3.6vw,70px);font:inherit;letter-spacing:.04em;white-space:nowrap;cursor:pointer;border:0;border-radius:999px;flex:1 1 0;padding:8px 4px;font-size:clamp(14px,.9vw + 11.5px,27px);font-weight:700;transition:background .15s,transform .1s,filter .15s}.auth__button:hover:not(:disabled){filter:brightness(1.06)}.auth__button:active:not(:disabled){transform:scale(.97)}.auth__button:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.auth__button--main{background:var(--orange);color:#4c3210}.auth__button--plain{background:#7d6b50}.auth__button--danger{background:#b4553f}.auth__button:disabled{background:var(--rest);color:#f3eee0;cursor:default}.auth__confirm{text-align:center}.auth__confirm-title{color:var(--ink);letter-spacing:.08em;margin:0 0 12px;font-size:clamp(22px,1.2vw + 14px,38px);font-weight:800}.auth__confirm-text{color:var(--ink);overflow-wrap:anywhere;margin:0 0 clamp(14px,4vh,40px);font-size:clamp(16px,1.1vw,21px);line-height:1.6}:lang(en) .auth__field label{letter-spacing:.02em;min-width:5.4em}:lang(en) .auth__button{white-space:normal;line-height:1.15}@media (prefers-reduced-motion:reduce){.auth,.auth__button{transition:none}}.avatar{--ink:#6e5b45;--thumb:clamp(46px, min(5.8vw, 11.5vh), 112px);--gap:clamp(8px, 1vw, 20px);--arrow:clamp(18px, 2.4vw, 46px);z-index:8;pointer-events:none;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;position:fixed;inset:0}.avatar>*{pointer-events:auto}.avatar button{font-family:inherit}.avatar__exit{top:calc(clamp(12px, 5vh, 52px) + env(safe-area-inset-top));left:calc(clamp(12px, 3.4vw, 66px) + env(safe-area-inset-left));aspect-ratio:1.3;cursor:pointer;background:linear-gradient(115deg,#ed7a58,#f4b04e);border:clamp(3px,.3vw,6px) solid #fff8ea;border-radius:50%;place-items:center;width:clamp(72px,7.6vw,146px);padding:0;transition:transform .12s,filter .15s;display:grid;position:absolute;box-shadow:0 6px 18px #3c284638}.avatar__exit svg{width:52%;height:62%}.avatar__exit:hover{filter:brightness(1.06)}.avatar__exit:active{transform:scale(.96)}.avatar__genders{left:calc(clamp(12px, 6vw, 116px) + env(safe-area-inset-left));bottom:calc(clamp(12px, 16vh, 170px) + env(safe-area-inset-bottom));gap:clamp(8px,1.8vh,34px);display:grid;position:absolute}.avatar__gender{aspect-ratio:1;box-sizing:border-box;color:#fff;cursor:pointer;opacity:.72;border:clamp(2px,.25vw,5px) solid #fff8ea;border-radius:26%;place-items:center;width:clamp(48px,min(5.4vw,12vh),104px);transition:opacity .15s,transform .15s;display:grid;position:relative;box-shadow:0 6px 16px #3c284633}.avatar__gender svg{width:72%;height:72%}.avatar__gender--boy{background:#4fa6cf}.avatar__gender--girl{background:#f783bd}.avatar__gender:has(input:checked){opacity:1;transform:scale(1.06)}:is(.avatar__gender:has(input:focus-visible),.avatar__option:has(input:focus-visible)){outline:3px solid var(--ink);outline-offset:2px}.avatar__gender input,.avatar__option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.avatar__card{top:50%;right:calc(clamp(20px, 7vw, 134px) + env(safe-area-inset-right));width:min(calc(var(--thumb) * 4.5 + var(--gap) * 4 + var(--arrow) * 2 + clamp(24px, 4vw, 90px)), 62vw);flex-direction:column;max-height:calc(100% - 32px);display:flex;position:absolute;transform:translateY(-50%)}.avatar__scroller{overscroll-behavior:contain;flex:1;min-height:0;padding:clamp(10px,3.4vh,38px) clamp(10px,2vw,44px) 0;overflow-y:auto}.avatar__footer{flex:none;padding:0 clamp(10px,2vw,44px) clamp(10px,3vh,34px)}.avatar__section{margin-bottom:clamp(6px,2vh,24px)}.avatar__title{margin:0 0 clamp(4px, 1.2vh, 14px) var(--arrow);color:var(--ink);letter-spacing:.18em;font-size:clamp(16px,.9vw + 9px,34px);font-weight:800}.avatar__row{grid-template-columns:var(--arrow) minmax(0, 1fr) var(--arrow);align-items:center;display:grid}.avatar__options{gap:var(--gap);overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity;grid-column:2;padding:4px;display:flex;overflow-x:auto}.avatar__options::-webkit-scrollbar{display:none}.avatar__option{width:var(--thumb);aspect-ratio:1;cursor:pointer;scroll-snap-align:center;background:#fcfaf5;border-radius:clamp(8px,.8vw,14px);flex:none;transition:box-shadow .15s;position:relative}.avatar__option img{object-fit:contain;border-radius:inherit;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.avatar__option:hover{box-shadow:0 0 0 2px #e9d9a8}.avatar__option:has(input:checked){box-shadow:0 0 0 clamp(3px,.24vw,4px) #dcbb62}.avatar__arrow{height:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.avatar__arrow--next{grid-column:3}.avatar__arrow svg{width:clamp(8px,.8vw,15px);height:clamp(12px,1.2vw,22px)}.avatar__arrow:focus-visible{outline:3px solid var(--ink);outline-offset:-2px}.avatar__message{min-height:1.4em;color:var(--ink);text-align:center;margin:0 0 clamp(2px,1vh,10px);font-size:clamp(13px,.9vw,16px);font-weight:600}.avatar__confirm{background:var(--ink);color:#f6f0df;letter-spacing:.2em;cursor:pointer;border:0;border-radius:999px;min-width:clamp(110px,8.4vw,160px);min-height:clamp(38px,2.9vw,56px);margin:0 auto;padding:4px 24px;font-size:clamp(16px,.8vw + 9px,28px);font-weight:700;transition:filter .15s,transform .1s;display:block}.avatar__confirm:hover:not(:disabled){filter:brightness(1.12)}.avatar__confirm:active:not(:disabled){transform:scale(.97)}.avatar__confirm:disabled{opacity:.6;cursor:default}.avatar__confirm:focus-visible{outline:3px solid var(--ink);outline-offset:2px}:lang(en) .avatar__title,:lang(en) .avatar__confirm{letter-spacing:.04em}@media (aspect-ratio<=1){.avatar{--thumb:clamp(44px, min(16vw, 8vh), 112px);--arrow:clamp(18px, 5vw, 40px)}.avatar__card{top:auto;left:12px;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));width:auto;max-height:54%;transform:none}.avatar__genders{left:calc(14px + env(safe-area-inset-left));bottom:calc(54% + 44px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.avatar__exit,.avatar__gender,.avatar__option,.avatar__confirm{transition:none}}.social{--ink:#6e5b45;--paper:#efe8d3;--well:#e5ddbd;--field:#f8f5ec;--rim:#d8d3bd;--teal:#17cba8;--rose:linear-gradient(100deg, #f7647e 45%, #eda84c);--row-corner:clamp(16px, 1.3vw, 26px);--round:clamp(40px, 3.6vw, 72px);z-index:9;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:12px;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:grid;position:fixed;inset:0}.social__card{box-sizing:border-box;background:var(--paper);border-radius:clamp(24px,2vw,38px);flex-direction:column;width:min(100%,max(660px,67vw));height:min(100%,max(320px,76vh));padding:clamp(8px,2.2vh,28px) clamp(14px,3.8vw,72px) clamp(10px,3.4vh,56px);display:flex;position:relative;box-shadow:0 18px 40px #3c28462e}.social__title{padding:0 calc(var(--round) + 8px) clamp(4px, 1.4vh, 20px);border-bottom:clamp(2px, .16vw, 3px) solid var(--ink);color:var(--ink);letter-spacing:.04em;text-align:center;white-space:nowrap;text-overflow:ellipsis;flex:none;margin:0;font-size:clamp(20px,2.2vw,42px);font-weight:800;overflow:hidden}.social__close{z-index:1;aspect-ratio:1;color:#7a4f1a;cursor:pointer;background:#dcbb62;border:0;border-radius:50%;place-items:center;width:clamp(38px,3vw,58px);padding:0;transition:filter .15s,transform .1s;display:grid;position:absolute;top:clamp(8px,1.6vw,30px);right:clamp(8px,1.5vw,28px)}.social__close svg{width:62%;height:62%}.social__close:hover{filter:brightness(1.06)}.social__close:active{transform:scale(.94)}.social__body{flex:1;grid-template-columns:auto minmax(0,1fr);gap:clamp(12px,3vw,60px);min-height:0;margin-top:clamp(8px,3.4vh,46px);display:grid}.social__body--whole{grid-template-columns:minmax(0,1fr)}.social__tabs{flex-direction:column;align-items:flex-start;gap:clamp(4px,3.6vh,46px);padding:clamp(0px,3.4vh,40px) 0 0 clamp(0px,.5vw,10px);display:flex}.social__tab{color:var(--ink);font:inherit;letter-spacing:.02em;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:clamp(15px,1.9vw,36px);font-weight:800}.social__tab[aria-selected=true]{background:linear-gradient(#0000 76%,#eccf9c 76%)}.social__well{box-sizing:border-box;background:var(--well);border-radius:clamp(18px,1.5vw,28px);flex-direction:column;gap:clamp(6px,1.4vh,16px);min-width:0;min-height:0;padding:clamp(8px,1.6vh,18px) clamp(8px,1vw,20px);display:flex}.social__well--bare{background:0 0;padding-inline:0}.social__well--form{justify-content:center;align-items:center;padding-block:clamp(8px,2vh,24px)}.social__tools{flex-wrap:wrap;flex:none;gap:clamp(6px,.7vw,14px);display:flex}.social__search{box-sizing:border-box;border:2px solid var(--rim);background:var(--field);max-width:clamp(160px,18vw,340px);height:clamp(36px,3.3vw,64px);color:var(--ink);border-radius:999px;flex:140px;align-items:center;gap:6px;padding:0 clamp(10px,.9vw,18px);display:flex}.social__search--wide{flex:none;width:80%;max-width:none;height:clamp(42px,5vw,96px);padding-inline:clamp(12px,1.8vw,36px)}.social__search svg{opacity:.8;flex:none;width:clamp(18px,1.5vw,28px);height:clamp(18px,1.5vw,28px)}.social__search--wide svg{opacity:.5;width:clamp(20px,2.2vw,42px);height:clamp(20px,2.2vw,42px)}.social__search input{min-width:0;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0;font-size:16px;font-weight:600}.social__search--wide input{font-size:max(16px,1.6vw)}.social__search input::placeholder,.social__letter::placeholder{color:var(--ink);opacity:.45}.social__search:focus-within{border-color:#e9a13f}.social__filter{border:2px solid var(--rim);background:var(--field);min-width:clamp(56px,6vw,120px);height:clamp(36px,3.3vw,64px);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:0 clamp(8px,.8vw,16px);font-size:clamp(15px,1.7vw,32px);font-weight:700}.social__filter[aria-pressed=true]{background:#e0cc8c;border-color:#dcbb62}.social__list{overscroll-behavior:contain;flex-direction:column;flex:1;gap:clamp(6px,1.8vh,24px);min-height:0;padding:2px 4px 2px 2px;display:flex;overflow-y:auto}.social__note{color:var(--ink);text-align:center;opacity:.75;margin:auto;padding:12px;font-size:clamp(15px,1.2vw,22px);font-weight:600}.social__row{box-sizing:border-box;background:var(--paper);width:100%;min-height:clamp(52px,4.8vw,92px);color:var(--ink);font:inherit;text-align:left;border:0;border-radius:999px;flex:none;align-items:center;gap:clamp(8px,.8vw,16px);padding:6px clamp(10px,1.2vw,24px);display:flex}button.social__row{cursor:pointer;transition:filter .15s}button.social__row:hover{filter:brightness(1.03)}.social__row--friend{background:#e3dcbd}.social__row--letter{border-radius:var(--row-corner);min-height:clamp(62px,6.9vw,132px)}.social__row--inbox .social__date{order:1}.social__row--inbox .social__mark{order:2}.social__who{flex:1;min-width:0;display:grid}.social__name,.social__line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.social__name{font-size:clamp(16px,1.65vw,32px);font-weight:700;line-height:1.25}.social__line{font-size:clamp(13px,1.2vw,24px);font-weight:600;line-height:1.3}.social__date{font-variant-numeric:tabular-nums;flex:none;font-size:clamp(13px,1.4vw,27px);font-weight:700}.social__ask{flex:1;min-width:0;margin:0;font-size:clamp(14px,1.2vw,22px);font-weight:700}.social__dot{aspect-ratio:1;background:#5b5a55;border:2px solid #8f8a78;border-radius:50%;flex:none;width:clamp(14px,1.3vw,26px)}.social__dot--online{background:#2fc684;border-color:#cdf4e4}.social__mark{color:#e0d9bd;flex:none;place-items:center;width:clamp(30px,3.5vw,66px);display:grid}.social__mark svg{width:100%;height:auto}.social__mark--new{color:#e8763a}.social__mark--ticks{color:#dcd5b8}.social__mark--seen{color:var(--ink)}.social__round{width:var(--round);aspect-ratio:1;color:#fffaf0;cursor:pointer;border:clamp(2px,.18vw,3px) solid #fffaf0;border-radius:50%;flex:none;place-items:center;padding:0;transition:filter .15s,transform .1s;display:grid}.social__round svg{width:60%;height:60%}.social__round--yes{background:var(--teal)}.social__round--no{background:var(--rose)}.social__round:hover:not(:disabled){filter:brightness(1.06)}.social__round:active:not(:disabled){transform:scale(.94)}.social__button{background:var(--teal);color:#fffaf0;min-width:clamp(120px,12.8vw,246px);min-height:clamp(40px,3.6vw,70px);font:inherit;white-space:nowrap;cursor:pointer;border:clamp(2px,.18vw,3px) solid #fffaf0;border-radius:999px;flex:none;padding:4px clamp(14px,1.4vw,28px);font-size:clamp(15px,1.6vw,30px);font-weight:700;transition:filter .15s,transform .1s}.social__button--small{min-width:clamp(72px,7vw,136px);min-height:clamp(36px,2.6vw,50px)}.social__button--rose{background:var(--rose)}.social__button:hover:not(:disabled){filter:brightness(1.06)}.social__button:active:not(:disabled){transform:scale(.97)}.social__button:disabled,.social__round:disabled{opacity:.55;cursor:default}.social__player-id{color:#5e4a32;align-self:flex-end;margin:0 0 auto;font-size:clamp(15px,2vw,38px);font-weight:700}.social__well--form .social__message{margin-bottom:auto}.social__message{min-height:1.4em;color:var(--ink);text-align:center;flex:none;margin:0;font-size:clamp(13px,1vw,18px);font-weight:600;line-height:1.4}.social__message:empty{display:none}.social__well--form .social__message:empty{display:block}.social__message--error{color:#a8432f}.social__message--success{color:#2f7a58}.social__status{box-sizing:border-box;border:2px solid var(--rim);background:var(--field);border-radius:clamp(20px,2.4vw,44px);flex:0 auto;width:80%;height:min(100%,clamp(120px,26vh,260px));margin-block:auto 0;position:relative}.social__status:focus-within{border-color:#e9a13f}.social__status textarea{box-sizing:border-box;border-radius:inherit;width:100%;height:100%;color:var(--ink);font:inherit;resize:none;background:0 0;border:0;outline:0;padding:clamp(10px,1.2vw,22px) clamp(12px,1.8vw,34px) clamp(46px,3.6vw,66px);font-size:max(16px,1.6vw);font-weight:600;display:block}.social__status .social__button{position:absolute;bottom:clamp(6px,.8vw,16px);right:clamp(6px,.8vw,16px)}.social__page{flex-direction:column;gap:clamp(6px,2vh,28px);min-width:0;min-height:0;display:flex}.social__paper{background:var(--well);border-radius:clamp(20px,2vw,38px);flex:1;min-height:0;padding:clamp(8px,1vw,20px) clamp(10px,2.9vw,56px);display:flex}.social__letter{box-sizing:border-box;background:var(--paper);min-width:0;color:var(--ink);font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;resize:none;border:0;border-radius:clamp(12px,1vw,20px);outline:0;flex:1;margin:0;padding:clamp(6px,.6vw,12px);font-size:max(16px,1.65vw);font-weight:700;line-height:1.45;overflow-y:auto}.social__actions{flex:none;justify-content:flex-end;align-items:center;gap:clamp(8px,1.6vw,30px);padding-right:clamp(0px,2vw,40px);display:flex}.social__actions .social__message{text-align:left;flex:1}.social__close:focus-visible,.social__tab:focus-visible,.social__filter:focus-visible,.social__row:focus-visible,.social__round:focus-visible,.social__button:focus-visible{outline:3px solid var(--ink);outline-offset:2px}@media (aspect-ratio<=1){.social__card{width:100%;height:min(100%,86vh);padding-inline:14px}.social__body{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:10px}.social__body--whole{grid-template-rows:minmax(0,1fr)}.social__tabs{flex-flow:wrap;justify-content:space-evenly;gap:4px 14px;padding:0}.social__search--wide,.social__status{width:100%}}@media (height<=420px){.social{--round:36px;padding:6px}.social__title{font-size:18px}.social__close{width:32px}.social__row{min-height:44px;padding-block:3px}.social__row--letter{min-height:50px}.social__search,.social__filter{height:32px}.social__search--wide{height:38px}.social__button{min-height:34px}}@media (prefers-reduced-motion:reduce){.social__close,.social__round,.social__button,button.social__row{transition:none}}.game-menu{--ink:#6e5b45;z-index:9;padding:clamp(8px, .8vw, 16px) clamp(20px, 3vw, 58px) calc(clamp(6px, .5vw, 10px) + env(safe-area-inset-bottom));box-sizing:border-box;background:#f3ecdb;border-radius:clamp(44px,4vw,76px) clamp(44px,4vw,76px) 0 0;justify-content:center;gap:clamp(12px,2vw,38px);font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -6px 18px #3c284624}.game-menu__button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:20px;flex-direction:column;align-items:center;padding:0;display:flex}.game-menu__button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.game-menu__icon{aspect-ratio:1;box-sizing:border-box;border:clamp(3px, .28vw, 5px) solid var(--ink);color:#e8763a;border-radius:50%;place-items:center;width:clamp(60px,4.7vw,90px);display:grid;position:relative}.game-menu__icon svg{width:62%;height:62%;transition:transform .15s}.game-menu__button:hover .game-menu__icon svg{transform:scale(1.1)}.game-menu__button:hover .game-menu__gear{transform:rotate(30deg)}.game-menu__badge{box-sizing:border-box;color:#fff;background:#d9453d;border:2px solid #f3ecdb;border-radius:999px;place-items:center;min-width:clamp(18px,1.3vw,25px);height:clamp(18px,1.3vw,25px);padding:0 4px;font-size:clamp(11px,.75vw,14px);font-weight:800;line-height:1;display:grid;position:absolute;top:-3px;right:-3px}.game-menu__label{background:var(--ink);color:#f6f0df;letter-spacing:.04em;white-space:nowrap;border-radius:999px;margin-top:clamp(-14px,-.7vw,-8px);padding:2px 12px 3px;font-size:clamp(13px,.9vw,17px);font-weight:700;position:relative}@media (prefers-reduced-motion:reduce){.game-menu__icon svg{transition:none}}.joystick{--lift:0px;--minimap:calc(min(176px, 36vw, 44vh) + 56px);--size:min(368px, 100vw - 48px, 100vh - 24px - var(--lift) - var(--minimap));left:calc(24px + env(safe-area-inset-left));bottom:calc(24px + var(--lift) + env(safe-area-inset-bottom));z-index:9;width:var(--size);height:var(--size);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#18123052;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}@media (width<=1100px) and (height>=500px){.joystick{--lift:92px}}.joystick--held{cursor:grabbing;background:#18123073}.joystick__knob{pointer-events:none;background:#ece6ffd9;border-radius:50%;width:41.6%;height:41.6%;transition:transform .12s ease-out;box-shadow:0 3px 10px #18123059}.joystick--held .joystick__knob{transition:none}.lighting-panel{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ece6ff;background:#181230d1;border-radius:10px;flex-direction:column;width:260px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);font:12px/1.4 system-ui,-apple-system,Segoe UI,sans-serif;display:flex;position:fixed;top:12px;right:12px;box-shadow:0 6px 24px #0000004d}.lighting-panel button{font:inherit;color:inherit;cursor:pointer}.lighting-panel__header{background:0 0;border:0;justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;font-weight:600;display:flex}.lighting-panel__body{padding:0 12px 12px;overflow-y:auto}.lighting-panel__group{border-top:1px solid #ffffff1a;padding:8px 0}.lighting-panel__group h3{text-transform:uppercase;letter-spacing:.06em;color:#b6a8ff;margin:0 0 6px;font-size:11px;font-weight:600}.lighting-panel__note{color:#ece6ff99;margin:0 0 6px}.lighting-panel__row{justify-content:space-between;align-items:center;gap:8px;min-height:26px;display:flex}.lighting-panel__row--range{flex-wrap:wrap;row-gap:0}.lighting-panel__row--range input{accent-color:#b6a8ff;flex-basis:100%;margin:0 0 4px}.lighting-panel__row output{font-variant-numeric:tabular-nums;color:#ece6ffbf}.lighting-panel__row input[type=checkbox]{accent-color:#b6a8ff}.lighting-panel__row input[type=color]{background:0 0;border:1px solid #ffffff40;border-radius:4px;width:36px;height:22px;padding:0}.lighting-panel__actions{border-top:1px solid #ffffff1a;gap:8px;padding-top:10px;display:flex}.lighting-panel__actions button{background:#ffffff14;border:1px solid #fff3;border-radius:6px;flex:1;padding:6px 0}.lighting-panel__actions button:hover{background:#ffffff29}.minimap{--size:min(176px, 36vw, 44vh);top:calc(16px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));z-index:9;width:var(--size);color:#ece6ff;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0;font:600 12px/1.2 PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;position:fixed}.minimap__map{aspect-ratio:1;background:#1ea4c8;border:3px solid #ffffffbf;border-radius:50%;width:100%;transition:border-color .2s,transform .2s;display:block;box-shadow:0 4px 16px #18123059}.minimap:hover .minimap__map{transform:scale(1.03)}.minimap--aerial .minimap__map{border-color:#ffd2a1}.minimap:focus-visible{outline:none}.minimap:focus-visible .minimap__map{outline-offset:2px;outline:3px solid #ffd2a1}.minimap__label{background:#1812308c;border-radius:999px;margin-top:6px;padding:3px 9px;display:inline-block}.player-debug{top:calc(12px + env(safe-area-inset-top));z-index:9;color:#ece6ff;pointer-events:none;-webkit-user-select:text;user-select:text;background:#18123099;border-radius:8px;padding:4px 10px;font:600 12px/1.3 ui-monospace,Consolas,monospace;position:fixed;left:50%;transform:translate(-50%)}.settings{--ink:#6e5b45;--tile-height:clamp(56px, min(6.7vw, 13vh), 128px);--tile-corner:clamp(20px, 2vw, 38px);z-index:9;place-items:center;padding:16px 28px 28px 16px;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:grid;position:fixed;inset:0;overflow:auto}.settings__card{width:min(100%,max(420px,33.6vw));padding:clamp(14px,3vh,44px) clamp(18px,3vw,58px) clamp(16px,3.4vh,38px)}.settings__title{color:var(--ink);letter-spacing:.06em;text-align:center;margin:0 0 clamp(10px,2vh,26px);font-size:clamp(22px,1.1vw + 14px,38px);font-weight:800}.settings__close{aspect-ratio:1;color:#7a4f1a;cursor:pointer;background:#dcbb62;border:0;border-radius:50%;place-items:center;width:clamp(44px,3.4vw,66px);padding:0;transition:filter .15s,transform .1s;display:grid;position:absolute;top:clamp(12px,1.6vw,30px);right:clamp(12px,1.6vw,30px)}.settings__close svg{width:58%;height:58%}.settings__close:hover{filter:brightness(1.06)}.settings__close:active{transform:scale(.94)}.settings__tiles{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:clamp(10px,2vw,38px);margin-bottom:clamp(12px,3.8vh,42px);display:grid}.settings__tile{height:var(--tile-height);border-radius:var(--tile-corner);color:var(--ink);cursor:pointer;background:#e8e2cb;place-items:center;font-size:clamp(24px,2vw,38px);font-weight:700;transition:background .15s;display:grid;position:relative}.settings__tile:hover{background:#e3dab8}.settings__tile:has(input:checked){background:#e0cc8c}.settings__tile:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:2px}.settings__tile input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.settings__logout{width:100%;height:var(--tile-height);border-radius:var(--tile-corner);color:var(--ink);font:inherit;letter-spacing:.04em;cursor:pointer;background:#e3dcbd;border:0;justify-content:center;align-items:center;gap:clamp(10px,1vw,20px);padding:0 12px;font-size:clamp(20px,1vw + 12px,36px);font-weight:700;transition:background .15s,transform .1s;display:flex}.settings__logout svg{flex:none;width:1.5em;height:1.5em}.settings__logout:hover{background:#dcd3ae}.settings__logout:active{transform:scale(.985)}.settings__close:focus-visible,.settings__logout:focus-visible{outline:3px solid var(--ink);outline-offset:2px}@media (height<=340px){.settings{--tile-height:46px}}@media (prefers-reduced-motion:reduce){.settings__tile,.settings__close,.settings__logout{transition:none}}.journal{--ink:#4d3d30;--soft:#8c7763;--orange:#ee8a26;z-index:12;color:var(--ink);background:#2a163066;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:10px;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:grid;position:fixed;inset:0}.journal,.journal *{scrollbar-width:none}.journal ::-webkit-scrollbar{display:none}.journal__panel{box-sizing:border-box;isolation:isolate;background:radial-gradient(320px 115px at calc(100% - 160px) calc(100% + 5px),#c9d88fbf 99.6%,#0000 100%),radial-gradient(310px 130px at 170px calc(100% - 10px),#d6e2a6e6 99.6%,#0000 100%),#fbf6ea;border-radius:clamp(22px,2.6vw,34px);flex-direction:column;width:min(100%,860px);min-height:min(100%,500px);max-height:100%;padding:clamp(14px,4vh,40px) clamp(14px,4vw,56px);display:flex;position:relative;overflow:hidden auto;box-shadow:0 22px 60px #2a103066}.journal__page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:clamp(8px,2.4vh,22px);display:flex}.journal__page--beside{text-align:left;flex-direction:row;gap:clamp(14px,3vw,34px)}.journal__page--beside>div{flex-direction:column;align-items:flex-start;gap:clamp(8px,2vh,18px);display:flex}.journal h2{color:#5b4a3c;letter-spacing:.1em;margin:0;font-size:clamp(20px,2.4vw,30px);font-weight:800}:lang(en) .journal h2{letter-spacing:.02em}.journal__lead{max-width:600px;margin:0;font-size:clamp(14px,1.4vw,17px);line-height:1.7}.journal__tip{color:var(--orange);margin:0;font-size:clamp(12px,1.1vw,14px);font-weight:700}.journal__button{color:#fff;min-width:120px;height:46px;font:inherit;cursor:pointer;background:#6b5c4e;border:0;border-radius:999px;flex:none;padding:0 28px;font-size:17px;font-weight:700;box-shadow:0 3px #4e4136}.journal__button:active:not(:disabled){box-shadow:none;transform:translateY(3px)}.journal__button:disabled{opacity:.45;cursor:default}.journal__close{z-index:2;color:#fff;width:44px;height:44px;font:inherit;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ff8d95,#d9435a);border:0;border-radius:50%;padding:0;font-size:26px;font-weight:900;line-height:44px;position:absolute;top:16px;right:18px;box-shadow:0 3px #a83246,0 0 0 3px #fff}.journal__close--gold{color:#6b4a10;background:radial-gradient(circle at 35% 30%,#f7d77a,#e0b23c);box-shadow:0 3px #b88a1e,0 0 0 3px #fff}.journal__required{color:#c0442c;background:#ffe9e2;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;position:absolute;top:14px;left:18px}.journal__moods{justify-content:space-between;gap:4px;width:min(100%,520px);display:flex}.journal__mood{min-width:0;color:var(--soft);cursor:pointer;flex-direction:column;flex:1 1 0;align-items:center;gap:6px;font-size:clamp(12px,1.2vw,14px);display:flex;position:relative}.journal__mood input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.journal__mood svg{max-width:100%;transition:transform .15s}.journal__mood:has(input:checked){color:var(--ink);font-weight:900}.journal__mood:has(input:checked) svg{transform:scale(1.22)}.journal__mood:has(input:focus-visible){outline:3px solid var(--orange);outline-offset:2px}.journal__slider{accent-color:#e3784b;width:min(100%,470px)}.journal__tree{flex:none;width:min(36%,280px);height:auto}.journal__entry{box-sizing:border-box;resize:none;width:100%;min-height:90px;color:var(--ink);font:inherit;background:#ffffff8c;border:0;border-radius:12px;outline:0;flex:1;padding:8px;font-size:max(16px,1.5vw);line-height:1.8}.journal__foot{text-align:left;justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.journal__charms{justify-content:center;gap:clamp(10px,4vw,56px);display:flex}.journal__charm{font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;transition:transform .15s;display:flex}.journal__charm:hover:not(.journal__charm--shown){transform:translateY(-6px)rotate(-2deg)}.journal__charm--shown{cursor:default;flex:none}.journal__knot{z-index:1;box-sizing:border-box;border:6px solid #c79a62;border-bottom-color:#0000;border-radius:50%;width:clamp(36px,4.4vw,58px);height:clamp(26px,3vw,40px);margin-bottom:-14px;position:relative}.journal__bag{aspect-ratio:13/17;box-sizing:border-box;border-radius:30px 30px 22px 22px;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:clamp(84px,min(11vw,20vh),130px);padding-top:10px;display:flex;box-shadow:inset 0 -6px #00000021,0 8px 16px #0003}.journal__face{aspect-ratio:1;background:#fff;border-radius:50%;width:66%;overflow:hidden;box-shadow:0 0 0 4px #ffffffab}.journal__face img{object-fit:cover;object-position:50% 18%;width:100%;height:100%}.journal__tag{color:#5b3b2c;white-space:nowrap;background:#fff8ec;border-radius:8px;padding:1px 10px;font-size:clamp(12px,1.4vw,18px);font-weight:700}.journal__note{text-align:left;align-items:center;gap:clamp(14px,3vw,36px);display:flex}.journal__note p{max-height:34vh;margin:0;font-size:clamp(14px,1.4vw,17px);line-height:1.9;overflow-y:auto}.journal__failed{color:#a8432f;margin:0;font-size:14px;font-weight:700}.calendar__head{border-bottom:2px solid var(--soft);justify-content:center;align-items:center;gap:24px;padding-bottom:8px;font-size:clamp(18px,2vw,24px);font-weight:800;display:flex}.calendar__head button{width:36px;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:26px}.calendar__grid{font-variant-numeric:tabular-nums;grid-template-columns:repeat(7,1fr);justify-items:center;gap:2px 0;margin-top:8px;display:grid}.calendar__weekday{color:var(--soft);padding:2px 0;font-size:14px;font-weight:700}.calendar__day{aspect-ratio:1;color:#6b5a4b;width:clamp(30px,min(7vw,6.4vh),44px);font:inherit;background:0 0;border:0;border-radius:12px;place-items:center;padding:0;font-size:clamp(13px,1.4vw,17px);display:grid}button.calendar__day{cursor:pointer}.calendar__day svg{width:88%;height:88%}.calendar__day--today{box-shadow:inset 0 0 0 2px #e3784b}.calendar__entry{background:#fffdf6;border-radius:16px;align-items:center;gap:14px;margin-top:10px;padding:10px 16px;font-size:15px;line-height:1.6;display:flex;box-shadow:0 4px 14px #00000021}.calendar__entry svg{flex:none}.calendar__entry p{overflow-wrap:anywhere;margin:0}@media (width<=560px){.journal__page--beside{text-align:center;flex-direction:column}.journal__page--beside>div{align-items:center}.journal__tree{width:46%}.journal__note,.journal__foot{flex-direction:column}}@media (prefers-reduced-motion:reduce){.journal__charm,.journal__mood svg{transition:none}}.dialogue,.dialogue__center{--ink:#6e5b45;z-index:9;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;position:fixed}.dialogue{pointer-events:none;justify-content:center;padding:0 clamp(14px,3vw,40px) 0 12px;display:flex;bottom:clamp(10px,5.6vh,60px);left:0;right:0}.dialogue__box{--edge:clamp(8px, .7vw, 14px);--corner:clamp(30px, 4vw, 76px);width:min(100%,max(560px,63vw));min-height:clamp(110px,36vh,380px);color:var(--ink);font:inherit;letter-spacing:.04em;text-align:center;cursor:pointer;pointer-events:auto;border:0;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,5vh,52px);padding:clamp(24px,6vh,60px) clamp(16px,4vw,72px) clamp(16px,5vh,52px);font-size:clamp(16px,1.9vw,36px);font-weight:800;line-height:1.5;display:flex}:lang(en) .dialogue__box{letter-spacing:0}.dialogue__box--writing{cursor:default}.dialogue__box:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.dialogue__speaker{z-index:1;box-sizing:border-box;color:#fff8ea;white-space:nowrap;background:#d9834e;border-radius:44%/60%;min-width:clamp(84px,9.6vw,190px);padding:clamp(4px,.7vw,14px) clamp(16px,2.4vw,46px);font-size:clamp(15px,1.75vw,34px);font-weight:800;position:absolute;top:clamp(-30px,-2.2vw,-14px);left:clamp(-22px,-1vw,-8px);transform:rotate(-5deg)}.dialogue__line,.dialogue__answer{overflow-wrap:anywhere;max-width:100%}.dialogue__unwritten{visibility:hidden}.dialogue__more{color:#5d4a35;font-size:clamp(14px,1.5vw,26px);animation:1.2s ease-in-out infinite dialogue-more;position:absolute;bottom:clamp(12px,3vh,34px);right:clamp(18px,4vw,76px);transform:rotate(-90deg)}@keyframes dialogue-more{50%{translate:0 5px}}.dialogue__center{grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:16px 28px 28px 16px;display:grid;inset:0}.dialogue__center--dark{background:#181020db;grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:16px}.dialogue__name{width:min(100%,580px);color:var(--ink);flex-direction:column;align-items:center;gap:clamp(12px,3.6vh,34px);padding:clamp(16px,4.4vh,40px) clamp(16px,4vw,60px);display:flex}.dialogue__name h2{letter-spacing:.14em;margin:0;font-size:clamp(20px,2vw,30px);font-weight:800}:lang(en) .dialogue__name h2{letter-spacing:.02em}.dialogue__name input{box-sizing:border-box;color:#3f3324;width:100%;height:clamp(42px,3.6vw,60px);font:inherit;text-align:center;background:#fcfaf5;border:2px solid #0000;border-radius:6px;outline:0;padding:0 14px;font-size:max(16px,1.3vw)}.dialogue__name input:focus{border-color:#e9a13f}.dialogue__name button{color:#fff8ea;min-width:124px;height:46px;font:inherit;letter-spacing:.1em;cursor:pointer;background:#7d6b50;border:0;border-radius:999px;padding:0 28px;font-size:18px;font-weight:700}.dialogue__name button:disabled{opacity:.5;cursor:default}.dialogue__video{aspect-ratio:16/9;background:#000;border-radius:14px;width:min(100%,1100px,177.778vh - 195.556px);overflow:hidden}.dialogue__video iframe,.dialogue__video video{border:0;width:100%;height:100%;display:block}.dialogue__video-done{color:#fff;min-width:150px;height:46px;font:inherit;cursor:pointer;background:linear-gradient(#f6a57a,#e2774a);border:0;border-radius:999px;justify-self:center;padding:0 28px;font-size:17px;font-weight:700;box-shadow:0 4px #b9572f}@media (prefers-reduced-motion:reduce){.dialogue__more{animation:none}}.story{--ink:#4d3d30;--dark:#3f3127;--soft:#8c7763;--orange:#ee8a26;--chip:#ede1c8;--green:#63c264;--red:#e2485c;--day:clamp(34px, min(4.1vw, 7.2vh), 54px);z-index:10;color:var(--ink);grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;padding:10px;font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:grid;position:fixed;inset:0}.story__card{box-sizing:border-box;background:#fbf6ea;border-radius:clamp(20px,2.2vw,28px);flex-direction:column;width:min(100%,1168px);height:min(100%,668px);padding:clamp(10px,2.6vh,20px) clamp(10px,2.3vw,30px) clamp(6px,1.4vh,12px);display:flex;position:relative;box-shadow:0 22px 60px #2a103066,inset 0 0 0 2px #fff}.story__title{color:var(--dark);letter-spacing:.1em;text-align:center;flex:none;margin:0 0 clamp(6px,2vh,16px);font-size:clamp(20px,2.6vw,34px);font-weight:800}.story__close{z-index:3;color:#fff;width:44px;height:44px;font:inherit;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ff8d95,#d9435a);border:0;border-radius:50%;padding:0;font-size:26px;font-weight:900;line-height:44px;position:absolute;top:clamp(8px,2vh,18px);right:clamp(8px,1.6vw,20px);box-shadow:0 3px #a83246,0 0 0 3px #fff}.story__diary{z-index:3;color:var(--ink);font:inherit;cursor:pointer;background:#fff;border:0;border-radius:16px;align-items:center;gap:8px;padding:5px 14px 5px 8px;display:flex;position:absolute;top:clamp(6px,1.8vh,16px);left:clamp(8px,2vw,26px);box-shadow:0 3px #e3d4b8}.story__book{aspect-ratio:9/10;background:linear-gradient(90deg,#c9603a 0 20%,#ee8a5a 20%);border-radius:6px 10px 10px 6px;flex:none;width:clamp(24px,3vw,36px)}.story__diary-words{text-align:left;line-height:1.25}.story__diary-words b{font-size:clamp(12px,1.2vw,15px);display:block}.story__diary-words span{color:var(--red);font-size:clamp(11px,1vw,12px);font-weight:700}.story__diary--done .story__diary-words span{color:#3d9a40}.story__badge{background:var(--red);color:#fff;text-align:center;border-radius:50%;width:24px;height:24px;font-size:15px;font-weight:900;line-height:24px;position:absolute;top:-9px;right:-9px;box-shadow:0 0 0 3px #fff}.story__diary--done .story__badge{background:var(--green)}.story__nudge{z-index:3;color:#9a5a10;background:#fff4dc;border:2px solid #f2c672;border-radius:12px;padding:5px 12px;font-size:13px;font-weight:700;position:absolute;top:clamp(10px,2.4vh,22px);left:clamp(170px,19vw,250px)}.story__body{flex:1;gap:clamp(8px,2vw,26px);min-height:0;display:flex}.story__chapters{flex-direction:column;flex:0 0 38%;gap:8px;min-width:0;padding:4px;display:flex;overflow-y:auto}.story__opens{color:var(--orange);flex:none;margin:2px 0 -4px 10px;font-size:clamp(12px,1.2vw,16px);font-weight:900}.story__chapter{width:100%;min-height:clamp(52px,10vh,72px);color:var(--dark);font:inherit;text-align:left;cursor:pointer;background:#fffdf7;border:0;border-radius:16px;flex:none;align-items:center;gap:clamp(8px,1.1vw,14px);padding:clamp(6px,1.2vh,10px) clamp(8px,1.1vw,14px);display:flex;box-shadow:0 2px #eadfc9}.story__chapter--selected{box-shadow:0 0 0 3px #f6cf5f,0 0 16px #f6cf5f99}.story__chapter--locked{opacity:.62}.story__number{aspect-ratio:1;background:var(--chip);border-radius:12px;flex:none;place-items:center;width:clamp(36px,min(4vw,7.2vh),52px);font-size:clamp(20px,2.3vw,30px);font-weight:900;display:grid}.story__chapter-words{min-width:0}.story__chapter-words b{font-size:clamp(13px,1.4vw,18px);display:block}.story__chapter-words>span{font-size:clamp(12px,1.2vw,15px)}.story__chapter-words em{color:#3d9a40;margin-left:12px;font-style:normal;font-weight:700}.story__detail{background:#efe4cc;border-radius:22px;flex-direction:column;flex:1;gap:clamp(8px,1.8vh,12px);min-width:0;padding:clamp(8px,2vh,20px) clamp(8px,1.4vw,18px);display:flex;overflow-y:auto}.story__detail h2{color:var(--dark);margin:0 0 2px 6px;font-size:clamp(16px,2vw,26px);font-weight:800}.story__week{background:#f8f1e2;border-radius:16px;flex:none;align-items:center;gap:6px;padding:clamp(6px,1.2vh,10px) 8px clamp(6px,1.2vh,10px) 12px;display:flex;position:relative}.story__this-week{color:#fff;background:#e3784b;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:900;position:absolute;top:-9px;left:12px}.story__week-name{flex:none;width:clamp(52px,5.4vw,72px);font-size:clamp(13px,1.3vw,17px);font-weight:700;line-height:1.2}.story__week-name small{color:var(--soft);font-variant-numeric:tabular-nums;font-size:11px;display:block}.story__days{flex-wrap:wrap;flex:1;gap:clamp(3px,.5vw,8px);min-width:0;display:flex}.story__day{width:var(--day);height:var(--day);background:var(--chip);color:var(--dark);font:inherit;cursor:pointer;border:0;border-radius:12px;flex:none;padding:0;font-size:clamp(14px,1.6vw,21px);font-weight:700;position:relative}.story__day:hover:not(:disabled){background:#f5e9d2}.story__day--done,.story__day--done:hover:not(:disabled){background:var(--green);color:#fff;box-shadow:inset 0 -3px #0000001f}.story__day--done:after{content:"✓";font-size:11px;position:absolute;top:1px;right:3px}.story__week--locked .story__day{opacity:.35;cursor:default}.story__week-lock{color:var(--orange);text-align:center;background:#fbf4e6ed;border-radius:12px;padding:8px 4px;font-size:clamp(12px,1.3vw,17px);font-weight:900;position:absolute;top:50%;left:clamp(70px,7vw,92px);right:8px;transform:translateY(-50%)}.story__prologue{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:clamp(10px,5vh,40px) 12px;display:flex}.story__prologue p{color:var(--soft);margin:0;font-size:15px}.story__prologue .story__played{color:#3d9a40;font-weight:700}.story__start,.story__cancel{min-height:46px;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:0 30px;font-size:17px;font-weight:700}.story__start{color:#fff;background:linear-gradient(#f6a57a,#e2774a);box-shadow:0 4px #b9572f}.story__cancel{color:var(--ink);background:#fff;box-shadow:0 3px #dccdb2}.story__foot{color:var(--orange);text-align:center;flex:none;margin:clamp(4px,1vh,8px) 0 0;font-size:clamp(12px,1.3vw,16px);font-weight:700}.story__veil{z-index:11;background:#2a163066;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.story__modal{box-sizing:border-box;text-align:center;background:#fbf6ea;border-radius:26px;width:min(100%,520px);padding:clamp(16px,4vh,34px) clamp(14px,3vw,36px) clamp(14px,3.4vh,30px);box-shadow:0 22px 60px #0006}.story__modal h2{color:var(--dark);margin:0;font-size:clamp(19px,2vw,26px);font-weight:800}.story__modal p{margin:12px 0 20px;font-size:16px;line-height:1.7}.story__modal>div{justify-content:center;gap:14px;display:flex}.story button:focus-visible{outline-offset:2px;outline:3px solid #e3784b}@media (aspect-ratio<=1){.story{--day:clamp(30px, 8.6vw, 54px)}.story__card{padding-top:62px}.story__title{display:none;position:absolute;top:58px;left:0;right:0}.story__nudge{display:none}.story__body{flex-direction:column}.story__chapters{flex:0 34%}}@media (height<=420px){.story__nudge,.story__foot{display:none}.story__close{width:34px;height:34px;font-size:21px;line-height:34px}}.story-goal,.talk,.tree-menu__place,.story-toast{font-family:PingFang HK,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}.letterbox:before,.letterbox:after{content:"";z-index:8;pointer-events:none;background:#0c0912;height:clamp(20px,8.5vh,92px);transition:transform .7s;position:fixed;left:0;right:0}.letterbox:before{top:0;transform:translateY(-100%)}.letterbox:after{bottom:0;transform:translateY(100%)}.letterbox--on:before,.letterbox--on:after{transform:none}.story-goal{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));z-index:9;box-sizing:border-box;color:#4d3d30;background:#fbf6ea;border-radius:16px;max-width:calc(100vw - min(176px,36vw,44vh) - 44px);margin:0;padding:10px 16px;font-size:clamp(13px,1.3vw,17px);font-weight:700;line-height:1.3;position:fixed;box-shadow:0 5px #e3cfae,0 8px 18px #0003}.talk{top:50%;right:calc(clamp(14px, 5vw, 70px) + env(safe-area-inset-right));z-index:10;pointer-events:none;align-items:center;gap:16px;display:flex;position:fixed;transform:translateY(-50%)}.talk__button{aspect-ratio:1;color:#fff;width:clamp(68px,7.5vw,96px);font:inherit;letter-spacing:2px;cursor:pointer;pointer-events:auto;background:radial-gradient(circle at 40% 35%,#ff9e75,#e86f45);border:0;border-radius:50%;flex:none;padding:0;font-size:clamp(26px,2.8vw,36px);font-weight:900;animation:1.8s infinite talk-pulse;box-shadow:0 0 0 clamp(5px,.5vw,7px) #fff,0 8px 20px #00000040}@keyframes talk-pulse{50%{box-shadow:0 0 0 clamp(5px,.5vw,7px) #fff,0 0 0 clamp(12px,1.4vw,18px) #ffffff54}}.talk__hint{color:#4d3d30;background:#fffdf6;border-radius:12px;padding:8px 12px;font-size:clamp(13px,1.2vw,15px);font-weight:700;position:relative;box-shadow:0 4px 12px #0003}.talk__hint:after{content:"";border:8px solid #0000;border-left-color:#fffdf6;margin-top:-8px;position:absolute;top:50%;right:-14px}.tree-menu__place{z-index:10;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.tree-menu{box-sizing:border-box;color:#4d3d30;background:#fbf6ea;border-radius:28px;width:min(100%,340px);max-height:100%;padding:clamp(14px,3.4vh,24px) 26px clamp(14px,3.6vh,28px);position:relative;overflow-y:auto;box-shadow:0 22px 60px #2a103066,inset 0 0 0 2px #fff}.tree-menu h2{color:#3f3127;letter-spacing:.1em;text-align:center;margin:0;font-size:24px;font-weight:800}.tree-menu p{color:#8c7763;text-align:center;margin:6px 0 clamp(6px,2vh,16px);font-size:13px}.tree-menu__close{color:#fff;width:40px;height:40px;font:inherit;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ff8d95,#d9435a);border:0;border-radius:50%;padding:0;font-size:24px;font-weight:900;line-height:40px;position:absolute;top:14px;right:16px;box-shadow:0 3px #a83246,0 0 0 3px #fff}.tree-menu__option{color:#4d3d30;width:100%;height:clamp(44px,8vh,52px);font:inherit;cursor:pointer;background:linear-gradient(#fff,#f4ecdc);border:0;border-radius:14px;align-items:center;margin-top:clamp(6px,1.6vh,12px);padding:0 16px;font-size:17px;font-weight:700;display:flex;box-shadow:0 3px #e1d4bb}.tree-menu__option--main{box-shadow:0 0 0 3px #ffd36b,0 3px #e1d4bb}.tree-menu__option i{border-radius:8px;flex:none;width:30px;height:30px}.tree-menu__option span{text-align:center;flex:1}.story-toast{z-index:13;box-sizing:border-box;color:#4d3d30;text-align:center;pointer-events:none;background:#fffdf6;border-radius:22px;max-width:calc(100vw - 32px);padding:10px 22px;font-size:clamp(14px,1.3vw,17px);font-weight:700;position:fixed;bottom:clamp(70px,12vh,120px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000045}.talk__button:focus-visible,.tree-menu button:focus-visible{outline-offset:3px;outline:3px solid #6e5b45}@media (prefers-reduced-motion:reduce){.talk__button{animation:none}.letterbox:before,.letterbox:after{transition:none}}
