/* Waldmeer: moonlit city, brass navigation and an illustrated expedition surface. */
body.hub-mode{background:#061221;overflow-x:hidden}.waldmeer-hub{position:relative;isolation:isolate;min-height:100svh;width:100%;max-width:none;margin:0;padding:0;color:#fff4da;background:linear-gradient(90deg,#03101ccd 0%,#0514254d 54%,#04121d18),url('/assets/waldmeer.webp') 58% center/cover}
.waldmeer-hub:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,#020d1dee,transparent 30%,transparent 78%,#04101f80)}
.city-heading{display:flex;justify-content:space-between;align-items:start;padding:38px 5vw;gap:20px}.city-title{display:flex;gap:22px;align-items:center}.city-crest{font-size:55px;line-height:1;color:#eddaac;border:1px solid #d5c39a99;outline:1px solid #d5c39a55;outline-offset:5px;padding:10px 16px;background:#0b223779;transform:rotate(-5deg)}.city-title h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(42px,6vw,82px);line-height:1;letter-spacing:-.025em;font-weight:400;text-shadow:0 3px 10px #000}.city-title p{margin-top:13px;font-size:17px;letter-spacing:.2em;color:#d5d8d6;text-align:right}.city-tools{display:flex;gap:12px}.city-tools button{width:42px;height:42px;border:1px solid #d9c79699;border-radius:50%;font-size:21px;color:#efddb5;background:#0b2235bb}
.city-menu{display:flex;flex-direction:column;align-items:start;gap:20px;margin:5vh 0 160px;width:min(48%,580px)}.city-menu button{position:relative;width:100%;text-align:left;background:linear-gradient(100deg,#071a32f5,#102c45d9);border:1px solid #d1b77788;border-left:0;border-right:3px solid #dcc38c;box-shadow:0 5px 20px #0006,inset 0 1px #f8e9c51c;padding:21px 60px 21px 5vw;clip-path:polygon(0 0,96% 0,100% 24%,100% 100%,0 100%);transition:background .2s,translate .2s}.city-menu button:nth-child(2){width:90%}.city-menu button:nth-child(3){width:96%}.city-menu button:hover{background:linear-gradient(100deg,#163450,#204c64ef);translate:5px 0}.city-menu span{display:block;font:italic 34px Georgia,serif;letter-spacing:.015em}.city-menu small{display:block;font-size:13px;letter-spacing:.15em;margin-top:6px;color:#bdc9cd}.city-menu b{position:absolute;right:22px;top:32px;font-size:14px;color:#dfc995;font-weight:400}
.city-character-label{position:absolute;right:7%;bottom:175px;text-align:right;display:flex;flex-direction:column;text-shadow:0 2px 8px #000}.city-character-label small{font-size:12px;letter-spacing:.13em;color:#cbd7d7}.city-character-label strong{font:italic 38px Georgia,serif;margin:4px 0}.city-character-label span{font-size:14px;letter-spacing:.15em}.city-enter{position:absolute;bottom:0;left:0;right:0}.enter-forest{position:relative;width:100%;min-height:112px;text-align:left;padding:24px 9vw;border-top:1px solid #e8d5a79e;background:linear-gradient(110deg,#10243be8,#153650e8);box-shadow:0 -5px 30px #041120aa}.enter-forest>span{font:italic clamp(30px,4vw,50px) Georgia,serif;display:block}.enter-forest small{font-size:13px;display:block;letter-spacing:.22em;color:#c1d2d4;margin-top:5px}.enter-forest>b{position:absolute;right:8vw;top:30px;font-size:40px;font-weight:300;color:#e8d3a5}.enter-forest:hover{background:#234962ed}.resume-run{display:block;margin:0 5vw 14px auto;padding:10px 20px;background:#112a3be6;border:1px solid #d2bc84;color:#f7e8c8;font-size:14px}
.character-picker h2{font:italic 38px Georgia,serif}.character-picker h2 small{font:14px sans-serif;display:block;margin-top:8px}.character-reference{height:320px;margin:18px 0;background:url('/assets/image1.jpeg') 16% center/auto 100% no-repeat;border:1px solid var(--line)}.character-picker p{font-size:16px;margin:15px 0}.character-picker>.primary{width:100%}
body.forest-mode{background:linear-gradient(#071b2788,#061521a8),url('/assets/forest-new.webp') center/cover fixed}.forest-mode .topbar,.forest-mode .runbar{background:#081b2bc9;backdrop-filter:blur(7px)}.forest-mode .route,.forest-mode .choice{backdrop-filter:blur(5px)}.forest-mode .encounter-screen{background:#0a233367}.forest-mode .battle-stage{background:linear-gradient(0deg,#0a20315c,#05162008),url('/assets/forest-new.webp') center 62%/cover;box-shadow:inset 0 -30px 50px #0c243650}
#app.combat-app{grid-template-rows:108px minmax(0,1fr)}.combat-hud{background:linear-gradient(105deg,#071a33eb,#09233888 65%,transparent);border-bottom:0;align-items:start;justify-content:space-between;padding:8px 17px;overflow:visible}.frodia-vitals{width:min(70%,520px)}.frodia-name{font:italic 32px Georgia,serif;display:flex;align-items:center;justify-content:space-between;color:#fff5db;text-shadow:0 2px 4px #061a29}.frodia-name small{font:12px sans-serif;letter-spacing:.02em;color:#d8e8e9}.slant-health{position:relative;transform:skew(-12deg);border:1px solid #d9c89d;max-width:400px;margin:3px 14px 0 3px;background:#0c263bdd;height:28px}.slant-health>b{position:relative;display:block;z-index:1;font-size:15px;line-height:26px;padding:0 12px;transform:skew(12deg);text-shadow:0 1px 4px #000}.slant-health .bar{position:absolute;inset:0;height:100%;background:transparent}.slant-health .bar i{background:linear-gradient(90deg,#267579,#73b68e)}.player-shield{position:absolute;right:-24px;top:-5px;min-width:44px;height:37px;background:#193e60;border:2px solid #b5e0ef;color:#eff9ff;box-shadow:0 0 0 3px #0b243b;transform:skew(12deg) rotate(-7deg);text-align:center;line-height:33px;font-size:16px;font-weight:800}.tp-stars{display:flex;align-items:center;gap:10px;margin:5px 0 0 4px;max-width:100%}.tp-stars small{font-size:14px;font-weight:800}.tp-stars>span{color:#ffde7e;font-size:24px;line-height:1;letter-spacing:3px;text-shadow:0 0 8px #ffc97666;overflow:hidden;white-space:nowrap}.combat-hud .battle-menu{border:1px solid #bcd5df88;background:#0d2943bb;border-radius:50%;margin-top:2px}
body.battle-mode .pocket-battle{grid-template-rows:minmax(125px,1fr) 27px 25px clamp(238px,35dvh,300px) 72px}.pocket-battle .battle-frodia{width:31%;height:96%;left:-3%;bottom:-3%}.pocket-battle .enemy{grid-template-rows:24px 20px 5px minmax(0,1fr) 40px 20px}.pocket-battle .enemy h2{text-shadow:0 2px 4px #000;font-size:14px}.pocket-battle .enemy .intent{background:#071d31e8;border:1px solid #9eb5c88c;border-radius:7px;justify-content:center}.pocket-battle .count{color:#fff0bd;font-size:27px}.pocket-battle .enemy-hp{background:#102b40c9}.pocket-battle .enemybar{border:1px solid #dfd4b0}.pocket-battle .enemybar i{background:#9fc18e}
.pocket-battle .combat-actions{position:relative;display:grid;grid-template-columns:78px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 24px;gap:0 8px;padding:0}.battle-message{grid-column:2;grid-row:1;border:1px solid #c9dbe9;background:#071d34eb;border-radius:10px 10px 0 0;padding:8px 10px;font-size:14px;line-height:1.35;color:#f4f7ee;display:flex;align-items:center;overflow:hidden}.combat-actions .endturn{grid-column:1;grid-row:1/3;min-width:0;padding:2px;background:linear-gradient(135deg,#294568,#132844);border:2px solid #b8cfe0;border-radius:50% 50% 40% 40%;font:italic 20px Georgia,serif;color:#fff2d0;line-height:1.1}.combat-actions .use-card{grid-column:2;grid-row:2;min-height:0;height:24px;clip-path:none;border-radius:0 0 8px 8px;background:#183d56;border:1px solid #bed7e6;border-top:0;color:#d5eff5;font-size:12px;padding:2px 8px}.combat-actions .use-card:disabled{opacity:1;color:#8ea5b3;background:#0d263d}.hand-rack .card{-webkit-touch-callout:none;user-select:none}.module-reward-heading{display:flex;align-items:start;gap:10px;justify-content:space-between}.module-reward-heading h3{flex:1}.discard-module{flex-shrink:0;padding:7px 11px;border:1px solid #db9b9b88;border-radius:5px;font-size:14px;color:#ffd4d2;background:#49252aa8}.discard-module:disabled{opacity:.6}.discarded-module{opacity:.4}.discarded-module h3{text-decoration:line-through}
@media(max-width:700px){.city-heading{padding:25px 22px;gap:8px}.city-title{gap:13px}.city-crest{font-size:33px;padding:8px 10px;outline-offset:3px}.city-title h1{font-size:42px}.city-title p{font-size:13px;letter-spacing:.12em;margin-top:9px}.city-tools{gap:6px;flex-direction:column}.city-tools button{height:30px;width:30px;font-size:17px}.city-menu{width:76%;gap:18px;margin-top:8vh;margin-bottom:175px}.city-menu button{padding:18px 40px 18px 24px}.city-menu span{font-size:29px}.city-menu small{font-size:12px}.city-menu b{right:16px;top:31px}.city-character-label{right:24px;bottom:155px}.city-character-label strong{font-size:30px}.city-character-label small{font-size:12px}.enter-forest{min-height:100px;padding:21px 25px}.enter-forest>span{font-size:32px}.enter-forest>b{right:24px;font-size:30px}.waldmeer-hub{background-position:57% center}.pocket-battle .enemy{grid-template-rows:30px 18px 5px minmax(0,1fr) 40px 20px}.pocket-battle .intent>span:last-child{font-size:12px}.frodia-vitals{width:77%}.frodia-name{font-size:29px}.tp-stars>span{font-size:22px;letter-spacing:2px}.combat-hud{padding:8px 12px}.pocket-battle .battle-message{font-size:14px}}
@media(max-height:640px) and (orientation:portrait){#app.combat-app{grid-template-rows:86px minmax(0,1fr)}.frodia-name{font-size:24px}.slant-health{height:23px}.slant-health>b{line-height:21px;font-size:14px}.tp-stars{margin-top:4px}.tp-stars>span{font-size:20px}.player-shield{height:32px;line-height:28px}.combat-hud{padding-top:3px}body.battle-mode .pocket-battle{grid-template-rows:minmax(90px,1fr) 23px 22px 205px 62px;gap:2px}.pocket-battle .enemy{grid-template-rows:25px 17px 4px minmax(0,1fr) 31px 0}.pocket-battle .enemy-status{display:none}.pocket-battle .battle-message{font-size:13px;padding:5px 8px}.city-menu{margin-top:3vh;margin-bottom:175px;gap:12px}.city-menu button{padding-top:12px;padding-bottom:12px}.city-menu span{font-size:26px}.city-character-label{display:none}.city-heading{padding-top:18px}}
@media(orientation:landscape) and (max-height:650px){.city-heading{padding:18px 5vw}.city-title h1{font-size:40px}.city-crest{font-size:30px}.city-menu{margin:0 0 115px;width:45%;gap:9px}.city-menu button{padding-top:9px;padding-bottom:9px}.city-menu span{font-size:24px}.city-menu small{display:none}.city-menu b{top:17px}.enter-forest{min-height:70px;padding:12px 7vw}.enter-forest>span{font-size:30px}.city-character-label{bottom:100px}.resume-run{position:absolute;right:2vw;bottom:12px;z-index:1;margin:0}.enter-forest>b{display:none}#app.combat-app{grid-template-rows:82px minmax(0,1fr)}.frodia-vitals{max-width:45%}.frodia-name{font-size:25px}.tp-stars{margin-top:3px}.tp-stars>span{font-size:19px}.slant-health{height:24px}.slant-health>b{line-height:22px}.combat-hud{padding:2px 13px}body.battle-mode .pocket-battle{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:25px minmax(0,1fr) 64px}.pocket-battle .combat-actions{grid-column:2;grid-row:3;grid-template-columns:65px minmax(0,1fr)}.pocket-battle .battle-stage{grid-row:1/4}.pocket-battle .hand-rack .card-art{display:none}.pocket-battle .battle-message{font-size:13px}.pocket-battle .enemy{grid-template-rows:25px 18px 4px minmax(0,1fr) 34px 20px}}
@media(prefers-reduced-motion:reduce){.city-menu button{transition:none}}

/* In-game master editor */
.master-editor{padding:clamp(20px,4vw,54px);max-width:1180px;margin:0 auto;color:#eef8f2}.master-editor-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:28px}.master-editor-head h1{font-size:clamp(30px,5vw,58px);margin:0}.master-editor-head p{color:#a9c3b9}.master-editor-head button+button{margin-left:8px}.master-section{margin:30px 0}.master-section>h2{display:flex;align-items:baseline;gap:10px;font-size:24px;border-bottom:1px solid #42635a;padding-bottom:10px}.master-section>h2 small{font-size:12px;color:#83a99a;font-weight:500}.master-row{background:rgba(6,25,27,.82);border:1px solid rgba(155,208,180,.22);padding:15px;margin:12px 0;box-shadow:10px 10px 0 rgba(5,18,19,.18)}.master-row-title{display:flex;align-items:center;gap:12px;margin-bottom:12px}.master-row-title b{font-family:monospace;color:#c7efd4;font-size:12px}.master-row-title span{font-size:18px;font-weight:700}.master-row-title small{margin-left:auto;color:#9fc0b0}.master-fields{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.master-fields label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#9fc0b0}.master-fields .wide-field{grid-column:1/-1}.master-fields input,.master-fields textarea{font:inherit;font-size:14px;color:#effff5;background:#102e30;border:1px solid #3a655d;padding:9px;border-radius:2px}.master-fields textarea{resize:vertical;line-height:1.45}.small-action{font-size:12px;padding:8px 14px;margin-top:12px}.master-editor .panel-top{position:sticky;top:0}
@media(max-width:680px){.master-editor{padding:18px 12px}.master-editor-head{display:block}.master-editor-head>div:last-child{margin-top:16px}.master-fields{grid-template-columns:1fr 1fr}.master-fields .wide-field{grid-column:1/-1}.master-row-title span{font-size:16px}}
.master-category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:25px 0}.master-category-grid button{background:linear-gradient(135deg,#153d4d,#081e34);border:1px solid #aac4a8;padding:30px 12px;text-align:center;color:#f7efd6}.master-category-grid button>span{font-size:38px;color:#a8e3d8}.master-category-grid h2{font-size:22px;margin:12px 0}.master-category-grid small{font-size:14px}.master-list{display:grid;gap:9px}.master-list button{display:flex;align-items:center;gap:15px;padding:18px 14px;text-align:left;border:1px solid #547c80;background:#0c2b3a;color:#eff7ee}.master-list small{font-size:12px;color:#a5c9cf}.master-list b{font-size:16px;flex:1}.master-list span{font-size:14px;color:#ecdaaf}.master-content>h2{margin:16px 0;font-size:24px}.master-content>.primary{margin-top:22px;width:100%;min-height:48px}.master-fields fieldset{border:1px solid #426d79;padding:14px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.master-fields legend{font-size:14px;color:#dbecd8}.master-fields label{font-size:14px}.master-fields input,.master-fields textarea{font-size:16px;min-width:0;width:100%}.master-fields input:disabled{opacity:.5}#master-error{color:#ffd89f;font-size:15px;margin:12px 0;white-space:pre-wrap}.master-editor .outline{font-size:14px}.city-tools [data-action="masterEditor"]{font-size:12px;min-width:48px;border-radius:8px}
@media(max-width:680px){.master-category-grid{grid-template-columns:1fr;gap:12px}.master-category-grid button{padding:18px;display:flex;align-items:center;gap:15px}.master-category-grid h2{flex:1;font-size:20px;margin:0}.master-category-grid button>span{font-size:28px}.master-fields fieldset{grid-template-columns:1fr}.master-list button{gap:10px;padding:16px 10px}.master-list b{font-size:15px}.master-editor-head h1{font-size:30px}.master-fields{grid-template-columns:1fr}.master-editor-head p{font-size:14px}}
