@charset "UTF-8";
/* style.css */

:root{--ink:#393b30;--muted:#787565;--paper:#f3eddd;--red:#9f3f30;--jade:#526d57;--gold:#a47c39;--serif:"STKaiti","KaiTi","Noto Serif SC","Songti SC",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#293c36;background-image:radial-gradient(ellipse at 50% 20%,#647e6a 0,#34483f 45%,#243831 100%);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--red);outline-offset:3px}button:disabled{cursor:default;opacity:.48}strong{font-weight:600}p,h1,h2,h3{margin:0}img{user-select:none}small{font-size:11px}button svg{width:24px;height:24px}button,[data-action]{-webkit-user-select:none;user-select:none}
#game{width:100%;max-width:480px;height:100%;height:100dvh;max-height:1040px;position:relative;overflow:hidden;margin:0 auto;background:#dce4d9;isolation:isolate;box-shadow:0 0 80px #12251aaa;border-inline:1px solid #cfcdad55}
#map-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}#map-viewport:active{cursor:grabbing}#world{position:absolute;width:1000px;height:1700px;transform-origin:0 0;will-change:transform}.terrain{position:absolute;width:100%;height:100%;inset:0;pointer-events:none;object-fit:fill}.water-light{position:absolute;left:10%;top:39%;width:15%;height:40%;opacity:.08;background:linear-gradient(105deg,transparent 30%,#ffffdf 50%,transparent 65%);animation:water 8s ease-in-out infinite;pointer-events:none}
.sprite-window{display:block;position:relative;overflow:hidden;pointer-events:none;isolation:isolate}.sprite-window img{position:absolute;max-width:none;user-select:none;pointer-events:none}.decoration{position:absolute;transform:translate(-50%,-100%);pointer-events:none}.decoration .sprite-window{filter:saturate(.87) drop-shadow(3px 7px 3px #353c222c)}
.map-house{position:absolute;transform:translate(-50%,-100%);text-align:center;outline:none;z-index:1;filter:drop-shadow(2px 7px 2px #3d432526)}.map-house .building-art{width:100%;display:block;transition:filter .2s}.map-house:hover .building-art{filter:brightness(1.07)}.map-house:focus-visible .building-art{filter:drop-shadow(0 0 4px #fff2b2)}.map-house.upgraded .building-art{animation:upgradeGlow 1.6s ease-out}.building-wings{display:block;position:absolute;bottom:14%;width:35%;right:-10%;z-index:-1}.building-wings.second{left:-12%;right:auto;width:36%;bottom:18%}.house-name{position:absolute;top:100%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;white-space:nowrap;font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:1px;text-shadow:0 2px 2px #fff6e3,0 -1px 3px #f5edd9;background:#f7efd9e6;padding:2px 12px 3px;border:1px solid #817b5655;border-radius:3px;box-shadow:0 2px 0 #99825455;line-height:1.2}.house-name small{font:17px/1.1 var(--sans);color:#665e48}.shop-status{position:absolute;right:7%;top:6%;padding:3px 9px;background:#f4eddb;color:#6e6450;border:1px solid #6b645466;border-radius:15px;font:19px/1.2 var(--sans);box-shadow:0 3px 3px #35412a22;white-space:nowrap;transform:rotate(-4deg)}.shop-status.open{color:#f6eddb;background:#536950;border-color:#344b32}.shop-status.resting{color:#866454}.empty-lot{position:absolute;transform:translate(-50%,-100%);width:210px;height:130px;text-align:center;z-index:5}.empty-lot:before{content:"";display:block;position:absolute;inset:12% 0;background:repeating-linear-gradient(30deg,#e2d9bb 0 24px,#bdb498 25px 27px);clip-path:polygon(50% 0,100% 48%,50% 100%,0 52%);opacity:.75;border:2px solid #8b8970}.empty-sign{display:inline-flex;position:relative;flex-direction:column;align-items:center;justify-content:center;color:#f8efd7;background:#776344;border:4px solid #b29b6d;box-shadow:4px 5px 0 #3c472955;padding:4px 12px;transform:rotate(-4deg);font:24px/1.2 var(--serif)}.empty-sign b{font:42px/1 var(--sans)}.empty-sign small{font:18px var(--sans);color:#efe4c9}.plot-callout{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#444a37;font:23px var(--serif);padding:1px 8px;background:#f3edd5da}
.npc{position:absolute;width:52px;height:80px;transform:translate(-50%,-100%);pointer-events:none;will-change:left,top}.npc-shadow{position:absolute;bottom:-2px;left:4px;right:4px;height:11px;border-radius:50%;background:#35473355;filter:blur(2px)}.npc .sprite-window{width:100%;height:100%}.npc-art{position:absolute;inset:0;transform-origin:50% 95%;transition:opacity .35s}.npc.inside .npc-art{opacity:0}.npc-bubble{position:absolute;bottom:85%;left:50%;transform:translateX(-50%);font:20px/1 var(--serif);white-space:nowrap;background:#fff3da;border:1px solid #837456;border-radius:18px;padding:7px 9px;box-shadow:0 2px 4px #35412933;opacity:0}.npc-bubble.show{opacity:1}.coin-float{position:absolute;color:#925523;font:bold 32px var(--sans);text-shadow:0 2px 0 #fff7dc;transform:translate(-50%,-100%);animation:coinFloat 1.8s forwards;z-index:3000;pointer-events:none}
.top-fog{position:absolute;inset:0 0 auto;height:196px;background:linear-gradient(#ede9dbea 0,#edf0dfb3 45%,transparent 100%);pointer-events:none;z-index:100}.hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;height:56px;display:flex;align-items:center;gap:8px;z-index:200}.profile{position:relative;width:54px;height:54px;flex:none}.portrait{display:block;overflow:hidden;border-radius:50%;border:2px solid #947452;box-shadow:inset 0 0 0 2px #f8edcd,0 2px 6px #53604433;background:#e8d7a9;width:52px;height:52px}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transform:scale(1.5) translateY(12%)}.level-seal{position:absolute;bottom:-3px;right:-1px;background:var(--red);border:1px solid #f3e4c7;color:#f8edd8;width:23px;height:23px;border-radius:3px;font:17px/22px var(--serif);box-shadow:0 1px 2px #413a2433}.hud-resources{display:flex;flex:1;flex-direction:column;gap:5px;align-items:flex-start}.resource{display:flex;align-items:center;gap:7px;border:1px solid #a6967599;box-shadow:0 1px 1px #fff9ee99,inset 0 1px 0 #fffbeb;background:#f9f0dccc;border-radius:16px;min-width:155px;height:28px;padding:1px 10px 1px 6px}.resource strong{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.3px}.resource .plus{margin-left:auto;font-size:19px;line-height:1;color:#8e6940}.copper{width:23px;height:23px;display:inline-block;flex:none;background:radial-gradient(circle at 35% 25%,#ebca70,#bd893b 75%);border:2px solid #976b2e;border-radius:50%;position:relative;box-shadow:inset 0 0 0 2px #e4bd65}.copper:after{content:"";position:absolute;width:7px;height:7px;top:6px;left:6px;background:#7f784c;border:1px solid #815820}.resource.popularity{height:23px;min-width:122px;border-color:#8c9a7877;background:#eef0dac7;gap:5px}.popularity strong{font-size:12px}.popularity>span:last-child{font-size:10px;color:#687153;margin-left:5px}.flower-mark{font-size:20px;color:#ab694e;line-height:1}.weather{width:51px;display:flex;gap:5px;align-items:center;font-family:var(--serif);font-size:12px;line-height:1.3;color:#5f684e;flex:none}.sun{display:block;width:17px;height:17px;border:2px solid #a48743;border-radius:50%;box-shadow:0 0 0 3px #a4874325}
.city-title{position:absolute;top:88px;left:17px;display:flex;gap:10px;align-items:center;z-index:160;pointer-events:none}.city-seal{border:2px solid #a84839;border-radius:3px;color:#984534;font:15px/1.05 var(--serif);padding:3px 4px;transform:rotate(-5deg);box-shadow:inset 0 0 0 1px #dba482}.city-title p{font:10px var(--serif);letter-spacing:2px;color:#627157;margin-bottom:3px}.city-title h1{font:30px/1.2 var(--serif);letter-spacing:3px;font-weight:600;text-shadow:0 1px 0 #fcf5e0}.quest-chip{position:absolute;left:15px;top:151px;z-index:160;height:31px;display:flex;align-items:center;gap:7px;background:#f8f0dce8;border:1px solid #a29a7777;border-radius:3px;box-shadow:0 2px 4px #40544015;font-size:11px;padding:3px 8px;max-width:calc(100% - 82px)}.tiny-seal{color:#eee7d3;background:#8d4d37;border-radius:2px;padding:0 3px;font:13px/19px var(--serif)}.chevron{font-size:21px;color:#8c6e42;margin-left:3px}.side-actions{position:absolute;right:11px;top:152px;z-index:160;display:flex;flex-direction:column;gap:8px}.side-actions button{display:flex;flex-direction:column;align-items:center;width:45px;min-height:55px;background:#f8edd2c9;border:1px solid #887b5755;border-radius:3px;font:13px var(--serif);box-shadow:0 2px 4px #35492422}.side-icon{height:32px;width:34px;display:grid;place-items:center}.side-icon .sprite-window{max-height:30px;max-width:32px}.map-tools{position:absolute;left:13px;bottom:163px;z-index:180;display:flex;flex-direction:column;gap:4px}.map-tools button{width:32px;height:32px;border-radius:50%;border:1px solid #7c846066;background:#f7efd7c4;color:#52634c;display:grid;place-items:center;font-size:21px;line-height:1;box-shadow:0 1px 3px #263c2522}
.business-bar{position:absolute;left:10px;right:10px;bottom:calc(88px + env(safe-area-inset-bottom));height:62px;background:#f5ecd4f2;border:1px solid #a3936b;box-shadow:0 3px 15px #34412133,inset 0 0 0 3px #fff8e644;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:4px;z-index:200}.daily-income{flex:1;text-align:left;min-width:0}.daily-income>span:first-child{display:flex;align-items:center;gap:9px;font:13px var(--serif);color:#685d40}.daily-income>span:first-child small{font:10px var(--sans);color:#82795d}.daily-income>strong{font-size:19px;font-variant-numeric:tabular-nums;line-height:1.1;color:#88552e;display:block;margin-top:2px}.daily-income>strong small{font-size:10px;font-weight:400;color:#89816b}.income-track{display:block;margin-top:4px;height:3px;background:#dcd3b9;border-radius:2px;overflow:hidden}.income-track i{display:block;height:100%;width:0;background:#8c6036;transition:width .4s}.main-button{border:1px solid #773b2e;background:linear-gradient(135deg,#ac5540,#923b2c);color:#f9efd5;border-radius:4px;box-shadow:inset 0 0 0 2px #b87551,0 2px 0 #642d2066;display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;min-height:43px;padding:8px 17px;gap:6px}.main-button:active{transform:translateY(1px)}.stock-all{width:145px;height:44px;padding:4px;flex:none;flex-direction:column;gap:0}.stock-all>span{line-height:1.3;letter-spacing:2px}.stock-all small{font-family:var(--sans);font-size:9px;color:#f5d9b0;letter-spacing:.2px;line-height:1.6}
.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:calc(83px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);background:linear-gradient(#f5edd9e6,#e9dfc4 75%);border-top:2px solid #b7a37a;box-shadow:0 -4px 15px #233c2626,inset 0 3px 0 #fff7e6;z-index:210}.bottom-nav:before{content:"";position:absolute;left:5px;right:5px;top:4px;bottom:6px;border:1px solid #a89a7244;pointer-events:none}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;position:relative;font:16px/1.3 var(--serif);letter-spacing:2px;padding-top:4px;color:#66553b}.bottom-nav button.active{color:#9d3f2d}.bottom-nav button.active:after{content:"";position:absolute;bottom:7px;width:23px;height:2px;background:#a04430;box-shadow:0 2px 0 #a0443033}.nav-icon{width:51px;height:47px;display:grid;place-items:center;filter:drop-shadow(0 2px 1px #7b6d4433)}.nav-icon .sprite-window{max-height:44px;max-width:47px;transition:transform .2s}.bottom-nav button:hover .sprite-window{transform:translateY(-2px)}.nav-dot{position:absolute;right:20%;top:12px;width:7px;height:7px;border-radius:50%;background:#ac4a31;box-shadow:0 0 0 2px #f3ead4}.nav-dot[hidden]{display:none}
.toast{position:absolute;left:50%;top:42%;transform:translate(-50%,10px);background:#393e30ed;color:#f9efd9;padding:11px 17px;border:1px solid #e8d9ac77;border-radius:4px;box-shadow:0 4px 15px #243b2333;width:max-content;max-width:86%;font-size:13px;text-align:center;z-index:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.sheet-layer{position:absolute;inset:0;z-index:500;display:flex;align-items:flex-end;justify-content:center}.sheet-layer[hidden]{display:none}.scrim{position:absolute;inset:0;background:#25362fd6;backdrop-filter:blur(2px)}.sheet{position:relative;background:#f2ecd9;width:100%;max-height:82%;border-radius:15px 15px 0 0;box-shadow:0 -7px 40px #16302766;border:1px solid #ad9a6d;border-bottom:0;display:flex;flex-direction:column;animation:sheetIn .22s ease-out;padding-bottom:env(safe-area-inset-bottom)}.sheet-handle{width:31px;height:3px;border-radius:4px;background:#b5a682;margin:8px auto 2px;flex:none}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:9px 19px 14px;border-bottom:1px solid #ae9d7855;flex:none;background:linear-gradient(#faf3df99,#f2ecd9)}.sheet-header p{font:10px/1.2 var(--serif);letter-spacing:3px;color:#8d7253;margin-bottom:4px}.sheet-header h2{font:25px/1.2 var(--serif);letter-spacing:2px}.close-button{width:38px;height:38px;border-radius:50%;border:1px solid #9c86685c;background:#e4dcc45c;color:#927451;font-size:27px;line-height:1}.sheet-content{overflow:auto;padding:17px 18px 22px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bbaa84 transparent}.sheet-content p{color:#77705b;font-size:12px;line-height:1.8}.section-heading{font:17px/1.4 var(--serif);letter-spacing:1px;margin:17px 0 10px;display:flex;justify-content:space-between;align-items:center}.section-heading:first-child{margin-top:0}.section-heading small{font:10px var(--sans);color:#8c7d61}.muted{color:#8b826c}.text-red{color:#9d4833}.text-jade{color:#55704d}.paper-note{padding:10px 12px;background:#e7e0ca70;border:1px solid #b2a68644;border-radius:4px;color:#746b54;font-size:11px;line-height:1.7}.paper-note b{font-weight:500;color:#805d3c}.sheet .main-button{font-size:16px;min-height:42px}.outline-button{border:1px solid #a1916d;color:#6c5d41;min-height:38px;border-radius:4px;padding:7px 11px;font:14px var(--serif);background:#f8f2df}.wide{width:100%}.button-row{display:flex;gap:9px;align-items:center;margin:14px 0}.button-row>*{flex:1}.button-row small{font:10px var(--sans)}.tag{display:inline-block;padding:2px 7px;background:#e3e6cf;color:#59684c;border:1px solid #a6ad8855;border-radius:3px;font-size:10px;line-height:1.4}.tag.red{background:#eed5bc;color:#97553c;border-color:#c1927055}.tag.gray{background:#e2ddcb;color:#867c66;border-color:#b4a88b55}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#b3a48344;border:1px solid #b3a48344;border-radius:4px;overflow:hidden;margin:12px 0}.stat{background:#f6eedc;padding:10px 4px;text-align:center}.stat strong{font-size:19px;line-height:1.25;display:block;font-variant-numeric:tabular-nums;color:#815d3b}.stat small{color:#887b5f;font-size:10px}.mini-icon{display:grid;place-items:center;width:32px;height:32px}.mini-icon .sprite-window{max-height:29px;max-width:30px}
.shop-card{border:1px solid #b1a07a66;border-radius:5px;background:#f9f1df;margin-bottom:10px;padding:12px;display:grid;grid-template-columns:82px 1fr;gap:11px;align-items:center}.shop-thumb{width:82px;height:75px;display:grid;place-items:center;background:radial-gradient(#dce0c3a3,transparent 68%)}.shop-thumb>.building-art{width:100%}.shop-card h3{font:18px/1.3 var(--serif);letter-spacing:1px}.shop-line{display:flex;align-items:center;justify-content:space-between;gap:5px}.shop-card p{font-size:10px;line-height:1.7;margin:3px 0}.stock-line{display:flex;gap:11px;color:#7f7158;font-size:11px;margin:5px 0}.stock-line b{color:#8d5c38;font-variant-numeric:tabular-nums;font-weight:500}.stock-track{height:3px;background:#ded7bf;border-radius:3px;overflow:hidden}.stock-track i{display:block;height:100%;background:#738258}.card-actions{display:flex;justify-content:space-between;gap:7px;align-items:center;margin-top:8px}.card-actions button{border:1px solid #a7946b77;background:#ece4ce;padding:3px 9px;border-radius:3px;font:12px/1.5 var(--serif)}.card-actions button.red{color:#964733;border-color:#b6806255;background:#f1e0c9}.empty-state{text-align:center;padding:25px 10px;color:#8a7c61;font-family:var(--serif)}
.house-hero{position:relative;min-height:132px;text-align:center;background:radial-gradient(ellipse at 50% 85%,#b8c3a455,transparent 65%);display:grid;place-items:center;border-bottom:1px solid #b3a58244;margin:-8px 0 10px}.house-hero>.building-art{width:57%;max-width:220px;margin:4px auto 10px}.hero-status{position:absolute;right:0;top:4px}.house-description{text-align:center;font-family:var(--serif)}.house-tabs{display:flex;border-bottom:1px solid #b5a47b77;margin-top:14px}.house-tabs button{flex:1;font:15px var(--serif);padding:9px 3px;color:#8c7a5e}.house-tabs button.active{color:#98402e;border-bottom:2px solid #9c4733}.product-card{padding:13px;border:1px solid #b4a17a55;background:#fbf3de;border-radius:4px;margin:12px 0;display:flex;align-items:center;gap:11px}.product-card .mini-icon{width:43px;height:43px;flex:none}.product-card .mini-icon .sprite-window{max-width:42px;max-height:40px}.product-card h3{font:17px var(--serif);margin-bottom:3px}.product-card p{font-size:10px}.product-price{margin-left:auto;text-align:right;flex:none}.product-price strong{color:#946234;font-size:18px;font-variant-numeric:tabular-nums}.product-price small{display:block;font-size:9px;color:#8b8068}.evolution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0}.evolution{padding:8px 4px;background:#e5dfc970;border:1px solid #b0a27f55;border-radius:4px;text-align:center}.evolution.current{border:1px solid #a46a40;background:#f5e7c8;box-shadow:inset 0 0 0 2px #d4ac6150}.evolution .stage-art{height:70px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:7px}.evolution .building-art{width:100%;max-height:70px}.evolution strong{font:13px var(--serif);display:block;white-space:nowrap}.evolution small{font-size:10px;color:#8c7855}.upgrade-line{display:flex;align-items:center;gap:8px}.upgrade-line .main-button{flex:1}.upgrade-line .outline-button{flex:0 0 74px}.level-cap{padding-top:10px;font-size:10px;color:#81765d;text-align:center}
.collection-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:15px 0}.collection-card{border:1px solid #baa780;background:#f9f0d7;padding:13px 10px 10px;border-radius:5px;text-align:center;position:relative}.collection-art{height:83px;display:flex;align-items:center;justify-content:center;background:radial-gradient(#d1d7b26b,transparent 67%)}.collection-art .sprite-window{max-width:84px;max-height:79px}.collection-card h3{font:18px var(--serif);margin:5px 0 2px}.collection-card p{font-size:10px}.collection-card .tag{margin-top:7px}.collection-card .collection-number{position:absolute;left:9px;top:7px;font-size:9px;color:#99815d;letter-spacing:1px}.collection-card button{margin-top:9px;font:13px var(--serif);border:1px solid #a0916977;background:#e9dec2;padding:5px 9px;border-radius:3px;width:100%}.collection-card button.red{background:#9e4935;color:#f7e7c3;border-color:#863c2b}.collection-detail{display:flex;flex-direction:column;align-items:center;gap:8px;padding:5px 0 15px}.collection-detail .collection-art{height:122px;width:150px}.collection-detail .collection-art .sprite-window{max-width:125px;max-height:115px}.collection-detail h3{font:22px var(--serif);letter-spacing:2px}
.task-card{display:flex;align-items:center;gap:12px;border-bottom:1px solid #b5a57e44;padding:13px 0}.task-symbol{width:34px;height:34px;background:#e5dac0;border:1px solid #b3a17a;border-radius:50%;font:19px/32px var(--serif);color:#9a633c;text-align:center;flex:none}.task-copy{flex:1}.task-copy h3{font:17px var(--serif);margin-bottom:4px}.task-copy p{font-size:10px}.task-card button{font:13px var(--serif);min-width:66px;padding:6px;border:1px solid #a99a75;border-radius:3px;background:#ede1c3;color:#7b6947}.task-card button.ready{background:#9f4935;color:#f8e9c6;border-color:#803425}.task-card button.done{border-color:transparent;color:#638059;background:none}.wallet-card{padding:14px;background:#e8e1ca;border:1px solid #b4a27a77;border-radius:4px;margin-bottom:12px}.wallet-title{display:flex;align-items:center;justify-content:space-between;font:17px var(--serif);margin-bottom:6px}.wallet-title strong{font:18px var(--sans);color:#8d6139;font-variant-numeric:tabular-nums}.wallet-track{height:7px;background:#d2c7a8;margin:10px 0;border-radius:4px;overflow:hidden}.wallet-track i{display:block;height:100%;background:#8f7045;border-radius:4px}.wallet-card p{font-size:10px}.log-row{display:grid;grid-template-columns:1fr auto;gap:8px;border-bottom:1px solid #bdab8044;padding:8px 0;font-size:12px}.log-row small{font-size:10px;color:#8c7a60}.log-row b{color:#a06938;font-variant-numeric:tabular-nums}.profile-info{display:flex;gap:14px;align-items:center;margin-bottom:14px}.profile-info .portrait{width:62px;height:62px}.profile-info h3{font:21px var(--serif)}.profile-info p{font-size:11px}.loading{position:absolute;inset:0;background:#e9ecdcee;backdrop-filter:blur(7px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:700;font-family:var(--serif)}.loading[hidden]{display:none}.loading p{font-size:15px;color:#6d7159}.loading-seal{font:55px/80px var(--serif);width:83px;height:83px;text-align:center;border:3px solid #a04837;border-radius:5px;color:#a04837;box-shadow:inset 0 0 0 2px #b26744;transform:rotate(-5deg)}
@keyframes water{50%{opacity:.13;transform:translate(10px,30px)}}@keyframes coinFloat{0%{opacity:0;translate:0 0}20%{opacity:1}100%{opacity:0;translate:0 -105px}}@keyframes sheetIn{from{transform:translateY(35px);opacity:.3}to{transform:translateY(0);opacity:1}}@keyframes upgradeGlow{20%{filter:drop-shadow(0 0 12px #ffcd63) brightness(1.22)}100%{filter:none}}
@media(min-width:600px){#game{height:calc(100% - 28px);height:calc(100dvh - 28px);margin-top:14px;border-radius:12px;border:1px solid #d8caa380;max-width:460px}.city-title{top:86px}.sheet{border-radius:15px 15px 0 0}}
@media(max-height:710px){.city-title{top:75px}.city-title h1{font-size:26px}.city-title p{font-size:9px}.quest-chip{top:126px}.side-actions{top:126px}.side-actions button{min-height:47px}.side-icon{height:25px}.side-icon .sprite-window{max-height:25px}.business-bar{bottom:calc(78px + env(safe-area-inset-bottom));height:55px}.bottom-nav{height:calc(73px + env(safe-area-inset-bottom))}.nav-icon{height:39px}.nav-icon .sprite-window{max-height:36px;max-width:43px}.bottom-nav button{font-size:15px}.map-tools{bottom:143px}.sheet{max-height:85%}.sheet-content{padding:13px 15px 18px}.sheet-header{padding:8px 16px 12px}.house-hero{min-height:115px}.house-hero>.building-art{max-width:176px}.stock-all{height:39px}.hud{height:52px;top:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.water-light{display:none}}


/* V4 source-matched art */
body{background:#353e32}#game{background:#e6dfc6;max-width:460px}#world{height:1900px}.terrain{object-fit:fill}.top-fog{height:170px;background:linear-gradient(#f1ead5ed,#efead8a8 50%,transparent)}
.city-title{top:78px;left:16px}.city-title h1{font-size:28px}.quest-chip{top:130px;height:29px}.side-actions{top:173px;right:7px}.side-actions button{background:#f7ebd5df;border:1px solid #75664a;border-radius:2px;box-shadow:1px 2px 0 #60503b44}
.map-house{filter:drop-shadow(1px 3px 0 #51473122)}.house-name{font-size:25px;background:#f3e6c9;border:2px solid #736043;border-radius:1px;box-shadow:1px 3px 0 #55453066;top:92%;padding:3px 8px;gap:6px;letter-spacing:0;text-shadow:none}.house-name small{font-size:16px}.shop-status{top:auto;bottom:20%;right:3%;font-size:19px;border-radius:2px;border:2px solid #68664a;box-shadow:none;transform:rotate(-3deg)}
.empty-lot{height:auto}.empty-lot:before{display:none}.empty-lot>.building-art{display:block;width:100%;opacity:.36;filter:sepia(.1)}.empty-sign{position:absolute;bottom:19%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:23px;border-width:2px;padding:7px 10px;box-shadow:1px 3px 0 #54463744;background:#f0e6cc;color:#655a40}.plot-callout{bottom:1%;font-size:22px;background:#f3e8cbe8;padding:2px 9px}
.npc{width:54px;height:60px}.npc-shadow{height:8px;left:10px;right:10px;bottom:0;filter:none;background:#70624340}.npc-art{transition:none}.npc-art>.sprite-window{width:100%;height:100%;aspect-ratio:auto!important}.npc-bubble{font-size:18px;bottom:98%;padding:6px 9px;z-index:2500}.npc.shopping .npc-art{filter:brightness(1.04)}.water-light{left:1%;width:12%;top:22%;height:71%}
.portrait{background:#e8d7ac;border-color:#62533c;box-shadow:0 1px 0 #f7ebd2;border-radius:50%;position:relative;display:block}.portrait>.sprite-window{position:absolute;width:88px;height:95px;left:-20px;top:-1px;aspect-ratio:auto!important}.portrait .sprite-window img{transform:none;object-fit:initial}.profile-info .portrait{width:52px;height:52px;flex:none}
.bottom-nav{background:#efe5cb;border:0;box-shadow:none}.bottom-nav:before{display:none}.bottom-nav button{z-index:1;letter-spacing:1px}.nav-icon{height:47px;width:49px;filter:none}.nav-icon .sprite-window{max-width:44px;max-height:43px}.bottom-nav button.active:after{bottom:6px}.bottom-nav button.active{background:#be74561c}.nav-dot{right:17%;top:11px}
#nav-art{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}#nav-art>.sprite-window{width:100%;height:100%;aspect-ratio:auto!important}
.resource{background:#f8efd9;border-radius:4px;box-shadow:1px 2px 0 #4e483b33;border:1px solid #79684c;height:27px}.resource.popularity{border-radius:3px;background:#e2e6ce}.business-bar{height:60px;bottom:calc(84px + env(safe-area-inset-bottom));background:#f1e6cbf5;border:1px solid #887251;box-shadow:1px 3px 0 #5d503640;border-radius:2px}.main-button{background:#a44d38;border:1px solid #653f2f;border-radius:2px;box-shadow:inset 0 0 0 2px #cd8a62,1px 2px 0 #59402f55}.main-button:disabled{box-shadow:none}.outline-button{background:#eee4c8;border:1px solid #837257;border-radius:2px}.bottom-nav{height:calc(81px + env(safe-area-inset-bottom))}.stock-all{width:139px}.daily-income>strong{font-size:20px}
.sheet-layer{align-items:center;padding:19px 10px}.sheet{max-height:89%;width:100%;border:0;border-radius:0;padding:20px 17px 25px;background:transparent;box-shadow:0 9px 40px #282b2566;isolation:isolate}.scrim{background:#34392ea6;backdrop-filter:blur(1px)}#sheet-art{position:absolute;inset:-6px -3px;z-index:-1;pointer-events:none}#sheet-art>.sprite-window{width:100%;height:100%;aspect-ratio:auto!important}.sheet-handle{display:none}.sheet-header{background:transparent;padding:17px 7px 12px;border-bottom:1px solid #97836a66}.sheet-header p{font-size:11px;letter-spacing:1px}.sheet-header h2{font-size:25px}.sheet-content{padding:14px 6px 10px}.close-button{border:1px solid #867158;background:#e6d9b8;width:31px;height:31px;border-radius:3px;font-size:24px}.house-hero{min-height:135px;background:transparent}.house-hero>.building-art{width:74%;max-width:230px}.sheet-content p{font-size:12px;line-height:1.7}.house-tabs{margin-top:8px}.shop-card,.collection-card{border-radius:2px;background:#f6ebd388}.paper-note{border-radius:2px;background:#dacfaf45}.shop-card h3{font-size:17px}.product-card{background:#f5ead277;border-radius:2px;padding:10px}.stats-grid{border-radius:1px}.stat{background:#f5ead4}.stage-art .sprite-window{max-height:90px}.evolution strong{font-size:12px}.evolution .stage-art{height:64px}.loading{background:#e8e3cf}
@media(max-height:720px){.city-title{top:68px}.quest-chip{top:116px}.side-actions{top:153px}.business-bar{height:52px;bottom:75px}.bottom-nav{height:72px}.nav-icon{height:38px;width:40px}.nav-icon .sprite-window{max-height:36px;max-width:37px}.map-tools{bottom:136px}.sheet-layer{padding:10px}.sheet{max-height:95%}}


/* Mobile composition and paper-safe content bounds. */
.terrain{left:-19%;width:119%}.sheet{padding:80px 37px 64px;max-height:91%}.sheet-header{padding:0 0 9px}.sheet-content{padding:12px 0 2px}.sheet-header h2{font-size:23px;font-weight:600}.sheet-header p{letter-spacing:0;font-size:10px}.close-button{flex:none;width:28px;height:28px}.house-hero{min-height:125px}.house-hero>.building-art{max-width:205px;width:82%}.stats-grid{margin:10px 0}.stat strong{font-size:18px}.stat small{font-size:10px}.product-card{padding:9px 5px;gap:6px}.product-card h3{font-size:15px}.product-card p{font-size:10px}.paper-note{padding:8px;font-size:11px}.sheet .main-button{font-size:15px;padding:8px 10px}.outline-button{font-size:13px;padding:7px 8px}.collection-grid{gap:8px}.collection-card{padding-inline:5px}.collection-card h3{font-size:16px}.shop-card{grid-template-columns:68px 1fr;padding:8px;gap:8px}.shop-thumb{width:68px}.stock-line{gap:7px;font-size:10px}.card-actions button{padding:3px 5px}.hero-status{top:0;right:0}.house-name{font-size:28px}.house-name small{font-size:18px}.city-title h1{font-weight:700}.bottom-nav button{padding:0 0 8px;font-size:14px;font-weight:600}.nav-icon{height:43px;width:44px}.nav-icon .sprite-window{max-width:39px;max-height:38px}.bottom-nav button.active:after{bottom:12px}.map-tools{bottom:161px;left:7px}.map-tools button{width:27px;height:27px}.business-bar{left:7px;right:7px}.side-actions button{width:39px;min-height:48px;font-size:12px}.side-icon{width:30px;height:29px}.side-icon .sprite-window{max-width:29px;max-height:27px}
@media(max-height:720px){.sheet{padding-top:60px;padding-bottom:50px;max-height:95%}.house-hero{min-height:105px}.house-hero>.building-art{max-width:175px}.sheet-header h2{font-size:21px}}



.sheet{padding:23px 22px 22px;max-height:85%;border:2px solid #61543e;background:#f3e6c9;border-radius:3px;box-shadow:0 8px 28px #22271966}
#sheet-art{inset:0;opacity:1}.sheet-header{padding:1px 0 11px}.sheet-header>div{padding-right:12px}.sheet-header p{font-size:11px;line-height:1.4;color:#6c694f}.sheet-header h2{font-weight:600;font-size:25px}.sheet-content{padding:14px 0 0}.house-hero{padding-top:8px;margin:0 0 10px;min-height:160px}.house-hero>.building-art{width:76%;max-width:220px;margin:0 auto 10px}.sheet-content .hero-status{right:0;top:0}.hero-status{position:static!important;margin-left:auto;margin-top:-18px;grid-row:2}
.product-card{padding:10px}.stat strong{font-size:19px}.sheet-content p{font-size:12px}.sheet .main-button{font-size:16px}.sheet .outline-button{font-size:14px}.house-name{font-weight:600}
@media(max-height:720px){.sheet{max-height:92%;padding:21px 18px}.house-hero{min-height:125px}.house-hero>.building-art{max-width:175px}}
#sheet-content[data-view="growth"] .house-hero{min-height:112px;padding-top:0}#sheet-content[data-view="growth"] .house-hero>.building-art{max-width:156px;margin-bottom:3px}#sheet-content[data-view="growth"] .house-description{display:none}#sheet-content[data-view="growth"] .house-tabs{margin-top:3px}#sheet-content[data-view="growth"] .evolution-grid{margin:8px 0}#sheet-content[data-view="growth"] .evolution{padding:5px 3px}#sheet-content[data-view="growth"] .evolution .stage-art{height:53px}#sheet-content[data-view="growth"] .paper-note{padding:6px 8px;font-size:10px}#sheet-content[data-view="growth"] .stats-grid{margin:8px 0}
.evolution .building-art{max-height:none;width:100%}.evolution .stage-art .sprite-window{width:min(100%,calc(53px * var(--sprite-ratio)));max-height:none;margin:auto}.evolution .stage-art{align-items:center}

/* layout-v41.css */

/* V4.1 — modal layout from ImageGen studies; town art and gameplay stay intact. */
#game .sheet-layer{padding:14px 10px;align-items:center}
#game .sheet{width:100%;max-width:430px;max-height:calc(100% - 12px);padding:25px 27px 26px;border:0;border-radius:0;background:transparent;box-shadow:0 8px 26px #29302766;gap:0}
#game #sheet-art{inset:0;opacity:1}
#game .sheet-header{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:7px;min-height:58px;padding:0 0 12px;background:none;border-bottom:1px solid #a7967566}
#game .sheet-header>div{grid-column:2;text-align:center;padding:0;min-width:0;display:flex;flex-direction:column-reverse;gap:5px}
#game .sheet-header h2{font:600 24px/1.3 var(--serif);letter-spacing:1px;white-space:nowrap;color:#36362c}
#game .sheet-header p{font:11px/1.4 var(--sans);color:#807455;letter-spacing:.5px;margin:0}
#game .close-button{grid-column:3;align-self:start;width:32px;height:32px;border-radius:2px;border:1px solid #92744f;background:#f3e5c9;display:grid;place-items:center;font:25px/1 var(--sans);color:#7e5e3c}
#game .sheet-content{min-height:0;flex:0 1 auto;overflow:auto;overflow-x:hidden;padding:16px 1px 5px;scrollbar-width:thin;scrollbar-color:#bba984 transparent;scrollbar-gutter:auto}
#game .sheet-content>*{min-width:0}
#game .sheet-content p{font:12px/1.65 var(--sans);color:#777159}
#game .section-heading{font:600 17px/1.5 var(--serif);letter-spacing:.5px;margin:18px 0 10px;gap:8px}
#game .section-heading small{font:10px/1.4 var(--sans);white-space:nowrap;color:#8a8069}
#game .sheet-footer{flex:none;padding:13px 1px 0;margin-top:10px;border-top:1px solid #a48b6366;position:relative;z-index:1}
#game .sheet-footer[hidden]{display:none}
#game .footer-actions{display:grid;grid-template-columns:.9fr 1.2fr;gap:10px;align-items:stretch}
#game .footer-actions.single{grid-template-columns:minmax(0,1fr)}
#game .footer-actions button{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:44px;padding:8px 6px;text-align:center;font:600 16px/1.3 var(--serif);letter-spacing:.5px}
#game .footer-note{text-align:center;font:10px/1.5 var(--sans);color:#7e7057;margin:9px 0 0}
#game .sheet .main-button{background:#a14b35;box-shadow:inset 0 0 0 2px #c3855b,0 1px 0 #58432d44}
#game .sheet .main-button:disabled{background:#b19b77;border-color:#9c855f;box-shadow:inset 0 0 0 2px #d1bd9844;opacity:.75}
#game .sheet .outline-button{background:#f0e5c9;box-shadow:inset 0 0 0 2px #fbf5e340}
#game .wallet-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #bcaa805e;background:#f8efd78c;border-radius:3px;padding:12px 2px 10px;margin-bottom:15px}
#game .summary-stat{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
#game .summary-stat+.summary-stat{border-left:1px solid #c4b58c66}
#game .summary-icon{width:31px;height:28px;display:flex;align-items:center;justify-content:center}
#game .summary-icon .sprite-window{max-width:28px;max-height:28px}
#game .summary-stat small{font:11px/1.5 var(--sans);color:#7d7258}
#game .summary-stat strong{font:600 22px/1.3 var(--sans);font-variant-numeric:tabular-nums;color:#855832}
#game .cap-stack{display:grid;gap:11px}
#game .cap-card{border:1px solid #b8a68280;background:#f2ead4b8;border-radius:3px;padding:12px 13px}
#game .cap-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
#game .cap-heading h3{font:600 16px/1.4 var(--serif);white-space:nowrap}
#game .cap-heading strong{font:600 18px/1.3 var(--sans);color:#925d32;white-space:nowrap;font-variant-numeric:tabular-nums}
#game .cap-heading small{font:10px var(--sans);font-weight:400;color:#8b795d}
#game .cap-track{height:6px;background:#d7cbab;border-radius:9px;overflow:hidden;margin:10px 0 8px}
#game .cap-track i{display:block;height:100%;background:#a08450;border-radius:9px}
#game .cap-card p{font-size:11px;line-height:1.5}
#game .ledger-empty{min-height:83px;padding:13px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed #baa78470;background:#f2e8cc40}
#game .ledger-empty>span{display:flex;align-items:center;justify-content:center;width:32px;height:31px;opacity:.64}
#game .ledger-empty .sprite-window{max-width:30px;max-height:30px}
#game .ledger-empty p{font:12px/1.5 var(--serif);text-align:center;color:#8a7b5d}
#game .panel-footnote{text-align:center;font-size:10px;margin:16px 0 2px;color:#8d7c5c}
#game .ledger-list{padding:0 4px}
#game .log-row{padding:10px 0;font-size:12px;align-items:center}
#game .guide-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:0 0 16px}
#game .guide-picker button{min-height:34px;display:flex;align-items:center;justify-content:center;font:600 14px/1.3 var(--serif);background:#eee3c67d;border:1px solid #ab986c85;border-radius:2px;letter-spacing:1px}
#game .guide-picker button.selected{background:#a14b35;color:#fff0d6;border-color:#783a2a;box-shadow:inset 0 0 0 2px #cb8b665c}
#game .guide-heading{text-align:center}
#game .guide-heading h3{font:600 22px/1.4 var(--serif);letter-spacing:1px}
#game .guide-heading p{font-size:11px;margin-top:4px}
#game .guide-hero{height:145px;display:flex;align-items:center;justify-content:center;margin:10px 0 7px}
#game .guide-hero>.building-art{width:100%;display:flex;align-items:center;justify-content:center}
#game .guide-hero .sprite-window{width:min(85%,calc(140px * var(--sprite-ratio)));max-width:235px}
#game .guide-level{text-align:center;margin:0 auto 16px;padding:3px 12px;width:max-content;max-width:100%;background:#dce2ce;border:1px solid #96a3846b;color:#5d6a4e;font:11px/1.5 var(--sans);border-radius:2px}
#game .evolution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}
#game .evolution{min-width:0;padding:9px 4px 8px;border-radius:3px;background:#f4ebd47a;box-shadow:none}
#game .evolution.current{border-color:#a97d46;background:#f1dfb866;box-shadow:inset 0 0 0 2px #d9b9865c}
#game .evolution .stage-art{height:62px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
#game .evolution .building-art{width:100%;max-height:none}
#game .evolution .stage-art .sprite-window{width:min(100%,calc(60px * var(--sprite-ratio)));max-height:none;margin:auto}
#game .evolution strong{font:600 12px/1.5 var(--serif);letter-spacing:0;white-space:nowrap}
#game .evolution small{font:10px/1.6 var(--sans);color:#8c7857;display:block;margin-top:3px;white-space:nowrap}
#game .growth-notes{border-top:1px dashed #b9a2767a;border-bottom:1px dashed #b9a2767a;margin-top:14px;padding:6px 0}
#game .growth-notes p{display:flex;align-items:center;gap:11px;margin:6px 0;font-size:12px;line-height:1.4}
#game .growth-notes b{min-width:43px;text-align:center;font:600 12px/1.6 var(--sans);color:#9b5335;border:1px solid #b9996966;background:#e8d9b860}
#game .detail-hero{display:flex;flex-direction:column;align-items:center;gap:7px;margin:0 0 8px}
#game .detail-hero>.building-art{height:128px;width:100%;display:flex;justify-content:center;align-items:center}
#game .detail-hero .sprite-window{width:min(80%,calc(124px * var(--sprite-ratio)));max-width:218px}
#game .detail-level{font:11px/1.5 var(--sans);color:#76724f;padding:2px 12px;border:1px solid #ac9a6b80;border-radius:2px;background:#efe3c2a6}
#game .detail-description{text-align:center;font-family:var(--serif);font-size:12px;margin:0 0 9px}
#game .house-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0 13px;border-bottom:1px solid #a991686b}
#game .house-tabs button{display:flex;align-items:center;justify-content:center;padding:9px 3px;min-height:38px;font:600 16px/1.3 var(--serif)}
#game .house-tabs button.active{background:#be714015;border-color:#a54f36}
#game .product-card{padding:12px 10px;margin:0;border:1px solid #bda98077;border-bottom:0;border-radius:3px 3px 0 0;background:#f7edd680;gap:9px;align-items:center}
#game .product-copy{min-width:0;flex:1}
#game .product-copy h3{font:600 17px/1.4 var(--serif);margin:0 0 3px}
#game .product-copy p{font:10px/1.5 var(--sans);white-space:nowrap}
#game .product-price{margin-left:auto;text-align:right}
#game .product-price strong{font:600 24px/1.2 var(--sans);color:#905131}
#game .product-price small{font:10px/1.5 var(--sans);margin-top:3px;white-space:nowrap}
#game .product-card .mini-icon{width:36px;height:37px;flex:none}
#game .product-card .mini-icon .sprite-window{max-width:35px;max-height:35px}
#game .stats-grid{margin:0;border-radius:0 0 3px 3px;border-color:#bda98077;background:#baa77d55}
#game .stat{padding:11px 3px;background:#f4e8cde8;min-width:0}
#game .stat strong{font:600 20px/1.3 var(--sans);font-variant-numeric:tabular-nums;color:#865c37}
#game .stat em{font:400 12px var(--sans);color:#938065;margin-left:1px}
#game .stat small{display:block;margin-top:4px;font:10px/1.5 var(--sans);white-space:nowrap}
#game .sheet[data-tab="growth"] .detail-description{display:none}
#game .sheet[data-tab="growth"] .detail-hero>.building-art{height:102px}
#game .sheet[data-tab="growth"] .detail-hero .sprite-window{width:min(70%,calc(98px * var(--sprite-ratio)));max-width:170px}
#game .sheet[data-tab="growth"] .stats-grid{margin-top:14px;border-radius:3px}
#game .sheet[data-tab="artifact"] .detail-hero{display:none}
#game .artifact-description{text-align:center;margin:0 0 15px}
@media(max-height:720px){
 #game .sheet-layer{padding:8px}
 #game .sheet{padding:22px 24px;max-height:calc(100% - 4px)}
 #game .sheet-header{min-height:52px;padding-bottom:10px}
 #game .sheet-header h2{font-size:22px}
 #game .sheet-content{padding-top:12px}
 #game .guide-picker{margin-bottom:10px}
 #game .guide-hero{height:98px;margin:5px 0}
 #game .guide-hero .sprite-window{width:min(72%,calc(94px * var(--sprite-ratio)));max-width:172px}
 #game .guide-level{margin-bottom:10px}
 #game .growth-notes{margin-top:9px;padding:3px 0}
 #game .detail-hero>.building-art{height:97px}
 #game .detail-hero .sprite-window{width:min(72%,calc(94px * var(--sprite-ratio)));max-width:165px}
 #game .detail-description{margin-bottom:5px;font-size:11px}
 #game .sheet .house-tabs{margin:4px 0 10px}
 #game .product-card{padding:9px}
 #game .stat{padding:8px 3px}
 #game .ledger-empty{min-height:63px;padding:9px}
 #game .section-heading{margin:12px 0 8px}
 #game .sheet-footer{padding-top:10px;margin-top:8px}
 #game .footer-actions button{min-height:42px;font-size:15px}
 #game .summary-stat strong{font-size:20px}
 #game .wallet-summary{padding:9px 2px}
}
@media(max-width:375px){#game .sheet{padding-inline:24px}#game .cap-heading h3{font-size:14px}#game .cap-heading strong{font-size:16px}#game .evolution strong{font-size:11px}#game .guide-picker button{font-size:13px}}

#game #sheet-content .evolution .stage-art{height:62px}#game #sheet-content .evolution{padding:9px 4px 8px}#game .panel-footnote{padding:0 18px}
@media(max-height:720px){#game .ledger-empty{flex-direction:row;min-height:46px;padding:9px;gap:8px}#game .ledger-empty>span{width:24px;height:24px;flex:none}#game .ledger-empty .sprite-window{max-width:23px;max-height:23px}#game .ledger-empty p{font-size:11px}#game #sheet-content .evolution .stage-art{height:54px}#game .evolution .stage-art .sprite-window{width:min(100%,calc(52px * var(--sprite-ratio)))}#game .growth-notes p{margin:4px 0}}

/* street-v42.css */
/* HUD and icon safe areas. The existing illustration and modal theme stay in place. */
#game{--nav-height:86px}
#game .city-title{top:80px;left:15px;gap:8px;padding:3px 8px 3px 0;background:linear-gradient(90deg,#f0e8d2ee 70%,#f0e8d200);text-shadow:0 1px 0 #fff8e5}
#game .city-title p{font-size:10px;line-height:14px;margin-bottom:2px}
#game .city-title h1{font-size:25px;line-height:31px;letter-spacing:3px}
#game .city-seal{font-size:13px;line-height:16px;padding:3px}
#game .quest-chip{top:137px;height:28px}
#game .top-fog{height:182px}
#game .side-actions{top:177px}
#game .bottom-nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:12px 13px calc(11px + env(safe-area-inset-bottom));gap:2px}
#game .bottom-nav button{padding:0;gap:3px;justify-content:center;font:600 13px/17px var(--serif);letter-spacing:1px;min-width:0}
#game .bottom-nav button.active{background:radial-gradient(ellipse,#be745622,transparent 75%)}
#game .bottom-nav button>span:last-of-type{background:#f2e7ce;padding:0 3px;border-radius:2px;white-space:nowrap}
#game .bottom-nav button.active:after{bottom:-5px;width:17px;height:2px}
#game .nav-icon{width:37px;height:35px}
#game .nav-icon .sprite-window{width:min(100%,calc(34px * var(--sprite-ratio)))!important;max-width:36px;max-height:34px}
#game #nav-art{inset:0 -12px -5px}
#game .nav-dot{top:1px;right:calc(50% - 22px)}
#game .business-bar{bottom:calc(var(--nav-height) + 8px + env(safe-area-inset-bottom));height:55px}
#game .map-tools{bottom:calc(var(--nav-height) + 75px + env(safe-area-inset-bottom));left:10px;display:flex;flex-direction:row;gap:0;padding:3px;background:#f4e8cfee;border:1px solid #887252;border-radius:3px;box-shadow:0 2px 0 #5e4a3144,inset 0 0 0 2px #fff6de99}
#game .map-tools button{width:32px;height:32px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#59482f;font:22px/1 var(--sans)}
#game .map-tools button+button{border-left:1px solid #b5a17b77}
#game .map-tools button span{font:600 12px/1.2 var(--serif);white-space:nowrap}
#game .map-tools button:disabled{color:#a4977f;opacity:.6}
#game .map-tools button:not(:disabled):active{background:#dfc9a4}
#game .side-actions button{width:42px;min-height:52px;padding:4px 2px 3px;gap:2px;font-size:12px;line-height:15px}
#game .side-icon{width:29px;height:28px}
#game .side-icon .sprite-window{width:min(100%,calc(27px * var(--sprite-ratio)))!important;max-height:27px;max-width:29px}
#game .npc{width:69px;height:75px}
#game .npc-shadow{left:19px;right:19px;height:8px}
#game .npc-bubble{bottom:102%;font:20px/1.25 var(--serif);padding:7px 11px;border-radius:5px;background:#fbefd8;box-shadow:0 3px 0 #4a3f282b;z-index:2}
#game .npc-bag{position:absolute;right:2px;bottom:8px;width:20px;height:20px;display:none}
#game .npc-bag .sprite-window{width:100%;height:auto}
#game .npc.carrying .npc-bag{display:block}
#game .npc[data-indoor="true"] .npc-bubble,#game .npc[data-phase="entering"] .npc-bag{opacity:0}
#game .shop-status{position:static;transform:none;font:20px/1.2 var(--sans);padding:3px 9px;border-width:1px;box-shadow:none;flex:none}
#game .house-caption{position:absolute;top:98%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;background:#f4e7cceF;border:1px solid #87724e;padding:4px 7px;box-shadow:1px 3px 0 #51463244}
#game .house-name{position:static;transform:none;font:25px/1.25 var(--serif);padding:0;border:0;box-shadow:none;background:transparent;gap:6px}
#game .house-name small{font-size:17px}
#game .entry-service{position:absolute;z-index:2500;transform:translate(-50%,-100%);padding:7px 12px;background:#f9edcf;border:2px solid #8b7653;border-radius:5px;box-shadow:0 3px 0 #4e432c33;font:21px/1.2 var(--serif);pointer-events:none;white-space:nowrap}
#game .entry-service[hidden]{display:none}
#game .entry-service b{display:block;height:4px;background:#d7c8a5;margin-top:6px;overflow:hidden}
#game .entry-service i{display:block;height:100%;background:#667b54}
#game .coin-float{font-size:26px;background:#fbebcce8;border:1px solid #c49a59;padding:4px 9px;border-radius:10px}
#game .sheet .shop-card{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:13px 10px;margin-bottom:12px;min-height:142px}
#game .sheet .shop-thumb{width:100px;height:100px;align-self:center;background:radial-gradient(ellipse,#d5d8b866,transparent 72%)}
#game .sheet .shop-thumb>.building-art{width:100%}
#game .sheet .shop-card h3{font-size:18px;line-height:25px;letter-spacing:0}
#game .sheet .shop-line{align-items:flex-start;gap:4px;flex-wrap:wrap}
#game .sheet .shop-card p{font-size:11px;line-height:18px;margin:3px 0}
#game .sheet .stock-line{justify-content:space-between;gap:5px;font-size:11px;margin:5px 0}
#game .sheet .card-actions{gap:7px;margin-top:11px}
#game .sheet .card-actions button{min-height:31px;padding:4px 7px;font-size:12px;white-space:nowrap}
#game .sheet .tag{font-size:10px;line-height:16px;padding:1px 5px;flex:none}
@media(max-width:380px){#game .sheet .shop-card{grid-template-columns:85px minmax(0,1fr);padding:11px 7px;gap:8px}#game .sheet .shop-thumb{width:85px;height:88px}#game .sheet .shop-card h3{font-size:17px}#game .sheet .card-actions{gap:4px}#game .sheet .card-actions button{padding-inline:5px;font-size:11px}}
@media(max-height:720px){#game{--nav-height:78px}#game .hud{top:10px}#game .city-title{top:76px}#game .city-title p{display:none}#game .city-title h1{font-size:24px;line-height:30px}#game .quest-chip{top:117px;height:26px}#game .side-actions{top:153px}#game .bottom-nav{padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom))}#game .nav-icon{width:34px;height:31px}#game .nav-icon .sprite-window{max-height:31px}#game .business-bar{height:51px}}
@media(max-height:720px){#game .city-title{padding-block:0}#game .city-seal{font-size:11px;line-height:12px;padding:2px}}

/* town-v43.css */
#game .town-person{position:absolute;width:74px;height:84px;transform:translate(-50%,-100%);pointer-events:none;will-change:left,top}
#game .person-body{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;transform-origin:50% 100%}
#game .person-body>.sprite-window{width:calc(var(--actor-art-height,84px) * var(--sprite-ratio));height:var(--actor-art-height,84px);flex:none}
#game .person-shadow{position:absolute;left:18px;right:18px;bottom:-1px;height:7px;border-radius:50%;background:#554b342c}
#game .person-parcel{position:absolute;width:12px;height:13px;border:1px solid #766149;border-radius:3px;background:#b29868;right:9px;bottom:16px;display:none;transform:rotate(-8deg)}
#game .person-parcel:before{content:"";position:absolute;inset:0 4px;border-inline:1px solid #e6d5b3}
#game .town-person.has-parcel .person-parcel{display:block}
#game .town-person[data-pose="seated"] .person-shadow{opacity:.25}
#game .town-staff{height:77px;width:70px}
#game .town-staff .person-body>.sprite-window{height:77px;width:calc(77px * var(--sprite-ratio))}
#game .town-staff .person-shadow{opacity:.6}
#game .shop-foreground{position:absolute;display:block;pointer-events:none}
#game .shop-foreground .building-art{display:block;width:100%}
#game #shop-services{display:none}
#game .house-caption{top:100%;padding:3px 6px;gap:5px;z-index:10}
#game .house-name{font-size:24px}
#game .shop-status{font-size:19px}
#game .watch-link{display:flex;justify-content:center;align-items:center;gap:12px;border:1px solid #a6936f;background:#ece5c9;color:#665239;font:14px/1.4 var(--serif);padding:7px 14px;margin:8px auto 12px;min-width:145px}
#game .walk-rig{position:relative;display:block;width:calc(84px * var(--sprite-ratio));height:84px;flex:none}
#game .rig-piece{position:absolute;inset:0;display:block}
#game .rig-piece>.sprite-window{width:100%;height:100%}
#game .walk-rig.front .rig-torso{clip-path:polygon(0 0,100% 0,100% 69%,68% 69%,64% 75%,43% 76%,41% 73%,34% 72%,30% 75%,20% 70%,0 68%);transform-origin:48% 70%}
#game .walk-rig.front .rig-near{clip-path:polygon(42% 71%,60% 70%,73% 83%,81% 87%,82% 97%,58% 100%,50% 90%);transform-origin:50% 72%}
#game .walk-rig.front .rig-far{clip-path:polygon(26% 68%,44% 72%,42% 79%,32% 90%,17% 87%,13% 78%);transform-origin:34% 71%}
#game .walk-rig.back .rig-torso{clip-path:polygon(0 0,100% 0,100% 64%,65% 67%,59% 73%,24% 74%,16% 68%,0 68%);transform-origin:48% 70%}
#game .walk-rig.back .rig-near{clip-path:polygon(24% 68%,49% 73%,44% 83%,26% 97%,9% 98%,6% 88%);transform-origin:34% 71%}
#game .walk-rig.back .rig-far{clip-path:polygon(48% 67%,64% 69%,66% 79%,75% 80%,77% 91%,57% 93%,44% 80%);transform-origin:54% 71%}
#game .walk-rig .rig-hips{clip-path:polygon(29% 68%,58% 68%,61% 76%,24% 76%)}
/* layout-v45.css */
/* V4.5: complete icons, undistorted paper frames and consistent safe areas. */
#game{--nav-height:100px}
#game .terrain{left:0;width:100%;height:100%}
#game .water-light{left:1%;width:18%}
#game .town-person{width:62px;height:70px}
#game .person-body>.sprite-window{width:calc(var(--actor-art-height,70px) * var(--sprite-ratio));height:var(--actor-art-height,70px)}
#game .walk-rig{width:calc(70px * var(--sprite-ratio));height:70px}
#game .town-staff{width:58px;height:64px}
#game .town-staff .person-body>.sprite-window{height:64px;width:calc(64px * var(--sprite-ratio))}
#game .person-shadow{left:16px;right:16px;height:6px}
#game .bottom-nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:12px 22px calc(12px + env(safe-area-inset-bottom));gap:2px;background:transparent;border:0;overflow:visible}
#game #nav-art{inset:0;overflow:visible;border:solid transparent;border-width:16px 23px 14px;border-image:url('assets/nav-frame-v45.webp') 70 85 65 80 fill stretch}
#game #nav-art>.sprite-window{display:none}
#game .bottom-nav button{height:76px;padding:3px 0 7px;gap:5px;font:600 14px/19px var(--serif);letter-spacing:0;min-width:0;border-radius:3px}
#game .bottom-nav button>span:last-of-type{display:flex;align-items:center;justify-content:center;height:19px;width:100%;padding:0;background:transparent;white-space:nowrap}
#game .bottom-nav button.active{background:linear-gradient(transparent,#b9714124)}
#game .bottom-nav button.active:after{bottom:1px;left:calc(50% - 12px);width:24px;height:2px;box-shadow:none}
#game .nav-icon{width:48px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;filter:none}
#game .icon-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center;flex:none;pointer-events:none}
#game .nav-icon .icon-image{width:44px;height:42px}
#game .nav-dot{right:calc(50% - 23px);top:2px;width:7px;height:7px}
#game .business-bar{bottom:calc(var(--nav-height) + 8px + env(safe-area-inset-bottom));height:60px;left:10px;right:10px;padding:7px 9px;gap:10px}
#game .stock-all{height:44px;min-height:44px;width:136px;font-size:17px;padding:4px}
#game .stock-all small{font-size:10px;line-height:15px}
#game .daily-income>span:first-child{font-size:13px;line-height:18px}
#game .daily-income>span:first-child small{font-size:11px}
#game .map-tools{bottom:calc(var(--nav-height) + 82px + env(safe-area-inset-bottom))}
#game .side-actions{right:10px;gap:8px}
#game .side-actions button{width:46px;height:58px;min-height:58px;font-size:13px;line-height:17px;gap:3px;padding:4px}
#game .side-icon{width:32px;height:30px;display:flex;align-items:center;justify-content:center}
#game .side-icon .icon-image{width:30px;height:29px}
#game .summary-icon .icon-image,#game .mini-icon .icon-image{width:100%;height:100%}
#game .ledger-empty>span{display:flex;align-items:center;justify-content:center}
#game .ledger-empty .icon-image{width:30px;height:30px}
#game .collection-art .icon-image{width:82px;height:82px;max-width:100%;max-height:100%}
#game .collection-detail .collection-art .icon-image{width:112px;height:112px}
#game .sheet-layer{padding:14px 10px;align-items:center}
#game .sheet{width:100%;max-width:440px;height:min(760px,calc(100% - 4px));max-height:calc(100% - 4px);padding:26px 25px 28px;overflow:visible}
#game #sheet-art{inset:0;border:solid transparent;border-width:28px 22px 27px;border-image:url('assets/modal-frame-v45.webp') 160 130 160 130 fill stretch}
#game #sheet-art>.sprite-window{display:none}
#game .sheet-header{min-height:67px;padding:0 0 13px;grid-template-columns:40px minmax(0,1fr) 40px;gap:5px}
#game .sheet-header>div{padding:0;gap:5px}
#game .sheet-header h2{font-size:24px;line-height:31px;white-space:normal;letter-spacing:1px}
#game .sheet-header p{font-size:12px;line-height:17px;letter-spacing:0}
#game .close-button{width:40px;height:40px;align-self:center;font-size:25px}
#game .sheet-content{flex:1 1 0;min-height:0;overflow:auto;overflow-x:hidden;padding:15px 1px 8px;scrollbar-gutter:stable}
#game .sheet-content p{font-size:12px;line-height:1.7}
#game .sheet-footer{padding:12px 1px 0;margin-top:7px}
#game .footer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#game .footer-actions.single{grid-template-columns:minmax(0,1fr)}
#game .footer-actions button{height:46px;min-height:46px;font-size:16px}
#game .sheet .shop-card{min-height:154px;grid-template-columns:98px minmax(0,1fr);padding:12px 10px;gap:10px}
#game .sheet .shop-thumb{width:98px;height:104px}
#game .sheet .shop-line{align-items:center;gap:5px}
#game .sheet .stock-line{font-size:12px;flex-wrap:wrap;row-gap:2px}
#game .sheet .card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}
#game .sheet .card-actions button{height:36px;min-height:36px;font-size:12px;padding:5px 3px;text-align:center}
#game .section-heading{flex-wrap:wrap;row-gap:3px}
#game .section-heading small{font-size:11px;white-space:normal}
#game .tag{font-size:11px}
#game .stat small{font-size:11px}
#game .detail-hero>.building-art{height:128px;flex:none}
#game .detail-description{font-size:12px}
#game .house-tabs button{min-height:42px}
#game .watch-link{min-height:40px;margin-bottom:10px}
#game .task-card button{min-height:40px}
@media(max-width:380px){
 #game .bottom-nav{padding-inline:17px}
 #game .nav-icon{width:44px;height:44px}
 #game .bottom-nav button{font-size:13px}
 #game .sheet{padding-inline:23px}
 #game .sheet .shop-card{grid-template-columns:78px minmax(0,1fr);gap:8px;padding-inline:8px}
 #game .sheet .shop-thumb{width:78px;height:94px}
 #game .sheet .shop-card h3{font-size:17px;line-height:23px}
 #game .sheet .card-actions button{font-size:11px}
}
@media(max-height:720px){
 #game{--nav-height:94px}
 #game .bottom-nav{padding-top:9px;padding-bottom:calc(9px + env(safe-area-inset-bottom))}
 #game .sheet-layer{padding:9px}
 #game .sheet{height:calc(100% - 4px);padding-block:23px}
 #game .sheet-header{min-height:62px;padding-bottom:10px}
 #game .sheet-header h2{font-size:23px}
 #game .sheet-content{padding-top:12px}
 #game .detail-hero>.building-art{height:100px}
 #game .sheet-footer{padding-top:10px;margin-top:5px}
 #game .business-bar{height:58px}
}

/* game-art-v45.css */
/* Reusable ImageGen frames; text and icons remain independent runtime content. */
#game{--art-primary:url('assets/ui-art-v45/button-primary.webp');--art-secondary:url('assets/ui-art-v45/button-secondary.webp');--art-scroll:url('assets/ui-art-v45/business-scroll.webp');--art-card:url('assets/ui-art-v45/collection-card.webp')}
#game .sheet{padding:107px 30px 55px;background:none;border:0;box-shadow:none;filter:drop-shadow(0 8px 12px #20281c55)}
#game #sheet-art{border-width:140px 29px 76px;border-image:url('assets/ui-art-v45/modal-scroll.webp') 348 152 222 152 fill stretch;filter:none}
#game .sheet-header{position:absolute;left:30px;right:30px;top:41px;min-height:58px;padding:0;border:0;grid-template-columns:40px minmax(0,1fr) 40px;align-items:start;gap:0}
#game .sheet-header>div{grid-column:1 / -1;gap:12px;align-items:center;pointer-events:none}
#game .sheet-header h2{font:600 22px/27px var(--serif);letter-spacing:.5px;max-width:210px;white-space:nowrap;color:#463b28}
#game .sheet-header p{font:11px/16px var(--sans);color:#7f7155;white-space:nowrap}
#game .close-button{position:absolute;right:-4px;top:4px;border:0;border-radius:0;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;box-shadow:none;width:40px;height:40px;padding:0 0 2px;color:#745236;align-self:start;grid-column:auto;display:grid;place-items:center;font:24px/1 var(--sans)}
#game .sheet-content{padding:10px 2px 9px;scrollbar-color:#ac8b58 transparent}
#game .sheet-footer{border:0;padding-top:12px;margin-top:3px}
#game .sheet .main-button,#game .stock-all,#game .task-card button.ready,#game .card-actions button.red,#game .collection-card button.red{border:solid transparent;border-width:9px 13px;border-image:var(--art-primary) 44 80 44 80 fill stretch;background:none;border-radius:0;box-shadow:none;color:#fff0cf;padding:0 5px;filter:drop-shadow(0 2px 1px #3a251b30)}
#game .sheet .outline-button,#game .card-actions button,#game .collection-card button,#game .watch-link,#game .task-card button{border:solid transparent;border-width:8px 13px;border-image:var(--art-secondary) 44 80 44 80 fill stretch;background:none;border-radius:0;box-shadow:none;padding:0 5px;color:#67533a;display:flex;align-items:center;justify-content:center}
#game .sheet .main-button:disabled,#game .stock-all:disabled,#game .task-card button:disabled{filter:grayscale(.7);opacity:.65}
#game .footer-actions button{height:49px;min-height:49px}
#game .sheet .main-button.wide{min-height:48px}
#game .sheet .button-row .main-button,#game .sheet .button-row .outline-button{min-height:48px}
#game .watch-link{width:72%;min-height:43px;margin:8px auto 12px;font:600 14px/20px var(--serif);gap:12px}
#game .house-tabs{gap:4px;margin:9px 0 14px;border:0}
#game .house-tabs button{min-height:44px;height:44px;border:solid transparent;border-width:16px 13px 7px;border-image:url('assets/ui-art-v45/tab-neutral.webp') 66 90 38 90 fill stretch;background:none;box-shadow:none;padding:0 3px;font:600 15px/20px var(--serif);color:#756345}
#game .house-tabs button.active{border-width:16px 13px 7px;border-image-source:url('assets/ui-art-v45/tab-selected.webp');background:none;color:#eff2d9;box-shadow:none}
#game .guide-picker{gap:3px;margin-bottom:14px}
#game .guide-picker button{border:solid transparent;border-width:7px 8px;border-image:var(--art-secondary) 44 80 44 80 fill stretch;background:none;box-shadow:none;min-height:36px;font-size:13px;letter-spacing:0;padding:0}
#game .guide-picker button.selected{border-image-source:var(--art-primary);color:#fff0cf;box-shadow:none}
#game .paper-note{border:0;border-left:3px solid #a68c5b65;background:linear-gradient(90deg,#dac99c3b,transparent);border-radius:0;padding:6px 9px}
#game .collection-card,#game .sheet .shop-card,#game .cap-card,#game .product-card,#game .task-card,#game #sheet-content .evolution{border:solid transparent;border-width:13px 12px 19px;border-image:var(--art-card) 65 48 108 90 fill stretch;background:none;border-radius:0;box-shadow:none}
#game .sheet .shop-card{padding:2px 0 0;grid-template-columns:88px minmax(0,1fr);gap:9px;min-height:164px;margin-bottom:9px}
#game .sheet .shop-thumb{width:88px;height:108px;background:radial-gradient(ellipse,#c9d2b64a,transparent 70%)}
#game .sheet .card-actions{margin-top:8px;gap:5px}
#game .sheet .card-actions button{height:37px;min-height:37px;font-size:11px;border-width:7px 8px;white-space:nowrap}
#game .shop-card h3{font-size:18px;line-height:25px;letter-spacing:.5px}
#game .stock-line{justify-content:space-between}
#game .collection-grid{gap:10px;margin-top:12px}
#game .collection-card{padding:13px 0 0;min-height:232px}
#game .collection-card .collection-number{left:3px;top:0;font-size:9px;letter-spacing:0}
#game .collection-card .collection-art{height:84px}
#game .collection-card h3{font-size:16px;line-height:23px;margin:4px 0}
#game .collection-card p{font-size:10px;line-height:16px}
#game .collection-card button{width:100%;min-height:37px;margin-top:9px;font-size:12px;border-width:7px 9px}
#game .tag,#game .detail-level,#game .guide-level{border:solid transparent;border-width:5px 7px;border-image:url('assets/ui-art-v45/tab-neutral.webp') 66 90 38 90 fill stretch;background:none;box-shadow:none;border-radius:0;color:#7b6749;padding:0 3px;line-height:15px}
#game .tag:not(.gray):not(.red),#game .detail-level,#game .guide-level{border-image-source:url('assets/ui-art-v45/tab-selected.webp');color:#f0efd8}
#game .stats-grid,#game .wallet-summary{border:solid transparent;border-width:14px 18px;border-image:var(--art-scroll) 58 82 60 83 fill stretch;background:none;border-radius:0;box-shadow:none;gap:0;margin:9px 0;padding:0;overflow:visible}
#game .stat{background:none;padding:5px 2px;position:relative}
#game .stat+.stat{border-left:1px solid #b4a47a66}
#game .stat strong{font-size:21px;line-height:27px;color:#805b36}
#game .stat small{font-size:10px;margin-top:2px;white-space:normal;line-height:15px}
#game .summary-stat{padding:2px;gap:3px}
#game .summary-stat strong{font-size:20px}
#game .cap-card{padding:1px 0 0}
#game .cap-heading h3{font-size:15px}
#game .cap-heading strong{font-size:17px}
#game .cap-track{height:5px;margin:9px 0 7px}
#game .ledger-empty{border:0;border-top:1px dashed #b8a27366;border-bottom:1px dashed #b8a27366;background:none}
#game .product-card{padding:2px 0 0;border-bottom-width:19px;gap:7px}
#game .product-copy h3{font-size:16px;line-height:22px}
#game .product-copy p{white-space:normal}
#game .product-price strong{font-size:23px}
#game .product-card+.stats-grid{margin-top:5px}
#game #sheet-content .evolution{padding:0;min-height:124px;border-width:10px 6px 16px}
#game #sheet-content .evolution.current{border-image-source:var(--art-card);background:#bb8a4030;filter:drop-shadow(0 1px 1px #b5874155)}
#game #sheet-content .evolution .stage-art{height:59px;margin-bottom:6px}
#game .evolution strong{font-size:11px;line-height:17px}
#game .evolution small{font-size:9px;line-height:15px;margin-top:3px}
#game .growth-notes{margin-top:11px}
#game .growth-notes b{border:0;border-bottom:1px solid #ae895650;background:none}
#game .sheet[data-page="house"][data-tab="growth"] .detail-hero>.building-art{height:90px}
#game .sheet[data-page="house"][data-tab="growth"] .detail-hero{gap:3px;margin-bottom:4px}
#game .sheet[data-page="house"][data-tab="growth"] .watch-link{min-height:37px;margin:3px auto 5px}
#game .sheet[data-page="house"][data-tab="growth"] .house-tabs{margin:4px 0 8px}
#game .sheet[data-page="house"][data-tab="growth"] .house-tabs button{height:40px;min-height:40px}
#game .sheet[data-page="house"][data-tab="growth"] .evolution-grid{margin:8px 0}
#game .sheet[data-page="house"][data-tab="growth"] #sheet-content .evolution{min-height:116px}
#game .sheet[data-page="house"][data-tab="growth"] .growth-notes{margin-top:7px;padding:3px 0}
#game .sheet[data-page="house"][data-tab="growth"] .growth-notes p{margin:5px 0;line-height:20px}
#game .sheet[data-page="house"][data-tab="growth"] .stats-grid{margin:7px 0 0;border-block-width:10px}
#game .sheet[data-page="house"][data-tab="growth"] .stat{padding:3px 2px}
#game .sheet[data-page="house"][data-tab="growth"] .stat strong{line-height:24px}
#game .task-card{padding:4px 0;gap:7px}
#game .task-symbol{background:none;border:0;color:#98633a}
#game .task-card button{min-width:64px;height:39px;font-size:12px;border-width:7px 8px}
#game .hud{left:9px;right:12px;top:11px;gap:5px}
#game .hud-resources{gap:4px}
#game .resource{border:solid transparent;border-width:6px 13px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;background:none;border-radius:0;box-shadow:none;height:34px;min-width:170px;padding:0 3px;gap:7px}
#game .resource .copper{width:22px;height:22px;flex:none}
#game .resource .copper:after{top:5px;left:5px}
#game .resource strong{font-size:15px;line-height:22px}
#game .resource.popularity{height:28px;min-width:143px;background:none;border-width:5px 11px;gap:5px}
#game .resource.popularity strong{font-size:12px}
#game .resource .plus{font-size:17px;margin-left:auto}
#game .profile{background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;border:0;box-shadow:none;padding:7px;width:61px;height:61px}
#game .profile .portrait{border:0;background:none;width:45px;height:45px;overflow:hidden}
#game .portrait>.sprite-window{width:88px;height:108px;left:calc(50% - 44px);top:-7px}
#game .profile .portrait .sprite-window{height:108px!important;width:88px!important;left:-21px;top:-7px}
#game .city-title{top:78px;left:18px;gap:9px}
#game .city-seal{position:relative;display:block;flex:none;width:52px;height:52px;padding:0;border:0;border-radius:0;box-shadow:none;transform:none;background:none}
#game .city-emblem{display:block;width:52px;height:52px;object-fit:contain;pointer-events:none}
#game .city-label{position:absolute;left:50%;top:70%;transform:translate(-50%,-50%);width:35px;height:12px;display:grid;place-items:center;font:600 10px/12px var(--serif);letter-spacing:.5px;color:#70462c;white-space:nowrap}
#game .city-title h1{font-size:26px;line-height:33px;letter-spacing:2.5px}
#game .city-title p{font-size:9px;letter-spacing:1px}
#game .quest-chip{top:136px;left:11px;min-height:37px;height:37px;max-width:calc(100% - 79px);border:solid transparent;border-width:7px 13px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;background:none;border-radius:0;box-shadow:none;padding:0 2px;font-size:11px;gap:6px}
#game .side-actions{top:178px;right:6px;gap:5px}
#game .side-actions button{position:relative;display:block;width:63px;height:96px;min-height:96px;flex:none;padding:0;border:0;box-shadow:none;background:url('assets/ui-art-v45/entry-plaque.webp') center/contain no-repeat;color:#55452f}
/* The paper sits left of the full image center because the tassel extends right. */
#game .side-icon{position:absolute;left:41%;top:35%;transform:translateX(-50%);width:24px;height:24px;display:grid;place-items:center}
#game .side-icon .icon-image{width:24px;height:24px}
#game .side-label{position:absolute;left:41%;top:64%;transform:translateX(-50%);display:block;width:29px;font:600 12px/16px var(--serif);text-align:center;white-space:nowrap}
#game .map-tools{gap:5px;left:9px;background:none;border:0;box-shadow:none;padding:0}
#game .map-tools button{width:33px;height:33px;border:0;border-radius:0;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;box-shadow:none;color:#795734;font-size:21px}
#game .map-tools button+button{border:0}
#game.is-watching .map-tools{top:174px;right:12px;left:auto;bottom:auto}
#game .business-bar{height:72px;bottom:calc(var(--nav-height) + 2px + env(safe-area-inset-bottom));left:5px;right:5px;gap:8px;padding:8px 16px 8px 19px;border:solid transparent;border-width:12px 15px;border-image:var(--art-scroll) 58 82 60 83 fill stretch;background:none;border-radius:0;box-shadow:none}
#game .stock-all{height:47px;min-height:47px;width:134px;border-width:8px 12px;padding:0 2px;font-size:16px;gap:0}
#game .stock-all small{font-size:9px;line-height:12px}
#game .stock-all>span{letter-spacing:1px;line-height:21px}
#game .daily-income>span:first-child{gap:5px;font-size:11px;line-height:15px}
#game .daily-income>span:first-child small{font-size:10px}
#game .daily-income>strong{font-size:21px;line-height:23px;margin-top:1px}
#game .income-track{margin-top:2px;height:2px}
#game .house-caption{top:100%;gap:7px;border:solid transparent;border-width:13px 14px 9px;border-image:url('assets/ui-art-v45/shop-sign.webp') 105 100 45 100 fill stretch;background:none;box-shadow:none;padding:0 2px;min-height:46px;z-index:10}
#game .house-name{font-size:27px;line-height:26px;gap:5px;color:#51442d}
#game .house-name small{font-size:17px}
#game .shop-status{border:0;background:none;padding:0;box-shadow:none;font-size:21px;color:#84755a}
#game .shop-status.open{background:none;color:#5e754c}
#game .shop-status.resting{background:none;color:#9b694c}
#game #shop-watch{border:solid transparent;border-width:12px 16px;border-image:var(--art-scroll) 58 82 60 83 fill stretch;background:none;box-shadow:none;top:85px;left:5px;right:5px;padding:2px 0;gap:5px;min-height:78px}
#game #shop-watch>button{height:34px;width:32px;min-width:32px;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;font-size:23px}
#game #shop-watch>.watch-close{background:none;border:0;width:62px;min-width:62px;font:12px/17px var(--serif);padding:0 4px;color:#8c533c}
#game #watch-name{font-size:18px;line-height:24px}
#game #watch-status{font-size:11px;line-height:16px}
@media(max-width:380px){
 #game .sheet{padding-inline:27px}
 #game .sheet-header{left:27px;right:27px}
 #game .sheet-header h2{font-size:21px;max-width:190px}
 #game .sheet .shop-card{grid-template-columns:75px minmax(0,1fr);gap:6px}
 #game .sheet .shop-thumb{width:75px;height:95px}
 #game .sheet .shop-card h3{font-size:16px;line-height:22px}
 #game .sheet .card-actions button{font-size:10px;border-inline-width:6px}
 #game .collection-card h3{font-size:15px}
 #game .resource{min-width:157px}
 #game .stock-all{width:123px;font-size:15px}
 #game .business-bar{padding-inline:12px}
}
@media(max-height:720px){
 #game .sheet{padding-top:100px;padding-bottom:49px}
 #game #sheet-art{border-top-width:132px;border-bottom-width:66px}
 #game .sheet-header{top:38px;min-height:56px;padding:0}
 #game .sheet-header h2{font-size:21px;line-height:26px}
 #game .sheet-header>div{gap:11px}
 #game .sheet-content{padding-top:7px}
 #game .sheet-footer{padding-top:10px}
 #game .city-title{top:74px}
 #game .quest-chip{top:128px}
 #game .side-actions{top:170px}
 #game .business-bar{height:69px}
 #game #sheet-content .evolution .stage-art{height:52px}
 #game #sheet-content .evolution{min-height:116px}
}
@media(max-height:620px){
 #game .side-actions{top:104px;gap:4px}
 #game .side-actions button{width:56px;height:86px;min-height:86px}
 #game .side-icon,#game .side-icon .icon-image{width:20px;height:20px}
 #game .side-label{width:24px;font-size:11px;line-height:14px}
}

/* art-v46.css */
/* One shared watercolor palette and consistent image containment. */
#game .icon-image,#game .item-image{width:100%;height:100%;object-fit:contain;display:block}
#game .nav-icon{width:43px;height:41px;display:grid;place-items:center;overflow:visible}
#game .nav-icon .icon-image{width:43px;height:41px;filter:none}
#game .bottom-nav button{gap:3px}
#game .bottom-nav button>span:last-of-type{font-size:13px;line-height:18px;text-align:center}
#game .side-icon{width:30px;height:30px;top:30%}
#game .side-icon .icon-image{width:30px;height:30px}
#game .side-label{top:65%;line-height:17px}
#game .copper,#game .flower-mark,#game .sun{display:block;width:25px;height:25px;background:none;border:0;box-shadow:none;flex:none}
#game .copper:after,#game .sun:after,#game .sun:before{display:none}
#game .copper img,#game .flower-mark img,#game .sun img{width:100%;height:100%;object-fit:contain}
#game .weather .sun{width:31px;height:31px}
#game .map-tools button img{width:30px;height:30px;object-fit:contain}
#game .city-seal,#game .city-emblem{width:57px;height:57px}
#game .city-label{top:74%;font-size:10px;line-height:12px;letter-spacing:0}
#game .collection-art>.item-image{max-width:100%;margin:auto}
#game .mini-icon{width:60px;height:60px;flex:none}
#game .product-picker{display:flex;gap:10px;margin:8px 0 17px}
#game .product-choice{display:flex;flex:1;max-width:148px;min-height:112px;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:9px 12px;border:0;border-bottom:2px solid #ab956966;background:#b5b58a12;color:#64523a}
#game .product-choice.selected{border-bottom-color:#a75339;background:#c3b88d30;color:#8e432e}
#game .product-choice img{width:70px;height:67px}
#game .product-choice span{font-size:13px;line-height:19px}
#game .product-choice:disabled{opacity:.54}
#game .goods-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 10px;margin-top:13px}
#game .goods-card{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:5px;min-width:0;min-height:160px;padding:12px 8px 14px;background:#bfb38712;border:0;border-bottom:1px solid #b2a27877;color:#55412c}
#game .goods-card img{width:95px;height:100px}
#game .goods-card strong{font:600 16px/23px var(--serif)}
#game .goods-card small{font:12px/18px var(--sans);color:#857354}
#game .map-stock-item{position:absolute;pointer-events:none;object-fit:contain;z-index:1}
#game .house-caption{max-width:none;min-width:175px;font-size:14px;line-height:20px}
#game .house-caption .house-name{display:flex;align-items:center;gap:4px}
#game .map-house{filter:none}
#game .terrain{left:0;width:100%;height:100%}
#game .person-talk{font-size:14px;padding:3px 6px}
#game .empty-lot{filter:none}
#game .sheet p{line-height:1.65}
#game .sheet :is(strong,b){font-variant-numeric:tabular-nums;font-feature-settings:"kern" 1}
@media(max-width:375px){#game .sheet{padding-left:24px;padding-right:24px}#game .nav-icon{width:38px;height:38px}#game .nav-icon .icon-image{width:38px;height:38px}#game .product-choice{padding:7px}}

/* art-v47.css */
#game .terrain{left:0;top:0;width:100%;height:100%;filter:none}
#game .map-house,#game .empty-lot{filter:none}
#game .person-body>.sprite-window{height:var(--actor-art-height,78px);width:calc(var(--actor-art-height,78px) * var(--sprite-ratio))}
#game .town-staff .person-body>.sprite-window{height:var(--actor-art-height,74px);width:calc(var(--actor-art-height,74px) * var(--sprite-ratio))}
#game .person-talk{font-size:13px;padding:3px 5px;line-height:1.4;max-width:135px;white-space:normal;text-align:center}
#game .person-shadow{left:25px;right:25px;height:5px;background:#554b3422}
#game .house-caption{background:none;box-shadow:none;border:0;top:98%;padding:3px 4px;min-width:150px}
#game .house-name{background:#f5e9cec9;border-bottom:1px solid #aa906677;padding:2px 6px;font-size:19px;line-height:24px}
#game .shop-status{font-size:14px;line-height:20px}
#game .map-stock-item{width:8%!important;height:10%!important;transform:translate(16%,15%)}
#game .water-light{display:none}
#game .portrait>.sprite-window,#game .profile .portrait .sprite-window{width:105px!important;height:105px!important;left:calc(50% - 65.5px);top:1px}

/* people-motion-v47.css */
#game .town-person.motion-ready{will-change:transform;backface-visibility:hidden}
#game .motion-cell{display:block;position:absolute;overflow:hidden;pointer-events:none;will-change:opacity;isolation:isolate}
#game .motion-cell img{position:absolute;max-width:none;user-select:none;pointer-events:none}
#game .motion-ready .person-body{transform-origin:50% 100%}

/* spine-v49.css */
#game .spine-person-canvas{position:absolute;bottom:-1px;left:50%;width:96px;height:90px;transform:translateX(-50%);pointer-events:none}
#game .spine-person .person-body{transform:none!important}
/* The unchanged source animation already includes its grounded shadow slot. */
#game .spine-person .person-shadow{display:none}
#game .spine-portrait{width:100%;height:100%;object-fit:contain;display:block}

#game .coin-float{z-index:3000000}

/* dialogue-v492.css */
#town-dialogues{position:absolute;inset:0;z-index:2000000;pointer-events:none}
#town-dialogues[hidden]{display:none}
.town-dialogue{position:absolute;display:block;width:max-content;box-sizing:border-box;padding:8px 13px;color:#5b4934;background:#fff7e5;box-shadow:0 2px 5px #493e2d28;border:1.6px solid #9d8764;border-radius:14px 13px 15px 5px;font:25px/1.45 var(--serif);text-align:center;overflow-wrap:anywhere;animation:dialogue-appear .2s ease-out}
.town-dialogue:after{content:"";position:absolute;left:48%;bottom:-7px;width:11px;height:11px;background:#fff7e5;border-right:1.6px solid #9d8764;border-bottom:1.6px solid #9d8764;transform:rotate(45deg)}
.clerk-dialogue{color:#425345;background:#eef2df;border-color:#879579}
.clerk-dialogue:after{background:#eef2df;border-color:#879579}
@keyframes dialogue-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.town-dialogue{animation:none}}

/* museum-v414.css */
/* A fixed-scale, illustrated overworld. Only the world plane pans. */
#game .museum-entry{position:absolute;right:13px;top:125px;z-index:160;display:flex;align-items:center;justify-content:center;gap:5px;min-height:41px;width:106px;border:solid transparent;border-width:7px 10px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 44 80 fill stretch;color:#485b43;font:600 14px/20px var(--serif);filter:drop-shadow(0 2px 1px #3d35282b)}
#game .museum-entry img{width:24px;height:23px;object-fit:contain;flex:none}
#game .museum-entry span{white-space:nowrap}
.museum-layer{position:absolute;inset:0;z-index:620;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);font:14px/1.5 var(--sans);font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility;color:#324e42;background:#e7e2c8}
.museum-layer[hidden],.museum-layer [hidden]{display:none!important}
.museum-shell{position:relative;isolation:isolate;min-width:0;min-height:0;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;border:5px solid #706d50;box-shadow:inset 0 0 0 2px #d9cc9f}
.museum-header{position:relative;z-index:15;flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;height:90px;padding:9px 32px 10px;background:#f3ecd2 url('assets/ui-art-v45/resource-scroll.webp') center/100% 100% no-repeat;filter:drop-shadow(0 3px 3px #263e3b35)}
.museum-header p{font:11px/17px var(--sans);color:#738069;margin:0 0 3px}
.museum-header h2{font:600 28px/35px var(--serif);letter-spacing:3px;margin:0}
.museum-close,.museum-detail-close{flex:none;width:38px;height:38px;display:grid;place-items:center;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;color:#745239;font:25px/1 var(--sans)}
.museum-map-viewport{position:relative;flex:1;min-height:0;min-width:0;overflow:hidden;touch-action:none;cursor:grab;background:#d9dfbf;outline:none}
.museum-map-viewport:active{cursor:grabbing}
.museum-map-viewport:focus-visible{box-shadow:inset 0 0 0 3px #967249}
.museum-map-plane{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;user-select:none}
.museum-geography,.museum-roads,.museum-mist,.museum-pins,.museum-gates,.museum-region-labels{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.museum-geography{object-fit:fill}
.museum-roads path{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:3 10}
.museum-roads .opened{stroke:#efd797;opacity:.8}
.museum-roads .available{stroke:#a96639;opacity:.75}
.museum-roads .waiting{stroke:#a48c60;opacity:.25}
.museum-mist{transition:opacity .5s}
.museum-region-name{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;color:#3d5c46;font:600 28px/1.25 var(--serif);letter-spacing:5px;text-shadow:0 1px 2px #fcf6dc,1px 0 3px #fbf3d9,-1px 0 3px #fbf3d9}
.museum-region-name small{font:11px/20px var(--sans);letter-spacing:1px;color:#617159}
.museum-region-name.veiled{opacity:.55}
.museum-pin{position:absolute;transform:translate(-50%,-65%);width:155px;min-height:135px;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;pointer-events:auto;color:#3f5742;filter:drop-shadow(0 3px 2px #253c3438)}
.museum-pin-art{--art-size:92px;position:relative;display:grid;place-items:center;width:118px;height:98px;padding-bottom:10px;transition:transform .18s}
.museum-pin-art:before{content:"";position:absolute;inset:auto 10px 0;height:18px;background:radial-gradient(ellipse,#34544765 8%,#ddd3a578 45%,transparent 70%);transform:scaleX(1.15)}
.museum-pin-art .museum-icon-cutout{position:relative;z-index:1}
.museum-pin-label{position:relative;display:grid;place-items:center;min-height:29px;min-width:115px;max-width:155px;padding:4px 8px;border:solid transparent;border-width:5px 9px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 44 80 fill stretch;font:600 13px/17px var(--serif);white-space:nowrap}
.museum-pin-state{font:11px/18px var(--sans);color:#596648;background:#f3ecd3e8;padding:0 9px;border-radius:0 0 9px 9px}
.museum-pin.visited .museum-pin-state{color:#f7eed0;background:#61795dde}
.museum-pin.selected .museum-pin-art,.museum-pin:hover .museum-pin-art{transform:translateY(-4px)}
.museum-start{position:absolute;right:2px;top:27px;font:12px/18px var(--serif);background:#9a4b37;color:#fdf1d2;writing-mode:vertical-rl;padding:5px 3px;clip-path:polygon(0 0,100% 0,100% 100%,50% 90%,0 100%)}
.museum-pin:focus-visible,.museum-gate:focus-visible{outline:2px solid #8e4a31;outline-offset:3px;border-radius:12px}
.museum-gate{position:absolute;transform:translate(-50%,-55%);width:112px;min-height:132px;display:flex;align-items:center;flex-direction:column;pointer-events:auto;color:#52654e;filter:drop-shadow(0 2px 1px #4c5c4325)}
.museum-gate-symbol{display:block;width:91px;height:84px;opacity:.85}
.museum-gate-symbol svg{display:block;width:100%;height:100%}
.museum-gate-name{font:600 18px/26px var(--serif);letter-spacing:2px;text-shadow:0 1px 3px #fff9e7}
.museum-gate-state{font:11px/18px var(--sans);padding:1px 8px;background:#f9f1d5d9;border-radius:12px}
.museum-gate.distant{opacity:.58}
.museum-gate.distant .museum-gate-symbol{opacity:.5}
.museum-gate.ready .museum-gate-state{background:#9a543d;color:#fff3d6}
.museum-gate.ready .museum-gate-symbol{opacity:1;filter:drop-shadow(0 0 5px #f1cd7099)}
.museum-location-tag{position:absolute;left:13px;top:14px;z-index:8;display:flex;align-items:center;gap:6px;padding:5px 10px;background:#f5eed7ec;border-radius:3px 14px 14px 3px;box-shadow:0 2px 5px #32452e27;color:#496046;font:13px/19px var(--serif);pointer-events:none}
.museum-location-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#a85a3d;box-shadow:0 0 0 3px #ad694322}
.museum-home{position:absolute;right:12px;top:13px;z-index:8;display:flex;align-items:center;gap:4px;justify-content:center;min-height:36px;min-width:99px;padding:3px;border:solid transparent;border-width:5px 8px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 44 80 fill stretch;color:#506147;font:13px/20px var(--serif)}
.museum-home span{font:20px/1 var(--sans)}
.museum-pan-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:7;margin:0;padding:4px 12px;color:#fdf4dc;font:11px/17px var(--sans);background:#486451bd;border-radius:20px;white-space:nowrap;pointer-events:none;box-shadow:0 1px 4px #35463726}
.museum-pan-hint span{padding-inline:4px;color:#e7e4c5}
.museum-footer{position:relative;z-index:20;flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:79px;padding:12px 35px;background:#f3e9cc url('assets/ui-art-v45/business-scroll.webp') center/100% 100% no-repeat;filter:drop-shadow(0 -2px 3px #36483d30)}
.museum-journey-copy{min-width:0}
.museum-journey-copy p{margin:0 0 2px;font:600 15px/22px var(--serif);color:#584e34}
#museum-progress{font:11px/18px var(--sans);color:#7a785d;font-variant-numeric:tabular-nums}
.museum-route-toggle{flex:none;min-height:36px;padding:3px 2px 3px 10px;font:15px/22px var(--serif);color:#6c6044}
.museum-route-menu{position:absolute;right:17px;bottom:calc(100% + 8px);min-width:143px;max-height:330px;overflow:auto;background:#f6eed7f5;border-radius:5px;box-shadow:0 4px 17px #20352d45;padding:8px;border:1px solid #9d8c5b}
.museum-route-menu button{display:flex;justify-content:space-between;gap:30px;width:100%;padding:8px 12px;font:15px/20px var(--serif);color:#4f634b}
.museum-route-menu button:hover{background:#dce2c7}
.museum-route-menu span{font:11px/20px var(--sans);color:#898868}
.museum-detail{position:absolute;z-index:18;left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:10px;padding:23px 16px 19px;cursor:default;max-height:calc(100% - 65px);overflow:auto;background:#f7eed6f5;border-radius:8px 18px 8px 18px;box-shadow:0 5px 18px #293e3645,inset 0 0 0 1px #c4b388;touch-action:pan-y;scrollbar-width:thin}
.museum-detail:before{content:"";position:absolute;left:14px;right:14px;top:7px;height:5px;border-top:1px solid #b3a16c;border-bottom:1px solid #b3a16c;pointer-events:none}
.museum-detail-close{position:absolute;top:8px;right:8px;width:29px;height:29px;font-size:20px;z-index:2}
.museum-detail-art{--art-size:82px;display:grid;place-items:center;min-height:110px}
.museum-detail-gate{width:84px}
.museum-detail-kicker{font:10px/16px var(--sans);color:#8b866b;margin:0 25px 4px 0}
.museum-detail h3{font:600 20px/27px var(--serif);color:#395344;margin:0 17px 3px 0}
.museum-detail h4{font:500 13px/20px var(--sans);color:#9e653e;margin:0 0 5px}
.museum-story{font:12px/19px var(--sans);margin:0 0 8px;color:#6e745c;max-width:30ch}
.museum-requirement{font:11px/18px var(--sans);color:#966d41;margin:5px 0 9px}
.museum-detail-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.museum-primary{min-height:37px;min-width:112px;padding:1px 4px;border:solid transparent;border-width:6px 9px;border-image:url('assets/ui-art-v45/button-primary.webp') 44 80 44 80 fill stretch;display:inline-grid;place-items:center;color:#fff1d4;font:14px/19px var(--serif);white-space:nowrap}
.museum-primary:disabled{border-image-source:url('assets/ui-art-v45/button-secondary.webp');color:#869176;cursor:default}
.museum-detail-actions a{font:11px/18px var(--sans);color:#747e64;text-decoration:none;white-space:nowrap}
.museum-detail-actions a:hover{text-decoration:underline;text-underline-offset:3px}
.museum-icon-cutout{position:relative;display:block;overflow:hidden;flex:none;width:calc(var(--art-size)*var(--fit-w));height:calc(var(--art-size)*var(--fit-h));pointer-events:none}
.museum-icon-cutout img{position:absolute;display:block;max-width:none;object-fit:fill;pointer-events:none}
.museum-toast{position:absolute;top:62px;left:50%;transform:translateX(-50%);z-index:30;max-width:calc(100% - 32px);width:max-content;padding:9px 15px;border-radius:6px;color:#fff5dc;background:#475f4ae8;box-shadow:0 3px 10px #2a493730;font:12px/19px var(--sans);pointer-events:none}
@media(max-width:380px){#game .museum-entry{width:97px;right:9px;font-size:13px;gap:3px}.museum-header{padding-inline:28px;height:80px}.museum-header h2{font-size:26px}.museum-footer{padding-inline:29px;min-height:75px}.museum-journey-copy p{font-size:13px}.museum-detail{grid-template-columns:69px minmax(0,1fr);gap:8px;padding-inline:12px}.museum-detail-art{--art-size:68px}.museum-detail-gate{width:69px}.museum-detail h3{font-size:18px}.museum-home{font-size:12px;min-width:91px}.museum-location-tag{font-size:12px}}
@media(max-height:720px){#game .museum-entry{top:117px;height:36px;min-height:36px}.museum-header{height:75px}.museum-header h2{font-size:25px;line-height:30px}.museum-footer{min-height:70px;padding-block:8px}.museum-detail{padding-top:21px;padding-bottom:12px;bottom:7px}.museum-story{font-size:11px;line-height:17px}.museum-detail h3{font-size:18px;line-height:23px}}
@media(prefers-reduced-motion:reduce){.museum-pin-art,.museum-mist{transition:none}}
/* The travel scroll uses the user's qinglv-shanshui references. */
.museum-shell{border-color:#284d46;box-shadow:inset 0 0 0 1px #a99155}
.museum-header{height:88px;background:linear-gradient(110deg,#264e48,#173b38);border-bottom:2px solid #aa905d;padding-inline:23px;box-shadow:inset 0 0 0 1px #98a27645}
.museum-header:after{content:"";position:absolute;inset:6px;pointer-events:none;border:1px solid #ba9c5b60;clip-path:polygon(0 0,35% 0,35% 2px,2px 2px,2px 100%,0 100%,0 0,100% 0,100% 100%,80% 100%,80% calc(100% - 2px),calc(100% - 2px) calc(100% - 2px),calc(100% - 2px) 2px,100% 2px)}
.museum-header p{color:#aebc9d;letter-spacing:1px}
.museum-header h2{color:#f7e7b6;font-weight:500;letter-spacing:5px}
.museum-header h2:focus{outline:none}
.museum-close:focus-visible,.museum-detail-close:focus-visible{outline:none;border-radius:50%;box-shadow:0 0 0 2px #edd39b}
.museum-footer{padding-inline:43px}
.museum-region-name{writing-mode:vertical-rl;display:block;padding:11px 7px;font:500 25px/29px var(--serif);letter-spacing:3px;color:#f5e5b0;background:#244c43dd;text-shadow:none;border:1px solid #9d915d90;clip-path:polygon(5% 0,96% 2%,100% 93%,90% 100%,4% 98%,0 6%);box-shadow:0 2px 4px #25463433}
.museum-region-name small{display:block;font:10px/16px var(--sans);letter-spacing:2px;color:#cbd4ac;margin-right:4px}
.museum-region-name.veiled{background:#6378618c;color:#ecedd6;border-color:#b7b69480;opacity:.72}
.museum-pin{width:146px;height:143px;min-height:143px;display:grid;grid-template-columns:111px 32px;grid-template-rows:112px 23px;gap:0;align-items:center;justify-items:center;transform:translate(-50%,-58%)}
.museum-pin-art{--art-size:98px;width:111px;height:112px;padding-bottom:9px;grid-row:1;grid-column:1}
.museum-pin-label{writing-mode:vertical-rl;min-width:0;min-height:0;max-width:none;width:30px;height:auto;max-height:138px;padding:8px 5px;font:500 14px/19px var(--serif);letter-spacing:1px;grid-row:1 / 3;grid-column:2;align-self:center;color:#263e34;background:#f9efd5e8;border:0;border-image:none;border-radius:2px 5px 2px 5px;box-shadow:0 1px 2px #2d4d352b;clip-path:polygon(3% 0,98% 2%,100% 95%,85% 100%,0 98%)}
.museum-pin-state{grid-row:2;grid-column:1;font-size:10px;background:#f5edd4df}
.museum-start{right:auto;left:-3px;top:13px;font-size:11px}
.museum-location-tag{color:#f0e5bd;background:#2c5348df}
.museum-pan-hint{background:#285348c7;color:#f8edc9}
@media(max-height:720px){.museum-header{height:76px}}

/* V4.12: illustrated atlas, with floating art and the shared town navigation. */
.atlas-piece{position:relative;display:block;overflow:hidden;flex:none;width:calc(var(--art-size)*var(--piece-w));height:calc(var(--art-size)*var(--piece-h));pointer-events:none}
.atlas-piece img{position:absolute;display:block;max-width:none;object-fit:fill;pointer-events:none}
.atlas-fallback{display:block;width:var(--art-size);height:auto;pointer-events:none}
#game .bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr));padding-inline:18px;gap:0}
#game .bottom-nav button{font-size:13px;letter-spacing:0}
#game .nav-icon{width:42px;height:43px}
#game .nav-icon .icon-image,#game .museum-nav-art img{width:40px;height:41px;object-fit:contain;display:block}
.museum-layer{background:#24473c}
.museum-shell{display:block;border:0;box-shadow:none;background:#264d43}
.museum-map-viewport{position:absolute;inset:0;width:100%;height:100%;background:#264d43}
.museum-header{position:absolute;left:10px;top:8px;z-index:15;display:block;width:auto;height:auto;padding:0;border:0;background:none;box-shadow:none;filter:none;pointer-events:none}
.museum-header:after{display:none}
.museum-header h2{--art-size:200px;font:inherit;margin:0;padding:0}
.museum-home{top:17px;right:17px;z-index:17;display:flex;flex-direction:column;gap:0;width:44px;height:58px;min-width:0;min-height:0;padding:0;border:0;border-image:none;background:none;color:#f8e9b5;filter:drop-shadow(0 1px 2px #223e31)}
.museum-home span{display:grid;place-items:center;flex:none;width:38px;height:38px;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;font:25px/1 var(--serif);color:#704a25}
.museum-home small{font:12px/19px var(--serif);white-space:nowrap;text-shadow:0 1px 2px #213f35,0 0 4px #213f35}
.museum-location-tag{display:none}
.museum-corner{--art-size:200px;position:absolute;z-index:6;pointer-events:none;opacity:.95}
.museum-corner-left{left:0;bottom:75px}
.museum-corner-right{right:0;top:0;transform:rotate(180deg)}
.museum-footer{position:absolute;left:16px;bottom:104px;z-index:20;display:block;width:auto;min-height:0;padding:0;background:none;filter:none}
.museum-route-toggle{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-height:48px;padding:0;color:#f8e9bc;font:17px/23px var(--serif);text-shadow:0 1px 2px #193e32,0 0 4px #193e32}
.museum-journal-art{--art-size:48px;display:grid;place-items:center;width:48px;height:48px}
.museum-journal-copy{display:flex;flex-direction:column;align-items:flex-start}
#museum-progress{color:#f6e7bf;font:11px/18px var(--sans);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #193e32,0 0 4px #193e32}
.museum-route-menu{left:-1px;right:auto;bottom:calc(100% + 9px);width:240px;max-height:min(360px,55vh);padding:14px 10px;box-shadow:0 4px 17px #20352d65;border-radius:2px 10px 2px 10px;background:#eee3c5;border-color:#8d754a}
#museum-next{margin:0 8px 8px;padding-bottom:9px;border-bottom:1px solid #b3a17c;color:#6b6449;font:13px/20px var(--serif)}
.museum-return{--art-size:119px;position:absolute;right:10px;bottom:111px;z-index:20;display:grid;place-items:center;padding:0;width:119px;min-height:46px;border:0;background:none;filter:drop-shadow(0 2px 2px #1e352640)}
.museum-return:focus-visible,.museum-route-toggle:focus-visible,.museum-home:focus-visible{outline:2px solid #ffdf9b;outline-offset:3px;border-radius:8px}
.museum-pan-hint{bottom:83px;left:50%;z-index:10;padding:0;background:none;box-shadow:none;color:#f4e6b4;font:11px/18px var(--serif);letter-spacing:1px;text-shadow:0 1px 3px #1e4638,0 0 4px #1e4638}
#game .museum-world-nav{z-index:25}
#game .museum-world-nav .museum-nav-frame{position:absolute;inset:0;z-index:-1;pointer-events:none;border:solid transparent;border-width:16px 23px 14px;border-image:url('assets/nav-frame-v45.webp') 70 85 65 80 fill stretch;overflow:visible}
#game .museum-nav-frame>.sprite-window{display:none}
.museum-realm-art{--art-size:150px;position:absolute;display:grid;place-items:center;width:150px;min-height:95px;transform:translate(-50%,-50%);padding:0;pointer-events:auto;filter:drop-shadow(0 2px 2px #32524325)}
.museum-gate{width:184px;min-height:142px;transform:translate(-50%,-55%);justify-content:flex-end;filter:none;color:#455743}
.museum-city-art{--art-size:184px;display:grid;place-items:center;width:184px;min-height:118px;transition:transform .2s ease}
.museum-gate:hover .museum-city-art{transform:translateY(-3px)}
.museum-gate.distant{opacity:.76}
.museum-gate-state{font:12px/19px var(--serif);padding:0 8px;background:none;border-radius:0;text-shadow:0 1px 3px #fff1c7,0 0 5px #fff1c7}
.museum-gate.ready .museum-gate-state{color:#763e22;background:none;font-weight:600}
.museum-gate.ready .museum-city-art{filter:drop-shadow(0 0 4px #ffda7977)}
.museum-pin{width:135px;height:132px;min-height:132px;grid-template-columns:99px 34px;grid-template-rows:107px 23px;transform:translate(-50%,-58%);filter:none}
.museum-pin-art{--art-size:82px;width:99px;height:105px;padding-bottom:9px}
.museum-pin-art:before{inset:auto 4px 0;height:14px;opacity:.7}
.museum-pin-label{--art-size:122px;position:relative;display:grid;place-items:center;width:32px;height:122px;max-height:none;padding:0;background:none;border:0;box-shadow:none;clip-path:none;writing-mode:initial;color:#f9efd4;font:500 13px/17px var(--serif);letter-spacing:1px}
.museum-pin-label>.atlas-piece{position:absolute;inset:0;width:32px;height:122px}
.museum-pin-label>span:last-child{position:relative;writing-mode:vertical-rl;white-space:nowrap;max-height:111px;text-shadow:0 1px 1px #153b31}
.museum-pin-state,.museum-pin.visited .museum-pin-state{color:#304e3c;background:none;padding:0 5px;border-radius:0;font:11px/19px var(--serif);text-shadow:0 1px 3px #fef3d0,0 0 4px #fef3d0}
.museum-pin.visited .museum-pin-state:before{content:'✓ ';color:#49623c}
.museum-start{left:-4px;top:21px;background:#965c3c;box-shadow:0 1px 2px #3f4b2d30}
.museum-detail{z-index:22;bottom:108px;left:12px;right:12px;max-height:calc(100% - 190px);background:#f7eed6fa}
.museum-detail-gate{--art-size:90px;width:90px;display:grid;place-items:center}
.museum-toast{top:87px;background:#294e42ed}
@media(min-width:760px){
 .museum-layer{position:fixed;inset:0;width:min(100vw,1440px);margin-inline:auto}
 .museum-header{left:26px;top:16px}.museum-header h2{--art-size:250px}
 .museum-home{top:24px;right:28px}.museum-corner{--art-size:265px}
 .museum-footer{left:26px;bottom:28px}.museum-return{right:26px;bottom:38px;--art-size:155px;width:155px}
 #game .museum-world-nav{width:460px;max-width:calc(100vw - 32px);left:50%;right:auto;transform:translateX(-50%)}
 .museum-corner-left{bottom:0}.museum-pan-hint{bottom:100px}
 .museum-detail{max-width:465px;left:50%;right:auto;width:calc(100% - 28px);transform:translateX(-50%);bottom:110px}
}
@media(max-width:380px){
 #game .bottom-nav{padding-inline:13px}#game .bottom-nav button{font-size:12px}#game .nav-icon{width:36px;height:40px}#game .nav-icon .icon-image,#game .museum-nav-art img{width:35px;height:38px}
 .museum-header h2{--art-size:177px}.museum-header{left:7px;top:9px}.museum-home{right:12px;top:15px}
 .museum-footer{left:9px}.museum-return{right:4px;--art-size:105px;width:105px}.museum-journal-art{--art-size:43px;width:43px}
 .museum-detail-gate{--art-size:72px;width:72px}
}
@media(max-width:759px){.museum-pan-hint{display:none}}
@media(max-height:720px) and (max-width:759px){.museum-footer{bottom:102px}.museum-return{bottom:108px}.museum-detail{bottom:108px;max-height:calc(100% - 178px)}.museum-corner{--art-size:174px}}
@media(prefers-reduced-motion:reduce){.museum-city-art{transition:none}}

/* V4.13: architecture belongs to the painted landscape; markers stay small. */
.museum-city-site{position:absolute;transform:translate(-50%,-50%);width:166px;height:106px;min-height:0;padding:0;pointer-events:auto;background:none;border:0;filter:none}
.museum-region-slip{--art-size:59px;position:absolute;right:0;top:7px;display:grid;place-items:center;width:28px;height:61px;filter:drop-shadow(0 1px 1px #23433822)}
.museum-city-site[data-museum-region="shu"] .museum-region-slip{left:4px;right:auto;top:15px}
.museum-city-status{position:absolute;bottom:-4px;left:18px;right:12px;color:#304d3c;text-shadow:0 1px 2px #f5eccb,0 0 4px #eee3bc;font:12px/18px var(--serif);white-space:nowrap}
.museum-city-site.ready .museum-city-status{color:#794522}
.museum-city-site:hover .museum-region-slip{filter:drop-shadow(0 0 3px #e9ca7b)}
.museum-city-site:focus-visible{outline:2px solid #a46f36;outline-offset:4px;border-radius:45%}
.museum-pin{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:104px;height:79px;min-height:79px;gap:0;transform:translate(-50%,-50%);filter:none}
.museum-pin-art{--art-size:44px;display:grid;place-items:center;flex:none;width:56px;height:45px;padding:0;filter:saturate(.83)}
.museum-pin-art:before{inset:auto 7px -2px;height:7px;opacity:.45;background:radial-gradient(ellipse,#35513a85,transparent 70%)}
.museum-pin-label{display:block;position:static;writing-mode:horizontal-tb;min-width:0;max-width:110px;width:auto;height:19px;min-height:19px;max-height:19px;padding:0 3px;border:0;background:none;box-shadow:none;clip-path:none;color:#263f31;font:600 12px/19px var(--serif);letter-spacing:0;white-space:nowrap;text-shadow:0 1px 2px #fff4d8,0 0 5px #f0e9ce}
.museum-pin-state,.museum-pin.visited .museum-pin-state{font:10px/14px var(--serif);padding:0;color:#456148;text-shadow:0 1px 3px #faf0d3}
.museum-pin.selected .museum-pin-art,.museum-pin:hover .museum-pin-art{transform:translateY(-2px)}
.museum-wallet{position:absolute;top:63px;left:18px;z-index:16;display:flex;align-items:center;gap:5px;min-height:34px;padding:2px 9px 2px 3px;border:1px solid #b99e6590;border-radius:18px;background:#f6edcee8;color:#375143;font:12px/20px var(--serif);box-shadow:0 1px 4px #26422f20}
.museum-wallet strong{display:inline-block;min-width:22px;margin-left:6px;font:600 15px/20px var(--sans);font-variant-numeric:tabular-nums}
.museum-currency-art{--art-size:26px;display:grid;place-items:center;width:28px;height:28px;flex:none}
.museum-unlock-cost{display:flex;align-items:center;gap:8px;margin:10px 0 12px;font:13px/20px var(--serif);color:#71512a}
.museum-unlock-cost strong{margin-left:5px;font:600 18px/22px var(--sans);font-variant-numeric:tabular-nums}
.museum-unlock-cost small{display:block;font:11px/17px var(--sans);color:#6f7759}
.museum-task-link{font:12px/18px var(--serif);color:#6d755a;padding:5px 0;text-decoration:underline;text-underline-offset:3px}
.museum-detail-actions{flex-wrap:wrap;gap:7px 12px}
.museum-primary:disabled{opacity:.58;cursor:default}
.museum-toast{top:106px}
.museum-region-aura{left:218px!important;top:410px!important;width:390px!important;height:340px!important}
@media(min-width:760px){.museum-wallet{top:88px;left:30px}}
@media(prefers-reduced-motion:reduce){.museum-pin-art{transition:none}}

/* V4.14: clear vertical ink slips and discoverable museum landmarks. */
.museum-map-plane{backface-visibility:visible}
.museum-geography{width:1536px;height:1024px;object-fit:contain;image-rendering:auto}
.museum-pin{display:grid;grid-template-columns:60px 32px;grid-template-rows:88px 20px;align-items:center;justify-items:center;justify-content:center;gap:0 3px;width:100px;height:114px;min-height:114px;transform:translate(-50%,-50%)}
.museum-pin-art{--art-size:52px;grid-column:1;grid-row:1;align-self:center;width:60px;height:60px;filter:none;padding:0;transform:none}
.museum-pin-art:before{bottom:-1px;height:7px;opacity:.3}
.museum-pin-label{--art-size:var(--tag-height);position:relative;grid-column:2;grid-row:1 / 3;display:grid;place-items:center;min-width:0;min-height:0;width:31px;height:var(--tag-height);max-height:none;max-width:none;padding:0;background:none;border:0;clip-path:none;box-shadow:none;color:#fbf2d6;text-shadow:none;font:500 13px/17px var(--serif);letter-spacing:1px;align-self:center}
.museum-pin-label>.atlas-piece{position:absolute;inset:0;width:31px;height:100%}
.museum-pin-label>span:last-child{position:relative;display:block;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;font-size:13px;line-height:17px;letter-spacing:1px;text-shadow:none;padding-bottom:3px}
.museum-pin-state,.museum-pin.visited .museum-pin-state{grid-column:1;grid-row:2;align-self:start;font:11px/18px var(--serif);color:#244333;text-shadow:none;background:#ede9cce6;border-radius:8px;padding:0 5px;white-space:nowrap}
.museum-pin.locked .museum-pin-state{color:#665a3b;background:#eee5c9ed}
.museum-pin:focus-visible{outline:2px solid #c99c4d;outline-offset:2px;border-radius:8px}
.museum-region-aura{left:233px!important;top:420px!important;width:416px!important;height:348px!important}

/* V5.1: permanent regional routes are long-term coin goals. */
.museum-coin-icon{display:block;flex:none;width:28px;height:28px;object-fit:contain}
.museum-region-detail{grid-template-columns:70px minmax(0,1fr);gap:8px 12px;padding-top:24px}
.museum-region-detail .museum-detail-gate{--art-size:70px;width:70px}
.museum-region-detail .museum-story{margin-bottom:0}
.museum-region-purchase{grid-column:1/-1;min-width:0;border-top:1px solid #b6a07888;padding-top:10px}
.museum-region-content{margin:0 0 8px;color:#60563e;font:13px/1.65 var(--sans)}
.museum-region-content strong,.museum-region-content small{display:block}
.museum-region-content strong{margin-bottom:3px;color:#405b44;font:600 15px/1.5 var(--serif)}
.museum-region-content small{margin-top:3px;font-size:11px;color:#897451}
.museum-region-detail .museum-unlock-cost{margin:9px 0;align-items:flex-start}
.museum-region-detail .museum-unlock-cost strong{white-space:nowrap;font-size:20px}
.museum-region-detail .museum-unlock-cost small{margin-top:5px;line-height:1.6;overflow-wrap:anywhere}
.museum-region-note,.museum-region-confirm{margin:8px 0 12px;color:#887249;font:11px/1.7 var(--sans)}
.museum-region-confirm{color:#7f5032;font-size:12px}
.museum-region-detail .museum-detail-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;text-align:center}
.museum-region-detail .museum-primary{min-height:42px;font-size:14px}
.museum-region-detail .museum-task-link{min-height:28px}

/* Keep the journal, return button and detail card above the navigation, which grows by the
   home-indicator safe area on notched phones (iOS in-app browsers in particular). */
@media(max-width:759px){.museum-footer{bottom:calc(104px + env(safe-area-inset-bottom))}.museum-return{bottom:calc(111px + env(safe-area-inset-bottom))}.museum-detail{bottom:calc(108px + env(safe-area-inset-bottom));max-height:calc(100% - 190px - env(safe-area-inset-bottom))}}
@media(max-height:720px) and (max-width:759px){.museum-footer{bottom:calc(102px + env(safe-area-inset-bottom))}.museum-return{bottom:calc(108px + env(safe-area-inset-bottom))}.museum-detail{bottom:calc(108px + env(safe-area-inset-bottom));max-height:calc(100% - 178px - env(safe-area-inset-bottom))}}

/* museum-aura-v4111.css */
/* Flowing gold marks the Sichuan starting region in map coordinates. */
.museum-region-aura{position:absolute;left:285px;top:400px;width:400px;height:380px;overflow:visible;pointer-events:none;user-select:none}
.museum-region-aura *{pointer-events:none}
.museum-region-aura use{fill:none;stroke-linecap:round;stroke-linejoin:round}
.shu-aura-wash{animation:shu-aura-breathe 6s ease-in-out infinite}
.shu-aura-halo{stroke:#f6c94f;stroke-width:9;opacity:.25;filter:url(#shu-aura-soft)}
.shu-aura-outline{stroke:#d3ad50;stroke-width:1.15;opacity:.66}
.shu-aura-flow{animation:shu-aura-orbit 14s linear infinite}
.shu-aura-flow-soft{stroke:#ffdd70;stroke-width:10;stroke-dasharray:23 77;opacity:.66;filter:url(#shu-aura-soft)}
.shu-aura-flow-gold{stroke:#f5d06e;stroke-width:3.2;stroke-dasharray:22 78;opacity:.94}
.shu-aura-flow-core{stroke:#fff4c4;stroke-width:1.25;stroke-dasharray:12 88;opacity:.95}
.shu-aura-flow-echo{stroke:#ffdfa0;stroke-width:1.7;stroke-dasharray:14 86;opacity:.78;animation-delay:-7s}
.museum-region-aura.is-paused *{animation-play-state:paused}
@keyframes shu-aura-orbit{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes shu-aura-breathe{0%,100%{opacity:.5}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.museum-region-aura .shu-aura-flow,.museum-region-aura .shu-aura-wash{animation:none}.shu-aura-sparks{display:none}.shu-aura-flow-soft{opacity:.25}}

/* onboarding-v415.css */
/* A guided conversation uses the game's existing portrait and paper art. */
.onboarding-layer{position:fixed;inset:0;z-index:10000;isolation:isolate;color:#334f42;font:15px/1.45 var(--sans,"Microsoft YaHei",sans-serif);font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility;touch-action:none;overflow:hidden}
.onboarding-layer[hidden]{display:none}
.onboarding-spotlight{position:absolute;border:2px solid #f9d784;border-radius:10px;box-shadow:0 0 0 100vmax #142d27a6,0 0 17px 3px #f6ce6f80;pointer-events:none;transition:box-shadow .2s}
.onboarding-layer.is-intro{background:#142d2799}
.onboarding-layer.is-intro .onboarding-spotlight{display:none}
.onboarding-card{position:absolute;width:392px;max-width:calc(100vw - 24px);padding:20px 21px 18px;border:1px solid #b99a62;border-radius:9px;background:#faf2dd;box-shadow:0 14px 45px #14251d55,inset 0 0 0 4px #e6d5b470;touch-action:pan-y;overflow:auto;overscroll-behavior:contain;outline:none}
.onboarding-card:before{content:"";position:absolute;left:18px;right:18px;top:8px;height:1px;background:#c2a46b}
.onboarding-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#796647;font-size:12px;line-height:18px;margin-bottom:13px}
.onboarding-count{font-variant-numeric:tabular-nums}
.onboarding-heading{display:flex;gap:12px;align-items:center;margin-bottom:10px}
.onboarding-avatar{flex:none;width:57px;height:57px;object-fit:contain;border:1px solid #bca875;border-radius:50%;background:#dce3cb;padding:3px}
.onboarding-speaker{margin:0 0 4px;color:#8e4c34;font:13px/18px var(--serif,serif)}
.onboarding-card h2{margin:0;font:600 22px/1.25 var(--serif,serif);letter-spacing:0;color:#254b3e}
.onboarding-copy{margin:0;line-height:1.5;overflow-wrap:anywhere;text-wrap:pretty}
.onboarding-hint{margin:10px 0 0;padding-top:10px;border-top:1px solid #c9b99177;color:#827354;font-size:12px;line-height:1.5}
.onboarding-actions{display:flex;align-items:center;gap:8px;margin-top:16px}
.onboarding-actions button{min-height:42px;padding:8px 12px;border:1px solid #b29a70;border-radius:4px;font:15px/1.3 var(--serif,serif);cursor:pointer;white-space:nowrap}
.onboarding-skip{background:none;color:#7d6b4d;border-color:transparent!important;margin-right:auto}
.onboarding-back{background:#f4ead2;color:#675c43}
.onboarding-next{background:#265645;color:#fff2cf;border-color:#265645!important;min-width:88px}
.onboarding-actions button:disabled{opacity:.4;cursor:default}
.onboarding-actions button:focus-visible,.onboarding-replay:focus-visible,.onboarding-help:focus-visible{outline:3px solid #d29132;outline-offset:3px}
.onboarding-replay{width:100%;min-height:44px;margin:12px 0;padding:8px 12px;display:flex;align-items:center;justify-content:center;gap:9px;background:#e7ecd9;border:1px solid #a5ae8b;border-radius:4px;color:#355743;font:16px/1.4 var(--serif,serif)}
.onboarding-replay img{height:25px;width:25px;object-fit:contain}
.sheet-header>div{flex:1;min-width:0}
.onboarding-help{position:absolute;left:-4px;top:6px;flex:none;width:36px;height:36px;min-height:36px;margin:0;border:0;background:url('assets/ui-art-v45/close-token.webp') center/contain no-repeat;color:#6c674d;font:18px/1 var(--serif,serif)}
.onboarding-context-note{color:#6b795c}
@media(max-width:380px){.onboarding-card{padding:18px 17px 15px}.onboarding-avatar{width:48px;height:48px}.onboarding-card h2{font-size:20px}.onboarding-actions{gap:5px}.onboarding-actions button{padding-inline:9px}}
@media(max-height:580px){.onboarding-card{padding-block:15px}.onboarding-meta{margin-bottom:7px}.onboarding-avatar{width:42px;height:42px}.onboarding-card h2{font-size:19px}.onboarding-hint{margin-top:7px;padding-top:7px}.onboarding-actions{margin-top:10px}.onboarding-copy{font-size:14px}}
@media(prefers-reduced-motion:reduce){.onboarding-spotlight{transition:none}}

/* features-v416.css */
/* V4.16: a warm paper and dark-jade system shared by the loading, account and market views. */
:root{--v16-jade:#234c3d;--v16-ink:#3e432f;--v16-gold:#b99756;--v16-paper:#fbf2dc;--v16-rust:#a14730}
.loading{overflow:hidden;backdrop-filter:none;background:#e6eadc;isolation:isolate;gap:0}
.loading-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.loading:after,.session-gate:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#123f35cf);z-index:-1;pointer-events:none}
.loading-brand{position:absolute;top:9%;left:16px;right:16px;text-align:center;color:#284d3c}
.loading-brand>span{font:12px/1.5 var(--sans);letter-spacing:3px;color:#68735b}
.loading-brand h1{font:600 clamp(40px,12vw,60px)/1.5 var(--serif);letter-spacing:7px;margin:5px 0 0;text-shadow:0 2px 0 #fff9e9}
.loading-brand p{margin:0!important;font:15px/1.6 var(--serif)!important;color:#667557!important}
.loading-bottom{position:absolute;bottom:9%;left:11%;right:11%;color:#fff4d7;font-family:var(--sans)}
.loading-status{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;margin-bottom:9px;text-shadow:0 1px 4px #153e32}
.loading-status b{font-variant-numeric:tabular-nums;font-weight:500}
#loading-progress{display:block;appearance:none;width:100%;height:12px;padding:2px;border:1px solid #e7cd8d;border-radius:12px;background:#123d33b3;overflow:hidden}
#loading-progress::-webkit-progress-bar{background:transparent}
#loading-progress::-webkit-progress-value{border-radius:8px;background:linear-gradient(90deg,#9b7333,#ffe1a2);box-shadow:0 0 8px #fce4a2}
#loading-progress::-moz-progress-bar{background:#e9c67a;border-radius:8px}
.loading-bottom>p{color:#e6ead7!important;text-align:center;margin-top:13px;font:12px/1.6 var(--serif)}
.session-gate{position:fixed;left:max(0px,calc(50% - 230px));top:0;bottom:0;width:min(460px,100vw);isolation:isolate;z-index:21000;background:#e5e8d7;overflow:hidden}
.session-entry{position:absolute;bottom:9%;left:10%;right:10%;display:grid;gap:14px;text-align:center;color:#fff3d8}
.session-entry>p{font:24px/1.3 var(--serif);margin:0}
.session-entry>small{font:12px/1.6 var(--sans)}
.session-error{font:13px/1.5 var(--sans);color:#ffe3c4}
#game .hud{top:9px;left:8px;right:8px;gap:7px;height:auto;align-items:flex-start}
#game .profile{width:58px;height:58px;padding:6px;flex:none}
#game .profile .portrait{width:46px;height:46px}
#game .profile .portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}
#game .hud-resources{display:grid;grid-template-columns:1.05fr 1fr;gap:4px;flex:1;min-width:0}
#game .resource{min-width:0;width:100%;height:30px;border:1px solid #937348;border-radius:5px;background:#fbefd5f5;box-shadow:inset 0 0 0 2px #dfc89888,0 2px 4px #233d3530;padding:3px 7px;gap:5px;display:flex;align-items:center}
#game .resource strong{font:600 13px/1.2 var(--sans);font-variant-numeric:tabular-nums}
#game .resource .copper{width:19px;height:19px}
#game .resource .plus{font-size:15px;color:#7f6139}
#game .rare-resource>img{width:22px;height:22px;object-fit:contain;flex:none}
#game .rare-resource>span{font:11px/1 var(--serif);color:#806037;margin-left:auto}
#game .resource.popularity{grid-column:1/-1;min-width:0;height:27px;padding:2px 8px;border:1px solid #7a9063;background:#eef0dbf5}
#game .resource.popularity strong{font-size:12px}
#game .resource.popularity .flower-mark{height:20px;width:23px}
#game .resource.popularity>span{font-size:11px}
.popularity-cta{margin-left:auto;color:#3c6045;font:11px/1.2 var(--serif)}
#game .weather{width:32px;flex:none;margin:0;font-size:9px;gap:0}
#game .weather .sun{width:29px;height:29px}
#game .side-actions{top:159px;right:8px;gap:7px}
#game .side-actions button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;width:59px;height:73px;min-height:73px;padding:5px 3px 6px;border:2px solid #84623d;border-radius:13px 13px 5px 5px;background:#fff0d2;box-shadow:inset 0 0 0 2px #dfbe7e,0 3px 0 #294b3c,0 4px 8px #1a372841}
#game .side-actions button:before{content:"";position:absolute;left:8px;right:8px;top:4px;height:2px;background:#bc9354}
#game .side-actions .side-icon{position:static;transform:none;display:block;width:37px;height:37px;margin:0}
#game .side-actions .side-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 0 #634d3655)}
#game .side-actions .side-label{position:static;transform:none;display:block;width:auto;height:auto;line-height:19px;color:#3e432b;text-align:center;font:600 15px/19px var(--serif)}
.news-dot{position:absolute;right:3px;top:3px;border:2px solid #ffedc8;width:9px;height:9px;background:#a94632;border-radius:50%}
.news-dot[hidden]{display:none}
.coin-float.loss-float{color:#a9412c;text-shadow:0 1px #fff3db}
.v16-primary,.v16-secondary{min-height:42px;padding:9px 15px;border:1px solid #967646;border-radius:5px;font:600 15px/1.4 var(--serif);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.v16-primary{background:#285342;color:#fff0cf;box-shadow:inset 0 0 0 2px #486951}
.v16-secondary{background:#f7ead0;color:#5d5138}
.v16-primary:disabled,.v16-secondary:disabled{opacity:.5;cursor:default}
button:focus-visible,input:focus-visible{outline:3px solid #b77828;outline-offset:3px}
#game .sheet[data-page="profile"] .sheet-content,#game .sheet[data-page="people"] .sheet-content,#game .sheet[data-page="news"] .sheet-content,#game .sheet[data-page="ranking"] .sheet-content{padding-inline:3px}
.account-hero{display:flex;gap:16px;align-items:center;padding:4px 0 18px;border-bottom:1px solid #baa36b70}
.avatar-edit{position:relative;display:block;width:82px;height:82px;border:3px solid #8c754b;border-radius:50%;padding:3px;background:#eee2bd;flex:none;overflow:hidden;cursor:pointer}
.avatar-edit>img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.avatar-edit>span{position:absolute;bottom:0;left:0;right:0;background:#274d3dd9;color:#fff0ca;font:11px/22px var(--sans);text-align:center}
.avatar-edit>input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.account-eyebrow{font:11px/1.5 var(--sans)!important;color:#98744a!important;letter-spacing:3px;margin-bottom:5px}
.account-hero h3{font:600 23px/1.35 var(--serif);color:#2f4f3e;margin:0 0 6px;overflow-wrap:anywhere}
.profile-form{margin:18px 0 8px}
.profile-form>label{font:15px/1.5 var(--serif);display:flex;justify-content:space-between;align-items:center;color:#4c563c}
.profile-form>label small{font:11px var(--sans);color:#8a8066}
.name-field{display:flex;gap:8px;margin-top:7px}
.name-field input{min-width:0;flex:1;border:1px solid #b3a079;background:#fff9e9;border-radius:4px;padding:8px 10px;font:16px/1.4 var(--serif);color:#354c37}
.form-status{font-size:11px!important;margin:5px 0 0;min-height:18px}
.account-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 0;margin:12px 0;background:#e5e4c97d;border-block:1px solid #b4a17855;text-align:center}
.account-stats>span{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#7d7355;border-left:1px solid #b4a17855}
.account-stats>span:first-child{border-left:0}
.account-stats b{font:600 21px/1.3 var(--serif);color:#315341;font-variant-numeric:tabular-nums}
.account-menu{display:grid;margin:16px 0;gap:0}
.account-row{display:flex;align-items:center;gap:12px;width:100%;min-height:62px;padding:9px 2px;border:0;border-bottom:1px solid #ad98644d;background:none;text-align:left}
.account-row>img{width:33px;height:33px;object-fit:contain}
.account-row>span{display:flex;flex:1;flex-direction:column;gap:4px}
.account-row b{font:600 16px/1.4 var(--serif);color:#3d4e36}
.account-row small{font:11px/1.4 var(--sans);color:#84785d}
.account-row>i{font:24px var(--serif);font-style:normal;color:#9b804a}
.logout-button{display:block;width:100%;min-height:42px;border:1px solid #b78c6b;border-radius:4px;background:#f3e3cc;color:#944a31;font:16px var(--serif);margin-top:18px}
#game .sheet[data-page="profile"] .sheet-footer .logout-button{margin:0;min-height:40px}
.account-footnote{text-align:center;font-size:10px!important;margin-top:8px}
.promotion-hero{text-align:center;position:relative;background:radial-gradient(ellipse at center,#c8d8b788,transparent 75%);padding:4px 0 14px}
.promotion-hero img{width:58px;height:58px;object-fit:contain}
.promotion-hero>strong{display:block;font:600 48px/1.25 var(--serif);color:#2c573e}
.promotion-hero>span{font-size:12px;color:#8a7655}
.promotion-copy h3,.market-rules h3{font:600 18px/1.5 var(--serif);color:#40533a;margin:12px 0 6px}
.currency-balance{display:flex;align-items:center;gap:7px;background:#e3dcc06b;border:1px solid #baa46b60;padding:9px 8px;margin:16px 0 12px;font-size:12px}
.currency-balance img{width:29px;height:29px;object-fit:contain}
.currency-balance b{font-size:18px;color:#7d5d30}
.currency-balance button{margin-left:auto;padding:0;background:none;border:0;color:#517041;font-size:12px}
.news-masthead{text-align:center;border-bottom:3px double #ad8e58;padding:3px 0 14px}
.news-masthead>span{font:11px/1.5 var(--serif);color:#9c6339;letter-spacing:3px}
.news-masthead h3{font:600 25px/1.5 var(--serif);color:#3c5036;margin:4px 0}
.news-masthead p{font-size:11px!important}
.news-lead{padding:13px 0;font:14px/1.7 var(--serif);color:#645535}
.weekly-score{display:grid;grid-template-columns:1fr auto;gap:6px;padding:12px;background:#e1e4ca;border:1px solid #9da776;margin-bottom:16px}
.weekly-score>span{font:15px var(--serif)}
.weekly-score>strong{font:600 23px/1 var(--serif);font-variant-numeric:tabular-nums;color:#345a40}
.weekly-score>small{grid-column:1/-1;font-size:10px;color:#6d7253}
.market-card{border:1px solid #bfa67b;background:#fff6e2;padding:14px 13px;margin:12px 0;border-top:3px solid #57745b;border-radius:3px}
.market-card.market-down{border-top-color:#ad654a}
.market-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.market-category{padding:3px 7px;border-radius:3px;background:#dde5cb;color:#3d6542;font-size:11px}
.market-down .market-category{background:#eddfc5;color:#9e4d34}
.market-card-top>b{font:600 23px/1 var(--serif);font-variant-numeric:tabular-nums;color:#3b7048}
.market-down .market-card-top>b{color:#a14b33}
.market-card h3{font:600 17px/1.5 var(--serif);color:#554a31;margin:0 0 6px}
.market-metrics{display:flex;gap:16px;margin:11px 0;font-size:11px;color:#7a7154}
.market-metrics b{color:#4d583e;margin-left:3px;font-variant-numeric:tabular-nums}
.market-outlook{display:flex;justify-content:space-between;gap:8px;font-size:11px;line-height:1.5;padding-top:9px;border-top:1px dashed #b4a176}
.is-loss,.market-outlook.is-loss strong{color:#a24830!important}
.market-manage{margin-top:9px;border:0;background:none;color:#45623d;font:14px/1.4 var(--serif);padding:2px 0;text-align:left}
.market-rules{padding-top:6px}
.news-shop-link{display:flex;justify-content:space-between;width:100%;margin:12px 0;padding:10px;border:1px solid #ab995f;background:#e3e6ce;color:#446244;font:15px var(--serif)}
.shop-market-note{display:flex;justify-content:space-between;gap:5px;font:11px/1.5 var(--sans);padding:7px 0 4px;color:#547447}
.loss-protection{font-size:11px!important;color:#9f4e32!important;background:#ead6bc;padding:6px 8px;border-left:3px solid #ad6440}
.log-row>b{text-align:right;display:flex;flex-direction:column;gap:4px}
.ranking-heading{text-align:center;padding:4px 0 12px}
.ranking-heading img{width:56px;height:56px;object-fit:contain}
.ranking-heading h3{font:600 21px/1.5 var(--serif);color:#476040;margin:3px 0 6px}
.ranking-heading p{font-size:11px!important}
.ranking-summary{display:flex;justify-content:space-between;padding:12px;background:#e0e5cd;border:1px solid #b6aa7f;font-size:12px}
.ranking-summary b{margin-left:5px;color:#42643f}
.rank-columns{display:flex;justify-content:space-between;margin:18px 0 0;font-size:10px;color:#8b7c59;padding:0 8px}
.ranking-list{list-style:none;padding:0;margin:6px 0 18px}
.ranking-row{display:flex;align-items:center;gap:9px;min-height:72px;border-bottom:1px solid #b7a1756b;padding:10px 6px}
.ranking-row.is-me{background:#e8e5c95c}
.rank-number{flex:none;width:20px;text-align:center;font:600 22px var(--serif);color:#aa7941}
.ranking-row>img{flex:none;width:40px;height:40px;object-fit:cover;background:#e3dcc2;border:1px solid #b09764;border-radius:50%}
.ranking-row>div{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.ranking-row b{font:600 15px/1.4 var(--serif);overflow-wrap:anywhere;color:#4b5839}
.ranking-row em{font:10px var(--sans);font-style:normal;color:#9d643c;background:#e8d2aa;padding:1px 3px}
.ranking-row small{font-size:10px;color:#88785c}
.ranking-row>strong{font:600 20px var(--serif);color:#4f703b;font-variant-numeric:tabular-nums}
.support-panel{text-align:center;padding:14px 0 20px}
.support-symbol{width:56px;height:56px;object-fit:contain;margin:0 auto 10px}
.support-panel h3{font:600 24px/1.5 var(--serif);color:#36523b;margin:0 0 4px}
.support-qr{width:min(220px,100%);aspect-ratio:1;margin:24px auto 18px;border:7px solid #faf4e3;outline:1px solid #a8915f;background:#f0e8d1;padding:10px}
.support-qr>img{width:100%;height:100%;object-fit:contain}
.support-panel>small{font-size:11px;color:#867859}
.qr-placeholder{position:relative;width:100%;height:100%;display:grid;place-items:center;border:1px dashed #baa977;color:#90764f}
.qr-placeholder span{font:20px/1.8 var(--serif)}
.qr-placeholder small{font:12px var(--sans)}
.qr-placeholder i{position:absolute;width:22px;height:22px;border:3px solid #9a855c;top:7px;left:7px}
.qr-placeholder i:nth-child(2){left:auto;right:7px}
.qr-placeholder i:nth-child(3){top:auto;bottom:7px}
.v16-confirm{position:fixed;inset:0;background:#17382bb5;z-index:20000;display:grid;place-items:center;padding:20px;font-family:var(--sans)}
.v16-confirm>section{width:min(360px,100%);background:#faf0d7;border:3px double #a4864b;box-shadow:0 14px 44px #14251d66;padding:23px;border-radius:7px}
.choice-kicker{font:12px var(--serif);color:#a17c3b}
.v16-confirm h2{font:600 23px/1.4 var(--serif);color:#33543a;margin:10px 0}
.v16-confirm p{font:14px/1.75 var(--sans);color:#796748;margin:0 0 22px}
.v16-confirm section>div{display:flex;justify-content:flex-end;gap:10px}
.onboarding-card{border:3px double #ad8b4d;border-radius:11px;background:#fbf0d6;box-shadow:0 16px 45px #14251d66,inset 0 0 0 5px #ead8af66;padding:16px 20px 18px}
.onboarding-card:before{left:13px;right:13px;top:9px;background:#c2a46b88}
.onboarding-meta{background:#2d5442;color:#f8e4b6;border:1px solid #c2a46b;padding:5px 9px;margin:0 0 15px;border-radius:4px;font:11px/16px var(--serif)}
.onboarding-count{font-family:var(--sans);color:#e5d4ab}
.onboarding-heading{gap:12px;margin-bottom:12px}
.onboarding-avatar{width:62px;height:62px;border:3px double #b19451;background:#d8dfc0;padding:3px}
.onboarding-speaker{color:#a15c39;font-size:14px;margin-bottom:4px}
.onboarding-card h2{font-size:23px;line-height:1.35;color:#31553d}
.onboarding-copy{color:#535737;font-size:14px;line-height:1.7}
.onboarding-hint{color:#8b7751;border-top:1px dashed #c5ad7c;line-height:1.6}
.onboarding-actions{margin-top:16px;gap:9px}
.onboarding-actions button{font-weight:600;border-radius:4px;min-height:42px}
.onboarding-next{background:#2c573e;border-color:#527146!important;box-shadow:inset 0 0 0 2px #71925b33;min-width:96px}
.onboarding-skip{font-weight:400!important;font-size:13px!important;padding-inline:3px!important}
@media(max-width:380px){
 #game .hud{gap:5px}#game .profile{width:53px;height:53px;padding:6px}#game .profile .portrait{width:41px;height:41px}
 #game .weather{width:25px}#game .weather .sun{width:25px;height:25px}#game .resource{padding:3px 5px;gap:3px}
 #game .side-actions{right:6px;gap:6px}#game .side-actions button{width:55px;height:65px;min-height:65px}#game .side-actions .side-icon{width:32px;height:32px}
 .account-hero{gap:10px}.account-hero h3{font-size:20px}.avatar-edit{width:72px;height:72px}.account-stats b{font-size:19px}
 .onboarding-card{padding:14px 16px 15px}.onboarding-avatar{width:52px;height:52px}.onboarding-card h2{font-size:20px}.onboarding-copy{line-height:1.6}.onboarding-meta{margin-bottom:11px}
 .onboarding-actions{gap:5px}.onboarding-actions button{padding-inline:9px}
}
@media(max-height:720px){
 #game .side-actions{top:120px;gap:6px}#game .side-actions button{height:63px;min-height:63px;width:55px}#game .side-actions .side-icon{width:31px;height:31px}
 .loading-brand{top:7%}.loading-brand h1{font-size:44px}.loading-bottom{bottom:7%}
 .onboarding-meta{margin-bottom:9px;padding-block:3px}.onboarding-heading{margin-bottom:9px}.onboarding-avatar{width:48px;height:48px}.onboarding-card h2{font-size:20px}.onboarding-copy{font-size:14px;line-height:1.5}.onboarding-hint{margin-top:8px;padding-top:8px;font-size:11px}.onboarding-actions{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){.loading *,.onboarding-layer *{animation:none!important;transition:none!important}}
/* Server edition phone sign-in */
.session-phone{gap:10px}.session-field{display:grid;gap:4px;text-align:left;font:12px/1.4 var(--sans);color:#fff3d8}.session-field input{width:100%;min-height:44px;padding:9px 12px;border:1px solid #c9b07a;border-radius:5px;background:#fbf4e2f2;color:#2f3b30;font:16px/1.3 var(--sans);letter-spacing:1px}.session-field input:focus{outline:2px solid #f2d79a;outline-offset:1px}.session-code{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.session-code .v16-secondary{min-height:44px;white-space:nowrap;background:#f3e6c6;color:#3b4a3a}
.session-phone{bottom:5%;left:6%;right:6%;padding:16px 16px 14px;border-radius:10px;background:#123f35d9;box-shadow:0 8px 24px #0b261f66;text-shadow:0 1px 2px #0b261f99}.session-phone>p{font-size:21px}

/* game-dialogs-v4161.css */
/* Reuse the original game art. Nine-slice frames keep their carved corners. */
:root{
 --dialog-scroll:url('assets/ui-art-v45/modal-scroll.webp');
 --dialog-primary:url('assets/ui-art-v45/button-primary.webp');
 --dialog-secondary:url('assets/ui-art-v45/button-secondary.webp');
 --dialog-ledger:url('assets/ui-art-v45/business-scroll.webp');
}
.v16-primary,.v16-secondary,.onboarding-actions .onboarding-next,.onboarding-actions .onboarding-back,#game .logout-button{
 border:solid transparent;border-width:9px 13px;
 border-image:var(--dialog-secondary) 44 80 44 80 fill stretch;
 background:none;border-radius:0;box-shadow:none;padding:0 5px;min-height:45px;
 display:inline-flex;align-items:center;justify-content:center;
 color:#67533a;font:600 15px/1.4 var(--serif,serif);text-align:center;
 filter:drop-shadow(0 2px 1px #3a251b20);
}
.v16-primary,.onboarding-actions .onboarding-next{
 border-image-source:var(--dialog-primary);color:#fff1d5;
}
.onboarding-actions .onboarding-next{min-width:94px}
.v16-primary:disabled,.v16-secondary:disabled,.onboarding-actions button:disabled{filter:grayscale(.7);opacity:.55}
.v16-primary:hover:not(:disabled),.v16-secondary:hover:not(:disabled),.account-row:hover{filter:brightness(1.04)}
.v16-primary:active:not(:disabled),.v16-secondary:active:not(:disabled){transform:translateY(1px)}
.v16-primary[hidden],.v16-secondary[hidden],.onboarding-actions button[hidden]{display:none}

/* Compact version of the same wood-and-paper scroll used by shop dialogs. */
.onboarding-card,.v16-confirm>section{
 position:absolute;isolation:isolate;box-sizing:border-box;
 padding:85px 33px 48px;border:0;border-radius:0;background:none;box-shadow:none;
 filter:drop-shadow(0 9px 13px #14251d66);
}
.onboarding-card:before,.v16-confirm>section:before{
 content:"";position:absolute;inset:0;width:auto;height:auto;z-index:-1;pointer-events:none;
 border:solid transparent;border-width:100px 25px 52px;
 border-image:var(--dialog-scroll) 348 152 222 152 fill stretch;background:none;
}
.onboarding-meta{
 position:absolute;top:29px;left:72px;right:72px;height:23px;
 margin:0;padding:0;display:flex;align-items:center;justify-content:center;
 background:none;border:0;border-radius:0;
 color:#51432e;font:600 20px/23px var(--serif,serif);letter-spacing:2px;
}
.onboarding-count{
 position:absolute;right:-37px;top:37px;color:#88704a;
 font:11px/16px var(--sans,sans-serif);letter-spacing:0;
}
.onboarding-heading{gap:11px;margin-bottom:13px;align-items:center}
.onboarding-heading>div{min-width:0}
.onboarding-avatar{width:53px;height:53px;border:2px solid #a28c58;background:#dce3cb;padding:3px}
.onboarding-speaker{font:13px/18px var(--serif,serif);color:#9c5035;margin-bottom:3px}
.onboarding-card h2{font:600 21px/1.4 var(--serif,serif);color:#31553d;margin:0;letter-spacing:0}
.onboarding-copy{font:14px/1.75 var(--sans,sans-serif);color:#535139}
.onboarding-hint{margin-top:12px;padding-top:10px;border-top:1px solid #bea97988;font:12px/1.6 var(--sans,sans-serif);color:#877350}
.onboarding-actions{gap:6px;margin-top:17px;justify-content:flex-end}
.onboarding-actions .onboarding-skip{font:13px/1.4 var(--serif,serif);font-weight:400!important;padding:0 2px!important;min-height:44px;color:#83714f;background:none;box-shadow:none}
.onboarding-actions .onboarding-back{min-width:76px;font-size:14px;border-width:8px 10px;padding:0 2px}
.onboarding-actions button:focus-visible{outline:2px solid #aa7032;outline-offset:2px}

/* Personal center: ledger roll, framed input, and the game's paper buttons. */
#game .sheet[data-page="profile"] .sheet-content{padding-inline:3px}
.account-hero{padding-bottom:15px;border-bottom:1px solid #b8a16c70}
.profile-form{margin:15px 0 8px}
.name-field{gap:8px;align-items:stretch}
.name-field input{
 border:solid transparent;border-width:8px 10px;
 border-image:var(--dialog-secondary) 44 80 44 80 fill stretch;
 border-radius:0;background:none;padding:1px 4px;min-height:46px;
}
.name-field .v16-primary{min-width:77px}
.account-stats{
 border:solid transparent;border-width:14px 17px;
 border-image:var(--dialog-ledger) 58 82 60 83 fill stretch;
 background:none;padding:3px 0;margin:11px -2px 13px;min-height:87px;
}
.account-stats>span{justify-content:center;gap:4px;padding:0 2px;line-height:16px}
.account-stats b{font-size:21px;line-height:27px;color:#775334}
.account-menu{gap:7px;margin:13px 0}
.account-row{
 min-height:68px;gap:10px;padding:2px 3px;
 border:solid transparent;border-width:8px 12px;
 border-image:var(--dialog-secondary) 44 80 44 80 fill stretch;
 background:none;box-shadow:none;border-radius:0;
}
.account-row>img{flex:none;width:35px;height:35px}
.account-row>span{min-width:0;gap:2px}
.account-row b{font-size:16px;line-height:22px}
.account-row small{font-size:11px;line-height:16px}
.account-row>i{font-size:22px;color:#8d6940}
#game .sheet[data-page="profile"] .sheet-footer{padding-top:8px}
#game .sheet[data-page="profile"] .sheet-footer .logout-button{margin:0;min-height:46px;width:100%;color:#924a32}
.account-footnote{line-height:1.6!important}

.v16-confirm{padding:12px}
.v16-confirm>section{position:relative;width:min(392px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:86px 33px 49px}
.v16-confirm .choice-kicker{
 position:absolute;top:29px;left:70px;right:70px;height:23px;
 display:flex;align-items:center;justify-content:center;
 font:600 18px/23px var(--serif,serif);color:#51432e;white-space:nowrap;
}
.v16-confirm h2{font-size:22px;line-height:1.4;margin:0 0 13px}
.v16-confirm p{font-size:14px;line-height:1.75;margin:0 0 22px}
.v16-confirm section>div{gap:9px;justify-content:center}
.v16-confirm section>div>button{flex:1;padding-inline:2px}
@media(max-width:380px){
 .onboarding-card,.v16-confirm>section{padding-inline:29px}
 .onboarding-card h2{font-size:19px}.onboarding-avatar{width:47px;height:47px}
 .onboarding-actions{gap:5px}.onboarding-actions .onboarding-next{min-width:88px;font-size:14px}
 .onboarding-actions .onboarding-back{min-width:70px;font-size:13px}
 .onboarding-actions .onboarding-skip{font-size:12px!important}
 .account-hero{gap:11px}.account-stats b{font-size:19px}
 .account-row{gap:8px}.account-row>img{width:32px;height:32px}
}
@media(max-height:720px){
 .onboarding-card{padding-top:79px;padding-bottom:43px}
 .onboarding-card:before{border-top-width:93px;border-bottom-width:46px}
 .onboarding-meta{top:27px;font-size:19px}.onboarding-count{top:33px}
 .onboarding-heading{margin-bottom:10px}.onboarding-avatar{width:47px;height:47px}
 .onboarding-card h2{font-size:19px}.onboarding-copy{font-size:14px;line-height:1.6}
 .onboarding-hint{margin-top:9px;padding-top:9px;font-size:11px;line-height:1.5}
 .onboarding-actions{margin-top:12px}
}
/* Tighter scroll keeps the highlighted control visible on shorter screens. */
.onboarding-card.is-compact{padding-top:62px;padding-bottom:28px}
.onboarding-card.is-compact:before{border-top-width:73px;border-bottom-width:34px}
.is-compact .onboarding-meta{top:20px;font-size:18px;line-height:22px}
.is-compact .onboarding-count{top:25px;font-size:10px}
.is-compact .onboarding-heading{margin-bottom:7px;gap:9px}
.is-compact .onboarding-avatar{width:36px;height:36px;padding:2px}
.is-compact .onboarding-speaker{font-size:12px;line-height:15px;margin-bottom:1px}
.is-compact h2{font-size:18px;line-height:1.3}
.is-compact .onboarding-copy{font-size:14px;line-height:1.5}
.is-compact .onboarding-hint{font-size:11px;line-height:1.5;margin-top:6px;padding-top:6px}
.is-compact .onboarding-actions{margin-top:8px}
.is-compact .onboarding-actions button{min-height:40px}

/* collection-v4162.css */
/* Hand-painted museum collectible, scaled to sit within the existing game frame. */
#game .collection-art .museum-scroll-art{width:130px;max-width:100%;max-height:70px;flex:none}
#game .collection-detail .collection-art:has(.museum-scroll-art){width:min(100%,190px);height:122px;background:none}
#game .collection-detail .collection-art .museum-scroll-art{width:100%;max-width:100%;max-height:none}

/* collection-grid-v4163.css */
/* Equal tracks must not inherit an artifact's intrinsic minimum width. */
#game .collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}
#game .collection-card{min-width:0;width:100%;min-height:244px;padding:14px 0 0;display:grid;grid-template-rows:80px 23px 16px 25px 37px;row-gap:4px;justify-items:center;align-content:start}
#game .collection-card>*{min-width:0;max-width:100%}
#game .collection-card .collection-art{width:100%;height:80px;min-width:0}
#game .collection-card .collection-art>.item-image{width:100%;height:100%;object-fit:contain}
#game .collection-card .collection-art .sprite-window{width:min(100%,calc(70px * var(--sprite-ratio)));height:auto;max-width:100%;max-height:none}
#game .collection-card h3{margin:0;font-size:15px;line-height:23px;white-space:nowrap;text-align:center}
#game .collection-card p{margin:0;font-size:10px;line-height:16px;text-align:center;white-space:nowrap}
#game .collection-card .tag{margin:0;height:25px;max-width:100%;border-width:5px;padding:0 1px;font-size:10px;line-height:15px;white-space:nowrap;display:flex;align-items:center;justify-content:center}
#game .collection-card button{width:100%;height:37px;min-height:37px;margin:0;padding:0 2px;white-space:nowrap;line-height:19px;display:flex;align-items:center;justify-content:center}

/* collection-proportions-v4164.css */
/* Keep the reference card proportions as the two-column grid gets narrower. */
#game .collection-grid{container-type:inline-size}
#game .collection-card{--tile-unit:calc((100cqw - 10px) / 350);height:calc(244 * var(--tile-unit));min-height:0;padding:calc(14 * var(--tile-unit)) 0 0;border-width:calc(13 * var(--tile-unit)) calc(12 * var(--tile-unit)) calc(19 * var(--tile-unit));grid-template-rows:calc(80 * var(--tile-unit)) calc(23 * var(--tile-unit)) calc(16 * var(--tile-unit)) calc(25 * var(--tile-unit)) calc(37 * var(--tile-unit));row-gap:calc(4 * var(--tile-unit))}
#game .collection-card .collection-number{font-size:clamp(8px,calc(9 * var(--tile-unit)),9px)}
#game .collection-card .collection-art{height:calc(80 * var(--tile-unit))}
#game .collection-card .collection-art .sprite-window{width:min(100%,calc(70 * var(--tile-unit) * var(--sprite-ratio)))}
#game .collection-card h3{font-size:clamp(12px,calc(15 * var(--tile-unit)),15px);line-height:calc(23 * var(--tile-unit))}
#game .collection-card p{font-size:clamp(9px,calc(10 * var(--tile-unit)),10px);line-height:calc(16 * var(--tile-unit))}
#game .collection-card .tag{height:calc(25 * var(--tile-unit));border-width:calc(5 * var(--tile-unit));font-size:clamp(9px,calc(10 * var(--tile-unit)),10px);line-height:calc(15 * var(--tile-unit))}
#game .collection-card button{height:calc(37 * var(--tile-unit));min-height:0;border-width:calc(7 * var(--tile-unit)) calc(9 * var(--tile-unit));font-size:clamp(11px,calc(12 * var(--tile-unit)),12px);line-height:calc(19 * var(--tile-unit))}

/* beta-v5.css */
/* V5: retain the illustrated wood-and-paper system, give decisions room to read. */
#game .bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
#game .museum-world-nav{grid-template-columns:repeat(5,minmax(0,1fr))}
#game .bottom-nav>button{min-width:0;width:auto;font-size:13px}
#game .side-actions{gap:8px;top:190px}
#game .side-actions>button{width:53px;min-height:72px}
#game .side-label{font-size:14px;font-weight:600}
#game .quest-chip{max-width:calc(100% - 92px);min-height:40px;font-size:12px}
#game .tiny-seal{font-size:12px}
#game .sheet-content{font:14px/1.65 var(--sans);color:#514b35;overflow-x:hidden;scrollbar-gutter:stable;overflow-anchor:none}
#game .sheet-content h3{font:600 19px/1.4 var(--serif);color:#35513e;letter-spacing:0;margin:0 0 6px}
#game .sheet-content p{font-size:13px;line-height:1.65;margin:8px 0}
#game .sheet-content small{font-size:12px;line-height:1.5}
#game .sheet-content button{cursor:pointer}
#game .sheet-content button:disabled{cursor:default}
#game .sheet-header h2{font-size:23px;letter-spacing:2px}
#game .sheet[data-page="collection-info"] .sheet-header h2{font-size:19px;letter-spacing:0}
#game .sheet-help{position:absolute;left:4px;top:8px;width:38px;height:38px;border-radius:50%;border:2px solid #6d5131;background:#f9e9bb;color:#6d5131;font:22px/1 var(--serif)}
.beta-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:44px;padding:0 5px;border:solid transparent;border-width:8px 12px;border-image:url('assets/ui-art-v45/button-primary.webp') 44 80 44 80 fill stretch;background:none;color:#fff8e0;font:600 15px/1.4 var(--serif);width:100%;filter:drop-shadow(0 2px 1px #38281b22)}
.beta-button.is-secondary{border-image-source:url('assets/ui-art-v45/button-secondary.webp');color:#4c543e}
.beta-button:disabled{opacity:.53;filter:grayscale(.65)}
.beta-button:hover:not(:disabled){filter:brightness(1.06)}
.beta-button:focus-visible,.beta-tabs button:focus-visible,.beta-link:focus-visible,.exam-question-index button:focus-visible{outline:2px solid #9d3d29;outline-offset:2px}
.beta-link{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;border:0;border-bottom:1px solid #bda7787a;background:transparent;padding:8px 2px;font:600 14px/1.5 var(--serif);color:#365b45;text-align:left}
.beta-link>span{font-size:21px;color:#8e6d3f}
.beta-text-button{border:0;background:transparent;color:#395a46;font:14px/1.5 var(--serif);min-height:44px}
.beta-tabs{display:flex;gap:4px;margin:0 0 15px;border-bottom:1px solid #b79c62;padding-bottom:8px;flex-wrap:wrap}
.beta-tabs>button{flex:1;min-width:0;min-height:41px;border:1px solid #b49b6c;background:#f7ecd0;color:#5c5136;border-radius:3px;font:600 14px/1.25 var(--serif);padding:6px 3px}
.beta-tabs>button.selected{color:#fff4d7;background:#315d48;border-color:#315d48;box-shadow:inset 0 0 0 2px #a9996755}
.beta-eyebrow{display:block;color:#8b7047;font:12px/1.5 var(--sans);letter-spacing:.4px}
.beta-muted,.beta-footnote{color:#7a7155;font:12px/1.65 var(--sans)!important}
.beta-intro{color:#5f6045;margin:10px 0 14px!important}
.beta-footnote{margin:16px 0 6px!important;text-align:center}
.beta-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:19px 0 9px}
.beta-section-heading>span{font-size:12px;color:#807054}
.beta-stamp{display:inline-block;white-space:nowrap;padding:3px 7px;border:1px solid #a18e68;color:#796745;font:12px/1.4 var(--sans)}
.beta-stamp.ready{border-color:#587849;color:#356044;background:#e7ebd1}
.beta-row-actions{display:flex;gap:9px;align-items:center;margin-top:12px}
.beta-row-actions>*{flex:1;min-width:0}
.beta-inset,.beta-task,.beta-research-card,.beta-order,.beta-lesson{padding:14px 12px;margin:13px 0;background:#fff8e17d;border:1px solid #bda97b;border-radius:3px}
.beta-stat-row{display:flex;justify-content:space-around;padding:15px 0;margin:12px 0;border-block:1px solid #b4a07166;background:#dfe4c54f}
.beta-stat-row>div{flex:1;text-align:center;padding:0 5px;border-right:1px solid #b4a07155;min-width:0}
.beta-stat-row>div:last-child{border:0}
.beta-stat-row strong{display:block;font:600 21px/1.3 var(--sans);color:#355e48;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.beta-stat-row small{display:block;margin-top:5px;color:#7b704f}
.beta-progress{height:6px;border-radius:4px;background:#b9a7754d;overflow:hidden;margin:11px 0}
.beta-progress>i{display:block;height:100%;background:#6a8856;max-width:100%}
.beta-empty{text-align:center;padding:22px 10px;color:#7c7354}
.beta-empty img{width:56px;height:56px;object-fit:contain;opacity:.75}
.beta-reward{color:#90612f!important;display:flex;align-items:center;gap:6px}
.beta-reward img{width:25px;height:25px;object-fit:contain}
.beta-journey-head{display:flex;align-items:center;gap:10px;padding:8px 0}
.beta-journey-head>img{width:62px;height:62px;object-fit:contain;margin-left:auto}
.beta-chapter{position:relative;border:1px solid #b5a074;border-radius:3px;background:#fff8e080;padding:13px 12px;margin:14px 0}
.beta-chapter header{display:flex;gap:9px;align-items:center}
.beta-chapter header>div{flex:1;min-width:0}
.beta-chapter header h3{font-size:17px!important}
.beta-chapter-number{color:#9e6742;font:26px/1 var(--serif)}
.beta-chapter.is-locked{opacity:.65}
.beta-chapter.is-done{background:#dce3c957}
.beta-objectives{list-style:none;margin:12px 0;padding:0}
.beta-objectives li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px dashed #b8a4737a}
.beta-objectives li>div{flex:1;min-width:0}
.beta-objectives b{font-size:13px;font-weight:500}.beta-objectives small{display:block;color:#887b59}
.beta-objectives .beta-link{width:auto;min-width:60px;border:0;font-size:12px;padding:0}
.beta-check{display:grid;place-items:center;border:1px solid #a79569;width:19px;height:19px;flex-shrink:0;color:#7c744f;border-radius:50%}
.beta-check.done{color:#f5eccc;background:#56734a}
.beta-lock-note{color:#867450;font-size:12px!important}
.beta-collection-summary{display:flex;justify-content:space-between;color:#736142;font-size:13px}
.beta-collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:12px 0}
.beta-collection-card{display:flex;flex-direction:column;min-width:0;min-height:235px;padding:9px 7px 9px;border:solid transparent;border-width:9px 9px 13px;border-image:url('assets/ui-art-v45/collection-card.webp') 54 54 74 54 fill stretch;box-sizing:border-box}
#game .beta-collection-card .beta-eyebrow{font-size:11px}
.beta-card-art{height:65px;display:flex;align-items:center;justify-content:center;margin:5px 0 7px}
.beta-card-art>img{width:74px;height:65px;object-fit:contain}.beta-card-art .sprite-window{max-width:90px;max-height:65px;width:100%}
#game .beta-collection-card h3{font-size:16px;line-height:1.35;text-align:center;min-height:22px;margin:0 0 4px}
#game .beta-collection-card p{font-size:12px;line-height:1.45;text-align:center;margin:3px -4px}
.beta-bonus{display:block;font:12px/1.5 var(--sans);color:#4d6d48;text-align:center;margin:5px 0 10px}
.beta-collection-card .beta-button{margin-top:auto;font-size:13px;padding:0;min-height:40px;border-width:7px 7px}
.unowned .beta-card-art,.beta-medal-card.unowned .beta-medal-art{filter:grayscale(.7);opacity:.55}
.beta-artifact-hero{height:140px;display:flex;align-items:center;justify-content:center;padding:7px}
.beta-artifact-hero .item-image{width:110px;height:118px;object-fit:contain}.beta-artifact-hero .sprite-window{width:195px;max-height:128px}
.beta-artifact-caption{text-align:center}.beta-artifact-caption h3{font-size:20px!important}
.beta-stack-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}
.beta-stack-field label{font-size:14px}.beta-stack-field input{width:95px;min-height:42px;background:#fff9e8;border:1px solid #b29a6e;border-radius:2px;padding:7px 10px;font:16px var(--sans);color:#38563b}
.beta-price-note{padding:10px 0;border-block:1px dashed #b6a071;font-size:13px}
.beta-inline-status{color:#9c4830!important;min-height:0}
.beta-building-preview{display:flex;align-items:center;gap:12px;margin:14px 0}.beta-building-preview>.building-art{width:100px;flex:none}
.beta-building-preview h3{font-size:17px!important}
.beta-building-preview p{font-size:12px!important}
.beta-wallet-hero{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #b7a26e}
.beta-wallet-hero>img{width:48px;height:48px;object-fit:contain}.beta-wallet-hero>div{flex:1}.beta-wallet-hero strong{font:600 27px/1.3 var(--sans);display:block;color:#6b5130}
.beta-exchange-card{display:grid;grid-template-columns:70px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid #b4a37180}
.beta-exchange-art{display:grid;place-items:center;align-self:start;position:relative;min-height:80px}.beta-exchange-art>img{max-width:70px;max-height:85px;object-fit:contain}
.beta-exchange-card h3{font-size:17px!important}.beta-exchange-card p{font-size:12px!important}
.beta-exchange-bottom{display:flex;gap:8px;align-items:center;margin-top:9px}.beta-exchange-bottom .beta-button{width:90px;margin-left:auto;min-height:40px;font-size:13px}
.beta-cost{display:flex;align-items:center;gap:4px;font:600 18px var(--sans);color:#8b652b}.beta-cost img{width:23px;height:23px;object-fit:contain}
.beta-ribbon{position:absolute;top:26px;left:32px;color:#8e5032;font:20px var(--serif)}
.beta-medal-card{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid #baa47666}.beta-medal-art{width:80px;position:relative;flex:none}.beta-medal-art img{width:100%}.beta-medal-art span{position:absolute;left:33px;top:22px;font:21px var(--serif);color:#a05d2a}
.beta-medal-card h3{font-size:18px!important}.beta-medal-card .beta-button{min-width:100px;min-height:40px}
.beta-hub-links{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-bottom:15px}
.beta-research-art{height:90px;display:flex;justify-content:center}.beta-research-art .building-art{width:155px;max-height:90px}
.beta-order header,.beta-lesson header{display:flex;gap:9px;align-items:center}.beta-order header>img{width:40px;height:40px;border-radius:50%;border:1px solid #ac9365}.beta-order header>div{flex:1}.beta-order h3{font-size:16px!important}.beta-order header .beta-stamp{font-size:10px}
.beta-order-goods{display:flex;gap:13px;align-items:center;margin:12px 0}.beta-order-goods>.item-image{width:50px;height:55px;object-fit:contain}.beta-order-goods small{display:block;color:#7f704e}
.beta-museum-head{display:flex;gap:12px;align-items:center;margin:12px 0}.beta-museum-head img{width:80px;height:90px;object-fit:contain}.beta-museum-head h3{font-size:19px!important}
.beta-answers{display:grid;gap:7px;margin:13px 0}.beta-answers .beta-button{justify-content:flex-start;text-align:left;font-size:14px}
.beta-complete-note{padding:11px;color:#386145!important;background:#e2e7cd;font-size:13px!important}
.beta-exhibit-hero{text-align:center}.beta-exhibit-hero>.sprite-window{width:160px;margin:10px auto;display:block}.beta-exhibit-active{padding:16px;background:#dde7ca;border:1px solid #8caa6f;text-align:center}
.beta-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#53804a;margin-right:9px}
.beta-large-number{font:600 27px/1.4 var(--sans);color:#355e48}.beta-large-number small{font-weight:400;color:#8a7955}
.beta-ledger-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #baa57677;padding:12px 0}.beta-ledger-row>div:last-child{text-align:right}.beta-ledger-row small{display:block;color:#83704e}.beta-ledger-row strong{color:#9a652c}
.beta-offline-hero{text-align:center;margin:12px 0}.beta-offline-hero>img{width:60px;height:60px;object-fit:contain}
#offline-receipt{position:absolute;left:18px;bottom:194px;padding:8px 12px;min-height:41px;background:#f7efd5;color:#3c5c45;border:1px solid #9c865d;border-radius:3px;font:13px var(--sans);z-index:50;box-shadow:0 3px 8px #1833293d}
#offline-receipt[hidden]{display:none}
.beta-welcome{position:fixed;inset:0;z-index:5000;background:#17281b88;display:flex;align-items:center;justify-content:center;padding:12px;backdrop-filter:blur(2px)}
.beta-welcome>section{isolation:isolate;position:relative;width:min(420px,100%);max-height:calc(100dvh - 24px);overflow:auto;padding:85px 33px 49px;box-sizing:border-box;filter:drop-shadow(0 7px 12px #15281c77)}
.beta-welcome>section:before{position:absolute;content:'';inset:0;z-index:-1;pointer-events:none;border:solid transparent;border-width:100px 25px 52px;border-image:url('assets/ui-art-v45/modal-scroll.webp') 348 152 222 152 fill stretch}
.beta-welcome-title{position:absolute;top:28px;left:70px;right:70px;text-align:center;font:600 20px/25px var(--serif);color:#5a4931}
.beta-welcome-content{font:14px/1.7 var(--sans);color:#595038}.beta-welcome-content h2{font:600 21px/1.4 var(--serif);color:#315a44;margin:0}
.beta-host{display:flex;gap:11px;align-items:center;margin-bottom:15px}.beta-host>img{width:49px;height:49px;border-radius:50%;border:1px solid #a78d50;background:#dedec0}
.beta-welcome-content ol{padding-left:24px}.beta-welcome-content li{margin:12px 0;padding-left:3px}.beta-welcome-content li span{display:block;color:#827352;font-size:12px}
#game .sheet[data-page="house"][data-tab="business"] .detail-hero{height:140px;min-height:0}
#game .sheet[data-page="house"][data-tab="business"] .detail-hero .building-art{height:105px;max-width:180px}
#game .sheet[data-page="house"] .detail-description{font-size:12px;padding:0 4px;margin:8px 0}
#game .sheet[data-page="house"] .product-card{padding:10px 6px;gap:8px}
#game .sheet[data-page="house"] .product-card .product-price strong{font-size:21px}
#game .sheet[data-page="house"] .product-card p{font-size:12px}
#game .sheet[data-page="house"] .stats-grid .stat strong{font-size:21px}
#game .sheet-content .shop-card{padding:13px 8px 15px;gap:9px}
#game .sheet-content .shop-card .shop-thumb{width:79px}.shop-card .stock-line{font-size:12px}
#game .sheet-content .card-actions button{font-size:13px;min-height:38px}
.beta-strategies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px 0}.beta-strategies button{padding:9px 3px;min-width:0;border:1px solid #b2a078;border-radius:3px;background:#f7edce;color:#5a533d}.beta-strategies button.selected{background:#345d48;color:#fff0cd;border-color:#345d48}.beta-strategies b{font:600 14px var(--serif);display:block}.beta-strategies small{font-size:11px!important;line-height:1.5;display:block;margin-top:5px}
.beta-auto label{display:block;font-size:13px;margin:9px 0 5px}.beta-auto input{max-width:100%;width:100%;padding:10px;border:1px solid #b9a16f;background:#fff9e8;color:#3d5940;font-size:16px;box-sizing:border-box}
.beta-product-choice{display:flex;gap:8px;align-items:center;border:1px solid #baa779;padding:10px;margin:8px 0;background:#f8efd7}.beta-product-choice .item-image{width:38px;height:45px;object-fit:contain}.beta-product-choice>div{flex:1;min-width:0}.beta-product-choice b{font-size:14px}.beta-product-choice small{display:block;color:#80704f}.beta-product-choice button{width:75px;font-size:12px;border-width:7px 7px;flex:none}
.exam-banner{padding:22px 13px 14px;text-align:center;background:linear-gradient(#ede6c5dc,#ebe9cde8),url('assets/terrain-clean-v493.webp') center 30%/cover;border:1px solid #a99360;border-radius:3px;position:relative;margin:10px 0 14px}
#game .exam-banner h3{font:600 29px/1.35 var(--serif);letter-spacing:3px;margin:8px 0;color:#294f3c}.exam-banner p{color:#7b6b48;font-size:12px!important}
.exam-round-track{display:flex;margin-top:19px;position:relative}.exam-round-track:before{content:'';height:3px;background:#b6a05e;position:absolute;left:16%;right:16%;top:17px}
.exam-round-track>span{flex:1;display:flex;flex-direction:column;align-items:center;font:600 16px/1.5 var(--serif);z-index:1;color:#77664a}.exam-round-track b{display:grid;place-items:center;border:1px solid #a9915b;border-radius:50%;width:33px;height:33px;background:#eee4c2;margin-bottom:5px;font-size:15px}.exam-round-track small{font:11px var(--sans);margin-top:3px}.exam-round-track .finished b{background:#496b4b;color:#fff4cc}.exam-round-track .current b{background:#9c4f31;color:#fff4cc;border-color:#813b25}
.exam-host{display:flex;gap:11px;align-items:center;margin:12px 0}.exam-host img{width:50px;height:50px;border-radius:50%;background:#dbddbd;border:1px solid #ac9563}.exam-host p{padding:10px;background:#eee4c6;position:relative;border-radius:3px;flex:1;font-family:var(--serif)}
.exam-entry{padding:3px 1px 10px}.exam-entry>.beta-button{margin-top:9px}
.exam-rules{margin:17px 0;border:1px solid #b7a477;padding:10px;border-radius:3px;background:#f6edcf75;font-size:12px}.exam-rules summary{cursor:pointer;font:600 15px/1.5 var(--serif);color:#4d6545;min-height:30px;display:list-item}.exam-rules p{font-size:12px!important}.exam-rules a,.exam-explanation a{color:#3a6c50;text-decoration:underline;word-break:break-word}.exam-rules section{border-bottom:1px solid #bbab8566;padding:10px 0}
.exam-paper{padding:14px 11px;background:#fff7e0aa;border:1px solid #b6a06f;border-radius:3px}.exam-paper-meta{display:flex;justify-content:space-between;gap:6px;font-size:12px;color:#8d643e}.exam-paper-meta>span{font-variant-numeric:tabular-nums}
.exam-question-index{display:flex;gap:8px;margin:14px 0}.exam-question-index button{border:1px solid #ae9a6a;border-radius:50%;width:36px;height:36px;background:#f0e5c6;color:#8a7753}.exam-question-index .answered{background:#dce4c6;color:#345c42}.exam-question-index .current{box-shadow:0 0 0 2px #a45a37;border-color:#a45a37}
#game .exam-paper h3{font:600 18px/1.6 var(--serif);margin:14px 0}
.exam-choices{display:grid;gap:9px;margin:14px 0}.exam-choices .beta-button{justify-content:flex-start;min-height:58px;text-align:left;gap:9px;font:14px/1.5 var(--sans);padding:3px}.exam-choices .beta-button span{flex:none;font:18px var(--serif);color:#96723e}.exam-choices .beta-button b{font-weight:500}.exam-choices .beta-button[aria-pressed="true"]{border-image-source:url('assets/ui-art-v45/button-primary.webp');color:#fff7df}.exam-choices .beta-button[aria-pressed="true"] span{color:#ffe8ba}
.exam-explanation{padding:11px;background:#e4e8cb;border-left:3px solid #74804d;font-size:13px}.exam-explanation b{color:#3c6545}
.exam-complete{text-align:center;padding:24px 4px}.exam-seal{display:inline-block;padding:7px;color:#ad5234;border:2px solid #ad5234;transform:rotate(-7deg);font:22px var(--serif);margin-bottom:13px}.exam-complete>strong{font:600 34px var(--sans);color:#355b42;display:block;margin:12px}.exam-complete>strong small{font-size:14px;color:#948057}
.exam-board-heading{display:flex;gap:17px;align-items:center;padding:14px 2px}.exam-board-heading>img{width:70px;height:70px;object-fit:contain}
.exam-prizes{display:flex;justify-content:space-around;padding:14px 4px;border-block:1px solid #bba46b;background:#e9deaf66}.exam-prizes>div{text-align:center;flex:1}.exam-prizes span{display:block;font:16px var(--serif);color:#8b6232}.exam-prizes b{display:flex;justify-content:center;align-items:center;gap:5px;font:600 23px var(--sans);color:#7a5528;margin-top:5px}.exam-prizes img{width:25px;height:25px;object-fit:contain}
.exam-rank-row{display:flex;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid #bfa97877}.exam-rank-row>div{flex:1}.exam-rank-row small{display:block;color:#89764d}.exam-rank-row>b{font:23px var(--serif);color:#9a6a33}.exam-rank-row.mine{background:#dce5c777}.exam-rank-row>strong{font-size:21px;color:#345a42}.exam-rank-row>strong small{display:inline;font-size:12px}
.event-letter{display:flex;gap:12px;align-items:flex-start;padding:14px 0 10px}.event-letter>img{width:56px;height:60px;object-fit:contain;flex:none}.event-letter>div{padding:13px;background:#f9edce;border:1px solid #baa16f;box-shadow:0 2px 4px #6e4d2f16}
.event-option{position:relative;margin:12px 0;padding:15px 13px 13px 42px;background:#f3ead0;border:solid transparent;border-width:8px;border-image:url('assets/ui-art-v45/collection-card.webp') 54 54 74 54 fill stretch}.event-option.selected{background:#dce4c8}.event-option-number{position:absolute;left:8px;top:13px;font:25px var(--serif);color:#9b7641}.event-option .beta-button{margin-top:9px}.event-option h3{font-size:18px!important}
@media(max-width:360px){#game .sheet-content{font-size:13px}#game .sheet-header h2{font-size:20px}.beta-collection-grid{gap:7px}.beta-collection-card{padding-inline:3px;min-height:227px;border-width:8px 6px 11px}.beta-card-art{height:58px}.beta-card-art>img{height:57px;width:65px}#game .beta-collection-card h3{font-size:15px}.beta-collection-card .beta-button{font-size:12px;border-width:7px 5px}.beta-stat-row strong{font-size:18px}.beta-tabs>button{font-size:13px}.beta-exchange-card{grid-template-columns:53px 1fr;gap:10px}.beta-exchange-art>img{max-width:53px}.beta-welcome>section{padding-inline:29px}.beta-welcome-content h2{font-size:19px}.beta-strategies{gap:4px}.beta-strategies small{font-size:10px!important}.exam-banner{padding-inline:6px}.exam-paper{padding-inline:9px}.event-letter{gap:8px}.event-letter>img{width:42px}.event-option{padding-left:34px}.exam-prizes b{font-size:21px}}
@media(prefers-reduced-motion:reduce){.beta-button{transition:none}}
#game .beta-product-choice>.item-image{width:38px;height:45px;flex:none}
#game .beta-card-art>.item-image{width:74px;height:65px;max-width:100%;object-fit:contain}
#game .beta-artifact-hero>.item-image{width:110px;height:118px;object-fit:contain}
#game .beta-order-goods>.item-image{width:50px;height:55px;flex:none}
.exam-banner.is-answering{padding:10px;margin:8px 0}
.exam-banner.is-answering>.beta-eyebrow,.exam-banner.is-answering>h3,.exam-banner.is-answering>p{display:none}
.exam-banner.is-answering .exam-round-track{margin-top:0}
.exam-banner.is-answering+.exam-paper .exam-choices .beta-button{min-height:50px}
@media(max-width:360px){.beta-collection-card{min-height:208px;padding-block:6px}.beta-card-art{height:48px;margin:3px 0}#game .beta-card-art>.item-image{height:48px;width:58px}.beta-bonus{margin:3px 0 6px}}

#game .daily-income>strong{white-space:nowrap;font-size:20px}
@media(max-width:360px){#game .daily-income>strong{font-size:18px}#game .stock-all{width:124px}#game .business-bar{gap:6px}}

/* V5.0.9: a brief, optional two-step opening. */
.starter-steps li { padding: 10px 0; border-bottom: 1px solid #c4ac79; }
.starter-steps li.current b { color: #953f28; }
.starter-steps li.complete b { color: #3c634a; }
.starter-offer .beta-building-preview { margin: 8px 0; }
.exchange-success { border-left: 3px solid #557354; }
.beta-exchange-bottom { flex-wrap: wrap; gap: 8px; }
.beta-exchange-bottom .beta-button { white-space: normal; min-height: 40px; }

.beta-welcome .starter-steps { list-style: none; padding-left: 0; }
.footer-actions .main-button { white-space: normal; line-height: 1.4; }

.currency-bridge .exchange-steps { margin: 8px 0; line-height: 1.8; color: #365c48; }
.currency-bridge > .beta-muted { margin: 6px 0; line-height: 1.65; }
.beta-wallet-hero > div > span { white-space: nowrap; }

/* Clear separation: owned collections and the goods actually sold. */
.holding-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beta-product-choice { display:grid; grid-template-columns:56px minmax(0,1fr) 78px; align-items:center; gap:10px; }
.beta-product-choice > .item-image { width:56px; height:56px; object-fit:contain; }
.beta-product-choice > .beta-button { min-width:0; width:78px; padding:9px 6px; font-size:13px; line-height:1.4; white-space:normal; word-break:keep-all; }

.holding-shop-link { margin: 4px 0 18px; width: 100%; }
.beta-product-choice small { white-space: nowrap; }

/* panels-v501.css */
/* V5.0.1: illustrated exam scroll and compact, comparable letter decisions. */
#game .exam-scroll-tabs{gap:7px;margin:0 0 4px;border:0;padding:0 0 7px}
#game .exam-scroll-tabs>button{background:none;border:solid transparent;border-width:7px 10px;border-image:url('assets/ui-art-v45/tab-neutral.webp') 28 40 fill stretch;border-radius:0;box-shadow:none;min-height:43px;font:600 16px/1.25 var(--serif);color:#61513b;padding:1px 3px;position:relative}
#game .exam-scroll-tabs>button.selected{border-image-source:url('assets/ui-art-v45/tab-selected.webp');color:#fff1cf;text-shadow:0 1px #6f321d}
#game .exam-scroll-tabs>button:focus-visible{outline:2px solid #994e36;outline-offset:2px}
#game .exam-scroll-hero{box-sizing:border-box;position:relative;isolation:isolate;background:none;border:0;border-radius:0;margin:0 -6px 8px;padding:42px 30px 30px;min-height:238px;text-align:center}
.exam-scroll-hero:before{content:'';position:absolute;inset:0;background:url('assets/ui-v501/exam-landscape-scroll.webp') center/100% 100% no-repeat;z-index:-1;pointer-events:none}
.exam-issue{display:block;font:11px/1.5 var(--sans);color:#756043;font-variant-numeric:tabular-nums}
#game .exam-scroll-hero .exam-scroll-heading h3{font:600 34px/1.25 var(--serif);letter-spacing:4px;color:#312c25;margin:9px 0 7px;text-shadow:0 1px #fff8e3}
#game .exam-scroll-hero .exam-scroll-heading p{font:12px/1.4 var(--serif);color:#6b5940;margin:0 0 12px}
.exam-progress-caption{display:flex;justify-content:space-between;font:10px/1.4 var(--sans);color:#67533b;margin-bottom:4px}
.exam-progress-rail{height:7px;border:1px solid #72604a;background:#f4e9cf;box-shadow:0 1px #fff2d7;overflow:hidden}
.exam-progress-rail>i{display:block;height:100%;background:linear-gradient(90deg,#b5873d,#dbc477);transition:width .2s}
#game .exam-scroll-hero .exam-round-track{gap:8px;margin-top:7px}
#game .exam-scroll-hero .exam-round-track:before{display:none}
#game .exam-scroll-hero .exam-round-track>span{display:flex;flex-direction:column;justify-content:center;min-width:0;flex:1;background:#4a4d45;color:#fcf0d4;border:1px solid #e9d7ae;box-shadow:0 0 0 1px #746a55;padding:4px 0 5px}
#game .exam-scroll-hero .exam-round-track b{display:block;border:0;border-radius:0;width:auto;height:auto;background:none;color:inherit;font:600 16px/1.2 var(--serif);margin:0 0 2px}
#game .exam-scroll-hero .exam-round-track small{font:10px/1.3 var(--sans);color:#e8ddc5;margin:0}
#game .exam-scroll-hero .exam-round-track .current{background:#913f2c;box-shadow:0 0 0 1px #794733}
#game .exam-scroll-hero .exam-round-track .finished{background:#536044}
#game .exam-scroll-hero.is-answering{min-height:0;padding:12px 14px;margin:1px 0 12px;border-block:1px solid #ad966a;background:#e9ddbf88}
.exam-scroll-hero.is-answering:before,.exam-scroll-hero.is-answering .exam-scroll-heading{display:none}
#game .sheet[data-page="exam"] .exam-entry{padding-top:0}
#game .sheet[data-page="exam"] .exam-host{margin-top:0;margin-bottom:8px}
#game .sheet[data-page="exam"] .exam-host p{margin:0;padding:9px 10px;font-size:13px;color:#68563d;background:#ece0c166;border-radius:0}
#game .event-letter-v501{position:relative;display:grid;grid-template-columns:75px minmax(0,1fr);align-items:center;gap:0;padding:0;margin:0 0 10px}
#game .event-letter-v501>.event-messenger{position:relative;z-index:2;width:90px;height:132px;padding:0;border:0;box-shadow:none;background:url('assets/people-v47/staff.webp') 33.3333% 100%/400% 200% no-repeat;filter:drop-shadow(2px 2px 1px #f8edd3)}
#game .event-letter-v501>.event-messenger.woman{background-position:33.3333% 0}
#game .event-letter-v501>.event-letter-paper{min-width:0;padding:14px 12px 14px 17px;background:linear-gradient(90deg,#f4e8cc,#fff4da 40%,#f5e8c9);border:1px solid #b6a17c;box-shadow:inset 0 0 0 3px #f8edd2,0 2px 3px #7e653c20;position:relative}
.event-letter-paper:before{content:'';position:absolute;width:15px;height:15px;background:#f4e8cc;border-left:1px solid #b6a17c;border-bottom:1px solid #b6a17c;left:-9px;top:32px;transform:rotate(45deg)}
#game .event-letter-paper .beta-eyebrow{font-size:11px;color:#89704c}
#game .event-letter-paper h3{font:600 22px/1.35 var(--serif);color:#3f3d31;margin:5px 0 8px;letter-spacing:1px}
#game .event-letter-paper p{font:13px/1.65 var(--sans);color:#5e5644;margin:0}
.event-scope{border-block:1px solid #b7a47a88;padding:7px 0;margin:5px 0 12px;font:12px/1.5 var(--sans);color:#77664c}
.event-scope summary{display:flex;justify-content:space-between;gap:8px;cursor:pointer;list-style:none;min-height:26px;align-items:center}
.event-scope summary::-webkit-details-marker{display:none}
.event-scope summary:focus-visible{outline:2px solid #925037;outline-offset:2px}
#game .event-scope p{font-size:12px;margin:6px 0}
.event-decisions-heading{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:4px 0 9px;color:#514937;font:600 17px/1.4 var(--serif)}
#game .event-decisions-heading small{font:11px/1.4 var(--sans);color:#8a795c;font-weight:400}
#game .event-decision{margin:0 0 9px;padding:10px 11px 9px;border:1px solid #7e7f70;border-image:none;background:#f8efd9;box-shadow:inset 0 0 0 3px #ddd8c4;position:relative}
#game .event-decision.selected{border-color:#6f744f;background:#ecedce;box-shadow:inset 0 0 0 3px #bfc79f}
.event-decision:before{content:'';position:absolute;width:25px;height:2px;top:5px;left:6px;background:#a98548}
.event-decision header{display:flex;align-items:center;gap:8px}
#game .event-decision .event-option-number{position:static;display:grid;place-items:center;flex:none;width:26px;height:26px;background:#6b7162;color:#faf0d4;border:1px solid #e3d6b7;font:18px/1 var(--serif)}
#game .event-decision h3{font:600 18px/1.4 var(--serif)!important;color:#414435;margin:0;flex:1;min-width:0}
.event-cost{flex:none;white-space:nowrap;font:11px/1.4 var(--sans);color:#836340}
.event-cost b{font-weight:600;font-size:15px;font-variant-numeric:tabular-nums;color:#77532f}
#game .event-decision .event-flavour{display:none}
.event-decision-bottom{display:flex;align-items:center;gap:6px;justify-content:space-between;margin-top:7px}
.event-effects{display:flex;gap:4px 8px;flex-wrap:wrap;min-width:0;flex:1;font:11px/1.5 var(--sans)}
.event-effect{display:flex;gap:4px;align-items:center;color:#6f6652;white-space:nowrap}
.event-effect b{font-weight:600;font-variant-numeric:tabular-nums;color:#916044}
.event-effect.favorable b{color:#496549}
.event-effect.unchanged{white-space:normal}
#game .event-decision .beta-button{width:83px;min-height:36px;border-width:6px 7px;font-size:13px;flex:none;margin:0;filter:none}
#game .event-decision.selected .beta-button{opacity:1;color:#496549;filter:none}
.event-shortfall{display:block;margin-top:5px;color:#976049}
@media(max-width:360px){#game .exam-scroll-tabs>button{font-size:15px;min-height:40px}#game .exam-scroll-hero{padding:37px 25px 25px;min-height:222px}#game .exam-scroll-hero .exam-scroll-heading h3{font-size:29px;letter-spacing:3px}#game .exam-scroll-hero .exam-scroll-heading p{font-size:11px}#game .exam-scroll-hero .exam-round-track{gap:6px}#game .exam-scroll-hero .exam-round-track b{font-size:15px}#game .exam-scroll-hero .exam-round-track small{font-size:9px}#game .event-letter-v501{grid-template-columns:58px minmax(0,1fr)}#game .event-letter-v501>.event-messenger{width:70px;height:116px}#game .event-letter-v501>.event-letter-paper{padding:11px 9px 11px 14px}#game .event-letter-paper h3{font-size:20px}#game .event-letter-paper p{font-size:12px}.event-decisions-heading{font-size:16px}#game .event-decisions-heading small{font-size:10px}#game .event-decision{padding:9px 8px}#game .event-decision h3{font-size:16px!important}#game .event-decision .beta-button{width:75px;font-size:12px}.event-effects{font-size:11px}.event-cost{font-size:10px}}
@media(prefers-reduced-motion:reduce){.exam-progress-rail>i{transition:none}}

/* components-v502.css */
/* Shared illustrated controls. Reuse the game's original raster frames at their safe slice boundaries. */
#game .beta-tabs,#game .exam-scroll-tabs{display:flex;flex-wrap:nowrap;gap:6px;margin:0 0 12px;padding:0;border:0}
#game .beta-tabs>button,#game .exam-scroll-tabs>button{flex:1;min-width:0;box-sizing:border-box;min-height:44px;padding:1px 2px;border:solid transparent;border-width:9px 10px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;box-shadow:none;border-radius:0;font:600 15px/1.3 var(--serif);color:#625037;text-align:center;text-shadow:0 1px #fff5dd;filter:drop-shadow(0 2px 1px #67492920)}
#game .beta-tabs>button.selected,#game .exam-scroll-tabs>button.selected{border-image-source:url('assets/ui-art-v45/button-primary.webp');background:none;color:#fff4db;text-shadow:0 1px #763d2d;box-shadow:none}
#game .beta-tabs>button:hover:not(.selected){filter:brightness(1.04) drop-shadow(0 2px 1px #67492920)}
#game .beta-tabs>button:focus-visible{outline:2px solid #a65433;outline-offset:2px}

/* The three examination phases are small hanging wooden signs, not flat status tiles. */
#game .exam-scroll-hero{padding:40px 25px 24px;min-height:252px;margin:-8px 0 -2px}
#game .exam-scroll-hero .exam-round-track{gap:5px;margin:9px -7px 0;align-items:stretch}
#game .exam-scroll-hero .exam-round-track>span{position:relative;isolation:isolate;box-sizing:border-box;min-height:65px;padding:3px 0 0;border:solid transparent;border-width:15px 9px 10px;border-image:url('assets/ui-art-v45/shop-sign.webp') 105 100 45 100 fill stretch;background:none;border-radius:0;box-shadow:none;color:#57412e;filter:drop-shadow(0 2px 1px #3c29182c)}
#game .exam-scroll-hero .exam-round-track b{font:600 20px/1.1 var(--serif);margin:0 0 4px;color:#57412e;letter-spacing:1px;text-shadow:0 1px #fff7e6}
#game .exam-scroll-hero .exam-round-track small{display:flex;align-items:center;justify-content:center;gap:4px;color:#79664b;font:11px/1.2 var(--serif);white-space:nowrap}
#game .exam-scroll-hero .exam-round-track small i{display:inline-grid;place-items:center;font:normal 10px/1 var(--serif);width:14px;height:14px;box-sizing:border-box;border:1px solid #a26c4a;color:#9a5d3d;transform:rotate(-4deg)}
#game .exam-scroll-hero .exam-round-track .current{background:none;box-shadow:none;filter:drop-shadow(0 0 2px #ad703b88)}
#game .exam-scroll-hero .exam-round-track .current b{color:#a4402b}
#game .exam-scroll-hero .exam-round-track .current small i{background:#a54b32;color:#fff2d1;border-color:#a54b32}
#game .exam-scroll-hero .exam-round-track .finished{background:none;box-shadow:none}
#game .exam-scroll-hero .exam-round-track .finished b{color:#4e6745}
#game .exam-scroll-hero .exam-round-track .finished small i{background:#65764d;color:#fff2d1;border-color:#65764d}
#game .exam-progress-caption{font:12px/1.4 var(--serif);color:#675139;margin-bottom:5px;text-shadow:0 1px #fff1d6}
#game .exam-progress-rail{height:8px;border:1px solid #81603e;border-radius:5px;background:#f3e5c8;box-shadow:inset 0 1px 2px #6e4d2633,0 1px #fff5de}
#game .exam-progress-rail>i{background:linear-gradient(#d9b95f,#b17e36);border-radius:4px}
#game .exam-scroll-hero .exam-scroll-heading p{white-space:nowrap}
@media(max-width:360px){#game .exam-scroll-hero .exam-scroll-heading p{font-size:10px;letter-spacing:0}}
#game .exam-scroll-hero.is-answering{min-height:0;margin:0 0 12px;padding:8px 12px 12px;border:solid transparent;border-width:10px 14px;border-image:url('assets/ui-art-v45/business-scroll.webp') 58 82 60 83 fill stretch;background:none}
#game .exam-scroll-hero.is-answering .exam-round-track{margin-top:4px}

/* Statistics read as a small illustrated ledger, with stable numeric alignment. */
#game .beta-stat-row{box-sizing:border-box;display:flex;align-items:center;position:relative;margin:12px 0 15px;padding:8px 0;border:solid transparent;border-width:12px 20px 13px;border-image:url('assets/ui-art-v45/business-scroll.webp') 58 82 60 83 fill stretch;background:none;border-radius:0;box-shadow:none;min-height:88px}
#game .beta-stat-row>div{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;flex:1;padding:0 4px;border:0;align-self:stretch}
#game .beta-stat-row>div+div:before{content:'';position:absolute;left:0;top:8%;bottom:8%;width:1px;background:linear-gradient(transparent,#aa8c58aa,transparent)}
#game .beta-stat-row strong{font:600 21px/1.2 var(--sans);color:#885d35;font-variant-numeric:tabular-nums;letter-spacing:-.4px;text-align:center;text-shadow:0 1px #fff4d9;overflow-wrap:normal;word-break:normal;max-width:100%}
#game .beta-stat-row small{font:13px/1.4 var(--serif);color:#7c694b;display:block;margin-top:5px;text-align:center}
#game .shop-ledger{min-height:112px;margin-top:2px;padding:5px 0 7px}
#game .shop-ledger>div>img{display:block;width:30px;height:30px;object-fit:contain;margin:0 auto 4px;filter:drop-shadow(0 1px 0 #fff3d5)}
#game .shop-ledger strong{font-size:21px}
#game .shop-ledger strong.compact-number{font-size:17px;letter-spacing:-.6px}
#game .shop-ledger small{margin-top:3px}

/* Section tools are small illustrated slips, with icons taken from the same game. */
#game .beta-hub-links{gap:8px;margin:0 0 16px}
#game .beta-hub-links>.beta-link{box-sizing:border-box;min-height:47px;min-width:0;width:100%;margin:0;padding:3px 5px;gap:5px;border:solid transparent;border-width:7px 10px 9px 11px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;background:none;font:600 14px/1.2 var(--serif);color:#665037}
#game .beta-hub-links>.beta-link>span{font:20px/1 var(--serif);color:#966d3e;flex:none;margin-left:auto}
#game .shop-tools>.beta-link>img{width:25px;height:25px;object-fit:contain;flex:none}
#game .shop-tools>.beta-link>b{font:600 14px/1.25 var(--serif);white-space:nowrap}
#game .shop-tools>.beta-link:last-child{grid-column:1/-1;justify-content:center}
#game .shop-tools>.beta-link:last-child>span{margin-left:7px}

/* Carry the paper-and-wood material into other beta panels using the existing artwork. */
#game .beta-inset,#game .beta-task,#game .beta-research-card,#game .beta-order,#game .beta-lesson,#game .beta-chapter,#game .exam-paper,#game .exam-rules{box-sizing:border-box;background:none;border:solid transparent;border-width:10px 11px 14px;border-image:url('assets/ui-art-v45/collection-card.webp') 65 48 108 90 fill stretch;border-radius:0;box-shadow:none;padding:9px 8px;margin:12px 0}
#game .beta-inset:has(.beta-stat-row){padding-inline:5px}
#game .beta-inset .beta-stat-row{border-width:9px 13px 10px}
#game .beta-strategies{gap:6px}
#game .beta-strategies>button{box-sizing:border-box;border:solid transparent;border-width:9px 7px 10px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;border-radius:0;min-height:87px;padding:3px 1px;color:#675038}
#game .beta-strategies>button.selected{border-image-source:url('assets/ui-art-v45/button-primary.webp');background:none;color:#fff1d4}
#game .beta-strategies b{font-size:14px;line-height:1.4}
#game .beta-strategies small{font:11px/1.6 var(--sans)!important}
#game .event-decision{border:solid transparent;border-width:10px 10px 13px;border-image:url('assets/ui-art-v45/collection-card.webp') 65 48 108 90 fill stretch;background:none;box-shadow:none;padding:3px 4px 2px;margin-bottom:9px}
#game .event-decision:before{display:none}
#game .event-decision.selected{background:none;box-shadow:none}
#game .event-decision .event-option-number{background:none;border:2px solid #a26943;color:#a26943;box-shadow:inset 0 0 0 1px #eed7ab;transform:rotate(-4deg);width:23px;height:25px}
#game .event-decision.selected .event-option-number{background:#697746;color:#fff1cb;border-color:#697746}
#game .event-decision-bottom{margin-top:6px}
#game .exam-prizes{padding:11px 3px;border:solid transparent;border-width:10px 16px;border-image:url('assets/ui-art-v45/business-scroll.webp') 58 82 60 83 fill stretch;background:none}
#game .beta-stamp{border:solid transparent;border-width:5px 7px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;padding:1px 2px;font-family:var(--serif)}
#game .beta-stamp.ready{color:#4d6844;background:none}
/* Keep the shop's identity and action labels readable in narrow phone panels. */
@media(max-width:360px){#game .sheet-content .shop-card{grid-template-columns:60px minmax(0,1fr);gap:7px;padding-inline:6px}#game .sheet-content .shop-card .shop-thumb{width:60px;height:85px}#game .sheet .shop-line{flex-wrap:nowrap;gap:3px}#game .sheet .shop-card h3{font-size:15px;letter-spacing:0;white-space:nowrap}#game .sheet .shop-card .tag{font-size:10px;white-space:nowrap}#game .sheet .shop-market-note{flex-direction:column;gap:0;padding-top:4px}#game .sheet-content .card-actions{margin-left:-67px}#game .sheet-content .card-actions button{font-size:12px}}
@media(max-width:360px){#game .beta-tabs,#game .exam-scroll-tabs{gap:4px}#game .beta-tabs>button,#game .exam-scroll-tabs>button{border-width:8px 8px;min-height:42px;font-size:14px}#game .exam-scroll-hero{padding:37px 23px 22px;min-height:244px}#game .exam-scroll-hero .exam-round-track{gap:3px;margin-inline:-9px}#game .exam-scroll-hero .exam-round-track>span{border-width:13px 7px 8px;min-height:60px}#game .exam-scroll-hero .exam-round-track b{font-size:18px}#game .exam-scroll-hero .exam-round-track small{font-size:10px;gap:3px}#game .exam-scroll-hero.is-answering{min-height:0;padding:7px 5px 10px}#game .beta-stat-row{border-width:11px 15px 12px}#game .beta-stat-row strong{font-size:18px}#game .beta-stat-row small{font-size:12px}#game .shop-ledger strong.compact-number{font-size:14px;letter-spacing:-.6px}#game .shop-ledger>div>img{width:27px;height:27px}#game .beta-hub-links{gap:6px}#game .beta-hub-links>.beta-link{font-size:12px;border-width:7px 9px 8px;padding-inline:0;gap:3px;min-height:44px}#game .shop-tools>.beta-link>img{width:22px;height:22px}#game .shop-tools>.beta-link>b{font-size:12px}#game .event-decision{padding:2px}#game .beta-inset,#game .beta-research-card,#game .beta-order{padding-inline:4px}}

/* polish-v503.css */
/* V5.0.3: illustrated surfaces and legible information hierarchy. */
#game .exam-rank-tabs{margin-top:5px;margin-bottom:15px}
#game .exam-prize-caption{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:2px 2px 4px;font:14px/1.5 var(--serif);color:#765431}
#game .exam-prize-caption small{font:10px/1.5 var(--sans);color:#89785c}
#game .exam-prizes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0;margin:3px 0 14px;border:0;background:none}
#game .exam-prizes>div{box-sizing:border-box;min-width:0;min-height:110px;padding:6px 0 5px;border:solid transparent;border-width:16px 9px 10px;border-image:url('assets/ui-art-v45/shop-sign.webp') 105 100 45 100 fill stretch;filter:drop-shadow(0 2px 1px #61432024)}
#game .exam-prizes span{font:600 20px/1.3 var(--serif);letter-spacing:1px;color:#78552f;text-shadow:0 1px #fff5db}
#game .exam-prizes .prize-place-1 span{color:#9b492e}
#game .exam-prizes b{gap:5px;font:600 25px/1.3 var(--sans);font-variant-numeric:tabular-nums;margin-top:5px;color:#76522c}
#game .exam-prizes img{width:25px;height:25px}
#game .exam-prizes small{display:block;font:11px/1.4 var(--serif);color:#907851}
#game .exam-rank-row{background:none;border:solid transparent;border-width:7px 10px 8px 12px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;padding:7px 5px;gap:9px;margin:8px 0}
#game .exam-rank-row>div{min-width:0}
#game .exam-rank-row>div>strong{overflow-wrap:anywhere;font:600 15px/1.5 var(--serif)}
#game .exam-rank-row small{font-size:11px;line-height:1.5;margin-top:2px}
#game .exam-rank-row.mine>div>strong{color:#93472f}

/* A rules booklet: illustrated cover, concise facts, then aligned clauses. */
#game .exam-rulebook{padding:4px 7px 6px;margin:16px 0}
#game .exam-rulebook>summary{display:flex;gap:8px;align-items:center;min-height:46px;list-style:none;padding:1px 0;user-select:none}
#game .exam-rulebook>summary::-webkit-details-marker{display:none}
#game .exam-rulebook>summary>img{width:32px;height:32px;object-fit:contain;flex:none}
#game .exam-rulebook>summary>span{flex:1;min-width:0;font:600 16px/1.4 var(--serif);color:#5b5436}
#game .exam-rulebook>summary small{display:block;font:11px/1.5 var(--sans);color:#8d7a58;margin-top:2px}
#game .exam-rulebook>summary>i{font:normal 20px/1 var(--serif);color:#987046;margin-right:2px;transition:transform .15s}
#game .exam-rulebook[open]>summary>i{transform:rotate(180deg)}
#game .exam-rulebook-body{padding-top:5px}
#game .exam-rule-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:2px 0 8px;padding:12px 0;background:linear-gradient(90deg,transparent,#d2c29140,transparent);border-block:1px solid #b8a06a66}
#game .exam-rule-facts>div{text-align:center;min-width:0}
#game .exam-rule-facts>div+div{border-left:1px solid #b8a06a66}
#game .exam-rule-facts b{display:block;font:600 24px/1.2 var(--sans);font-variant-numeric:tabular-nums;color:#885c34}
#game .exam-rule-facts b>small{font:11px var(--serif);margin-left:2px}
#game .exam-rule-facts span{display:block;font:12px/1.5 var(--serif);color:#807053;margin-top:4px}
#game .exam-rule-lines{margin:0}
#game .exam-rule-lines>div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;padding:10px 0;border-bottom:1px dashed #b6a07466}
#game .exam-rule-lines dt{font:600 14px/1.6 var(--serif);color:#9c603c}
#game .exam-rule-lines dd{margin:0;font:12px/1.75 var(--sans);color:#716247;overflow-wrap:anywhere}
#game .exam-rule-lines dd b{color:#5c5638;font-weight:600}
#game .exam-pool-note{display:flex;align-items:center;gap:9px;padding:10px 0 0;margin:0!important;color:#705131}
#game .exam-pool-note>img{width:30px;height:30px;object-fit:contain;flex:none}
#game .exam-pool-note small{display:block;font-size:11px;line-height:1.6;color:#887456}
#game .exam-rule-footnote{font-size:11px!important;line-height:1.75!important;color:#8a7a5c!important;margin:10px 0 2px}

/* Ten-question answer sheet: two equal rows, consistent with the paper buttons. */
#game .exam-question-index{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0}
#game .exam-question-index button{width:100%;height:36px;min-width:0;border:solid transparent;border-width:6px 7px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;border-radius:0;background:none;color:#80704d;box-shadow:none;font:600 14px/1 var(--sans);padding:0;text-align:center}
#game .exam-question-index button.answered{color:#42653e}
#game .exam-question-index button.answered:after{content:'·';margin-left:2px}
#game .exam-question-index button.current{border-image-source:url('assets/ui-art-v45/button-primary.webp');color:#fff0cc}
#game .exam-paper-meta{align-items:center;flex-wrap:wrap;font:13px/1.5 var(--serif);color:#735139;gap:6px}
#game .exam-paper-meta>[data-exam-deadline]{border:solid transparent;border-width:5px 7px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;padding:2px 3px;color:#5c6542;font:600 13px/1.2 var(--sans);white-space:nowrap}
#game .exam-paper-meta>.is-urgent{color:#a8442f}
#game .exam-paper .exam-choices{gap:8px}
#game .exam-paper .exam-choices button{min-width:0;white-space:normal}
#game .exam-paper .exam-choices button>b{overflow-wrap:anywhere}
#game .exam-scroll-hero.is-answering{padding:3px 6px 5px;border-width:8px 12px;margin-bottom:9px}
#game .exam-scroll-hero.is-answering .exam-progress-caption{font-size:11px;margin-bottom:3px}
#game .exam-scroll-hero.is-answering .exam-round-track{margin:3px 0 0;gap:5px}
#game .exam-scroll-hero.is-answering .exam-round-track>span{min-height:44px;border-width:9px 8px 7px;padding:1px 0 0}
#game .exam-scroll-hero.is-answering .exam-round-track b{font-size:16px;margin:0 0 2px;line-height:1.1}
#game .exam-scroll-hero.is-answering .exam-round-track small{font-size:10px;gap:2px}
#game .exam-scroll-hero.is-answering .exam-round-track small i{width:12px;height:12px;font-size:9px}
#game .exam-scroll-hero.is-answering+.exam-paper .exam-choices .beta-button{min-height:44px}
#game .exam-scroll-hero .exam-scroll-heading p{font-size:12px!important}

/* Apply the same source-art materials to remaining plain boxes. */
#game .market-card,#game .beta-product-choice,#game .beta-exhibit-active,#game .exam-explanation,#game .beta-price-note{box-sizing:border-box;border:solid transparent;border-width:10px 11px 14px;border-image:url('assets/ui-art-v45/collection-card.webp') 65 48 108 90 fill stretch;border-radius:0;background:none;box-shadow:none;padding:10px 8px;margin:12px 0}
#game .beta-product-choice{gap:8px}
#game .beta-product-choice .beta-button{width:65px;border-inline-width:6px;font-size:12px}
#game .beta-product-choice small{font-size:11px;line-height:1.5;margin-top:3px}
#game .market-card .market-category{background:none;border:solid transparent;border-width:4px 6px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;border-radius:0;padding:1px 2px;font:12px var(--serif)}
#game .market-card.market-down .market-category{color:#a25135}
#game .weekly-score,#game .ranking-summary,#game .account-stats,#game .currency-balance,#game .beta-wallet-hero{box-sizing:border-box;background:none;border:solid transparent;border-width:12px 17px 13px;border-image:url('assets/ui-art-v45/business-scroll.webp') 58 82 60 83 fill stretch;border-radius:0;box-shadow:none;padding:9px 5px;margin:13px 0}
#game .account-stats{padding:12px 0}
#game .account-stats b{color:#865a35;font:600 clamp(15px,4.7vw,19px)/1.3 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.4px}
#game .account-stats>span{border-left-color:#b4a17866}
#game .weekly-score{gap:8px}
#game .ranking-summary{flex-wrap:wrap;gap:8px}
#game .currency-balance{gap:6px}
#game .beta-wallet-hero{gap:8px}
#game .beta-wallet-hero>img{width:47px;height:47px}
#game .beta-wallet-hero strong{font-size:29px}
#game .news-shop-link,#game .account-menu>.account-row{box-sizing:border-box;background:none;border:solid transparent;border-width:7px 11px 9px 13px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;padding:6px 5px;box-shadow:none;border-radius:0;margin:5px 0}
#game .account-menu>.account-row{gap:9px;min-height:68px}
#game .account-menu .account-row>img{width:29px;height:29px}
#game .account-menu .account-row b{font-size:15px}
#game .account-menu .account-row small{font-size:11px}
#game .logout-button,#game .v16-primary,#game .v16-secondary{border:solid transparent;border-width:8px 11px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;border-radius:0;box-shadow:none;padding:1px 5px}
#game .v16-primary{border-image-source:url('assets/ui-art-v45/button-primary.webp');color:#fff0cf}
#game .house-tabs{gap:5px;border:0;margin:12px 0}
#game .house-tabs button{border:solid transparent;border-width:8px 10px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;color:#70573b;min-height:42px;padding:1px 3px;font:15px/1.4 var(--serif);box-sizing:border-box}
#game .house-tabs button.active{border-image-source:url('assets/ui-art-v45/button-primary.webp');color:#fff0cf}
#game .beta-auto input,#game .beta-stack-field input,#game .name-field input{box-sizing:border-box;border:solid transparent;border-width:6px 9px;border-image:url('assets/ui-art-v45/button-secondary.webp') 44 80 fill stretch;background:none;border-radius:0;padding:4px 5px;min-height:44px}
#game .exam-rules a,#game .exam-explanation a{text-decoration-thickness:1px;text-underline-offset:3px}
@media(max-width:360px){
 #game .exam-prize-caption{font-size:12px}#game .exam-prize-caption small{font-size:9px}
 #game .exam-prizes{gap:4px}#game .exam-prizes>div{border-inline-width:7px;min-height:101px;padding-inline:0}#game .exam-prizes span{font-size:18px}#game .exam-prizes b{font-size:22px;gap:3px}#game .exam-prizes img{width:22px;height:22px}
 #game .exam-rulebook{padding-inline:4px}#game .exam-rulebook>summary>span{font-size:15px}#game .exam-rulebook>summary>img{width:28px;height:28px}
 #game .exam-rule-lines>div{grid-template-columns:28px minmax(0,1fr);gap:7px}#game .exam-rule-lines dd{font-size:12px}
 #game .exam-scroll-hero .exam-scroll-heading p{font-size:10px!important}
 #game .exam-paper-meta{font-size:12px;gap:3px}#game .exam-paper-meta>b{font:600 12px/1.5 var(--serif);white-space:nowrap}#game .exam-paper-meta>[data-exam-deadline]{font-size:11px;border-inline-width:6px;padding-inline:1px}
 #game .beta-product-choice{padding-inline:3px;gap:5px}#game .beta-product-choice .item-image{width:30px;height:35px}#game .beta-product-choice b{font-size:13px}
 #game .beta-strategies>button{border-inline-width:5px;padding-inline:0}#game .beta-strategies b{font-size:12px;letter-spacing:-.2px;white-space:nowrap}#game .beta-strategies small{font-size:10px!important;white-space:nowrap}
 #game .beta-wallet-hero>img{width:38px;height:38px}#game .beta-wallet-hero .beta-text-button{font-size:12px}
}

/* steward-v505.css */
/* Compact one-click care, using the game's original paper and wooden frames. */
#game .steady-auto{padding:12px 11px 8px;margin:14px 0 10px}
#game .steady-heading{display:flex;align-items:center;gap:9px;min-width:0}
#game .steady-heading>img{width:46px;height:46px;object-fit:contain;flex:none}
#game .steady-heading>div{flex:1;min-width:0}
#game .steady-heading .beta-eyebrow{font-size:11px;line-height:1.4;color:#8a7452}
#game .steady-heading h3{margin:3px 0 0;font:22px/1.2 var(--serif);letter-spacing:.04em;color:#365b48}
#game .steady-seal{writing-mode:vertical-rl;font:13px/1.2 var(--serif);letter-spacing:.15em;color:#97613a;border:1px solid #a58a54;padding:5px 3px;flex:none}
#game .steady-auto.is-active .steady-seal{color:#395a42;border-color:#6b8158}
#game .steady-auto .steady-copy{font-size:13px;line-height:1.65;margin:10px 0;color:#71634b}
#game .steady-benefits{display:flex;justify-content:center;align-items:center;padding:8px 0;border-top:1px solid #ad986455;border-bottom:1px solid #ad986455;margin:0 0 9px;gap:0;color:#516245;font:13px/1.4 var(--serif)}
#game .steady-benefits>span{flex:1;text-align:center;white-space:nowrap}
#game .steady-benefits>span+span{border-left:1px solid #ad986455}
#game .steady-auto .steady-status{font-size:12px;line-height:1.55;color:#756245;margin:0 0 8px;text-align:center}
#game .steady-auto.is-active .steady-status{color:#416345}
#game .steady-auto>.beta-button{width:100%;min-height:44px;display:flex;align-items:center;justify-content:center;margin:0}
#game .steady-auto .steady-footnote{font-size:10px;line-height:1.5;text-align:center;margin:7px 0 0;color:#8a795a}
#game .steady-manual{margin:8px 0 15px;border:0;background:none;min-width:0}
#game .steady-manual>summary{cursor:pointer;display:flex;align-items:center;gap:6px;min-height:46px;box-sizing:border-box;padding:6px 8px;border:solid transparent;border-width:5px 10px;border-image:url('assets/ui-art-v45/resource-scroll.webp') 45 112 40 92 fill stretch;list-style:none;color:#705437;font:15px/1.3 var(--serif)}
#game .steady-manual>summary::-webkit-details-marker{display:none}
#game .steady-manual>summary small{font:10px/1.4 var(--sans);color:#8b7b5e;margin-left:auto}
#game .steady-manual>summary:after{content:'⌄';font:17px/1 var(--serif);margin-left:2px}
#game .steady-manual[open]>summary:after{content:'⌃'}
#game .steady-manual-body{padding:6px 2px 0}
@media(max-width:360px){#game .steady-auto{padding:9px 5px 6px}#game .steady-heading{gap:6px}#game .steady-heading>img{width:36px;height:36px}#game .steady-heading h3{font-size:20px}#game .steady-auto .steady-copy{font-size:12px}#game .steady-benefits{font-size:12px}#game .steady-manual>summary{font-size:14px;padding-inline:2px}#game .steady-manual>summary small{font-size:9px}}

/* collection-polish-v506.css */
/* V5.0.6: Keep long amounts out of fixed three-column frames. */
#game .beta-stat-row>div,#game .account-stats>span,#game .stats-grid>.stat{min-width:0}
#game .beta-stat-row strong,#game .account-stats b,#game .stat strong{font-variant-numeric:tabular-nums lining-nums;letter-spacing:0;max-width:100%;overflow-wrap:anywhere}
#game .account-stats b{font-size:clamp(16px,4.6vw,20px);line-height:1.3}
#game .account-stats>span{padding-inline:5px}
#game .wallet-balances strong{font-size:21px}
#game .beta-stat-row.shop-ledger strong{font-size:19px}
#game .beta-offline-hero{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:12px;align-items:center;text-align:left;margin:10px 4px 16px}
#game .beta-offline-hero>img{grid-row:1/3;width:46px;height:46px}
#game .beta-offline-hero h3{margin:0;font-size:18px;line-height:1.4}
#game .beta-offline-hero p{grid-column:2;margin:3px 0 0;color:#7b694e;font-size:12px;line-height:1.5}
#game .offline-ledger{padding:13px 13px 10px;margin-top:10px}
#game .receipt-total{text-align:center;padding:4px 0 17px;border-bottom:1px solid #b59a6470}
#game .receipt-total>span{display:block;font:17px/1.4 var(--serif);color:#6c573a}
#game .receipt-total>strong{display:block;font:600 clamp(26px,8vw,34px)/1.3 var(--sans);color:#355a43;margin:8px 0 6px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums lining-nums}
#game .receipt-total .is-loss{color:#ad4c37}
#game .receipt-total>small{display:block;color:#806e52;font:12px/1.5 var(--sans)}
#game .receipt-lines,#game .collection-income-lines{margin:8px 0 0}
#game .receipt-lines>div,#game .collection-income-lines>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:baseline;gap:8px;padding:10px 0;border-bottom:1px solid #b59a6433}
#game .receipt-lines dt,#game .collection-income-lines dt{color:#756147;font:14px/1.5 var(--sans)}
#game .receipt-lines dd,#game .collection-income-lines dd{margin:0;text-align:right;font:600 18px/1.4 var(--sans);font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere;min-width:0;color:#6f4c2f}
#game .receipt-lines dd small,#game .collection-income-lines dd small{font-size:12px;font-weight:400;color:#806e52}
#game .collection-gain-line dd,#game .ledger-collection-gain{color:#365c43}
#game .receipt-precision{padding-top:11px}
#game .receipt-precision summary{font:13px/1.5 var(--sans);color:#74644a;cursor:pointer;min-height:30px}
#game .receipt-precision p{font-size:12px;line-height:1.7;overflow-wrap:anywhere;margin:4px 0}
#game .income-breakdown .beta-large-number{display:block;font:600 28px/1.4 var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;color:#805934}
#game .income-breakdown .beta-large-number small{font-size:13px;font-weight:400}
#game .income-breakdown p{font-size:12px;line-height:1.6;margin-bottom:3px}
#game .beta-ledger-row{gap:12px}
#game .beta-ledger-row>div{min-width:0;overflow-wrap:anywhere}
#game .beta-ledger-row>div:last-child{flex-shrink:0;max-width:47%}
#game .collection-income-lines dd{font-size:16px}
#game .collection-earned{margin:10px 0;padding:10px 0;border-block:1px solid #b59a6460;color:#6b5b40;text-align:center;font-size:13px}
#game .collection-earned strong{font:600 19px/1.4 var(--sans);color:#365c43;overflow-wrap:anywhere}
#game .currency-bridge{padding:14px 3px 12px;margin:6px 0 16px;border-bottom:1px solid #b59a6470}
#game .currency-bridge h3{font:20px/1.4 var(--serif);color:#3f573e;margin:5px 0 12px}
#game .currency-bridge ol{list-style:none;margin:0;padding:0}
#game .currency-bridge li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;padding:9px 0;position:relative}
#game .currency-bridge li+li{border-top:1px dashed #b59a6450}
#game .currency-bridge img{width:32px;height:32px;object-fit:contain}
#game .currency-bridge b{display:block;font:16px/1.4 var(--serif);color:#5d4e35}
#game .currency-bridge small{display:block;font:12px/1.5 var(--sans);color:#7c6d52;margin-top:3px}
#game .currency-bridge p{font-size:12px;line-height:1.6;color:#7c6d52;margin:12px 0 0}
#game .currency-bridge .currency-route{font:15px/1.8 var(--serif);color:#765a36;margin:6px 0}
#game .currency-how summary{font:12px/1.5 var(--sans);color:#6d7157;cursor:pointer;padding:7px 0 0}
#game .compact-bridge p{font-size:13px}
@media(max-width:360px){#game .offline-ledger{padding:9px 7px}#game .receipt-lines dt,#game .collection-income-lines dt{font-size:12px}#game .receipt-lines dd{font-size:16px}#game .receipt-total>small{font-size:11px}#game .beta-stat-row.shop-ledger strong{font-size:16px}#game .account-stats>span{font-size:11px;padding-inline:3px}#game .wallet-balances strong{font-size:18px}#game .collection-income-lines dd{font-size:14px}}
@media(max-width:360px){#game .account-stats b{font-size:14px;white-space:nowrap;overflow-wrap:normal}}

/* Ledger typography: Song/Kai text, restrained tabular figures, clear reading order. */
#game .ledger-page{font:15px/1.75 var(--serif);color:#604d35;font-kerning:normal;text-rendering:optimizeLegibility;padding-inline:3px}
#game .ledger-page h3{font:400 21px/1.45 var(--serif);color:#3f4b36;margin:0}
#game .ledger-page .wallet-balances small{font:14px/1.5 var(--serif);color:#756047}
#game .ledger-page .income-breakdown{padding:13px 8px 12px}
#game .ledger-page .income-breakdown h3{font-size:19px;margin-bottom:8px}
#game .ledger-page .income-breakdown .beta-large-number{font-weight:500;line-height:1.35;margin-bottom:8px;color:#775335}
#game .ledger-page .receipt-lines dt{font:15px/1.6 var(--serif);color:#66513a}
#game .ledger-page .receipt-lines dd{font-weight:500}
#game .ledger-page .receipt-lines .ledger-quota{display:block;font:12px/1.6 var(--serif);color:#8a7554;white-space:nowrap;margin-top:3px}
#game .balance-details{font:13px/1.65 var(--serif);color:#766044;text-align:right;margin:-3px 4px 12px}
#game .balance-details summary{cursor:pointer;min-height:32px;padding:5px 0}
#game .balance-details p{font:14px/1.8 var(--sans);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:5px 0 10px}
#game .ledger-page .ledger-income-note{font:15px/1.75 var(--serif);color:#596244;margin:13px 0 4px}
#game .ledger-page .ledger-fineprint{display:block;font:13px/1.7 var(--serif);color:#7b674b}
#game .ledger-page .beta-hub-links>.beta-link{font:400 15px/1.4 var(--serif);justify-content:center;gap:7px}
#game .ledger-page .beta-hub-links>.beta-link>span{font-size:17px;margin-left:0}
#game .wallet-circulation{margin:23px 2px 25px;padding:0 2px 18px;border-bottom:1px solid #b79e7166}
#game .wallet-circulation>header{display:flex;align-items:center;gap:12px;margin-bottom:12px}
#game .ledger-seal{flex:none;display:grid;place-items:center;width:30px;height:34px;color:#a54e36;border:1px solid #a54e36;border-radius:3px;font:20px/1 var(--serif);box-shadow:inset 0 0 0 2px #f3e8cd,inset 0 0 0 3px #a54e3660;transform:rotate(-3deg)}
#game .wallet-circulation>header p{font:13px/1.65 var(--serif);color:#82704f;margin:2px 0 0}
#game .wallet-circulation ol{list-style:none;margin:0 0 14px;padding:0}
#game .wallet-circulation li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0}
#game .wallet-circulation li+li{border-top:1px dashed #bba77a55}
#game .wallet-circulation li img{width:31px;height:34px;object-fit:contain}
#game .wallet-circulation li b{display:block;font:400 17px/1.5 var(--serif);color:#55482f}
#game .wallet-circulation li span{display:block;font:14px/1.65 var(--serif);color:#776249;margin-top:1px}
#game .wallet-circulation .beta-hub-links{margin-bottom:8px;gap:8px}
#game .wallet-rules{font:13px/1.7 var(--serif);color:#7a6549;margin-top:5px}
#game .wallet-rules summary{padding:8px 0;min-height:36px;cursor:pointer}
#game .wallet-rules p{font:14px/1.8 var(--serif);margin:4px 0}
#game .wallet-records{padding:0 3px 12px}
#game .wallet-records .beta-section-heading{margin:0 0 10px;align-items:baseline}
#game .wallet-records .beta-section-heading>span{font:12px/1.5 var(--serif);color:#887052;white-space:nowrap}
#game .wallet-entry{padding:17px 0 15px;border-bottom:1px solid #b99f6d66}
#game .wallet-entry-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px}
#game .wallet-entry h4{font:400 17px/1.55 var(--serif);color:#53442e;margin:0;overflow-wrap:anywhere}
#game .wallet-entry-top>strong{font:500 18px/1.45 var(--sans);font-variant-numeric:tabular-nums lining-nums;color:#95602f;white-space:nowrap}
#game .wallet-entry-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font:13px/1.7 var(--serif);color:#897150;margin-top:5px}
#game .wallet-entry-meta>span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}
#game .wallet-entry-bonus{display:flex;align-items:center;gap:8px;margin-top:9px;color:#466447;font:13px/1.5 var(--serif)}
#game .wallet-entry-bonus:before{content:'◆';font-size:7px;color:#83906b}
#game .wallet-entry-bonus b{font:400 13px/1.5 var(--sans);font-variant-numeric:tabular-nums}
#game .offline-ledger .receipt-lines dt{font-family:var(--serif);font-size:15px;color:#66523b}
#game .offline-ledger .receipt-total>small,#game .receipt-precision{font-family:var(--serif)}
#game .receipt-precision summary{font:14px/1.65 var(--serif)}
#game .receipt-precision p{font:14px/1.8 var(--serif)}
#game .offline-ledger+.beta-intro{font:15px/1.75 var(--serif);color:#6e5b40}
@media(max-width:360px){
 #game .ledger-page{padding-inline:1px}
 #game .ledger-page .beta-hub-links>.beta-link{font-size:14px;border-inline-width:7px;gap:4px}
 #game .ledger-page .receipt-lines dt{font-size:14px}
 #game .wallet-circulation li{gap:9px;grid-template-columns:29px minmax(0,1fr)}
 #game .wallet-circulation li img{width:27px;height:31px}
 #game .wallet-circulation li span{font-size:13px}
 #game .wallet-entry h4{font-size:16px}
 #game .wallet-entry-top>strong{font-size:16px}
 #game .wallet-entry-meta{font-size:12px}
 #game .offline-ledger .receipt-lines dt{font-size:14px}
}

/* Shared modal copy and numeric surfaces. Existing illustrated frames stay intact. */
#game .sheet-content{font-family:var(--serif);font-size:15px;line-height:1.75;color:#605039;font-kerning:normal}
#game .sheet-content p{font-family:var(--serif)}
#game .sheet-content .beta-intro{font:15px/1.75 var(--serif);color:#705a40}
.beta-welcome-content{font:15px/1.8 var(--serif);color:#685139}
#game .beta-intro,#game .paper-note,#game .promotion-copy p,#game .market-card>p,#game .market-rules p,#game .beta-research-card>p:not(.beta-reward):not(.beta-muted),#game .beta-order>p:not(.beta-reward),#game .event-letter-paper p,#game .beta-artifact-caption p{font:15px/1.75 var(--serif);color:#705a40}
#game .beta-footnote,#game .panel-footnote,#game .steady-footnote{font:13px/1.7 var(--serif)!important;color:#806a4b}
#game .beta-muted{font:13px/1.75 var(--serif)!important;color:#7c674b}
#game .sheet-content :is(.beta-cost,.beta-reward,.product-price strong,.stock-line b,.market-metrics b,.market-outlook strong,.ranking-row>strong,.event-cost,.event-effect b,.beta-bonus){font-variant-numeric:tabular-nums lining-nums;font-kerning:normal}
#game .beta-reward{font:15px/1.8 var(--serif);color:#8c5a30}
#game .stock-line{gap:6px 12px;flex-wrap:wrap;font:14px/1.65 var(--serif)}
#game .stock-line>span{white-space:nowrap}
#game .stock-line b{font:400 13px/1.65 var(--sans)}
#game .shop-market-note{flex-wrap:wrap;gap:5px 10px;font:13px/1.6 var(--serif)}
#game .shop-market-note b{font-weight:400}
#game .product-card{gap:9px;min-width:0}
#game .product-copy{min-width:0;flex:1}
#game .product-price{min-width:0;max-width:40%;flex-shrink:0}
#game .product-price strong{font:500 23px/1.35 var(--sans);overflow-wrap:anywhere}
#game .product-price small{font:12px/1.5 var(--serif);color:#80684a}
#game .stats-grid .stat strong{font-size:19px}
#game .house-price-details{margin:15px 1px;font:15px/1.75 var(--serif);color:#6b573a;border-block:1px solid #b79e7166}
#game .house-price-details summary{padding:12px 3px;cursor:pointer;min-height:46px;color:#536145}
#game .house-price-details .receipt-lines{padding:0 5px}
#game .house-price-details .receipt-lines dt{font:15px/1.65 var(--serif)}
#game .house-price-details p{font:13px/1.8 var(--serif);color:#826b4b;margin:10px 5px 15px}
#game .upgrade-comparison .beta-section-heading{margin:0 0 10px;align-items:baseline;flex-wrap:wrap}
#game .upgrade-comparison .receipt-lines dt{font:14px/1.65 var(--serif)}
#game .upgrade-comparison .receipt-lines dd{font-size:16px;white-space:nowrap}
#game .upgrade-comparison .receipt-lines dd>span{color:#a89671;font-size:13px;padding:0 3px}
#game .upgrade-comparison p{font:14px/1.8 var(--serif);color:#7b6446;margin:12px 0 3px}
#game .market-outlook{gap:8px;flex-wrap:wrap}
#game .weekly-score strong{font-size:28px;font-weight:500;overflow-wrap:anywhere}
#game .weekly-score small{line-height:1.8;display:block;margin-top:6px}
#game .weekly-ledger{grid-column:1/-1;border-top:1px solid #b79e7144;padding-top:10px;margin-top:4px}
#game .weekly-ledger>span{display:flex;justify-content:space-between;gap:12px;font:14px/1.7 var(--serif);color:#7a6447;padding:3px 0}
#game .weekly-ledger b{font:400 14px/1.7 var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}
#game .ranking-row{grid-template-columns:24px 34px minmax(0,1fr) auto;gap:7px}
#game .ranking-row>strong{font-size:15px;white-space:nowrap}
#game .beta-collection-summary{gap:8px;flex-wrap:wrap}
#game .beta-wallet-hero strong{font-size:28px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#game .currency-bridge small{font:14px/1.7 var(--serif)}
#game .currency-bridge p{font:14px/1.75 var(--serif)}
#game .currency-bridge .currency-route{font:16px/1.8 var(--serif)}
#game .exam-rule-lines dd,#game .exam-host p,#game .exam-entry>p{font:14px/1.8 var(--serif);color:#715a3f}
#game .event-effects{font:13px/1.65 var(--serif);gap:5px 12px}
@media(max-width:360px){
 #game .sheet-content{font-size:14px}
 #game .sheet-content .beta-intro{font-size:14px}
 #game .beta-intro,#game .paper-note,#game .promotion-copy p,#game .market-card>p,#game .beta-artifact-caption p{font-size:14px}
 #game .product-price strong{font-size:20px}
 #game .stock-line{font-size:13px}
 #game .sheet[data-page="house"] .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #game .sheet[data-page="house"] .stats-grid>.stat:last-child{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;border-left:0;border-top:1px solid #b79e7150;padding:8px 0 0;margin-top:4px;gap:8px}
 #game .sheet[data-page="house"] .stats-grid>.stat:last-child small{order:-1}
 #game .ranking-row{grid-template-columns:20px 30px minmax(0,1fr) auto;gap:5px}
 #game .ranking-row>strong{font-size:13px}
 #game .ranking-row>div>b{font-size:14px}
}

/* Progression is explained alongside the cost, using the existing paper UI. */
.growth-gain{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-block:1px solid #b99b6370;color:#385d49}
.growth-gain strong{font-family:var(--sans);font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap}
.growth-gain small{font-size:12px;font-weight:400;color:#776d51}
.research-comparison{margin:14px 0 6px}
.research-compare-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:8px;align-items:center;min-height:35px;border-bottom:1px solid #b99b633b;font-size:14px;font-variant-numeric:tabular-nums}
.research-compare-row>:not(:first-child){text-align:right;font-family:var(--sans);min-width:0}
.research-compare-row.heading{font-size:12px;color:#776d51}
.research-compare-row.heading b{font-family:var(--serif);font-weight:400}
.research-compare-row.profit{color:#385d49;font-weight:600}
.growth-allowance{margin-top:12px;border-top:1px solid #b99b6370;padding-top:10px;font-size:13px}
.growth-allowance summary{cursor:pointer;color:#46644b}
#game .growth-allowance p{font-size:13px;line-height:1.7}
#game .upgrade-comparison .receipt-lines dt{white-space:normal}
#game .upgrade-comparison .receipt-lines dd{font-size:16px;white-space:nowrap}
@media(max-width:360px){.growth-gain{gap:6px;font-size:13px}.growth-gain strong{font-size:18px}.research-compare-row{font-size:13px;gap:5px}#game .upgrade-comparison .receipt-lines dd{font-size:14px}}

/* V5.0.8: visible product choices and honest idle timing. */
.direct-products{margin:16px 0;padding:15px 13px}.direct-products .section-heading{margin-top:0;gap:8px;flex-wrap:wrap}.direct-products .beta-product-choice{min-width:0;gap:9px}.direct-products .beta-product-choice>div{min-width:0}.direct-products .beta-product-choice button{max-width:100px;white-space:normal;line-height:1.5;padding:10px 9px;min-height:44px}.idle-cadence{margin:12px 0;font-variant-numeric:tabular-nums}.idle-cadence dd{white-space:nowrap}.event-applicable{display:block;padding:15px 14px;border-top:1px solid #b99862;border-bottom:1px solid #b99862;background:rgba(220,190,126,.12)}.event-applicable strong{color:#355b45;font-size:14px}.event-applicable p{margin:8px 0;line-height:1.7}.event-applicable small{display:block;line-height:1.65;color:#7c6d51}
@media(max-width:360px){.direct-products{padding:12px 9px}.direct-products .beta-product-choice{gap:6px}.direct-products .beta-product-choice button{max-width:80px;font-size:12px}.idle-cadence dd{font-size:14px}}
#game .direct-products{padding:0;border:0;background:none;box-shadow:none}

/* market-v510.css */
.side-actions{gap:6px;top:clamp(160px,23vh,210px)}
.side-actions button{position:relative;width:52px;min-height:59px}
.news-dot{position:absolute;right:4px;top:5px;width:7px;height:7px;background:#b64833;border-radius:50%;box-shadow:0 0 0 2px #f5e9cb}
.product-option-v510{box-sizing:border-box;margin:12px 0;padding:10px 8px;background:none;border:solid transparent;border-width:10px 11px 14px;border-image:url('assets/ui-art-v45/collection-card.webp') 65 48 108 90 fill stretch;border-radius:0;box-shadow:none}
.product-option-v510.is-current .product-option-head h3{color:#365841}
.product-option-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:9px;align-items:center}
.product-option-head img{width:48px;height:48px;object-fit:contain}.product-option-head h3{font-size:16px;line-height:1.45;margin:3px 0}.product-trend{font:600 13px/1.5 var(--number-font,Arial);color:#3c624c;white-space:nowrap}
.product-quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0 9px;padding:10px 0;border-block:1px solid #b29a7155;text-align:center}
.product-quotes>div+div{border-left:1px solid #b29a7155}.product-quotes dt{font-size:11px;color:#7c7059;margin-bottom:5px}.product-quotes dd{font:600 15px/1.3 var(--number-font,Arial);font-variant-numeric:tabular-nums;margin:0;color:#77522f}
.product-quotes dd.is-loss,.is-loss{color:#ab4937}.product-cadence,.collection-requirement{font-size:12px!important;line-height:1.7!important;margin:8px 0!important}.collection-requirement{color:#8a562c}.product-option-v510>.beta-button{width:100%;margin-top:8px}
.news-product header{display:flex;gap:12px;align-items:center}.news-product header img{width:48px;height:48px;object-fit:contain}.news-product h3{font-size:18px;line-height:1.5;margin:3px 0}.news-product p{font-size:13px;line-height:1.85}.news-changes{display:flex;flex-wrap:wrap;gap:7px 16px;border-block:1px solid #b6a07c66;padding:9px 0;font-size:12px}.news-changes b{font-family:var(--number-font,Arial);font-variant-numeric:tabular-nums}.weekly-market-v510>summary{padding:13px 0;color:#425d46;font-size:16px}.order-purpose h3{margin:7px 0}.beta-order header{flex-wrap:wrap;gap:9px}.beta-order header>div{flex:1;min-width:120px}.beta-order header .beta-stamp{font-size:11px}.beta-order .receipt-lines{margin:10px 0}.beta-order .receipt-lines dd{white-space:nowrap}.beta-order-goods{align-items:center}
@media(max-height:720px){.side-actions{top:155px;gap:3px}.side-actions button{min-height:49px;width:46px}.side-actions .side-icon{height:28px}}

/* story-v512.css */
/* V5.1.2 — illustrated stories, lasting exhibitions and the Shu road wordmark. */
.loading-brand h1{margin:12px 0 8px;line-height:0;letter-spacing:0}
.game-wordmark{display:block;width:100%;height:auto;object-fit:contain}
.loading-brand .game-wordmark{width:min(100%,390px);margin:auto}
.city-title h1{margin:3px 0 0;line-height:0}
.city-title .game-wordmark{width:162px}
.session-card h1:has(.game-wordmark){line-height:0;letter-spacing:0}
.session-card .game-wordmark{width:min(100%,300px);margin:0 auto 16px}
#offline-receipt:not([hidden]){display:flex;align-items:center;gap:8px;left:16px;bottom:191px;padding:10px 13px 10px 10px;min-height:66px;max-width:calc(100% - 116px);border:1px solid #98633b;border-radius:2px 8px 8px 2px;background:linear-gradient(115deg,#faf0d4ed,#eee0bbed);box-shadow:0 3px 9px #35281835,inset 0 0 0 3px #fff7e148;color:#385446;text-align:left}
#offline-receipt::before{content:'';position:absolute;left:0;top:8px;bottom:8px;border-left:3px solid #ac4937}
#offline-receipt>img{width:35px;height:39px;object-fit:contain;flex:none}
.offline-note{display:grid;gap:4px;min-width:0}
.offline-note b{font:14px/1.3 var(--serif);white-space:nowrap}
.offline-note i{font:10px/1.3 var(--sans);font-style:normal;color:#887651;padding-left:6px}
.offline-note strong{font:600 18px/1.2 var(--sans);color:#905d29;font-variant-numeric:tabular-nums;white-space:nowrap}
.offline-note small{font:11px/1.2 var(--sans);font-weight:400}
.offline-arrow{margin-left:auto;font:26px/1 var(--serif);color:#9b7947}
.story-library-heading{text-align:center;padding:4px 3px 18px}
.story-library-heading h3{font:23px/1.5 var(--serif);color:#305747;margin:7px 0}
.story-library-heading p{font:13px/1.7 var(--sans);color:#807255;margin:0}
.story-book{margin-bottom:18px!important;padding:16px 18px!important}
.story-book-art{position:relative;height:144px;display:flex;justify-content:center;align-items:center;margin:0 0 14px;background:radial-gradient(ellipse,#d6bb7333,transparent 70%)}
.story-book-art>img{width:82%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 7px #59452726)}
.story-chapter{position:absolute;left:0;top:8px;writing-mode:vertical-rl;letter-spacing:4px;font:14px/1.6 var(--serif);color:#995e3d;border-left:1px solid #b7915f;border-right:1px solid #b7915f;padding:6px 2px}
.story-book header{display:flex;align-items:center;gap:8px;justify-content:space-between}
.story-book header h3{font:19px/1.5 var(--serif);margin:0;color:#2f5848}
.story-book header .beta-stamp{flex:none}
.story-book p{font:14px/1.8 var(--sans);margin:10px 0 14px;color:#77664c}
.story-book .beta-button{width:100%}
.story-reward{display:block;font:11px/1.7 var(--sans);color:#987449;margin:10px 2px 0;text-align:center}
.story-reader{padding:0 2px 12px}
.story-reader-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;color:#95794e;font:12px/1.5 var(--sans)}
.story-back{border:0;background:none;color:#566647;font:14px/1.5 var(--serif);padding:8px 6px 8px 0;min-height:36px}
.story-reader-bar b{font-size:17px;font-weight:600}
.story-page-track{list-style:none;margin:8px 0 15px;padding:0;display:flex;gap:6px}
.story-page-track li{height:3px;border-radius:3px;background:#cbb7894a;flex:1}
.story-page-track li.read{background:#a5aa85}
.story-page-track li.current{background:#a9563d}
.story-figure{position:relative;margin:0 0 16px;display:flex;flex-direction:column;align-items:center;overflow:hidden;min-width:0;border-bottom:1px solid #c7ae7855;background:radial-gradient(ellipse at center,#ddc67c30,transparent 75%)}
.story-figure>img{width:100%;height:194px;object-fit:contain;display:block;padding:6px 18px}
.story-figure.story-scene>img{height:auto;aspect-ratio:3/2;object-fit:cover;padding:0;border-radius:3px}
.story-figure.story-bronze-detail>img{transform:scale(1.08);object-position:center}
.story-figure figcaption{font:11px/1.6 var(--sans);color:#99815e;text-align:center;padding:9px 0 11px;z-index:1}
.story-narrator{display:flex;gap:7px;align-items:center;color:#967044;font:12px/1.5 var(--serif)}
.story-narrator img{width:31px;height:31px;object-fit:contain}
.story-narrator i{flex:1;height:1px;background:#c5a76a70;margin-left:5px}
.story-narration h3{font:23px/1.5 var(--serif);color:#32594a;margin:9px 0 11px;font-weight:400}
.story-narration h3:focus{outline:none}
.story-narration p{font:15px/1.95 var(--sans);color:#645b45;margin:0 0 20px;text-align:justify}
.story-reader-actions{display:grid;grid-template-columns:105px 1fr;gap:10px;margin:17px 0 0}
#game .story-reader-actions .beta-button{min-height:48px;padding:10px 10px;font:16px/1.4 var(--serif);white-space:normal;letter-spacing:0}
#game .story-narration p{font:15px/1.9 var(--serif);color:#64543d}
#game .story-narration h3{font:23px/1.5 var(--serif);margin:9px 0 11px}
.story-read-note{font:11px/1.7 var(--sans);color:#988566;text-align:center;margin:10px 0 18px}
.story-source{border-top:1px solid #c7ae7855;padding-top:10px;font:12px/1.8 var(--sans);color:#8d7c5e}
.story-source summary{cursor:pointer;padding:3px 0}
.story-source a{display:block;color:#5b795d;text-underline-offset:3px;margin-top:8px}
.story-source p{font-size:11px}
.story-finished{display:flex;align-items:center;gap:12px;border-top:1px solid #bc9e6955;border-bottom:1px solid #bc9e6955;padding:14px 0;color:#466344}
.story-finish-seal{border:2px solid #9e543f;color:#9e543f;border-radius:3px;font:26px/1.2 var(--serif);padding:2px 6px;transform:rotate(-6deg)}
.story-finished b{font:18px/1.5 var(--serif)}
.story-finished p{font:12px/1.8 var(--sans);margin:3px 0 0;color:#8d7349}
.exhibit-permanent-hero{position:relative;padding-top:0}
.exhibit-permanent-hero h3{font-size:23px!important}
.exhibit-permanent-seal{position:absolute;right:9px;top:14px;writing-mode:vertical-rl;font:14px/1.5 var(--serif);letter-spacing:2px;color:#9c503a;border:1px solid #9c503a;padding:7px 3px;transform:rotate(5deg)}
.exhibit-plan{padding:18px!important;margin:18px 0}
.exhibit-plan header{display:flex;align-items:center;justify-content:space-between;gap:7px;font:16px/1.5 var(--serif);color:#42614f}
.exhibit-next{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:24px 0 20px;text-align:center}
.exhibit-next>span{font:12px/1.5 var(--serif);color:#a1906c}
.exhibit-next small{display:block;color:#96815c;font:12px/1.5 var(--sans);margin-bottom:7px}
.exhibit-next strong{font:600 30px/1.2 var(--sans);color:#8e6138;font-variant-numeric:tabular-nums;white-space:nowrap}
.exhibit-next em{display:block;font:12px/1.5 var(--serif);font-style:normal;font-weight:400;color:#96815c;margin-top:4px}
.exhibit-next>div:last-child strong{color:#426c4f}
.exhibit-plan .receipt-lines{margin:0 0 15px}
.exhibit-plan .receipt-lines div{font-size:13px;padding:8px 0}
#game .exhibit-plan .receipt-lines dt{font-size:13px}
#game .exhibit-plan .receipt-lines dd{font-size:16px}
.exhibit-plan .beta-button{width:100%}
.exhibit-explanation{font:12px/1.85 var(--sans);color:#897959;padding:0 7px}
@media(max-width:360px){.loading-brand{left:20px;right:20px}.story-narration h3{font-size:21px}.story-figure>img{height:166px}.story-narration p{font-size:14px}.story-book header{flex-wrap:wrap}.exhibit-plan{padding:16px 12px!important}.exhibit-next{gap:6px}.exhibit-next strong{font-size:25px}#offline-receipt:not([hidden]){left:12px;padding-right:10px;gap:6px}.offline-note strong{font-size:16px}.offline-note i{font-size:9px}}

#game .exhibit-plan .receipt-lines{margin:15px 0 0}
#game .exhibit-permanent-hero{padding-bottom:0}
#game .exhibit-permanent-hero .artifact{height:90px}
#game .exhibit-permanent-hero h3{margin-bottom:8px}

/* polish-v513.css */
/* Small paper receipts, shared by town actions and museum messages. */
#toast.toast {
  top: auto;
  bottom: calc(166px + env(safe-area-inset-bottom));
  width: max-content;
  max-width: min(340px, calc(100% - 48px));
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px 13px 13px;
  border: 1px solid #a78958;
  border-radius: 3px 9px 3px 9px;
  background: linear-gradient(115deg, #fff9e9, #f2e4c3);
  color: #51462f;
  box-shadow: 0 5px 18px #28362840, inset 0 0 0 3px #fff7e480, inset 0 0 0 4px #b7945c40;
  font: 13px/1.55 var(--sans);
  text-align: left;
  z-index: 1600;
  overflow-wrap: anywhere;
}
.notice-seal {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  height: 34px;
  border: 1px solid #a34c38;
  border-radius: 3px;
  box-shadow: inset 0 0 0 2px #fbefcf;
  color: #fff3d6;
  background: #a94b36;
  font: 20px/1 var(--serif);
}
.notice-copy { display: grid; gap: 3px; min-width: 0; }
.notice-copy > strong { color: #32574b; font: 16px/1.3 var(--serif); letter-spacing: 1px; }
.notice-detail { color: #746248; font-variant-numeric: tabular-nums; }
.notice-detail b { color: #82562c; font-weight: 600; }
.notice-detail i { display: inline-block; height: 12px; margin: 0 10px; border-left: 1px solid #bba27c; vertical-align: -1px; }
#toast[data-tone="attention"] .notice-copy > strong { color: #9a4934; }
#game:has(#toast.visible) #offline-receipt { opacity: 0; pointer-events: none; }
.museum-toast {
  background: linear-gradient(115deg, #fff9e9, #f2e4c3);
  color: #51462f;
  border: 1px solid #a78958;
  box-shadow: 0 4px 14px #28362830, inset 0 0 0 3px #fff7e480;
  border-radius: 3px 8px;
  font: 13px/1.6 var(--sans);
}
.loading-retry { display: block; margin: 14px auto 0; min-height: 42px; padding: 8px 22px; color: #fff4dc; border: 1px solid #e1c78b; border-radius: 4px; background: #9d4432; font: 16px/1.4 var(--serif); }
.loading-retry[hidden] { display: none; }
.loading-bottom .loading-help { font: 12px/1.6 var(--sans); color: #fff4dc; max-width: 310px; margin: 10px auto 0; }
@media (max-height: 620px) { #toast.toast { bottom: calc(139px + env(safe-area-inset-bottom)); padding-block: 9px; } }
@media (prefers-reduced-motion: reduce) { #toast.toast { transition: none; } }

