/* The approved painted scenery supplies the material; controls stay readable. */
.home-screen .home-portals{inset:0;display:block}
.home-screen .home-portals button{position:absolute;top:25%;left:var(--portal-center);width:21%;height:51%;transform:translateX(-50%);padding:0;text-align:center}
.home-screen .home-portals button:nth-child(1){--portal-center:12.6%}
.home-screen .home-portals button:nth-child(2){--portal-center:35.5%}
.home-screen .home-portals button:nth-child(3){--portal-center:58.5%}
.home-screen .home-portals button:nth-child(4){--portal-center:82.3%}
.home-screen .portal-copy strong{top:75.9%;left:0;right:0;transform:translateY(-50%);font-size:clamp(17px,2.35cqw,40px);line-height:1.2;text-align:center}
.home-screen .portal-copy small{top:90.2%;left:-5%;right:-5%;transform:translateY(-50%);font-size:clamp(8px,1.05cqw,18px);line-height:1.4;text-align:center;letter-spacing:0}
.rank-screen{--rank-ink:#35513d;--rank-paper:#fff8e8;--rank-tone:#bc8857;color:var(--rank-ink);background:#f6efd9}
.rank-hall,.rank-collection{position:absolute;inset:0;isolation:isolate}
.rank-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;z-index:-1}
.rank-motion{transition:opacity .25s}
.rank-button{appearance:none;min-height:44px;min-width:66px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #d8c7a0;border-radius:24px;background:#fff8e8f5;color:#35513d;font-size:clamp(12px,1.15cqw,18px);font-weight:700;white-space:nowrap;box-shadow:0 2px 0 #715a2c28;touch-action:manipulation}
.rank-button:hover{background:#fffdf5;box-shadow:0 3px 0 #715a2c35,0 0 0 2px #fff8}
.rank-button:active{filter:brightness(.96)}
.rank-button:focus-visible,.rank-emblem:focus-visible{outline:3px solid #075b53;outline-offset:3px}
.rank-primary{background:linear-gradient(#608e64,#386a4a);border:2px solid #e0efc0;color:#fffce9;text-shadow:0 1px 2px #23462c;box-shadow:0 3px 0 #34533844}
.rank-primary:hover{background:linear-gradient(#6b9c70,#3d7651)}
.rank-toolbar{position:absolute;top:3.2%;left:3%;right:3%;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;z-index:3}
.rank-toolbar nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:72%}
.rank-total{padding:8px 16px;display:flex;gap:10px;align-items:center;min-height:44px;background:#fff8e8f5;border:1px solid #dfca99;border-radius:26px;box-shadow:0 2px 0 #715a2c28;white-space:nowrap}
.rank-total span{font-size:clamp(12px,1.15cqw,18px)}
.rank-total strong{font-size:clamp(20px,2.1cqw,32px);font-variant-numeric:tabular-nums;color:#805b21}
.rank-name{position:absolute;top:58.3%;left:50%;transform:translate(-50%,-50%);font-size:clamp(24px,3.15cqw,50px);font-weight:900;letter-spacing:.12em;color:#805421;text-shadow:0 1px 0 #fff8d8;white-space:nowrap}
.rank-hall[data-rank="8"] .rank-name{font-size:clamp(22px,2.65cqw,42px)}
.rank-summary{position:absolute;top:65.3%;left:50%;transform:translateX(-50%);width:31%;max-width:300px;min-width:200px;padding:7px 14px 6px;text-align:center;background:transparent;border:0;box-shadow:none;text-shadow:0 1px 2px #fffbed,0 0 5px #fffbed,0 0 9px #fffbed}
.rank-next{font-size:clamp(12px,1.18cqw,19px);font-weight:800;line-height:1.4;color:#35513d}
.rank-track{height:clamp(6px,.6cqw,10px);margin:5px 0 4px;border-radius:20px;overflow:hidden;background:#ded3b8;box-shadow:inset 0 1px 2px #8a734d28}
.rank-track span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#d5a551,var(--rank-tone));transform:scaleX(0);transform-origin:left;transition:transform .5s ease;border-radius:inherit}
.rank-distance{font-size:clamp(12px,1.05cqw,17px);font-weight:600;line-height:1.4;color:#795b30;font-variant-numeric:tabular-nums}
.rank-hall-actions{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);display:flex;justify-content:center}
.rank-hall-actions .rank-button{min-width:150px;font-size:clamp(15px,1.4cqw,22px);padding:9px 24px}
.rank-collection{background:#f4e7c9 url('assets/ranks/collection.webp') center/cover}
.rank-collection:before{content:'';position:absolute;inset:0;backdrop-filter:blur(22px);background:#fff3d7e8;z-index:-1}
.rank-collection-header{position:absolute;top:4%;left:3%;right:3%;display:flex;align-items:center;gap:14px}
.rank-collection-header>div{position:absolute;left:20%;right:20%;text-align:center;pointer-events:none}
.rank-collection-header h2{font-size:clamp(21px,2.4cqw,38px);color:#6f5535;letter-spacing:.06em}
.rank-collection-header p{font-size:clamp(12px,1.15cqw,18px);margin-top:5px;color:#7b6849}
.rank-chapters{position:absolute;top:20%;left:20%;right:20%;display:flex;justify-content:center;gap:12px}
.rank-chapters .rank-button{background:transparent;border-color:transparent;box-shadow:none}
.rank-chapters .rank-button[aria-current="true"]{background:#fffaf0;box-shadow:0 2px 0 #a38b5930;border-color:#dfceaa;color:#674f2e}
.rank-shelf{position:absolute;top:34%;left:8%;width:84%;touch-action:pan-y}
.rank-shelf>img{display:block;width:100%;height:auto;pointer-events:none;border-radius:6px;box-shadow:0 12px 30px #8d613a22}
.rank-shelf-labels{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);padding:0 6.6%;gap:0}
.rank-emblem{position:relative;appearance:none;border:0;background:transparent;min-width:0;min-height:44px;cursor:pointer;padding:0;border-radius:12px;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.rank-emblem:hover{box-shadow:0 0 0 3px #fff5 inset}
.rank-emblem span{position:absolute;top:var(--label-y);left:50%;transform:translate(-50%,-50%);font-size:clamp(16px,2cqw,31px);color:#71502b;font-weight:800;letter-spacing:.07em;white-space:nowrap;text-shadow:0 1px 0 #fff4d5}
.rank-arrow{position:absolute;top:55%;transform:translateY(-50%);width:44px;min-width:44px;height:48px;padding:0;font-size:32px}
.rank-prev{left:1%}.rank-next-arrow{right:1%}
.rank-states{position:absolute;top:80%;left:12%;right:12%;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:8px}
.rank-states p{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:clamp(12px,1.15cqw,18px);color:#766342}
.rank-states strong{font-size:inherit}.rank-states [data-state="current"] strong{color:#356445}.rank-states [data-state="earned"] strong{color:#8b641e}
.rank-states span{font-variant-numeric:tabular-nums}
.rank-collection-hint{position:absolute;bottom:3%;left:0;right:0;text-align:center;font-size:clamp(12px,1.05cqw,17px);color:#7b6849}
.rank-dialog{border:1px solid #ddcba2;border-radius:22px;padding:0;color:#35513d;background:#fff9eb;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:0 20px 90px #173a3855}
.rank-dialog::backdrop{background:#173a38a8;backdrop-filter:blur(5px)}
.rank-rulebook{width:min(840px,calc(100vw - 36px));padding:24px 30px;font-size:16px;line-height:1.75}
.rank-rulebook header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid #dfd1b1}
.rank-rulebook header p{font-size:13px;letter-spacing:.1em;color:#826d47}
.rank-rulebook h2{font-size:26px;color:#3d5c43}
.rank-rulebook h3{font-size:18px;margin:24px 0 8px;color:#735a32}
.rank-rulebook>p{margin:10px 0}
.rank-source-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0}
.rank-source-totals div{display:flex;flex-direction:column;gap:3px;background:#f1e8d2;padding:14px 16px;border-radius:12px}
.rank-source-totals span{font-size:14px}.rank-source-totals strong{font-size:28px;color:#805b21;font-variant-numeric:tabular-nums}.rank-source-totals small{font-size:12px}
.rank-thresholds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rank-thresholds li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border:1px solid #e3d5b6;border-radius:9px;font-size:14px}
.rank-thresholds [aria-current="step"]{background:#e8efdb;border-color:#9db486}.rank-thresholds strong{font-variant-numeric:tabular-nums;color:#805b21}
.rank-rule-note{font-size:13px;color:#726246}
.rank-history{list-style:none;margin:0;padding:0}.rank-history li{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #e3d5b6;font-size:14px}.rank-history strong{color:#356445}
.rank-ceremony{width:min(100vw - 24px,calc((100dvh - 24px)*16/9));aspect-ratio:16/9;overflow:hidden;border-radius:16px}
.rank-ceremony-scene{position:relative;width:100%;height:100%;isolation:isolate;container-type:inline-size;animation:rank-arrival var(--ceremony-duration) ease-out both}
.rank-ceremony-scene:after{position:absolute;inset:0;content:'';pointer-events:none;background:radial-gradient(ellipse at 50% 35%,#fff5c400 35%,#fff2c455);animation:rank-aura var(--ceremony-duration) ease-out both}
.rank-ceremony-kicker{position:absolute;top:4%;left:50%;transform:translateX(-50%);font-size:clamp(15px,1.6cqw,25px);font-weight:800;color:#4b6347;text-shadow:0 1px 4px #fffbe9,0 1px 8px #fffbe9;white-space:nowrap;z-index:1}
.rank-ceremony-copy{position:absolute;top:66%;left:50%;transform:translateX(-50%);min-width:240px;width:37%;text-align:center;border:1px solid #ddcba2;background:#fff9ecf5;border-radius:14px;padding:8px 12px;z-index:1}
.rank-ceremony-copy strong{font-size:clamp(16px,1.7cqw,27px);color:#805b21}.rank-ceremony-copy p{font-size:clamp(12px,1.05cqw,17px);margin-top:3px;line-height:1.5}
.rank-ceremony-actions{position:absolute;bottom:3%;left:0;right:0;display:flex;justify-content:center;gap:12px;z-index:1}
@keyframes rank-arrival{0%{opacity:0;transform:scale(.97)}32%{opacity:1}100%{transform:scale(1)}}
@keyframes rank-aura{0%{opacity:0}35%{opacity:1}100%{opacity:.2}}
@media(max-width:900px){.rank-toolbar{gap:8px}.rank-toolbar nav{gap:6px;max-width:76%}.rank-button{padding:0 11px;font-size:12px}.rank-total{padding:5px 12px;gap:6px}.rank-total span{display:none}.rank-total strong{font-size:20px}.rank-summary{padding:5px 10px}.rank-next,.rank-distance{font-size:12px}.rank-track{margin:4px 0}.rank-motion-toggle{min-width:72px}.rank-collection-header h2{font-size:21px}.rank-chapters{left:14%;right:14%;gap:8px}.rank-chapters .rank-button{padding:0 14px}.rank-collection-header p{font-size:12px}.rank-states{top:81%;font-size:12px}.rank-rulebook{padding:18px 20px}.rank-source-totals{gap:8px}.rank-source-totals div{padding:10px}.rank-thresholds{gap:6px}.rank-thresholds li{font-size:13px;padding:7px 9px}.rank-ceremony-copy{min-width:230px;padding:6px 10px}}
@media(max-height:380px){.rank-toolbar{top:2.5%}.rank-toolbar .rank-button{padding:0 10px}.rank-summary{top:64.5%;padding:4px 10px}.rank-hall-actions{bottom:2.5%}.rank-hall-actions .rank-button{padding:0 20px;min-height:44px}.rank-name{font-size:25px}.rank-collection-header p{display:none}.rank-chapters{top:18%}.rank-shelf{top:34%}.rank-collection-hint{font-size:12px;bottom:2%}.rank-states{top:81%;gap:2px}.rank-states p{gap:1px;font-size:12px}.rank-ceremony-kicker{top:3%}.rank-ceremony-copy{top:65%;padding:4px 10px}.rank-ceremony-copy p{font-size:12px}.rank-ceremony-copy strong{font-size:16px}.rank-ceremony-actions{bottom:2%;gap:8px}}
@media(max-width:600px){.rank-toolbar .rank-motion-toggle{position:absolute;top:52px;left:0}.rank-toolbar nav{max-width:78%}.rank-toolbar .rank-button{padding:0 9px}.rank-rulebook h2{font-size:22px}.rank-source-totals{grid-template-columns:1fr}.rank-source-totals div{display:grid;grid-template-columns:1fr 1fr}.rank-source-totals small{grid-column:1/-1}.rank-thresholds{grid-template-columns:1fr 1fr}.rank-collection-header>div{left:22%;right:0}.rank-collection-header h2{font-size:18px}.rank-chapters{left:11%;right:11%;gap:3px}}
@media(prefers-reduced-motion:reduce){.rank-screen *,.rank-ceremony-scene,.rank-ceremony-scene:after{animation:none!important;transition:none!important}}
@media(max-height:380px){.rank-summary{padding-top:3px;padding-bottom:3px}.rank-track{margin-top:3px;margin-bottom:3px}}
@media(max-width:900px){.rank-summary{left:auto;right:3%;top:21%;transform:none;width:26%;min-width:150px;max-width:180px;padding:6px 10px}.rank-next,.rank-distance{font-size:12px}}
.achievement-nav-count{font-variant-numeric:tabular-nums;color:#82602e;font-size:.85em}
.achievement-room{position:absolute;inset:0;isolation:isolate;color:#6f5535;background:#f1e3c8}
.achievement-room:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#fff6e0e8,#f4e5c9ef),url('assets/ranks/collection.webp') center/cover}
.achievement-header{position:absolute;top:4%;left:3%;right:3%;display:flex;justify-content:space-between;align-items:center;gap:12px}
.achievement-header>div{position:absolute;left:18%;right:18%;text-align:center;pointer-events:none}
.achievement-header h2{font-size:clamp(18px,2.4cqw,38px);letter-spacing:.06em}
.achievement-header>div p{font-size:clamp(12px,1.15cqw,18px);margin-top:5px;color:#7a6849}
.achievement-count{padding:8px 12px;border:1px solid #d5c099;border-radius:24px;background:#fff9e8;font-size:clamp(12px,1.15cqw,18px);font-weight:700;white-space:nowrap;min-height:44px;display:flex;align-items:center;font-variant-numeric:tabular-nums}
.achievement-chapters{position:absolute;top:20%;left:15%;right:15%;display:flex;justify-content:center;gap:12px}
.achievement-chapters .rank-button{background:transparent;border-color:transparent;box-shadow:none}
.achievement-chapters [aria-current="true"]{background:#fffaf0;border-color:#d6bd8f;box-shadow:0 2px 0 #a38b5930;color:#654b25}
.achievement-shelf{position:absolute;top:34%;left:8%;width:84%}
.achievement-shelf>img{display:block;width:100%;border-radius:6px;box-shadow:0 12px 30px #8d613a22}
.achievement-tiles{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);padding:0 6.6%}
.achievement-tile{position:relative;border:0;background:transparent;min-height:44px;min-width:0;padding:0;border-radius:12px;touch-action:manipulation}
.achievement-tile:before{content:'';position:absolute;top:8%;bottom:21%;left:4%;right:4%;border-radius:45% 45% 20% 20%;background:radial-gradient(ellipse,#d4c4a2d9,#d6c5a2bb 55%,#d6c5a200 74%);transition:opacity .3s}
.achievement-tile[data-earned="true"]:before{opacity:0}
.achievement-tile:hover{box-shadow:0 0 0 3px #fff5 inset}
.achievement-tile:focus-visible{outline:3px solid #075b53;outline-offset:3px}
.achievement-tile strong{position:absolute;top:var(--achievement-label-y);left:50%;transform:translate(-50%,-50%);font-size:clamp(15px,1.8cqw,29px);font-weight:800;white-space:nowrap;color:#70502a;letter-spacing:.04em;text-shadow:0 1px 0 #fff5d5}
.achievement-states{position:absolute;top:80%;left:12%;right:12%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.achievement-states p{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:clamp(12px,1.15cqw,18px);line-height:1.4}
.achievement-states strong{font-size:inherit;color:#715d3c}.achievement-states [data-earned="true"] strong{color:#376448}
.achievement-states span{font-size:.9em;color:#7c6848;font-variant-numeric:tabular-nums}
.achievement-hint{position:absolute;bottom:3%;left:0;right:0;text-align:center;font-size:clamp(12px,1.05cqw,17px);color:#7b6849}
.achievement-detail{width:430px;max-width:calc(100vw - 32px);padding:22px 28px 26px;text-align:center;line-height:1.6}
.achievement-detail header{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;color:#7b6848;font-size:13px}
.achievement-detail .achievement-hero{width:210px;height:170px;object-fit:contain;margin:4px auto -2px;filter:drop-shadow(0 4px 6px #98743b30)}
.achievement-detail[data-earned="false"] .achievement-hero{filter:grayscale(.85);opacity:.5}
.achievement-detail h2{font-size:27px;color:#71502b;margin-bottom:8px}.achievement-detail p{font-size:15px;margin:10px 0;color:#65563c}
.achievement-detail .achievement-earned-date{font-size:13px;color:#386947}.achievement-detail .achievement-condition{background:#efe5cd;border-radius:12px;padding:12px 14px;color:#5e4b2f}
.achievement-detail .achievement-progress{height:7px;background:#dfd2b5;border-radius:9px;overflow:hidden;margin-top:14px}.achievement-progress i{display:block;height:100%;background:#608863;border-radius:inherit}
.achievement-detail .rank-primary{margin-top:8px;min-width:150px}
@media(max-width:900px){.achievement-nav-count{display:none}.achievement-header h2{font-size:20px}.achievement-header>div p{font-size:12px}.achievement-count{font-size:12px;padding:6px 10px}.achievement-chapters{gap:8px}.achievement-states{top:81%}.achievement-states p{font-size:12px}}
@media(max-width:600px){.achievement-header h2{font-size:17px}.achievement-header>div{left:19%;right:22%}.achievement-header>div p{display:none}.achievement-count{padding:5px 8px}.achievement-chapters{left:10%;right:10%;gap:6px}.achievement-shelf{top:34%}.achievement-states p{gap:2px}.achievement-hint{bottom:2%}.achievement-detail{padding:16px 20px 20px}.achievement-detail .achievement-hero{width:165px;height:125px}.achievement-detail h2{font-size:24px}.achievement-detail p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.achievement-tile:before{transition:none}}
/* Painted botanical emblems, calm paper, and lightweight stage-specific motion. */
.growth-world{background:radial-gradient(ellipse at 10% 10%,#e4efca,transparent 55%),linear-gradient(135deg,#fff7e1,#f8ecd1 62%,#e4edd3);color:#38553e}
.growth-world .growth-toolbar{position:absolute;top:var(--game-safe-top,10px);left:var(--game-safe-left,12px);right:var(--game-safe-right,12px);display:flex;align-items:center;gap:10px;z-index:3}
.growth-toolbar nav{display:flex;gap:8px;margin:auto}.growth-toolbar [aria-current=true]{background:#e2ebcd;border-color:#9aae77}
.growth-content{position:absolute;inset:66px var(--game-safe-right,16px) var(--game-safe-bottom,12px) var(--game-safe-left,16px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px}
.growth-title{text-align:center}.growth-title>span,.growth-book-heading>span{font-size:12px;letter-spacing:.2em;color:#8f7545}.growth-title h1,.growth-book-heading h1{font-size:clamp(19px,2.5vw,34px);margin:4px 0;font-weight:800}
.growth-garden-body{display:grid;grid-template-columns:1.15fr 1fr;min-height:0;align-items:center;gap:4vw;max-width:1140px;width:100%;margin:auto;height:100%}
.growth-icon{display:block;aspect-ratio:1;background-image:url('qiqu/art/growth-emblems-20261031.webp');background-size:300% 300%;background-position:var(--gx) var(--gy);mix-blend-mode:multiply;pointer-events:none}
.growth-hero{height:100%;min-height:0;position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;isolation:isolate}
.growth-main-icon{height:100%;max-width:100%;width:auto;margin:auto;z-index:1}
.growth-hero-copy{text-align:center;z-index:2}.growth-hero-copy h2{font-size:clamp(23px,3vw,40px);color:#8b642c;letter-spacing:.15em;margin:0}.growth-hero-copy p{font-size:clamp(12px,1.3vw,17px);margin:2px 0}
.growth-journal{padding:clamp(12px,2vw,28px);border:1px solid #d8c89c;border-radius:24px 19px 25px 18px;background:#fffbefb8;box-shadow:inset 0 0 0 4px #fff9e8,0 8px 24px #614d2010;max-height:100%;overflow:auto}
.growth-journal>span{font-size:12px;color:#8c7549}.growth-journal h2{font-size:clamp(18px,2vw,27px);margin:6px 0 16px}.growth-facts{display:flex;gap:20px}.growth-facts p{display:grid;gap:3px}.growth-facts strong{font-size:clamp(22px,2.5vw,34px);color:#526a3d}.growth-facts span{font-size:12px;color:#7c785d}.growth-note{line-height:1.8;font-size:clamp(12px,1.3vw,17px);margin:16px 0}.growth-journal details{font-size:12px;line-height:1.7}.growth-journal summary{cursor:pointer;min-height:30px}.growth-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.growth-path{display:flex;justify-content:center;gap:clamp(3px,1vw,15px);padding:6px;border-top:1px solid #d8c99e;min-height:80px}.growth-path button{position:relative;width:clamp(50px,7vw,98px);padding:0 0 4px;border:1px solid transparent;background:transparent;border-radius:14px;color:#655637;min-height:44px}.growth-path button[aria-current=true]{border-color:#c0a467;background:#fff9e8;box-shadow:0 3px 10px #77582415}.growth-path .growth-icon{width:64%;margin:auto}.growth-path button>span:not(.growth-icon){font-size:clamp(12px,1.1vw,16px);font-weight:750}.growth-path small{display:block;font-size:9px;color:#6b8053}
.growth-book-heading{text-align:center}.growth-book-heading p{font-size:13px;margin:6px 0}.growth-collection{grid-row:2/4;overflow:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:8px;align-content:start}.growth-memory{display:flex;align-items:center;gap:12px;border:1px solid #deceac;background:#fff9ea;border-radius:18px;padding:12px}.growth-memory .growth-icon{width:34%;flex-shrink:0}.growth-memory h2{font-size:clamp(14px,1.5vw,21px);margin:0 0 5px}.growth-memory p{font-size:12px;line-height:1.6}.growth-memory small{display:block;color:#648153;font-size:12px;margin-top:8px}.growth-memory:not(.is-earned){background:#f8f1df}.growth-memory:not(.is-earned) .growth-icon{opacity:.7}
.growth-dialog{border:1px solid #cdb88a;border-radius:24px;background:#fff9e9;color:#38553e;max-width:min(650px,90vw);max-height:85vh;overflow:auto;padding:24px;font:16px/1.8 'Microsoft YaHei',sans-serif}.growth-dialog::backdrop{background:#23453377}.growth-dialog header{display:flex;align-items:center;justify-content:space-between;gap:18px}.growth-dialog h2{font-size:22px}.growth-dialog p{margin:16px 0}
.growth-particles{position:absolute;inset:8% 12% 18%;pointer-events:none;z-index:2;overflow:hidden}.growth-particles i{position:absolute;left:calc(9% + var(--n)*8%);bottom:15%;width:4px;height:4px;border-radius:50%;background:var(--glow,#dcb35a);opacity:0;box-shadow:0 0 7px var(--glow,#dcb35a)}
.growth-world{--glow:#c79d49;--cycle:9s;--float:3px}.growth-world[data-growth-stage='1']{--glow:#c2ba53;--cycle:8s}.growth-world[data-growth-stage='2']{--glow:#77ae57;--cycle:8s}.growth-world[data-growth-stage='3']{--glow:#6fab83;--cycle:7s;--float:4px}.growth-world[data-growth-stage='4']{--glow:#b4a0d5;--cycle:8s}.growth-world[data-growth-stage='5']{--glow:#edb3b3;--cycle:7s}.growth-world[data-growth-stage='6']{--glow:#e9ab83;--cycle:7s;--float:5px}.growth-world[data-growth-stage='7']{--glow:#a1cba6;--cycle:6s}.growth-world[data-growth-stage='8']{--glow:#e5bd65;--cycle:7s;--float:5px}
.growth-effects .growth-main-icon{animation:growth-breathe var(--cycle) ease-in-out infinite;filter:drop-shadow(0 5px 10px #c8a65322)}.growth-effects .growth-particles i{animation:growth-firefly var(--cycle) ease-in-out infinite;animation-delay:var(--delay)}.growth-world[data-growth-stage='4'] .growth-particles i,.growth-world[data-growth-stage='5'] .growth-particles i,.growth-world[data-growth-stage='6'] .growth-particles i{width:7px;height:4px;border-radius:80% 15% 80% 15%}
@keyframes growth-breathe{50%{transform:translateY(calc(-1 * var(--float)))}}@keyframes growth-firefly{0%,100%{opacity:0;transform:translate(0,0)}35%{opacity:.65}80%{opacity:0;transform:translate(12px,-75px)}}
@media(max-height:500px){.growth-content{inset-top:56px;top:56px;gap:3px}.growth-title>span{display:none}.growth-title h1{font-size:19px;margin:0}.growth-garden-body{gap:12px;grid-template-columns:1fr 1.15fr}.growth-journal{padding:10px 14px;border-radius:17px}.growth-journal>span{display:none}.growth-journal h2{font-size:17px;margin:0 0 6px}.growth-note{margin:6px 0;font-size:12px}.growth-facts strong{font-size:22px}.growth-facts{gap:22px}.growth-path{min-height:65px;padding:3px}.growth-path .growth-icon{width:40px}.growth-path button{width:62px}.growth-hero-copy p{font-size:11px}.growth-hero-copy h2{font-size:23px}.growth-actions{margin-top:5px}.growth-toolbar .rank-button{padding:0 9px;font-size:11px}.growth-collection{gap:8px}.growth-memory{padding:7px;gap:6px}.growth-memory p{font-size:11px}.growth-title{height:23px}}
@media(max-width:680px){.growth-toolbar{gap:4px}.growth-toolbar nav{gap:3px}.growth-collection{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-path{gap:0}.growth-path button{min-width:0;width:11%}.growth-path .growth-icon{width:85%}.growth-note br{display:none}}
@media(prefers-reduced-motion:reduce){.growth-effects .growth-main-icon,.growth-effects .growth-particles i{animation:none!important}.growth-particles{display:none}}

.growth-world{background:#b6c89d;isolation:isolate}
.growth-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:0;pointer-events:none}
.growth-world .growth-toolbar{z-index:5}.growth-toolbar .rank-button{background:#fff8e9ed;box-shadow:0 2px 6px #684a2820}
.growth-world .growth-content{inset:0;display:block;z-index:1;pointer-events:none}.growth-content button,.growth-content details{pointer-events:auto}
.growth-world .growth-title,.growth-world .growth-journal,.growth-world .growth-main-icon{display:none}
.growth-world .growth-garden-body,.growth-world .growth-hero{position:absolute;inset:0;display:block;width:100%;max-width:none;height:100%;isolation:auto}
.growth-world .growth-hero-copy{position:absolute;top:58.7%;left:50%;transform:translateX(-50%);width:25%;text-align:center;z-index:2;color:#634720;text-shadow:0 1px #fff1c9}
.growth-world .growth-hero-copy h2{font-size:clamp(22px,3.1vw,45px);line-height:1.15;margin:0;letter-spacing:.12em;color:#785324}
.growth-world .growth-hero-copy p:first-child{font-size:clamp(10px,1vw,14px);margin:0 0 2px}.growth-world .growth-hero-copy p:last-child{display:none}
.growth-world .growth-particles{inset:11% 28% 30%;z-index:2}
.growth-world .growth-path{position:absolute;bottom:var(--game-safe-bottom,8px);left:max(8%,var(--game-safe-left,12px));right:max(8%,var(--game-safe-right,12px));height:13%;min-height:62px;max-height:110px;border:1px solid #f7e7bb99;border-radius:18px;background:linear-gradient(#fff9e9d6,#f3e4c7ed);box-shadow:0 5px 20px #58421b28;align-items:center;pointer-events:auto}
.growth-world .growth-path button{height:100%;max-width:100px;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;align-content:center;min-width:0;flex:1}.growth-world .growth-path .growth-icon{height:100%;width:auto;max-height:64px;min-height:24px}.growth-world .growth-path small{position:absolute;top:-17px;white-space:nowrap;background:#fff5d8;color:#596d38;border-radius:6px;padding:1px 5px}
.growth-world[data-growth-view=collection] .growth-scene{filter:blur(4px);opacity:.18}.growth-world[data-growth-view=collection]{background:#f9efd9}.growth-world[data-growth-view=collection] .growth-content{display:grid;inset:66px var(--game-safe-right,12px) var(--game-safe-bottom,8px) var(--game-safe-left,12px);grid-template-rows:auto minmax(0,1fr);pointer-events:auto}.growth-world[data-growth-view=collection] .growth-collection{grid-row:2}
.growth-world[data-growth-stage='0'] .growth-scene,.growth-world[data-growth-stage='1'] .growth-scene{filter:saturate(.92)}.growth-world[data-growth-stage='5'] .growth-scene,.growth-world[data-growth-stage='6'] .growth-scene{filter:saturate(1.04)}
.wellbeing-form{display:grid;gap:16px;margin:20px 0}.wellbeing-form label{display:grid;gap:6px;font-size:15px}.wellbeing-form input,.wellbeing-form select{font:inherit;min-height:44px;width:100%;border:1px solid #c1b28b;border-radius:12px;padding:8px 12px;background:#fffdf3;color:#36533c;box-sizing:border-box}.wellbeing-privacy{font-size:13px;color:#76684e}
@media(max-height:500px){.growth-toolbar nav{gap:4px}.growth-toolbar .rank-button{font-size:11px;padding:0 8px}.growth-world .growth-hero-copy{top:58.5%;width:28%}.growth-world .growth-hero-copy h2{font-size:23px}.growth-world .growth-path{height:16%;min-height:54px;max-height:68px;padding:3px;gap:2px}.growth-world .growth-path .growth-icon{min-height:22px;max-height:36px}.growth-world .growth-path button>span:not(.growth-icon){font-size:11px}.growth-world .growth-hero-copy p:first-child{font-size:9px}.growth-world[data-growth-view=collection] .growth-content{top:56px}}
@media(max-width:680px){.growth-toolbar nav{gap:2px}.growth-toolbar{gap:2px!important}.growth-toolbar .rank-button{padding:0 5px;min-width:44px;font-size:10px}}

.growth-world .growth-hero-copy{top:57.2%}@media(max-height:500px){.growth-world .growth-hero-copy{top:56.5%}.growth-world .growth-hero-copy p:first-child{display:none}}

.growth-world .growth-hero-copy{top:var(--growth-plaque-y,66.6%);left:var(--growth-plaque-x,50%);transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;min-height:0}.growth-world .growth-hero-copy h2{margin:0;line-height:1.1}.growth-world .growth-path button{align-items:center;justify-items:center}.growth-world .growth-path button>span:not(.growth-icon){width:100%;text-align:center;line-height:1.2;margin:0}.growth-world .growth-path .growth-icon{align-self:center}

/* Portrait browsing uses complete touch targets instead of nine shrinking columns. */
@media (orientation:portrait) and (max-width:680px) {
  .growth-world .growth-toolbar { display:grid; grid-template-columns:auto 1fr auto; gap:8px!important; }
  .growth-toolbar>button:first-child { grid-column:1; grid-row:1; }
  .growth-toolbar>[data-growth-motion] { grid-column:3; grid-row:1; }
  .growth-toolbar nav { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; width:100%; margin:0; }
  .growth-toolbar .rank-button { min-width:44px; min-height:44px; padding:0 8px; font-size:12px; }
  .growth-world .growth-scene { object-fit:cover; }
  .growth-world .growth-path {
    left:var(--game-safe-left,12px); right:var(--game-safe-right,12px);
    display:grid; grid-template-columns:repeat(3,minmax(44px,1fr)); grid-auto-rows:44px;
    gap:8px; padding:6px; height:auto; min-height:0; max-height:none;
  }
  .growth-world .growth-path button {
    display:grid; grid-template-columns:24px minmax(0,1fr); grid-template-rows:1fr;
    gap:4px; width:auto; min-width:44px; max-width:none; min-height:44px; height:44px; padding:3px 6px;
  }
  .growth-world .growth-path .growth-icon { width:24px; height:24px; min-height:24px; max-height:24px; }
  .growth-world .growth-path button>span:not(.growth-icon) { font-size:12px; }
  .growth-world .growth-path small { top:auto; bottom:0; right:3px; padding:0 3px; font-size:8px; line-height:11px; }
  .growth-world[data-growth-view=collection] .growth-content { top:calc(var(--game-safe-top,6px) + 104px); }
  .growth-collection { grid-template-columns:1fr; gap:10px; }
  .growth-memory { padding:12px; gap:12px; }
  .growth-memory .growth-icon { width:56px; }
  .growth-memory p { font-size:13px; }
}
@media (max-width:680px), (max-height:500px) {
  .growth-dialog {
    max-width:min(650px,calc(100vw - max(12px,env(safe-area-inset-left)) - max(12px,env(safe-area-inset-right))));
    max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));
    padding:16px;
  }
  .growth-dialog header { position:sticky; top:0; z-index:1; background:#fff9e9; }
  .growth-dialog header .rank-button { flex:none; }
}
