/* style.css */
/* Shared silk, ink and carved-jade language. Each screen owns its layout. */
@font-face{font-family:LocalSong;src:local('STZhongsong'),local('华文中宋'),local('SimSun')}
:root{
 --ink:#203b36;--jade:#184d45;--jade-light:#93b4a0;--gold:#ac905b;--paper:#f2ebdc;--muted:#485a50;--line:#ad945c55;--danger:#a24b39;
 --font-display:LocalSong,'STKaiti',serif;--font-calligraphy:'STXingkai','华文行楷','STKaiti','KaiTi',LocalSong,serif;--font-ui:'Microsoft YaHei','PingFang SC',sans-serif;
 --space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;
 --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);
 --silk:repeating-linear-gradient(93deg,#8b775805 0 1px,transparent 1px 4px),repeating-linear-gradient(0deg,#fff8eb20 0 1px,transparent 1px 3px),linear-gradient(120deg,#fbf5e8,#eee4ce);
 --corner:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23a68a50' stroke-width='1.1'%3E%3Cpath d='M2 62V2h60M8 60V8h52M14 44V14h30M3 35c32 2 34-31 7-22-10 4-3 20 7 13 7-6-1-11-4-6M35 3c2 32-31 34-22 7M10 48c17-8 27-20 36-36M26 29c-1 13 7 13 11 7s-2-11-5-5M46 10l6 6-6 6-6-6Z'/%3E%3C/svg%3E");
 color-scheme:light;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);font:14px/1.6 var(--font-ui);overscroll-behavior:none}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #a24b39;outline-offset:4px}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}
svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}img{max-width:100%}
h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400}h2{font-size:36px;letter-spacing:4px}h3{font-size:26px;letter-spacing:2px}
#app{position:relative;height:100%;isolation:isolate}#scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2;touch-action:none}#app:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:#f0e9d81a}
.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-color:#8c8067 #ece4d3;scrollbar-width:thin}
#masthead{position:absolute;top:24px;left:40px;right:40px;display:flex;align-items:center;justify-content:space-between;z-index:5;gap:16px;pointer-events:none}#masthead>*{pointer-events:auto}
#brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:26px var(--font-calligraphy);letter-spacing:3px;color:var(--ink)}.seal{width:36px;height:44px;display:grid;place-items:center;border:1px solid #a24b39;background:#a24b3910;color:#a24b39;font-family:var(--font-display);font-size:25px}
#brand small{display:block;font:7px/2 var(--font-ui);letter-spacing:2px;color:var(--muted);margin-top:4px}.header-tools{display:flex;align-items:center;gap:8px}.edition{font-size:10px;letter-spacing:2px;margin-right:16px;color:var(--muted)}
.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:8px;border:1px solid var(--gold);outline:1px solid #f7ecd277;outline-offset:-4px;border-radius:50%;background:linear-gradient(135deg,#295d51,#143e39);box-shadow:0 2px 8px #17383025;color:#f5e8c3;font-size:11px}.icon-button svg{width:20px;height:20px}.icon-button:hover{background:#326a5b}.playing #masthead{display:none}
.primary,.secondary{position:relative;min-height:48px;padding:12px 24px;display:inline-flex;align-items:center;justify-content:center;gap:16px;font-size:15px;letter-spacing:2px;transition:background .16s,box-shadow .16s}
.primary{border:2px solid #b99c63;border-radius:12px 3px 12px 3px;color:#fff1d0;background:radial-gradient(ellipse at 30% 0,#588e7455,transparent 65%),linear-gradient(120deg,#174b42,#2a5d50 52%,#153f39);box-shadow:inset 0 0 0 3px #e9d4a644,inset 0 -4px 9px #051e2644,0 4px 12px #13362c25;font-family:var(--font-display)}
.primary:before{content:'';position:absolute;inset:5px;border:1px solid #ddc79988;border-radius:7px 1px 7px 1px;pointer-events:none}.primary:hover:not(:disabled){background:linear-gradient(120deg,#235e50,#386f5d,#1d4c42);box-shadow:inset 0 0 0 3px #e9d4a666,0 4px 16px #13362c30}
.secondary{border:1px solid var(--line);border-radius:3px;background:#f5efdf99;color:var(--ink)}.secondary:hover:not(:disabled){background:#ded6c080;border-color:var(--gold)}
.back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 0;color:var(--ink);font-size:12px;letter-spacing:1px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:3px;color:#70562d;line-height:1.5}.muted,.fine{color:var(--muted);font-size:12px;line-height:1.8}
.bar{background:#a1947033;overflow:hidden}.bar>i{height:100%;display:block;width:0;transition:width .14s}
.modal{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:#132c3299;backdrop-filter:blur(7px)}
.modal-card{position:relative;width:min(560px,100%);max-height:calc(100dvh - 48px - var(--safe-top) - var(--safe-bottom));padding:40px;border:1px solid var(--gold);outline:1px solid #b19a6d77;outline-offset:-8px;background:var(--silk);box-shadow:0 24px 80px #02101766;overflow:auto;scrollbar-width:thin;text-align:center;color:var(--ink)}
.modal-card:before,.modal-card:after{content:'';position:absolute;width:48px;height:48px;top:0;left:0;background:var(--corner) 0 0/100%;pointer-events:none}.modal-card:after{left:auto;right:0;transform:rotate(90deg)}
.modal-card>.eyebrow{margin-bottom:16px}.modal-card h2{color:var(--ink);line-height:1.4;font-family:var(--font-calligraphy)}#modal-body{color:var(--muted);font-size:14px;line-height:1.8;margin:24px 0}#modal-actions{display:flex;flex-direction:column;gap:8px}#modal-actions>button{justify-content:center;min-width:0}
details{border-top:1px solid var(--line);padding-top:16px;text-align:left}summary{color:#70562d;cursor:pointer;min-height:44px;font-size:12px}details p,details ul{font-size:12px;line-height:1.9;color:var(--muted);margin:8px 0}
.toast,.storage-alert{position:absolute;z-index:50;left:50%;transform:translateX(-50%);padding:12px 16px;border:1px solid #cdb783;background:#17483fee;color:var(--paper);max-width:min(560px,calc(100% - 32px));font-size:12px;text-align:center;pointer-events:none;box-shadow:0 4px 24px #14362933}.toast{top:88px}.playing .toast{top:24%}.storage-alert{bottom:calc(16px + var(--safe-bottom));pointer-events:auto;border-color:var(--danger)}
#art-loading{position:absolute;z-index:60;bottom:104px;left:50%;transform:translateX(-50%);background:var(--paper);padding:16px 24px;border:1px solid var(--gold);max-width:90%;text-align:center;font-size:12px}#rotate{display:none}
.boon-modal .modal-card{width:min(880px,100%)}.boon-modal #modal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.boon-modal #modal-actions button{display:flex;flex-direction:column;gap:16px;padding:24px 16px;min-width:0;background:var(--silk);color:var(--ink);border-color:var(--line);box-shadow:inset 0 0 0 4px #ae925515}.boon-modal #modal-actions button:before{border-color:var(--line)}
.boon-symbol{display:grid;place-items:center;width:56px;height:56px;border:1px solid #a24b39;outline:1px solid #a24b3933;outline-offset:3px;font:32px var(--font-calligraphy);color:#a24b39}.boon-modal button small{font-size:10px;color:#70562d}.boon-modal button strong{font:25px var(--font-display)}.boon-description{font-size:13px;line-height:1.8;letter-spacing:0}.boon-modal button em{font-style:normal;font-size:11px;color:#37674f}
.titles-modal .modal-card{width:min(720px,100%)}.title-card{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:16px;text-align:left;border-bottom:1px solid var(--line);background:#cbb97c0d}.title-card strong{font:24px var(--font-display)}.title-card span{font-size:12px;grid-column:1;color:var(--muted)}.title-card small{grid-column:2;grid-row:1/3;align-self:center;color:#70562d}.title-card.equipped{border-color:var(--gold);background:#b1bd9622}
.modal-card:has(.atlas-grid){width:min(900px,100%)}.atlas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.atlas-grid article{padding:16px;border-bottom:1px solid var(--line)}.atlas-grid img{display:block;width:100%;height:120px;object-fit:contain}.atlas-grid strong{font:22px var(--font-display);display:block;color:var(--ink);margin:8px 0}.atlas-grid small{font-size:12px;line-height:1.7;display:block}
.ending-seal{font:56px var(--font-calligraphy);color:#a24b39;width:96px;height:96px;border:2px solid #a24b39;display:grid;place-items:center;margin:0 auto 24px}.ending-copy{font:20px/2.1 var(--font-display);color:var(--ink);margin-bottom:24px}
@media(max-width:900px) and (orientation:portrait){
 #masthead{top:calc(16px + var(--safe-top));left:16px;right:16px;gap:8px}#brand{font-size:24px;letter-spacing:1px;gap:8px}#brand small{font-size:6px;letter-spacing:1px}.seal{height:36px;width:28px;font-size:22px}.edition,#full{display:none}.header-tools{gap:8px}.icon-button{padding:8px;min-width:44px}.header-tools #sound{font-size:10px}
 .primary,.secondary{font-size:14px;padding:12px 16px;letter-spacing:1px}.back{font-size:12px}h2{font-size:30px;letter-spacing:2px}.eyebrow{font-size:9px;letter-spacing:2px}
 .modal{padding:16px}.modal-card{padding:24px 16px;max-height:calc(100dvh - 32px - var(--safe-top) - var(--safe-bottom))}.modal-card h2{font-size:29px}.modal-card>.eyebrow{margin-bottom:8px}#modal-body{margin:16px 0;font-size:13px}
 .boon-modal #modal-actions{grid-template-columns:1fr;gap:8px}.boon-modal #modal-actions button{display:grid;grid-template-columns:40px 1fr;padding:16px;gap:4px 16px;text-align:left}.boon-symbol{grid-row:1/4;width:40px;height:48px;font-size:24px}.boon-modal button small,.boon-modal button em{display:none}.boon-modal button strong{font-size:20px}.boon-description{font-size:12px;grid-column:2;line-height:1.6}
 .atlas-grid{grid-template-columns:repeat(2,1fr);gap:8px}.atlas-grid article{padding:8px}.atlas-grid img{height:96px}.atlas-grid strong{font-size:18px}.atlas-grid small{font-size:11px}.toast{top:calc(72px + var(--safe-top));width:max-content;max-width:calc(100% - 32px)}.title-card{padding:16px 8px}.title-card strong{font-size:20px}.title-card small{font-size:10px}
}
@media(max-height:550px) and (orientation:landscape){#masthead{top:16px;left:24px;right:24px}#brand{font-size:20px}.seal{height:32px;width:32px;font-size:24px}#brand small{display:none}.modal{padding:16px}.modal-card{padding:24px;max-height:calc(100dvh - 32px)}.modal-card h2{font-size:24px}#modal-body{margin:16px 0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important}


/* Readable controls retain the silk and jade surfaces. */
::selection{color:#fff4d8;background:#24584c}input,select{caret-color:var(--jade)}
button:disabled{opacity:.72}.back{font-size:14px}.icon-button{font-size:12px}
#modal-body{font-size:14px}.modal-card summary,.modal-card details p,.modal-card details ul{font-size:14px}
.toast,.storage-alert,#art-loading{font-size:14px;line-height:1.6}
.screen{scroll-padding-top:88px;scroll-padding-bottom:24px}.screen button{scroll-margin-block:16px}
@media(max-width:900px) and (orientation:portrait){
 #brand small{display:none}.header-tools #sound{font-size:12px}.back{font-size:14px}
 #modal-body{font-size:14px}.boon-description,.atlas-grid small,.title-card span,.title-card small{font-size:14px}
 .modal-card{scroll-padding-bottom:20px}
}

/* home.css */
/* Art-directed home: a silk scroll and a wide mountain painting, not a dashboard. */
.jade-home{padding:16px 16px 0;background:var(--silk)}
.jade-home-layout{position:relative;display:grid;grid-template-columns:30% minmax(0,1fr);width:100%;height:calc(100dvh - 68px);min-height:620px;grid-template-rows:minmax(0,1fr);border:1px solid var(--gold);outline:1px solid #ad945c66;outline-offset:-6px;background:#eee5d3;isolation:isolate}
.jade-home-layout:before,.jade-home-layout:after{content:'';position:absolute;left:0;top:0;width:56px;height:56px;z-index:4;background:var(--corner) center/contain;pointer-events:none}.jade-home-layout:after{left:auto;right:0;transform:rotate(90deg)}
.jade-intro{position:relative;z-index:2;padding:32px 32px 24px;overflow-y:auto;scrollbar-width:thin;min-height:0;display:flex;flex-direction:column;gap:16px;min-width:0;border-right:1px solid #af956870;background:linear-gradient(90deg,#e1d5b63d,transparent 10%,transparent 94%,#917c4740),var(--silk);box-shadow:10px 0 24px #172f211c}
.jade-intro>*{flex-shrink:0}
.jade-chapter-kicker{display:flex;justify-content:space-between;align-items:center;color:#685737;font:12px var(--font-display);letter-spacing:3px}.jade-chapter-kicker span{font:12px var(--font-ui);letter-spacing:1px}
.jade-intro h1{position:relative;font:clamp(38px,4.7vw,76px)/1.2 var(--font-calligraphy);letter-spacing:0;white-space:nowrap;color:#162d28;text-shadow:1px 1px 0 #32473510;margin-top:8px}
.jade-intro h1 small{display:inline-block;writing-mode:vertical-rl;margin-left:4px;font:12px/1.3 var(--font-display);vertical-align:middle;color:#a34c3b;border:1px solid #a34c3b;padding:4px 2px;letter-spacing:2px}
.jade-poem{font:12px var(--font-display);letter-spacing:4px;color:#6c6045;padding-bottom:16px;border-bottom:1px solid var(--line)}
.home-hero-id{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center}.home-hero-id>div:first-child{display:flex;align-items:baseline;gap:8px}.home-hero-id strong{font:28px var(--font-display);letter-spacing:3px}.home-hero-id span{font-size:12px;color:var(--muted)}
.home-hero-id .back{grid-column:1/-1;justify-self:start;font-size:12px;min-height:44px;padding:4px 0;border:0;color:#71572f}.realm-chip{font:15px var(--font-display);color:#765e3f;background:#d9ceb33d;padding:4px 8px;white-space:nowrap}
.home-wallet{font-size:13px;letter-spacing:1px;color:var(--ink);padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.jade-section-label{display:block;font-size:12px;letter-spacing:2px;color:#6d5734}.jade-quest{position:relative;padding:16px;min-height:96px;background:linear-gradient(90deg,#f5efdfef,#f5efdfbd),url(assets/runtime/bamboo.webp) center 70%/cover;border:1px solid var(--line)}
.jade-quest:before{content:'';position:absolute;right:2px;bottom:2px;width:40px;height:40px;background:var(--corner) center/contain;transform:rotate(180deg);opacity:.5;pointer-events:none}
#home-goal{font:17px/1.8 var(--font-display);margin-top:8px;color:var(--ink)}.home-departure{display:grid;gap:8px}.jade-expedition{width:100%;font:34px var(--font-calligraphy);letter-spacing:8px;min-height:64px;padding:8px 24px}.jade-expedition>span{font:20px var(--font-ui);letter-spacing:0;position:absolute;right:24px;color:#dec99d}
.jade-challenge{width:100%;border:1px solid var(--line);background:#f7f1e77a;font:18px var(--font-display);letter-spacing:3px;min-height:44px}.jade-challenge>span{font:12px var(--font-ui);letter-spacing:1px;color:var(--muted);margin-left:16px}
.jade-home-aside{display:flex;flex-direction:column;gap:4px;margin-top:auto}.jade-equipped,.jade-mount-entry{display:flex;gap:12px;align-items:center;width:100%;padding:8px 0;text-align:left;border-bottom:1px solid var(--line)}
.jade-equipped-art{display:block;width:48px;height:72px;flex:none}.jade-equipped-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 3px #24443530)}
.jade-equipped>span:last-child{min-width:0;flex:1}.jade-equipped .jade-section-label{font-size:12px;margin-bottom:4px}.jade-equipped strong{display:block;font:18px var(--font-display);letter-spacing:1px}.jade-equipped>span>small:not(.jade-section-label){display:block;font-size:12px;color:var(--muted);margin-top:4px}
.jade-card-link{display:block;font-size:12px;color:#6d5734;font-style:normal;margin-top:4px}.jade-mount-entry>img{width:64px;height:48px;object-fit:contain}.jade-mount-entry strong{display:block;font:17px var(--font-display);letter-spacing:2px}.jade-mount-entry em{display:block;font-size:12px;color:var(--muted);font-style:normal;margin-top:4px}
.jade-journey-strip{margin-top:8px}.chapter-rail{display:flex;gap:8px;margin-top:8px}.chapter-rail>span{flex:1;display:grid;gap:4px;font-size:12px;letter-spacing:1px;border-left:1px solid var(--line);padding-left:8px}.chapter-rail i{font:italic 17px Georgia;color:#70562d}.chapter-rail b{font-size:12px;color:var(--muted);font-weight:400}.chapter-rail .locked{color:var(--muted)}
.jade-hero-stage{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#f4e1bb0d,#e8e3cf10 60%,#efe8d999),url(assets/runtime/bamboo.webp) center/cover}
.jade-hero-stage:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 62% 30%,#fff0ce26,transparent 60%),linear-gradient(0deg,#f2ebdce8,transparent 32%);z-index:-1}
.scene-inscription{position:absolute;top:96px;right:32px;display:flex;gap:12px;writing-mode:vertical-rl;z-index:2;color:#293f33}.scene-inscription>span{font:24px var(--font-calligraphy);letter-spacing:8px}.scene-inscription>small{font:12px var(--font-display);letter-spacing:4px;opacity:.7}.scene-inscription>i{font:12px var(--font-display);font-style:normal;color:#a24b39;border:1px solid #a24b39;padding:6px 3px;align-self:start}
.jade-home-portrait{position:absolute;left:39%;bottom:124px;transform:translateX(-50%);height:calc(100% - 136px);width:84%;max-width:720px;object-fit:contain;object-position:center bottom;z-index:2;pointer-events:none;filter:drop-shadow(7px 12px 9px #263b3540);animation:immortal-breathe 7s ease-in-out infinite}
.jade-home-companion{position:absolute;right:3%;bottom:156px;width:48%;max-width:450px;z-index:1;pointer-events:none;filter:drop-shadow(0 14px 10px #20332935)}.jade-home-companion img{width:100%;display:block;animation:companion-float 5s ease-in-out infinite}.jade-home-companion span{display:block;width:max-content;font:12px var(--font-display);letter-spacing:3px;margin:-4px auto 0;color:#3a4e3b}
.hero-terrace{position:absolute;bottom:114px;left:9%;width:80%;height:56px;border-radius:50%;background:radial-gradient(ellipse,#abb6a79c 0,#c7cdbd99 45%,#83948788 64%,transparent 68%);border-bottom:3px solid #61796a44;box-shadow:0 24px 24px -16px #173c3855;z-index:0}.jade-hero-halo{position:absolute;left:17%;top:16%;width:66%;aspect-ratio:1;border:1px solid #e2d3ab22;border-radius:50%;pointer-events:none}
.jade-hub-nav{position:absolute;left:50%;transform:translateX(-50%);bottom:8px;display:flex;align-items:flex-start;justify-content:center;gap:32px;z-index:3;margin:0;width:max-content}
.jade-hub-nav>button{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;width:96px;min-height:116px;padding:4px 0;color:var(--ink)}
.jade-hub-nav svg{width:62px;height:62px;padding:14px;stroke-width:1.1;color:#f2e0b0;border:2px solid #b6a06b;outline:1px solid #c0a46b;outline-offset:3px;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#56866c,#24584c 52%,#173f37);box-shadow:inset 0 0 0 3px #e4cd9455,0 4px 8px #1f362c40;transition:transform .2s,box-shadow .2s}
.jade-hub-nav>button:hover svg{transform:translateY(-4px);box-shadow:inset 0 0 0 3px #e4cd9488,0 8px 12px #1f362c40}.jade-hub-nav>button>span{display:grid;gap:4px;text-align:center}.jade-hub-nav strong{font:22px var(--font-calligraphy);letter-spacing:3px}.jade-hub-nav small{font-size:12px;white-space:nowrap;color:#465b48}.jade-notice-dot{position:absolute;top:5px;right:15px;width:7px;height:7px;background:#a64e39;border:1px solid #e9d8b4;border-radius:50%}
.home-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;padding:0 16px;font-size:12px;color:var(--muted)}.home-foot>span{display:flex;align-items:center;gap:8px}.home-foot button{min-height:44px;font-size:12px;padding:8px;color:var(--muted)}.home-foot .ending-link{color:#70562d}.jade-save-mark{height:4px;width:4px;background:var(--jade);border-radius:50%}
body:has(#home:not([hidden])) #masthead{top:32px;right:40px;left:auto}body:has(#home:not([hidden])) #brand,body:has(#home:not([hidden])) .edition{display:none}
/* Character scrolls and route atlas use the same ink-on-silk surface. */
.selection{padding:112px 5.5% 32px;background:linear-gradient(90deg,#f3ecddf5,#f3ecddd9),url(assets/runtime/cloudsea.webp) center/cover;backdrop-filter:blur(4px)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.section-head h2{font-family:var(--font-calligraphy);margin:8px 0;font-size:40px}.section-head p{font-size:13px;color:var(--muted)}.section-head>div:last-child:not(:first-child){display:flex;gap:24px}.selection-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px}.selection-footer p{font-size:13px;line-height:1.8;color:var(--muted);max-width:70%}
#character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.character-card{position:relative;border:1px solid var(--line);background:linear-gradient(0deg,#efe6d0,#f3eddf88 65%,#bec8b680);padding:0 0 16px;min-width:0;box-shadow:inset 0 0 0 5px #f5efde}.character-card.selected{border-color:#a24b39;background:linear-gradient(0deg,#e4debe,#eeebd699 65%,#b9c9b38c)}.character-card.selected:after{content:'已择';position:absolute;top:16px;right:16px;writing-mode:vertical-rl;font:13px var(--font-display);letter-spacing:3px;padding:8px 4px;color:#a24b39;border:1px solid #a24b39;pointer-events:none}.character-select{padding:0 16px;width:100%;text-align:left}.portrait-canvas{display:block;width:100%;height:280px}.character-card h3{font:34px var(--font-calligraphy);letter-spacing:4px}.char-title{font-size:12px;color:var(--muted)}.stats{display:flex;gap:16px;margin-top:16px;font-size:12px;color:var(--muted)}.stats b{color:var(--ink);font-weight:400;margin-left:4px}.skill-label{font-size:12px;color:#735626;margin-top:16px}.preview-action{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);margin:8px 16px 0;min-height:44px}
#difficulty{display:flex;gap:8px;margin-bottom:24px}#difficulty button{padding:8px 16px;min-height:44px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}#difficulty .selected{border-color:var(--jade);color:var(--jade);background:#acb9a52a}
.journey-atlas{display:grid;grid-template-columns:256px minmax(0,1fr);gap:32px;align-items:start}.journey-nodes{display:grid;position:relative;padding-left:24px}.journey-nodes:before{content:'';position:absolute;left:4px;top:24px;bottom:24px;width:1px;background:linear-gradient(var(--gold),#ac905b33)}
.chapter-node{position:relative;display:grid;grid-template-columns:40px 1fr;text-align:left;gap:4px 16px;padding:24px 16px;border-bottom:1px solid var(--line);color:var(--muted);opacity:1!important;min-height:112px}.chapter-node:before{content:'';position:absolute;left:-24px;top:40px;width:8px;height:8px;background:var(--paper);border:1px solid var(--gold);transform:rotate(45deg)}.chapter-node.is-current:before{background:#a34e37}.chapter-node.is-current{background:linear-gradient(90deg,#afb59b33,transparent);color:var(--ink)}.chapter-node.is-locked{color:var(--muted)}.chapter-node .node-number{font:italic 32px Georgia;color:#70562d;grid-row:span 2;align-self:center;opacity:.7}.chapter-node h3{font-family:var(--font-calligraphy);font-size:28px}.chapter-node small{font-size:12px;color:var(--muted)}.chapter-node .node-stars{font-size:12px;color:#70562d;grid-column:2;letter-spacing:4px}
.journey-preview{position:relative;min-height:208px;padding:32px;display:flex;align-items:flex-end;background-size:cover;background-position:center 48%;border:1px solid var(--line);isolation:isolate}.journey-preview:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#eae6d4eb,transparent 85%);z-index:-1}.journey-preview h3{font:40px var(--font-calligraphy);letter-spacing:5px}.journey-preview p{font-size:12px;letter-spacing:1px;color:#3c5747;margin-top:8px}.journey-preview .chapter-seal{position:absolute;right:24px;top:24px;writing-mode:vertical-rl;border:1px solid #a24b39;padding:8px;font:14px var(--font-display);color:#a24b39;letter-spacing:3px;background:#f6ecd980}
.journey-detail{min-width:0}.journey-content{padding:24px 32px;background:var(--silk);border:1px solid var(--line);border-top:0;box-shadow:inset 0 0 0 6px #c8b67a0d}.chapter-facts{display:flex;gap:24px;font-size:12px;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line)}.chapter-facts strong{color:var(--ink);font-weight:400}.route-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.route-choice{padding:12px 16px;min-height:64px;text-align:left;border-left:2px solid var(--line);background:transparent}.route-choice[aria-pressed=true]{border-color:var(--jade);background:#b4c1a735}.route-choice strong{display:block;font:23px var(--font-calligraphy);color:var(--ink);margin-bottom:4px}.route-choice span{font-size:12px;color:var(--muted)}.route-choice[aria-pressed=true] strong{color:#17533f}.route-note{font-size:12px;color:var(--muted);min-height:40px;line-height:1.7}
.journey-rewards{display:flex;align-items:center;gap:24px;padding:16px 0;margin-top:8px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.journey-rewards b{font:24px Georgia;color:#70562d;margin-left:8px}.journey-rewards small{font-size:12px;display:block}.journey-departure{display:flex;align-items:center;justify-content:space-between;gap:16px}.journey-departure small{font-size:12px;color:var(--muted);line-height:1.6}.journey-departure button{min-width:200px}.journey-locked{font-size:13px;color:#70562d;padding:16px 0}
.mode-switch{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding:24px 0;border-top:1px solid var(--line)}.mode-switch h3{font-size:23px;margin-bottom:8px}.mode-switch p{font-size:12px;color:var(--muted);line-height:1.8}.mode-switch .secondary{flex-shrink:0}
@keyframes immortal-breathe{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}@keyframes companion-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(min-width:1600px){.jade-intro{padding:48px}.jade-home-layout{grid-template-columns:28% minmax(0,1fr)}}
@media(max-width:1100px){.jade-intro{padding:32px 24px 24px;gap:12px}.jade-home-layout{grid-template-columns:34% minmax(0,1fr)}.jade-intro h1{font-size:clamp(36px,5vw,56px)}.jade-home-portrait{left:43%;height:calc(100% - 176px);bottom:128px;width:95%}.jade-home-companion{right:0;width:47%}.jade-hub-nav{gap:12px}.jade-hub-nav>button{width:80px}.jade-hub-nav svg{width:56px;height:56px;padding:12px}.home-hero-id span{font-size:12px}.realm-chip{font-size:13px}.journey-atlas{grid-template-columns:208px minmax(0,1fr);gap:24px}.journey-content{padding:24px}.portrait-canvas{height:240px}.stats{gap:8px;font-size:12px}}
@media(max-width:900px) and (orientation:portrait){
 .jade-home{padding:calc(76px + var(--safe-top)) 16px calc(96px + var(--safe-bottom));background:linear-gradient(0deg,#f1e9d8 12%,#f1e9d873 60%,#f1e9d8e8 94%),url(assets/runtime/bamboo.webp) center 26%/auto 88% no-repeat,#eee7d5}
 .jade-home-layout{display:contents}.jade-home-layout:before,.jade-home-layout:after{display:none}.jade-home{display:flex;flex-direction:column;gap:8px}.jade-home>*{flex-shrink:0}.jade-intro{display:contents}.jade-chapter-kicker,.jade-intro h1,.jade-poem{display:none}
 body:has(#home:not([hidden])) #masthead{top:calc(16px + var(--safe-top));left:16px;right:16px}body:has(#home:not([hidden])) #brand{display:flex}body:has(#home:not([hidden])) #brand .seal{display:none}body:has(#home:not([hidden])) #brand small{display:none}body:has(#home:not([hidden])) #brand{font:32px var(--font-calligraphy);letter-spacing:2px}
 .home-wallet{order:0;text-align:center;padding:0;border:0;font-size:12px;letter-spacing:2px}.home-hero-id{order:1;display:flex;justify-content:space-between;gap:8px;min-height:44px;flex:none}.home-hero-id strong{font:22px var(--font-calligraphy);letter-spacing:2px}.home-hero-id>div:first-child{gap:8px}.home-hero-id span{font-size:12px;max-width:80px}.home-hero-id .realm-chip{font-size:12px;padding:4px}.home-hero-id .back{font-size:12px;min-height:44px;white-space:nowrap}
 .jade-hero-stage{order:2;flex:none;min-height:0;height:296px;background:none;overflow:visible}.jade-hero-stage:before{display:none}.jade-home-portrait{left:42%;bottom:0;height:100%;width:105%;max-width:none;filter:drop-shadow(6px 9px 7px #243d3830)}.jade-home-companion{right:-4px;bottom:24px;width:47%;max-width:200px}.jade-home-companion span{font-size:12px;letter-spacing:2px}.hero-terrace{bottom:-8px;left:9%;height:32px;width:80%;box-shadow:none;border:0;opacity:.65}.jade-hero-halo{display:none}.scene-inscription{top:24px;right:0;gap:6px}.scene-inscription>span{font-size:17px;letter-spacing:4px}.scene-inscription>small{font-size:12px;letter-spacing:3px}.scene-inscription>i{display:none}
 .jade-quest{order:3;flex:none;min-height:0;padding:12px 16px;background:linear-gradient(90deg,#f7f0dfef,#f7f0dfce),url(assets/runtime/bamboo.webp) center 68%/cover;text-align:center;border:1px solid #ac905b77;outline:1px solid #ac905b30;outline-offset:-4px}.jade-section-label{font-size:12px}.jade-quest:before{height:32px;width:32px}#home-goal{font-size:15px;line-height:1.6;margin:4px 0}
 .home-departure{order:4;flex:none;display:grid;gap:4px;margin-top:4px}.jade-expedition{font-size:31px;min-height:58px}.jade-expedition>span{font-size:18px}.jade-challenge{font-size:14px;min-height:44px;background:none;border:0;letter-spacing:2px}.jade-challenge>span{font-size:12px}
 .jade-home-aside{order:5;flex:none;display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px;padding:8px 0;border-top:1px solid var(--line)}.jade-equipped,.jade-mount-entry{border:0;gap:8px;padding:0}.jade-equipped-art{width:40px;height:72px}.jade-equipped strong{font-size:14px;letter-spacing:0}.jade-equipped>span>small:not(.jade-section-label){font-size:12px}.jade-card-link{font-size:12px}.jade-mount-entry>img{width:56px;height:56px}.jade-mount-entry strong{font-size:14px;letter-spacing:1px}.jade-mount-entry em{font-size:12px;line-height:1.7}
 .jade-journey-strip{order:6;flex:none;margin:8px 0}.chapter-rail{gap:16px}.chapter-rail>span{grid-template-columns:auto 1fr;gap:4px 8px;font-size:12px}.chapter-rail i{grid-row:span 2;font-size:20px}.chapter-rail b{font-size:12px}
 .jade-hub-nav{position:fixed;left:0;right:0;bottom:0;transform:none;width:100%;height:calc(86px + var(--safe-bottom));padding:8px 16px calc(8px + var(--safe-bottom));z-index:12;gap:0;justify-content:space-around;background:linear-gradient(0deg,#f1e9d8 80%,#f1e9d8db);border-top:1px solid #b3996240;box-shadow:0 -8px 20px #eee6d080}
 .jade-hub-nav>button{width:64px;min-height:68px;padding:0;gap:4px}.jade-hub-nav svg{width:44px;height:44px;padding:10px;outline-offset:2px;box-shadow:inset 0 0 0 2px #e4cd9455,0 2px 4px #1f362c30}.jade-hub-nav strong{font:17px var(--font-calligraphy);letter-spacing:2px}.jade-hub-nav small{display:none}.jade-notice-dot{right:9px;top:0;width:6px;height:6px}
 .home-foot{order:7;min-height:44px;padding:0;gap:8px;flex-wrap:wrap;font-size:12px}.home-foot button{font-size:12px;min-height:44px}
 .selection{padding:calc(88px + var(--safe-top)) 16px calc(24px + var(--safe-bottom))}.section-head{gap:16px;margin-bottom:16px}.section-head h2{font-size:31px;line-height:1.4}.section-head p{font-size:12px}.section-head>div:last-child:not(:first-child){flex-direction:column;gap:8px;flex-shrink:0}.section-head .back{font-size:12px;min-height:44px;white-space:nowrap}.section-head .eyebrow{font-size:12px}.selection-footer{gap:16px;margin-top:16px;flex-wrap:wrap}.selection-footer p{max-width:100%;font-size:12px}.selection-footer .primary{width:100%}
 #character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portrait-canvas{height:176px}.character-select{padding:0 8px}.character-card h3{font-size:28px}.character-card.selected:after{top:8px;right:8px;font-size:12px;padding:4px 2px}.char-title{font-size:12px}.stats{flex-direction:column;gap:4px;margin-top:8px;font-size:12px}.stats span{display:flex;justify-content:space-between}.skill-label{font-size:12px;margin-top:8px}.preview-action{font-size:12px;margin:8px 8px 0}
 #difficulty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:16px}#difficulty button{padding:8px 4px;font-size:12px}.journey-atlas{display:block}.journey-nodes{padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}.journey-nodes:before{display:none}.chapter-node{display:flex;flex-direction:column;gap:4px;padding:8px 4px;min-height:88px;border:0;border-bottom:2px solid var(--line);text-align:left}.chapter-node:before{display:none}.chapter-node.is-current{border-color:var(--jade);background:none}.chapter-node .node-number{font-size:20px;align-self:flex-start}.chapter-node h3{font-size:21px;letter-spacing:1px}.chapter-node small{font-size:12px}.chapter-node .node-stars{font-size:12px}.journey-preview{min-height:184px;padding:24px 16px}.journey-preview h3{font-size:36px}.journey-preview p{font-size:12px}.journey-preview .chapter-seal{right:16px;top:16px;font-size:12px;padding:4px}.journey-content{padding:16px}.chapter-facts{gap:16px;flex-wrap:wrap;font-size:12px;padding-bottom:16px}.route-choices{gap:8px;margin:16px 0 8px}.route-choice{padding:8px;min-height:64px}.route-choice strong{font-size:22px}.route-choice span{font-size:12px}.route-note{font-size:12px;min-height:0;margin-bottom:16px}.journey-rewards{gap:16px;padding:16px 0;flex-wrap:wrap}.journey-rewards b{font-size:24px}.journey-rewards>small{width:100%;font-size:12px}.journey-departure{flex-direction:column;align-items:stretch;gap:8px}.journey-departure button{width:100%;font-size:18px;min-height:52px}.journey-departure small{font-size:12px}.mode-switch{padding:16px 0;gap:16px;align-items:flex-start;flex-direction:column}.mode-switch h3{font-size:25px}.mode-switch p{font-size:12px}.mode-switch button{width:100%}
}
@media(max-width:370px) and (orientation:portrait){.jade-home{padding-top:calc(72px + var(--safe-top));gap:4px}.jade-hero-stage{height:256px}.home-hero-id>div:first-child{gap:4px}.home-hero-id span{font-size:12px}.home-hero-id .realm-chip{font-size:12px}.jade-home-portrait{left:43%}.jade-quest{padding:8px 12px}#home-goal{font-size:14px}.jade-expedition{min-height:54px;font-size:29px}.chapter-node h3{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.jade-home-layout{min-height:620px;grid-template-columns:34% 1fr}.jade-hero-stage{min-height:620px}.jade-intro{padding:24px;gap:8px}.jade-intro h1{font-size:42px}.jade-home-aside{display:none}.jade-quest{min-height:80px}.scene-inscription{right:16px}.jade-hub-nav{gap:8px}.jade-hub-nav>button{width:72px}.selection{padding-top:80px}.portrait-canvas{height:160px}.journey-atlas{grid-template-columns:208px minmax(0,1fr);gap:16px}.section-head h2{font-size:30px}}


/* The action occupies the first viewport; the painting adapts around it. */
.jade-home-layout{min-height:0}.jade-hero-stage{min-height:0}.jade-hub-nav{bottom:16px}
.jade-hub-nav>button{min-height:104px}.jade-hub-nav small{font-size:12px;color:#304c3e}
.jade-home-portrait{bottom:132px;height:calc(100% - 144px)}.hero-terrace{bottom:120px}
.home-hero-id .back,.jade-card-link,.home-foot button{font-size:14px}
.home-wallet,#home-loadout,.jade-mount-entry em,.home-hero-id span{font-size:12px;color:var(--muted)}
.home-departure{position:relative}.resume-note{font-size:12px;line-height:1.6;color:var(--muted);margin:0}
.home-departure:has(#resume-run:not([hidden])) #start{min-height:44px;font:16px var(--font-ui);letter-spacing:1px;color:var(--jade);background:#f7f0df;box-shadow:none;border:1px solid var(--line)}
.home-departure:has(#resume-run:not([hidden])) #start:before{display:none}
.home-departure:has(#resume-run:not([hidden])) #start>span{color:var(--jade)}
.jade-challenge{font-size:16px}.jade-challenge>span{font-size:12px;margin-left:8px}
.home-foot{font-size:12px}.chapter-rail>span,.chapter-rail b{font-size:12px}
.selection{padding-top:96px}.section-head{margin-bottom:16px}.section-head h2{font-size:34px;margin:0 0 4px}.section-head p{font-size:14px;line-height:1.6}
.section-head .back{font-size:14px}.section-head>div:last-child:not(:first-child){gap:16px}
#difficulty{margin-bottom:16px}#difficulty button{font-size:14px;padding:8px 16px}
.journey-atlas{grid-template-columns:216px minmax(0,1fr);gap:24px}.chapter-node{padding:16px 12px;min-height:96px;gap:4px 12px}.chapter-node h3{font-size:26px}.chapter-node small{font-size:12px}
.journey-preview{min-height:132px;padding:20px 24px}.journey-preview h3{font-size:36px}.journey-preview p{font-size:14px;letter-spacing:0}.journey-preview .chapter-seal{font-size:12px;top:16px;right:16px;padding:6px}
.journey-content{padding:16px 24px}.route-choices{margin:0 0 12px;gap:12px}.route-choice{padding:8px 12px;min-height:66px;border-left-width:1px}.route-choice strong{font-size:24px;margin-bottom:2px}.route-choice span{font-size:14px}
.journey-rewards{padding:10px 0;margin:0;gap:24px;font-size:14px}.journey-rewards b{font-size:26px;color:#70582e}.journey-rewards small{font-size:12px;margin-left:auto}
.journey-departure{padding-top:10px;gap:12px}.journey-departure .primary{min-height:52px;font-size:18px;order:2}.journey-departure small{font-size:12px;order:1}
.journey-rules{margin-top:12px;padding-top:0}.journey-rules summary{font-size:14px;min-height:44px;display:flex;align-items:center;list-style:none;gap:8px}.journey-rules summary:after{content:'＋';margin-left:auto}.journey-rules[open] summary:after{content:'−'}
.journey-rules .chapter-facts{padding:4px 0 8px;font-size:14px;flex-wrap:wrap;gap:8px 24px}.journey-rules p{font-size:14px;line-height:1.7;margin:8px 0}.route-note{min-height:0}
#levels .selection-footer{margin-top:12px;gap:16px}#levels .selection-footer p{font-size:12px;max-width:none}#levels .selection-footer .back{font-size:14px}
#characters{padding-bottom:0}#characters .selection-footer{position:sticky;bottom:0;z-index:4;margin-top:16px;padding:12px 0 calc(12px + var(--safe-bottom));background:var(--silk);border-top:1px solid var(--line);box-shadow:0 -10px 18px #eee4cebd}
#characters .selection-footer p{font-size:14px;max-width:72%;line-height:1.65}#characters .selection-footer button{font-size:16px;min-width:144px}.character-card{padding-bottom:12px}.portrait-canvas{height:240px}.char-title,.stats,.preview-action{font-size:12px}.skill-label{font-size:14px}.character-playstyle{font-size:14px;color:var(--jade);line-height:1.5;margin:8px 0 0}
.challenge-list{display:grid;grid-template-columns:1fr 1fr;gap:32px}.challenge-encounter{min-width:0;border-block:1px solid var(--line);padding-bottom:24px}.challenge-art{height:128px;background-size:cover;background-position:center 60%;border-bottom:1px solid var(--line)}.challenge-bridge{background-image:linear-gradient(0deg,#f2ebdc70,transparent),url('assets/runtime/bamboo.webp')}.challenge-trial{background-image:linear-gradient(0deg,#f2ebdc70,transparent),url('assets/runtime/thunder.webp')}.challenge-copy{padding:20px 0 0}.challenge-copy h3{font:30px var(--font-calligraphy);margin:0 0 8px}.challenge-copy p,.challenge-copy li{font-size:14px;line-height:1.75}.challenge-copy ul{margin:12px 0 20px;padding-left:20px;color:var(--muted)}.challenge-copy .primary{width:100%;font-size:16px}
@media(min-width:901px) and (max-height:800px){
 .jade-intro{padding:22px 24px 16px;gap:10px}.jade-intro h1{font-size:52px;margin-top:0}.jade-poem{font-size:12px;padding-bottom:10px}.home-hero-id strong{font-size:25px}.home-hero-id .back{min-height:36px}.home-wallet{padding:6px 0}.jade-quest{min-height:0;padding:10px 12px}#home-goal{font-size:16px;line-height:1.55;margin-top:4px}.jade-expedition{min-height:56px;font-size:30px}.jade-home-aside{margin-top:4px}.jade-journey-strip{margin-top:4px}.jade-equipped-art{height:56px}.jade-equipped strong,.jade-mount-entry strong{font-size:16px}
 .scene-inscription{top:84px}.jade-hub-nav svg{width:52px;height:52px;padding:12px}.jade-hub-nav>button{min-height:92px}.jade-home-portrait{bottom:120px;height:calc(100% - 132px)}.hero-terrace{bottom:110px}
 #characters .portrait-canvas{height:200px}#characters .character-card h3{font-size:28px}#characters .stats{gap:8px;margin-top:10px}#characters .skill-label{margin-top:8px}#characters .preview-action{margin-top:2px}
}
@media(max-width:900px) and (orientation:portrait){
 .jade-home-portrait{bottom:0;height:100%}.jade-hero-stage{height:248px;min-height:0}.hero-terrace{bottom:-8px}.jade-hub-nav{bottom:0}.jade-hub-nav>button{min-height:68px}.jade-hub-nav small{display:none}
 .home-hero-id{flex-wrap:wrap;gap:0 8px}.home-hero-id>div:first-child{gap:6px}.home-hero-id span{font-size:12px;max-width:none}.home-hero-id .realm-chip{font-size:12px}.home-hero-id .back{font-size:12px;min-height:44px}.home-wallet{font-size:14px}.jade-equipped-art{height:56px}.jade-equipped>span>small:not(.jade-section-label),.jade-mount-entry em{font-size:12px}.jade-card-link{font-size:12px}.jade-home-aside{gap:12px}.jade-equipped strong,.jade-mount-entry strong{font-size:14px}.jade-mount-entry>img{width:44px}.home-foot{font-size:12px;gap:4px}.home-foot button{font-size:14px}.home-departure:has(#resume-run:not([hidden])){gap:6px}.jade-expedition{min-height:56px}.jade-challenge{font-size:14px}.jade-challenge>span{font-size:12px;letter-spacing:0}
 .selection{padding:calc(76px + var(--safe-top)) 16px calc(16px + var(--safe-bottom))}.section-head{gap:12px;margin-bottom:12px;align-items:flex-start}.section-head h2{font-size:30px;margin:0 0 4px}.section-head p{font-size:14px;line-height:1.5}.section-head>div:last-child:not(:first-child){gap:0}.section-head .back{font-size:12px;min-height:40px;letter-spacing:0}
 #levels .section-head{position:relative;padding-right:82px;min-height:76px}#levels .section-head>div:last-child{position:absolute;right:0;top:0}.section-head .back{min-height:44px}
 #difficulty{gap:4px;margin-bottom:12px}#difficulty button{font-size:12px;min-height:44px;padding:6px 4px;letter-spacing:0}
 .journey-atlas{display:block}.journey-nodes{gap:8px;margin-bottom:12px}.chapter-node{padding:8px 2px;min-height:76px;gap:2px;border-bottom-width:1px}.chapter-node .node-number{display:none}.chapter-node h3{font-size:22px}.chapter-node small{font-size:12px;line-height:1.4}.chapter-node .node-stars{font-size:12px;letter-spacing:3px}
 .journey-preview{min-height:108px;padding:16px}.journey-preview h3{font-size:32px}.journey-preview p{font-size:12px;margin-top:4px;max-width:85%}.journey-preview .chapter-seal{font-size:12px;top:12px;right:12px;padding:4px}
 .journey-content{padding:12px 16px}.route-choices{gap:8px;margin:0 0 8px}.route-choice{padding:6px 8px;min-height:64px}.route-choice strong{font-size:22px}.route-choice span{font-size:12px;line-height:1.5}
 .journey-rewards{gap:8px 16px;padding:8px 0;font-size:14px}.journey-rewards b{font-size:24px;margin-left:6px}.journey-rewards>small{width:100%;font-size:12px;margin:0;line-height:1.4}
 .journey-departure{padding-top:8px;gap:6px}.journey-departure .primary{order:0;min-height:52px;font-size:18px}.journey-departure small{font-size:12px;text-align:center;line-height:1.4}.journey-rules{margin-top:8px}.journey-rules summary{font-size:14px}
 #levels .selection-footer{flex-wrap:wrap;gap:4px;margin-top:12px}#levels .selection-footer p{font-size:12px}#levels .selection-footer .back{font-size:12px}
 #characters{padding-bottom:0}#characters .portrait-canvas{height:160px}#characters .character-card h3{font-size:26px}#characters .char-title{font-size:12px;line-height:1.5;display:block;min-height:36px}#characters .stats{font-size:12px;gap:4px;margin-top:8px}#characters .skill-label{font-size:14px;margin-top:8px}.character-playstyle{font-size:14px}
 #characters .selection-footer{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 0 calc(12px + var(--safe-bottom));margin-top:16px}#characters .selection-footer p{max-width:none;font-size:12px;line-height:1.5}#characters .selection-footer button{min-width:104px;width:auto;padding:12px;font-size:16px}
 .challenge-list{grid-template-columns:1fr;gap:24px}.challenge-art{height:104px}.challenge-copy{padding-top:16px}.challenge-copy h3{font-size:28px}.challenge-copy p,.challenge-copy li{font-size:14px}
}
@media(max-width:370px) and (orientation:portrait){.jade-hero-stage{height:220px}.home-hero-id>div:first-child{flex-wrap:wrap;gap:2px 6px}.home-hero-id span{font-size:12px}.home-hero-id .realm-chip{font-size:12px}.chapter-node h3{font-size:20px}.journey-content{padding-inline:12px}}
@media(max-height:550px) and (orientation:landscape){.jade-home-layout{min-height:480px}.jade-hero-stage{min-height:0}.jade-hub-nav{gap:8px}.jade-hub-nav>button{width:72px;min-height:100px}.jade-intro{padding:20px}.selection{padding-top:76px}}

#characters{scroll-padding-bottom:160px}

/* Checkpoint continuation carries the chapter name without splitting the action. */
#resume-run{font-size:28px;letter-spacing:1px;line-height:1.4;white-space:nowrap}
@media(max-width:900px) and (orientation:portrait){#resume-run{font-size:24px;letter-spacing:.5px;min-height:56px}}

/* Refined courtyard controls: matte jade, ivory and a single aged-bronze edge. */
#sound .sound-off{display:none}#sound[data-muted=true] .sound-off{display:block}#sound[data-muted=true] .sound-on{display:none}
.ui-visually-hidden,#home .home-screen-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#home.jade-home{--home-bronze:#827c60;--home-ivory:#f0f0e5;--home-deep:#285345;--home-focus:#a24b39;display:block;padding:64px 0 0;background:#efede3;scroll-padding-top:80px;scroll-padding-bottom:36px}
#home .home-jade-slab{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 16px;border:1px solid var(--home-bronze);border-radius:10px 4px 10px 4px;background:linear-gradient(180deg,#eff1e6,#dce4d5);box-shadow:inset 0 1px 0 #fffaf0b3,inset 0 -1px 0 #74866824,0 2px 3px #334b3e24;color:#203e33;font:500 16px/1.4 var(--font-ui);letter-spacing:.4px;transition:background .16s,border-color .16s}
#home .home-jade-slab:hover:not(:disabled){background:linear-gradient(180deg,#f1f3e9,#d3e0ce);border-color:#657e67}
#home .home-jade-slab:disabled{opacity:1;cursor:not-allowed;color:#536458;background:#e1e6da;box-shadow:inset 0 1px 0 #ffffff60}
#home .home-jade-slab:focus-visible{outline:2px solid var(--home-focus);outline-offset:4px}
#home .home-jade-slab svg{width:24px;height:24px;stroke-width:1.5}
#home .home-icon,body:has(#home:not([hidden])) #masthead .home-icon{fill:currentColor;stroke:none;flex:none;vertical-align:middle;overflow:visible}
#home .home-equipment-action>svg:first-child{width:24px;height:24px}
#home svg.home-action-arrow{width:14px;height:18px;stroke-width:1.5}
#home svg.home-lotus{fill:currentColor;stroke:none}
#home .home-identity{position:absolute;top:0;left:220px;right:218px;height:64px;display:flex;align-items:center;gap:24px;z-index:6;min-width:0}
#home .home-hero-id{display:flex;align-items:center;justify-content:flex-start;gap:12px;min-height:44px;margin:0}
#home .home-hero-id>div{display:flex;align-items:baseline;gap:8px;min-width:0}
#home .home-hero-id strong{font:600 16px/1.4 var(--font-ui);letter-spacing:0;white-space:nowrap}
#home #home-title{display:none}
#home .home-avatar-frame{display:block;flex:none;width:44px;height:44px;overflow:hidden;border:1px solid #958867;border-radius:50%;background:#dce4d5}
#home-avatar{display:block;width:220%;height:220%;max-width:none;object-fit:cover;transform:translate(-28%,-4%)}
#home #home-character{min-height:44px;padding:8px 12px;font-size:14px;white-space:nowrap}
#home #home-character svg{width:20px;height:20px}
#home .home-wallet-counter{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;margin-left:auto;padding:4px 14px 4px 8px;border:1px solid #a4aa96;border-radius:5px;background:#eeeee5;color:var(--ink)}
#home .home-wallet-counter>svg{width:24px;height:30px;color:#41857d;fill:#c8e3d9;stroke-width:1.2}
#home .home-wallet{padding:0;margin:0;border:0;font:14px/1.5 var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--ink);text-align:right;white-space:nowrap}
body:has(#home:not([hidden])) #masthead{top:0;left:0;right:0;height:64px;min-height:64px;padding:10px 28px;background:linear-gradient(180deg,#f5f3e9,#eeeee3);border-bottom:1px solid #96977e88;gap:16px}
body:has(#home:not([hidden])) #brand{display:flex;font:34px/1.2 var(--font-calligraphy);letter-spacing:1px;color:#203b36}
body:has(#home:not([hidden])) #brand .seal,body:has(#home:not([hidden])) #brand small,body:has(#home:not([hidden])) .edition{display:none}
body:has(#home:not([hidden])) .header-tools{gap:10px;margin-left:auto}
body:has(#home:not([hidden])) .header-tools .icon-button{height:44px;min-width:44px;padding:9px;border:1px solid #8b997f;border-radius:6px;outline:0;box-shadow:inset 0 1px 0 #fffff399,0 2px 3px #294c3b14;background:linear-gradient(180deg,#eef1e5,#dce5d5);color:#254c3b}
body:has(#home:not([hidden])) .header-tools .icon-button:hover{background:#d6e4d0}
body:has(#home:not([hidden])) .header-tools .icon-button svg{width:25px;height:25px}
#home .jade-home-layout{position:relative;display:flex;flex-direction:column;width:100%;height:auto;min-height:calc(100dvh - 108px);padding:0;border:0;outline:0;background:#efede3;isolation:isolate}
#home .jade-home-layout:before,#home .jade-home-layout:after{display:none}
#home .home-courtyard{display:grid;grid-template-rows:104px minmax(180px,1fr) 124px;flex:1;min-height:408px;position:relative;isolation:isolate;background:linear-gradient(180deg,#f2f0e49c,transparent 32%,transparent 73%,#efede3e8),url(assets/runtime/courtyard-home.webp) center 90%/cover no-repeat,#e4eadd}
#home .home-cultivation{grid-row:1;position:relative;z-index:4;align-self:center;justify-self:center;width:min(560px,90%);min-width:0;padding:0 20px;text-align:center;border:0;background:radial-gradient(ellipse,#f3f0e6e0,#f3f0e6a6 54%,transparent 76%)}
#home .home-realm-heading{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:2px 12px}
#home .home-realm-heading h2{font:600 26px/1.35 var(--font-display);letter-spacing:1px;color:#203b36}
#home-realm-next{font:14px/1.5 var(--font-ui);color:var(--muted)}
#home .home-realm-amount{font:14px/1.5 var(--font-ui);margin-top:4px;font-variant-numeric:tabular-nums;color:var(--ink)}
#home-realm-progress{appearance:none;display:block;width:min(100%,350px);height:8px;margin:6px auto;border:1px solid #969275;border-radius:5px;overflow:hidden;background:#d1dccb;accent-color:#527a60}
#home-realm-progress::-webkit-progress-bar{background:#d1dccb}
#home-realm-progress::-webkit-progress-value{background:#527a60}
#home-realm-progress::-moz-progress-bar{background:#527a60}
#home-realm-condition{font:14px/1.5 var(--font-ui);color:#3c5146;text-wrap:balance}
#home[data-breakthrough=ready] #home-realm-condition{display:table;max-width:100%;margin-inline:auto;padding:1px 12px;background:#d5e5d4;color:#29513b;border-radius:3px}
#home .jade-hero-stage{grid-row:2;position:relative;width:100%;height:auto;min-height:0;overflow:visible;isolation:isolate;background:none;z-index:1}
#home .jade-hero-stage:before{display:none}
#home .jade-home-portrait{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:49%;max-width:640px;height:100%;max-height:540px;object-fit:contain;object-position:center bottom;z-index:3;filter:drop-shadow(4px 8px 6px #27382e29);pointer-events:none;animation:home-meditation-float 8s ease-in-out infinite}
#home .home-scene-weapon{position:absolute;left:25%;bottom:3%;transform:translateX(-50%);width:15%;max-width:168px;height:61%;max-height:300px;object-fit:contain;object-position:center bottom;z-index:2;filter:drop-shadow(2px 5px 4px #27382e24);pointer-events:none;animation:home-weapon-float 7s ease-in-out infinite}
#home .home-scene-mount{position:absolute;left:69%;bottom:7%;transform:translateX(-50%);width:32%;max-width:490px;height:95%;max-height:490px;z-index:1;pointer-events:none}
#home-mount-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(4px 6px 5px #27382e26);pointer-events:none;animation:none}
#home .home-scene-actions{grid-row:3;position:relative;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) minmax(216px,32%) minmax(0,1fr);align-items:start;gap:24px;width:min(1040px,88%);justify-self:center;min-width:0;padding:4px 0 8px;text-align:center}
#home .home-weapon-control,#home .home-mount-control{min-width:0;padding-top:4px}
#home-weapon-name,#home-mount-status{font:14px/1.5 var(--font-ui);min-height:21px;margin:0 0 6px;color:var(--ink);text-wrap:balance}
#home .home-equipment-action{width:100%;max-width:228px;min-height:50px;padding:10px 14px;font-size:18px;gap:10px}
#home .home-equipment-action .home-action-arrow{margin-left:auto}
#home .home-breakthrough{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;margin:0;padding:26px 0 0}
#home .home-breakthrough-button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;width:100%;max-width:320px;height:auto;min-height:60px;padding:10px 20px;border-color:#9e9069;border-radius:12px 6px 12px 6px;color:#f7f1dc;background:linear-gradient(180deg,#32614e,#285343);box-shadow:inset 0 1px 0 #a5b69066,inset 0 -2px 0 #183e3024,0 3px 5px #2c493928}
#home .home-breakthrough-button svg{width:32px;height:32px}
#home-realm-label{font:500 25px/1.4 var(--font-ui);letter-spacing:2px;white-space:nowrap}
#home .home-breakthrough-button:hover:not(:disabled){background:linear-gradient(180deg,#3c7059,#2d5c49);border-color:#938a60}
#home .home-breakthrough-button:disabled{opacity:1;color:#f1f1df;background:#566d5d;border-color:#9a9278;box-shadow:inset 0 1px 0 #c3ceb655}
#home-breakthrough-note{max-width:100%;font:12px/1.5 var(--font-ui);color:var(--muted);text-align:center;margin:0}
#home .home-utility-row{display:flex;justify-content:space-between;align-items:center;gap:24px;width:min(1180px,92%);margin:0 auto;padding:9px 0 10px;flex:none}
#home .home-income{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:0;min-width:0;border:0}
#home .home-income>svg{width:30px;height:34px;stroke-width:1.45;color:#30563e}
#home .home-income-copy{min-width:0}
#home .home-income-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}
#home .home-income-summary h3{font:500 15px/1.5 var(--font-ui);letter-spacing:0}
#home .home-income-summary>p{display:flex;align-items:baseline;gap:4px}
#home-idle-amount{font:500 18px/1.4 var(--font-ui);font-variant-numeric:tabular-nums;color:var(--jade)}
#home .home-income-summary>p>span{font:14px/1.5 var(--font-ui);color:var(--muted)}
#home-idle-state{font:12px/1.5 var(--font-ui);color:var(--muted)}
#home-idle-meta{font:12px/1.5 var(--font-ui);margin:2px 0 0;color:var(--muted)}
#home #home-idle-claim{min-width:76px;min-height:44px;padding:8px 14px;font-size:15px}
#home .home-utility-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 4px;font:14px/1.5 var(--font-ui);letter-spacing:0;color:#415c48;white-space:nowrap}
#home .home-utility-action:hover{color:#173d2a;text-decoration:underline;text-underline-offset:4px}
#home .home-checkpoint{display:none;width:min(1120px,92%);margin:0 auto;padding:0 0 10px;gap:8px 16px;align-items:center}
#home .home-checkpoint:has(#resume-run:not([hidden])){display:grid;grid-template-columns:auto 1fr}
#home #resume-run{min-height:44px;padding:8px 18px;font:15px/1.5 var(--font-ui);letter-spacing:0;white-space:nowrap;color:#f7f1dc;border-color:#8d8c6d;background:#355b49}
#home #resume-run:hover{background:#426b55}
#home .resume-note{font:12px/1.5 var(--font-ui);margin:0;color:var(--muted)}
#home .jade-hub-nav{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:100%;height:84px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(220px,1.65fr);align-items:stretch;gap:20px;margin:0;padding:8px max(24px,2.5vw);border:0;border-top:1px solid #9c9980;background:linear-gradient(180deg,#f3f1e6,#eaeedf);box-shadow:none;z-index:6;flex:none}
#home .jade-hub-nav>button{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;width:auto;min-width:0;min-height:64px;padding:8px 12px;border:0;border-radius:0;background:none;box-shadow:none;color:#3f432f}
#home .jade-hub-nav>button:not(:first-child):not(#start):before{content:'';position:absolute;left:-10px;top:14px;bottom:14px;width:1px;background:#aaac9470}
#home .jade-hub-nav>button:hover{background:#dfe7d5}
#home .jade-hub-nav>button[aria-current=page]{border:1px solid #96a88a;border-radius:10px 5px 10px 5px;background:linear-gradient(180deg,#e5eddf,#d2e1ce);color:#2b543f}
#home .jade-hub-nav svg{width:30px;height:30px;padding:0;stroke-width:1.4;border:0;outline:0;border-radius:0;background:none;box-shadow:none;color:currentColor;transition:none}
#home .jade-hub-nav>button:hover svg{transform:none;box-shadow:none}
#home .jade-hub-nav>button>span{display:grid;gap:1px;text-align:left}
#home .jade-hub-nav strong{font:500 20px/1.4 var(--font-ui);letter-spacing:1px}
#home .jade-hub-nav small{display:none}
#home .jade-notice-dot{top:10px;right:calc(50% - 36px);width:6px;height:6px}
#home .jade-hub-nav #start{display:flex;gap:16px;min-height:66px;padding:8px 22px;border:1px solid #9e9069;border-radius:12px 6px 12px 6px;background:linear-gradient(180deg,#32614e,#285343);box-shadow:inset 0 1px 0 #a5b6905c,0 2px 4px #31493224;color:#f7f1dc;letter-spacing:0}
#home .jade-hub-nav #start:hover:not(:disabled){background:linear-gradient(180deg,#3c7059,#2d5c49)}
#home .jade-hub-nav #start:disabled{opacity:1;background:#566d5d;color:#e9edde;cursor:wait}
#home .jade-hub-nav #start>svg:first-child{width:32px;height:32px}
#home .jade-hub-nav #start .home-action-arrow{width:14px;height:18px;margin-left:auto}
#home .jade-hub-nav #home-start-label{font:500 26px/1.2 var(--font-ui);letter-spacing:3px}
#home .jade-hub-nav #home-expedition-title{display:block;font:14px/1.4 var(--font-ui);color:#e7edda;letter-spacing:0;white-space:nowrap}
#home .home-foot{min-height:44px;padding:0 28px;gap:16px;margin:0;background:#efede3;font:12px/1.5 var(--font-ui);color:var(--muted)}
#home .home-foot button{font:12px/1.5 var(--font-ui);min-height:44px;padding:6px 8px}
@keyframes home-meditation-float{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-6px)}}
@keyframes home-weapon-float{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}
@media(min-width:901px) and (min-height:900px){
 #home .home-courtyard{grid-template-rows:120px minmax(360px,1fr) 124px}
 #home .home-cultivation{padding-block:4px}
 #home .home-realm-heading h2{font-size:28px}
 #home .home-realm-amount{font-size:16px}
 #home .home-utility-row{padding-block:14px}
}
@media(min-width:901px) and (max-width:1100px){
 #home .home-identity{left:196px;right:190px;gap:12px}
 #home .home-hero-id{gap:8px}
 #home .home-avatar-frame{width:38px;height:38px}
 #home #home-character{gap:6px;padding-inline:8px}
 #home .home-wallet-counter{padding-right:8px;gap:4px}
 body:has(#home:not([hidden])) #masthead{padding-inline:20px}
 body:has(#home:not([hidden])) #brand{font-size:30px}
 #home .home-scene-actions{width:92%;gap:16px;grid-template-columns:minmax(0,1fr) minmax(208px,32%) minmax(0,1fr)}
 #home .home-equipment-action{font-size:16px;gap:6px;padding-inline:10px}
 #home-realm-label{font-size:23px;letter-spacing:1px}
 #home .jade-hub-nav{gap:12px;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(188px,1.5fr)}
}
@media(max-width:900px){
 #home.jade-home{display:block;padding:calc(60px + var(--safe-top)) 0 calc(92px + var(--safe-bottom));scroll-padding-top:calc(76px + var(--safe-top));scroll-padding-bottom:calc(102px + var(--safe-bottom));background:#efede3}
 body:has(#home:not([hidden])) #masthead{top:0;left:0;right:0;height:calc(60px + var(--safe-top));min-height:calc(60px + var(--safe-top));padding:calc(8px + var(--safe-top)) 16px 8px;background:linear-gradient(180deg,#f5f3e9,#eeeee3)}
 body:has(#home:not([hidden])) #brand{font:28px/1.2 var(--font-calligraphy);letter-spacing:1px}
 body:has(#home:not([hidden])) #full{display:none}
 body:has(#home:not([hidden])) .header-tools{gap:8px}
 #home .home-identity{position:relative;top:auto;left:auto;right:auto;height:auto;min-height:62px;padding:7px 12px;display:flex;gap:8px;z-index:auto;border-bottom:1px solid #96977e55;background:#f0f0e5}
 #home .home-hero-id{min-height:44px;gap:7px;flex:1;order:initial;flex-wrap:nowrap}
 #home .home-avatar-frame{width:36px;height:36px}
 #home .home-hero-id>div{gap:0}
 #home .home-hero-id strong{font-size:14px}
 #home #home-character{font-size:12px;min-height:44px;padding:7px;gap:4px;letter-spacing:0}
 #home #home-character svg{width:16px;height:16px}
 #home .home-wallet-counter{min-height:36px;margin-left:auto;padding:3px 7px;gap:4px}
 #home .home-wallet-counter>svg{width:17px;height:22px}
 #home .home-wallet{font-size:12px;white-space:nowrap;order:initial}
 #home .jade-home-layout{display:block;min-height:0;height:auto;background:#efede3}
 #home .home-courtyard{display:grid;grid-template-rows:auto 244px auto;min-height:0;background:linear-gradient(180deg,#f2f0e4bf,transparent 42%,#f2f0e433 72%,#efede3),url(assets/runtime/courtyard-home.webp) center 85%/auto 100% no-repeat,#dfe7da}
 #home .home-cultivation{width:100%;max-width:none;align-self:auto;margin:0;padding:14px 16px 8px;background:linear-gradient(180deg,#f2f0e4dc,#f2f0e4a8,transparent)}
 #home .home-realm-heading{gap:2px 8px}
 #home .home-realm-heading h2{font-size:24px}
 #home-realm-next{font-size:12px}
 #home .home-realm-amount{font-size:14px;line-height:1.5;margin-top:4px}
 #home-realm-progress{width:82%;margin:7px auto}
 #home-realm-condition{font-size:12px;line-height:1.5}
 #home .jade-hero-stage{order:initial;flex:none;width:100%;height:auto;min-height:0;overflow:visible;background:none;margin:0}
 #home .jade-home-portrait{left:45%;bottom:0;width:58%;height:100%;max-width:none;max-height:none;object-position:center bottom}
 #home .home-scene-weapon{left:16%;bottom:4%;width:20%;height:56%;max-width:90px;max-height:none}
 #home .home-scene-mount{left:79%;bottom:28%;width:42%;height:85%;max-width:none;max-height:none}
 #home .home-scene-actions{width:100%;grid-template-columns:minmax(0,1fr) 128px minmax(0,1fr);gap:8px;padding:8px 12px 14px;align-items:start}
 #home .home-weapon-control,#home .home-mount-control{padding-top:0}
 #home-weapon-name,#home-mount-status{font-size:12px;line-height:1.5;min-height:36px;margin-bottom:6px}
 #home .home-equipment-action{width:100%;min-width:0;min-height:48px;padding:7px 6px;font-size:14px;letter-spacing:0;gap:5px}
 #home .home-equipment-action>svg:first-child{width:20px;height:20px}
 #home .home-equipment-action .home-action-arrow{display:none}
 #home .home-breakthrough{width:100%;padding:42px 0 0;gap:7px;margin:0}
 #home .home-breakthrough-button{width:100%;max-width:none;min-height:52px;padding:8px;gap:6px;border-radius:9px 5px 9px 5px}
 #home .home-breakthrough-button svg{width:22px;height:22px}
 #home-realm-label{font-size:17px;letter-spacing:0}
 #home-breakthrough-note{font-size:12px;line-height:1.5}
 #home .home-utility-row{width:100%;padding:14px 16px;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid #8ba09355}
 #home .home-income{width:100%;grid-template-columns:26px minmax(0,1fr) auto;gap:9px}
 #home .home-income>svg{width:25px;height:30px}
 #home .home-income-summary{gap:2px 6px}
 #home .home-income-summary h3{font-size:14px}
 #home-idle-amount{font-size:17px}
 #home .home-income-summary>p>span{font-size:12px}
 #home-idle-meta{font-size:12px;line-height:1.5;margin-top:2px}
 #home #home-idle-claim{min-width:62px;min-height:44px;padding:8px 12px;font-size:14px}
 #home .home-utility-action{margin-left:auto;font-size:12px;min-height:44px}
 #home .home-checkpoint{width:100%;padding:0 16px 14px;gap:7px}
 #home .home-checkpoint:has(#resume-run:not([hidden])){grid-template-columns:1fr}
 #home #resume-run{width:100%;min-height:48px;font-size:14px;padding:9px 14px}
 #home .resume-note{font-size:12px;line-height:1.5}
 #home .jade-hub-nav{position:fixed;left:0;right:0;bottom:0;transform:none;width:100%;height:calc(84px + var(--safe-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(88px,1.4fr);padding:6px 8px calc(6px + var(--safe-bottom));gap:4px;background:linear-gradient(180deg,#f3f1e6,#eaeedf);border-top:1px solid #9c9980;box-shadow:none;z-index:12}
 #home .jade-hub-nav>button{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;width:auto;min-height:70px;padding:4px;border:0}
 #home .jade-hub-nav>button:not(:first-child):not(#start):before{display:none}
 #home .jade-hub-nav>button>span{text-align:center}
 #home .jade-hub-nav svg{width:25px;height:25px;padding:0}
 #home .jade-hub-nav strong{font:500 14px/1.4 var(--font-ui);letter-spacing:0}
 #home .jade-hub-nav #start{flex-direction:column;gap:2px;min-width:0;min-height:70px;padding:4px 6px;border-radius:9px 5px 9px 5px}
 #home .jade-hub-nav #start>svg:first-child{width:23px;height:23px}
 #home .jade-hub-nav #start .home-action-arrow{display:none}
 #home .jade-hub-nav #home-start-label{font-size:17px;line-height:1.2;letter-spacing:1px}
 #home .jade-hub-nav #home-expedition-title{font-size:12px;line-height:1.4;letter-spacing:0}
 #home .jade-notice-dot{top:6px;right:calc(50% - 16px)}
 #home .home-foot{margin:0;min-height:44px;padding:0 16px;gap:4px;flex-wrap:wrap;font-size:12px;order:initial}
 #home .home-foot button{font-size:12px;min-height:44px}
}
@media(max-width:370px){
 #home .home-identity{gap:6px;padding-inline:10px}
 #home .home-hero-id{gap:5px}
 #home .home-avatar-frame{width:32px;height:32px}
 #home #home-character{padding-inline:6px}
 #home #home-character svg{display:none}
 #home .home-wallet-counter{gap:3px;padding-inline:5px}
 #home .home-courtyard{grid-template-rows:auto 224px auto}
 #home .home-realm-heading h2{font-size:23px}
 #home .home-scene-actions{grid-template-columns:minmax(0,1fr) 124px minmax(0,1fr);gap:8px;padding-inline:10px}
 #home .home-equipment-action>svg:first-child{display:block;width:20px;height:20px}
 #home .jade-hub-nav{grid-template-columns:repeat(4,minmax(0,1fr)) 86px}
}
@media(max-width:900px) and (orientation:landscape){
 #home .home-courtyard{grid-template-rows:auto 248px auto;background-size:cover;background-position:center 85%}
 #home .home-scene-actions{width:min(100%,620px)}
 #home .home-utility-row,#home .home-checkpoint{max-width:640px;margin-inline:auto}
}
@media(prefers-reduced-motion:reduce){#home .jade-home-portrait,#home .home-scene-weapon{animation:none}}
.motion-reduced #home .jade-home-portrait,.motion-reduced #home .home-scene-weapon{animation:none}

/* The cloth rig owns portrait motion; the PNG keeps a readable fallback. */
#home #home-portrait[data-meditation-motion]:not([data-meditation-motion="fallback"]){animation:none}
#home canvas.meditation-motion-canvas{animation:none;transform:translateX(-50%);pointer-events:none}
#home img.meditation-motion-source{opacity:0}

/* Material balances occupy the middle of the existing identity header. */
#home .home-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px}
#home .home-resource-bar{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:4px 18px;min-width:0;margin:0;padding:0;color:#385647}
#home .home-resource-bar>div{display:grid;grid-template-columns:26px auto auto;align-items:center;gap:5px;min-width:0}
#home .home-resource-bar .cult-item-icon{width:26px;height:26px;flex-basis:26px}
#home .home-resource-bar dt{font:12px/1.5 var(--font-ui);white-space:nowrap;color:#485f50}
#home .home-resource-bar dd{margin:0;font:14px/1.5 var(--font-ui);font-variant-numeric:tabular-nums;color:#203b36;white-space:nowrap}
#home .home-wallet-counter{margin-left:0}
@media(min-width:901px) and (max-width:1200px){
 #home.jade-home{padding-top:108px}
 #home .home-identity{grid-template-columns:minmax(0,1fr) auto;height:108px;gap:0 12px;align-content:start}
 #home .home-hero-id,#home .home-wallet-counter{grid-row:1;align-self:center;margin-top:10px;margin-bottom:10px}
 #home .home-hero-id{grid-column:1}#home .home-wallet-counter{grid-column:2;justify-self:end}
 #home .home-resource-bar{grid-row:2;grid-column:1/-1;min-height:44px;padding:6px 0;gap:8px 24px;background:#f0f0e5;border-bottom:1px solid #96977e55}
 #home .jade-home-layout{min-height:calc(100dvh - 152px)}
}
@media(max-width:900px){
 #home .home-identity{grid-template-columns:minmax(0,1fr) auto;gap:7px 8px;align-items:center;padding-bottom:10px}
 #home .home-hero-id{grid-column:1;grid-row:1}#home .home-wallet-counter{grid-column:2;grid-row:1;justify-self:end}
 #home .home-resource-bar{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:7px 0 0;border-top:1px solid #96977e44}
 #home .home-resource-bar>div{grid-template-columns:23px auto;gap:2px 5px;justify-content:center}
 #home .home-resource-bar .cult-item-icon{width:23px;height:23px;flex-basis:23px}
 #home .home-resource-bar dt{font-size:12px}#home .home-resource-bar dd{grid-column:1/-1;text-align:center;font-size:12px}
}

/* v20: align the seated silhouette with the courtyard dais, mount behind. */
#home .jade-home-portrait{bottom:16%;height:92%;max-height:500px;width:46%;}
#home .home-scene-mount{left:78%;bottom:20%;width:34%;max-width:520px;height:103%;max-height:540px;}
#home .home-scene-weapon{bottom:18%;height:57%;animation:home-sword-hover-v20 7s ease-in-out infinite;transform-origin:50% 75%;}
@keyframes home-sword-hover-v20{0%,100%{transform:translateX(-50%) translateY(0) rotate(-1deg)}50%{transform:translateX(-50%) translateY(-12px) rotate(1deg)}}
@media(max-width:700px){#home .jade-home-portrait{left:46%;bottom:-3%;width:58%;height:88%;max-height:none;}#home .home-scene-mount{left:78%;bottom:22%;width:44%;height:100%;max-height:none;}#home .home-scene-weapon{bottom:15%;height:54%;}}
@media(prefers-reduced-motion:reduce){#home .home-scene-weapon{animation:none}}
.motion-reduced #home .home-scene-weapon{animation:none}

/* v26: live courtyard layers. All visual layers ignore input. */
#home .lobby-motion-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none!important;contain:strict}
#home .lobby-orbit-rear{z-index:2}#home .lobby-orbit-front{z-index:4}#home .lobby-environment{z-index:-1}
#home .home-courtyard.lobby-background-live{background-image:none}
#home .home-cultivation{position:relative;z-index:5}
#home .home-scene-mount{left:84%;width:29%;height:96%;bottom:20%}
#home canvas.mount-motion-canvas{position:absolute;inset:0;width:100%;height:100%;transform:none;object-fit:contain;filter:drop-shadow(4px 6px 5px #27382e26)}
#home.lobby-motion-active .home-scene-weapon{opacity:1;filter:drop-shadow(0 0 5px #70bdb4)}
#home .lobby-ground-shadows{z-index:-1}
@media(max-width:700px){#home .home-scene-mount{left:83%;width:38%;height:94%;bottom:20%}}

#home .lobby-orbit-rear{z-index:0}
#home .home-scene-mount{left:85%;bottom:24%}

#home #home-scene-motion{font:12px/1.5 var(--font-ui);padding:4px 8px;border:1px solid #a4b59c;border-radius:3px;background:#edf0e4;color:#284f42;min-height:32px;white-space:nowrap}#home #home-scene-motion:disabled{opacity:1;color:#8e523e}.home-foot{flex-wrap:wrap}

/* v32: prop staging leaves physical space for a character-sized orbiting blade. */
#home .home-scene-weapon{left:21%}
@media(max-width:700px) and (orientation:portrait){
 #home .home-courtyard{grid-template-rows:auto clamp(300px,82vw,350px) auto}
 #home .jade-hero-stage{height:clamp(300px,82vw,350px);min-height:300px}
 #home .jade-home-portrait{left:46%;width:44%;height:80%;bottom:10%}
 #home .home-scene-weapon{left:12%;width:20%;height:31%;bottom:65%;animation:none}
 #home .home-scene-mount{left:86.5%;width:28%;height:48%;bottom:63%}
}

@media(max-width:700px) and (orientation:portrait){#home .home-scene-mount{max-width:150px}}

@media(min-width:701px) and (max-width:900px) and (orientation:portrait){#home .home-scene-weapon{left:12%}}

/* Keep portrait equipment grounded on the terrace as well as outside the blade. */
@media(max-width:700px) and (orientation:portrait){
 #home .home-scene-weapon{left:8%;width:15%;bottom:10%}
 #home .home-scene-mount{left:89%;width:22%;bottom:20%}
}

/* v33: narrow tall courtyards keep character and blade at the same scale. */
@media(min-width:901px) and (max-width:1440px){
 #home .jade-home-portrait{max-width:34%}
 #home .home-scene-weapon{left:14%}
}
.scene-motion-manual-pause #home .home-scene-weapon{animation:none!important}
.scene-motion-forced #home .home-scene-weapon{animation:home-sword-hover-v20 7s ease-in-out infinite!important}
@media(max-width:700px) and (orientation:portrait){.scene-motion-forced #home .home-scene-weapon{animation:none!important}}

/* v35: make room around the figure instead of shrinking the orbit. */
@media(min-width:701px){
 #home .jade-hero-stage.lobby-orbit-space .jade-home-portrait{max-width:32%}
 #home .jade-hero-stage.lobby-orbit-space .home-scene-weapon{left:9%}
 #home .jade-hero-stage.lobby-orbit-space .home-scene-mount{left:89%;width:26%}
}

/* v36: reserve a full-size orbit lane, keep props at the outside edges. */
@media(min-width:701px){
 #home .jade-hero-stage.lobby-orbit-space .jade-home-portrait{max-width:30%}
 #home .jade-hero-stage.lobby-orbit-space .home-scene-weapon{left:8%;width:10%;max-width:120px;height:45%;bottom:27%}
 #home .jade-hero-stage.lobby-orbit-space .home-scene-mount{left:90%;width:22%}
}

/* v38: route recovery must work at every stage width, including a narrow app panel. */
#home .jade-hero-stage.lobby-orbit-space .jade-home-portrait{left:50%;max-width:30%;bottom:16%}
#home .jade-hero-stage.lobby-orbit-space .home-scene-weapon{left:8%;width:10%;max-width:120px;height:45%;bottom:27%}
#home .jade-hero-stage.lobby-orbit-space .home-scene-mount{left:90%;width:22%;bottom:24%}

/* v39: a compact triangular composition, distances tied to the figure. */
#home .jade-hero-stage.lobby-orbit-space .home-scene-weapon{left:calc(50% - var(--lobby-prop-offset,34%))}
#home .jade-hero-stage.lobby-orbit-space .home-scene-mount{left:calc(50% + var(--lobby-prop-offset,34%))}

/* v40: mount height follows the cultivator, independent of window width. */
#home .jade-hero-stage.lobby-orbit-space .home-scene-weapon{left:calc(50% - var(--lobby-weapon-offset,34%))}
#home .jade-hero-stage.lobby-orbit-space .home-scene-mount{left:calc(50% + var(--lobby-mount-offset,34%));width:var(--lobby-mount-width,29%)}

/* Weapon scale follows its opaque silhouette across realm icon padding. */
#home #home-weapon-image[data-scale-ready="true"]{left:var(--weapon-x);top:var(--weapon-y);bottom:auto;width:var(--weapon-width);height:var(--weapon-height);max-width:none;max-height:none;object-position:center center;transform-origin:50% 75%}

/* panels.css */
/* 绢本山海：functional pages follow the approved UI board, not the former card system. */
#hub-panel{padding:calc(88px + var(--safe-top,0px)) 40px calc(32px + var(--safe-bottom,0px));color:var(--ink);background:linear-gradient(100deg,#f2ebdcf2,#f7f1e5eb 55%,#e7dfcce8),url('assets/runtime/bamboo.webp') center/cover}
#hub-content{width:min(1200px,100%);margin:0 auto;padding:16px 32px 24px;position:relative;border:1px solid var(--line);outline:1px solid #b4965b2b;outline-offset:5px;background:linear-gradient(110deg,#ffffff38,transparent 50%),repeating-linear-gradient(0deg,#90774404 0 1px,transparent 1px 4px);font:15px/1.65 var(--font-ui);color:var(--ink)}
#hub-content::before,#hub-content::after{content:'';position:absolute;pointer-events:none;width:48px;height:48px;border:3px double #ad945c77;z-index:0}#hub-content::before{left:5px;top:5px;border-right:0;border-bottom:0}#hub-content::after{right:5px;bottom:5px;border-left:0;border-top:0}
#hub-content *{box-sizing:border-box}#hub-content h2,#hub-content h3,#hub-content h4,#hub-content p,#hub-content figure,#hub-content dl,#hub-content dd{margin:0}#hub-content h2,#hub-content h3,#hub-content h4{font-family:var(--font-display);font-weight:500;color:var(--ink)}#hub-content button{min-height:44px;line-height:1.4}#hub-content svg{width:20px;height:20px;flex-shrink:0}#hub-content img{display:block;max-width:100%;user-select:none}
.panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:0}.panel-top .back{padding:8px 0;background:none;border:0;color:var(--ink);font-size:12px}.panel-top .back::before{content:'←';margin-right:8px}.panel-wallet{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:24px;font-size:12px;color:var(--muted)}.panel-wallet span{white-space:nowrap}.panel-wallet b{color:var(--ink);font:21px var(--font-display);margin-left:8px;font-variant-numeric:tabular-nums}
.panel-tabs{display:flex;gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px;padding:4px 0}.panel-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-width:104px;padding:8px 16px;border:1px solid transparent;background:none;color:var(--muted);font-size:14px}.panel-tabs button.is-active{color:#f7eed5;border-color:#957d48;background:linear-gradient(135deg,#2e6254,#17483e);box-shadow:inset 0 0 0 3px #c4ad722b}.panel-tabs button:hover:not(.is-active){color:var(--ink);border-color:var(--line);background:#ac905b0a}
.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px}.panel-kicker{color:#70562d;font-size:12px;letter-spacing:2px;line-height:1.5}#hub-content .panel-heading h2{font-size:34px;letter-spacing:5px;line-height:1.2;margin:4px 0;display:flex;align-items:center;gap:16px}.manuscript-seal{display:inline-grid;place-items:center;width:23px;height:29px;border:1px solid #996c58;color:#854e3d;font:16px var(--font-display);font-style:normal;letter-spacing:0;transform:rotate(-3deg)}#hub-content .panel-heading p{color:var(--muted);font-size:13px;line-height:1.7}.kit-tabs{display:none;gap:0;border-bottom:1px solid var(--line);flex-shrink:0}.kit-tabs button{min-width:80px;padding:8px 16px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted)}.kit-tabs button.is-active{color:var(--jade);border-bottom-color:var(--jade)}
.panel-section-line{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px}.panel-state{font-size:12px;letter-spacing:1px;padding:4px 8px;border:1px solid #8a9b8170;color:#41614e;white-space:nowrap}.panel-actions{display:flex;gap:8px}.panel-actions button{flex:1;min-width:0;padding:12px 16px;font-size:15px}#hub-content .panel-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:8px}#hub-content .panel-footnote{font-size:12px;line-height:1.8;color:var(--muted);margin-top:16px}.panel-progress{height:4px;background:#ad945c2b;overflow:hidden}.panel-progress i{display:block;width:0;height:100%;background:#9c8148;min-width:0}
/* Cave: an illustrated breath circle and an open manuscript, not paired cards. */
.cave-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:stretch}.cave-sanctum{padding:24px 32px;position:relative;background:linear-gradient(180deg,#e9efdf72,#e6e6cce8 70%,#eee6d5),url('assets/runtime/bamboo.webp') center/cover;border:1px solid #ae976570;box-shadow:inset 0 0 0 6px #faf4df50}.cave-sanctum .panel-state{background:#e5e9d5a6}.cave-array{position:relative;height:264px;width:264px;margin:8px auto;display:grid;place-items:center}.cave-array svg{position:absolute;width:100%!important;height:100%!important;inset:0;stroke:#947b46;stroke-width:.7;opacity:.6}.cave-array>div{text-align:center;position:relative;display:flex;flex-direction:column}.cave-array span{font-size:12px;letter-spacing:2px;color:#435548}.cave-array strong{font:80px/1.2 var(--font-display);font-variant-numeric:tabular-nums;color:#1e4a3f;text-shadow:0 2px 0 #fbf6df}.cave-array small{font:12px var(--font-display);letter-spacing:5px;color:#4b5f44}.cave-yield>.panel-section-line{font-size:12px;margin-bottom:8px}.cave-yield>.primary{width:100%;margin-top:16px}#hub-content #idle-calc{font-size:12px;text-align:center;margin:16px 0 0;color:#52614e}#hub-content #idle-warning{text-align:center;font-size:12px}
.cave-realm{padding:16px 0}.cave-realm>.panel-section-line{border-bottom:1px solid var(--line);padding-bottom:8px}#hub-content .cave-realm h3{font-size:48px;line-height:1.3;letter-spacing:8px;margin:16px 0 24px;color:var(--jade)}.realm-path{display:flex;list-style:none;padding:0;margin:0 0 24px;gap:0}.realm-path li{position:relative;width:25%;padding:16px 0 0;color:var(--muted);font-size:14px;border-top:1px solid var(--line)}.realm-path li::before{content:'';position:absolute;top:-4px;left:0;width:7px;height:7px;border:1px solid #a18c59;background:var(--paper);transform:rotate(45deg)}.realm-path .is-reached::before{background:var(--jade);border-color:var(--jade)}.realm-path .is-current{color:var(--jade);font-weight:600}.realm-bonus{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:24px;border-bottom:1px solid var(--line)}.realm-bonus>div{display:flex;align-items:center;gap:16px}.realm-bonus dt{font-size:12px;color:var(--muted)}.realm-bonus dd{font:25px/1.3 var(--font-display);color:var(--ink)}.realm-next{margin-top:24px}#hub-content .realm-next h4{font:15px/1.5 var(--font-ui);margin-bottom:8px}.realm-next h4 strong{color:var(--jade);font-family:var(--font-display);font-size:22px;margin-left:8px}.realm-requirement{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}.requirement-mark{height:24px;width:24px;border:1px solid var(--line);display:grid;place-items:center;font-size:12px;flex-shrink:0;color:var(--muted)}.realm-requirement>div{flex:1;min-width:0}.realm-requirement b{display:block;font-size:14px;font-weight:500}.realm-requirement small{color:var(--muted);font-size:12px}.realm-requirement>span:last-child{color:var(--muted);white-space:nowrap}.realm-requirement.is-met .requirement-mark{color:var(--jade);border-color:#5c816f}.realm-requirement.is-met>span:last-child{color:var(--jade)}.realm-next>.primary{width:100%;margin-top:24px}.realm-complete{padding:32px 0;color:var(--jade)}.realm-complete p{margin-top:16px!important;color:var(--muted);font-size:14px}
/* Arsenal: one large specimen beside the two weapon choice slips and forge ledger. */
.arsenal-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:0;border:1px solid #ae976577;min-height:480px}.weapon-stage{position:relative;isolation:isolate;overflow:hidden;min-height:480px;display:grid;place-items:center;padding:24px 32px 64px;background:linear-gradient(180deg,#eee9cc1c,#d9e6d245 45%,#d0decda8),url('assets/runtime/bamboo.webp') center/cover;border-right:1px solid #ae976577}.weapon-stage::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,#f0edd35c,transparent 40%),linear-gradient(0deg,#254b4266,transparent 35%)}.stage-inscription{position:absolute;top:32px;left:24px;writing-mode:vertical-rl;letter-spacing:5px;font:14px/1.8 var(--font-display);color:#304c41;z-index:2}.stage-index{position:absolute;right:24px;top:24px;color:#4b5f44;font:12px var(--font-display);writing-mode:vertical-rl;letter-spacing:3px}.weapon-hero{width:100%;height:384px;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(4px 16px 10px #203e4e2b)}.weapon-stage.heavy{background-image:linear-gradient(180deg,#ece5d036,#dee1c837 45%,#d8d5b98c),url('assets/runtime/cloudsea.webp')}.weapon-pedestal{position:absolute;left:19%;right:19%;bottom:64px;height:32px;border:1px solid #c0b889;border-radius:50%;background:linear-gradient(#40645366,#243d357a);box-shadow:0 8px 0 #304d4666,0 12px 0 #b1ad7e77;transform:perspective(160px) rotateX(12deg)}.weapon-pedestal::after{content:'';position:absolute;inset:8px;border:1px solid #bdb98980;border-radius:50%}.weapon-stage figcaption{position:absolute;left:24px;right:24px;bottom:16px;display:flex;justify-content:center;align-items:center;gap:16px;color:#f1e9d0;text-shadow:0 1px 3px #213e39}.weapon-stage figcaption>span{font:21px var(--font-display);letter-spacing:3px}.weapon-stage figcaption small{font:12px var(--font-display);letter-spacing:1px}
.weapon-manuscript{padding:24px 32px;background:linear-gradient(120deg,#f9f3e388,#e8dec72e);display:flex;flex-direction:column;min-width:0}.weapon-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.weapon-switch button{position:relative;padding:8px;border:1px solid #b099665f;background:#f4eddd;color:var(--ink);font:18px var(--font-display);letter-spacing:1px;box-shadow:inset 0 0 0 3px #b0996618}.weapon-switch small{display:block;margin-top:4px;font:12px var(--font-ui);color:var(--muted);letter-spacing:1px}.weapon-switch .is-active{color:#f4edcf;border-color:#a68c4b;background:linear-gradient(135deg,#285a4e,#154137);box-shadow:inset 0 0 0 3px #ad985755}.weapon-switch .is-active small{color:#e7ddbf}.weapon-copy{min-width:0}.weapon-copy>.panel-section-line{font-size:12px}#hub-content .weapon-copy h3{font-size:30px;line-height:1.5;letter-spacing:2px;margin:8px 0}.weapon-copy h3 small{font:20px/1.2 var(--font-display);color:#70562d;white-space:nowrap}#hub-content .weapon-trait{color:#45664d;font-size:12px;line-height:1.75;margin:8px 0}#hub-content .weapon-description{color:var(--muted);font-size:12px;line-height:1.8;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.weapon-forge{margin-top:8px;padding-top:8px}.forge-comparison{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.forge-comparison>div{display:grid;gap:8px;text-align:center;padding:8px;background:#ad945c0c;border-top:1px solid #ac905b42;border-bottom:1px solid #ac905b42}.forge-comparison span{font-size:12px;color:var(--ink)}.forge-comparison small{font-size:12px}.forge-comparison strong{font:33px/1.2 var(--font-display);color:var(--ink)}.forge-comparison .next strong{color:var(--jade)}.forge-comparison>i{font:32px var(--font-display);text-align:center;color:#70562d}.forge-ranks{display:flex;gap:8px;margin:16px 0}.forge-ranks i{height:3px;flex:1;background:#ad945c30}.forge-ranks .is-lit{background:#718c66}#hub-content .forge-cost{text-align:center;font-size:12px;color:var(--muted);margin-bottom:16px}.forge-cost strong{font:23px var(--font-display);color:var(--ink);margin:0 8px}.weapon-forge .panel-actions .primary{flex:1.6}.weapon-forge .panel-note{text-align:center}
/* Mount: full figure and open ability notation under the same scroll frame. */
.mount-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}.mount-showcase{padding:24px;position:relative;overflow:hidden;background:linear-gradient(180deg,#ebeddb46,#eeecdca8),url('assets/runtime/cloudsea.webp') center/cover;border:1px solid #ae976570;box-shadow:inset 0 0 0 5px #f6eedb4d;color:#28473b}.mount-showcase>.panel-section-line{color:#415e4b;position:relative;z-index:1}.mount-showcase .panel-state{color:#365540;border-color:#62795866;background:#e7e6c6ba}.mount-showcase img{width:100%;height:336px;object-fit:contain;position:relative;filter:drop-shadow(0 16px 12px #45675c29)}.mount-showcase figcaption{text-align:center;padding:8px 0 16px}#hub-content .mount-showcase h3{font-size:35px;letter-spacing:8px;line-height:1.4;color:#23473b}#hub-content .mount-showcase figcaption p{margin-top:8px;letter-spacing:3px;font-size:12px;color:#4b655a}.mount-detail{padding-top:8px}#hub-content .mount-detail h3{font-size:32px;line-height:1.4;margin:8px 0 16px}#hub-content .mount-detail>p{font-size:14px;color:var(--muted);line-height:1.85}.mount-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.mount-stats>div+div{padding-left:16px;border-left:1px solid var(--line)}.mount-stats dt{font-size:12px;color:var(--muted);margin-bottom:8px}.mount-stats dd{font:29px/1.2 var(--font-display);color:var(--jade)}.mount-stats dd small{font:12px/1 var(--font-ui)}.mount-covenant{padding:16px 0;border-bottom:1px solid var(--line)}.mount-covenant .panel-actions{margin-top:16px}.mount-covenant strong{color:var(--ink);font-size:16px}.mount-rules{margin:24px 0 16px;padding-left:16px;font-size:12px;line-height:1.8;color:var(--muted)}.mount-rules li{padding-left:8px;margin:8px 0}#hub-content .mount-input{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--jade)}.mount-input>span{color:var(--muted)}#hub-content kbd{display:inline-block;border:1px solid var(--line);border-radius:2px;padding:2px 6px;font:12px/1.5 var(--font-ui);color:var(--ink);background:#ac905b0a}
/* Tasks: the ledger itself is the surface; no repeated boxes. */
.quest-ledger{padding:0 24px 16px;border-left:1px solid #b9936350;background:repeating-linear-gradient(0deg,#a7894504 0 1px,transparent 1px 32px);color:var(--ink)}.quest-overview{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}.quest-overview strong{font:36px/1.3 var(--font-display);color:var(--jade);margin:0 8px}.quest-overview>span{color:#70562d;font-size:12px}.quest-group{padding-top:24px}#hub-content .quest-group h3{font-size:19px;display:flex;align-items:center;gap:8px;padding-bottom:8px}.quest-group h3::before{content:'';width:4px;height:16px;background:#708971}.quest-group h3>span,.quest-completed summary>span{font:12px/1.6 var(--font-ui);color:var(--muted)}.quest-row{display:grid;grid-template-columns:32px 1fr 88px;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid #a28d5d2b}.quest-number{font:22px/1 var(--font-display);color:#70562d}.quest-copy{min-width:0;display:grid;grid-template-columns:minmax(160px,.7fr) minmax(200px,1fr);column-gap:16px;align-items:center}.quest-copy h4{grid-row:span 2}#hub-content .quest-copy h4{font-size:21px;line-height:1.5;color:var(--ink)}#hub-content .quest-copy p{font-size:13px;color:var(--muted);margin:4px 0}.quest-reward{font-size:12px;color:#70562d}.quest-action{text-align:right;font-size:12px;color:var(--muted)}.quest-action .primary{min-width:80px;padding:12px 16px;font-size:14px}.quest-ready .quest-number{color:#70562d}.quest-ready .quest-action{color:var(--jade)}#hub-content .quest-empty{padding:8px 0 16px;font-size:13px;color:var(--muted)}.quest-completed{margin-top:24px;border-top:1px solid var(--line)}.quest-completed summary{color:var(--ink);display:flex;align-items:center;gap:8px;cursor:pointer;min-height:56px;font-family:var(--font-display);font-size:19px;list-style:none}.quest-completed summary::after{content:'＋';font-size:16px;color:var(--muted)}.quest-completed[open] summary::after{content:'−'}.quest-completed summary small{margin-left:auto;font:12px/1.6 var(--font-ui);color:var(--muted)}.quest-completed .quest-row{opacity:.85}
/* Settings: quiet manuscript columns and large real form controls. */
.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px}.settings-section{border-top:1px solid var(--line);padding-top:24px}#hub-content .settings-section h3,#hub-content .settings-guide h3{font-size:25px;letter-spacing:2px;margin-bottom:8px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 0;border-bottom:1px solid var(--line);font-size:14px}.setting-row>span{min-width:0}.setting-row small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.setting-volume{display:grid;grid-template-columns:1fr auto;gap:8px 16px}.setting-volume output{font:25px/1.2 var(--font-display);color:var(--jade)}.setting-volume input{grid-column:1/-1;display:block;width:100%;height:44px;margin:0;accent-color:var(--jade)}.setting-row select{max-width:46%;min-height:44px;padding:8px;color:var(--ink);background:#eee5d2;border:1px solid var(--line);font:13px/1.5 var(--font-ui);border-radius:0}.setting-check{cursor:pointer}.setting-check input{width:24px;height:24px;flex-shrink:0;accent-color:var(--jade);margin:10px}#hub-content .settings-save>p{color:var(--muted);font-size:14px;line-height:1.85;margin:16px 0}.settings-save>.panel-actions{margin-top:24px}#hub-content #storage-message{font-size:12px;color:var(--jade);padding-left:16px;border-left:1px solid #60856e;margin:16px 0 8px}.settings-details{border-bottom:1px solid var(--line)}.settings-details summary{min-height:48px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;cursor:pointer;list-style:none}.settings-details summary::after{content:'＋';margin-left:auto}.settings-details[open] summary::after{content:'−'}#hub-content .settings-details p{font-size:12px;line-height:1.85;color:var(--muted);padding-bottom:16px}.settings-guide{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.settings-guide>.panel-section-line{margin-bottom:16px}.settings-guide>.panel-section-line>span{font-size:12px}.touch-guide{display:grid;grid-template-columns:1fr 1fr;gap:16px 32px}.touch-guide>div{padding:0 0 16px;border-bottom:1px solid var(--line)}.touch-guide dt{font-size:14px;color:var(--ink);margin-bottom:8px}.touch-guide dd{font-size:13px;color:var(--muted);line-height:1.8}.keyboard-guide{margin-top:16px}.keyboard-guide dl{padding-bottom:16px;display:grid;grid-template-columns:1fr 1fr;gap:16px 32px}.keyboard-guide dl>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.keyboard-guide dt,.keyboard-guide dd{font-size:12px;color:var(--muted)}
@media(max-width:1050px){#hub-panel{padding-left:24px;padding-right:24px}#hub-content{padding-left:24px;padding-right:24px}.cave-layout,.mount-layout{gap:24px}.cave-sanctum{padding:24px}.weapon-manuscript{padding:24px}.weapon-stage{padding-left:24px;padding-right:24px}.weapon-stage figcaption{flex-direction:column;gap:4px}.settings-layout{gap:32px}.mount-showcase img{height:312px}}
@media(max-width:700px){
 #hub-panel{padding:calc(72px + var(--safe-top,0px)) 12px calc(24px + var(--safe-bottom,0px))}#hub-content{padding:8px 12px 16px;font-size:14px;outline-offset:3px}#hub-content::before,#hub-content::after{width:24px;height:24px;border-width:2px;opacity:.65}.panel-top{margin-bottom:0;gap:8px}.panel-top .back{font-size:12px}.panel-wallet{gap:16px;font-size:12px}.panel-wallet b{font-size:17px;margin-left:4px}.panel-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px 0;margin-bottom:8px}.panel-tabs button{min-width:0;padding:8px 4px;gap:4px;font-size:12px}.panel-tabs svg{width:16px!important;height:16px!important}.panel-tabs .panel-tab-mounts{display:none}.panel-tabs button.mobile-active{color:#f7eed5;border-color:#957d48;background:linear-gradient(135deg,#2e6254,#17483e)}.panel-heading{gap:8px;margin-bottom:8px;align-items:center}#hub-content .panel-heading h2{font-size:30px;margin:4px 0;letter-spacing:3px;gap:8px}#hub-content .panel-heading p{font-size:12px;line-height:1.65}.panel-kicker{font-size:12px;letter-spacing:1px}.manuscript-seal{width:18px;height:23px;font-size:13px}.kit-tabs{display:flex;align-self:center;margin-top:0;flex-direction:row;border-bottom:0}.kit-tabs button{min-width:44px;padding:8px;font-size:12px;border:1px solid var(--line);border-bottom-width:1px}.kit-tabs button.is-active{background:#ad945c12;border-color:#849177}.panel-actions button{padding:12px 8px;font-size:14px}
 .cave-layout,.mount-layout,.settings-layout{grid-template-columns:1fr;gap:24px}.cave-sanctum{padding:16px 16px 24px}.cave-array{height:200px;width:200px;margin:8px auto}.cave-array strong{font-size:66px}.cave-array span{font-size:12px}.cave-yield>.primary{margin-top:16px}#hub-content #idle-calc{font-size:12px;margin-top:8px}.cave-realm{padding:8px 0 0}#hub-content .cave-realm h3{font-size:40px;margin:8px 0 24px}.realm-bonus>div{gap:8px}.realm-requirement{gap:8px}.realm-requirement b{font-size:13px}
 #hub-content[data-panel-page=equipment] .panel-heading p{display:none}.arsenal-layout{grid-template-columns:1fr;min-height:0}.weapon-stage{min-height:184px;height:184px;border-right:0;border-bottom:1px solid #ae976577;padding:8px 32px 24px;background-position:center 42%}.weapon-hero{height:168px;width:100%;filter:drop-shadow(4px 8px 6px #203e4e2b)}.stage-inscription{font-size:12px;top:16px;left:16px;letter-spacing:2px}.stage-index{right:16px;top:16px;font-size:12px;letter-spacing:2px}.weapon-pedestal{height:16px;left:27%;right:27%;bottom:16px;box-shadow:0 4px 0 #304d4666,0 8px 0 #b1ad7e77}.weapon-pedestal::after{inset:4px}.weapon-stage figcaption{left:auto;right:16px;bottom:12px;writing-mode:vertical-rl}.weapon-stage figcaption>span{font-size:15px;letter-spacing:2px}.weapon-stage figcaption small{display:none}.weapon-manuscript{padding:16px}.weapon-switch{gap:8px;margin-bottom:16px}.weapon-switch button{font-size:16px;padding:8px 4px}.weapon-switch small{font-size:12px;margin-top:4px}.weapon-copy>.panel-section-line{display:none}#hub-content .weapon-copy h3{font-size:25px;margin:0;line-height:1.3}.weapon-copy h3 small{font-size:18px}#hub-content .weapon-trait{font-size:12px;margin:4px 0}#hub-content .weapon-description{font-size:12px;line-height:1.65;margin-top:12px;padding-top:12px}.weapon-forge{padding-top:8px;margin-top:0}.forge-comparison{grid-template-columns:1fr 16px 1fr;gap:8px}.forge-comparison>div{padding:8px;gap:4px}.forge-comparison strong{font-size:27px}.forge-comparison span{font-size:12px}.forge-comparison small{font-size:12px}.forge-comparison>i{font-size:25px}.forge-ranks{margin:8px 0}#hub-content .forge-cost{font-size:12px;margin-bottom:8px}.forge-cost strong{font-size:19px}.weapon-forge .panel-note{font-size:12px!important;margin-top:8px!important}
 .mount-showcase{padding:16px}.mount-showcase img{height:232px;object-fit:contain}#hub-content .mount-showcase h3{font-size:29px;letter-spacing:5px;line-height:1.2}#hub-content .mount-showcase figcaption p{font-size:12px}.mount-showcase figcaption{padding:0}.mount-detail{padding-top:0}#hub-content .mount-detail h3{font-size:26px;margin:4px 0 8px}#hub-content .mount-detail>p{font-size:13px}.mount-stats{margin:16px 0!important}.mount-covenant{padding-top:0}.mount-rules{margin-top:16px;font-size:12px}.mount-input>span{display:none}
 .quest-ledger{padding:0 0 8px;border-left:0}.quest-overview{padding:0 0 16px;gap:8px;font-size:12px}.quest-overview strong{font-size:27px}.quest-overview>span{font-size:12px}.quest-group{padding-top:16px}.quest-row{grid-template-columns:20px minmax(0,1fr) 64px;gap:8px;padding:12px 0}.quest-copy{display:block}.quest-number{font-size:18px;align-self:start;padding-top:5px}#hub-content .quest-copy h4{font-size:18px}#hub-content .quest-copy p{font-size:12px;line-height:1.65}.quest-reward{font-size:12px;display:block;line-height:1.65}.quest-action{font-size:12px}.quest-action .primary{min-width:60px;padding:12px 8px;font-size:12px}#hub-content .quest-empty{font-size:12px}.quest-completed{margin-top:16px}.quest-completed summary{font-size:17px}
 .settings-section{padding-top:16px}#hub-content .settings-section h3,#hub-content .settings-guide h3{font-size:22px}.setting-row{padding:16px 0;font-size:13px}.setting-row small{font-size:12px}.setting-row select{font-size:12px}#hub-content .settings-save>p{font-size:13px}.settings-save>.panel-actions{margin-top:16px}.settings-guide{margin-top:24px}.touch-guide{grid-template-columns:1fr;gap:16px}.touch-guide dt{font-size:13px;margin-bottom:4px}.touch-guide dd{font-size:12px}.keyboard-guide dl{grid-template-columns:1fr;gap:16px}.panel-footnote{font-size:12px!important}
}
@media(max-width:375px){#hub-panel{padding-left:8px;padding-right:8px}#hub-content{padding-left:12px;padding-right:12px}.panel-wallet{gap:8px}.panel-tabs button{font-size:12px;gap:4px}.panel-tabs svg{width:14px!important;height:14px!important}.weapon-stage{height:160px;min-height:160px}.weapon-hero{height:144px}.weapon-manuscript{padding:12px}.weapon-switch{margin-bottom:12px}.cave-array{width:184px;height:184px}.mount-showcase img{height:208px}}
@media(max-height:550px) and (orientation:landscape){#hub-panel{padding-top:calc(72px + var(--safe-top,0px))}.panel-tabs{margin-bottom:16px;padding:4px 0}.panel-heading{margin-bottom:16px}#hub-content .panel-heading h2{font-size:29px}.weapon-stage{min-height:432px}.weapon-hero{height:344px}}

.bridge-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0 0;margin-top:18px;border-top:1px solid #c3a96a66}
.bridge-entry strong{display:block;font:22px var(--font-display,serif);color:var(--jade);margin:5px 0}
.bridge-entry small{color:var(--muted);font-size:12px;letter-spacing:1px}
.bridge-entry p{font-size:12px;line-height:1.7;margin:0;max-width:40em}
.bridge-entry button{flex-shrink:0;min-height:44px}
@media(max-width:600px){.bridge-entry{align-items:stretch;flex-direction:column;gap:10px}.bridge-entry button{width:100%}}

/* Equipment is one destination, with weapons and mounts inside it. */
.panel-tabs{gap:8px}.panel-tabs .panel-tab-mounts{display:none}.kit-tabs{display:flex}.kit-tabs button{font-size:14px;min-width:64px;min-height:44px}.panel-tabs button{font-size:14px}
.panel-heading p{font-size:14px!important}.panel-top .back{font-size:14px}.panel-wallet{font-size:14px}.panel-state,.panel-footnote,.panel-note,.weapon-switch small,.forge-comparison small{font-size:12px}
#hub-content .weapon-trait,#hub-content .weapon-description,.forge-comparison span,#hub-content .forge-cost{font-size:14px}.weapon-details{margin-top:16px;padding-top:0}.weapon-details summary{display:flex;align-items:center;min-height:44px;font-size:14px;color:var(--jade)}#hub-content .weapon-details p{font-size:14px;line-height:1.7;margin:8px 0;padding:0;border:0}
.weapon-forge .panel-actions{gap:12px}.weapon-forge .panel-actions button{min-height:48px;font-size:16px}.weapon-forge .panel-note{font-size:12px!important}.forge-cost strong{font-variant-numeric:tabular-nums}
.settings-details summary,.settings-details p,.touch-guide dd,.keyboard-guide dd{font-size:14px!important}.setting-row select{font-size:16px}.setting-row small{font-size:12px}
@media(min-width:701px) and (max-height:800px){
 #hub-panel{padding-top:80px;padding-bottom:20px}#hub-content{padding:8px 24px 16px}.panel-tabs{margin-bottom:12px}.panel-heading{margin-bottom:12px}#hub-content .panel-heading h2{font-size:30px}.panel-heading p{margin-top:4px!important}
 .arsenal-layout{min-height:360px}.weapon-stage{min-height:360px;padding-bottom:52px}.weapon-hero{height:280px}.weapon-pedestal{bottom:52px}.weapon-manuscript{padding:16px 24px}.weapon-switch{margin-bottom:10px}.weapon-copy>.panel-section-line{display:none}#hub-content .weapon-copy h3{font-size:27px;margin:2px 0}#hub-content .weapon-trait{margin:4px 0}.weapon-forge{padding-top:4px;margin-top:4px}.forge-comparison>div{gap:4px;padding:6px}.forge-comparison strong{font-size:28px}.forge-ranks{margin:8px 0}#hub-content .forge-cost{margin-bottom:8px}.weapon-details{margin-top:8px}
}
@media(max-width:700px){
 .panel-wallet{font-size:12px;gap:12px}.panel-top .back{font-size:14px}.panel-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.panel-tabs button{font-size:14px;gap:4px}.panel-tabs svg{width:16px!important;height:16px!important}.kit-tabs button{font-size:14px;min-width:48px;padding:8px}.panel-heading{margin-bottom:12px}#hub-content .panel-heading h2{font-size:28px}
 .weapon-stage{height:112px;min-height:112px;padding:4px 32px 12px}.weapon-hero{height:108px}.weapon-pedestal{bottom:12px;height:12px}.stage-inscription{font-size:12px;top:12px;left:12px}.stage-index{display:none}.weapon-stage figcaption{bottom:8px;right:12px}.weapon-stage figcaption>span{font-size:14px}
 .weapon-manuscript{padding:12px 16px}.weapon-switch{margin-bottom:12px}.weapon-switch button{font-size:16px;padding:8px 4px}.weapon-switch small{font-size:12px;letter-spacing:0}.weapon-copy h3 small{font-size:18px}#hub-content .weapon-trait{font-size:14px;margin:4px 0}.forge-comparison>div{gap:4px}.forge-comparison span{font-size:14px}.forge-comparison small{font-size:12px}.forge-comparison strong{font-size:26px}.forge-ranks{margin:8px 0}#hub-content .forge-cost{font-size:14px;margin-bottom:8px}.weapon-forge .panel-actions button{font-size:16px;min-height:48px}.weapon-details{margin-top:8px}
 .quest-copy h4{font-size:20px!important}#hub-content .quest-copy p{font-size:14px}.quest-reward,.quest-action{font-size:12px}.quest-action .primary{font-size:14px}.quest-overview>span{font-size:12px}.setting-row{font-size:14px}.setting-row small{font-size:12px}.setting-row select{font-size:16px}.touch-guide dt{font-size:16px}#hub-content .mount-detail>p{font-size:14px}.mount-rules{font-size:14px}#hub-content .mount-input{font-size:14px}
}
/* Permanent riding and the short active glide are distinct, readable abilities. */
.mount-skill,.mount-passives{padding-top:20px}
#hub-content .mount-skill h4,#hub-content .mount-passives h4{font:500 19px/1.5 var(--font-display);color:var(--ink)}
#hub-content .mount-skill>p,.mount-passives dd{font:14px/1.85 var(--font-ui);color:var(--muted);margin-top:8px}
.mount-passives dl{margin-top:8px}
.mount-passives dl>div{padding:12px 0;border-bottom:1px solid var(--line)}
.mount-passives dt{font:500 16px/1.5 var(--font-ui);color:var(--jade)}
.mount-passives dd{margin-left:0}

/* combat.css */
/* Illustrated scroll combat. World viewport remains 154 / 178 on portrait phones. */
#hud{position:absolute;inset:0;z-index:3;pointer-events:none;user-select:none;-webkit-user-select:none;color:#efe5cb;font-family:var(--font-ui)}
#hud button{pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent}
#hud svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex:none}
.playing #masthead{display:none}
.playing #app:after{background:linear-gradient(180deg,#142c2859,transparent 20%,transparent 78%,#102d2859)}
.hud-top{position:absolute;top:24px;left:28px;right:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.vitals{position:relative;width:312px;height:92px;padding:5px 4px 0 98px;background:linear-gradient(90deg,#163a305c,transparent 90%);text-shadow:0 1px 3px #102a24}
.hud-portrait{position:absolute;top:0;left:0;width:86px;height:86px;border:2px solid #d9c496;border-radius:50%;background-color:#17362f;background-size:350%;background-repeat:no-repeat;box-shadow:0 0 0 3px #3d4b36,0 0 0 5px #a88b56,0 4px 9px #10251d66}
.hud-portrait:after{content:'';position:absolute;inset:4px;border:1px solid #e5d2aa80;border-radius:50%}
.vitals-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;height:26px}
#hud-name{font-family:var(--font-display);font-size:22px;letter-spacing:3px;line-height:1}
#equipped-title{font-size:12px;color:#e5d9bb;white-space:nowrap}
#equipped-title:empty{display:none}
.vital-label{position:absolute;top:35px;left:99px;right:9px;z-index:1;display:flex;justify-content:center;align-items:center;height:15px;line-height:15px}
.vital-label>span{display:none}
#hp-text{color:#fff4de;font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #52190f}
#hud .bar,.result-progress .bar{overflow:hidden;background:#16332fc9}
#hud .bar i,.result-progress .bar i{display:block;height:100%;width:0;transition:width .12s linear}
#hud .health{position:absolute;top:34px;left:95px;right:0;height:18px;margin:0;border:1px solid #dfbd83;transform:skew(-20deg);box-shadow:0 0 0 2px #293b30,inset 0 1px 1px #10291e}
.health i{background:linear-gradient(180deg,#c67d60,#a34133 52%,#813629)}
.energy-line{position:absolute;top:59px;left:94px;right:10px;display:flex;align-items:center;height:12px}
.energy-line>span{display:none}
.energy-line .energy{width:100%;height:12px;transform:skew(-20deg);border:1px solid #bdad76;box-shadow:0 0 0 2px #2b4037}
.energy i{background:linear-gradient(180deg,#65b1b1,#297484)}
.energy-line b{position:absolute;left:0;right:0;text-align:center;font-size:12px;font-weight:400;font-variant-numeric:tabular-nums;color:#eff5dc;line-height:12px}
.low-health .health i{background:linear-gradient(180deg,#d75b4b,#861e18)}.low-health .hud-portrait{border-color:#c75f43}
.journey{position:absolute;left:50%;transform:translateX(-50%);width:300px;text-align:center;padding:0 8px;color:#f4ebd5;text-shadow:0 1px 3px #213c31}
.journey>span{font:23px var(--font-display);letter-spacing:5px}
#hud .journey .progress{position:relative;overflow:visible;margin:12px 0 8px;height:5px;border:1px solid #cfb77e;background:#253d32;box-shadow:0 1px 3px #0d1f1a}
.journey .progress i{background:#d0b574;height:3px}
.journey small{font-size:12px;letter-spacing:1px;color:#ede5ce}
.journey-milestones{position:absolute;inset:0;pointer-events:none}
.journey-milestones span{position:absolute;top:50%;display:block;width:9px;height:9px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid #e2c994;background:#344839;box-shadow:0 0 0 2px #556247}
.journey-milestones span.passed{background:#d4b46e;box-shadow:0 0 0 2px #284131}
.hud-right{display:flex;align-items:center;gap:16px;padding:0;color:#f4e7c6;font-size:13px;text-shadow:0 1px 3px #102a24}
#coins{font-variant-numeric:tabular-nums;white-space:pre-line;overflow-wrap:anywhere;min-width:0;text-align:right;line-height:1.45}
#pause{width:48px;height:48px;min-width:44px;min-height:44px;padding:12px;border:2px solid #c6af79;border-radius:50%;color:#ead8a8;background:radial-gradient(circle at 40% 30%,#416457,#153d34 72%);box-shadow:inset 0 0 0 3px #193f36,0 0 0 1px #536d52}
#pause svg{display:block;width:20px;height:20px}
.mission-rail{position:absolute;left:132px;top:104px;display:grid;gap:5px;max-width:310px;font-size:12px;line-height:1.5;text-shadow:0 1px 3px #152d26}
.mission-rail>div{padding:0 0 0 10px;border-left:1px solid #c4ac70;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#checkpoint-hud{color:#c9d6bf;border-color:#819978;font-size:12px}
#combo-hud{color:#dfcda4;font-size:12px;border-color:#b59d66}
#boss-hud{position:absolute;top:104px;left:50%;transform:translateX(-50%);width:min(390px,36%);padding:0;text-align:center;color:#f2e3c4;text-shadow:0 1px 3px #182f25}
#boss-name{font:18px var(--font-display);letter-spacing:3px}
#boss-hud .bar{height:8px;margin:8px 0 5px;border:1px solid #c5a473;transform:skew(-15deg);background:#463229}
#boss-bar{background:linear-gradient(90deg,#993f30,#c38257)}
#boss-hud small{font-size:12px;color:#e1d7bc}
.boss-intro-active #boss-hud,.boss-intro-active #tutorial,.boss-intro-active #combat-feedback{visibility:hidden}
.boss-intro-active #touch-controls,.boss-intro-active .hud-bottom,.boss-intro-active #boon-prompt{opacity:.18;pointer-events:none}
#boss-entry-cue{position:absolute;z-index:8;box-sizing:border-box;padding:10px 18px;background:linear-gradient(105deg,#183b34f5,#102e2cf0);border:1px solid #ceb884aa;border-left:3px solid #d0bb8c;color:#f2e6c9;box-shadow:0 4px 16px #102b2929;pointer-events:none;text-shadow:none;display:flex;flex-direction:column;gap:3px}
#boss-entry-cue[hidden]{display:none}#boss-entry-cue>small{font-size:11px;line-height:14px;color:#dec695;letter-spacing:1px}#boss-entry-cue>strong{font-family:var(--font-display);font-size:24px;line-height:28px;letter-spacing:3px}#boss-entry-cue>span{font-size:11px;line-height:16px;color:#e4dfcb;white-space:nowrap}
.boss-entry-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:#c8bea333;overflow:hidden}.boss-entry-progress>i{height:100%;display:block;width:0;background:#c6d9bd}
#boss-entry-cue[data-phase=ready]{border-left-color:#b9dfbb;background:linear-gradient(105deg,#1b463bf5,#14382ef0)}#boss-entry-cue[data-phase=approach]>strong{font-size:20px;line-height:25px}
.boss-ready-active #boss-hud,.boss-ready-active #tutorial,.boss-ready-active #combat-feedback{visibility:hidden}
.boss-ready-active #combat-dock,.boss-ready-active #boon-prompt{opacity:.3;pointer-events:none}
@media(orientation:landscape) and (max-height:500px){#boss-entry-cue{padding:5px 12px;gap:0}#boss-entry-cue>strong{font-size:19px;line-height:21px}#boss-entry-cue>small{font-size:10px;line-height:12px}#boss-entry-cue>span{font-size:10px;line-height:12px}.boss-entry-progress{height:2px}}
#tutorial{position:absolute;top:138px;left:50%;transform:translateX(-50%);max-width:min(490px,48%);padding:8px 24px;background:linear-gradient(90deg,transparent,#f3ebdbea 8%,#f3ebdbea 92%,transparent);border-top:1px solid #a28d5980;border-bottom:1px solid #a28d5980;font-size:12px;line-height:1.6;color:#31463b;text-align:center}
#tutorial:empty,#combat-feedback:empty,#boon-build:empty,#boon-notice:empty{display:none}
.boss-active #tutorial{top:184px}
#combat-feedback{position:absolute;top:210px;left:50%;transform:translateX(-50%);max-width:45%;padding:4px 13px;color:#f0e5bb;background:linear-gradient(90deg,transparent,#204434bb 15%,#204434bb 85%,transparent);font-size:13px;line-height:1.5;text-align:center;white-space:nowrap;text-shadow:0 1px 2px #203d2f}
#combat-feedback[data-tone="damage"]{color:#fff1db;background:linear-gradient(90deg,transparent,#773729d9 15%,#773729d9 85%,transparent)}
#combat-feedback[data-tone="blocked"]{color:#f4dda9}
#combat-feedback[data-tone="shield"]{color:#d8f0ef;background:linear-gradient(90deg,transparent,#214d53dc 15%,#214d53dc 85%,transparent)}
#loadout-hud{position:absolute;left:28px;bottom:82px;font-size:12px;color:#d8dfcc;letter-spacing:.5px;text-shadow:0 1px 3px #18372c}
#boon-build{position:absolute;left:28px;bottom:106px;padding:4px 0;max-width:55%;font-size:12px;line-height:1.5;color:#e6d6b3;text-shadow:0 1px 3px #18372c}
#boon-prompt{position:absolute;right:28px;top:94px;text-align:right;max-width:220px}
#boon-open{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:9px 16px;color:#e7d6a9;background:linear-gradient(135deg,#426253,#1a4438);border:1px solid #cfb57f;border-radius:12px 3px;box-shadow:inset 0 0 0 3px #d6c49124}
#boon-open>b{font:19px var(--font-display);border-right:1px solid #cdb77880;padding-right:10px}
#boon-open>span{font:18px var(--font-display);letter-spacing:3px}
#boon-open small{display:block;font:12px var(--font-ui);letter-spacing:1px;margin-top:4px}
#boon-open:disabled{opacity:.6}
#boon-notice{margin-top:6px;padding:5px 8px;color:#374c3a;background:#f1e9d8eb;font-size:12px;line-height:1.5;border-left:2px solid #a99258}
.hud-bottom{position:absolute;bottom:20px;right:28px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:calc(100% - 56px);color:#fffffff0;text-shadow:0 1px 2px #10281ff0,1px 0 1px #10281fb3,-1px 0 1px #10281fb3}
#hud .keyboard-guide{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 16px;margin:0;font-size:12px;line-height:1.6;color:inherit}
#hud .keyboard-guide>span{white-space:nowrap}
#hud .keyboard-guide kbd{font:inherit;color:inherit}
#skill-status{font-size:12px;line-height:1.6;color:inherit}
#combat-dock{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 16px}
#combat-dock button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:44px;min-width:56px;padding:4px 0;color:inherit;border:0;background:none;box-shadow:none;font:12px/1.4 var(--font-ui);text-align:left;text-shadow:inherit}
#combat-dock kbd{font:inherit}
#combat-dock .ability-name{font:inherit}
#combat-dock small,#touch-controls small{font-size:12px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
#combat-dock small{color:inherit}
#combat-dock .casting .ability-name,#combat-dock .pressed .ability-name,#combat-dock button:hover .ability-name{text-decoration:underline;text-underline-offset:3px}
#combat-dock button:focus-visible{outline:1px solid #fff;outline-offset:4px;border-radius:2px}
@media(min-width:901px) and (pointer:fine){
 #loadout-hud,#boon-build{width:calc(100% - 460px);max-width:55%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:auto}
}
#touch-controls{display:none;position:absolute;bottom:14px;left:3%;right:3%;align-items:flex-end;gap:8px;touch-action:none}
#touch-controls button{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;width:58px;height:58px;padding:5px 3px;border:2px solid #bea66e;border-radius:50%;color:#f3e5bf;background:radial-gradient(circle at 32% 20%,#416b5c,#184b3d 75%);box-shadow:inset 0 0 0 2px #294f40,inset 0 0 0 3px #c9b7837a,0 3px 7px #203d252e;font:12px var(--font-ui)}
#touch-controls button:before{content:'';position:absolute;z-index:-1;inset:0;border-radius:50%;background:conic-gradient(#061c17b3 0 var(--cooldown,0%),transparent var(--cooldown,0%) 100%);pointer-events:none}
#touch-controls button>svg{width:21px;height:21px}
#touch-controls .touch-attack,#touch-controls .touch-jump{width:74px;height:74px;border-color:#d1ba7e}
#touch-controls [data-action="right"]{margin-right:auto}
#touch-controls [data-action="left"],#touch-controls [data-action="right"]{width:44px;height:44px;border-radius:12px 3px}
#touch-controls [data-action="left"]>span,#touch-controls [data-action="right"]>span{font-size:12px}
#touch-controls .energy-short,#touch-controls .unavailable{color:#e5decb;background:radial-gradient(circle at 30% 30%,#6f7461,#465245);border-color:#b4aa8b;box-shadow:inset 0 0 0 2px #586353}
#touch-controls .unavailable:before,#touch-controls .energy-short:before{background:none}
#touch-controls .casting,#touch-controls .pressed,#touch-controls button:active{border-color:#e9d699;background:radial-gradient(circle at 32% 20%,#446f5f,#2e6952 75%)}

/* Results use a paper scroll, cinnabar seal and jade plaque actions. Rewards stay recorded by meta. */
.result-modal{--ink:#283d32;--jade:#214f40;--muted:#4e5c47;--line:#aa956457}
.result-modal .modal-card{position:relative;isolation:isolate;width:min(650px,calc(100% - 48px));padding:36px 44px 32px;text-align:left;color:var(--ink);background:repeating-linear-gradient(0deg,#a99c7210 0,#a99c7210 1px,transparent 1px,transparent 4px),linear-gradient(100deg,#e5d9bd,#f5efdf 8%,#f2eddf 91%,#ddcfad);border:1px solid #967a49;border-top:9px solid #586548;border-bottom:9px solid #586548;border-radius:3px;box-shadow:inset 0 0 0 4px #d8c7a0,inset 0 0 0 5px #baa06e,0 26px 80px #10231b66}
.result-modal .modal-card:before{content:'';position:absolute;z-index:-1;inset:11px;pointer-events:none;border:1px solid #b19a6a5c;border-radius:0}
.result-modal #modal-eyebrow{justify-content:flex-start;font-size:12px;letter-spacing:4px;color:#8b7548;margin-bottom:8px}
.result-modal #modal-title{font:32px/1.4 var(--font-display);color:var(--ink);letter-spacing:3px;margin:8px 0 0;padding-bottom:16px;border-bottom:1px solid #b8a27188}
.result-modal #modal-body{font-size:12px;line-height:1.7;margin:24px 0 22px;color:var(--muted)}
.result-summary{display:flex;align-items:center;gap:22px}
.result-seal{display:grid;place-items:center;width:72px;height:77px;flex:none;border:2px solid #a55743;outline:1px solid #b7664d9c;outline-offset:-6px;border-radius:3px;color:#a04b37;background:transparent;font:45px var(--font-display);transform:rotate(-5deg)}
.result-location{font-size:12px;color:var(--muted);letter-spacing:2px}
.result-summary .stars{font-size:26px;line-height:1.5;letter-spacing:8px;color:#9c7938}
.result-verdict{font-size:12px;margin:2px 0 0;color:var(--muted)}
.result-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin:23px 0 20px;font-size:12px;letter-spacing:1px;color:var(--muted)}
.result-progress strong{font:24px Georgia,serif;color:var(--jade)}
.result-progress strong small{font:12px var(--font-ui);margin-left:3px}
.result-progress .bar{grid-column:1/-1;height:4px;background:#66785526}.result-progress .bar i{background:#8b9160}
.result-rewards{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #b9a77888;border-bottom:1px solid #b9a77888}
.result-rewards>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px;padding:16px 20px;background:linear-gradient(90deg,#bba37512,transparent);border:0}
.result-rewards>div+div{border-left:1px solid #b9a77888}
.result-rewards span{font:18px var(--font-display);color:var(--ink);letter-spacing:2px}
.result-rewards strong{font:32px Georgia,serif;color:#6d7650;grid-row:1/3;grid-column:2}
.result-rewards small{font-size:12px;color:var(--muted)}
.result-modal .settlement-note{font-size:12px;line-height:1.6;margin:10px 0 0;color:#777c63;text-align:center}
.result-details{margin-top:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}
.result-details summary{cursor:pointer;padding:12px 0;color:#53644c;min-height:44px;line-height:20px;touch-action:manipulation}
.result-details p{font-size:12px;line-height:1.8;margin:8px 0 13px}
.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:2px 0 13px}
.result-stats span{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.result-stats b{font:21px Georgia,serif;color:var(--ink)}
.result-modal #modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.result-modal #modal-actions>.primary{grid-column:1/-1;min-height:56px;justify-content:center;border:2px solid #b69b61;border-radius:18px 5px 18px 5px;background:linear-gradient(135deg,#38634f,#164537 70%);color:#f1e2b8;box-shadow:inset 0 0 0 3px #244d3d,inset 0 0 0 4px #d6c3917d;font:22px var(--font-display);letter-spacing:4px}
.result-modal #modal-actions>.primary:hover{background:linear-gradient(135deg,#4c765e,#225742 70%)}
.result-modal #modal-actions>.secondary{min-width:0;min-height:44px;font-size:12px;padding:11px 8px;letter-spacing:1px;justify-content:center;border:1px solid #bba87b;background:#f3ecd95c;color:#43583e;border-radius:5px}
.result-modal #modal-actions>.secondary:last-child:nth-child(2){grid-column:1/-1}
.result-checkpoint{padding:10px 0 10px 15px;margin:0 0 16px;border-left:2px solid #9b9b66}
.result-checkpoint small{display:block;font-size:12px;letter-spacing:2px;color:var(--muted)}
.result-checkpoint strong{display:block;font:19px var(--font-display);letter-spacing:2px;color:var(--ink);margin-top:3px}
.result-checkpoint p{font-size:12px;line-height:1.7;margin:5px 0 0;color:var(--muted)}
.result-modal[data-result="lost"] .result-seal{color:#9b684c;border-color:#9d7352;outline-color:#ab845f9c}
.result-modal[data-result="lost"] .failure-cause{font:22px var(--font-display);color:#95634b;margin:4px 0}

@media(pointer:coarse),(max-width:900px){
 #touch-controls{display:flex}.hud-bottom{display:none}
 .hud-top{top:12px;left:18px;right:18px;gap:12px}.vitals{width:265px;padding-left:84px;height:80px}.hud-portrait{width:72px;height:72px}
 #hud .health{left:82px}.vital-label{left:87px}.energy-line{left:81px}
 .journey{width:25%;padding:0 6px}.journey>span{font-size:19px}
 #pause{width:44px;height:44px;padding:10px}
 #boon-open>b{display:none}#boon-prompt{top:81px;right:18px}
 .mission-rail{left:103px;top:97px;font-size:12px;gap:4px}
 #tutorial{top:110px;font-size:12px;max-width:45%;padding:7px 16px}#combat-feedback{top:178px;font-size:12px}
 #loadout-hud{bottom:102px}#boon-build{bottom:127px}
 #boss-hud{top:91px;width:38%}#boss-name{font-size:14px}#boss-hud small{font-size:12px}
}
@media(orientation:portrait) and (max-width:900px){
 /* These paper borders only occupy the renderer's reserved HUD and touch bands. */
 .playing #app:after{background:linear-gradient(180deg,#eee7d6 0,#eee7d6f5 calc(146px + var(--safe-top)),transparent calc(154px + var(--safe-top)),transparent calc(100% - 178px - var(--safe-bottom)),#e8e2cfef calc(100% - 170px - var(--safe-bottom)),#eee7d6 100%)}
 #hud{color:#2e4639}
 #hud .hud-top{top:calc(9px + var(--safe-top));left:12px;right:12px;height:78px;gap:8px}
 #hud .vitals{width:55%;height:75px;padding:5px 0 0 65px;background:none;text-shadow:none}
 .hud-portrait{left:1px;top:4px;width:54px;height:54px;border-width:1px;box-shadow:0 0 0 2px #667455,0 0 0 3px #ac955f,0 2px 6px #344e3729}
 .hud-portrait:after{inset:3px}.vitals-heading{height:20px;justify-content:flex-start}#hud-name{font-size:17px;letter-spacing:2px}#equipped-title{display:none}
 #hud .health{top:32px;left:63px;right:0;height:14px;border-color:#ab925e;box-shadow:0 0 0 1px #6f7959}
 .vital-label{top:33px;left:64px;right:0;height:12px;line-height:12px}#hp-text{font-size:12px;line-height:12px}
 .energy-line{top:51px;left:63px;right:7px;height:10px}.energy-line .energy{height:10px;border-color:#9f9868;box-shadow:0 0 0 1px #65785f}.energy-line b{font-size:12px;line-height:10px}
 #hud .hud-right{width:40%;height:44px;justify-content:flex-end;gap:10px;padding:0;color:#596447;font-size:12px;text-shadow:none}
 #pause{width:44px;height:44px;padding:11px}#pause svg{width:18px;height:18px}
 #hud .journey{position:absolute;left:auto;right:1px;top:49px;width:40%;padding:0;transform:none;text-align:left;color:#2e4639;text-shadow:none}
 .journey>span{font-size:14px;line-height:17px;letter-spacing:2px}
 #hud .journey .progress{height:4px;margin:7px 0 0;width:65%;border-color:#ae965e;box-shadow:none;background:#66806b}
 .journey .progress i{height:2px}.journey small{position:absolute;right:0;bottom:-3px;font-size:12px;line-height:10px;letter-spacing:0;color:#617057}
 .journey-milestones span{width:5px;height:5px;box-shadow:0 0 0 1px #77825e;border-color:#ddc99a}.journey-milestones span.passed{box-shadow:0 0 0 1px #7b8558}
 .mission-rail{top:calc(92px + var(--safe-top));left:14px;right:14px;max-width:none;gap:0;height:54px;font-size:12px;text-shadow:none}
 .mission-rail>div{padding:0 7px;line-height:18px;height:18px;font-size:12px;border-left:1px solid #b09c6a}
 #checkpoint-hud{font-size:12px;color:#698064}#combo-hud{font-size:12px;letter-spacing:.4px;color:#808665}
 .boss-active .mission-rail{display:none}
 #boss-hud{top:calc(94px + var(--safe-top));left:14px;transform:none;width:calc(100% - 28px);height:53px;padding:0;text-align:left;color:#6f503a;text-shadow:none}
 #boss-name{font-size:14px;line-height:16px;letter-spacing:2px}#boss-hud .bar{height:5px;margin:5px 0 4px}#boss-hud small{display:block;font-size:12px;line-height:11px;color:#7e7557}
 #tutorial,.boss-active #tutorial{top:calc(163px + var(--safe-top));max-width:none;width:calc(100% - 30px);font-size:12px;padding:7px 16px;line-height:1.5}
 #combat-feedback{top:calc(212px + var(--safe-top));max-width:calc(100% - 32px);font-size:12px;padding:4px 12px;line-height:1.5;white-space:normal}
 #loadout-hud{left:12px;right:12px;bottom:calc(154px + var(--safe-bottom));height:16px;font-size:12px;line-height:13px;padding:2px 0;color:#798367;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;text-shadow:none}
 #boon-build{display:none}
 #touch-controls{display:block;bottom:calc(7px + var(--safe-bottom));left:12px;right:12px;height:144px;max-width:540px;margin:auto}
 #touch-controls button{position:absolute;margin:0;padding:4px 2px;gap:1px;font-size:12px}
 #touch-controls button>svg{width:19px;height:19px}#touch-controls button>small{font-size:12px;line-height:10px}
 #touch-controls [data-action="left"]{left:0;bottom:0;width:44px;height:44px}
 #touch-controls [data-action="right"]{left:52px;bottom:0;width:44px;height:44px}
 #touch-controls [data-action="left"]>svg,#touch-controls [data-action="right"]>svg{width:17px;height:17px}
 #touch-controls [data-action="slide"]{left:0;bottom:68px;width:54px;height:54px}
 #touch-controls [data-action="dodge"]{left:62px;bottom:68px;width:54px;height:54px}
 #touch-controls .touch-attack{right:84px;bottom:63px;width:68px;height:68px;font-size:13px}
 #touch-controls .touch-jump{right:0;bottom:63px;width:76px;height:76px;font-size:14px;background:radial-gradient(circle at 34% 25%,#53694c,#294f39 75%)}
 #touch-controls .touch-attack>svg,#touch-controls .touch-jump>svg{width:24px;height:24px}
 #touch-controls [data-action="skill"]{right:0;bottom:0;width:56px;height:56px}
 #touch-controls [data-action="dash"]{right:65px;bottom:0;width:56px;height:56px}
 #touch-controls [data-action="mount"]{right:130px;bottom:0;width:56px;height:56px}
 #touch-controls [data-action="mount"]>svg,#touch-controls [data-action="dash"]>svg,#touch-controls [data-action="skill"]>svg{width:16px;height:16px}
 #boon-prompt{left:36%;right:auto;top:auto;bottom:calc(85px + var(--safe-bottom));width:44px;max-width:none;z-index:2}
 #boon-open{width:44px;height:46px;min-height:44px;padding:3px;border-radius:11px 3px;border-width:1px;box-shadow:inset 0 0 0 2px #cbbd8729}
 #boon-open>span{font-size:12px;letter-spacing:1px}#boon-open small{font-size:12px;margin-top:3px}
 #boon-notice{position:absolute;right:-95px;bottom:65px;max-width:none;width:206px;font-size:12px;text-align:center;padding:3px 5px;margin:0;border:0}
 .result-modal .modal-card{width:calc(100% - 22px);padding:24px 22px 23px;max-height:calc(100dvh - 24px - var(--safe-top) - var(--safe-bottom));border-top-width:7px;border-bottom-width:7px}
 .result-modal #modal-eyebrow{font-size:12px;letter-spacing:3px}.result-modal #modal-title{font-size:25px;letter-spacing:2px;padding-bottom:13px}
 .result-modal #modal-body{margin:19px 0 16px}.result-summary{gap:16px}.result-seal{width:52px;height:60px;font-size:34px}
 .result-location{font-size:12px;letter-spacing:1px}.result-summary .stars{font-size:23px;letter-spacing:5px}.result-verdict{font-size:12px;line-height:1.6}
 .result-progress{margin:18px 0 16px}.result-rewards>div{padding:12px 11px}.result-rewards strong{font-size:27px}.result-rewards span{font-size:16px}
 .result-details{margin-top:14px}.result-stats{gap:5px}.result-modal[data-result="lost"] .failure-cause{font-size:19px}
 .result-modal #modal-actions>.primary{min-height:52px;font-size:20px;letter-spacing:2px}
}
@media(orientation:portrait) and (max-width:370px){
 #touch-controls .touch-attack{right:80px;width:64px;height:64px}
 #touch-controls [data-action="mount"]{right:124px;width:53px;height:53px}
 #touch-controls [data-action="dash"]{right:62px;width:53px;height:53px}
 #touch-controls [data-action="skill"]{width:53px;height:53px}
 #touch-controls [data-action="dodge"]{left:60px;width:50px;height:50px}
 #boon-prompt{left:35%;width:44px}
 .result-modal .modal-card{padding:20px 17px}.result-modal #modal-title{font-size:23px}
}
@media(orientation:landscape) and (max-height:520px){
 .hud-top{top:10px}.vitals{width:235px;padding-left:74px;height:72px}.hud-portrait{width:62px;height:62px}#hud-name{font-size:18px}
 #hud .health{left:70px;top:32px;height:14px}.vital-label{left:73px;top:32px;height:14px}.energy-line{left:69px;top:53px}
 .mission-rail{left:88px;top:88px;font-size:12px;gap:3px}.mission-rail>div{padding:0 7px}
 #tutorial{top:85px;font-size:12px}#combat-feedback{top:142px;font-size:12px}
 #boss-hud{top:79px}.boss-active #tutorial{top:143px}#boon-prompt{top:71px}#boon-open{padding:5px 9px}#boon-notice{font-size:12px}
 #loadout-hud{bottom:89px;font-size:12px}#boon-build{display:none}#touch-controls{bottom:9px;gap:6px}#touch-controls button{height:51px;width:51px}
 #touch-controls .touch-jump,#touch-controls .touch-attack{height:64px;width:64px}
 .result-modal .modal-card{width:min(650px,95%);padding:20px 26px}.result-modal #modal-title{font-size:25px}.result-modal #modal-body{margin:12px 0}
}
@media(prefers-reduced-motion:reduce){#hud .bar i,#hud button:before{transition:none}}
.motion-reduced #hud .bar i,.motion-reduced #hud button:before{transition:none}

/* Keep state labels readable within the existing combat-safe bands. */
#tutorial{font-size:14px}#combat-feedback{font-size:14px}.hud-right{font-size:14px}.mission-rail,#checkpoint-hud,#combo-hud,#loadout-hud,#boon-build{font-size:12px}
#touch-controls button{font-size:14px;line-height:1.1}#touch-controls small,#combat-dock small{font-size:12px;line-height:14px}#touch-controls [data-action=left]>span,#touch-controls [data-action=right]>span{font-size:12px}
#touch-controls .unavailable,#touch-controls .energy-short{color:#fff5d9;background:#3d5144}
@media(orientation:portrait) and (max-width:900px){
 #hud-name{font-size:18px}#hud .hud-right{font-size:14px;color:#3f503d}
 #hud .health{top:31px;height:18px}.vital-label{top:32px;height:16px;line-height:16px}#hp-text{font-size:12px;line-height:16px}
 .energy-line{top:55px;height:15px}.energy-line .energy{height:15px}.energy-line b{font-size:12px;line-height:15px}
 .journey>span{font-size:16px}.journey small{font-size:12px;line-height:14px;color:#435640;bottom:-5px}.mission-rail,.mission-rail>div{font-size:12px}#checkpoint-hud{font-size:12px;color:#435b42}#combo-hud{font-size:12px;color:#566039}
 #boss-name{font-size:16px}#boss-hud small{font-size:12px;line-height:14px;color:#625333}
 #tutorial,.boss-active #tutorial{font-size:14px;padding:7px 12px}#combat-feedback{font-size:14px}
 #loadout-hud{font-size:12px;line-height:16px;height:20px;bottom:calc(151px + var(--safe-bottom));color:#47583e}
 #touch-controls button{font-size:14px;line-height:14px;padding:3px 2px;gap:1px}#touch-controls button>svg{width:16px;height:16px}#touch-controls button>small{font-size:12px;line-height:13px;letter-spacing:-.02em}
 #touch-controls [data-action=slide],#touch-controls [data-action=dodge]{width:56px;height:56px}#touch-controls [data-action=dodge]{left:64px}
 #touch-controls .touch-attack,#touch-controls .touch-jump{font-size:16px;line-height:18px}#touch-controls .touch-attack>svg,#touch-controls .touch-jump>svg{width:22px;height:22px}
 #touch-controls [data-action=left],#touch-controls [data-action=right]{padding:2px;gap:0}#touch-controls [data-action=left]>span,#touch-controls [data-action=right]>span{font-size:12px;line-height:13px}
 #boon-open>span{font-size:14px;letter-spacing:0}#boon-open small{font-size:12px;line-height:13px;margin-top:1px}#boon-notice{font-size:12px;line-height:1.5}
}
@media(orientation:portrait) and (max-width:370px){#touch-controls [data-action=dodge]{left:62px;width:56px;height:56px}#touch-controls [data-action=mount],#touch-controls [data-action=dash],#touch-controls [data-action=skill]{width:56px;height:56px}}

.result-materials{display:flex;flex-wrap:wrap;gap:8px 20px;margin:14px 0;padding:12px 0;border-block:1px solid #ae9a7040;font-size:14px}.result-materials span{display:flex;gap:8px}.result-materials b{color:#23584d}.journey-materials{font-size:13px;line-height:1.8;color:#486058;margin:0 0 16px}

/* Gameplay reference v22: a calm, legible ivory ribbon above the action. */
@media(min-width:901px) and (orientation:landscape){
 #hud:before{content:'';position:absolute;inset:0 0 auto;height:102px;background:linear-gradient(90deg,#f2ecdaeF,#f6f0e0e8,#eee6d2ef);border-bottom:1px solid #a88d57;box-shadow:0 2px 8px #102c2420;pointer-events:none}
 #hud .hud-top{top:12px;align-items:flex-start}#hud-name,.hud-top .journey,.hud-top .journey small,.hud-top .hud-right{color:#264e45;text-shadow:none}
 #hud .health i{background:linear-gradient(90deg,#315f4c,#93ae81)}#hud.low-health .health i{background:linear-gradient(90deg,#963b31,#d28360)}
 #hud .hud-portrait{box-shadow:0 2px 4px #294b3826}#hud .journey{padding-top:5px}#hud .hud-right{padding-top:8px}
}

/* sect.css */
/* Sect halls inherit the silk-and-jade manuscript; the selected person anchors each transaction. */
#hub-content[data-panel-page="sect"],#hub-content[data-panel-page="manuals"]{background:#f6f0e4;outline:none}
#hub-content .sect-page{--sect-ink:#243f38;--sect-muted:#4e6157;--sect-rule:#aa977059;color:var(--sect-ink);font:14px/1.7 var(--font-ui);min-width:0;position:relative}
#hub-content .sect-page .sect-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid #9a916f;background:#f4efdf;color:#2b4d42;box-shadow:inset 0 1px 0 #fff9}
#hub-content .sect-page .sect-button.primary{border-color:#8f825d;background:linear-gradient(#285e50,#204c42);color:#fbf3df;box-shadow:inset 0 1px 0 #b8c8aa33}
#hub-content .sect-page .sect-button:hover:not(:disabled){background:#e9eddf;border-color:#557762;color:#1c493e}
#hub-content .sect-page .sect-button.primary:hover:not(:disabled){background:#174b3f;color:#fff8e8}
#hub-content .sect-page .sect-button:disabled{opacity:1;background:#e8e4d8;color:#626b61;border-color:#c3c0af;box-shadow:none}
#hub-content .sect-page .sect-button.sect-quiet{padding:6px 10px;background:none;border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:4px}
#hub-content .sect-page button{font-family:var(--font-ui);font-size:14px;font-weight:500;letter-spacing:0;min-height:44px;border-radius:3px}
#hub-content .sect-page button:disabled{opacity:1;background:#e8e4d8;color:#677065;border-color:#c3c0af;box-shadow:none}
#hub-content .sect-page :is(button,summary):focus-visible{outline:2px solid #9a4839;outline-offset:3px}
#hub-content .sect-page :is(h2,h3,h4,p,div){overflow-wrap:anywhere}
#hub-content .sect-page h2{font:500 30px/1.4 var(--font-display);letter-spacing:2px;color:var(--sect-ink)}
#hub-content .sect-page h3{font:500 24px/1.4 var(--font-display);letter-spacing:1px;margin:0 0 16px}
#hub-content .sect-page h4{font:600 17px/1.5 var(--font-ui);color:var(--sect-ink)}
#hub-content .sect-page p{line-height:1.8;margin:8px 0;color:var(--sect-muted)}
#hub-content .sect-page svg{width:20px;height:20px;flex:0 0 20px}
.sect-top{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;margin-bottom:16px}
#hub-content .sect-page .sect-back{display:inline-flex;align-items:center;gap:8px;padding:8px 0;color:var(--sect-ink);border:0;background:none;box-shadow:none;white-space:nowrap}
.sect-wallet{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px 20px;font-size:12px;color:var(--sect-muted)}
.sect-wallet span{white-space:nowrap}.sect-wallet b{font-weight:600;font-size:16px;color:var(--sect-ink);margin-left:6px;font-variant-numeric:tabular-nums}
.sect-heading{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-bottom:20px}
.sect-heading>div:first-child{max-width:640px}.sect-heading .sect-button{flex-shrink:0}
#hub-content .sect-heading p{margin:6px 0 0}
.sect-membership{display:flex;gap:24px;flex-shrink:0}
.sect-membership>div{display:grid;gap:2px}.sect-membership dt{font-size:12px;color:var(--sect-muted)}
.sect-membership dd{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.sect-tabs{display:flex;gap:24px;border-bottom:1px solid var(--sect-rule);margin-bottom:24px}
#hub-content .sect-tabs .sect-button{padding:10px 4px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--sect-muted);box-shadow:none}
#hub-content .sect-tabs .is-active{color:#205246;border-bottom-color:#376b59;font-weight:600}
.sect-workspace{display:grid;grid-template-columns:minmax(180px,26%) minmax(0,1fr);gap:40px;align-items:start}
.sect-person{min-width:0}
.sect-person figure{margin:0}
.sect-portrait{width:100%;aspect-ratio:1;background-color:#e5e9dc;background-image:url('assets/sect-portraits.png');background-size:300% 300%;background-position:var(--portrait-x) var(--portrait-y);border:1px solid #a89a7699}
.sect-person figcaption{padding-top:12px}
#hub-content .sect-person h3{font-size:25px;margin-bottom:2px}
#hub-content .sect-person .sect-role{margin:0;font-size:12px;color:#57614f}
.sect-person blockquote{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--sect-rule);font-size:14px;line-height:1.85;color:#445c4e}
.sect-business{min-width:0;padding-bottom:12px}
.sect-business>h3:first-child{padding-bottom:12px;border-bottom:1px solid var(--sect-rule)}
.sect-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;align-items:center}
#hub-content .sect-page .sect-note{font-size:12px;line-height:1.8;color:#526155;margin:10px 0 0}
#hub-content .sect-page .sect-description{font-size:15px;line-height:1.9;margin:4px 0 18px}
.sect-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-block:1px solid var(--sect-rule);margin:0 0 28px}
#hub-content .sect-choices .sect-button{display:flex;flex-direction:column;align-items:stretch;text-align:left;justify-content:flex-start;gap:6px;padding:16px 20px;min-width:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--sect-ink)}
#hub-content .sect-choices .sect-button+.sect-button{border-left:1px solid var(--sect-rule)}
#hub-content .sect-choices .sect-button.is-selected{background:#dfe8d9;box-shadow:inset 0 -3px 0 #386655}
.sect-choices strong{font:500 22px/1.5 var(--font-display)}
.sect-choices small{font-size:12px;margin-left:10px;white-space:nowrap;color:#2d5f4c}
.sect-choice-description{font-size:14px;line-height:1.7;color:#4e6157}.sect-choice-manual{font-size:12px;color:#52644d}
.sect-preview{margin-top:20px}
.sect-preview ul{list-style:none;padding:0;margin:4px 0 0}
.sect-preview li{padding:12px 0;border-bottom:1px solid var(--sect-rule)}
.sect-preview li>div{display:flex;align-items:center;gap:12px}
.sect-preview strong{font-weight:600;font-size:15px}
#hub-content .sect-preview li p{margin:4px 0 0;font-size:14px}
.sect-type{font-size:12px;color:#56624f;white-space:nowrap}
.sect-npc-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}
#hub-content .sect-npc-switch .sect-button{flex-direction:row;justify-content:flex-start;padding:10px 14px;background:none;border:1px solid var(--sect-rule);box-shadow:none;gap:12px;text-align:left;min-width:0}
#hub-content .sect-npc-switch .is-selected{background:#e2eadb;border-color:#66826b;color:#244f3e}
.sect-npc-switch strong{font-size:15px;font-weight:600}.sect-npc-switch small{font-size:12px;color:#51614f}
.sect-promotion{padding-top:4px}
.sect-requirements{list-style:none;padding:0;margin:14px 0}
.sect-requirements li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--sect-rule);padding:13px 0}
.sect-requirement-mark{height:20px;width:20px;border:1px solid #a6ad98;border-radius:2px;color:#2d6550}
.sect-requirement-mark svg{display:block}
.sect-requirements small{font-size:12px;color:#646851;white-space:nowrap}.sect-requirements .is-met small{color:#2c654a}
.sect-transfer,.sect-old-manuals{margin-top:28px;border-top:1px solid var(--sect-rule)}
.sect-page summary{cursor:pointer;display:flex;align-items:center;min-height:48px;font-size:14px;font-weight:500;list-style:disclosure-closed;color:#48634e}
.sect-page details[open]>summary{list-style:disclosure-open}
.sect-page summary::after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px;flex:0 0 7px}
.sect-page details[open]>summary::after{transform:rotate(225deg)}
#hub-content .sect-transfer p{font-size:13px;margin:4px 0 14px}
.sect-confirm{background:#ebe8d7;border:1px solid #aa9664;padding:18px;margin-top:20px}
#hub-content .sect-confirm h4{font-size:17px}
#hub-content .sect-confirm p{font-size:14px}
#hub-content .sect-confirm .sect-confirm-warning{color:#854536}
#hub-content .sect-page .sect-feedback{border:1px solid #a96751;background:#f2e3d5;color:#7a382b;padding:12px 16px;margin:0 0 20px}
.sect-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sect-status{font-size:12px;color:#275e47}
.sect-active-task{padding:4px 0 24px;border-bottom:1px solid #879378}
.sect-task-progress{display:flex;gap:16px;align-items:center;margin:16px 0}
.sect-task-progress progress{min-width:0;flex:1;height:6px;width:100%;border:0;border-radius:0;accent-color:#426d58;background:#d7dbca}
.sect-task-progress progress::-webkit-progress-bar{background:#d7dbca}
.sect-task-progress progress::-webkit-progress-value{background:#426d58}
.sect-task-progress progress::-moz-progress-bar{background:#426d58}
.sect-task-progress strong{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
#hub-content .sect-page .sect-reward{color:#6e542d;font-size:13px}
.sect-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--sect-rule)}
#hub-content .sect-task-row h4{font-size:16px}
#hub-content .sect-task-row p{font-size:13px;margin:4px 0}
#hub-content .sect-task-row .sect-button{min-width:84px;max-width:130px}
#hub-content .sect-page .sect-empty{padding:4px 0 18px}
#hub-content .sect-loadout-note{font-size:13px;margin:4px 0 16px;color:#405d4b}
.sect-loadout{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--sect-rule);margin-bottom:8px}
.sect-loadout>div{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;min-width:0;padding:12px 0}
.sect-loadout>div+div{border-left:1px solid var(--sect-rule);padding-left:20px;margin-left:20px}
.sect-loadout>div>span{font-size:12px;color:var(--sect-muted)}
.sect-loadout strong{font-size:14px;line-height:1.6;grid-column:1;min-width:0;font-weight:500}
.sect-loadout small{display:block;font-size:12px;color:var(--sect-muted);font-weight:400}
.sect-loadout .sect-button{grid-column:2;grid-row:1/3;align-self:center}
.sect-manual-row{border-bottom:1px solid var(--sect-rule);padding:20px 0}
#hub-content .sect-manual-row h4{font-size:17px}
#hub-content .sect-manual-row .sect-manual-effect{font-size:14px;margin:6px 0;color:#2d4e40}
.sect-manual-effect>span{display:inline-block;min-width:56px;margin-right:8px;font-size:12px;color:#586750}
.sect-manual-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.sect-manual-bottom>div:first-child{min-width:0}
.sect-manual-bottom .sect-actions{flex-shrink:0;margin-top:12px}
#hub-content .sect-manual-row .sect-cost{margin:6px 0 0;font-size:12px}
.sect-cost strong{font-weight:600;color:#735b30;font-size:14px}
.sect-manual-bottom .sect-note{max-width:42ch}
.sect-equipped,.sect-complete{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:#2c6348}
.sect-manual-row.is-foreign{padding:16px 0}
@media(max-width:1000px){
 .sect-workspace{gap:28px;grid-template-columns:minmax(160px,25%) minmax(0,1fr)}
 .sect-choices .sect-button{padding-inline:14px}
 .sect-npc-switch strong{font-size:14px}
 #hub-content .sect-npc-switch .sect-button{gap:6px}
 .sect-manual-bottom{align-items:flex-start;flex-direction:column;gap:0}
 .sect-manual-bottom .sect-actions{margin-top:10px}
 .sect-loadout>div+div{padding-left:12px;margin-left:12px}
}
@media(max-width:700px){
 #hub-content .sect-page h2{font-size:25px;letter-spacing:1px}
 #hub-content .sect-page h3{font-size:22px;margin-bottom:12px}
 .sect-top{margin-bottom:10px;gap:8px;align-items:center}
 .sect-wallet{gap:2px 12px;font-size:12px;line-height:1.5}
 .sect-wallet b{font-size:14px;margin-left:3px}
 #hub-content .sect-page .sect-back{padding:8px 0;gap:4px}
 .sect-heading{align-items:flex-start;flex-direction:column;gap:14px;padding-bottom:16px}
 .sect-heading>div:first-child{width:100%}
 #hub-content .sect-heading p{font-size:13px}
 .sect-membership{gap:24px;width:100%;padding-top:10px;border-top:1px solid var(--sect-rule)}
 .sect-membership>div{display:flex;align-items:baseline;gap:10px}
 .sect-membership dd{font-size:16px}
 .sect-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:20px}
 #hub-content .sect-tabs .sect-button{font-size:14px;padding:10px 0}
 .sect-workspace{grid-template-columns:1fr;gap:22px}
 .sect-person{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;align-items:start;padding-bottom:16px;border-bottom:1px solid var(--sect-rule)}
 .sect-person figure{display:contents}
 .sect-portrait{grid-column:1;grid-row:1/3}
 .sect-person figcaption{grid-column:2;padding-top:4px}
 #hub-content .sect-person h3{font-size:22px;margin:0 0 2px}
 .sect-person blockquote{grid-column:2;border:0;padding:0;margin:-8px 0 0;font-size:13px;line-height:1.8}
 #hub-content .sect-business>h3:first-child{padding-bottom:10px}
 .sect-choices{grid-template-columns:1fr;margin-bottom:22px}
 #hub-content .sect-choices .sect-button{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 10px}
 #hub-content .sect-choices .sect-button+.sect-button{border-left:0;border-top:1px solid var(--sect-rule)}
 #hub-content .sect-choices .sect-button.is-selected{box-shadow:inset 3px 0 0 #386655}
 .sect-choices strong{font-size:19px}.sect-choices small{margin-left:8px}
 .sect-choice-description{grid-column:1/-1;font-size:13px}
 .sect-choice-manual{grid-column:1/-1;font-size:12px}
 .sect-npc-switch{gap:6px;margin-bottom:20px}
 #hub-content .sect-npc-switch .sect-button{padding:9px 4px;gap:2px;flex-direction:column;text-align:center}
 .sect-npc-switch strong{font-size:14px}.sect-npc-switch small{font-size:12px}
 .sect-requirements li{gap:8px;grid-template-columns:20px minmax(0,1fr) auto;font-size:13px}
 .sect-actions{gap:8px}
 #hub-content .sect-page .sect-actions .sect-button{padding:10px 12px}
 .sect-confirm{padding:14px;margin-top:18px}
 .sect-confirm .sect-actions{align-items:stretch}
 .sect-confirm .sect-actions .sect-button{flex:1 1 120px}
 #hub-content .sect-task-row h4{font-size:16px}
 .sect-task-row{gap:12px;padding:16px 0}
 #hub-content .sect-task-row .sect-button{min-width:76px;max-width:96px;padding:9px 10px}
 .sect-loadout{grid-template-columns:1fr}
 .sect-loadout>div+div{border-left:0;border-top:1px solid var(--sect-rule);padding-left:0;margin-left:0}
 .sect-manual-row{padding:18px 0}
 .sect-section-title{gap:4px 12px}
 .sect-manual-bottom{display:block}
 .sect-manual-bottom .sect-actions{margin-top:12px}
 .sect-task-progress{gap:12px}
}
@media(max-width:375px){
 .sect-person{grid-template-columns:88px minmax(0,1fr);gap:12px}
 .sect-top{flex-wrap:wrap}
 .sect-wallet{margin-left:auto}
 #hub-content .sect-tabs .sect-button{font-size:13px}
 .sect-tabs{gap:4px}
 .sect-membership{gap:20px}
}
@media(prefers-reduced-motion:reduce){.sect-page *{scroll-behavior:auto}}

/* Keep long sect ledgers below the persistent porcelain masthead. */
#hub-panel:has(.sect-page){top:calc(80px + var(--safe-top,0px));padding-top:8px;scroll-padding-top:8px}
body:has(#hub-panel:not([hidden]) .sect-page) #masthead{top:0;left:0;right:0;height:calc(80px + var(--safe-top,0px));padding:calc(24px + var(--safe-top,0px)) 40px 12px;background:#f3eee2}
@media(max-width:700px){
 #hub-panel:has(.sect-page){top:calc(64px + var(--safe-top,0px));padding-top:8px}
 body:has(#hub-panel:not([hidden]) .sect-page) #masthead{height:calc(64px + var(--safe-top,0px));padding:calc(16px + var(--safe-top,0px)) 16px 4px}
}

/* UI v12: porcelain masthead and the first, choosing-a-sect page. */
body:has(#hub-panel:not([hidden]) .sect-page) #masthead{display:none}
#hub-panel:has(.sect-page){inset:0;padding:0;scroll-padding-top:86px;background:#f2ecde url('assets/runtime/bamboo.webp') center/cover}
#hub-content:is([data-panel-page="sect"],[data-panel-page="manuals"]){width:100%;max-width:none;margin:0;padding:0;border:0;outline:0;background:none}
#hub-content:is([data-panel-page="sect"],[data-panel-page="manuals"])::before,#hub-content:is([data-panel-page="sect"],[data-panel-page="manuals"])::after{display:none}
#hub-content .sect-page{--sect-ink:#244d42;--sect-muted:#52624f;--sect-rule:#aa97705c;--sect-brass:#a7966c;min-height:100dvh;selection-background:#d7e4cd}
.sect-page ::selection{color:#183f34;background:#d7e4cd}
.sect-body{padding:16px 24px 24px;margin-inline:auto;max-width:1600px}
.sect-top{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:76px;gap:24px;margin:0;padding:12px 30px;background:#f5efe3;border-bottom:1px solid #b09b725e}
#hub-content .sect-page .sect-back{justify-self:start;font:18px/1.4 var(--font-display);letter-spacing:1px;padding:6px 8px;min-height:44px;color:#244d42}
.sect-back .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
#hub-content .sect-page .sect-page-title{display:flex;align-items:center;gap:28px;font:500 32px/1.2 var(--font-display);letter-spacing:6px;white-space:nowrap}
.sect-page-title::before,.sect-page-title::after{content:'';width:clamp(24px,9vw,150px);height:1px;background:#b4a27a9c}
.sect-wallet{justify-self:end;display:flex;flex-wrap:nowrap;align-items:center;gap:15px;font-size:14px;color:#465b48}
.sect-wallet>span{display:flex;align-items:center;gap:6px}
.sect-wallet>span+span{border-left:1px solid #b09b72;padding-left:15px}
.sect-wallet .cult-ui-icon{width:29px;height:29px;flex-basis:29px}
.sect-wallet b{font:24px/1.2 var(--font-display);font-variant-numeric:tabular-nums;margin:0;color:#244d42}
#hub-content .sect-page .sect-button{border-radius:3px;outline:1px solid #baa77655;outline-offset:-4px;min-height:46px}
#hub-content .sect-page .sect-button.primary{background:#225446;color:#fbf2dd;border:1px solid #a28b59;box-shadow:inset 0 1px 0 #d6dabe33;outline-color:#d3bc7d80;font:18px/1.3 var(--font-display);letter-spacing:1px;min-height:50px}
#hub-content .sect-page .sect-button.primary:hover:not(:disabled){background:#19493d;color:#fff6e3;border-color:#907340}
#hub-content .sect-page .sect-button:disabled{color:#626b59;background:#e9e5d6;border-color:#c0b697;outline-color:#c0b69755;box-shadow:none}
#hub-content .sect-page .sect-back{outline:none;border:0;box-shadow:none;background:none}
#hub-content .sect-page .sect-back:hover:not(:disabled){background:#e5e9db;color:#204739}
#hub-content .sect-page[data-sect-view="choose"] .sect-choices{gap:14px;margin:0 0 16px;border:0}
#hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button{display:flex;flex-direction:row;align-items:center;gap:18px;min-height:112px;padding:10px 18px;background:#f6f0e3;color:#244d42;border:1px solid #b4a27a;outline:1px solid #bca87980;outline-offset:-5px;text-align:left;box-shadow:none}
#hub-content .sect-page[data-sect-view="choose"] .sect-choices .is-selected{color:#fbf3df;background:#225446;border-color:#a48b59;outline-color:#cbb377}
#hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button:hover:not(:disabled){background:#e7ebdb}
#hub-content .sect-page[data-sect-view="choose"] .sect-choices .is-selected:hover:not(:disabled){background:#19493d;color:#fbf3df}
.sect-choice-copy{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
.sect-choice-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sect-choice-name strong{font:500 24px/1.4 var(--font-display);letter-spacing:1px}
.sect-choice-name small{font:12px/1.5 var(--font-ui);margin:0;color:inherit}
.sect-choice-trait{font:16px/1.5 var(--font-display);letter-spacing:2px}
.sect-choice-copy .sect-choice-manual{font:13px/1.5 var(--font-ui);color:#53614b}
.is-selected .sect-choice-copy .sect-choice-manual{color:#e9dfc5}
.sect-emblem.cult-ui-icon{width:84px;height:84px;flex-basis:84px}
.sect-browse-return{display:flex;justify-content:flex-end;margin-bottom:12px}
.sect-selection{grid-template-columns:minmax(0,33fr) minmax(0,67fr);gap:16px;align-items:stretch}
.sect-selection>.sect-person,.sect-choice-ledger{border:1px solid #b4a27a;outline:1px solid #bca87980;outline-offset:-5px;background:#f6f0e3;position:relative}
.sect-selection>.sect-person{padding:12px}
.sect-selection .sect-portrait{height:clamp(250px,calc(100dvh - 390px),520px);aspect-ratio:auto;background-size:300% auto;border:1px solid #b4a27a7d;background-position:var(--portrait-x) 0}
.sect-selection .sect-person figcaption{display:flex;align-items:baseline;gap:16px;padding:10px 10px 0}
#hub-content .sect-selection .sect-person h3{font:500 27px/1.3 var(--font-display);letter-spacing:2px;margin:0}
#hub-content .sect-selection .sect-role{font-size:14px;margin:0;color:#52624f}
.sect-selection .sect-person blockquote{font:15px/1.75 var(--font-ui);margin:10px 10px 2px;padding:0;border:0;color:#465b48}
.sect-choice-ledger{padding:20px 28px;display:flex;flex-direction:column}
#hub-content .sect-choice-ledger>h3:first-child{font:500 30px/1.3 var(--font-display);letter-spacing:3px;border:0;padding:0;margin:0 0 8px;display:flex;align-items:center;gap:22px}
.sect-choice-ledger>h3::after{content:'';height:1px;flex:1;background:#b4a27a80}
#hub-content .sect-choice-ledger .sect-description{font-size:16px;line-height:1.7;margin:0 0 8px;color:#465b48}
.sect-choice-ledger .sect-lore{border-bottom:1px solid var(--sect-rule);margin:0 0 10px}
.sect-choice-ledger .sect-lore summary{font:18px/1.4 var(--font-display);min-height:40px;color:#244d42}
#hub-content .sect-choice-ledger .sect-lore p{font-size:14px;line-height:1.75;margin:0 0 12px;color:#52624f}
.sect-choice-ledger .sect-preview{margin:0}
#hub-content .sect-choice-ledger .sect-preview h4{font:22px/1.4 var(--font-display);margin:0 0 4px;letter-spacing:1px}
.sect-choice-ledger .sect-preview ul{margin:0}
.sect-choice-ledger .sect-preview li{display:flex;align-items:center;gap:15px;padding:7px 0;border-bottom:1px solid var(--sect-rule)}
.sect-preview-icon.cult-ui-icon{width:54px;height:54px;flex-basis:54px}
.sect-choice-ledger .sect-preview li>.sect-preview-copy{display:block;min-width:0;flex:1}
.sect-preview-copy>div{display:flex;align-items:baseline;gap:12px}
.sect-choice-ledger .sect-preview strong{font:18px/1.5 var(--font-display);color:#244d42}
.sect-choice-ledger .sect-type{font:12px/1.5 var(--font-ui);color:#6c582f;border:1px solid #ad9b7055;padding:1px 7px;background:#ece4cf;white-space:nowrap}
#hub-content .sect-choice-ledger .sect-preview p{font:15px/1.6 var(--font-ui);margin:2px 0 0;color:#52624f}
#hub-content .sect-choice-ledger .sect-selection-note{font-size:13px;line-height:1.6;margin:12px 0 0;color:#52624f}
.sect-choice-actions{justify-content:flex-end;margin-top:auto;padding-top:14px}
#hub-content .sect-choice-actions .sect-button{min-width:min(320px,100%);padding:7px 24px}
.sect-choice-actions .cult-ui-icon{width:35px;height:35px;flex-basis:35px}
.sect-choice-ledger .sect-confirm{margin-top:14px;padding:14px 16px;background:#eee9d8}
#hub-content .sect-choice-ledger .sect-confirm h4{font:20px/1.4 var(--font-display)}
#hub-content .sect-choice-ledger .sect-confirm p{font-size:14px;line-height:1.75;margin:6px 0}
.sect-choice-ledger .sect-confirm .sect-actions{margin-top:12px}
@media(min-width:701px) and (max-height:800px){
 .sect-body{padding-top:12px;padding-bottom:16px}
 .sect-choice-ledger{padding:16px 24px}
 #hub-content .sect-page[data-sect-view="choose"] .sect-choices{margin-bottom:12px}
 #hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button{min-height:104px;padding-block:8px}
 .sect-emblem.cult-ui-icon{width:78px;height:78px;flex-basis:78px}
 .sect-choice-ledger .sect-preview li{padding:5px 0}.sect-preview-icon.cult-ui-icon{width:48px;height:48px;flex-basis:48px}
 .sect-choice-actions{padding-top:10px}
}
@media(max-width:1100px) and (min-width:701px){
 .sect-top{padding-inline:20px;gap:16px}.sect-page-title::before,.sect-page-title::after{width:25px}
 .sect-body{padding-inline:16px}.sect-selection{grid-template-columns:minmax(0,35fr) minmax(0,65fr)}
 #hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button{gap:8px;padding-inline:12px}.sect-emblem.cult-ui-icon{width:65px;height:65px;flex-basis:65px}.sect-choice-name strong{font-size:21px}.sect-choice-copy .sect-choice-manual{font-size:12px}
 .sect-choice-ledger{padding-inline:20px}.sect-wallet{font-size:12px;gap:8px}.sect-wallet>span+span{padding-left:8px}.sect-wallet .cult-ui-icon{width:25px;height:25px;flex-basis:25px}.sect-wallet b{font-size:21px}
}
@media(max-width:700px){
 #hub-panel:has(.sect-page){scroll-padding-top:112px}
 .sect-top{height:auto;min-height:102px;padding:8px 14px;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
 #hub-content .sect-page .sect-back{font-size:16px;letter-spacing:0;padding-inline:2px}
 .sect-back .cult-ui-icon{width:28px;height:28px;flex-basis:28px}
 #hub-content .sect-page .sect-page-title{grid-column:2;grid-row:1;font-size:27px;letter-spacing:3px;gap:0}
 .sect-page-title::before,.sect-page-title::after{display:none}
 .sect-wallet{grid-column:1/-1;justify-self:center;gap:18px;font-size:12px}.sect-wallet>span+span{padding-left:18px}.sect-wallet b{font-size:20px}.sect-wallet .cult-ui-icon{width:24px;height:24px;flex-basis:24px}
 .sect-body{padding:12px}
 #hub-content .sect-page[data-sect-view="choose"] .sect-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
 #hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button{display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;gap:3px;min-height:140px;padding:8px 4px}
 .sect-emblem.cult-ui-icon{width:58px;height:58px;flex-basis:58px}.sect-choice-copy{gap:2px;align-items:center}.sect-choice-name{justify-content:center;gap:3px}.sect-choice-name strong{font-size:18px;letter-spacing:0}.sect-choice-name small{font-size:11px}.sect-choice-trait{font-size:13px;letter-spacing:0}.sect-choice-copy .sect-choice-manual{display:none}
 .sect-selection{grid-template-columns:minmax(0,1fr);gap:12px}
 .sect-selection>.sect-person{display:block;padding:10px}.sect-selection .sect-person figure{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:center}.sect-selection .sect-portrait{width:112px;height:112px;grid-column:1;grid-row:1;background-size:300% 300%}
 .sect-selection .sect-person figcaption{grid-column:2;padding:0;display:block}
 #hub-content .sect-selection .sect-person h3{font-size:24px;margin:0 0 4px;letter-spacing:1px}
 .sect-selection .sect-person blockquote{margin:10px 0 0;font-size:14px;line-height:1.75;grid-column:auto}
 .sect-choice-ledger{padding:18px 18px 20px;min-height:0}
 #hub-content .sect-choice-ledger>h3:first-child{font-size:27px;letter-spacing:2px}
 #hub-content .sect-choice-ledger .sect-description{font-size:14px;line-height:1.8}
 .sect-choice-ledger .sect-lore summary{font-size:16px;line-height:1.6;gap:8px}
 #hub-content .sect-choice-ledger .sect-preview h4{font-size:21px;margin-bottom:6px}.sect-choice-ledger .sect-preview li{gap:9px;padding:10px 0}
 .sect-preview-icon.cult-ui-icon{width:46px;height:46px;flex-basis:46px}.sect-preview-copy>div{flex-wrap:wrap;gap:2px 8px}.sect-choice-ledger .sect-preview strong{font-size:17px}.sect-choice-ledger .sect-type{font-size:11px;padding-inline:5px}
 #hub-content .sect-choice-ledger .sect-preview p{font-size:14px;line-height:1.75;margin:3px 0 0}
 .sect-choice-actions{justify-content:stretch;padding-top:16px;margin-top:0}#hub-content .sect-choice-actions .sect-button{width:100%;min-width:0;padding:8px 10px;font-size:20px;min-height:54px}
 .sect-choice-ledger .sect-confirm{padding:12px}.sect-choice-ledger .sect-confirm .sect-actions .sect-button{padding:10px 8px;letter-spacing:0;font-size:16px}
}
@media(max-width:375px){.sect-body{padding-inline:8px}.sect-top{padding-inline:12px}.sect-choice-name strong{font-size:16px}.sect-emblem.cult-ui-icon{width:53px;height:53px;flex-basis:53px}.sect-choice-ledger{padding-inline:14px}}

/* UI v12: the second page, NPC business and promotion. */
.sect-member-nav{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:stretch;border:1px solid #b4a27a;outline:1px solid #bca87966;outline-offset:-5px;background:#f6f0e3;margin-bottom:14px;min-height:58px}
.sect-member-nav .sect-membership{align-items:center;gap:24px;padding:9px 24px;min-width:0}
.sect-member-nav .sect-membership>div{display:flex;align-items:baseline;gap:12px}
.sect-member-nav .sect-membership>div+div{border-left:1px solid #b4a27a;padding-left:24px}
.sect-member-nav .sect-membership dt{font:16px/1.5 var(--font-display);color:#52624f}
.sect-member-nav .sect-membership dd{font:23px/1.3 var(--font-display);letter-spacing:1px}
.sect-member-nav .sect-tabs{border:0;margin:0;gap:0;align-items:stretch}
#hub-content .sect-member-nav .sect-tabs .sect-button{gap:10px;border:0;border-left:1px solid #b4a27a80;border-radius:0;min-width:150px;padding:8px 18px;font:18px/1.4 var(--font-display);letter-spacing:1px;outline:0;background:#f6f0e3;color:#244d42}
#hub-content .sect-member-nav .sect-tabs .is-active{outline:1px solid #cbb377;outline-offset:-5px;background:#225446;color:#fbf3df;border-left:1px solid #a48b59}
#hub-content .sect-member-nav .sect-tabs .is-active:hover:not(:disabled){background:#19493d;color:#fbf3df}
.sect-member-nav .sect-tabs .cult-ui-icon{width:32px;height:32px;flex-basis:32px}
#hub-content .sect-member-nav .sect-tabs svg{width:27px;height:27px;flex-basis:27px}
.sect-npc-switch{gap:14px;margin-bottom:14px}
#hub-content .sect-npc-switch .sect-button{display:flex;align-items:center;gap:16px;min-height:84px;padding:8px 18px;background:#f6f0e3;border:1px solid #b4a27a;outline:1px solid #bca87980;outline-offset:-5px;justify-content:flex-start}
#hub-content .sect-npc-switch .is-selected{background:#225446;color:#fbf3df;border-color:#a48b59;outline-color:#cbb377}
#hub-content .sect-npc-switch .is-selected:hover:not(:disabled){background:#19493d;color:#fbf3df}
.sect-npc-thumb{display:block;width:64px;height:64px;flex:0 0 64px;background:#e5e9dc url('assets/sect-portraits.png');background-size:300% 300%;background-position:var(--portrait-x) var(--portrait-y);border:1px solid #b4a27a80}
.sect-npc-label{display:flex;flex-direction:column;gap:3px;min-width:0}
.sect-npc-switch strong{font:22px/1.4 var(--font-display);letter-spacing:1px}
.sect-npc-switch small{font:14px/1.5 var(--font-ui);color:#52624f}
.sect-npc-switch .is-selected small{color:#e9dfc5}
.sect-member-workspace{grid-template-columns:minmax(0,33fr) minmax(0,67fr);gap:16px;align-items:stretch}
.sect-member-workspace>.sect-person,.sect-person-ledger{border:1px solid #b4a27a;outline:1px solid #bca87980;outline-offset:-5px;background:#f6f0e3;position:relative}
.sect-member-workspace>.sect-person{padding:12px}
.sect-member-workspace .sect-portrait{width:100%;aspect-ratio:1;height:auto;max-height:calc(100dvh - 430px);background-size:300% auto;border:1px solid #b4a27a7d}
.sect-member-workspace .sect-person figcaption{display:flex;align-items:baseline;gap:16px;padding:10px 10px 0}
#hub-content .sect-member-workspace .sect-person h3{font:500 27px/1.3 var(--font-display);letter-spacing:2px;margin:0}
#hub-content .sect-member-workspace .sect-role{font-size:14px;margin:0;color:#52624f}
.sect-member-workspace .sect-person blockquote{font:15px/1.75 var(--font-ui);margin:10px 10px 2px;padding:0;border:0;color:#465b48}
.sect-person-ledger{padding:18px 26px}
#hub-content .sect-person-ledger>h3:first-child{font:500 27px/1.4 var(--font-display);letter-spacing:2px;border:0;padding:0;margin:0 0 12px;display:flex;align-items:center;gap:22px}
.sect-person-ledger>h3::after{content:'';height:1px;flex:1;background:#b4a27a80}
#hub-content .sect-person-ledger .sect-promotion h4,#hub-content .sect-person-affair h4{font:22px/1.4 var(--font-display);letter-spacing:1px;margin-bottom:6px}
.sect-person-ledger .sect-requirements{margin:6px 0 12px}
.sect-person-ledger .sect-requirements li{grid-template-columns:52px minmax(0,1fr) auto;gap:16px;padding:8px 0;min-height:67px;font:17px/1.6 var(--font-display)}
.sect-requirement-icon{display:grid;place-items:center;width:52px;height:52px;flex-shrink:0}
.sect-requirement-icon .cult-ui-icon{width:50px;height:50px;flex-basis:50px}
#hub-content .sect-requirement-icon>svg{width:34px;height:42px;stroke:#806537;stroke-width:1.3}
.sect-requirement-status{display:flex;align-items:center;gap:8px;white-space:nowrap}
.sect-person-ledger .sect-requirement-mark{display:grid;place-items:center;width:24px;height:24px;flex:0 0 24px;border:1px solid #a99b7466;border-radius:50%;color:#fcf5e3;background:#eeeadc}
.sect-person-ledger .is-met .sect-requirement-mark{border-color:#416c55;background:#416c55}
#hub-content .sect-person-ledger .sect-requirement-mark svg{width:17px;height:17px}
.sect-person-ledger .sect-requirements small{font:13px/1.5 var(--font-ui);color:#716348}
.sect-person-ledger .sect-requirements .is-met small{color:#315f43}
.sect-promotion-actions{justify-content:center;margin-top:8px}
#hub-content .sect-promotion-actions .sect-button{min-width:min(330px,100%);padding:7px 22px;min-height:52px;font-size:22px;gap:12px}
.sect-promotion-actions .cult-ui-icon{width:35px;height:35px;flex-basis:35px}
#hub-content .sect-person-ledger .sect-promotion-note{font-size:13px;line-height:1.6;text-align:center;margin:6px 0 12px;color:#52624f}
.sect-person-ledger .sect-lore,.sect-person-ledger .sect-transfer{border-top:1px solid var(--sect-rule);margin:0}
.sect-person-ledger summary{font:18px/1.5 var(--font-display);min-height:42px}
#hub-content .sect-person-ledger details p{font-size:14px;line-height:1.8;margin:0 0 10px}
.sect-person-affair{padding:16px 0 6px}
#hub-content .sect-person-affair>p{font-size:17px;line-height:1.8;color:#465b48;margin:12px 0}
#hub-content .sect-person-affair .sect-note{font-size:14px;line-height:1.75}
.sect-person-affair .sect-actions{padding-top:18px;margin-top:16px;border-top:1px solid var(--sect-rule)}
.sect-person-affair .sect-button .cult-ui-icon{width:34px;height:34px;flex-basis:34px}
#hub-content .sect-person-affair .sect-button.primary{padding:8px 22px;min-height:52px;font-size:20px}
@media(min-width:701px) and (max-height:800px){
 .sect-member-nav{margin-bottom:12px;min-height:54px}
 .sect-member-nav .sect-membership{padding-block:7px}.sect-npc-switch{margin-bottom:12px}
 #hub-content .sect-npc-switch .sect-button{min-height:78px;padding-block:6px}
 .sect-npc-thumb{width:60px;height:60px;flex-basis:60px}
 .sect-person-ledger{padding:16px 24px}
 #hub-content .sect-person-ledger>h3:first-child{font-size:25px;margin-bottom:10px}
 .sect-person-ledger .sect-requirements li{min-height:63px;padding-block:6px}
 .sect-person-ledger .sect-requirements{margin-bottom:10px}
}
@media(max-width:1100px) and (min-width:701px){
 .sect-member-nav{grid-template-columns:minmax(220px,1fr) auto}
 .sect-member-nav .sect-membership{padding-inline:16px;gap:16px}.sect-member-nav .sect-membership>div+div{padding-left:16px}
 #hub-content .sect-member-nav .sect-tabs .sect-button{min-width:120px;padding-inline:12px;gap:7px;font-size:17px}
 .sect-npc-switch{gap:10px}#hub-content .sect-npc-switch .sect-button{gap:12px;padding-inline:12px}
 .sect-member-workspace{grid-template-columns:minmax(0,35fr) minmax(0,65fr)}
 .sect-person-ledger{padding-inline:20px}.sect-person-ledger .sect-requirements li{gap:10px;font-size:16px}
}
@media(max-width:700px){
 .sect-member-nav{display:block;margin-bottom:12px}
 .sect-member-nav .sect-membership{border:0;padding:10px 14px;justify-content:center;gap:22px;width:auto}
 .sect-member-nav .sect-membership>div+div{padding-left:22px}.sect-member-nav .sect-membership dt{font-size:14px}.sect-member-nav .sect-membership dd{font-size:20px}
 .sect-member-nav .sect-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #b4a27a80;gap:0}
 #hub-content .sect-member-nav .sect-tabs .sect-button{min-width:0;min-height:54px;padding:7px 4px;font-size:15px;gap:4px;letter-spacing:0}
 #hub-content .sect-member-nav .sect-tabs .sect-button:first-child{border-left:0}.sect-member-nav .sect-tabs .cult-ui-icon{width:27px;height:27px;flex-basis:27px}#hub-content .sect-member-nav .sect-tabs svg{width:24px;height:24px;flex-basis:24px}
 .sect-npc-switch{gap:8px;margin-bottom:12px}#hub-content .sect-npc-switch .sect-button{flex-direction:column;gap:5px;min-height:122px;padding:8px 3px;justify-content:center;text-align:center}
 .sect-npc-thumb{width:49px;height:49px;flex-basis:49px}.sect-npc-label{gap:2px}.sect-npc-switch strong{font-size:17px;letter-spacing:0}.sect-npc-switch small{font-size:12px}
 .sect-member-workspace{grid-template-columns:minmax(0,1fr);gap:12px}
 .sect-member-workspace>.sect-person{display:block;padding:10px}.sect-member-workspace .sect-person figure{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:center}
 .sect-member-workspace .sect-portrait{width:112px;height:112px;max-height:none;grid-column:1;grid-row:1;aspect-ratio:1}
 .sect-member-workspace .sect-person figcaption{display:block;padding:0;grid-column:2}
 #hub-content .sect-member-workspace .sect-person h3{font-size:24px;margin:0 0 4px;letter-spacing:1px}
 .sect-member-workspace .sect-person blockquote{font-size:14px;line-height:1.75;margin:10px 0 0;grid-column:auto}
 .sect-person-ledger{padding:18px 18px 20px}
 #hub-content .sect-person-ledger>h3:first-child{font-size:23px;letter-spacing:1px;margin-bottom:12px;gap:12px}
 #hub-content .sect-person-ledger .sect-promotion h4,#hub-content .sect-person-affair h4{font-size:21px}
 .sect-person-ledger .sect-requirements li{grid-template-columns:38px minmax(0,1fr);gap:5px 10px;padding:11px 0;font-size:16px;line-height:1.65}
 .sect-requirement-icon{width:38px;height:38px;grid-column:1;grid-row:1/3}.sect-requirement-icon .cult-ui-icon{width:38px;height:38px;flex-basis:38px}#hub-content .sect-requirement-icon>svg{width:27px;height:34px}
 .sect-requirement-status{grid-column:2;gap:6px}.sect-person-ledger .sect-requirement-mark{width:19px;height:19px;flex-basis:19px}#hub-content .sect-person-ledger .sect-requirement-mark svg{width:14px;height:14px}.sect-person-ledger .sect-requirements small{font-size:12px}
 #hub-content .sect-promotion-actions .sect-button{width:100%;min-width:0;font-size:21px;min-height:54px}
 .sect-person-ledger summary{font-size:16px;line-height:1.6;gap:8px}
 #hub-content .sect-person-affair>p{font-size:15px;line-height:1.8}.sect-person-affair{padding-top:8px}.sect-person-affair .sect-actions{padding-top:14px;margin-top:12px}#hub-content .sect-person-affair .sect-button.primary{width:100%;font-size:19px;padding-inline:10px}
}
@media(max-width:375px){#hub-content .sect-member-nav .sect-tabs .sect-button{font-size:14px;gap:3px}.sect-person-ledger{padding-inline:14px}.sect-npc-switch strong{font-size:16px}.sect-npc-switch small{font-size:11px}}

/* UI v12: the third page, accepted commissions and the task ledger. */
.sect-task-workspace{grid-template-columns:minmax(0,30fr) minmax(0,70fr);align-items:start}
.sect-task-workspace>.sect-person{position:sticky;top:90px}
.sect-task-workspace .sect-portrait{aspect-ratio:auto;height:clamp(300px,calc(100dvh - 330px),640px);max-height:none;background-size:300% auto}
.sect-task-business{padding:20px 24px}
#hub-content .sect-task-business>h3:first-child{font-size:29px;margin-bottom:16px}
.sect-active-task{border:1px solid #8d9b78;outline:1px solid #baa97c66;outline-offset:-5px;padding:14px 16px 12px;margin-bottom:20px;background:#f3f1e5}
.sect-active-task-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:start}
.sect-active-task-copy{display:flex;gap:12px;min-width:0;align-items:flex-start}
.sect-active-task-copy>div{min-width:0;flex:1}
.sect-task-emblem.cult-ui-icon{width:60px;height:60px;flex-basis:60px}
#hub-content .sect-active-task h4{font:23px/1.4 var(--font-display);letter-spacing:1px}
.sect-active-task .sect-section-title{gap:5px 10px;align-items:center;justify-content:flex-start}
.sect-active-task .sect-status{font:12px/1.5 var(--font-ui);padding:2px 8px;white-space:nowrap;color:#315f43;border:1px solid #92a183;background:#e1e8d8}
.sect-active-task .sect-status.is-done{color:#fff4dc;background:#3c6b51;border-color:#3c6b51}
#hub-content .sect-active-task-copy p{font-size:14px;line-height:1.8;margin:6px 0 0;color:#465b48}
.sect-active-task .sect-task-progress{margin:12px 0 0;gap:10px}
.sect-active-task .sect-task-progress strong{font:18px/1.3 var(--font-display);white-space:nowrap}
.sect-active-task .sect-task-progress progress{height:8px;accent-color:#426d58}
.sect-active-task-rewards{border-left:1px solid var(--sect-rule);padding-left:14px;min-width:154px}
.sect-rewards-label{font-size:13px;color:#52624f;display:block;margin-bottom:8px}
.sect-rewards{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0;color:#52624f}
.sect-rewards li{display:flex;align-items:center;gap:4px;font:12px/1.6 var(--font-ui);white-space:nowrap}
#hub-content .sect-rewards svg,.sect-rewards .cult-ui-icon{width:24px;height:24px;flex-basis:24px;color:#806537}
.sect-rewards b{font:17px/1.3 var(--font-display);color:#6c542d;font-weight:500;display:inline-block;margin-left:3px}
.sect-active-task-rewards .sect-rewards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sect-active-task-rewards .sect-rewards li{display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center}
.sect-active-task-rewards .sect-rewards li>span{display:flex;flex-direction:column}
#hub-content .sect-active-task-rewards .sect-rewards svg,.sect-active-task-rewards .sect-rewards .cult-ui-icon{width:32px;height:32px;flex-basis:32px}
.sect-active-task-rewards .sect-rewards b{font-size:19px;margin:0}
.sect-active-task-actions{display:flex;flex-direction:column;align-items:stretch;margin:0;gap:6px}
#hub-content .sect-active-task-actions .primary{font-size:18px;padding:8px 12px;min-height:50px;white-space:nowrap}
.sect-active-task-actions .cult-ui-icon{width:28px;height:28px;flex-basis:28px}
#hub-content .sect-active-task-actions .sect-quiet{min-height:44px;outline:0;padding:5px 10px;text-decoration:underline;text-underline-offset:4px;font-size:14px}
#hub-content .sect-task-business .sect-active-task>.sect-note{font-size:12px;line-height:1.7;margin:12px 0 0;color:#52624f}
.sect-task-origin{border-top:0;margin:4px 0 0}
#hub-content .sect-task-business .sect-task-origin summary{min-height:28px;font:13px/1.7 var(--font-ui);color:#52624f;justify-content:flex-start;gap:8px}
.sect-task-origin summary::after{margin:0;width:5px;height:5px;flex-basis:5px}
#hub-content .sect-task-business .sect-task-origin p{font:13px/1.75 var(--font-ui);margin:4px 0 8px;color:#52624f}
#hub-content .sect-task-business .sect-task-ledger-title{font:23px/1.4 var(--font-display);letter-spacing:1px;margin:0 0 6px}
.sect-task-business .sect-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;padding:13px 0;align-items:center;border-bottom:1px solid var(--sect-rule)}
.sect-task-brief{display:flex;align-items:flex-start;gap:12px;min-width:0}
.sect-task-copy{min-width:0;flex:1}
.sect-task-brief .sect-task-emblem{width:50px;height:50px;flex-basis:50px}
#hub-content .sect-task-business .sect-task-row h4{font:21px/1.4 var(--font-display);margin:0 0 4px;letter-spacing:1px}
#hub-content .sect-task-business .sect-task-row .sect-task-copy>p{font:13px/1.75 var(--font-ui);margin:4px 0;color:#52624f}
.sect-task-row-reward{border-left:1px solid var(--sect-rule);padding-left:14px;width:136px}
.sect-task-row-reward .sect-rewards{display:grid;grid-template-columns:1fr;gap:2px}
#hub-content .sect-task-business .sect-task-row .sect-task-lock{font-size:12px!important;color:#7c482f!important;margin-top:5px!important}
#hub-content .sect-task-business .sect-task-row>.sect-button{min-width:104px;max-width:116px;font-size:17px;padding:8px 12px;min-height:48px;letter-spacing:0}
#hub-content .sect-task-business .sect-task-ledger-note{font-size:13px;line-height:1.8;padding:12px 0 0;margin:0;color:#52624f}
#hub-content .sect-task-business .sect-empty{font-size:15px;line-height:1.8;padding:0 0 16px;color:#52624f}
.sect-task-business .sect-confirm{margin-top:12px;padding:14px}
@media(min-width:701px) and (max-height:800px){.sect-task-business{padding:16px 22px}.sect-active-task{padding:12px 14px;margin-bottom:16px}.sect-active-task-main{gap:14px}#hub-content .sect-task-business>h3:first-child{font-size:27px;margin-bottom:14px}.sect-task-business .sect-task-row{padding-block:10px}.sect-task-workspace .sect-portrait{height:calc(100dvh - 300px);min-height:300px}}
@media(max-width:1100px) and (min-width:701px){
 .sect-task-workspace{grid-template-columns:minmax(0,30fr) minmax(0,70fr)}.sect-task-business{padding-inline:18px}.sect-active-task-main{grid-template-columns:minmax(0,1fr) auto;gap:12px}.sect-active-task-rewards{border-left:0;border-top:1px solid var(--sect-rule);padding:8px 0 0;grid-column:1/-1;grid-row:2}.sect-active-task-rewards .sect-rewards{display:flex;gap:14px}.sect-active-task-rewards .sect-rewards li{flex-direction:row;gap:4px}.sect-active-task-rewards .sect-rewards li>span{display:inline}.sect-active-task-rewards .sect-rewards b{margin-left:3px}.sect-rewards-label{display:none}.sect-task-business .sect-task-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.sect-task-row-reward{grid-column:1;grid-row:2;border:0;width:auto;padding:0 0 0 62px}.sect-task-row-reward .sect-rewards{display:flex;gap:10px}.sect-task-business .sect-task-row>.sect-button{grid-column:2;grid-row:1/3}
}
@media(max-width:700px){
 .sect-task-workspace{grid-template-columns:minmax(0,1fr)}.sect-task-workspace>.sect-person{position:static}.sect-task-workspace .sect-portrait{width:112px;height:112px;min-height:0;max-height:none;background-size:300% 300%}
 .sect-task-business{padding:18px 16px 20px}
 #hub-content .sect-task-business>h3:first-child{font-size:26px;margin-bottom:14px}
 .sect-active-task{padding:12px 12px 14px;margin-bottom:18px}.sect-active-task-main{grid-template-columns:minmax(0,1fr);gap:12px}
 .sect-active-task-copy{gap:9px}.sect-task-emblem.cult-ui-icon{width:46px;height:46px;flex-basis:46px}#hub-content .sect-active-task h4{font-size:21px}
 #hub-content .sect-active-task-copy p{font-size:14px;line-height:1.8}.sect-active-task .sect-task-progress{margin-top:10px}.sect-active-task .sect-task-progress strong{font-size:18px}
 .sect-active-task-rewards{border-left:0;border-top:1px solid var(--sect-rule);padding:9px 0 0;min-width:0}.sect-active-task-rewards .sect-rewards{display:flex;justify-content:space-between;gap:7px}.sect-rewards-label{font-size:12px;margin-bottom:6px}
 .sect-active-task-rewards .sect-rewards li{flex-direction:row;align-items:center;gap:4px}.sect-active-task-rewards .sect-rewards li>span{display:flex;flex-direction:column;text-align:left}.sect-active-task-rewards .sect-rewards b{font-size:18px;margin:0}
 #hub-content .sect-active-task-rewards .sect-rewards svg,.sect-active-task-rewards .sect-rewards .cult-ui-icon{width:28px;height:28px;flex-basis:28px}
 .sect-active-task-actions{flex-direction:row;align-items:center;gap:8px}#hub-content .sect-active-task-actions .primary{flex:1;min-width:0;font-size:17px;padding-inline:8px;white-space:normal}#hub-content .sect-active-task-actions .sect-quiet{flex:0 0 auto;font-size:13px;padding-inline:4px}
 #hub-content .sect-task-business .sect-active-task>.sect-note{font-size:12px;line-height:1.8}
 #hub-content .sect-task-business .sect-task-ledger-title{font-size:22px}
 .sect-task-business .sect-task-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:14px 0}
 .sect-task-brief{gap:8px}.sect-task-brief .sect-task-emblem{width:40px;height:40px;flex-basis:40px}
 #hub-content .sect-task-business .sect-task-row h4{font-size:19px;letter-spacing:0}#hub-content .sect-task-business .sect-task-row .sect-task-copy>p{font-size:13px;line-height:1.8}
 .sect-task-row-reward{grid-column:1/-1;grid-row:2;border-left:0;border-top:1px solid #b4a27a33;width:auto;padding:6px 0 0 48px}
 .sect-task-row-reward .sect-rewards{display:flex;gap:8px 12px}.sect-rewards li{font-size:12px;gap:3px}.sect-rewards b{font-size:16px;margin-left:2px}
 #hub-content .sect-rewards svg,.sect-rewards .cult-ui-icon{width:22px;height:22px;flex-basis:22px}
 #hub-content .sect-task-business .sect-task-row>.sect-button{grid-column:2;grid-row:1;min-width:78px;max-width:85px;font-size:14px;padding-inline:7px;min-height:46px}
 #hub-content .sect-task-business .sect-task-ledger-note{font-size:12px;line-height:1.8}
}
@media(max-width:375px){.sect-task-business{padding-inline:13px}.sect-task-row-reward{padding-left:0}.sect-active-task{padding-inline:10px}.sect-active-task-copy{gap:7px}.sect-active-task .sect-status{font-size:11px;padding-inline:6px}}

/* UI v12: the final sect page, equipped slots and individual manuals. */
.sect-manual-workspace{grid-template-columns:minmax(0,30fr) minmax(0,70fr);align-items:start}
.sect-manual-workspace>.sect-person{position:sticky;top:90px}
.sect-manual-business{padding:20px 24px}
#hub-content .sect-manual-business>h3:first-child{font-size:29px;margin-bottom:6px}
#hub-content .sect-manual-business .sect-loadout-note{font-size:14px;line-height:1.75;margin:0 0 14px;color:#465b48}
.sect-manual-business .sect-loadout{border:1px solid #b4a27a80;outline:1px solid #bca87940;outline-offset:-5px;margin:0 0 14px;padding:8px 12px;background:#f3f0e3;gap:0}
.sect-manual-business .sect-loadout-slot{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 10px}
.sect-manual-business .sect-loadout-slot+.sect-loadout-slot{padding-left:16px;margin-left:10px;border-left:1px solid var(--sect-rule)}
.sect-loadout-icon.cult-ui-icon{width:48px;height:48px;flex-basis:48px}
.sect-loadout-slot.is-empty .sect-loadout-icon{filter:saturate(.3);opacity:.62}
.sect-loadout-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.sect-loadout-copy>span{font-size:12px;color:#52624f}
.sect-manual-business .sect-loadout strong{font:19px/1.45 var(--font-display);color:#244d42;grid-column:auto;overflow-wrap:anywhere}
.sect-manual-business .sect-loadout small{font:13px/1.5 var(--font-ui);color:#52624f}
.sect-loadout-action{display:flex;flex-direction:column;align-items:center;gap:5px}
.sect-slot-status{font:12px/1.6 var(--font-ui);color:#315f43;white-space:nowrap}
.is-empty .sect-slot-status{color:#52624f}
#hub-content .sect-manual-business .sect-loadout .sect-button{min-height:40px;padding:6px 10px;grid-column:auto;grid-row:auto;font-size:14px;outline:0;border:1px solid #b4a27a66;text-decoration:none;background:#ede9d9}
#hub-content .sect-manual-business .sect-manual-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 12px;margin:0 0 10px;border:1px solid #b4a27a66;background:#f5f0e4;min-width:0}
#hub-content .sect-manual-business .sect-manual-row.is-equipped{border-color:#8d9b78;outline:1px solid #baa97c66;outline-offset:-5px;background:#f0f2e4}
.sect-manual-identity{display:flex;gap:14px;align-items:center;min-width:0}
.sect-manual-emblem.cult-ui-icon{width:68px;height:68px;flex-basis:68px}
.sect-manual-name{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1}
#hub-content .sect-manual-business .sect-manual-row h4{font:22px/1.4 var(--font-display);letter-spacing:1px;margin:0 0 4px}
.sect-manual-name .sect-type{font:13px/1.6 var(--font-ui);color:#52624f;white-space:normal}
.sect-manual-name .sect-equipped{min-height:0;font:12px/1.6 var(--font-ui);padding:1px 7px;margin-top:4px;background:#dfe8d6;color:#315f43;border:1px solid #97a78888}
.sect-manual-levels{display:flex;align-items:center;gap:7px;margin:8px 0 0}
.sect-manual-levels i{display:block;width:10px;height:10px;border:1px solid #9b9275;border-radius:50%;background:#f4efe3}
.sect-manual-levels .is-reached{background:#3d6b51;border-color:#3d6b51;outline:1px solid #bba67580;outline-offset:2px}
.sect-manual-name .sect-lore{width:100%;margin:4px 0 0;border:0}
#hub-content .sect-manual-business .sect-manual-name .sect-lore summary{font:13px/1.7 var(--font-ui);min-height:26px;gap:8px;justify-content:flex-start;color:#52624f}
.sect-manual-name .sect-lore summary::after{margin:0;width:5px;height:5px;flex-basis:5px}
#hub-content .sect-manual-business .sect-manual-name .sect-lore p{font:13px/1.75 var(--font-ui);margin:4px 0 0;color:#52624f}
.sect-manual-effects{border-left:1px solid var(--sect-rule);padding-left:16px;min-width:0}
#hub-content .sect-manual-business .sect-manual-effect{font:15px/1.8 var(--font-ui);margin:3px 0;color:#465b48}
.sect-manual-effects .sect-manual-effect>span{font-size:12px;color:#52624f;margin-right:6px;min-width:54px}
#hub-content .sect-manual-business .sect-cost{font:13px/1.75 var(--font-ui);margin:8px 0 0;color:#52624f}
.sect-manual-business .sect-cost strong{font:20px/1.3 var(--font-display);color:#6c542d;white-space:nowrap;margin-left:5px}
#hub-content .sect-manual-business .sect-manual-lock{font-size:12px;line-height:1.7;color:#7c482f;margin:6px 0 0}
.sect-manual-business .sect-manual-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch;margin:0;min-width:132px}
#hub-content .sect-manual-business .sect-manual-actions .sect-button{min-width:132px;max-width:152px;padding:8px 10px;font-size:17px;min-height:48px;letter-spacing:0}
.sect-manual-actions .sect-complete{font-size:13px;line-height:1.7;min-height:44px;text-align:center;justify-content:center;color:#315f43}
.sect-manual-business .sect-old-manuals{margin-top:18px;border-top:1px solid var(--sect-rule)}
#hub-content .sect-manual-business .sect-old-manuals>summary{font:18px/1.5 var(--font-display);min-height:46px;color:#244d42}
#hub-content .sect-manual-business .sect-manual-row.is-foreign{grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#efebdd}
.sect-manual-row.is-foreign .sect-manual-actions{display:none}
/* Isolate each actual atlas cell in an SVG viewport: scaling cannot expose another NPC. */
#hub-content .sect-page svg.sect-portrait{display:block;overflow:hidden;flex:none;width:100%;height:auto;aspect-ratio:1;background:none;border:1px solid #b4a27a7d}
#hub-content .sect-page .sect-selection svg.sect-portrait{height:clamp(250px,calc(100dvh - 390px),520px);max-height:none;aspect-ratio:auto}
#hub-content .sect-page .sect-member-workspace svg.sect-portrait{height:clamp(250px,calc(100dvh - 430px),520px);max-height:none;aspect-ratio:auto}
#hub-content .sect-page :is(.sect-task-workspace,.sect-manual-workspace) svg.sect-portrait{height:clamp(300px,calc(100dvh - 330px),640px);max-height:none;aspect-ratio:auto}
@media(min-width:701px) and (max-height:800px){.sect-manual-business{padding:16px 22px}.sect-manual-business .sect-loadout{margin-bottom:12px;padding-block:6px}#hub-content .sect-manual-business .sect-manual-row{padding-block:12px;gap:16px}#hub-content .sect-page :is(.sect-task-workspace,.sect-manual-workspace) svg.sect-portrait{height:calc(100dvh - 300px);min-height:300px}}
@media(max-width:1100px) and (min-width:701px){
 .sect-manual-business{padding-inline:18px}.sect-manual-business .sect-loadout-slot{gap:8px;padding-inline:5px;grid-template-columns:40px minmax(0,1fr) auto}.sect-loadout-icon.cult-ui-icon{width:40px;height:40px;flex-basis:40px}.sect-manual-business .sect-loadout-slot+.sect-loadout-slot{padding-left:10px;margin-left:6px}.sect-manual-business .sect-loadout strong{font-size:17px}
 #hub-content .sect-manual-business .sect-manual-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}.sect-manual-identity{grid-column:1;grid-row:1}.sect-manual-effects{grid-column:1;grid-row:2;border-left:0;border-top:1px solid var(--sect-rule);padding:7px 0 0 82px}.sect-manual-business .sect-manual-actions{grid-column:2;grid-row:1/3;min-width:115px}#hub-content .sect-manual-business .sect-manual-actions .sect-button{min-width:115px;max-width:125px;font-size:16px}.sect-manual-business .sect-manual-emblem{width:64px;height:64px;flex-basis:64px}#hub-content .sect-manual-business .sect-manual-row.is-foreign{display:block}.is-foreign .sect-manual-effects{margin-top:8px}
}
@media(max-width:700px){
 .sect-manual-workspace{grid-template-columns:minmax(0,1fr)}.sect-manual-workspace>.sect-person{position:static}
 #hub-content .sect-page .sect-workspace svg.sect-portrait{width:112px;height:112px;min-height:0;max-height:none;aspect-ratio:1}
 .sect-manual-business{padding:18px 16px 20px}#hub-content .sect-manual-business>h3:first-child{font-size:26px;margin-bottom:6px}#hub-content .sect-manual-business .sect-loadout-note{font-size:13px;line-height:1.8;margin-bottom:12px}
 .sect-manual-business .sect-loadout{display:grid;grid-template-columns:1fr;padding:5px 10px;margin-bottom:14px}.sect-manual-business .sect-loadout-slot{padding:8px 0;gap:10px;grid-template-columns:43px minmax(0,1fr) auto}.sect-manual-business .sect-loadout-slot+.sect-loadout-slot{border-left:0;border-top:1px solid var(--sect-rule);padding:10px 0 6px;margin:0}
 .sect-loadout-icon.cult-ui-icon{width:43px;height:43px;flex-basis:43px}.sect-manual-business .sect-loadout strong{font-size:18px}.sect-manual-business .sect-loadout small{font-size:12px}#hub-content .sect-manual-business .sect-loadout .sect-button{min-height:40px;padding:6px 8px;font-size:13px}
 #hub-content .sect-manual-business .sect-manual-row{grid-template-columns:minmax(0,1fr);padding:14px 12px;gap:12px;margin-bottom:12px}
 .sect-manual-identity{gap:12px}.sect-manual-emblem.cult-ui-icon{width:58px;height:58px;flex-basis:58px}#hub-content .sect-manual-business .sect-manual-row h4{font-size:21px;letter-spacing:0}
 .sect-manual-effects{border-left:0;border-top:1px solid var(--sect-rule);padding:9px 0 0}#hub-content .sect-manual-business .sect-manual-effect{font-size:14px;line-height:1.8}
 .sect-manual-business .sect-manual-actions{flex-direction:row;flex-wrap:wrap;gap:8px;min-width:0}#hub-content .sect-manual-business .sect-manual-actions .sect-button{flex:1 1 100px;min-width:0;max-width:none;min-height:48px;font-size:17px;padding-inline:8px}
 #hub-content .sect-manual-business .sect-manual-row.is-foreign{grid-template-columns:minmax(0,1fr)}.sect-manual-row.is-foreign .sect-manual-actions{display:none}
 #hub-content .sect-manual-business .sect-old-manuals>summary{font-size:17px;min-height:44px}
}
@media(max-width:375px){.sect-manual-business{padding-inline:13px}.sect-manual-business .sect-loadout{padding-inline:8px}.sect-manual-business .sect-loadout-slot{gap:8px}#hub-content .sect-manual-business .sect-manual-row{padding-inline:10px}}
/* Keyboard focus sits outside the decorative inset frames, including active states. */
#hub-content .sect-page .sect-button:focus-visible,
#hub-content .sect-page[data-sect-view="choose"] .sect-choices .sect-button:focus-visible,
#hub-content .sect-member-nav .sect-tabs .sect-button:focus-visible,
#hub-content .sect-npc-switch .sect-button:focus-visible{outline:2px solid #88462f;outline-offset:3px;position:relative;z-index:1}

/* lore.css */
/* 山海旧闻: quiet reading inside the existing ivory and jade hall. */
#hub-panel:has(.lore-page){top:calc(80px + var(--safe-top,0px));padding-top:8px;scroll-padding-top:8px;scrollbar-color:#8b977e #eee9dc}
body:has(#hub-panel:not([hidden]) .lore-page) #masthead{top:0;left:0;right:0;height:calc(80px + var(--safe-top,0px));padding:calc(24px + var(--safe-top,0px)) 40px 12px;background:#f3eee2}
#hub-content[data-panel-page=lore]{max-width:1120px;padding:16px 32px 24px;background:#f6f0e3}
.lore-page{color:#304d43}.lore-page ::selection{background:#cbd8c3;color:#193e32}.lore-page button:focus-visible,.lore-reading h3:focus-visible{outline:2px solid #416e58;outline-offset:4px}
.lore-top{display:flex;justify-content:space-between;align-items:center;gap:16px;color:#5e6854;font-size:12px}.lore-top .back{padding:8px 0;font-size:14px;color:#365949}.lore-top .back{display:inline-flex;align-items:center;gap:8px}.lore-top .back svg{width:16px;height:16px;flex:none}
.lore-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:16px 0 24px;border-bottom:1px solid #b7ac903f}
#hub-content .lore-heading h2{font-size:36px;letter-spacing:4px;line-height:1.4}#hub-content .lore-heading p{margin-top:6px;color:#5e6854;font-size:13px;line-height:1.7}
.lore-tabs{display:flex;flex-shrink:0;gap:4px;border-bottom:1px solid #b7ac9066}.lore-tabs button{padding:8px 20px;border:0;border-bottom:2px solid transparent;background:transparent;color:#5e6854;font:16px var(--font-display);min-width:64px}.lore-tabs button[aria-pressed=true]{border-bottom-color:#315f4a;color:#214e3c;background:#e4e8d830}.lore-tabs button:hover{color:#214e3c;background:#e4e8d8}
.lore-book{display:grid;grid-template-columns:208px minmax(0,1fr);gap:36px;padding-top:24px;align-items:start}.lore-contents{display:grid;gap:4px;border-right:1px solid #b7ac904d;padding-right:20px}.lore-entry{display:block;width:100%;text-align:left;padding:12px;border:1px solid transparent;background:transparent;color:#4e6053;min-width:0}.lore-entry>span{display:block;font-size:12px;line-height:1.6;color:#5e6854}.lore-entry strong{display:block;font:18px/1.65 var(--font-display);font-weight:500;color:#304d43}.lore-entry small{display:block;margin-top:4px;font-size:12px;line-height:1.6;color:#5e6854}.lore-entry.is-active{border-color:#a9b59a;background:#e8ebdd}.lore-entry:hover{background:#e8ebdd}.lore-entry.is-locked strong{color:#5e6854}.lore-entry.is-locked>span::after{content:' · 未解锁'}
.lore-reading{min-width:0;padding:0 8px 0 0;max-width:44em}.lore-reading>header{padding:4px 0 24px}#hub-content .lore-reading h3{font-size:30px;line-height:1.5;letter-spacing:2px;outline-offset:6px}#hub-content .lore-subtitle{font-size:13px;line-height:1.8;color:#746d57;margin-top:8px}#hub-content .lore-prose p{font-family:var(--font-display);font-size:17px;line-height:2.1;letter-spacing:.025em;color:#344b3e;margin:0 0 1.15em;overflow-wrap:anywhere;text-wrap:pretty}.lore-prose p:last-child{margin-bottom:0}.lore-pagination{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #b7ac904d;padding-top:20px;margin-top:32px;align-items:center}.lore-pagination button{display:grid;gap:4px;text-align:left;color:#5e6854;font-size:12px;padding:6px 0;max-width:48%}.lore-pagination button:last-child{text-align:right}.lore-pagination button span{font-family:var(--font-display);font-size:16px;color:#31583f}.lore-page-end{font-size:12px;color:#5e6854}.lore-sealed{padding:28px 0 48px;color:#5e6854}#hub-content .lore-sealed p{font:19px/1.8 var(--font-display);color:#415941;margin-bottom:12px}.lore-sealed span{font-size:14px;line-height:1.8}
/* Small story hooks never replace combat information or transaction requirements. */
.journey-story{padding:12px 0;border-top:1px solid #b7ac904d;border-bottom:1px solid #b7ac904d;margin:12px 0;color:var(--ink)}.journey-story p{font-size:14px!important;line-height:1.8!important;color:#49604d!important;margin:0!important}.journey-story .back{font-size:13px;min-height:44px;padding:8px 0;color:#365949}
.character-lore{padding:12px 0;margin-top:12px;border-top:1px solid var(--line);max-width:62em}.character-lore summary,.sect-lore summary{min-height:44px;display:flex;align-items:center;font-size:14px;color:#365949;cursor:pointer;list-style:none}.character-lore summary::after,.sect-page .sect-lore summary::after{content:'';width:7px;height:7px;flex:0 0 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px}.character-lore[open] summary::after,.sect-page .sect-lore[open] summary::after{content:'';transform:rotate(225deg)}.character-lore p,.sect-lore p{font-size:14px!important;line-height:1.9!important;color:#52624e!important;margin:8px 0!important}.character-lore button{min-height:44px;font-size:14px;padding:8px 0}
.lore-result{padding:16px 0;margin:16px 0;border-top:1px solid #b7ac9055;border-bottom:1px solid #b7ac9055;text-align:left}.lore-result strong{font:19px/1.6 var(--font-display);color:var(--jade)}.lore-result p{font-size:14px;line-height:1.9;color:#435b49;margin:8px 0 0}.sect-lore{border-top:1px solid var(--line);margin-top:16px;padding-top:4px}.sect-task-origin{font-size:13px!important;line-height:1.8!important;color:#5b6b51!important;margin:8px 0!important}
@media(max-width:700px){
 #hub-panel:has(.lore-page){top:calc(64px + var(--safe-top,0px));padding-top:8px}
 body:has(#hub-panel:not([hidden]) .lore-page) #masthead{height:calc(64px + var(--safe-top,0px));padding:calc(16px + var(--safe-top,0px)) 16px 4px}
 #hub-content[data-panel-page=lore]{padding:8px 16px 20px}.lore-top{gap:8px}.lore-top>span{font-size:12px}.lore-top .back{font-size:14px}
 .lore-heading{display:block;padding:8px 0 0}#hub-content .lore-heading h2{font-size:28px;letter-spacing:3px}#hub-content .lore-heading p{font-size:12px;margin-top:4px}.lore-tabs{gap:16px;margin-top:12px;border:0}.lore-tabs button{padding:8px 16px;font-size:16px}
 .lore-book{display:block;padding-top:12px}.lore-contents{display:flex;overflow-x:auto;gap:8px;border-right:0;border-bottom:1px solid #b7ac904d;padding:0 0 12px;margin-bottom:16px;scrollbar-width:thin;scrollbar-color:#8b977e #eee9dc}.lore-entry{flex:0 0 136px;padding:8px;align-self:stretch}.lore-entry strong{font-size:16px;line-height:1.6}.lore-entry small{font-size:12px;line-height:1.5}.lore-entry>span{font-size:12px}
 .lore-reading{max-width:none;padding:0}.lore-reading>header{padding:0 0 16px}#hub-content .lore-reading h3{font-size:25px;letter-spacing:1px}#hub-content .lore-subtitle{margin-top:6px;font-size:12px}#hub-content .lore-prose p{font-size:16px;line-height:2;letter-spacing:.015em;margin-bottom:1em}.lore-pagination{margin-top:24px;padding-top:16px;gap:12px}.lore-pagination button span{font-size:14px}.lore-sealed{padding:16px 0 32px}.journey-story{padding:10px 0;margin:10px 0}.character-lore{padding:8px 0;margin-top:8px}
 #home .home-foot>div{display:flex;flex-wrap:wrap;gap:0}
}

.atlas-grid .atlas-lore{font-size:12px;line-height:1.8;color:#55614b;margin:10px 0 0;text-align:left}

/* cave.css */
/* 青竹洞府 · carved jade controls and a shared illustrated icon family. */
body:has(#hub-panel:not([hidden]) .cultivation-page) #masthead{display:none}
#hub-panel:has(.cultivation-page){inset:0;padding:0 0 var(--safe-bottom,0px);background:#eee9db;scroll-padding-top:62px;scrollbar-color:#87947a #eee9db}
#hub-content[data-panel-page=cave]{width:100%;max-width:none;margin:0;padding:0;outline:0;border:0;background:none}
#hub-content[data-panel-page=cave]::before,#hub-content[data-panel-page=cave]::after{display:none}
.cultivation-page{--cult-ink:#244d42;--cult-muted:#536452;--cult-rule:#a99b7466;--cult-brass:#a7966c;--cult-top:134px;--cult-tab-height:58px;color:var(--cult-ink);font:14px/1.7 var(--font-ui);min-height:100%;background:#f2ecde}
.cultivation-page ::selection{background:#c7d8c4;color:#173f33}
.cultivation-page button:focus-visible,.cultivation-page summary:focus-visible{outline:2px solid #34725c;outline-offset:3px}
.cultivation-page b,.cultivation-page strong,.cultivation-page progress{font-variant-numeric:tabular-nums}
.cult-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Optical centers are calibrated to the generated atlas; 280px windows exclude adjacent sprites. */
.cult-ui-icon{display:inline-block;width:34px;height:34px;flex:0 0 34px;background-image:url('assets/cave-ui-icons.png');background-size:447.857143% 447.857143%;background-repeat:no-repeat;vertical-align:middle}
.cult-ui-icon-home{background-position:4.620123% 4.055441%}
.cult-ui-icon-settings{background-position:34.907598% 4.055441%}
.cult-ui-icon-lotus{background-position:65.759754% 4.055441%}
.cult-ui-icon-elements{background-position:95.995893% 4.055441%}
.cult-ui-icon-furnace{background-position:4.466119% 34.702259%}
.cult-ui-icon-scroll{background-position:34.958932% 34.702259%}
.cult-ui-icon-collect{background-position:65.554415% 34.702259%}
.cult-ui-icon-ascend{background-position:96.303901% 34.702259%}
.cult-ui-icon-metal{background-position:3.901437% 65.041068%}
.cult-ui-icon-wood{background-position:34.650924% 65.041068%}
.cult-ui-icon-water{background-position:65.349076% 65.041068%}
.cult-ui-icon-fire{background-position:96.098563% 65.041068%}
.cult-ui-icon-earth{background-position:3.850103% 95.123203%}
.cult-ui-icon-qi{background-position:34.753593% 95.123203%}
.cult-ui-icon-jade{background-position:65.246407% 95.123203%}
.cult-ui-icon-pill{background-position:96.817248% 95.123203%}
#hub-content .cultivation-page .cult-button{position:relative;min-height:46px;display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:9px 20px;font:17px/1.45 var(--font-display);letter-spacing:1px;background:#f4efdf;border:1px solid var(--cult-brass);border-radius:2px;color:#284f42;box-shadow:inset 0 0 0 3px #faf6e9,inset 0 0 0 4px #b9a87a66;transition:background .16s,border-color .16s,transform .16s}
#hub-content .cultivation-page .cult-button:hover:not(:disabled){background:#e3ead8;border-color:#567760}
#hub-content .cultivation-page .cult-button:active:not(:disabled){transform:translateY(1px)}
#hub-content .cultivation-page .cult-button:disabled{color:#53614f;background:#dce0d3;border-color:#9da58a;opacity:1;cursor:not-allowed;box-shadow:inset 0 0 0 3px #e9ecdf,inset 0 0 0 4px #a4ac946b}
#hub-content .cultivation-page .cult-button:disabled .cult-ui-icon{filter:saturate(.35);opacity:.65}
#hub-content .cultivation-page .cult-primary{color:#f8edd3;background:#244e42;border-color:#ad9661;box-shadow:inset 0 0 0 3px #365e4c,inset 0 0 0 4px #b9a8748c}
#hub-content .cultivation-page .cult-primary:hover:not(:disabled){background:#316049;border-color:#b8a16c}
.cult-button-label{min-width:0}
#hub-content .cultivation-page .cult-wide{width:100%;min-height:52px;font-size:22px;letter-spacing:3px}
#hub-content .cultivation-page .cult-text-link{border:0;box-shadow:none;background:transparent;min-height:44px;padding:8px 0;font-size:13px;letter-spacing:0;text-decoration:underline;text-underline-offset:4px}
.cult-header{position:relative;display:grid;grid-template-columns:1fr auto 1fr 48px;align-items:center;gap:24px;padding:calc(12px + var(--safe-top,0px)) 26px 12px;min-height:76px;background:#f5efe1;border-bottom:1px solid #aa987066}
#hub-content .cult-header h2{font:32px/1.4 var(--font-display);letter-spacing:6px;white-space:nowrap}
#hub-content .cultivation-page .cult-back{justify-self:start;gap:8px;padding:5px 16px;min-height:46px;font-size:16px;letter-spacing:1px}
.cult-back .cult-ui-icon{width:34px;height:34px;flex-basis:34px}
.cult-header-wallet{display:flex;justify-content:flex-end;gap:18px;white-space:nowrap;color:#405b4d;font-size:13px}
.cult-header-wallet>span{display:flex;align-items:center;gap:5px}.cult-header-wallet>span+span{padding-left:18px;border-left:1px solid #b5a78080}
.cult-header-wallet .cult-ui-icon{width:31px;height:31px;flex-basis:31px}
.cult-header-wallet b{font:23px/1.4 var(--font-display);color:#244d42;font-variant-numeric:tabular-nums}
#hub-content .cultivation-page .cult-settings{width:48px;height:48px;min-height:48px;border:0;padding:0;background:transparent;box-shadow:none}
.cult-settings .cult-ui-icon{width:46px;height:46px;flex-basis:46px}
.cult-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(4,minmax(0,245px));justify-content:center;gap:4px;min-height:var(--cult-tab-height);padding:4px 24px;background:#eee8d8;border-bottom:1px solid #aa987066}
#hub-content .cultivation-page .cult-tabs .cult-button{min-height:50px;height:50px;padding:4px 16px;font-size:18px;letter-spacing:2px;border-color:#b8a77e;background:#f4efdf;box-shadow:inset 0 0 0 3px #f9f5e8,inset 0 0 0 4px #b9a87a45;gap:12px}
.cult-tabs .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
#hub-content .cultivation-page .cult-tabs .is-active:hover:not(:disabled){background:#315d49;border-color:#aa9460;color:#fff1d4}
#hub-content .cultivation-page .cult-tabs .is-active{color:#fff1d4;background:#254f43;border-color:#a38a53;box-shadow:inset 0 0 0 3px #365e4c,inset 0 0 0 4px #c4ae799c}
.cult-rest-layout{display:grid;grid-template-columns:minmax(0,55fr) minmax(450px,45fr);min-height:calc(100dvh - var(--cult-top));align-items:start}
.cult-scene{position:sticky;top:var(--cult-tab-height);isolation:isolate;min-width:0;height:calc(100dvh - var(--cult-top));min-height:520px;overflow:hidden;background:#667a61 url('assets/cave-sanctum.png') 50% 50%/cover}
#hub-content .cult-scene-plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;max-width:none}
#hub-content .cult-meditator{position:absolute;bottom:23%;left:50%;width:76%;height:54%;object-fit:contain;object-position:50% 100%;transform:translateX(-50%);filter:drop-shadow(0 10px 6px #1b332e30);animation:cult-breathe 8s ease-in-out infinite;transform-origin:50% 100%;max-width:none}
.cult-scene figcaption{position:absolute;left:24px;bottom:24px;color:#f8f1db;background:#25463aec;border:1px solid #ac9b6b;padding:10px 16px;max-width:calc(100% - 48px)}
.cult-scene figcaption>span{font:22px/1.4 var(--font-display);letter-spacing:3px}.cult-scene figcaption>small{display:block;font-size:12px;line-height:1.7;margin-top:4px;color:#e8e4c9}
.cult-water-shimmer{position:absolute;z-index:1;pointer-events:none;left:3%;right:3%;bottom:1%;height:12%;background:linear-gradient(110deg,transparent 25%,#fff7c50d 44%,#fff7c524 50%,#fff7c506 60%,transparent 77%);animation:cult-water 12s ease-in-out infinite}
.cult-ledger{position:relative;padding:20px 28px;margin:10px;background:#f6f0e2;border:1px solid #ad9b70;outline:1px solid #c1b08780;outline-offset:-6px;min-height:calc(100dvh - var(--cult-top) - 20px)}
.cult-ledger-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--cult-rule)}
#hub-content .cult-ledger-title h3{display:flex;align-items:center;gap:8px;font-size:29px;letter-spacing:3px;line-height:1.4;white-space:nowrap}
.cult-ledger-title .cult-ui-icon{width:42px;height:42px;flex-basis:42px}
#hub-content .cult-ledger-title p{font:12px/1.6 var(--font-ui);color:#53634e;white-space:nowrap}
#hub-content .cultivation-page h4{font:22px/1.5 var(--font-display);letter-spacing:2px}
.cult-idle{padding-top:12px}.cult-idle-number{display:grid;grid-template-columns:1fr auto;justify-content:center;align-items:baseline;column-gap:10px;max-width:220px;margin:4px auto 6px;text-align:center}
.cult-idle-number>span{grid-column:1/-1;font-size:12px;color:#52614b}.cult-idle-number>strong{font:46px/1.08 var(--font-display);text-align:right;color:#304e3c}.cult-idle-number>small{font-size:12px;text-align:left;color:#52614b}
.cultivation-page progress{width:100%;height:6px;display:block;border:0;border-radius:0;accent-color:#386752;background:#d8d5bf}
.cultivation-page progress::-webkit-progress-bar{background:#d8d5bf}.cultivation-page progress::-webkit-progress-value{background:#386752}.cultivation-page progress::-moz-progress-bar{background:#386752}
.cult-progress-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#53614d;margin-top:4px}
#hub-content .cultivation-page .cult-note{font-size:12px;line-height:1.8;color:#51624e;margin-top:6px;letter-spacing:0}
#hub-content .cultivation-page .cult-center{text-align:center}
#hub-content .cult-idle>.cult-button{margin-top:10px;min-height:50px;padding:6px 20px;background:#e8edde}
#hub-content .cultivation-page .cult-warning{color:#854535}
.cult-realm{padding-top:12px;margin-top:14px;border-top:1px solid var(--cult-rule)}
.cult-realm-path{display:flex;justify-content:space-between;list-style:none;padding:0 12px;margin:10px 0}
.cult-realm-path li{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;font:13px/1.5 var(--font-display);color:#58644f;gap:3px}
.cult-realm-path li::before{content:'';position:absolute;top:18px;left:-50%;width:100%;height:1px;background:#ad9b6b;z-index:0}.cult-realm-path li:first-child::before{display:none}
.cult-realm-node{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #b6a47a;background:#eee9d9;border-radius:50%;position:relative;z-index:1}
.cult-realm-node .cult-ui-icon{width:28px;height:28px;flex-basis:28px;opacity:.55;filter:saturate(.4)}
.cult-realm-path .is-reached .cult-realm-node{border-color:#83947a;background:#e2e8d8}.cult-realm-path .is-reached .cult-ui-icon{opacity:1;filter:none}
.cult-realm-path .is-current{color:#244f3f;font-weight:600}.cult-realm-path .is-current .cult-realm-node{background:#2d5746;border-color:#b49b64;box-shadow:inset 0 0 0 2px #52705a}
.cult-requirements{list-style:none;padding:0;margin:10px 0 8px;border-top:1px solid var(--cult-rule)}
.cult-requirements li{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:40px;border-bottom:1px solid var(--cult-rule);font-size:13px}
.cult-requirement-icon{width:28px;height:28px;flex-basis:28px}.cult-requirement-label{min-width:0}
.cult-requirement-status{display:flex;align-items:center;gap:7px;font-size:12px;color:#53624d;white-space:nowrap}.cult-requirements .is-met .cult-requirement-status{color:#315f46}
.cult-requirement-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid #aa9c74;border-radius:50%;background:#f5f0e3;flex:0 0 16px}.is-met .cult-requirement-mark{background:#365e4e;border-color:#365e4e;color:#f7eedb}
#hub-content .cult-requirement-mark svg{width:14px;height:14px;display:block;stroke-width:2;stroke:currentColor;fill:none}
#hub-content .cultivation-page .cult-pill-link{min-height:32px;padding:2px 10px;font-size:12px;letter-spacing:0;gap:4px}
.cult-pill-link .cult-ui-icon{width:23px;height:23px;flex-basis:23px}
#hub-content .cultivation-page .cult-break-button{margin-top:8px;min-height:54px;font-size:23px;padding:6px 18px}
.cult-break-button .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
.cult-complete{text-align:center;padding:24px 0;font:22px/1.8 var(--font-display)}
.cult-inventory{display:flex;align-items:center;justify-content:center;gap:34px;min-height:56px;padding:8px 24px;background:#eee9da;border-bottom:1px solid var(--cult-rule)}
.cult-inventory>div{display:grid;grid-template-columns:30px auto auto;gap:7px;align-items:center;color:#465e4d;font-size:12px}.cult-inventory dd{font:18px/1.4 var(--font-display);color:#244d42}
.cult-item-icon{display:block;width:36px;height:36px;flex:0 0 36px;background-image:url('assets/cultivation-items.png');background-size:300% 200%;background-repeat:no-repeat;background-position:0 0}
.cult-item-wood{background-position:0 0}.cult-item-iron{background-position:50% 0}.cult-item-herb{background-position:100% 0}.cult-item-foundation{background-position:0 100%}.cult-item-core{background-position:50% 100%}.cult-item-soul{background-position:100% 100%}
.cult-inventory .cult-item-icon{width:30px;height:30px}
.cult-work-layout{display:grid;grid-template-columns:minmax(240px,34fr) minmax(0,66fr);min-height:calc(100dvh - var(--cult-top) - 56px);align-items:start}
.cult-work-layout>.cult-scene{height:calc(100dvh - var(--cult-top) - 56px);min-height:500px}.cult-work-layout .cult-meditator{width:88%;height:49%;bottom:23%}
.cult-work-ledger{min-width:0;padding:24px 36px 32px;background:#f6f0e2}
.cult-work-heading{padding-bottom:12px;border-bottom:1px solid var(--cult-rule)}
#hub-content .cult-work-heading h3{font-size:30px;letter-spacing:4px;line-height:1.4}#hub-content .cult-work-heading p{font-size:13px;color:#50624e;margin-top:4px;line-height:1.8}
.cult-roots-layout{grid-template-columns:minmax(0,43fr) minmax(0,57fr);min-height:calc(100dvh - var(--cult-top))}
.cult-roots-layout>.cult-scene{height:calc(100dvh - var(--cult-top));min-height:520px}
.cult-roots-layout .cult-meditator{width:90%;height:55%}
.cult-roots-layout>.cult-work-ledger{margin:9px;padding:14px 26px 18px;border:1px solid #ad9b70;outline:1px solid #c1b08780;outline-offset:-6px;min-height:calc(100dvh - var(--cult-top) - 18px)}
.cult-roots-layout .cult-inventory{min-height:44px;padding:0 0 10px;gap:32px;background:transparent;margin-bottom:14px!important}
.cult-root-selector{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:14px;padding-block:8px;border-block:1px solid var(--cult-rule)}
#hub-content .cultivation-page .cult-root-choice{display:flex;flex-direction:column;padding:8px 4px 6px;gap:3px;background:transparent;border:1px solid transparent;box-shadow:none;min-width:0;letter-spacing:0;border-radius:1px}
#hub-content .cultivation-page .cult-root-choice:hover{background:#e9eada;border-color:#afac84}
#hub-content .cultivation-page .cult-root-choice.is-selected{background:#e3e9d9;border-color:#9b9268;box-shadow:inset 0 0 0 3px #f0f1e5,inset 0 0 0 4px #b2a27369}
.cult-root-medallion{display:flex;justify-content:center;align-items:center}.cult-root-medallion .cult-ui-icon{width:76px;height:76px;flex-basis:76px}
.cult-root-choice strong{font:17px/1.5 var(--font-display);font-weight:500;white-space:nowrap}.cult-root-level{font:13px/1.4 var(--font-ui);color:#475b4c}
.cult-root-badge{display:block;min-height:22px;min-width:68px;font:12px/22px var(--font-ui);letter-spacing:1px;color:#eae6cb;background:transparent}
.is-main .cult-root-badge{background:#365e4b;border:1px solid #ad9a64;color:#faf0d8}
.cult-root-detail{padding-top:16px}.cult-root-summary{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:18px}
.cult-root-detail-icon{display:flex;align-items:center;justify-content:center}.cult-root-detail-icon .cult-ui-icon{width:118px;height:118px;flex-basis:118px}
.cult-root-summary-copy{min-width:0}.cult-detail-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.cult-detail-title>span{font-size:12px;color:#48604d}
#hub-content .cult-detail-title h4{font-size:24px}.cult-detail-title h4 small{font-size:14px;color:#51624e;letter-spacing:0;margin-left:7px}
.cult-current-root{padding:2px 9px;border:1px solid #a79662;background:#365e4b;color:#f9efd9!important;white-space:nowrap}
.cult-effect{margin-top:8px!important}.cult-effect>div{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;padding:5px 0;border-bottom:1px solid var(--cult-rule);align-items:baseline;font-size:14px;line-height:1.7}.cult-effect dt{font-size:12px;color:#50624e}.cult-effect dd{color:#295840}
.cult-subheading{font:16px/1.5 var(--font-display);font-weight:500;margin:14px 0 8px;letter-spacing:1px}
.cult-costs{display:flex;gap:10px 22px;flex-wrap:wrap;list-style:none;padding:0;margin:8px 0 14px}
.cult-costs li{display:flex;align-items:center;gap:6px;font-size:12px;color:#465b47}.cult-costs b{font-size:14px;font-weight:500;color:#85432f}.cult-costs .is-met b{color:#315f43}.cult-costs .cult-item-icon,.cult-costs .cult-ui-icon{width:30px;height:30px;flex-basis:30px}
.cult-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:12px}
.cult-root-detail>.cult-actions{display:grid;grid-template-columns:1fr 1fr}
#hub-content .cult-root-detail>.cult-actions>.cult-button{min-width:0;min-height:50px;font-size:18px;letter-spacing:1px;padding:5px 12px}
.cult-root-reason{text-align:center;color:#7e4433!important}
#hub-content .cultivation-page .cult-save-note{padding-top:8px;margin-top:8px;border-top:1px solid var(--cult-rule);text-align:center}
/* Daily activities retain their existing elemental labels. */
.cult-element{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #908461;border-radius:50%;font:26px/1 var(--font-display);color:#76613b;background:#ede5ce;flex-shrink:0}
.cult-element-wood{color:#3d6846;background:#e0e7d1;border-color:#889673}.cult-element-water{color:#3c6370;background:#dfe7e4;border-color:#859c9e}.cult-element-fire{color:#8a4c39;background:#ede0d3;border-color:#ae8a6d}.cult-element-earth{color:#796342;background:#e6deca;border-color:#a59a78}
.cult-energy{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-top:20px}.cult-energy-item>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:13px}.cult-energy-item b{font-size:16px;color:#31593f;font-weight:500}.cult-energy progress{margin-top:8px;height:5px}.cult-energy small{display:block;margin-top:6px;font-size:12px;line-height:1.5;color:#5a684e;font-variant-numeric:tabular-nums}
#hub-content .cultivation-page .cult-energy-note{margin-top:12px}
.cult-facility-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:22px;border-block:1px solid var(--cult-rule)}
#hub-content .cultivation-page .cult-facility-selector .cult-button{display:flex;flex-direction:column;gap:4px;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;padding:12px 8px;letter-spacing:1px}
#hub-content .cultivation-page .cult-facility-selector .is-active{background:#e4e9da;border-bottom-color:#4e785a}.cult-facility-selector strong{font:18px/1.5 var(--font-display);font-weight:500}.cult-facility-selector small{font:12px/1.5 var(--font-ui);letter-spacing:0;color:#59684f}
.cult-facility{padding-top:22px}#hub-content .cult-facility .cult-detail-title h4{font-size:23px}.cult-facility-empty{padding:4px 0 14px}
.cult-production-job{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:14px 0 0;padding:14px 16px;background:#e4e9d9;border:1px solid #9caf89}.cult-production-job strong{font-size:15px;font-weight:500}.cult-production-job p{font-size:13px;line-height:1.7;color:#406245}.cult-production-job .cult-button{flex-shrink:0}
.cult-recipe{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;padding:20px 0;border-bottom:1px solid var(--cult-rule)}
.cult-recipe>.cult-item-icon{width:52px;height:52px;flex-basis:52px}.cult-recipe h5{font:18px/1.5 var(--font-display);font-weight:500;letter-spacing:1px;margin:0 0 3px}.cult-recipe-copy>p{font-size:13px;color:#375c42;line-height:1.7}.cult-recipe-copy>p span{color:#5c694d}.cult-recipe .cult-button{padding:10px 14px!important;min-width:96px;font-size:14px!important;letter-spacing:1px!important}
#hub-content .cultivation-page .cult-recipe-copy .cult-note{font-size:12px;margin-top:4px}.cult-recipe-reason:empty{display:none}
.cultivation-page details>summary{min-height:48px;display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;font-size:14px;color:#365a40}
.cultivation-page details>summary::after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:auto;margin-right:4px;flex:0 0 7px}.cultivation-page details[open]>summary::after{transform:rotate(225deg)}
.cultivation-page details>summary>span{font-size:12px;color:#687251}.cult-facility-upgrade{padding-top:8px}.cult-facility-upgrade>.cult-actions{margin-top:12px}.cult-facility-upgrade .cult-actions>.cult-note{flex:1;margin-top:0!important}
.cult-pill-store{border-top:1px solid var(--cult-rule);margin-top:16px}.cult-pill-store dl{display:flex;gap:24px;flex-wrap:wrap}.cult-pill-store dl>div{display:grid;grid-template-columns:36px auto auto;align-items:center;gap:6px;font-size:12px}.cult-pill-store dd{font-size:16px}
.cult-activity-title{display:flex;align-items:center;gap:20px;padding:24px 0}.cult-activity-title .cult-element{width:60px;height:60px;font-size:34px}
#hub-content .cult-activity-title h4{font-size:25px}.cult-activity-description{font-size:14px;line-height:1.9;color:#496247;max-width:48em}
.cult-daily-reward{margin:24px 0;padding:20px 0;border-block:1px solid var(--cult-rule)}#hub-content .cult-daily-reward h4{font-size:20px}
.cult-daily-reward ul{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;padding:0;margin:16px 0 0}.cult-daily-reward li{display:flex;align-items:center;gap:8px;font-size:13px}.cult-daily-reward b{font-weight:500;color:#365e42;font-size:15px}
.cult-sources{margin-top:32px;padding-top:24px;border-top:1px solid var(--cult-rule)}#hub-content .cult-sources h4{font-size:22px}.cult-sources dl{padding-top:12px}.cult-sources dl>div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;font-size:13px;line-height:1.8;padding:8px 0}.cult-sources dt{font-weight:500;color:#31593f}.cult-sources dd{color:#5a674f}
#hub-content .cult-feedback{position:relative;padding:12px 24px;background:#efe1d2;color:#7c4434;font-size:13px;border-bottom:1px solid #b998795c}

@keyframes cult-breathe{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.009)}}
@keyframes cult-water{0%,100%{opacity:.25;transform:translateX(-3%)}50%{opacity:.8;transform:translateX(3%)}}
@media(min-width:701px) and (max-height:800px){
 .cult-ledger{padding:14px 24px}.cult-idle-number>strong{font-size:40px}.cult-idle{padding-top:8px}
 #hub-content .cult-ledger-title h3{font-size:27px}.cult-ledger-title .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
 #hub-content .cult-idle>.cult-button{min-height:46px;margin-top:8px}.cult-realm{padding-top:10px;margin-top:10px}.cult-realm-path{margin-block:8px}
 .cult-requirements li{min-height:36px}#hub-content .cultivation-page .cult-break-button{min-height:48px;font-size:21px}
 .cult-root-medallion .cult-ui-icon{width:65px;height:65px;flex-basis:65px}.cult-root-choice strong{font-size:16px}
 .cult-roots-layout>.cult-work-ledger{padding:12px 22px 14px}.cult-roots-layout .cult-inventory{margin-bottom:10px!important}.cult-root-selector{margin-top:10px;padding-block:4px}
 .cult-root-detail{padding-top:12px}.cult-root-summary{grid-template-columns:94px minmax(0,1fr);gap:14px}.cult-root-detail-icon .cult-ui-icon{width:100px;height:100px;flex-basis:100px}.cult-subheading{margin-top:10px}.cult-root-detail .cult-actions{margin-top:10px}
}
@media(max-width:1100px) and (min-width:701px){
 .cult-header{padding-inline:18px;gap:14px}.cult-header-wallet{gap:10px}.cult-header-wallet>span+span{padding-left:10px}.cult-header-wallet .cult-ui-icon{width:27px;height:27px;flex-basis:27px}.cult-header-wallet b{font-size:20px}
 .cult-rest-layout{grid-template-columns:minmax(0,46fr) minmax(420px,54fr)}.cult-ledger{padding-inline:22px}.cult-ledger-title{align-items:start}.cult-ledger-title p{display:none}
 .cult-roots-layout{grid-template-columns:minmax(0,33fr) minmax(0,67fr)}.cult-roots-layout>.cult-work-ledger{padding-inline:20px}.cult-work-ledger{padding:24px}
 #hub-content .cult-header h2{font-size:28px;letter-spacing:4px}.cult-root-medallion .cult-ui-icon{width:65px;height:65px;flex-basis:65px}
}
@media(max-width:900px) and (min-width:701px){.cult-roots-layout{grid-template-columns:1fr}.cult-roots-layout>.cult-scene{display:none}.cult-roots-layout>.cult-work-ledger{margin:12px 24px}.cult-header-wallet .cult-wallet-label{display:none}.cult-header-wallet b{font-size:19px}.cult-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.cult-work-layout:not(.cult-roots-layout){grid-template-columns:1fr}.cult-work-layout:not(.cult-roots-layout)>.cult-scene{display:none}}
@media(max-width:700px){
 .cultivation-page{--cult-top:154px;--cult-tab-height:62px}
 #hub-panel:has(.cultivation-page){scroll-padding-top:64px}
 .cult-header{grid-template-columns:1fr auto 44px;gap:6px 12px;padding:8px 12px;min-height:92px}
 #hub-content .cult-header h2{font-size:23px;letter-spacing:3px;grid-column:2;grid-row:1}
 #hub-content .cultivation-page .cult-back{font-size:13px;grid-column:1;grid-row:1;letter-spacing:0;gap:3px;padding:3px 8px;min-height:44px}
 .cult-back .cult-ui-icon{width:25px;height:25px;flex-basis:25px}
 #hub-content .cultivation-page .cult-settings{grid-column:3;grid-row:1;width:44px;height:44px;min-height:44px}.cult-settings .cult-ui-icon{width:42px;height:42px;flex-basis:42px}
 .cult-header-wallet{grid-column:1/-1;justify-content:center;gap:18px;font-size:12px}.cult-header-wallet b{font-size:19px}.cult-header-wallet .cult-ui-icon{width:25px;height:25px;flex-basis:25px}.cult-header-wallet>span+span{padding-left:18px}
 .cult-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:4px 8px;min-height:62px}
 #hub-content .cultivation-page .cult-tabs .cult-button{height:54px;min-height:54px;font-size:13px;letter-spacing:0;padding:4px 2px;gap:0;flex-direction:column}
 .cult-tabs .cult-ui-icon{width:28px;height:28px;flex-basis:28px}.cult-tab-label{line-height:18px}
 .cult-rest-layout{display:block;min-height:0}.cult-scene{position:relative;top:auto;min-height:0;height:270px;background-position:50% 52%}
 #hub-content .cult-scene-plate{object-position:50% 52%}#hub-content .cult-rest-layout .cult-meditator{width:72%;height:63%;bottom:23%}
 .cult-scene figcaption{left:12px;bottom:12px;padding:7px 10px;max-width:calc(100% - 24px)}.cult-scene figcaption>span{font-size:17px}.cult-scene figcaption>small{font-size:11px;margin-top:1px}
 .cult-ledger{padding:18px 20px 22px;margin:10px;min-height:0}.cult-ledger-title{gap:6px}.cult-ledger-title .cult-ui-icon{width:34px;height:34px;flex-basis:34px}
 #hub-content .cult-ledger-title h3{font-size:25px;letter-spacing:2px}#hub-content .cult-ledger-title p{font-size:11px;white-space:normal;text-align:right;max-width:7em}
 .cult-idle{padding-top:16px}.cult-idle-number{margin:10px auto}.cult-idle-number>strong{font-size:48px}
 #hub-content .cultivation-page h4{font-size:21px}#hub-content .cultivation-page .cult-wide{font-size:20px;min-height:52px;letter-spacing:2px}
 .cult-realm{padding-top:18px;margin-top:20px}.cult-realm-path{padding-inline:0;margin-block:14px 12px}.cult-requirements li{min-height:48px;gap:7px;font-size:12px;grid-template-columns:24px minmax(0,1fr) auto}.cult-requirement-icon{width:24px;height:24px;flex-basis:24px}
 .cult-requirement-status{font-size:11px;gap:4px}.cult-requirement-mark{width:14px;height:14px;flex-basis:14px}#hub-content .cultivation-page .cult-pill-link{padding-inline:6px;font-size:12px}.cult-pill-link .cult-ui-icon{display:none}
 .cult-inventory{gap:20px;min-height:50px;padding:7px 12px}.cult-inventory>div{grid-template-columns:25px auto auto;gap:4px;font-size:12px}.cult-inventory dd{font-size:16px}.cult-inventory .cult-item-icon{width:25px;height:25px}
 .cult-work-layout{display:block;min-height:0}.cult-work-layout>.cult-scene,.cult-roots-layout>.cult-scene{min-height:0;height:136px;background-position:50% 45%}.cult-work-layout .cult-scene-plate{object-position:50% 45%}.cult-work-layout .cult-meditator,.cult-roots-layout .cult-meditator{height:150%;width:55%;bottom:-24%;left:70%}.cult-work-layout .cult-scene figcaption{bottom:12px;left:12px}.cult-work-layout .cult-scene figcaption>small{max-width:9em}
 .cult-work-ledger{padding:22px 18px 28px}.cult-roots-layout>.cult-work-ledger{margin:9px;padding:12px 13px 20px;min-height:0}.cult-roots-layout .cult-inventory{gap:16px;padding-bottom:10px;min-height:40px;margin-bottom:12px!important}
 #hub-content .cult-work-heading h3{font-size:27px;letter-spacing:3px}#hub-content .cult-work-heading p{font-size:12px}.cult-work-heading{padding-bottom:12px}
 .cult-root-selector{gap:1px;margin-top:12px;padding-block:6px}#hub-content .cultivation-page .cult-root-choice{padding:7px 1px 5px;gap:3px}
 .cult-root-medallion .cult-ui-icon{width:51px;height:51px;flex-basis:51px}.cult-root-choice strong{font-size:13px}.cult-root-level{font-size:12px}.cult-root-badge{min-width:46px;min-height:20px;line-height:20px;font-size:11px;letter-spacing:0}
 .cult-root-detail{padding-top:16px}.cult-root-summary{grid-template-columns:74px minmax(0,1fr);gap:10px}.cult-root-detail-icon .cult-ui-icon{width:78px;height:78px;flex-basis:78px}
 #hub-content .cult-detail-title h4{font-size:22px}.cult-detail-title{gap:4px}.cult-detail-title>span{font-size:11px}.cult-current-root{padding:1px 6px}.cult-effect{margin-top:8px!important}.cult-effect>div{grid-template-columns:58px minmax(0,1fr);gap:6px;font-size:13px;padding:7px 0}.cult-effect dt{font-size:11px}
 .cult-subheading{margin-top:18px}.cult-costs{gap:8px 14px;margin:8px 0 14px}.cult-costs li{font-size:12px;gap:4px}.cult-costs b{font-size:13px}
 .cult-actions{gap:9px}.cult-root-detail>.cult-actions{gap:8px}#hub-content .cult-root-detail>.cult-actions>.cult-button{padding:6px 8px;font-size:15px;letter-spacing:0;min-height:48px}.cult-root-detail>.cult-actions .cult-ui-icon{width:26px;height:26px;flex-basis:26px}
 .cult-energy{gap:20px;padding-top:18px}.cult-energy-item>div{font-size:12px}.cult-energy-item b{font-size:15px}.cult-energy small{font-size:11px}.cult-facility-selector{margin-top:20px}.cult-facility-selector strong{font-size:16px}.cult-facility-selector small{font-size:11px}.cult-facility{padding-top:18px}
 .cult-recipe{grid-template-columns:42px minmax(0,1fr);gap:8px 12px;padding:18px 0}.cult-recipe>.cult-item-icon{width:42px;height:42px;grid-row:1;align-self:start}.cult-recipe-copy{min-width:0}.cult-recipe h5{font-size:17px}.cult-recipe .cult-button{grid-column:2;justify-self:start;min-width:120px;font-size:14px!important}.cult-recipe-copy>p{font-size:12px}
 .cult-production-job{gap:12px;padding:12px}.cult-production-job>.cult-button{padding:6px 10px!important;font-size:14px!important;letter-spacing:0!important}.cult-production-job strong{font-size:14px}.cult-production-job p{font-size:12px}.cult-facility-upgrade .cult-actions>.cult-note{flex:1 1 160px}.cult-pill-store dl{gap:12px 20px}
 .cult-activity-title{gap:16px;padding:22px 0}.cult-activity-title .cult-element{width:54px;height:54px;font-size:30px}#hub-content .cult-activity-title h4{font-size:23px}.cult-activity-description{font-size:13px}.cult-daily-reward{margin:20px 0;padding:18px 0}.cult-daily-reward ul{gap:12px 20px}.cult-daily-reward li{font-size:12px}.cult-sources{margin-top:26px;padding-top:20px}.cult-sources dl>div{grid-template-columns:72px minmax(0,1fr);font-size:12px}
}
@media(max-width:370px){.cult-header{gap:6px 8px;padding-inline:8px}#hub-content .cult-header h2{font-size:21px;letter-spacing:1px}#hub-content .cultivation-page .cult-back{padding-inline:5px}.cult-root-medallion .cult-ui-icon{width:44px;height:44px;flex-basis:44px}.cult-roots-layout>.cult-work-ledger{padding-inline:10px}.cult-costs{gap:8px 11px}.cult-ledger{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){.cultivation-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.cultivation-page[data-reduced-motion=true] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Separate face, breath and loose cloth motion is rendered in the portrait rig. */
#hub-content img.cult-meditator[data-meditation-motion]:not([data-meditation-motion="fallback"]){animation:none}
#hub-content canvas.meditation-motion-canvas{animation:none;transform:translateX(-50%);pointer-events:none}
#hub-content img.meditation-motion-source{opacity:0}

/* Jade is part of the same inventory ledger as production materials. */
.cult-inventory{flex-wrap:wrap;column-gap:28px;row-gap:8px}
.cult-inventory>div{min-width:0}
.cult-inventory dd{white-space:nowrap}
.cult-inventory .cult-ui-icon{width:30px;height:30px;flex-basis:30px}
.cult-roots-layout .cult-inventory{column-gap:20px;row-gap:8px}
@media(max-width:700px){
 .cult-inventory,.cult-roots-layout .cult-inventory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;justify-items:center}
 .cult-inventory .cult-ui-icon{width:25px;height:25px;flex-basis:25px}
 .cult-inventory dd{font-size:14px}
}
@media(max-width:370px){
 .cult-inventory>div{grid-template-columns:25px auto;gap:2px 4px}
 .cult-inventory dd{grid-column:1/-1;text-align:center}
}

/* V54: parallel lanes, prepaid batches, and independent alchemy study. */
.cult-lane-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:18px}
#hub-content .cultivation-page .cult-lane-summary{display:flex;min-width:0;min-height:65px;flex-direction:column;justify-content:center;gap:3px;padding:7px 4px;background:#ecebdc;border-color:#b7b18b;box-shadow:none;letter-spacing:0}
.cult-lane-summary strong{font:16px/1.5 var(--font-display);font-weight:500}.cult-lane-summary small{font:11px/1.5 var(--font-ui);color:#526448;white-space:normal}
#hub-content .cultivation-page .cult-lane-summary.is-ready{background:#dae6cf;border-color:#648958}
.cult-production-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:16px}
.cult-batch-picker{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.cult-batch-picker>span{font-size:12px;margin-right:5px;color:#4b614b}
#hub-content .cult-batch-picker .cult-button{min-width:43px;min-height:40px;padding:5px 8px;font-size:13px;letter-spacing:0;box-shadow:none}
#hub-content .cult-batch-picker .is-active{background:#365e4b;border-color:#365e4b;color:#f8f0d6}
#hub-content .cult-production-toolbar>.cult-button{font-size:13px;min-height:40px;padding:5px 10px;letter-spacing:0}
.cult-lane-detail+.cult-lane-detail{margin-top:18px}.cult-lane-detail>.cult-subheading{padding-bottom:8px;border-bottom:1px solid var(--cult-rule);color:#345e43}
.cult-lane-detail .cult-production-job{margin-top:10px}.cult-production-job>div{min-width:0}.cult-production-job strong,.cult-production-job p{overflow-wrap:anywhere}
.cult-recipe>.cult-study-icon{width:52px;height:52px;flex-basis:52px}
.cult-alchemy-training{padding:16px;margin:18px 0 8px;border:1px solid #b7ad80;background:#e9ead7}
#hub-content .cult-alchemy-training h4{font-size:20px}.cult-alchemy-mastery{font-size:13px;color:#456047;margin-top:10px!important}.cult-alchemy-mastery b{font-size:23px;font-weight:500;color:#305c43;font-variant-numeric:tabular-nums}
.cult-alchemy-training .cult-costs{margin-block:12px}.cult-alchemy-training .cult-note{line-height:1.8}.cult-alchemy-training>.cult-note:last-child{margin-top:12px!important;border-top:1px solid var(--cult-rule);padding-top:10px}
@media(max-width:1100px) and (min-width:701px){.cult-lane-overview{gap:4px}.cult-lane-summary small{font-size:10px}}
@media(max-width:700px){
 .cult-lane-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.cult-lane-summary strong{font-size:15px}.cult-lane-summary small{font-size:11px}
 #hub-content .cultivation-page .cult-lane-summary{min-height:60px;padding:6px}.cult-production-toolbar{align-items:flex-start;gap:10px}.cult-batch-picker{gap:4px}.cult-batch-picker>span{margin-right:3px}
 .cult-recipe>.cult-study-icon{width:42px;height:42px;grid-row:1;align-self:start}.cult-alchemy-training{padding:12px;margin-top:16px}.cult-alchemy-training .cult-detail-title{align-items:flex-start;flex-direction:column}.cult-alchemy-training .cult-actions{align-items:stretch;flex-direction:column}
 .cult-lane-detail+.cult-lane-detail{margin-top:22px}.cult-lane-detail .cult-recipe{padding-top:14px}
}

/* V55 body cultivation extends the cave's paper, jade, and brass ledger. */
.cult-tabs{grid-template-columns:repeat(5,minmax(0,210px))}
.cult-stamina-layout{grid-template-columns:minmax(0,35fr) minmax(0,65fr);min-height:calc(100dvh - var(--cult-top))}
.cult-stamina-layout>.cult-scene{height:calc(100dvh - var(--cult-top));min-height:660px;position:sticky;top:var(--cult-tab-height)}
.cult-stamina-layout .cult-meditator{width:96%;height:60%;bottom:14%}
.cult-stamina-ledger{padding:24px clamp(20px,3vw,42px) 28px}
.cult-stamina-ledger h4{font:21px/1.45 var(--font-display);letter-spacing:1px}
.cult-stamina-status{padding:18px 0 16px;border-bottom:1px solid var(--cult-rule)}
.cult-stamina-status>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.cult-stamina-status h4{display:flex;align-items:baseline;gap:14px}
.cult-stamina-status h4 b{font:24px/1.4 var(--font-ui);letter-spacing:0}
.cult-stamina-status>div>span{font-size:13px;color:var(--cult-muted)}
.cult-stamina-ledger progress{appearance:none;display:block;width:100%;height:9px;margin:11px 0 7px;border:0;border-radius:2px;overflow:hidden;background:#d9d8c5;accent-color:#436f5c}
.cult-stamina-ledger progress::-webkit-progress-bar{background:#d9d8c5;border-radius:2px}
.cult-stamina-ledger progress::-webkit-progress-value{background:#436f5c;border-radius:2px}
.cult-stamina-ledger progress::-moz-progress-bar{background:#436f5c;border-radius:2px}
.cult-body-path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:24px 0 20px;padding:0;list-style:none}
.cult-body-path li{position:relative;display:grid;justify-items:center;gap:2px;color:#67705b;min-width:0;font-size:16px;line-height:1.6}
.cult-body-path li::before{content:'';position:absolute;height:1px;top:14px;width:100%;right:50%;background:#b5aa83}
.cult-body-path li:first-child::before{display:none}
.cult-body-path i{position:relative;display:flex;align-items:center;justify-content:center;width:29px;height:29px;margin-bottom:5px;border:1px solid #a89e7c;background:#eee8d8;border-radius:50%}
.cult-body-path i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.cult-body-path b{font:13px/1.4 var(--font-ui)}
.cult-body-path .is-reached{color:#244d42}
.cult-body-path .is-reached i{color:#f8edd3;background:#315d49;border-color:#8d835d}
.cult-body-path .is-current i{outline:2px solid #a69564;outline-offset:3px}
.cult-body-path .is-current span{font-weight:700}
.cult-body-training{padding:0 0 20px;border-bottom:1px solid var(--cult-rule)}
.cult-body-upgrade{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin:14px 0 9px}
.cult-body-upgrade>div:last-child{text-align:right}
.cult-body-upgrade progress{max-width:300px}
.cult-body-cost{margin-bottom:8px;color:var(--cult-muted);font-size:13px}
.cult-body-reason{margin-bottom:6px}
.cult-body-complete{font-family:var(--font-display);font-size:19px}
.cult-stamina-pills{padding:19px 0;border-bottom:1px solid var(--cult-rule)}
.cult-stamina-pill-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:13px;align-items:center}
.cult-stamina-pill-icon{width:46px;height:46px;flex-basis:46px}
.cult-stamina-pill-row h4 small{margin-left:12px;font:13px/1.5 var(--font-ui);letter-spacing:0;color:var(--cult-muted)}
.cult-stamina-pill-row p{font-size:13px;margin-top:3px}
.cult-stamina-confirm{margin-top:16px;padding:15px 18px;background:#e8e2cf;border:1px solid #a89970}
.cult-stamina-confirm h5{font:18px/1.5 var(--font-display);margin-bottom:6px}
.cult-stamina-confirm p{font-size:14px;color:#52492f}
.cult-stamina-confirm .cult-actions{justify-content:flex-end;margin-top:12px}
.cult-supply-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--cult-rule)}
.cult-supply-row h4{font-size:19px}
.cult-supply-row p{font-size:13px;color:var(--cult-muted);margin-top:2px}
.cult-supply-row small{display:block;font-size:12px;color:#536452;margin-top:3px}
#hub-content .cult-supply-row .cult-button{min-width:142px;font-size:15px;padding-inline:13px;letter-spacing:0}
.cult-stamina-footer{padding-top:14px}
.cult-activity-cost{margin:16px 0 8px;text-align:center;color:#31533d;font-size:14px}
#home .home-stamina-strip{display:grid;grid-template-columns:auto minmax(70px,160px) minmax(0,1fr) auto;align-items:center;gap:12px;width:min(1180px,92%);margin:0 auto;padding:8px 0;border-bottom:1px solid #a99b7455;color:#244d42;font:13px/1.5 var(--font-ui)}
#home .home-stamina-strip>div{display:flex;gap:8px;align-items:baseline;white-space:nowrap}
#home .home-stamina-strip b{font-variant-numeric:tabular-nums}
#home .home-stamina-strip progress{appearance:none;width:100%;height:6px;border:0;border-radius:2px;background:#d9d8c5;accent-color:#436f5c}
#home .home-stamina-strip progress::-webkit-progress-bar{background:#d9d8c5;border-radius:2px}
#home .home-stamina-strip progress::-webkit-progress-value{background:#436f5c;border-radius:2px}
#home .home-stamina-strip progress::-moz-progress-bar{background:#436f5c}
#home .home-stamina-strip small{font-size:12px;color:#536452}
#home .home-stamina-strip button{min-height:40px;padding:6px 16px;border:1px solid #8c9a7c;border-radius:3px;background:#e5e9db;color:#244d42;font:14px/1.4 var(--font-ui)}
#home .home-stamina-strip button:hover{background:#d9e1cf}
#home .home-stamina-strip button:focus-visible{outline:2px solid #34725c;outline-offset:3px}
#home .home-stamina-strip[data-low=true] b{color:#78452b}
#home .home-entry-cost{display:block;font:12px/1.5 var(--font-ui);color:#536452;letter-spacing:0}
#home #home-challenge{flex-wrap:wrap}
#home #home-challenge .home-entry-cost{flex-basis:100%;text-align:center}
.journey-stamina{padding:15px 0 13px;border-top:1px solid #a99b7466;color:#244d42}
.journey-stamina>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px;font-size:13px}
.journey-stamina b{font-size:18px;font-variant-numeric:tabular-nums}
.journey-stamina>div>span:last-child{margin-left:auto;font-size:12px}
.journey-stamina p{font-size:12px;line-height:1.7;margin-top:6px;color:#536452}
@media(max-width:1100px) and (min-width:701px){.cult-stamina-layout{grid-template-columns:minmax(0,29fr) minmax(0,71fr)}.cult-stamina-ledger{padding-inline:22px}}
@media(max-width:900px) and (min-width:701px){.cult-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.cult-stamina-layout{grid-template-columns:1fr}}
@media(max-width:700px){
 .cult-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}
 .cult-stamina-layout>.cult-scene{position:relative;top:auto;min-height:0;height:136px}
 .cult-stamina-layout .cult-meditator{height:150%;width:55%;bottom:-24%;left:70%}
 .cult-stamina-ledger{padding:20px 16px 25px}
 #hub-content .cult-stamina-ledger .cult-work-heading h3{font-size:25px;letter-spacing:2px}
 .cult-stamina-status h4{gap:9px;font-size:19px}.cult-stamina-status h4 b{font-size:21px}.cult-stamina-status>div>span{font-size:12px}
 .cult-body-path{margin:22px 0}.cult-body-path li{font-size:14px}.cult-body-path b{font-size:12px}
 .cult-body-upgrade{grid-template-columns:1fr;gap:12px}.cult-body-upgrade>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}.cult-body-cost{margin:0}.cult-body-upgrade progress{max-width:none}
 .cult-stamina-pill-row{grid-template-columns:38px minmax(0,1fr);gap:10px}.cult-stamina-pill-icon{width:38px;height:38px;flex-basis:38px}.cult-stamina-pill-row>.cult-button{grid-column:2;justify-self:start;min-width:142px}
 .cult-stamina-pill-row h4 small{display:block;margin-left:0;margin-top:4px}.cult-stamina-pill-row p{font-size:12px}
 .cult-supply-row{grid-template-columns:30px minmax(0,1fr);gap:7px 11px;padding-block:16px}.cult-supply-row>.cult-ui-icon{width:30px;height:30px;flex-basis:30px;align-self:start}
 #hub-content .cult-supply-row .cult-button{grid-column:2;justify-self:start;margin-top:4px;min-width:142px}
 .cult-supply-row p{font-size:12px}.cult-supply-row small{font-size:12px}
 .cult-stamina-confirm{padding:13px}.cult-stamina-confirm .cult-actions{display:grid;grid-template-columns:1fr;gap:8px}.cult-stamina-confirm .cult-actions .cult-button{width:100%;font-size:15px;letter-spacing:0}
 #home .home-stamina-strip{width:calc(100% - 32px);grid-template-columns:auto minmax(55px,1fr) auto;gap:5px 10px;padding:9px 0}
 #home .home-stamina-strip>small{grid-column:1/3;grid-row:2;font-size:11px}#home .home-stamina-strip button{grid-column:3;grid-row:1/3;min-height:44px;padding-inline:14px}
}

/* quests.css */
/* 问道手札 · the illustrated ledger shares the cave's carved jade controls. */
body:has(#hub-panel:not([hidden]) .quest-page) #masthead{display:none}
#hub-panel:has(.quest-page){inset:0;padding:0 0 var(--safe-bottom,0px);background:#eee9db;scrollbar-color:#87947a #eee9db;scroll-padding-top:16px}
#hub-content[data-panel-page=tasks]{width:100%;max-width:none;padding:0;margin:0;border:0;outline:0;background:none}
#hub-content[data-panel-page=tasks]::before,#hub-content[data-panel-page=tasks]::after{display:none}
.quest-page{color:#244d42;background:#f2ecde;font:14px/1.7 var(--font-ui);min-height:100dvh;--quest-rule:#aa98705c;--quest-brass:#a7966c}
.quest-page ::selection{background:#c7d8c4;color:#173f33}
.quest-page b,.quest-page progress{font-variant-numeric:tabular-nums}
#hub-content .quest-page .quest-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:8px 20px;background:#f4efdf;color:#284f42;border:1px solid var(--quest-brass);border-radius:2px;box-shadow:inset 0 0 0 3px #faf6e9,inset 0 0 0 4px #b9a87a66;font:17px/1.45 var(--font-display);letter-spacing:1px;transition:background .16s,border-color .16s,transform .16s}
#hub-content .quest-page .quest-button:hover{background:#e3ead8;border-color:#567760}
#hub-content .quest-page .quest-button:active{transform:translateY(1px)}
#hub-content .quest-page .quest-primary{background:#244e42;color:#f8edd3;border-color:#ad9661;box-shadow:inset 0 0 0 3px #365e4c,inset 0 0 0 4px #b9a8748c}
#hub-content .quest-page .quest-primary:hover{background:#316049}
#hub-content .quest-page button:focus-visible{outline:2px solid #34725c;outline-offset:3px}
.quest-header{display:grid;grid-template-columns:1fr auto 1fr 48px;align-items:center;gap:24px;padding:calc(12px + var(--safe-top,0px)) 26px 12px;min-height:76px;border-bottom:1px solid var(--quest-rule);background:#f5efe1}
#hub-content .quest-header h2{font:32px/1.4 var(--font-display);letter-spacing:6px;white-space:nowrap}
#hub-content .quest-page .quest-back{justify-self:start;padding:5px 16px;font-size:16px}
#hub-content .quest-page .quest-settings{padding:0;width:46px;height:46px;border:0;box-shadow:none;background:transparent}
.quest-settings .cult-ui-icon{width:46px;height:46px;flex-basis:46px}
.quest-wallet{display:flex;justify-content:flex-end;gap:18px;white-space:nowrap;font-size:13px;color:#405b4d}
.quest-wallet>span{display:flex;align-items:center;gap:5px}
.quest-wallet>span+span{padding-left:18px;border-left:1px solid var(--quest-rule)}
.quest-wallet b{font:23px/1.4 var(--font-display);font-variant-numeric:tabular-nums;font-weight:500}
.quest-wallet .cult-ui-icon{width:30px;height:30px;flex-basis:30px}
.quest-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;padding:14px;min-height:calc(100dvh - 76px)}
.quest-index,.quest-manuscript{border:1px solid var(--quest-brass);outline:1px solid #c1b08780;outline-offset:-6px;background:#f6f0e2;min-width:0}
.quest-index{padding:22px 16px;align-self:stretch}
.quest-book{text-align:center;padding:8px 10px 24px;border-bottom:1px solid var(--quest-rule)}
.quest-book>.cult-ui-icon{width:112px;height:112px;display:block;margin:0 auto 12px}
#hub-content .quest-book h3{font:25px/1.5 var(--font-display);letter-spacing:3px;margin:0}
#hub-content .quest-book p{font-size:15px;margin:8px 0 14px;color:#47634e}
.quest-book b{font-weight:500}
.quest-page progress{appearance:none;display:block;width:100%;height:6px;overflow:hidden;border:0;background:#d4d4be;border-radius:1px}
.quest-page progress::-webkit-progress-bar{background:#d4d4be}
.quest-page progress::-webkit-progress-value{background:#4c7b61}
.quest-page progress::-moz-progress-bar{background:#4c7b61}
.quest-categories{display:grid;gap:8px;padding-top:20px}
#hub-content .quest-page .quest-category{display:grid;grid-template-columns:36px 1fr auto 12px;gap:8px;align-items:center;text-align:left;min-height:68px;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:2px;box-shadow:none;color:#315548;font:18px/1.4 var(--font-display);letter-spacing:1px}
.quest-category .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
.quest-category b{font-size:19px;font-weight:500;letter-spacing:0}
.quest-chevron{width:12px;height:12px}
#hub-content .quest-page .quest-category:hover{background:#e5eadb;border-color:#a6a57e}
#hub-content .quest-page .quest-category.is-active{background:#244e42;color:#f8edd3;border-color:#ad9661;box-shadow:inset 0 0 0 3px #365e4c,inset 0 0 0 4px #b9a8748c}
.quest-manuscript{padding:22px 28px 18px}
.quest-list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--quest-rule)}
#hub-content .quest-list-heading h3{font:29px/1.4 var(--font-display);letter-spacing:2px;white-space:nowrap;margin:0}
#hub-content .quest-list-heading p{font-size:13px;color:#536452;margin:0;line-height:1.7;max-width:26em;text-align:right}
.quest-entry{display:grid;grid-template-columns:78px minmax(0,1fr) 202px 118px;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--quest-rule)}
.quest-emblem .cult-ui-icon{display:block;width:78px;height:78px;flex-basis:78px}
.quest-entry-copy{min-width:0}
#hub-content .quest-entry h4{font:23px/1.4 var(--font-display);letter-spacing:1px;margin:0 0 6px}
#hub-content .quest-entry-copy p{font-size:13px;line-height:1.7;margin:0;color:#4e6550}
.quest-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin-top:10px}
.quest-progress>span{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#4e6550}
.quest-entry-rewards{border-left:1px solid var(--quest-rule);padding-left:20px}
.quest-entry-rewards>span{font-size:12px;color:#536452}
.quest-entry-rewards>div{display:flex;gap:8px 16px;flex-wrap:wrap;margin-top:8px}
.quest-entry-rewards>div>span{display:flex;gap:3px;align-items:center;font-size:12px;white-space:nowrap}
.quest-entry-rewards b{font-size:14px;font-weight:500}
.quest-entry-rewards .cult-ui-icon{width:27px;height:27px;flex-basis:27px}
#hub-content .quest-page .quest-entry-action .quest-button{width:100%;padding-inline:8px;min-height:48px;font-size:19px}
.quest-collected{display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px;color:#42664c;white-space:nowrap}
.quest-collected svg{width:22px;height:22px}
.quest-empty-state{text-align:center;padding:70px 18px 60px;color:#42664c}
.quest-empty-state>.cult-ui-icon{width:80px;height:80px;margin-bottom:12px}
#hub-content .quest-empty-state h4{font:24px/1.5 var(--font-display);letter-spacing:2px;margin:0 0 8px}
#hub-content .quest-empty-state p{font-size:14px;margin:0 0 22px;line-height:1.8}
#hub-content .quest-save-note{font-size:12px;margin:18px 0 0;color:#536452;text-align:center}
@media(max-width:1200px) and (min-width:701px){
 .quest-layout{grid-template-columns:206px minmax(0,1fr)}.quest-manuscript{padding-inline:22px}.quest-entry{grid-template-columns:62px minmax(0,1fr) 118px;gap:12px;padding-block:18px}.quest-emblem .cult-ui-icon{width:62px;height:62px}.quest-entry-rewards{grid-column:2;border:0;padding:0;grid-row:2}.quest-entry-rewards>span{display:none}.quest-entry-rewards>div{margin-top:0}.quest-entry-action{grid-column:3;grid-row:1/3}.quest-entry-copy{align-self:end}.quest-emblem{grid-row:1/3}.quest-header{gap:14px;padding-inline:18px}.quest-wallet{gap:10px}.quest-wallet>span+span{padding-left:10px}.quest-wallet b{font-size:20px}.quest-wallet .cult-ui-icon{width:25px;height:25px;flex-basis:25px}.quest-list-heading{align-items:start}.quest-list-heading p{max-width:20em}
}
@media(max-width:900px) and (min-width:701px){.quest-wallet>span>span{display:none}.quest-layout{grid-template-columns:180px minmax(0,1fr);gap:10px;padding:10px}.quest-index{padding-inline:10px}.quest-list-heading{display:block}.quest-list-heading p{text-align:left;margin-top:6px}.quest-entry{grid-template-columns:48px minmax(0,1fr) 90px}.quest-emblem .cult-ui-icon{width:48px;height:48px}.quest-manuscript{padding:20px}#hub-content .quest-entry h4{font-size:21px}}
@media(max-width:700px){
 .quest-header{grid-template-columns:1fr auto 44px;gap:6px 8px;padding:8px 12px;min-height:92px}#hub-content .quest-header h2{font-size:23px;letter-spacing:3px;grid-column:2;grid-row:1}#hub-content .quest-page .quest-back{font-size:13px;letter-spacing:0;padding:3px 5px;grid-column:1;grid-row:1;min-height:44px}.quest-back .cult-ui-icon{width:25px;height:25px;flex-basis:25px}#hub-content .quest-page .quest-settings{width:44px;height:44px;grid-column:3;grid-row:1}.quest-settings .cult-ui-icon{width:42px;height:42px;flex-basis:42px}.quest-wallet{grid-column:1/-1;justify-content:center;gap:18px;font-size:12px}.quest-wallet b{font-size:19px}.quest-wallet .cult-ui-icon{width:25px;height:25px;flex-basis:25px}.quest-wallet>span+span{padding-left:18px}
 .quest-layout{display:block;padding:10px;min-height:0}.quest-index{padding:10px;margin-bottom:10px}.quest-book{display:flex;align-items:center;justify-content:center;gap:10px;padding:2px 4px 10px}.quest-book>.cult-ui-icon{width:48px;height:48px;flex-basis:48px;margin:0}#hub-content .quest-book h3{font-size:19px;letter-spacing:1px}#hub-content .quest-book p{font-size:12px;margin:0}.quest-book>progress{display:none}.quest-categories{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding-top:8px}#hub-content .quest-page .quest-category{display:flex;gap:3px;justify-content:center;min-height:48px;font-size:13px;letter-spacing:0;padding:4px}.quest-category .cult-ui-icon{width:25px;height:25px;flex-basis:25px}.quest-category b{font-size:14px}.quest-chevron{display:none}.quest-manuscript{padding:18px 16px}.quest-list-heading{display:block;padding-bottom:12px}#hub-content .quest-list-heading h3{font-size:25px;letter-spacing:2px}#hub-content .quest-list-heading p{text-align:left;font-size:12px;margin-top:5px}
 .quest-entry{grid-template-columns:48px minmax(0,1fr);gap:9px 12px;padding:18px 0}.quest-emblem{grid-column:1;grid-row:1;align-self:start}.quest-emblem .cult-ui-icon{width:48px;height:48px}.quest-entry-copy{grid-column:2;grid-row:1}#hub-content .quest-entry h4{font-size:21px}#hub-content .quest-entry-copy p{font-size:12px}.quest-progress{gap:10px;margin-top:8px}.quest-progress>span{font-size:12px}.quest-entry-rewards{grid-column:2;border:0;padding:0}.quest-entry-rewards>span{display:none}.quest-entry-rewards>div{margin:0;gap:6px 12px}.quest-entry-rewards>div>span{font-size:11px}.quest-entry-rewards .cult-ui-icon{width:24px;height:24px;flex-basis:24px}.quest-entry-rewards b{font-size:13px}.quest-entry-action{grid-column:2;justify-self:start;width:140px}#hub-content .quest-page .quest-entry-action .quest-button{min-height:44px;font-size:16px}.quest-collected{justify-content:start;min-height:44px}.quest-empty-state{padding:35px 8px 30px}#hub-content .quest-save-note{font-size:11px;line-height:1.8;margin-top:14px}
}
@media(prefers-reduced-motion:reduce){.quest-page *{transition:none!important;scroll-behavior:auto!important}}
body.motion-reduced .quest-page *{transition:none!important;scroll-behavior:auto!important}

/* journey.css */
/* 山海道途 · illustrated chapters, readable decisions, one departure action. */
body:has(#levels:not([hidden])) #masthead{display:none}
#levels.journey-screen{padding:0 0 calc(14px + var(--safe-bottom));background:#f2ecdf;color:#244d42;scroll-padding-top:82px}
#levels button{opacity:1}
#levels button:focus-visible,#levels summary:focus-visible{outline:2px solid #39745e;outline-offset:3px}
#levels .journey-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:8px 16px;border:1px solid #aa9569;border-radius:2px;box-shadow:inset 0 0 0 3px #fbf6e9,inset 0 0 0 4px #baa87b60;background:#f5f0e3;color:#294f43;font:16px/1.5 var(--font-display);letter-spacing:1px;transition:background .16s,border-color .16s}
#levels .journey-button:hover:not(:disabled){background:#e4eadb;border-color:#647d61}
#levels .journey-button:disabled{background:#dce1d4;border-color:#9ba58c;color:#53634f;box-shadow:inset 0 0 0 3px #eaeddf,inset 0 0 0 4px #b0b69c88;cursor:not-allowed}
#levels .journey-button:disabled .cult-ui-icon{filter:saturate(.3);opacity:.7}
#levels .journey-primary{background:#244e42;color:#fcf0d5;border-color:#ac9660;box-shadow:inset 0 0 0 3px #385f4c,inset 0 0 0 4px #c3ad77aa}
#levels .journey-primary:hover:not(:disabled){background:#315f4b;color:#fcf0d5;border-color:#bba26b}
.journey-header{display:grid;grid-template-columns:1fr auto 1fr auto;gap:18px;align-items:center;min-height:76px;padding:calc(12px + var(--safe-top)) 24px 12px;border-bottom:1px solid #ac9a6c88;background:#f6f0e3}
#levels .journey-header h2{font:32px/1.4 var(--font-display);letter-spacing:5px;white-space:nowrap}
#levels .journey-home{justify-self:start;font-size:16px}
#levels .journey-character{font-size:14px;letter-spacing:0}
.journey-character svg{width:23px;height:23px}
.journey-wallet{display:flex;justify-content:flex-end;gap:16px;font-variant-numeric:tabular-nums}
.journey-wallet>span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.journey-wallet>span+span{padding-left:16px;border-left:1px solid #b1a07b80}
.journey-wallet .cult-ui-icon{width:30px;height:30px;flex-basis:30px}
.journey-wallet small{font-size:12px;color:#476150}.journey-wallet b{font:22px/1.4 var(--font-display);font-variant-numeric:tabular-nums}
.journey-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 24px;background:#eee9d9;border-bottom:1px solid #a9976d77;min-height:68px}
.journey-difficulty{display:flex;align-items:center;gap:18px;white-space:nowrap}.journey-difficulty>span{font:17px/1.5 var(--font-display)}
#levels #difficulty{display:flex;gap:3px;margin:0}
#levels #difficulty button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:122px;padding:7px 14px;border:1px solid #b3a278;border-radius:2px;background:#f5f0e3;color:#47604e;font:16px/1.5 var(--font-display)}
#levels #difficulty button small{font:11px/1.4 var(--font-ui);color:inherit}
#levels #difficulty .selected{background:#244e42;border-color:#a48c57;box-shadow:inset 0 0 0 3px #365d49,inset 0 0 0 4px #c0a97088;color:#fcf0d5}
#levels #difficulty button:hover:not(.selected){background:#e4e9d8;color:#244e42}
#levels #traveler{font-size:13px;color:#47604f;line-height:1.6;text-align:right;margin:0;max-width:47ch}
#levels .journey-atlas{display:grid;grid-template-columns:235px minmax(0,1fr) 340px;gap:18px;align-items:stretch;margin:0;padding:18px 24px 0}
#levels .journey-detail{display:contents}
#levels .journey-surface{min-width:0;border:1px solid #ad9b70;background:#f7f1e5;box-shadow:inset 0 0 0 4px #f2ecdf,inset 0 0 0 5px #baa98466}
#levels .journey-section-title{font:24px/1.5 var(--font-display);letter-spacing:2px;margin:0 0 14px;padding-bottom:9px;border-bottom:1px solid #a99b7460;color:#254b3d}
#levels .journey-nodes{position:relative;display:flex;flex-direction:column;gap:10px;padding:18px 13px;min-height:calc(100dvh - 232px);margin:0}
#levels .journey-nodes:before{display:none}
#levels .journey-nodes .journey-section-title{text-align:center;margin-bottom:2px}
#levels .chapter-node{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 10px;gap:8px;align-items:center;min-height:138px;padding:9px 7px;text-align:left;border:1px solid #b4a17b;border-radius:2px;background:#f5efe1;color:#345544}
#levels .chapter-node>.journey-small-icon{width:12px;height:20px}
#levels .chapter-node:before{display:none}
#levels .chapter-node:hover{background:#e8ecdd;border-color:#7b9274}
#levels .chapter-node.is-current,#levels .chapter-node.is-current:hover{background:#244e42;color:#fcf0d5;border-color:#ac945b;box-shadow:inset 0 0 0 3px #39604c,inset 0 0 0 4px #cab17b88}
.node-art{display:block;position:relative;height:114px;overflow:hidden;border:1px solid #c4b28b;border-radius:1px}.node-art img{width:100%;height:100%;object-fit:cover;display:block}
.node-lock{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);width:30px;height:34px;display:grid;place-items:center;color:#fff4d9;background:#345348dd;border:1px solid #c9b682;border-radius:2px;font-style:normal}
#levels .node-lock .journey-small-icon{width:23px;height:23px}
#levels .chapter-node.is-locked .node-art img{filter:saturate(.45)}
.node-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
#levels .chapter-node .node-number{font:20px/1.2 var(--font-display);color:#75613c;opacity:1;align-self:auto}
#levels .chapter-node strong{font:22px/1.35 var(--font-display);letter-spacing:1px}
#levels .chapter-node small{font-size:11px;color:#50634e;line-height:1.5}
#levels .chapter-node.is-current .node-number,#levels .chapter-node.is-current small{color:#eddfb9}
#levels .chapter-node .node-stars{display:flex;align-items:center;gap:3px;color:#8c713d;line-height:1;letter-spacing:0}
.node-stars>span{display:inline-flex}.node-stars .journey-small-icon{width:17px;height:17px;stroke-width:1.5;fill:none}.node-stars .is-earned .journey-small-icon{fill:#b79957;color:#82683a}
#levels .chapter-node.is-current .node-stars{color:#ead8a9}#levels .chapter-node.is-current .node-stars .is-earned .journey-small-icon{fill:#d7b869;color:#f1deac}
.journey-small-icon{width:22px;height:22px;display:inline-block;vertical-align:middle;flex-shrink:0;stroke-width:1.7}
#levels .journey-center{padding:9px 16px 14px}
#levels .journey-preview{position:relative;display:block;min-height:0;padding:0;margin:0;background:none;border:0;overflow:visible}
#levels .journey-preview:before{display:none}
#levels .journey-preview>img{display:block;width:100%;height:clamp(210px,28vh,292px);object-fit:cover;border:1px solid #b9a77c;border-radius:1px}
#levels .journey-preview:after{display:none}
#levels .chapter-seal{position:absolute;left:12px;right:auto;top:12px;padding:4px 9px;border:1px solid #c6b486;background:#f4efdedb;color:#3c5e4c;font-size:12px;writing-mode:initial}
#levels .journey-preview figcaption{position:static;padding:12px 0 8px;text-align:center;background:none;color:#254b3d}
#levels .journey-preview h3{font:29px/1.4 var(--font-display);letter-spacing:3px;margin:0}
#levels .journey-preview p{font-size:12px;line-height:1.6;color:#51644e;letter-spacing:0;margin:4px 0 0}
#levels .journey-story{display:flex;align-items:center;gap:14px;margin:4px 0 16px;padding:0;border:0;background:none}
#levels .journey-story p{min-width:0;flex:1;font-size:13px;line-height:1.8;color:#385647;margin:0}
#levels .journey-read{flex-shrink:0;padding:6px 9px;font-size:13px;letter-spacing:0;gap:5px;min-height:46px}
.journey-read .cult-ui-icon{width:29px;height:29px;flex-basis:29px}.journey-read .journey-small-icon{width:16px;height:16px}
#levels .chapter-facts{display:grid;grid-template-columns:1.25fr 1.35fr 1fr 1fr 1fr;gap:0;margin:0;padding:11px 0;border-block:1px solid #a99b7470;align-items:stretch;color:#385647;font-size:12px}
.chapter-facts>div{display:grid;grid-template-columns:1fr;justify-items:center;align-content:start;gap:3px;padding:0 4px;text-align:center;min-width:0}.chapter-facts>div+div{border-left:1px solid #b6a68055}
#levels .chapter-facts .journey-fact-icon{display:block;width:32px;height:32px;flex-basis:32px;object-fit:contain;margin-bottom:3px}
.chapter-facts dt{font-size:11px;color:#586751}.chapter-facts dd{font:15px/1.45 var(--font-display);margin:0;color:#315344;white-space:nowrap}
#levels .journey-rules{margin-top:9px;padding-top:0;border-top:0}
#levels .journey-rules summary{display:flex;align-items:center;min-height:44px;font-size:12px;color:#48634e;list-style:none}
#levels .journey-rules summary:after{content:'';margin-left:auto;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-right:3px}
#levels .journey-rules[open] summary:after{transform:rotate(225deg)}
#levels .journey-rules p{font-size:13px;line-height:1.8;color:#48604e;margin:5px 0}.journey-rules .route-note{min-height:0}
#levels .journey-content{display:flex;flex-direction:column;gap:0;padding:18px 16px 15px;min-width:0}
#levels .route-choices{display:grid;grid-template-columns:1fr;gap:9px;margin:0 0 17px}
#levels .route-choice{display:grid;grid-template-columns:67px minmax(0,1fr) 22px;gap:10px;align-items:center;min-height:76px;padding:7px 10px 7px 7px;border:1px solid #aa9770;border-radius:2px;background:#f4efdf;color:#345444;text-align:left}
#levels .route-choice:hover{background:#e6eadb;border-color:#72876b}
#levels .route-choice[aria-pressed=true],#levels .route-choice[aria-pressed=true]:hover{background:#244e42;color:#fcf0d5;border-color:#ac945b;box-shadow:inset 0 0 0 3px #3b634e,inset 0 0 0 4px #bfa77388}
.route-art{display:block;align-self:stretch;background-position:center;background-size:cover;border:1px solid #b3a172}.route-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
#levels .route-copy{color:inherit}
#levels .route-choice strong{font:23px/1.4 var(--font-display);margin:0;letter-spacing:1px;color:inherit}
#levels .route-copy>span{font-size:12px;color:#50634e;line-height:1.5}
#levels .route-choice[aria-pressed=true] .route-copy>span{color:#eddfb9}
.route-radio{display:block;width:21px;height:21px;border:1px solid #917e58;border-radius:50%;position:relative;background:transparent}
.route-choice[aria-pressed=true] .route-radio{border-color:#ead9aa}.route-choice[aria-pressed=true] .route-radio:after{content:'';position:absolute;inset:4px;border-radius:50%;background:#f3e9ca}
#levels .journey-reward-title{font-size:23px;margin-bottom:12px}
#levels .journey-rewards{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0;margin:0 0 13px;border:0;font-size:14px}
.journey-rewards>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 8px;border:1px solid #bcae8d;background:#f4efdf;min-width:0}
#levels .journey-rewards .cult-ui-icon{width:44px;height:44px;flex-basis:44px}
.journey-rewards>div>span{display:flex;flex-direction:column;gap:1px;font-size:12px;color:#4b634f;min-width:0}
#levels .journey-rewards b{display:block;font:24px/1.4 var(--font-display);color:#244d42;margin:0;font-variant-numeric:tabular-nums}
#levels .journey-materials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;font-size:12px;line-height:1.5;color:#41604c;margin:0 0 12px}
.journey-material{display:flex;align-items:center;justify-content:center;gap:3px;min-height:54px;padding:5px 3px;border:1px solid #b8a88466}.journey-material .cult-item-icon{width:30px;height:30px;flex-basis:30px}
.journey-material>span{display:flex;flex-direction:column;gap:1px}.journey-material b{font:17px/1.4 var(--font-display);font-variant-numeric:tabular-nums;color:#2c5141}
.journey-first-pill{display:flex;align-items:center;gap:12px;justify-content:center;min-height:55px;padding:6px 8px;border:1px solid #b8a47a;background:#eee7d3;color:#395745;font-size:14px}
.journey-first-pill .cult-item-icon{width:39px;height:39px;flex-basis:39px}.journey-first-pill b{font-weight:500;font-variant-numeric:tabular-nums}
.journey-repeat-note{display:flex;justify-content:center;align-items:center;min-height:47px;color:#55664e;font-size:12px;border-block:1px solid #b8a78450;padding:6px 0;margin:0}
.journey-reward-note{font-size:11px;line-height:1.65;color:#56674f;text-align:center;margin:10px 0 12px;min-height:20px}
#levels .journey-departure{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:0;margin-top:auto}
#levels .journey-departure .journey-primary{order:0;width:100%;min-height:58px;font-size:23px;letter-spacing:2px;padding:8px 12px;gap:12px}
.journey-departure .cult-ui-icon{width:41px;height:41px;flex-basis:41px}
#levels .journey-departure small{order:1;text-align:center;font-size:12px;line-height:1.5;color:#47614e}
#levels .selection-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:12px 24px 0;padding:0}
#levels .selection-footer>p{font-size:12px;color:#5b6950;margin:0;max-width:none}
#levels .journey-titles{font-size:14px;min-height:46px;padding:5px 12px;letter-spacing:0}
.journey-titles .cult-ui-icon{width:29px;height:29px;flex-basis:29px}
@media(min-width:901px) and (max-height:800px){
 #levels .journey-atlas{padding-top:13px;gap:14px}
 #levels .journey-surface{min-height:0}
 #levels .chapter-node{min-height:125px}.node-art{height:101px}
 #levels .journey-preview>img{height:198px}
 #levels .journey-section-title{font-size:22px;margin-bottom:8px;padding-bottom:6px}
 #levels .journey-story{margin-bottom:12px;gap:9px}#levels .journey-story p{font-size:12px}
 #levels .chapter-facts{padding:9px 0}.chapter-facts dd{font-size:14px}
 #levels .journey-content{padding:15px 14px 12px}
 #levels .route-choices{margin-bottom:10px;gap:6px}#levels .route-choice{min-height:64px}
 #levels .journey-rewards{margin-bottom:10px}.journey-rewards>div{padding:7px}
 #levels .journey-reward-note{margin:7px 0 9px}.journey-materials{margin-bottom:9px!important}
 #levels .journey-departure .journey-primary{min-height:55px;font-size:22px}
 #levels .journey-departure .cult-ui-icon{width:36px;height:36px;flex-basis:36px}
 #levels .selection-footer{margin-top:10px}
}
@media(max-width:1180px) and (min-width:901px){
 #levels .journey-atlas{grid-template-columns:198px minmax(0,1fr) 300px;gap:13px;padding-inline:18px}
 #levels .journey-header{gap:12px;padding-inline:18px}#levels .journey-header h2{font-size:29px}
 #levels .journey-character{font-size:12px;padding-inline:11px}.journey-wallet{gap:10px}.journey-wallet>span+span{padding-left:10px}.journey-wallet small{display:none}
 #levels .chapter-node{grid-template-columns:57px minmax(0,1fr) 9px;gap:7px;padding-inline:6px}#levels .chapter-node strong{font-size:20px}#levels .chapter-node small{font-size:10px}
 #levels .journey-nodes{padding-inline:10px}#levels .journey-center{padding-inline:12px}
 #levels .journey-story{display:block}#levels .journey-read{display:flex;margin:8px 0 0 auto}
 #levels .journey-content{padding-inline:12px}#levels .route-choice{grid-template-columns:52px minmax(0,1fr) 18px;gap:7px}#levels .route-choice strong{font-size:21px}.route-radio{width:18px;height:18px}
 #levels .journey-rewards .cult-ui-icon{width:37px;height:37px;flex-basis:37px}#levels .journey-materials{gap:3px}.journey-material .cult-item-icon{width:25px;height:25px;flex-basis:25px}.journey-material{font-size:11px}
 .journey-difficulty{gap:11px}#levels #difficulty button{min-width:100px;padding-inline:9px}#levels #difficulty button small{display:none}
 #levels #traveler{max-width:43ch;font-size:12px}
 #levels .chapter-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 0}.chapter-facts>div:nth-child(4){border-left:0}
}
@media(max-width:900px){
 #levels.journey-screen{padding-bottom:calc(16px + var(--safe-bottom));scroll-padding-top:70px}
 .journey-header{grid-template-columns:1fr auto auto;gap:7px 10px;min-height:100px;padding:9px 12px}
 #levels .journey-header h2{grid-row:1;grid-column:2;font-size:26px;letter-spacing:3px}
 #levels .journey-home{grid-row:1;grid-column:1;padding:4px 8px;font-size:13px;gap:5px;letter-spacing:0}.journey-home .cult-ui-icon{width:26px;height:26px;flex-basis:26px}
 #levels .journey-character{grid-row:1;grid-column:3;width:44px;height:44px;padding:8px;border:1px solid #aa9569}#levels .journey-character>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .journey-wallet{grid-row:2;grid-column:1/-1;justify-content:center;gap:18px}.journey-wallet small{font-size:11px}.journey-wallet b{font-size:19px}.journey-wallet .cult-ui-icon{width:25px;height:25px;flex-basis:25px}
 .journey-toolbar{display:block;min-height:0;padding:10px 12px}.journey-difficulty{gap:10px;display:block}.journey-difficulty>span{display:none}
 #levels #difficulty{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}#levels #difficulty button{min-width:0;min-height:46px;padding:5px 3px;font-size:16px;gap:4px;letter-spacing:0}#levels #difficulty button small{font-size:10px}
 #levels #traveler{max-width:none;text-align:center;font-size:11px;margin-top:7px;line-height:1.5}
 #levels .journey-atlas{display:flex;flex-direction:column;gap:10px;padding:12px 10px 0}
 #levels .journey-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;min-height:0}
 #levels .journey-nodes .journey-section-title{grid-column:1/-1;font-size:20px;text-align:left;margin:0 0 2px;padding:0 4px 5px}
 #levels .chapter-node{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:0;padding:5px 5px 7px;text-align:center}
 .node-art{width:100%;height:56px}.node-copy{gap:3px;align-items:center}#levels .chapter-node .node-number{display:none}#levels .chapter-node strong{font-size:18px;letter-spacing:0}#levels .chapter-node small{font-size:10px;line-height:1.4}#levels .chapter-node>.journey-small-icon{display:none}
 #levels .chapter-node .node-stars{gap:2px}.node-stars .journey-small-icon{width:14px;height:14px}.node-lock{width:24px;height:27px;bottom:7px}#levels .node-lock .journey-small-icon{width:18px;height:18px}
 #levels .journey-center{padding:8px 12px 9px}#levels .journey-preview>img{height:190px}#levels .journey-preview h3{font-size:27px;letter-spacing:2px}#levels .journey-preview p{font-size:11px;max-width:none}#levels .journey-preview figcaption{padding-block:10px 7px}
 #levels .journey-story{display:block;margin:5px 0 13px}#levels .journey-story p{font-size:12px;line-height:1.75}#levels .journey-read{display:flex;margin:8px 0 0 auto;min-height:44px;font-size:13px}
 #levels .chapter-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 0;padding-block:11px}.chapter-facts>div:nth-child(4){border-left:0}.chapter-facts dd{font-size:14px}.chapter-facts dt{font-size:10px}
 #levels .journey-rules{margin-top:4px}#levels .journey-rules p{font-size:12px}
 #levels .journey-content{padding:15px 14px 16px}#levels .journey-section-title{font-size:22px;margin-bottom:10px;padding-bottom:7px}
 #levels .route-choices{gap:8px;margin-bottom:18px}#levels .route-choice{grid-template-columns:66px minmax(0,1fr) 22px;min-height:76px;padding:7px 10px 7px 7px;gap:10px}#levels .route-choice strong{font-size:23px}#levels .route-copy>span{font-size:12px}
 #levels .journey-rewards .cult-ui-icon{width:45px;height:45px;flex-basis:45px}#levels .journey-rewards b{font-size:24px}#levels .journey-materials{gap:5px}.journey-material .cult-item-icon{width:30px;height:30px;flex-basis:30px}.journey-material{font-size:12px}
 #levels .journey-departure .journey-primary{min-height:58px;font-size:23px;letter-spacing:2px}.journey-departure .cult-ui-icon{width:41px;height:41px;flex-basis:41px}
 #levels .selection-footer{margin:12px 10px 0;gap:8px;flex-wrap:wrap}#levels .selection-footer>p{font-size:11px}#levels .journey-titles{font-size:13px;letter-spacing:0;min-height:46px}
}
@media(max-width:370px){#levels .journey-header h2{font-size:23px;letter-spacing:2px}#levels #difficulty button small{font-size:9px}#levels .chapter-node strong{font-size:17px}.journey-material .cult-item-icon{width:27px;height:27px;flex-basis:27px}.journey-material{font-size:11px}}
@media(prefers-reduced-motion:reduce){#levels *{transition:none!important;animation:none!important}}
.motion-reduced #levels *{transition:none!important;animation:none!important}

/* 山海挑战 is a separate selection page, with its own two complete encounters. */
body:has(#challenges:not([hidden])) #masthead{display:none}
#challenges.challenge-screen{padding:0 0 calc(18px + var(--safe-bottom));background:#f2ecdf;color:#244d42;scroll-padding-top:82px}
#challenges button{opacity:1}
#challenges button:focus-visible{outline:2px solid #39745e;outline-offset:3px}
#challenges .journey-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:8px 16px;border:1px solid #aa9569;border-radius:2px;box-shadow:inset 0 0 0 3px #fbf6e9,inset 0 0 0 4px #baa87b60;background:#f5f0e3;color:#294f43;font:16px/1.5 var(--font-display);letter-spacing:1px;transition:background .16s,border-color .16s}
#challenges .journey-button:hover:not(:disabled){background:#e4eadb;border-color:#647d61}
#challenges .journey-button:disabled{background:#dce1d4;border-color:#9ba58c;color:#53634f;cursor:not-allowed}
#challenges .journey-primary{background:#244e42;color:#fcf0d5;border-color:#ac9660;box-shadow:inset 0 0 0 3px #385f4c,inset 0 0 0 4px #c3ad77aa}
#challenges .journey-primary:hover:not(:disabled){background:#315f4b;color:#fcf0d5;border-color:#bba26b}
#challenges .challenge-header{grid-template-columns:1fr auto 1fr;gap:18px;min-height:76px}
#challenges .challenge-header h2{font:32px/1.4 var(--font-display);letter-spacing:5px;white-space:nowrap}
#challenges .journey-home{justify-self:start;font-size:16px}
#challenges .challenge-header>p{justify-self:end;font-size:13px;color:#49624e}
.challenge-introduction{margin:14px 24px 0;border:1px solid #ae9b70;box-shadow:inset 0 0 0 3px #f9f4e7,inset 0 0 0 4px #b7a57a55;min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 20px;background:#f5f0e3;font:18px/1.6 var(--font-display);letter-spacing:2px;color:#3c5948}
#challenges .challenge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding:16px 24px 0;margin:0;align-items:stretch}
#challenges .challenge-encounter{display:flex;flex-direction:column;min-width:0;padding:6px 6px 0;border:1px solid #ac996b;box-shadow:inset 0 0 0 3px #f9f4e8,inset 0 0 0 4px #c2b18a66;background:#f7f1e5}
#challenges .challenge-art{height:auto;position:relative;margin:0;min-height:0;background:none;border:0;border-bottom:1px solid #b2a075;overflow:hidden}
.challenge-art>img{width:100%;height:clamp(190px,26vh,256px);object-fit:cover;object-position:center 65%;display:block}
.challenge-trial>img{filter:brightness(.77) saturate(.63);object-position:center 38%}
#challenges .challenge-copy{display:flex;flex-direction:column;align-items:center;flex:1;padding:16px 23px 20px;text-align:center}
#challenges .challenge-copy h3{font:32px/1.35 var(--font-display);letter-spacing:3px;margin:0 0 7px;color:#244d42}
.challenge-mode-badge{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:30px;padding:3px 17px;background:#244e42;border:1px solid #b09a65;color:#fcf0d5;font:15px/1.45 var(--font-display);letter-spacing:2px;border-radius:2px}
.challenge-mode-badge svg{width:20px;height:20px;stroke-width:1.7}
.challenge-encounter-trial .challenge-mode-badge{background:#7c4a35;border-color:#b39566;color:#fff0d9}
#challenges .challenge-copy .challenge-description{font-size:14px;line-height:1.65;color:#46604d;margin:9px 0 11px}
#challenges .challenge-rules{list-style:none;align-self:stretch;padding:0;margin:0 0 15px;border-block:1px solid #b4a68277;text-align:left}
#challenges .challenge-rules li{display:flex;align-items:center;gap:13px;min-height:43px;padding:7px 10px;font-size:14px;line-height:1.6;color:#385647}
.challenge-rules li+li{border-top:1px solid #b4a68244}
.challenge-rules svg{width:24px;height:24px;flex-shrink:0;color:#7d6840;stroke-width:1.6}
.challenge-rules svg:has(use){fill:currentColor;stroke:none}
.challenge-rewards{display:grid;grid-template-columns:auto 1fr 1fr;gap:10px;align-items:center;align-self:stretch;margin-bottom:16px}
.challenge-reward-label{font:17px/1.4 var(--font-display);letter-spacing:1px;color:#6c5b3b;margin-right:4px}
.challenge-rewards>div{display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;padding:8px 12px;border:1px solid #b9a982;background:#f3eedf}
.challenge-rewards .cult-ui-icon{width:44px;height:44px;flex-basis:44px}
.challenge-rewards>div>span{display:flex;flex-direction:column;gap:0;min-width:0;font-size:12px;color:#48634d;line-height:1.5}
.challenge-rewards b{font:23px/1.4 var(--font-display);color:#244d42;font-variant-numeric:tabular-nums}
#challenges .challenge-copy>.journey-primary{width:min(100%,420px);min-height:58px;margin-top:auto;font-size:23px;letter-spacing:2px;padding:8px 16px;gap:13px}
.challenge-copy>.journey-primary>svg:first-child{width:32px;height:32px;fill:currentColor;stroke:none}
.challenge-copy>.journey-primary>.journey-small-icon{width:20px;height:20px}
.challenge-footer-note{padding:12px 24px 0;text-align:center;font-size:12px;color:#53654e;line-height:1.6;margin:0}
@media(min-width:901px) and (max-height:800px){
 #challenges .challenge-header{min-height:76px}.challenge-introduction{margin-top:12px;min-height:42px;padding-block:6px;font-size:17px}
 #challenges .challenge-list{padding-top:12px;gap:18px}
 .challenge-art>img{height:170px}
 #challenges .challenge-copy{padding:13px 22px 15px}#challenges .challenge-copy h3{font-size:29px;margin-bottom:5px}
 .challenge-mode-badge{min-height:28px;padding-block:2px;font-size:14px}
 #challenges .challenge-copy .challenge-description{margin:7px 0 9px;font-size:13px}
 #challenges .challenge-rules{margin-bottom:13px}#challenges .challenge-rules li{min-height:40px;padding-block:6px;font-size:13px}
 .challenge-rewards{margin-bottom:14px}.challenge-rewards>div{padding:7px 10px}.challenge-rewards .cult-ui-icon{width:39px;height:39px;flex-basis:39px}
 #challenges .challenge-copy>.journey-primary{min-height:55px;font-size:22px}
}
@media(max-width:1180px) and (min-width:901px){
 #challenges .challenge-copy{padding-inline:17px}.challenge-rewards{gap:8px}.challenge-reward-label{font-size:15px;margin:0}.challenge-rewards>div{padding-inline:8px;gap:7px}.challenge-rewards .cult-ui-icon{width:37px;height:37px;flex-basis:37px}
}
@media(max-width:900px){
 #challenges .challenge-header{grid-template-columns:1fr auto;gap:7px 10px;min-height:94px;padding:9px 12px}
 #challenges .challenge-header h2{grid-row:1;grid-column:2;font-size:27px;letter-spacing:3px}
 #challenges .journey-home{grid-row:1;grid-column:1;padding:4px 8px;font-size:13px;letter-spacing:0;gap:5px}#challenges .journey-home .cult-ui-icon{width:26px;height:26px;flex-basis:26px}
 #challenges .challenge-header>p{grid-column:1/-1;grid-row:2;justify-self:center;font-size:11px}
 .challenge-introduction{margin:10px 10px 0;min-height:44px;padding:6px 10px;font-size:15px;letter-spacing:1px}
 #challenges .challenge-list{grid-template-columns:1fr;gap:14px;padding:12px 10px 0}
 .challenge-art>img{height:172px}#challenges .challenge-copy{padding:14px 14px 17px}#challenges .challenge-copy h3{font-size:29px;letter-spacing:3px;margin-bottom:6px}
 .challenge-mode-badge{min-height:29px;font-size:14px;padding-inline:15px}
 #challenges .challenge-copy .challenge-description{font-size:13px;margin:8px 0 10px;line-height:1.6}
 #challenges .challenge-rules{margin-bottom:14px}#challenges .challenge-rules li{font-size:12px;min-height:45px;gap:9px;padding-inline:4px;line-height:1.7}
 .challenge-rules svg{width:22px;height:22px}
 .challenge-rewards{gap:7px;margin-bottom:15px;grid-template-columns:auto 1fr 1fr}.challenge-reward-label{font-size:13px;margin:0;letter-spacing:0}.challenge-rewards>div{gap:6px;padding:7px 6px}.challenge-rewards .cult-ui-icon{width:33px;height:33px;flex-basis:33px}.challenge-rewards>div>span{font-size:11px}.challenge-rewards b{font-size:21px}
 #challenges .challenge-copy>.journey-primary{width:100%;min-height:55px;font-size:21px;letter-spacing:1px;gap:9px;padding-inline:10px}.challenge-copy>.journey-primary>svg:first-child{width:28px;height:28px}
 .challenge-footer-note{font-size:11px;padding:12px 14px 0}
}
@media(max-width:370px){#challenges .challenge-header h2{font-size:25px;letter-spacing:2px}.challenge-reward-label{font-size:12px}.challenge-rewards>div{gap:4px;padding-inline:5px}.challenge-rewards .cult-ui-icon{width:29px;height:29px;flex-basis:29px}#challenges .challenge-rules li{font-size:12px;gap:7px}}
@media(prefers-reduced-motion:reduce){#challenges *{transition:none!important;animation:none!important}}
.motion-reduced #challenges *{transition:none!important;animation:none!important}


/* gear.css */
/* Ivory, jade and brass equipment ledger, matched to the approved equipment board. */
.treasure-realms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line);gap:8px;margin-bottom:12px}.treasure-realms button{min-height:60px;padding:10px;background:transparent;color:var(--ink);border:1px solid var(--line);border-bottom:0;font:22px var(--font-display)}.treasure-realms small{display:block;font:12px var(--font-ui);margin-top:5px;color:var(--muted)}.treasure-realms .is-active{background:#235247;color:#fbf0d5}.treasure-realms .is-active small{color:#e5e7cc}.treasure-realms button:focus-visible{outline:3px solid #477263;outline-offset:2px}.treasure-realms button:hover:not(.is-active){background:#e9e5d5}.treasure-tier-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;margin:12px 0 20px;color:var(--ink)}.treasure-pity{margin:16px 0 10px;display:grid;gap:7px;font-size:13px}.treasure-pity span{display:flex;justify-content:space-between}.treasure-pity progress{width:100%;height:7px;accent-color:#456d57}.treasure-pity small{color:var(--muted)}.treasure-source{margin-top:22px}.treasure-essence b{font-variant-numeric:tabular-nums}.treasure-display small{max-width:28ch;line-height:1.65}.treasure-detail-title h3{overflow-wrap:anywhere}
@media(max-width:760px){.treasure-realms{gap:4px}.treasure-realms button{font-size:19px;padding:9px 3px}.treasure-realms small{font-size:11px}.treasure-tier-note{font-size:12px}.treasure-choices img{width:76px!important;height:76px!important}.treasure-choices button{min-height:94px!important}}
#hub-content[data-equipment-tab="treasures"] .panel-heading{margin-bottom:20px}
.treasure-layout{display:grid;grid-template-columns:172px minmax(280px,1.1fr) minmax(300px,1fr);border:1px solid var(--line);background:#f5eedf}
.treasure-slots{border-right:1px solid var(--line);display:flex;flex-direction:column}
.treasure-slots button{display:flex;align-items:center;gap:12px;padding:16px 12px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--ink);min-height:86px}
.treasure-slots button:last-child{border-bottom:0}.treasure-slots img{object-fit:contain}.treasure-slots strong{font:21px var(--font-display)}.treasure-slots small{display:block;font-size:11px;margin-top:5px;color:var(--muted)}
.treasure-slots button.is-active{background:#235247;color:#fbf0d5;box-shadow:inset 0 0 0 4px #b49b562d}.treasure-slots button.is-active small{color:#d9deba}
.treasure-collection{padding:22px;border-right:1px solid var(--line);min-width:0}.treasure-section-title,.treasure-detail-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.treasure-section-title{margin-bottom:18px}.treasure-section-title h3,.treasure-detail-title h3{font-size:28px}.treasure-section-title span,.treasure-state{color:var(--muted);font-size:12px;white-space:nowrap}
.treasure-choices{display:flex;flex-direction:column;gap:10px}.treasure-choices button{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:10px 12px;background:#faf5e9;text-align:left;color:var(--ink);width:100%;min-height:86px}.treasure-choices button.is-selected{border-color:#456d57;box-shadow:inset 0 0 0 2px #456d5720;background:#ebeedd}.treasure-choices img{object-fit:contain;flex-shrink:0}.treasure-choices strong{font:20px var(--font-display)}.treasure-choices small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.treasure-choice-arrow{font-size:26px;margin-left:auto}
.treasure-display{display:grid;place-items:center;min-height:304px;padding:22px 0 10px;background:linear-gradient(#f3eddfbf,#f3eddfeb),url('assets/runtime/bamboo.webp') center/cover}.treasure-display img{width:230px;height:230px;object-fit:contain}.treasure-display figcaption{font:23px var(--font-display);text-align:center;padding-top:8px}.treasure-display small{display:block;font:12px var(--font-ui);color:var(--muted);margin-top:4px}
.treasure-detail{padding:22px 24px;min-width:0}.treasure-detail-title{padding-bottom:16px;border-bottom:1px solid var(--line)}.treasure-detail-title h3 small{font-size:16px;color:var(--muted)}.treasure-attributes>div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.treasure-attributes dt{color:var(--ink)}.treasure-attributes dd{text-align:right;font-variant-numeric:tabular-nums;font-size:20px}.treasure-attributes dd small{display:block;color:var(--muted);font-size:11px}
#hub-content p.treasure-description{margin:18px 0 24px;line-height:1.8;max-width:40ch}.treasure-source h4,.treasure-forge h4{font-size:21px;margin-bottom:8px!important}.treasure-source>p,.treasure-forge>p{font-size:12px;color:var(--muted);line-height:1.8}.treasure-costs{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px 0}.gear-cost{font-size:12px;display:flex;flex-direction:column;gap:2px}.gear-cost b{font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.gear-cost.is-short b{color:#974b39}.treasure-actions{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 8px}.treasure-actions button,.treasure-forge button{font-size:15px;letter-spacing:1px;padding:11px 18px;min-height:46px}.treasure-forge{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.treasure-battle-summary{display:flex;align-items:center;gap:22px;padding:19px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.treasure-battle-summary>strong{font:19px var(--font-display)}.treasure-battle-summary dl{display:flex;gap:22px;flex-wrap:wrap}.treasure-battle-summary dl>div{display:flex;gap:8px;align-items:baseline}.treasure-battle-summary dt,.treasure-battle-summary>span{font-size:11px;color:var(--muted)}.treasure-battle-summary dd{font-size:20px;font-variant-numeric:tabular-nums}.treasure-battle-summary>span{margin-left:auto}.treasure-rules{margin-top:14px;font-size:12px;color:var(--muted)}.treasure-rules summary{cursor:pointer;color:var(--ink);padding:5px 0}.treasure-rules p{line-height:1.9;max-width:75ch;padding-top:10px}.treasure-slots button:hover:not(.is-active),.treasure-choices button:hover:not(.is-selected){background:#e9e5d5}.treasure-layout button:focus-visible,.treasure-rules summary:focus-visible{outline:3px solid #477263;outline-offset:2px}.treasure-layout button:disabled{color:#747c6e;background:#ece9da;border-color:#c8c2aa;cursor:not-allowed;opacity:1}
.kit-tabs button[data-hub-action="gear:tab:treasures"]{display:inline-flex}
@media(max-width:1020px){.treasure-layout{grid-template-columns:136px minmax(230px,1fr) minmax(260px,1fr)}.treasure-collection,.treasure-detail{padding:18px}.treasure-slots img{width:42px;height:42px}.treasure-slots strong{font-size:19px}.treasure-display img{width:200px;height:200px}.treasure-display{min-height:250px}.treasure-section-title h3,.treasure-detail-title h3{font-size:25px}}
@media(max-width:760px){.treasure-layout{grid-template-columns:1fr}.treasure-slots{display:grid;grid-template-columns:repeat(3,1fr);border-right:0;border-bottom:1px solid var(--line)}.treasure-slots button{min-height:72px;padding:9px 8px;gap:6px;border-bottom:0}.treasure-slots img{width:36px;height:42px}.treasure-slots strong{font-size:18px}.treasure-slots small{font-size:10px}.treasure-collection{border-right:0;border-bottom:1px solid var(--line)}.treasure-display{display:none}.treasure-choices button{min-height:74px}.treasure-choices img{width:48px;height:48px}.treasure-detail{padding:20px}.treasure-battle-summary{gap:12px}.treasure-battle-summary dl{gap:12px 20px}.treasure-battle-summary>span{margin-left:0;width:100%}.treasure-actions button{flex:1}.treasure-rules{font-size:12px}}

.treasure-layout button:disabled{box-shadow:none}
@media(max-width:760px){#hub-content[data-equipment-tab="treasures"] .panel-heading{display:flex;flex-direction:column;align-items:stretch;gap:12px}#hub-content[data-equipment-tab="treasures"] .panel-heading h2{white-space:nowrap}#hub-content[data-equipment-tab="treasures"] .kit-tabs{align-self:stretch}#hub-content[data-equipment-tab="treasures"] .kit-tabs button{flex:1}#hub-content[data-equipment-tab="treasures"] .panel-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}#hub-content[data-equipment-tab="treasures"] .panel-tabs button{font-size:12px}}

/* lobby-mobile.css */
/* Landscape phone courtyard: reserve space for the whole figure, not desktop rows. */
@media(orientation:landscape) and (max-height:500px){
body:has(#home:not([hidden])) #masthead{height:48px;min-height:48px;padding:2px 12px}
body:has(#home:not([hidden])) #brand{font-size:23px}
#home.jade-home{padding:48px 0 0;height:100dvh;overflow:auto;display:flex;flex-direction:column}
#home .home-identity{position:relative;inset:auto;display:flex;height:44px;min-height:44px;padding:0 12px;gap:10px;flex-wrap:nowrap}
#home .home-resource-bar{display:none}
#home .home-hero-id{min-height:44px;margin:0}
#home .home-wallet-counter{margin:0 0 0 auto;min-height:32px}
#home .jade-home-layout{display:flex;flex-direction:column;height:auto;min-height:0;flex:1;overflow:visible}
#home .home-courtyard{display:grid;grid-template-rows:32px minmax(90px,1fr) 52px;min-height:174px;flex:1}
#home .home-realm-heading{padding:0;min-height:0}
#home .jade-hero-stage{height:100%;grid-row:2;overflow:hidden}
#home .jade-home-portrait{bottom:0;left:50%;height:100%;width:48%;max-height:none}
#home .home-scene-weapon{bottom:0;height:85%;left:28%}
#home .home-scene-mount{bottom:0;height:95%;left:76%}
#home .home-scene-actions{grid-row:3;grid-template-columns:1fr 1fr 1fr;width:76%;padding:0;gap:12px}
#home .home-weapon-control,#home .home-mount-control,#home .home-breakthrough{padding:0}
#home #home-weapon-name,#home #home-mount-status,#home #home-breakthrough-note{display:none}
#home .home-equipment-action,#home .home-breakthrough-button{height:44px;min-height:44px;padding:4px 10px}
#home #home-realm-label{font-size:17px}
#home .home-utility-row{display:none}
#home .jade-hub-nav{position:relative;inset:auto;transform:none;display:flex;height:58px;min-height:58px;padding:2px 14px;width:100%;gap:10px;margin:0;flex:none}
#home .jade-hub-nav>button{min-height:48px;height:48px;flex:1;flex-direction:row;gap:7px;padding:3px 6px}
#home .jade-hub-nav svg{width:26px;height:26px;padding:0}
#home .jade-hub-nav strong{font-size:15px}
#home .jade-hub-nav small,#home .home-foot{display:none}
}

@media(orientation:landscape) and (max-height:500px){
#home .jade-hub-nav #start{height:48px;min-height:48px;min-width:0;flex:1;padding:3px 6px;flex-direction:row;gap:7px}
#home .home-cultivation{display:flex;align-items:center;justify-content:center;gap:10px;height:32px;padding:0;width:100%}
#home .home-realm-heading h2{font-size:18px}
#home #home-realm-next{font-size:11px}
#home #home-realm-progress{width:90px;height:5px;margin:0}
#home #home-realm-condition{display:none}
}

#touch-controls button>svg{width:23px;height:23px;stroke-width:3;flex:none;filter:drop-shadow(0 1px 1px #0006)}
#touch-controls [data-action="attack"]>svg{width:32px;height:32px}

#touch-controls button>small{font-size:8px;line-height:9px}
@media(max-height:260px) and (orientation:landscape){#touch-controls button>svg{width:19px;height:19px}#touch-controls button{padding:1px;line-height:11px}}

@media(orientation:landscape) and (max-height:500px){
#home .home-resource-bar{position:static;display:flex;flex:1;justify-content:center;gap:16px;border:0;padding:0;min-height:0;width:auto}
#home .home-resource-bar>div{display:flex;align-items:center;gap:4px}
#home .home-resource-bar dt,#home .home-resource-bar dd{font:12px var(--font-ui)}
#home .home-resource-bar i{width:22px;height:24px}
#home .home-scene-mount{left:87%;width:28%;height:94%;bottom:4%}
#home .lobby-orbit-rear{z-index:0}
}

/* v32: keep the sword case outside the full blade turn on short landscape screens. */
@media(orientation:landscape) and (max-height:500px){#home .home-scene-weapon{left:25%}}

/* recovery-controls.css */
/* Keep fullscreen discoverable without replacing the game's viewport or boot. */
#full,body:has(#home:not([hidden])) #full{display:inline-flex;gap:4px;min-width:72px;white-space:nowrap}
#full svg{width:20px;height:20px}#full .fullscreen-label{font:13px/1.2 var(--font-ui)}
@media(max-width:900px){
 .header-tools,body:has(#home:not([hidden])) .header-tools{gap:6px;flex-shrink:0}
 #brand,body:has(#home:not([hidden])) #brand{font-size:24px;white-space:nowrap}
 body:has(#home:not([hidden])) #masthead{padding-inline:12px}
}

/* systems-ui.css */
/* v49: one optional run objective, beside existing route decisions. */
#levels .journey-toolbar{justify-content:flex-end;min-height:0;padding:8px 24px}
#levels .expedition-settings{margin:0 0 17px;padding:0 0 13px;border-bottom:1px solid #a99b7460}
#levels .expedition-difficulty{margin:0 0 14px}
#levels .expedition-difficulty>span{display:block;margin:0 0 7px;font:16px/1.5 var(--font-display);letter-spacing:1px;color:#315344}
#levels .expedition-difficulty-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
#levels .expedition-difficulty-options button{min-width:0;min-height:44px;padding:5px 8px;border:1px solid #ad9b75;border-radius:2px;background:#f6f0e3;color:#3e5d49;font:16px/1.4 var(--font-display);letter-spacing:1px;box-shadow:none}
#levels .expedition-difficulty-options button:hover{background:#e8ecdd}
#levels .expedition-difficulty-options button[aria-pressed=true]{background:#244e42;color:#fbefd4;border-color:#a18b5b;box-shadow:inset 0 0 0 2px #3b634e,inset 0 0 0 3px #bca77688}
#levels .expedition-difficulty>p{margin:6px 0 0;color:#58674f;font-size:11px;line-height:1.6}
#levels .expedition-contract{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:0}
#levels .expedition-contract label{display:flex;align-items:baseline;gap:9px;color:#2d5142;font:17px/1.5 var(--font-display);letter-spacing:1px}
#levels .expedition-contract label small{color:#60705a;font:11px/1.4 var(--font-ui);letter-spacing:0}
#levels .expedition-contract select{box-sizing:border-box;display:block;width:100%;min-width:0;min-height:46px;margin:0;padding:8px 32px 8px 12px;border:1px solid #ad9a72;border-radius:2px;color:#244e42;background-color:#f8f3e8;font:17px/1.4 var(--font-display);letter-spacing:1px;cursor:pointer;box-shadow:inset 0 0 0 3px #f0e9d8;accent-color:#2d5b48}
#levels .expedition-contract select:focus-visible{outline:2px solid #39745e;outline-offset:3px}
#levels .expedition-contract>p{margin:0;color:#3d5b49;font-size:12px;line-height:1.75}
#levels .expedition-contract>small{color:#647058;font-size:11px;line-height:1.65}
#levels .expedition-contract-reward{display:flex;align-items:center;gap:12px;min-height:42px;color:#3f5b48;font-size:12px}
#levels .expedition-contract-reward>.journey-material{justify-content:flex-start;min-height:0;padding:0;border:0;gap:7px}
#levels .expedition-contract-reward .cult-item-icon{width:32px;height:32px;flex-basis:32px}
#levels .expedition-contract-reward .journey-material>span{display:flex;flex-direction:row;align-items:baseline;gap:8px}
#levels .expedition-contract-reward .journey-material b{font-size:21px}
#levels .expedition-records{border-top:1px solid #a99b7460;margin:5px 0 0;padding:0;color:#365545;font-size:12px;line-height:1.65;min-width:0}
#levels .expedition-records summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;cursor:pointer;list-style:none}
#levels .expedition-records summary::-webkit-details-marker{display:none}
#levels .expedition-records summary>span:first-child{font:16px/1.5 var(--font-display);white-space:nowrap}
#levels .expedition-records summary>span+span{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:5px 9px;margin-left:auto;color:#52674f;font-size:12px}
#levels .expedition-records summary b{font:19px/1.4 var(--font-display);font-variant-numeric:tabular-nums;color:#284f40}
#levels .expedition-records summary small{font-size:11px;white-space:nowrap}
#levels .expedition-records summary:after{content:'';flex-shrink:0;width:7px;height:7px;border-right:1.5px solid #687c5e;border-bottom:1.5px solid #687c5e;transform:rotate(45deg);margin:0 4px 4px 0}
#levels .expedition-records[open] summary:after{transform:rotate(225deg);margin-bottom:0}
#levels .expedition-records>p{margin:0 0 8px;color:#64735b;font-size:11px;line-height:1.65}
#levels .expedition-records dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin:0 0 8px}
#levels .expedition-records dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:5px 0;border-bottom:1px solid #b6a68044;min-width:0}
#levels .expedition-records dt{color:#5d6e56;font-size:12px}
#levels .expedition-records dd{margin:0;font:17px/1.4 var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap}
#levels .expedition-records>small{display:block;margin:0 0 7px;font-size:11px;color:#69755d}
#levels .expedition-records-empty{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 12px;padding-top:12px}
#levels .expedition-records-empty>span{font:16px/1.5 var(--font-display)}
#levels .expedition-records-empty>p{margin:0;text-align:right;font-size:12px;color:#49644e}
#levels .expedition-records-empty>p>span{display:block;font-size:11px;color:#6b765f;margin-top:2px}
#levels .expedition-records-empty>small{grid-column:1/-1;text-align:right;margin:0 0 3px}
/* Shared foundations; combat/result placement remains in their own screens. */
.run-contract-hud{min-width:0;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.resonance-preview{display:grid;gap:6px;min-width:0;line-height:1.65}
.result-learning{min-width:0;line-height:1.75}
.result-records{font-variant-numeric:tabular-nums;min-width:0}
@media(min-width:901px) and (max-height:800px){
 #levels .expedition-settings{margin-bottom:12px;padding-bottom:10px}
 #levels .expedition-difficulty{margin-bottom:11px}
 #levels .expedition-contract{gap:5px}
 #levels .expedition-contract-reward{min-height:37px}
 #levels .expedition-records summary{min-height:45px}
}
@media(max-width:900px){
 #levels .expedition-settings{margin-bottom:18px;padding-bottom:15px}
 #levels .expedition-difficulty-options button{min-height:46px;font-size:17px}
 #levels .expedition-contract select{min-height:48px;font-size:18px}
 #levels .expedition-contract>p{font-size:13px}
 #levels .expedition-contract>small{font-size:11px;line-height:1.75}
 #levels .expedition-records summary{gap:8px}
 #levels .expedition-records summary>span+span{gap:3px 6px}
 #levels .expedition-records summary small{font-size:11px}
 #levels .expedition-records-empty{gap:4px 10px}
 #levels .expedition-records dl{gap:5px 14px}
}
@media(max-width:370px){
 #levels .expedition-records summary>span+span{display:block;text-align:right}
 #levels .expedition-records summary small{display:block;margin-top:1px}
 #levels .expedition-records dl{grid-template-columns:1fr}
}

/* run-review.css */
/* Quiet additions to the existing paper / jade surfaces. */
.resonance-state{margin:8px 0 0;color:var(--jade);font-size:13px;line-height:1.7}
.boon-modal .resonance-preview{display:flex;flex-direction:column;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #b29b6c77;font:12px/1.7 var(--font-ui);color:#405b4e;text-align:left}
.boon-modal .resonance-preview b{font-weight:600;font-size:13px;color:#315a46}
.boon-modal .resonance-preview.is-ready b{color:#1e5545}
.boon-modal #modal-actions>button{min-width:0;white-space:normal}
.result-contract{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:14px 0;color:var(--jade);font-size:13px}
.result-contract>span{font-variant-numeric:tabular-nums}
.result-contract>b{margin-left:auto;font-size:12px;font-weight:400}
.result-records{margin:18px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.result-records h3,.result-learning h3{font:18px/1.5 var(--font-display);letter-spacing:.5px}
.result-records dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 0}
.result-records dl div{min-width:0}
.result-records dt{font-size:12px;color:#4b6152;line-height:1.5}
.result-records dd{margin:4px 0 0;font-size:20px;color:var(--ink);line-height:1.5;font-variant-numeric:tabular-nums}
.result-records dd small{display:block;font:11px/1.4 var(--font-ui);color:#2b6048}
.result-records>p{font-size:11px;line-height:1.7;margin-top:10px;color:#4b6152}
.result-learning{margin:16px 0;padding:0}
.result-learning p{font-size:13px;line-height:1.8;margin-top:7px;max-width:66ch;color:#405548}
.mission-rail>.run-contract-hud{color:#f0dfb6}
.mission-rail>.run-contract-hud[hidden]{display:none}
@media(max-width:900px),(pointer:coarse){
 .mission-rail>.run-contract-hud{color:#284f42;background:#efe9dce8;width:max-content;max-width:100%;text-shadow:none}
 .mission-rail:has(.run-contract-hud:not([hidden])) #combo-hud{display:none}
 .result-records dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
 .result-records h3,.result-learning h3{font-size:17px}
 .result-contract>b{margin-left:0}
 .boon-modal .resonance-preview{font-size:12px}
}
@media(max-height:500px){
 .boon-modal .resonance-preview{gap:4px;margin-top:7px;padding-top:7px}
 .result-records dl{grid-template-columns:repeat(4,minmax(0,1fr))}
 .result-records dd{font-size:17px}
}

/* entry.css */
/* Visuals use the game's shared Canvas renderer; native buttons provide input/focus semantics. */
.entry-screen{z-index:9;background:#f2ebdc;isolation:isolate;scrollbar-color:#ac905b #f2ebdc;scrollbar-width:thin}
.entry-canvas{display:block;max-width:100%;pointer-events:none}
.entry-hotspots{position:absolute;inset:0;pointer-events:none}
.entry-hotspot{position:absolute;pointer-events:auto;border:0;margin:0;padding:0;background:transparent;color:transparent;font-size:0;min-width:44px;min-height:44px;border-radius:5px;touch-action:manipulation;transition:background-color .14s ease}
.entry-hotspot:hover:not(:disabled){background:#ffffff16}
.entry-hotspot:focus-visible{outline:3px solid #a24b39;outline-offset:3px;background:#fff8e71f}
.entry-hotspot:active:not(:disabled){transform:none;background:#102c2b18}
.entry-hotspot:disabled{opacity:1;cursor:default}
.entry-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.entry-active #masthead,.entry-active #art-loading{display:none!important}
.entry-active #scene{visibility:hidden}
html[data-cloudstep-mode=desktop] #touch-controls{display:none!important}
html[data-cloudstep-mode=desktop] .hud-bottom{display:flex}
html[data-cloudstep-mode=mobile] #hud:not([hidden]) #touch-controls{display:flex}
html[data-cloudstep-mode=mobile] #hud .hud-bottom{display:none}
@media(orientation:portrait){html[data-cloudstep-mode=mobile] #hud:not([hidden]) #touch-controls{display:block}}
@media(prefers-reduced-motion:reduce){.entry-hotspot{transition:none}}

/* cultivation-fx.css */
#cultivation-feedback-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:11800;pointer-events:none}
#cultivation-feedback-notice{position:fixed;right:max(20px,env(safe-area-inset-right));top:max(100px,calc(env(safe-area-inset-top) + 20px));z-index:11810;display:flex;align-items:center;gap:14px;max-width:min(420px,calc(100vw - 32px));padding:15px 22px;color:#f6edd4;background:#183e39f2;border:1px solid #b6a173;box-shadow:0 8px 26px #0b1f2633;pointer-events:none;animation:cult-notice-in .22s ease-out both}
#cultivation-feedback-notice[hidden],#cultivation-feedback-canvas[hidden],#cultivation-ritual[hidden]{display:none!important}
.cult-fx-notice-mark{width:16px;height:16px;border:1px solid var(--cult-fx-color,#edca77);transform:rotate(45deg);box-shadow:0 0 10px color-mix(in srgb,var(--cult-fx-color,#edca77) 35%,transparent)}
#cultivation-feedback-notice strong{display:block;font-size:21px;font-weight:600;color:var(--cult-fx-color,#edca77)}
.cult-fx-notice-detail{display:block;margin-top:5px;font-size:15px;line-height:1.5}
#cultivation-ritual{position:fixed;inset:0;z-index:12000;overflow:hidden;color:#fff5db;background:#102934;isolation:isolate}
#cultivation-ritual>canvas{position:absolute;inset:0;width:100%;height:100%}
.ritual-interface{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;pointer-events:none;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom));text-align:center;text-shadow:0 2px 8px #061b2bd9}
.ritual-interface header{padding:6px 40px 24px;background:radial-gradient(ellipse,#09202b80,transparent 72%)}
.ritual-place{margin:0 0 9px;color:#c6dad6;letter-spacing:.2em;font-size:16px}
#cultivation-ritual-title{margin:0;font-size:clamp(26px,3.5vw,46px);font-weight:500;letter-spacing:.1em;color:#f6e8bc}
.ritual-interface footer{width:min(650px,90vw);padding:20px 25px 10px;background:radial-gradient(ellipse at 50% 70%,#09202bbb,transparent 75%)}
.ritual-phase strong{font-size:clamp(26px,3vw,38px);font-weight:500;letter-spacing:.28em;color:#d6e7ef}
.ritual-phase p{font-size:16px;line-height:1.5;margin:8px 0 14px;color:#e1e7df}
.ritual-progress{height:2px;width:min(350px,65vw);margin:auto;background:#d2e9ec2e;overflow:hidden}
.ritual-progress i{display:block;width:100%;height:100%;background:#e2c583;transform:scaleX(0);transform-origin:left}
.ritual-result{font-size:14px;line-height:1.6;margin:10px 0 6px;color:#e9dcc0}
.ritual-skip{pointer-events:auto;position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));min-width:92px;min-height:44px;padding:10px 21px;border:1px solid #c3b897;color:#f4ead3;background:#0f293bba;box-shadow:0 4px 12px #071b2a4d;font:inherit;font-size:16px;cursor:pointer}
.ritual-skip:hover{background:#24494cf0;border-color:#f0dc9f}.ritual-skip:focus-visible{outline:2px solid #f5d68d;outline-offset:4px}
#cultivation-ritual[data-phase=settle] .ritual-phase strong{color:#f4d188}
@keyframes cult-notice-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){#cultivation-feedback-notice{right:12px;top:max(18px,env(safe-area-inset-top));padding:12px 16px;gap:10px}.cult-fx-notice-detail{font-size:13px}#cultivation-feedback-notice strong{font-size:18px}.ritual-interface{padding-top:max(28px,env(safe-area-inset-top));padding-bottom:74px}.ritual-interface header{padding-inline:10px}.ritual-interface footer{padding-inline:0;width:95%}.ritual-phase p{font-size:14px}.ritual-result{font-size:12px}.ritual-skip{right:16px;bottom:max(14px,env(safe-area-inset-bottom))}}
@media(orientation:landscape) and (max-height:500px){.ritual-interface{padding:12px 20px}.ritual-interface header{padding:0}.ritual-place{font-size:12px;margin-bottom:3px}#cultivation-ritual-title{font-size:24px}.ritual-interface footer{padding:4px 100px;width:min(740px,94vw)}.ritual-phase strong{font-size:23px}.ritual-phase p{font-size:12px;margin:3px 0 7px}.ritual-result{font-size:11px;margin-top:6px}.ritual-skip{right:14px;bottom:14px;font-size:14px}}
@media(prefers-reduced-motion:reduce){#cultivation-feedback-notice{animation:none}}
@media(orientation:landscape) and (max-height:500px){.ritual-interface footer{padding:6px 105px}.ritual-phase{display:flex;align-items:center;justify-content:center;gap:12px}.ritual-phase strong{font-size:20px;line-height:1.1;letter-spacing:.15em}.ritual-phase p{font-size:12px;line-height:1.2;margin:0}.ritual-progress{margin-top:7px}.ritual-result{font-size:11px;line-height:1.25;margin:5px 0 0}}
