@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/roboto-latin-500-normal-7RbcRiD8.woff2)format("woff2"),url(/assets/roboto-latin-500-normal-DQZyH_nt.woff)format("woff")}.forest-app{color:#513920;background:#637748;height:100%;font-family:Noto Sans CJK SC,Microsoft YaHei,sans-serif;font-size:14px;position:relative;overflow:hidden}.forest-app button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0}.forest-app button:focus-visible{outline-offset:3px;outline:3px solid #38612d}.forest-app button:disabled{opacity:.6;cursor:default}.forest-app img{object-fit:contain}.scene{background:url(/art/forest.png) 50%/100% 100%;position:absolute;inset:0}.hud{z-index:2;align-items:center;gap:8px;display:flex;position:absolute;top:58px;left:14px;right:14px}.brand{color:#fff2d0;background:#7e532e;border:3px solid #b38b4b;border-radius:10px;padding:6px 10px;font-family:serif;font-size:25px;font-weight:900;line-height:1.1;transform:rotate(-3deg);box-shadow:0 3px #493b26}.brand small{letter-spacing:2px;text-align:center;margin-top:4px;font:8px sans-serif;display:block}.hud>button{color:#fff6d9;background:#27351dde;border-radius:20px;flex:1;align-items:center;gap:3px;height:30px;padding:2px 8px 2px 0;font-weight:700;display:flex}.hud img{width:29px;height:34px}.welcome{color:#fffbe6;text-shadow:0 1px 4px #293d1c;font-size:12px;position:absolute;top:131px;left:25px}.board{width:84%;height:39%;position:absolute;top:27%;left:8%}.cottage{filter:drop-shadow(0 8px 5px #33431c55);width:76%;height:90%;position:absolute;top:0;left:12%}.shop-name{font:700 15px serif;position:absolute;top:47%;left:39%;transform:rotate(-4deg)}.reward{width:28px;height:30px;position:absolute;transform:translate(-50%,-50%)}.walker{z-index:2;filter:drop-shadow(0 4px 3px #27321d88);width:65px;height:104px;transition:top .7s,left .7s;position:absolute;transform:translate(-50%,-78%)}.npc{width:70px;height:105px;position:absolute;top:19%;left:6%}.side-nav{z-index:3;gap:9px;display:grid;position:absolute;top:151px;right:10px}.side-nav button{background:#fff0c9;border:3px solid #b18c50;border-radius:50% 50% 35% 35%;flex-direction:column;align-items:center;width:52px;height:62px;font-size:12px;font-weight:700;display:flex;box-shadow:0 3px #694a26}.side-nav img,.side-nav svg{width:31px;height:35px}.side-nav svg{color:#a25434;padding:4px}.roll-panel{text-align:center;background:#fff4dcef;border:3px solid #ab8851;border-radius:20px 20px 10px 10px;padding:14px 14px 7px;position:absolute;bottom:33px;left:15px;right:15px;box-shadow:0 5px 8px #33422255}.roll-row{align-items:center;gap:9px;display:flex}.energy{text-align:left;align-items:center;gap:4px;width:46%;display:flex}.energy img{width:49px;height:57px}.energy b{font-size:21px}.energy b small{font-size:16px}.energy span{margin-top:2px;font-size:11px;display:block}.primary,.secondary{min-height:54px;background:url(/art/button-primary.png) 50%/100% 100%!important;padding:10px 20px!important;font-size:20px!important;font-weight:800!important}.secondary{color:#fff9dd!important;background-image:url(/art/button-secondary.png)!important}.roll-row>.primary{flex:1;padding:8px 10px!important;font-size:21px!important}.roll-panel>small{color:#837052;margin:4px 0 9px;font-size:10px;display:block}.lap{border-top:1px solid #d6c39c;justify-content:center;align-items:center;padding-top:5px;font-size:12px;display:flex}.lap img{width:31px;height:30px;margin-right:9px}.lap strong{color:#9f5327}.scrim{z-index:10;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#142016a8;justify-content:center;align-items:center;padding:105px 12px 58px;display:flex;position:absolute;inset:0}.paper{background:#fff3d9;border:5px solid #af8b53;border-radius:22px 22px 12px 12px;flex-direction:column;width:100%;max-height:100%;padding-top:30px;display:flex;position:relative;box-shadow:inset 0 0 22px #ad8b5845,0 9px 30px #1118}.paper h1{text-align:center;white-space:nowrap;z-index:2;background:#faedcb;border:2px solid #bc9a5e;border-radius:12px;margin:0;padding:9px 3px;font:700 24px serif;position:absolute;top:-30px;left:14%;right:14%;box-shadow:0 3px 5px #53391d38}.close{z-index:3;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:-12px;right:-10px;color:#fff!important;background:#91613a!important;border:3px solid #ddb879!important}.close svg{width:25px;height:25px}.modal-scroll{flex:1;min-height:0}.modal-content{padding:10px 17px 20px}h2{margin:12px 0;font-size:19px}h3{margin:10px 0;font-size:14px}p{line-height:1.7}.center{text-align:center}.muted{color:#8c7356;font-size:12px}.wide{width:100%}.categories{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.categories button,.mood-picker button{background:#eadcc0;border:1px solid #c9b58b;border-radius:8px;padding:8px 3px;font-size:13px}.categories .active,.mood-picker .active{color:#fff8dc;background:#708742}.wardrobe-body{gap:10px;min-height:294px;margin-top:18px;display:flex}.character-preview{text-align:center;background:#d9dfb961;border-radius:14px;width:52%;padding-top:15px}.character-preview>img{width:90%;height:222px}.character-preview p{margin:2px;font-size:12px}.character-preview small{color:#8c7356;font-size:10px}.outfits{flex:1;gap:8px;display:grid}.outfits>button,.locked{background:#e8dcc7;border:2px solid #cab58e;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:6px;display:flex;position:relative}.outfits>button.selected{border-color:#628244}.outfits button>svg{color:#628244;position:absolute;top:6px;right:6px}.locked svg{color:#a68e6f;width:40px;height:40px}.locked span{text-align:center;color:#917c5d;line-height:1.7}.treasure-hero{text-align:center;background:radial-gradient(#fae6a7,#0000 65%);height:200px}.treasure-hero img{width:90%;height:100%}em{color:#9b4e23;font-size:29px;font-style:normal}.pool{text-align:center;border:1px solid #d8c69f;border-radius:12px;padding:0 6px 10px}.pool>div{gap:6px;display:flex}.pool article{background:#e8dcc14d;border-radius:9px;flex-direction:column;flex:1;align-items:center;min-width:0;display:flex}.pool img,.pool svg{width:80px;height:86px}.pool svg{color:#8c734c;padding:15px}.pool label{font-size:11px}.pool small{color:#578278;margin-top:5px;font-size:10px}.shop-intro{align-items:center;gap:8px;display:flex}.shop-intro img{width:95px;height:128px}.shop-intro p{font-size:11px}.balance{background:#e9dab7;border-radius:15px;padding:5px 9px;font-size:12px}.product{text-align:center;background:#f5e7c9;border:1px solid #d6be8b;border-radius:14px;margin:15px 0;padding:15px}.product img{width:95px;height:100px}.product h2{margin:5px}.product p{color:#8c7356;font-size:12px}.product strong{color:#a86227}.line{border-bottom:1px solid #dbc9a8;justify-content:space-between;align-items:center;gap:5px;min-height:44px;font-size:13px;display:flex}.stepper{align-items:center;gap:19px;display:flex}.stepper button{background:#f6e7c4;border:1px solid #c3a97e;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.notice{text-align:center;color:#8c7356;margin-top:22px;font-size:12px}.market-status{color:#718445;justify-content:space-between;gap:8px;font-size:12px;display:flex}.market-status small{color:#947951;font-size:10px}.portfolio{background:#eaddbd;border-radius:12px;gap:20px;margin:13px 0;padding:14px 10px;display:flex}.portfolio>div{flex:1}.portfolio small,.portfolio b{display:block}.portfolio small{color:#887152;font-size:11px}.portfolio b{margin-top:5px;font-size:22px}.stock-heading{color:#8a7353;justify-content:space-between;margin-bottom:4px;font-size:12px;display:flex}.stock-list>button{text-align:left;border-bottom:1px solid #d9c7a4;justify-content:space-between;align-items:center;width:100%;padding:12px 0;display:flex}.stock-list>button>div:last-child{text-align:right}.stock-list b{font-size:15px;display:block}.stock-list small{margin-top:5px;font-size:10px;display:block}.stock-list>button>div:first-child small{color:#967c5f}.up{color:#b85842!important}.down{color:#4f8663!important}.trader-area{height:142px;margin-top:10px;position:relative}.trader-area>img{width:119px;height:150px;position:absolute;bottom:0;right:-5px}.speech{background:#fff9e9;border:1px solid #ccbb90;border-radius:14px;width:62%;padding:12px 10px;font-size:12px;line-height:1.8;position:absolute;top:25px;left:0}.mood-picker{gap:7px;width:64%;margin-top:-12px;display:flex;position:relative}.mood-picker button{padding:5px 7px;font-size:11px}.back{align-items:center;display:flex;color:#7e7650!important;padding:0!important;font-size:11px!important}.quote>small{color:#8d775b;margin-top:16px;font-size:11px;display:block}.quote h2{margin:9px 0;font-size:32px}.quote h2 small{font-size:14px}.chart{background:repeating-linear-gradient(0deg,#0000 0 28px,#deceb0 29px 30px);border-bottom:1px solid #c9b88f;height:130px;margin-bottom:16px}.bars{align-items:end;gap:4px;height:108px;padding:5px 7px;display:flex}.bars i{background:#b96449aa;border-top:2px solid #af4937;flex:1}.chart-axis{color:#937b59;justify-content:space-between;font-size:9px;display:flex}.trade-actions{gap:10px;margin-top:15px;display:flex}.trade-actions button{flex:1}.compact{height:92px}.compact>img{width:90px;height:115px}.compact .speech{top:14px}.unbox{text-align:center;background:radial-gradient(#f6e5a3,#0000 65%);height:260px}.unbox img{max-width:95%;height:100%}.rarity{color:#477e89;border:1px solid #9ebbc0;border-radius:14px;padding:5px 15px;font-size:12px}.text-button{margin:13px auto 0;text-decoration:underline;display:block;font-size:12px!important}.toast{color:#fff9db;text-align:center;z-index:30;background:#3b4e32f0;border-radius:14px;padding:14px;font-size:13px;position:absolute;bottom:205px;left:22px;right:22px;box-shadow:0 3px 12px #0003}.spin{animation:.35s linear infinite spin}.hop{animation:.3s infinite alternate hop}@keyframes spin{to{transform:rotate(360deg)}}@keyframes hop{to{margin-top:-12px}}.shop-name{font-size:16px;top:34%;left:39%}.forest-app{font-family:Noto Sans CJK SC,WenQuanYi Zen Hei,sans-serif}.paper{height:620px}.paper.stocks,.paper.detail{height:685px}.paper .modal-scroll{position:absolute;inset:28px 0 0}.character-preview{position:relative}.equipped-sweater{pointer-events:none;position:absolute;top:127px;left:28px;width:85px!important;height:78px!important}.outfits{grid-template-columns:repeat(2,1fr);align-content:start}.outfits>button{min-width:0;height:82px;padding:3px}.outfits img{max-width:100%;height:58px}.outfits span{font-size:9px}.outfits .locked{grid-column:1/-1;min-height:93px}.outfits .locked svg{height:25px}.character-preview{width:49%}.wardrobe-body{gap:8px}.paper{background:url(/art/modal-frame.png) 50%/100% 100%;border:0;box-shadow:0 9px 30px #1118}.paper .modal-scroll{inset:33px 7px 8px}.paper h1{box-shadow:none;background:url(/art/button-quiet.png) 50%/100% 100%;border:0;padding:14px 0;font-weight:800;top:-25px}.paper .close{top:0;right:-4px}.wardrobe .modal-content{padding-left:12px;padding-right:12px}.brand{font-weight:900}.toast{pointer-events:none}.stocks .mood-picker{margin-top:-5px}.board{pointer-events:none;width:100%;height:100%;inset:0}.cottage-anchor{aspect-ratio:1086/1082;width:54%;position:absolute;top:33%;left:24%}.cottage-anchor .cottage{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.cottage-anchor .shop-name{white-space:nowrap;letter-spacing:1px;transform-origin:50%;color:#593b1d;text-shadow:0 1px #fff0c8;justify-content:center;align-items:center;width:29%;height:9%;font-size:clamp(12px,3.4cqw,16px);font-weight:900;line-height:1;display:flex;position:absolute;top:41.7%;left:60.8%;transform:translate(-50%,-50%)rotate(-13deg)}.forest-app{container-type:inline-size}.reward{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 2px 1px #785a2833);width:7.2%;height:auto;transform:translate(-50%,-50%)}.reward.occupied{visibility:hidden}.walker-anchor{aspect-ratio:65/104;z-index:2;width:16%;transition:left .7s,top .7s;position:absolute;transform:translate(-50%,-93%)}.walker-anchor .walker{object-fit:contain;width:100%;height:100%;position:absolute;inset:0;transform:none}.side-nav{gap:6px;top:145px;right:12px}.side-nav button{border-width:2px;grid-template-rows:30px 17px;align-content:center;justify-items:center;width:48px;height:55px;padding:0;font-size:11px;line-height:17px;display:grid}.side-nav img,.side-nav svg{width:28px;height:29px;display:block}.side-nav span{text-align:center;height:17px;line-height:17px;display:block}.hud{grid-template-columns:1.2fr 1fr .67fr;align-items:center;gap:7px;display:grid;top:61px}.brand{white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;padding:9px 6px;font-size:23px;line-height:1;display:flex;transform:none}.brand small{letter-spacing:1.5px;margin-top:6px;line-height:1}.hud>button{grid-template-columns:29px 1fr;align-items:center;gap:3px;width:100%;min-width:0;height:34px;padding:0 8px 0 3px;line-height:1;display:grid}.hud img{object-fit:contain;width:29px;height:29px;display:block}.hud button span{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px;line-height:20px}.roll-row>.primary{white-space:nowrap;justify-content:center;align-items:center;height:56px;min-height:56px;line-height:1;display:flex;padding:0 12px 2px!important;font-size:20px!important}.energy{align-items:center}.energy b{align-items:baseline;gap:2px;line-height:1.2;display:flex}.energy span{line-height:1.4}.lap{gap:4px;line-height:30px}.lap img{margin-right:4px;display:block}.side-nav{gap:5px;top:138px}.side-nav button{grid-template-rows:27px 15px;height:48px}.side-nav img,.side-nav svg{height:27px}.side-nav span{height:15px;line-height:15px}.forest-app[data-busy=true] button{pointer-events:none;opacity:.65}.connection-banner{z-index:40;text-align:center;background:#fff3d9;border:1px solid #a7834b;border-radius:12px;padding:10px;font-size:12px;position:absolute;top:122px;left:18px;right:18px}.connection-banner button{margin-left:10px;text-decoration:underline}.loading-lock{z-index:35;background:#283c2670;position:absolute;inset:0}.saving-state{z-index:35;color:#fff2d9;background:#3d5436;border-radius:16px;padding:7px 15px;font-size:12px;position:absolute;top:124px;left:35%}.character-select{align-items:center;gap:8px;margin-top:12px;display:flex}.character-select button{border:1px solid #b5a175;border-radius:12px;padding:5px 12px}.character-select .active{color:#fff;background:#738649}.character-select small{color:#8c7356;font-size:10px}.quote-time{color:#89704e;margin-top:-7px;font-size:9px;line-height:1.5}.chart-empty{color:#877052;align-self:center;margin:auto;font-size:12px}.forest-app[data-character=mai] .walker{filter:hue-rotate(28deg)saturate(.85)}.wardrobe-body{min-height:285px}.forest-app .hud{top:calc(env(safe-area-inset-top,0px) + 18px)}.forest-app .welcome{top:calc(env(safe-area-inset-top,0px) + 96px)}.forest-app .side-nav{top:calc(env(safe-area-inset-top,0px) + 116px)}.forest-app .roll-panel{bottom:calc(env(safe-area-inset-bottom,0px) + 12px)}.forest-app .scrim{padding:calc(env(safe-area-inset-top,0px) + 70px) 12px calc(env(safe-area-inset-bottom,0px) + 24px)}.paper .modal-scroll{overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;overflow-y:auto}.connection-banner{top:calc(env(safe-area-inset-top,0px) + 84px)}.saving-state{top:calc(env(safe-area-inset-top,0px) + 86px)}@media (height<=740px){.forest-app .side-nav{top:calc(env(safe-area-inset-top,0px) + 82px);gap:3px}.forest-app .side-nav button{grid-template-rows:24px 15px;height:44px}.forest-app .side-nav img,.forest-app .side-nav svg{height:24px}}.stock-tabs{gap:7px;margin:12px 0;display:flex}.stock-tabs button{background:#ebddbc;border:1px solid #c6ae80;border-radius:10px;flex:1;padding:9px 6px;font-size:13px;font-weight:700}.stock-tabs button[aria-selected=true]{color:#fff8df;background:#718648;border-color:#60763f}.portfolio-summary{grid-template-columns:1fr 1fr;gap:14px;margin:10px 0;display:grid}.portfolio-summary b{font-variant-numeric:tabular-nums;font-size:20px}.neutral{color:#7c7158!important}.holding-list{margin-top:12px}.holding-card{text-align:left;border-radius:12px;width:100%;margin-bottom:10px;display:block;background:#fff8e7a8!important;border:1px solid #d4bf92!important;padding:12px!important}.holding-card header{justify-content:space-between;align-items:center;gap:8px;display:flex}.holding-card header>b{font-size:15px}.holding-card header>span{color:#83714f;font-size:11px}.holding-map,.holding-time{color:#8b7556;margin-top:5px;font-size:10px;display:block}.holding-grid{grid-template-columns:1fr 1fr;gap:9px;margin-top:11px;display:grid}.holding-grid small{color:#887354;font-size:10px;display:block}.holding-grid strong{font-variant-numeric:tabular-nums;margin-top:3px;font-size:15px;display:block}.holdings-note{color:#917754;font-size:10px;line-height:1.65}.holdings-empty{text-align:center;padding:22px 0}.holdings-empty img{width:62px;height:62px}.holdings-empty p{color:#897657;font-size:12px}.detail-holding{justify-content:space-between;gap:10px;margin:12px 0;display:flex}.detail-holding>div>small{color:#8b7351;margin-bottom:4px;font-size:10px;display:block}.detail-holding b{font-size:13px}.detail-holding b small{font-size:11px}.amount-label{margin:9px 0;font-size:12px;display:block}.amount-input{background:#fff9e9;border:2px solid #bda773;border-radius:11px;align-items:center;gap:8px;padding:8px 10px;display:flex}.amount-input img{width:29px;height:29px}.amount-input input{color:#583e24;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;width:100%;min-width:0;font-size:23px;font-weight:700;line-height:1.4}.amount-input:focus-within{border-color:#5a793f}.amount-presets{gap:6px;margin:9px 0;display:flex}.amount-presets button{background:#eee1c1;border:1px solid #c8b184;border-radius:8px;flex:1;padding:8px 2px;font-size:11px}.amount-presets button.active{color:#fff;background:#738849}.amount-hint{color:#8a7151;min-height:15px;margin:7px 0 11px;font-size:10px;line-height:1.5}.detail .chart{height:96px;margin-bottom:10px}.detail .bars{height:76px}.detail .quote h2{font-size:29px}.detail .compact{height:68px}.detail .compact>img{height:92px}.stocks .trader-area{height:97px}.stocks .trader-area>img{height:103px}.stocks .stock-list>button{padding:8px 0}.percent-input>span{color:#8a7351;font-size:23px;font-weight:700}.percent-input input[aria-invalid=true]{color:#a7523f}:root{color:#513920;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#243b2a;font-family:Noto Sans CJK SC,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}#root{justify-content:center;display:flex}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.game-viewport{width:min(100%,60dvh,520px);height:100dvh;position:relative;overflow:hidden}@media (orientation:portrait) and (width<=600px){.game-viewport{width:100%}}
