:root{--game-ink:#352846;--game-purple:#8052e8;--game-lilac:#e7d9f7;--game-gold:#ffd16c;--game-cream:#fff8e9;--ink:var(--game-ink);--paper:#f3edf9;--white:#fffaf0;--muted:#8b7b96;--line:#ddd0e9;--blue:var(--game-purple);--green:#79a989}
body{background:#d8d1e4;color:var(--game-ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}.app-shell{background:#f3edf9;box-shadow:0 0 70px #35284628;min-height:100dvh;overflow-x:clip}main{padding:18px 16px 108px;min-width:0}.mobile-top{height:64px;padding:12px 17px;border-bottom:2px solid #3528460c;background:#fff7e9}.mobile-top .brand{gap:8px}.mobile-top .brand>svg{color:var(--game-purple);background:#e9d8ff;border:2px solid #524066;border-radius:10px;padding:4px;width:31px;height:33px;box-shadow:0 2px 0 #524066}.mobile-top .brand>span{font-size:20px;letter-spacing:.7px;font-weight:900;color:#473250}.mobile-top>.icon-button{border:2px solid #cabbda;background:#fffaf0;border-radius:10px;width:31px;height:31px;color:#7f6594}.mobile-top>.icon-button svg{width:17px;height:17px}.mobile-nav{height:73px;padding:8px 7px calc(9px + env(safe-area-inset-bottom));background:#fff8eaf7;border-top:2px solid #d4c5df;box-shadow:0 -5px 20px #41324d0a;align-items:start;backdrop-filter:blur(12px)}.mobile-nav button{height:50px;font-size:11px;font-weight:700;gap:4px;color:#a493ac;position:relative;border-radius:12px}.mobile-nav button.active{background:#ece0fc;color:#7950c5}.mobile-nav button.active:before{content:'';height:4px;width:20px;position:absolute;top:-10px;left:calc(50% - 10px);border-radius:4px;background:#9563e8}.mobile-nav svg{height:22px;width:22px;stroke-width:2.1}.mobile-demo-tools{font-size:9px;margin-top:32px;border-top:1px dashed #d6c8e4;padding-top:14px;color:#a89ab1}.mobile-demo-tools button{font-size:9px;color:#a89ab1}button{ -webkit-tap-highlight-color:transparent}.button{border:2px solid #4c385c;border-radius:13px;min-height:46px;padding:11px 15px;font-size:14px;font-weight:800;letter-spacing:.3px;box-shadow:0 4px 0 #4c385c;transition:transform .12s,box-shadow .12s,filter .12s}.button.primary{background:#8455e7;border-color:#51336f;box-shadow:0 4px 0 #51336f,inset 0 2px 0 #b998ff;color:#fff}.button.secondary{background:#fff9ed;border-color:#cfbedb;color:#7f6592;box-shadow:0 3px 0 #cfbedb}.button.gold-button{background:#ffda85;color:#765123;border-color:#b68d45;box-shadow:0 3px 0 #b68d45;font-size:12px;min-height:38px}.button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.035);box-shadow:0 5px 0 #51336f}.button:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 #51336f}.button:disabled{filter:saturate(.2);opacity:.5;box-shadow:0 2px 0 #c2b7ce}.paper{border:2px solid #d2c1df;background:#fffaf0;border-radius:17px}.game-kicker{font-size:10px;font-weight:700;color:#a088ad;letter-spacing:1px;display:block;margin-bottom:4px}.game-glyph{flex-shrink:0;vertical-align:middle}.camp-title,.trial-heading{display:flex;justify-content:space-between;align-items:center;margin:0 2px 17px}.camp-title h1,.trial-heading h1{font-size:24px;font-weight:900;line-height:1.45;letter-spacing:0}.round-control{height:31px;width:31px;border:2px solid #c7b5d6;background:#fff9ef;border-radius:11px;color:#9274ac;font-size:17px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 0 #c7b5d6}.camp-board{border:2px solid #9a80b5;border-radius:22px;overflow:hidden;background:#fff7e6;box-shadow:0 5px 0 #bdabc9}.camp-map{height:243px;position:relative;isolation:isolate;overflow:hidden;background:#dcd6f6;border-bottom:2px solid #d6c6cb}.world-art{width:100%;height:100%;object-fit:cover;display:block}.camp-map .world-art{height:252px;width:100%}.map-sign{position:absolute;top:14px;left:14px;border:2px solid #a990ad;background:#fff6e4eF;padding:5px 10px;border-radius:8px;color:#6d537e;font-size:11px;font-weight:800;transform:rotate(-3deg);box-shadow:0 2px 0 #9e8c9d}.map-destination{position:absolute;right:13px;top:14px;color:#8b6a9c;border-radius:12px;padding:4px 6px;background:#fff8eaaa;font-size:10px;font-weight:700}.camp-party{position:absolute;left:calc(50% - 87px);bottom:8px;display:flex;align-items:end;gap:-5px}.camp-party>span{width:61px;display:block;animation:idle-bounce 3.2s ease-in-out var(--delay) infinite}.camp-party .adventurer{width:80px;height:113px;margin-left:-9px}.camp-party>span:nth-child(2) .adventurer{width:95px;height:127px;position:relative;z-index:2}.floating-rune{position:absolute;font-size:19px;font-style:normal;font-weight:900;background:#fff8e9;color:#9f7ac5;border:2px solid #cbb8e2;padding:2px 7px;border-radius:8px;animation:rune-float 3s ease-in-out infinite}.rune-one{left:23px;bottom:65px;transform:rotate(-10deg)}.rune-two{right:25px;bottom:72px;animation-delay:-1.5s;transform:rotate(12deg)}.expedition-cta{padding:17px 19px 15px}.expedition-cta h2{font-size:19px;line-height:1.4;font-weight:900}.expedition-cta p{font-size:11px;color:#97849c;line-height:1.6;margin:5px 0 14px}.expedition-cta .button{font-size:16px;min-height:48px}.playtime{display:block;text-align:center;font-size:9px;font-weight:600;color:#b6a4bc;margin-top:13px}.playtime svg{color:#bca0d2;margin-right:3px}.camp-links{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:18px}.camp-links button{border:2px solid #d3c2df;border-radius:13px;background:#fdf7eb;padding:12px 9px;display:flex;align-items:center;gap:7px;box-shadow:0 3px 0 #e2d5eb;text-align:left;color:#8c6ab0}.camp-links button>span{font-size:11px;font-weight:800;color:#6b507f;flex:1}.camp-links b{font-size:9px;color:#aa95b7;display:block;margin-top:4px;font-weight:500}.camp-links em{font-size:19px;font-style:normal;color:#c8b4d5}.game-section{margin:23px 2px 12px}.game-section h2{font-size:17px;font-weight:900;line-height:1.4}.game-section>span,.game-section>button{font-size:10px;color:#a18eab}.gate-card{display:grid;grid-template-columns:135px 1fr;gap:10px;align-items:center;background:#e6def1;border:2px solid #c5b1d7;border-radius:17px;padding:10px 14px;box-shadow:0 3px 0 #d9cae4}.gate-monster{text-align:center;position:relative;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center}.gate-monster .trial-monster{height:100px;width:120px;animation:idle-bounce 4s ease-in-out infinite}.gate-monster>span{font-size:9px;color:#9f85b0;font-weight:800}.gate-card h3{font-size:16px;font-weight:800}.gate-card p{font-size:10px;color:#9882a6;line-height:1.8;margin:5px 0 9px}.gate-card p b{color:#79519a}.camp-team{display:flex;justify-content:space-between;gap:7px}.camp-team>button{flex:1;min-width:0;text-align:center;border:2px solid #d5c4e2;background:#fff7e6;border-radius:12px;padding:3px 3px 8px;position:relative;box-shadow:0 3px 0 #e0d1e9}.team-mini{height:76px;display:flex;align-items:center;justify-content:center;background:#eae0f1;border-radius:7px;overflow:hidden}.team-mini .adventurer{width:61px;height:81px;max-width:125%}.camp-team b{font-size:10px;display:block;margin-top:6px}.camp-team small{position:absolute;top:6px;left:7px;background:#fff3be;color:#9c742e;border:1px solid #d5b87a;padding:1px 4px;font-size:8px;font-weight:900;border-radius:4px}
/* Expedition, a game board with three competing opportunities. */
.journey-head{display:flex;gap:10px;align-items:center;margin:0 1px 12px}.journey-avatar{width:49px;height:53px;overflow:hidden;background:#dfcef4;border:2px solid #ba9cce;border-radius:13px;flex-shrink:0;padding:0}.journey-avatar .adventurer{height:75px;width:58px;margin:-1px 0 0 -5px}.journey-head>div{flex:1}.journey-head>div>span{font-size:9px;color:#a38bac;font-weight:700}.journey-head h1{font-size:21px;font-weight:900;line-height:1.3}.journey-head small{font-size:9px;color:#a48eae;line-height:1.8}.turn-counter{color:#b7a2c0;font-size:10px;font-weight:700}.turn-counter b{color:#8760a7;font-size:24px}.adventure-hud{display:flex;align-items:center;gap:15px;border:2px solid #d7c6e4;background:#fff9ed;border-radius:13px;padding:9px 11px;font-size:12px;margin-bottom:12px;box-shadow:0 2px 0 #e4d8ed}.adventure-hud>span,.adventure-hud>button{display:flex;align-items:center;gap:5px;white-space:nowrap;color:#a68b6a}.adventure-hud .energy-pill{color:#b47e8d;flex:1}.energy-pill>i{flex:1;min-width:35px;max-width:65px;background:#eadce6;display:block;height:7px;border-radius:5px;overflow:hidden;margin-left:3px}.energy-pill em{display:block;background:#d88ca0;height:100%;border-radius:5px}.adventure-hud b{font-size:12px;color:#725774}.adventure-hud>button{color:#9c7cc0;position:relative;padding:0}.notify-dot{position:absolute;top:-4px;right:-5px;border:2px solid #fff7ec;width:9px;height:9px;border-radius:50%;background:#f2938c;animation:notify-pulse 1.5s infinite}.journey-stage{height:247px;border:2px solid #b7a0ce;border-radius:18px;position:relative;overflow:hidden;isolation:isolate;background:#d8d5f1;box-shadow:0 4px 0 #d4c3df}.journey-sky{position:absolute;inset:0;z-index:-1}.journey-sky .world-art{opacity:.7;object-fit:cover;transform:scale(1.05)}.journey-chapter{position:absolute;top:14px;left:13px;right:13px;text-align:center;z-index:2}.journey-chapter b{font-size:16px;font-weight:900;color:#6a4e87;text-shadow:0 2px 0 #ffffff91;display:block}.journey-chapter span{font-size:9px;font-weight:600;color:#937ba4;display:block;margin-top:4px}.stage-character{position:absolute;left:calc(50% - 56px);bottom:31px;width:112px;height:150px;animation:idle-bounce 3.6s ease-in-out infinite}.just-rewarded .stage-character{animation:reward-hop .65s ease-out both,idle-bounce 3.6s 1s infinite}.stage-speech{position:absolute;right:20px;top:97px;background:#fff6e4;border:2px solid #b7a1c9;border-radius:9px 9px 9px 0;padding:6px 8px;font-size:9px;font-weight:700;font-style:normal;color:#8d6ea0;transform:rotate(3deg)}.path-track{position:absolute;left:20px;right:20px;bottom:11px;display:flex;align-items:center;justify-content:space-between;isolation:isolate}.path-track:before{content:'';position:absolute;left:9px;right:9px;height:5px;top:12px;border-bottom:3px dotted #a39595;z-index:-1}.path-track>span{height:26px;width:26px;display:flex;align-items:center;justify-content:center;border:2px solid #c3afa4;background:#f4e8ca;border-radius:50%;color:#bda488;font-size:16px;font-weight:900}.path-track>span.passed{background:#c1dfb1;color:#729b64;border-color:#97b385}.path-track>span.current{background:#ffe5a2;border-color:#bc9857;color:#b98f3c;box-shadow:0 0 0 4px #fff5ca55;transform:scale(1.15)}.path-track>span:last-child{border-radius:7px}.reward-burst{position:absolute;inset:70px 14px 66px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;pointer-events:none}.reward-burst>span{border-radius:7px;background:#fff4d4f2;border:1.5px solid #d4ac69;color:#967040;font-size:11px;font-weight:900;padding:3px 7px;animation:reward-label .6s calc(var(--i,0)*.05s) both;box-shadow:0 2px 0 #c9a97666}.reward-strip{display:flex;gap:5px;align-items:center;flex-wrap:wrap;background:#fff4d4;border:1.5px solid #e2c695;border-radius:10px;padding:8px 9px;margin-top:10px;font-size:9px;color:#a08759}.reward-strip b{font-size:10px;color:#9a7946;margin-right:auto;display:flex;align-items:center;gap:4px}.reward-strip span{background:#fffaf0;border-radius:4px;padding:3px 5px;font-weight:700}.route-prompt{display:flex;align-items:center;justify-content:space-between;margin:21px 2px 10px}.route-prompt h2{font-size:17px;font-weight:900}.route-prompt span{font-size:10px;color:#af98b8}.language-switch{display:flex;gap:6px;margin-bottom:12px}.language-switch button{flex:1;border:1.5px solid #d7c6e4;color:#ac94b8;background:#fcf6ff;border-radius:9px;padding:7px 3px;font-size:10px;font-weight:900;min-height:33px}.language-switch span{font-size:9px;font-weight:500;margin-left:3px}.language-switch .active{border-color:#b490d9;background:#e5d5f8;color:#835ab0;box-shadow:inset 0 1px 0 #f8ecff}.route-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.route-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;border:2px solid #b5a0cf;background:#fef9ee;border-radius:13px;padding:0 6px 8px;min-width:0;box-shadow:0 4px 0 #bba9cb;transition:transform .15s,filter .15s;overflow:visible}.route-card.rarity-elite{background:#fff0dc;border-color:#d8ad80;box-shadow:0 4px 0 #d3aa80}.route-card.rarity-rare{background:#eee3ff;border-color:#b393d8;box-shadow:0 4px 0 #ac8fce}.route-card:active:not(:disabled){transform:translateY(4px);box-shadow:none}.route-card:disabled{opacity:.45;filter:saturate(.4)}.route-card-top{display:flex;justify-content:space-between;align-items:center;gap:3px;margin:0 -6px 10px;align-self:stretch;padding:6px 6px;border-bottom:1px solid #b19ac632;color:#9d85ac;background:#e4d8f133;border-radius:10px 10px 0 0;white-space:nowrap}.route-card-top>span{font-size:9px;font-weight:800;letter-spacing:-.4px}.route-card-top small{font-size:8px;font-weight:600;color:#b78e98;display:flex;gap:2px;align-items:center}.node-icon{width:50px;height:49px;display:flex;align-items:center;justify-content:center;color:#8c6dac;background:#ede2f6;border:2px solid #cfb8e5;border-radius:13px;box-shadow:inset 0 2px 0 #f9f1ff,0 3px 0 #e1cdea;margin-bottom:10px;transform:rotate(-5deg)}.rarity-elite .node-icon{color:#ba8d53;background:#ffdfab;border-color:#dfb674;box-shadow:inset 0 2px 0 #fff2d4,0 3px 0 #e9c99a;transform:rotate(5deg)}.rarity-rare .node-icon{background:#d5bef5;color:#8557ae;border-color:#b393d7}.node-title{font-size:12px;font-weight:900;line-height:1.5;letter-spacing:-.4px;white-space:nowrap}.node-reward{display:flex;gap:4px;align-items:center;justify-content:center;font-size:10px;color:#a38cae;margin-top:10px;white-space:nowrap}.node-reward strong{font-size:20px;letter-spacing:-.5px;color:#8662a6;line-height:1.2;font-weight:900}.rarity-elite .node-reward strong{color:#b98a53}.node-reward-sub{font-size:9px;color:#b29fc1;margin:5px 0 0;font-weight:600;min-height:14px}.node-detail{font-size:8px;color:#b5a3bf;line-height:1.7;margin-top:5px;min-height:27px}.node-go{align-self:stretch;background:#eee3f8;color:#9a7bb8;font-size:10px;font-weight:900;padding:6px 2px;margin-top:6px;border-radius:7px}.rarity-elite .node-go{background:#f5e1bf;color:#b28a55}.rarity-rare .node-go{background:#dac4f1;color:#9065b2}.chain-badge{position:absolute;top:29px;right:-3px;background:#ffc873;color:#9c6e3e;border:1.5px solid #b98f59;border-radius:6px;transform:rotate(8deg);font-size:8px;padding:2px 5px;font-weight:900}.node-risk{font-size:7px;color:#b38288;line-height:1.5;margin-top:4px}.camp-rest{display:flex;align-items:center;gap:9px;background:#e7ead7;border:1.5px solid #c6c9a9;border-radius:12px;margin-top:14px;min-height:55px;width:100%;padding:9px 12px;text-align:left;color:#99a071}.camp-rest>span{flex:1}.camp-rest b{display:block;color:#869061;font-size:11px;font-weight:800}.camp-rest small{font-size:9px;color:#a2aa80;margin-top:3px;display:block}.camp-rest em{font-size:10px;font-style:normal;color:#969c72;font-weight:700}.journey-inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:17px}.journey-inventory>button{position:relative;background:#fcf6ff;border:1.5px solid #dbcae7;border-radius:11px;padding:11px 4px 9px;display:flex;align-items:center;justify-content:center;gap:5px;color:#a184b2}.journey-inventory b{font-size:10px;font-weight:700}.learn-ready{position:absolute;top:-7px;right:4px;color:#b0764f;background:#ffdfb1;border:1px solid #e4b980;font-size:8px;padding:1px 5px;border-radius:5px;font-weight:700}.build-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px;align-items:center}.build-strip>span,.build-strip>button{display:flex;align-items:center;gap:3px;font-size:9px;border:1px solid #ddcce9;color:#a185b1;background:#f9f1ff;border-radius:6px;padding:4px 6px}.build-strip>small{color:#b6a2c0;font-size:9px}.pending-loot{display:flex;align-items:center;gap:12px;width:100%;padding:16px 14px;margin:20px 0;background:#ffedbd;border:2px solid #d3ab68;border-radius:14px;color:#b28b4d;box-shadow:0 4px 0 #dbc08a}.pending-loot>span{flex:1;text-align:left}.pending-loot b{display:block;font-size:15px;color:#a67a3b}.pending-loot small{display:block;font-size:10px;color:#b4986b;margin-top:6px}.pending-loot em{font-size:25px;font-style:normal}
/* Summoning and build choice. */
.page-heading{margin-bottom:17px}.page-heading h1{font-size:24px;font-weight:900}.eyebrow{color:#aa91b3;font-weight:700;letter-spacing:1px}.subtitle{color:#aa94b4;font-size:11px}.creation-card{border:2px solid #ba9fd5;background:linear-gradient(145deg,#f6eeff,#e9ddf8);box-shadow:0 4px 0 #d1bce1;padding:17px}.creation-trait{background:#e2c7ff;color:#9672b2;border:1px solid #c5a3de;font-weight:700}.creation-heading{font-size:10px}.creation-avatar{height:167px;margin-top:10px}.creation-avatar:before{opacity:1;background:#f1defe;border:2px dashed #ccace7;inset:3px 4px;width:157px;height:157px}.creation-avatar:after{content:'✦';position:absolute;color:#ffd16c;font-size:33px;font-weight:900;right:-6px;top:4px;text-shadow:0 2px 0 #bf9b64}.creation-avatar .adventurer{height:165px;width:123px;filter:drop-shadow(0 5px 0 #a989bd22);animation:idle-bounce 3s ease-in-out infinite}.creation-card>h2{font-size:25px;font-weight:900}.creation-motto{font-size:10px}.random-button{background:#fff4ce;color:#ad8746;border-color:#c9a568;box-shadow:0 3px 0 #c9a568;font-size:12px;min-height:38px;margin:15px 0 19px}.random-button>svg{color:#b28b4d}.initial-stat-grid{gap:5px}.initial-stat-grid>div{border:1.5px solid #d5bce8;background:#f4eafa;padding:10px 2px;border-radius:10px}.initial-stat-grid span{font-size:9px}.initial-stat-grid b{font-size:18px;color:#9b81ac}.initial-stat-grid .strong-stat{background:#f9dfb2;border-color:#dab272}.initial-stat-grid .strong-stat b{color:#b0874a}.initial-stat-grid .strong-stat span{color:#c1a574}.creation-total{font-size:8px;color:#b19cc0}.creation-total span{font-size:8px}.creation-section{margin-top:23px}.creation-section .section-heading h2{font-size:16px;font-weight:900}.prototype-tabs{gap:5px}.prototype-tabs button{border:1.5px solid #d1bddf;background:#fff9ed;border-radius:9px;padding:9px 1px;font-size:10px}.prototype-tabs .selected{background:#dfc9f8!important;border-color:#b696d1!important;color:#8b64b0!important;box-shadow:0 2px 0 #bd9cd7}.innate-note{font-size:10px;color:#af96bb}.innate-note b{color:#aa86bc}.creation-language-values{font-size:9px}.creation-section>select{background:#fffaf0;border:1.5px solid #d8c4e5;border-radius:10px;font-size:11px;color:#8a6c9d}.field-label{font-size:11px;color:#9f86ad}.oath-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.oath-card{display:flex;flex-direction:column;align-items:center;gap:7px;border:2px solid #d5c0e6;border-radius:12px;background:#fff8e9;padding:12px 7px;color:#aa8dbc;min-width:0;box-shadow:0 3px 0 #e0d2eb}.oath-card b{font-size:13px;font-weight:900}.oath-card small{font-size:9px;line-height:1.6;min-height:44px;color:#baa4c5}.oath-card.selected{border-color:#aa7fca;background:#ecdcff;box-shadow:0 3px 0 #b698cc;color:#9166b6}.oath-card.selected small{color:#ac8ebe}.mentor-card{background:#fff8ee;border:1.5px solid #d4c1e1;border-radius:10px}.mentor-card.selected{border-color:#bc9ad4;box-shadow:0 2px 0 #c9afde;background:#f0e3ff}.mentor-card small{font-size:8px}.mentor-face{width:33px;height:42px;overflow:hidden}.mentor-face .adventurer{width:38px;height:52px}.creation-start{border:0;padding-top:5px}.creation-start .button{font-size:16px}
/* Collectible character cards, existing team/skill/shop paths. */
.character-grid{gap:11px}.collect-card{border:2px solid #bfacd2;border-radius:15px;box-shadow:0 4px 0 #d5c5e1;background:#fff9ee;overflow:hidden}.collect-card .character-art{height:145px;background:radial-gradient(ellipse at 50% 110%,var(--wash),#eee0f8);position:relative}.collect-card .character-art:before{content:'';position:absolute;inset:12px 13px 0;border:1px solid #ffffff74;border-radius:30% 30% 0 0}.collect-card .character-art>.adventurer{height:142px;width:105px;margin-top:8px;z-index:1}.card-grade{position:absolute;top:9px;left:10px;color:#a37e41;font-size:18px;font-weight:1000;line-height:1;text-shadow:1px 1px 0 #fff4cb;z-index:2}.grade-A .card-grade,.grade-S .card-grade{color:#a36cd4}.card-element{position:absolute;top:8px;right:8px;color:#a389b9;border:1px solid #cfbadd;background:#f8effbbd;display:flex;align-items:center;justify-content:center;padding:3px;border-radius:8px}.card-origin{position:absolute;bottom:8px;right:8px;background:#fff7deca;border:1px solid #e0cba4;border-radius:4px;padding:2px 4px;font-size:8px;color:#b49765;z-index:3}.character-copy{padding:12px 11px;background:#fff9ed}.character-copy h3{font-size:17px;font-weight:900;display:flex;align-items:baseline;justify-content:space-between}.character-copy h3 small{font-size:12px;color:#aa8fbd;letter-spacing:0}.character-copy p{font-size:9px;color:#b39bc0;margin-top:4px}.card-language{font-size:9px;color:#b399c1;border-top:1px dashed #e7d6ed;padding-top:8px;margin-top:8px}.card-language b{font-weight:800;color:#a283b7}.card-language>span{float:right}.formation{border:2px solid #c5aed8;background:#eee1f8;box-shadow:0 4px 0 #d6c2e2;padding:15px 9px}.formation-slots{gap:5px}.formation-slot{border:1.5px solid #cfb8de;border-radius:10px;background:#fff7e6;min-width:0}.formation-slot.selected{border-color:#a47ac7;background:#ebd8fd;box-shadow:0 2px 0 #bc9fd4}.formation-slot .adventurer{height:76px;width:56px;max-width:100%}.formation-slot h3{font-size:11px}.slot-no{font-size:7px}.formation-slot small{font-size:7px}.slot-arrows .icon-button{font-size:14px;width:21px}.formation-footer{border-color:#d0b6df}.candidate{border:1.5px solid #d4bddf;background:#fff9ec;border-radius:12px}.candidate.selected{border:1.5px solid #ad86c9;background:#ead9f9}.candidate .adventurer{height:73px;width:55px}.tags>span{font-size:9px;background:#ebd9f9;color:#a283b5;border:1px solid #d8bde8;border-radius:7px}.mini-stats i b,.track b{background:#b08ad2}.mini-stats em{color:#9a7eac}.mini-stats span{color:#ad96ba}.language-bars>div{font-size:11px}.language-bars .track{background:#eadbf0}.language-bars strong{color:#a98abc}.sketch-dialog,.sketch-dialog.wide-dialog{border:2px solid #a487bc;background:#fff8ea;border-radius:20px;box-shadow:0 7px 0 #6e4d88,0 15px 80px #2d173a47;padding:30px 19px 23px}.sketch-dialog::backdrop{background:#2c1e3c8c;backdrop-filter:blur(5px)}.sketch-dialog h2{font-size:22px;font-weight:900;line-height:1.5}.sketch-dialog p{font-size:11px;color:#a890b4;line-height:1.8;margin-top:5px}.dialog-close{border:1.5px solid #cbb1da;border-radius:8px;background:#f0e0fc;color:#a483bb;width:26px;height:26px;right:10px;top:10px}.dialog-close svg{height:15px;width:15px}.event-options{gap:11px;margin-top:20px}.event-options>button{border:2px solid #d5bde4;background:#f3e7fb;border-radius:12px;box-shadow:0 3px 0 #e1d0eb;padding:13px 10px;color:#9d7eb1}.event-options b{font-size:12px;color:#9871b0;font-weight:800}.event-options small{font-size:10px;color:#b09ac1;line-height:1.7}.event-options .game-glyph{flex-shrink:0}.event-heading{align-items:center}.event-heading>.adventurer{height:115px;width:86px}.option-letter{height:29px;width:29px;border-radius:8px;border:1.5px solid #d4b8e4;background:#e6d1f7;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:#ae8dc5}.shop-card{border:1.5px solid #d3b9e2;border-radius:13px;background:#f8eefc;box-shadow:0 3px 0 #e7d7ec}.shop-card h3{font-size:13px;color:#9c77b1}.shop-card>svg{color:#ad8cc2}.shop-card p{font-size:10px}.shop-card .button{font-size:10px;min-height:33px}.learned-list>div:not(.empty-state){background:#e6d7f6;border:1.5px solid #cbb0dd;border-radius:10px}.learned-list b,.skill-row b{font-size:12px;color:#9875ae}.learned-list small,.skill-row small{color:#b298c2;font-size:9px}.skill-row{border-color:#e7d7ec;gap:8px;padding:11px 0}.skill-row .button{min-width:82px;font-size:9px;padding:7px;min-height:33px}.detail-hero>.adventurer,.finish-hero>.adventurer{height:128px;width:95px;flex-shrink:0}.detail-hero h2,.finish-hero h2{font-size:21px}.finish-hero{align-items:center}.modal-footer{gap:10px}.modal-footer .button{font-size:12px}.history-list{max-height:180px;overflow:auto}.history-list>div{border-color:#dfcce8;font-size:10px}.history-list>div span{font-size:9px;color:#b69cc2}.history-list>div p{font-size:10px}.small-heading{font-size:12px;color:#a084af}.small-heading small{font-size:9px}.ranking-board{background:#fff8e9;border:2px solid #c7aed8;border-radius:16px}.ranking-row.me{background:#ebdbf8;border-color:#ac88ca}.ranking-row b{font-size:12px}.ranking-row>strong{color:#ab87c5}.ranking-head{color:#aa91b7}
/* Instant PvE, staged like a boss encounter rather than a calculator. */
.boss-arena{border:2px solid #af93c6;border-radius:19px;background:radial-gradient(ellipse at 50% 20%,#eadcfb,#d4c6e4);box-shadow:0 4px 0 #c6b1d6;padding:14px 16px 17px;text-align:center;position:relative;overflow:hidden}.boss-arena:before,.boss-arena:after{content:'✦';position:absolute;color:#f8e8b2;font-size:23px;top:74px;left:29px;transform:rotate(10deg)}.boss-arena:after{left:auto;right:30px;top:113px;font-size:14px}.arena-badge{display:inline-block;background:#d5bde8;border:1.5px solid #b89bd0;color:#9b7ab3;font-size:10px;font-weight:800;border-radius:8px;padding:5px 10px}.boss-figure{height:132px;margin-top:10px}.boss-figure .trial-monster{width:158px;height:132px;animation:idle-bounce 3.4s ease-in-out infinite}.boss-arena>h2{font-size:20px;font-weight:900;color:#7c5b92;margin:0}.boss-life{position:relative;margin:10px auto 0;max-width:235px;height:18px;border:1.5px solid #b68cbe;border-radius:6px;background:#af83bd;overflow:hidden}.boss-life i{background:#c594cb;display:block;height:100%;width:100%;box-shadow:inset 0 3px 0 #e2afd9}.boss-life>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff1f6}.versus-divider{display:flex;align-items:center;gap:12px;color:#aa85bb;margin:14px 18px 0}.versus-divider>span{height:1px;background:#bca3cd;flex:1}.versus-divider b{font-weight:1000;font-size:16px;font-style:italic;color:#9b75b3;text-shadow:0 1px 0 #e9d8f4}.arena-team{display:flex;justify-content:center;align-items:flex-end;gap:0}.arena-team>span{width:20%;max-width:67px;display:flex;flex-direction:column;align-items:center}.arena-team .adventurer{width:65px;height:88px}.arena-team small{font-size:9px;color:#a98abc;font-weight:700}.arena-power{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-top:15px}.arena-power>span{font-size:10px;color:#a48ab7}.arena-power strong{font-size:26px;color:#9770b4;font-weight:900;letter-spacing:1px}.arena-power b{font-size:8px;color:#aa90b9;background:#eadcf5;border-radius:5px;padding:3px 5px}.trial-rule{display:flex;gap:10px;padding:15px 9px;align-items:center;color:#ae90bf}.trial-rule>span{flex:1}.trial-rule b{display:block;font-size:11px;color:#9c7caf}.trial-rule small{display:block;font-size:9px;color:#b49fc1;line-height:1.7;margin-top:4px}.battle-start{font-size:19px;font-weight:900;margin:0 0 13px;min-height:49px;letter-spacing:2px}.instant-battle-note{text-align:center;font-size:9px;color:#b6a0c0;margin-top:14px}.chapter-select{margin-top:22px;border:1.5px solid #d5bee2;background:#fff9ee;border-radius:13px;padding:13px}.chapter-select summary{font-size:12px;font-weight:800;color:#a181b5;cursor:pointer;list-style:none;display:flex;justify-content:space-between}.chapter-select summary:after{content:'⌄';color:#bda3cd}.chapter-select summary b{font-size:10px;color:#b8a3c3;margin-left:auto;margin-right:8px}.chapter-select .floor-grid{margin-top:14px;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.floor{border:1.5px solid #dbc6e6;background:#faf3ff;color:#ba9fca;font-size:10px;min-width:0;height:34px}.floor.selected{border-color:#af87cb;background:#ddc2f3;color:#946bb0}.floor.cleared{background:#dbe8c8;border-color:#b8cca2;color:#9aaf80}.floor:disabled{opacity:.4}.report-list>button{background:#fff8e9;border:1.5px solid #d8c2e3;border-radius:12px;padding:12px;gap:10px;margin-bottom:9px}.report-list b{font-size:11px;color:#9e7db1}.report-list small{font-size:9px;color:#baa1c7}.result-badge{font-size:8px;background:#f3deda;border:1px solid #dfbdb6;color:#c39c9a;border-radius:6px}.result-badge.win{background:#e2ebcd;border-color:#bece9e;color:#9aaf7e}.battle-stage{background:radial-gradient(ellipse,#e8d9f7,#d5bfe9);border:2px solid #c5a5db;border-radius:15px;padding:17px 4px 5px;margin:4px 0 18px;overflow:hidden;position:relative}.battle-stage.victory{background:radial-gradient(ellipse,#fff0bb,#e2c7eb)}.battle-stamp{text-align:center;font-size:33px;line-height:1;font-weight:1000;font-style:italic;letter-spacing:1px;color:#c39440;-webkit-text-stroke:1px #ab7d32;text-shadow:0 3px 0 #ffeab3;transform:rotate(-4deg);animation:stamp-in .5s cubic-bezier(.2,1.5,.4,1)}.battle-stamp small{display:block;font-size:11px;font-style:normal;font-weight:800;letter-spacing:0;margin-top:9px;-webkit-text-stroke:0;color:#b08a63;text-shadow:none}.defeat .battle-stamp{font-size:27px;color:#a789be;-webkit-text-stroke:0;text-shadow:0 2px 0 #ead5f5}.result-party{display:flex;justify-content:center;align-items:center;margin-top:14px}.result-party>span{width:20%;position:relative;animation:reward-hop .6s var(--delay) both}.result-party .adventurer{height:98px;width:72px;max-width:120%}.mvp-tag{position:absolute;top:-4px;left:14px;transform:rotate(-8deg);font-size:8px;color:#ad7c32;border:1px solid #cca85d;padding:2px 5px;border-radius:5px;background:#ffdf8d;box-shadow:0 2px 0 #d4b875}.battle-result>div{width:41px;height:41px;background:#ead4f6;border:1.5px solid #cbb0df}.battle-result>div>svg{width:25px}.battle-result h2{font-size:18px;color:#a181b6}.battle-result p{font-size:10px}.result-numbers{background:#f2e4fb;border:1.5px solid #d9c2e4;border-radius:12px;padding:12px 7px;margin-top:15px;gap:5px}.result-numbers strong{font-size:20px;color:#a382bb;line-height:1.7}.result-numbers span{font-size:9px;color:#b49ac3}.result-numbers small{font-size:8px;color:#c0accb}.war-notes{background:#fff0cd;border:1.5px solid #e4c998;border-radius:11px;margin:14px 0;padding:10px}.war-notes p{font-size:10px;color:#b69c6d}.war-notes svg{color:#d2af73}.contribution-list>div{gap:8px}.contribution-list>div>span{width:67px;font-size:11px;color:#a182b4}.contribution-list small{font-size:8px;color:#bba4c6}.contribution-list strong{color:#aa8cbb;font-size:12px}.round-details{border-color:#ddc8e7;color:#b69cc4;font-size:10px}.round-details p,.round-details small{font-size:9px}
@keyframes idle-bounce{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}@keyframes rune-float{0%,100%{translate:0 0}50%{translate:0 -7px}}@keyframes reward-hop{0%{transform:translateY(4px) scale(.92)}45%{transform:translateY(-12px) scale(1.05)}100%{transform:translateY(0) scale(1)}}@keyframes reward-label{from{opacity:0;transform:translateY(13px) scale(.7)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes notify-pulse{50%{box-shadow:0 0 0 3px #f4c9c960}}@keyframes stamp-in{from{opacity:0;transform:scale(1.8) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(-4deg)}}
@media(max-width:370px){main{padding:15px 12px 104px}.route-choices{gap:6px}.route-card{padding:0 4px 7px}.route-card-top{margin:0 -4px 9px;padding:6px 4px}.route-card-top>span{font-size:8px}.route-card-top small{font-size:7px}.node-title{font-size:11px}.node-detail{font-size:7px}.node-reward strong{font-size:18px}.oath-card{padding:11px 5px}.gate-card{grid-template-columns:115px 1fr;padding:9px 12px}.adventure-hud{gap:10px}.arena-power{gap:6px}.arena-power strong{font-size:23px}.arena-power b{font-size:7px}.creation-total span{font-size:7px}.stage-speech{font-size:8px;right:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* End the current run, then let the player roll a fresh opening. */
.end-run-button{font-size:9px;line-height:1.4;color:#aa7d99;border:1.5px solid #d5b6cc;background:#fff1f1;border-radius:8px;padding:6px 5px;white-space:nowrap;min-height:30px;flex-shrink:0}.camp-end-run{display:block;margin:13px auto 0;font-size:10px;color:#a17a9d;text-decoration:underline;text-underline-offset:3px;padding:4px 5px}.dialog-end-run{position:absolute;left:14px;top:11px;font-size:9px;color:#ad8ba9;padding:3px 0}.dialog-end-run+*{margin-top:15px}.unrolled-avatar{height:132px;width:102px;display:flex;align-items:center;justify-content:center;z-index:1;font-size:87px;font-weight:900;color:#b59acb;text-shadow:0 4px 0 #9776b044;line-height:1;animation:idle-bounce 3s ease-in-out infinite}.creation-avatar.unrolled:after{content:'✧';color:#c6a9dd}.creation-avatar.unrolled:before{background:#e6d7f3}.creation-avatar.unrolled~h2{font-size:21px}.random-button{min-width:153px}.creation-start .button:disabled{font-size:13px}

/* One choice per page, backed by the same persisted creation draft. */
.setup-navigation{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;gap:8px}.setup-navigation button{font-size:11px;color:#9673aa;min-height:31px;padding:4px 2px}.setup-navigation>span{font-size:10px;color:#b199bd;font-weight:700}.setup-navigation button:last-child{font-size:9px;color:#b599b2}.setup-progress{display:flex;list-style:none;padding:0;margin:0 0 23px;justify-content:space-between;gap:4px;isolation:isolate;position:relative}.setup-progress:before{content:'';position:absolute;height:2px;left:20px;right:20px;top:12px;background:#dfcee9;z-index:-1}.setup-progress li{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;font-size:9px;color:#b9a4c5}.setup-progress b{height:25px;width:25px;background:#f4eaf9;border:1.5px solid #d9c2e6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px}.setup-progress li.current{color:#9565b4;font-weight:800}.setup-progress .current b{background:#dec3f5;border-color:#ac80c9;box-shadow:0 2px 0 #c2a0d5;color:#9264b0}.setup-progress .done b{background:#e5ebd3;color:#9da97b;border-color:#c6d2aa}.setup-heading{margin:0 1px 20px}.setup-heading h1{font-size:24px;font-weight:900;line-height:1.4}.setup-heading p{font-size:10px;line-height:1.8;color:#b29abe;margin-top:7px}.setup-actions{padding:22px 0 0}.setup-actions .button{min-height:47px;font-size:14px}.setup-actions>small{display:block;text-align:center;font-size:9px;color:#b8a0c4;line-height:1.7;margin-top:13px}.setup-partners{display:grid;grid-template-columns:1fr 1fr;gap:12px 10px}.setup-partners>button{display:flex;position:relative;gap:7px;align-items:center;text-align:left;border:2px solid #d4bfe3;background:#fff8ea;border-radius:14px;padding:9px 8px;min-width:0;min-height:114px;box-shadow:0 3px 0 #e0cdea}.setup-partners>button.selected{background:#eddefb;border-color:#b38bcf;box-shadow:0 3px 0 #c1a0d7}.setup-partner-art{width:55px;height:90px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.setup-partner-art .adventurer{width:66px;height:90px}.setup-partners>button>span:nth-child(2){min-width:0}.setup-partners b{font-size:15px;font-weight:900}.setup-partners small{display:block;font-size:9px;color:#a889bc;margin-top:5px;line-height:1.5}.setup-partners em{font-size:8px;font-style:normal;display:block;color:#bba3c7;margin-top:5px;line-height:1.6}.setup-partners>button>i{position:absolute;right:8px;top:8px;font-size:10px;color:#ac86c6;font-style:normal}.setup-retain-note{font-size:10px;line-height:1.8;color:#ae97bd;margin:15px 2px 0}.setup-chosen{display:flex;align-items:center;gap:10px;background:#eadcf6;border:1.5px solid #d1b4e1;border-radius:12px;padding:5px 9px;margin-bottom:19px;overflow:hidden}.setup-chosen>span{width:39px;height:51px;overflow:hidden;display:flex;align-items:center;justify-content:center}.setup-chosen .adventurer{width:41px;height:55px}.setup-chosen>div{flex:1}.setup-chosen b{font-size:12px;color:#9773ad}.setup-chosen small{display:block;font-size:8px;color:#b194c2;margin-top:4px}.setup-chosen>button{font-size:9px;color:#a184b5;white-space:nowrap;padding:5px 0}.setup-language-list,.setup-oath-list{display:flex;flex-direction:column;gap:13px}.setup-language-list>button,.setup-oath-list>button{display:flex;align-items:center;gap:13px;border:2px solid #d3bcdf;background:#fff8eb;border-radius:14px;box-shadow:0 3px 0 #e1ceeb;padding:18px 14px;min-height:91px;text-align:left}.setup-language-list>button.selected,.setup-oath-list>button.selected{background:#edddfb;border-color:#b38bd0;box-shadow:0 3px 0 #c1a0d7}.setup-language-list strong{height:48px;width:48px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#e3d1f4;border:1.5px solid #c4a5da;color:#a27fba;font-size:18px;font-weight:900}.setup-language-list>button>span,.setup-oath-list>button>div{flex:1}.setup-language-list b,.setup-oath-list b{font-size:17px;font-weight:900;color:#9975b1}.setup-language-list small{display:block;font-size:10px;color:#b198c1;margin-top:7px}.setup-language-list i,.setup-oath-list i{font-style:normal;font-size:16px;color:#ba98d0}.setup-oath-list>button>span{height:49px;width:49px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#ead8f8;border:1.5px solid #cbaeDE;color:#ad87c7;flex-shrink:0}.setup-oath-list b small{font-size:9px;font-weight:500;margin-left:8px;color:#b69bc4}.setup-oath-list p{font-size:10px;color:#b399c1;line-height:1.8;margin-top:6px}.setup-mentor-count{display:flex;justify-content:space-between;font-size:12px;color:#a487b5;margin:7px 2px 14px}.setup-mentor-count>span{font-size:11px;color:#ad86c6}.setup-step-content .mentor-card{min-height:84px}.setup-step-content .mentor-face{height:53px;width:36px;display:flex;align-items:center;justify-content:center}.setup-step-content .mentor-face .adventurer{height:59px;width:43px}.setup-step-content .mentor-card small{line-height:1.6;font-size:8px}.setup-final-card .creation-avatar{height:124px;margin:8px auto 0}.setup-final-card .creation-avatar:before{height:121px;width:121px;inset:0 23px}.setup-final-card .creation-avatar:after{font-size:24px;right:20px}.setup-final-card .creation-avatar .adventurer{height:125px;width:93px}.setup-final-card>h2{margin:8px 0 15px;font-size:23px}.setup-final-card .creation-language-values{margin-top:15px;font-size:9px}.setup-final-choices{display:flex;flex-direction:column;gap:8px;margin-top:15px}.setup-final-choices>button{border:1.5px solid #dac3e6;background:#fff8ea;border-radius:10px;display:flex;gap:8px;align-items:center;padding:12px 9px;text-align:left}.setup-final-choices span{font-size:9px;color:#b197c1;min-width:59px}.setup-final-choices b{font-size:11px;color:#a183b5;flex:1}.setup-final-choices i{font-size:9px;color:#b298c3;font-style:normal;white-space:nowrap}@media(max-width:370px){.setup-partners>button{gap:4px;padding:8px 5px}.setup-partner-art{width:45px}.setup-partner-art .adventurer{width:56px;height:81px}.setup-partners em{font-size:7px}.setup-chosen small{font-size:7px}.setup-oath-list b small{font-size:8px;margin-left:5px}}

/* Fit each preparation page into a phone screen. */
.app-shell.is-setup{height:min(100dvh,860px);min-height:0;display:flex;flex-direction:column;overflow:hidden}.is-setup .mobile-top{height:52px;min-height:52px;padding:9px 16px;flex-shrink:0}.is-setup .mobile-top .brand>span{font-size:19px}.is-setup main{padding:10px 16px;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;width:100%}.is-setup .mobile-demo-tools{display:none}.is-setup .mobile-nav{position:static;transform:none;left:auto;right:auto;width:100%;min-height:60px;height:calc(60px + env(safe-area-inset-bottom));padding:6px 7px calc(6px + env(safe-area-inset-bottom));flex-shrink:0;box-shadow:none}.is-setup .mobile-nav button{height:45px;font-size:9px;gap:3px}.is-setup .mobile-nav button.active:before{top:-8px;height:3px}.is-setup .mobile-nav svg{height:19px;width:19px}.is-setup .setup-page{display:flex;flex-direction:column;flex:1;min-height:0}.is-setup .setup-navigation{margin:0 0 8px}.is-setup .setup-navigation button{min-height:25px;font-size:10px;padding:2px 0}.is-setup .setup-navigation>span{font-size:9px}.is-setup .setup-progress{margin-bottom:13px;flex-shrink:0}.is-setup .setup-progress:before{top:10px}.is-setup .setup-progress b{height:22px;width:22px;font-size:9px}.is-setup .setup-progress li{font-size:8px;gap:4px}.is-setup .setup-heading{margin:0 1px 12px;flex-shrink:0}.is-setup .setup-heading h1{font-size:22px;line-height:1.35}.is-setup .setup-heading p{font-size:9px;margin-top:5px;line-height:1.5}.is-setup .setup-step-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin}.is-setup .setup-actions{padding:11px 0 0;flex-shrink:0}.is-setup .setup-actions .button{min-height:44px;padding:9px 12px;font-size:13px}.is-setup .setup-actions>small{font-size:8px;margin-top:7px;line-height:1.4}.single-roll-card{padding:12px 14px;display:flex;flex-direction:column;flex:1;min-height:0;align-items:center;background:linear-gradient(150deg,#eee0ff,#e5d7f4);border:2px solid #b495d0;border-radius:20px;box-shadow:0 4px 0 #cdb6df;margin-bottom:4px}.single-roll-label{display:flex;align-items:center;justify-content:space-between;align-self:stretch;font-size:9px;color:#a68ab7;flex-shrink:0}.single-roll-label small{font-size:8px;background:#ddc6f4;border:1px solid #c4a2df;color:#a17bbd;border-radius:10px;padding:3px 7px}.single-roll-portrait{display:flex;align-items:center;justify-content:center;position:relative;flex:1;min-height:95px;max-height:235px;align-self:stretch;isolation:isolate;margin:7px 0 0}.single-roll-portrait:before{content:'';position:absolute;aspect-ratio:1;width:min(69%,210px);max-height:100%;border-radius:50%;background:#f4e8ff;border:2px dashed #cfb3e7;z-index:-1}.single-roll-portrait .adventurer{height:100%;max-height:225px;width:auto;max-width:100%;filter:drop-shadow(0 5px 0 #b49bc233);animation:idle-bounce 3s ease-in-out infinite}.single-roll-portrait>i{position:absolute;right:15%;top:6%;font-size:30px;font-style:normal;color:#ffde8a;text-shadow:0 2px 0 #b89966;transform:rotate(12deg)}.single-roll-portrait.unrolled .unrolled-avatar{height:100%;max-height:190px;width:auto;font-size:clamp(65px,12vh,100px)}.single-roll-card>h2{font-size:27px;font-weight:900;line-height:1.25;margin:3px 0 8px;flex-shrink:0}.single-roll-innate{display:flex;align-items:center;justify-content:center;gap:6px;min-height:37px;color:#9a75b3;margin-bottom:10px;text-align:center;flex-shrink:0}.single-roll-innate b{font-size:11px;font-weight:800;display:block}.single-roll-innate small{display:block;font-size:9px;color:#b197c1;margin-top:4px}.single-roll-card .initial-stat-grid{align-self:stretch;flex-shrink:0;gap:5px}.single-roll-card .initial-stat-grid>div{padding:8px 2px;gap:5px}.single-roll-card .initial-stat-grid span{font-size:8px}.single-roll-card .initial-stat-grid b{font-size:18px}.single-roll-card .random-button{margin:11px 0 0;min-height:38px;font-size:12px;padding:8px 20px;flex-shrink:0;background:#ffdf8e;border-color:#c9a15c;color:#9d7336;box-shadow:0 3px 0 #b98d4d}.single-roll-budget{font-size:8px;color:#b39cc4;margin-top:8px;line-height:1.4;flex-shrink:0}.is-setup .setup-chosen{margin-bottom:12px;padding:3px 8px;flex-shrink:0}.is-setup .setup-chosen>span{height:41px;width:33px}.is-setup .setup-chosen .adventurer{height:46px;width:34px}.is-setup .setup-chosen small{font-size:7px}.is-setup .setup-language-list,.is-setup .setup-oath-list{gap:10px}.is-setup .setup-language-list>button,.is-setup .setup-oath-list>button{min-height:75px;padding:13px 12px}.is-setup .setup-language-list strong{height:43px;width:43px;font-size:16px}.is-setup .setup-oath-list>button>span{height:42px;width:42px}.is-setup .setup-retain-note{font-size:9px;margin-top:11px;line-height:1.6}.is-setup .setup-mentor-count{margin:3px 2px 10px;font-size:11px}.is-setup .setup-step-content .mentor-card{min-height:77px}.is-setup .setup-final-card{display:flex;flex-direction:column;align-items:center;flex:1;min-height:190px;padding:10px 12px}.is-setup .setup-final-card .creation-heading,.is-setup .setup-final-card .initial-stat-grid,.is-setup .setup-final-card .creation-language-values{align-self:stretch;flex-shrink:0}.is-setup .setup-final-card .creation-avatar{height:auto;flex:1;min-height:64px;max-height:125px;align-self:center;margin:3px 0 0;aspect-ratio:1;width:auto}.is-setup .setup-final-card .creation-avatar:before{inset:0;width:100%;height:100%}.is-setup .setup-final-card .creation-avatar:after{right:-10px}.is-setup .setup-final-card .creation-avatar .adventurer{height:100%;max-height:125px;width:auto}.is-setup .setup-final-card>h2{font-size:21px;margin:4px 0 10px;flex-shrink:0}.is-setup .setup-final-card .initial-stat-grid>div{padding:7px 2px;gap:4px}.is-setup .setup-final-card .initial-stat-grid b{font-size:16px}.is-setup .setup-final-card .creation-language-values{margin-top:9px;font-size:8px}.is-setup .setup-final-choices{gap:6px;margin-top:9px;flex-shrink:0}.is-setup .setup-final-choices>button{padding:9px 8px}.is-setup .setup-final-choices b{font-size:10px}@media(max-height:730px){.is-setup .setup-heading p{display:none}.is-setup .setup-heading{margin-bottom:9px}.is-setup .setup-progress{margin-bottom:10px}.single-roll-portrait{min-height:65px}.single-roll-card>h2{font-size:23px;margin-bottom:5px}.single-roll-innate{min-height:30px;margin-bottom:7px}.single-roll-innate small{font-size:8px;margin-top:2px}.single-roll-card .initial-stat-grid>div{padding:6px 2px}.single-roll-card .random-button{margin-top:8px;min-height:34px}.single-roll-budget{margin-top:6px;font-size:7px}.is-setup .setup-chosen{display:none}.is-setup .setup-actions>small{display:none}.is-setup .setup-final-card{min-height:170px}}

/* Fictional age/gender settings are independent of the contact's real profile. */
.single-roll-persona{font-size:9px;color:#ae90bc;line-height:1.4;margin:-2px 0 7px;text-align:center;flex-shrink:0}.single-roll-card>h2{font-size:24px;max-width:100%;overflow-wrap:anywhere;text-align:center}.single-roll-card .single-roll-innate{margin-bottom:9px;min-height:31px}.is-setup .setup-final-card>h2{max-width:100%;text-align:center;overflow-wrap:anywhere;font-size:18px;margin-bottom:6px}.setup-chosen b{font-size:11px}.persona-detail{font-size:10px!important;color:#ac8ab9!important}.varied-adventurer{overflow:visible}.journey-head h1{font-size:20px}.journey-head small{overflow-wrap:anywhere}.character-copy h3{font-size:14px;gap:5px}.character-copy h3 small{flex-shrink:0}.formation-slot h3{font-size:9px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:30px}.candidate>span>b{font-size:12px}.contribution-list>div>span{font-size:9px}.detail-hero h2{overflow-wrap:anywhere;font-size:18px}@media(max-height:730px){.single-roll-card>h2{font-size:20px}.single-roll-persona{font-size:8px;margin-bottom:4px}.single-roll-card .single-roll-innate{min-height:26px;margin-bottom:6px}}
/* Talent rarity is conveyed by text and roman level as well as color. */
.quality-0{--talent:#727383;--talent-bg:#edeaf0}.quality-1{--talent:#348366;--talent-bg:#e0f0df}.quality-2{--talent:#3e76b4;--talent-bg:#e0ebfa}.quality-3{--talent:#8e52bd;--talent-bg:#f0dffb}.quality-4{--talent:#b8781c;--talent-bg:#fff0c6}
.talent-badges{display:flex;width:100%;gap:5px;text-align:left;padding:0;background:none;border:0;flex-shrink:0;min-width:0}.talent-chip{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px;border:1.5px solid var(--talent);border-radius:8px;background:var(--talent-bg);color:var(--talent);padding:5px 6px}.talent-chip small{font-size:8px;line-height:1.2;white-space:nowrap}.talent-chip b{font-size:10px;line-height:1.3;white-space:nowrap}.single-roll-card .talent-badges{margin:8px 0 0}.single-roll-card .random-button{margin-top:9px;margin-bottom:0}.single-roll-card .single-roll-innate{min-height:25px;margin-bottom:6px}.single-roll-innate b{font-size:11px}.single-roll-innate small{font-size:8px}.is-setup .setup-final-card .talent-badges{margin-top:7px}.quality-legend{display:flex;gap:5px;margin:13px 0}.quality-legend span{color:var(--talent);background:var(--talent-bg);border-radius:5px;padding:4px;font-size:9px;flex:1;text-align:center}.talent-detail-list{display:grid;gap:10px;margin-bottom:14px}.talent-detail-list article{border:2px solid var(--talent);background:var(--talent-bg);border-radius:12px;padding:12px}.talent-detail-list header{display:flex;justify-content:space-between;align-items:center;color:var(--talent);font-size:15px;font-weight:800}.talent-detail-list header span{font-size:10px}.talent-detail-list p{font-size:12px;line-height:1.8;margin:7px 0 0;color:#51435f}.talent-intro,.talent-footnote{font-size:10px!important;line-height:1.6!important;color:#a18aac}.route-blocked{color:#aa6478;font-size:8px;line-height:1.3;margin-top:4px}.route-talent{font-size:8px;color:#8b65a9;line-height:1.3;margin-top:4px}.route-card:disabled{opacity:.65}.talent-trigger{color:#8b65a9!important}
/* One fixed phone canvas; long secondary lists scroll inside it. */
.app-shell{height:min(100dvh,860px);min-height:0;display:flex;flex-direction:column;overflow:hidden}.mobile-top{height:52px;min-height:52px;flex-shrink:0}.app-shell>div.mobile-top{padding:9px 16px}.app-shell>main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:14px}.app-shell>.mobile-nav{position:static;flex-shrink:0;min-height:55px;height:55px}.is-journey main{display:flex;flex-direction:column;padding:9px 14px;overflow:hidden}.is-journey .mobile-demo-tools{display:none}.journey-page{display:flex;flex-direction:column;flex:1;min-height:0;gap:6px}.journey-page>*{margin:0;flex-shrink:0}.journey-page .journey-head{min-height:45px;gap:7px}.journey-head .journey-avatar{height:42px;width:37px}.journey-head .journey-avatar .adventurer{height:46px;width:35px}.journey-page .journey-head h1{font-size:17px;margin:1px 0}.journey-page .journey-head small{font-size:8px}.journey-page .journey-head>div>span{font-size:8px}.journey-page .turn-counter{font-size:9px}.journey-page .turn-counter b{font-size:20px}.journey-page .end-run-button{font-size:8px;padding:4px;min-height:28px}.journey-page .adventure-hud{height:29px;min-height:29px;padding:4px 9px;gap:8px}.journey-page .adventure-hud b{font-size:12px}.journey-page .energy-pill i{width:45px}.journey-page .journey-stage{flex:1;min-height:70px;max-height:200px;overflow:hidden;border-radius:14px}.journey-page .journey-chapter{top:9px;left:11px}.journey-page .journey-chapter b{font-size:13px}.journey-page .journey-chapter span{font-size:8px;margin-top:3px}.journey-page .stage-character{height:90%;max-height:140px;bottom:10px;right:24px;left:auto}.journey-page .stage-character .adventurer{height:100%;width:auto}.journey-page .stage-speech{top:44%;left:13px;right:auto;font-size:9px;max-width:140px;padding:5px 7px}.journey-page .path-track{bottom:6px;left:12px;right:12px;gap:3px}.journey-page .path-track>span{width:19px;height:19px;font-size:10px}.journey-page .path-track>span svg{height:13px;width:13px}.journey-page .reward-burst{top:40%;left:12px;font-size:10px}.journey-page .reward-strip{padding:5px 7px;min-height:25px;gap:5px;flex-wrap:wrap;line-height:1.2}.journey-page .reward-strip b,.journey-page .reward-strip span{font-size:8px}.journey-page .reward-strip svg{width:13px;height:13px}.journey-page .route-prompt{height:18px;align-items:center}.journey-page .route-prompt h2{font-size:13px}.journey-page .route-prompt>span{font-size:9px}.journey-page .language-switch{height:28px;min-height:28px}.journey-page .language-switch button{padding:4px;font-size:10px}.journey-page .language-switch span{font-size:9px}.journey-page .route-choices{gap:6px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.journey-page .route-card{min-height:155px;padding:7px 6px 6px;border-radius:12px;gap:4px;justify-content:flex-start}.journey-page .route-card-top{font-size:7px}.journey-page .route-card-top small{font-size:8px}.journey-page .route-card-top small svg{width:10px;height:10px}.journey-page .node-icon{height:25px;width:25px;margin:1px auto}.journey-page .node-icon svg{height:23px;width:23px}.journey-page .node-title{font-size:11px;line-height:1.3}.journey-page .node-reward{font-size:9px;margin-top:1px}.journey-page .node-reward strong{font-size:18px}.journey-page .node-reward-sub{font-size:8px}.journey-page .node-detail{font-size:7px;line-height:1.4;min-height:18px}.journey-page .node-go{font-size:9px;padding-top:3px;margin-top:auto}.journey-page .node-risk{font-size:7px;line-height:1.3}.journey-page .chain-badge{font-size:7px;padding:2px 4px;right:4px;top:28px}.journey-page .camp-rest{min-height:39px;padding:6px 9px;gap:7px}.journey-page .camp-rest>svg{width:22px;height:22px}.journey-page .camp-rest b{font-size:11px}.journey-page .camp-rest small{font-size:8px;margin-top:2px}.journey-page .camp-rest em{font-size:9px}.journey-page .talent-chip{padding:4px 5px;gap:2px}.journey-page .talent-chip small{font-size:7px}.journey-page .talent-chip b{font-size:9px}.journey-page .journey-inventory{gap:6px;min-height:36px}.journey-page .journey-inventory button{padding:5px;min-height:35px;gap:5px}.journey-page .journey-inventory svg{width:18px;height:18px}.journey-page .journey-inventory b{font-size:9px}.journey-page .learn-ready{font-size:7px}.journey-page .build-strip{display:none}.journey-page .pending-loot{min-height:65px;padding:12px}.sketch-dialog{max-height:calc(100dvh - 34px);overflow-y:auto;overscroll-behavior:contain}@media(max-height:730px){.journey-page{gap:4px}.journey-page .route-card{min-height:140px}.journey-page .journey-stage{min-height:50px}.journey-page .node-icon{display:none}.journey-page .node-detail{min-height:13px}.journey-page .talent-chip{padding:3px 4px}.single-roll-card .talent-badges{margin-top:5px}.talent-chip b{font-size:9px}.talent-chip small{font-size:7px}}
.app-shell>.mobile-nav{left:auto;right:auto;bottom:auto;transform:none;width:100%;max-width:none;align-self:stretch}
.journey-page .route-card-top{margin:0;padding:0 0 3px;min-height:12px;line-height:1.2}.journey-page .node-reward-sub,.journey-page .node-detail{margin:0;line-height:1.3}.journey-page .node-detail{min-height:14px}.journey-page .node-go{padding:3px 2px;line-height:1.2}.journey-page .route-talent,.journey-page .route-blocked{margin-top:0}.journey-page .route-card{gap:3px;min-height:169px}.journey-page .journey-stage{max-height:none}.journey-page .reward-burst{inset:45% 12px 30px;align-items:flex-start}.app-shell>.mobile-nav{padding-top:5px;padding-bottom:5px;align-items:center}.app-shell>.mobile-nav button{height:42px;min-height:0;gap:3px;padding:2px}
@media(max-height:730px){.journey-page{gap:4px}.is-journey main{padding:6px 12px}.journey-page .journey-head{min-height:42px}.journey-page .adventure-hud{height:26px;min-height:26px}.journey-page .route-card{min-height:130px;gap:2px;padding:6px 5px}.journey-page .node-icon{display:none}.journey-page .journey-stage{min-height:45px}.journey-page .route-talent,.journey-page .route-blocked{font-size:7px}.journey-page .camp-rest{min-height:35px;padding:4px 7px}.journey-page .journey-inventory button{min-height:32px}.journey-page .talent-chip{padding:3px 4px}}
/* Enrollment is flat: portrait, current ability, and all three effects on the page. */
.student-roll-card{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;padding:12px;border:2px solid #b89bd0;border-radius:19px;background:linear-gradient(145deg,#f6eeff,#e8dcf7);box-shadow:0 4px 0 #d1bde1}.student-roll-card .single-roll-label{flex-shrink:0;font-size:9px}.student-roll-card .single-roll-label small{font-size:8px;padding:3px 7px}.student-hero{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px;align-items:center;flex:1;min-height:100px;max-height:170px}.student-portrait{position:relative;display:flex;align-items:center;justify-content:center;align-self:stretch;min-height:95px;max-height:160px}.student-portrait:before{content:'';position:absolute;width:105px;height:105px;max-height:100%;border-radius:50%;background:var(--wash);opacity:.3;border:2px dashed #b48bd3}.student-portrait .adventurer{position:relative;width:105px;height:140px;max-height:100%;animation:idle-bounce 3.5s ease-in-out infinite}.student-mystery{font-size:75px;color:#ab8cc4;font-weight:900;z-index:1}.student-summary{min-width:0}.student-summary h2{font-size:19px;line-height:1.3;font-weight:900;overflow-wrap:anywhere;margin:0 0 5px}.student-persona{font-size:8px;color:#a68ab7;margin:0 0 9px;line-height:1.5}.student-summary .initial-stat-grid{gap:3px;margin:0}.student-summary .initial-stat-grid>div{padding:6px 1px;border-radius:7px}.student-summary .initial-stat-grid span{font-size:7px}.student-summary .initial-stat-grid b{font-size:14px}.student-budget{font-size:7px;color:#a089ad;line-height:1.5;margin:6px 0 0}.student-talent-title{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;font-size:10px;color:#6b4e80}.student-talent-title span{font-size:8px;color:#aa8cba}.talent-inline{display:grid;gap:6px;flex-shrink:0}.talent-inline article{background:var(--talent-bg);border:1.5px solid var(--talent);border-radius:10px;padding:7px 9px}.talent-inline header{display:flex;gap:8px;align-items:center;justify-content:space-between;color:var(--talent);font-size:11px;line-height:1.3}.talent-inline header span{font-size:8px;white-space:nowrap}.talent-inline p{font-size:10px;line-height:1.5;color:#5e4d6d;margin:4px 0 0}.talent-inline .no-talents{padding:12px 7px;color:#a18ab1;font-size:10px;line-height:1.7}.student-roll-card .random-button{align-self:center;margin:1px 0 2px;min-height:34px;font-size:11px;flex-shrink:0}.student-confirm-card{gap:6px;padding:10px}.student-confirm-card .student-hero{max-height:100px;min-height:80px;grid-template-columns:80px minmax(0,1fr)}.student-confirm-card .student-portrait{min-height:75px;max-height:98px}.student-confirm-card .student-portrait:before{width:74px;height:74px}.student-confirm-card .student-portrait .adventurer{height:98px;width:73px}.student-confirm-card .student-summary h2{font-size:16px}.student-confirm-card .student-persona{margin-bottom:5px}.student-confirm-card .talent-inline article{padding:5px 8px}.student-confirm-card .talent-inline p{font-size:9px;line-height:1.4;margin-top:3px}.student-confirm-card .creation-language-values{margin-top:1px;font-size:8px}.student-confirm-card+.setup-final-choices{margin-top:7px}.student-confirm-card+.setup-final-choices>button{padding:7px 8px}.is-setup .setup-heading h1{font-size:24px}.mobile-top .brand>span{font-size:19px}.journey-page .journey-head h1{font-size:16px}.journey-page .journey-head small{font-size:8px}.world-art.school-scene{display:block;width:100%;height:100%}.boss-figure .school-assessment{height:115px}.battle-stage{background:linear-gradient(140deg,#f1e7ff,#e7f1e8)}
@media(max-height:730px){.student-roll-card{gap:6px;padding:9px}.student-hero{grid-template-columns:87px minmax(0,1fr);min-height:82px;max-height:98px;gap:8px}.student-portrait{min-height:80px;max-height:96px}.student-portrait:before{height:77px;width:77px}.student-portrait .adventurer{height:96px;width:72px}.student-summary h2{font-size:16px;margin-bottom:3px}.student-persona{font-size:7px;margin-bottom:5px}.student-summary .initial-stat-grid>div{padding:4px 1px}.student-summary .initial-stat-grid b{font-size:13px}.student-budget{margin-top:3px}.talent-inline{gap:4px}.talent-inline article{padding:5px 7px}.talent-inline header{font-size:10px}.talent-inline p{font-size:9px;line-height:1.4;margin-top:3px}.student-roll-card .random-button{min-height:31px;margin:0}.is-setup .setup-heading h1{font-size:21px}.student-confirm-card{gap:5px}.student-confirm-card .student-hero{min-height:68px;max-height:78px;grid-template-columns:62px minmax(0,1fr)}.student-confirm-card .student-portrait{min-height:62px;max-height:77px}.student-confirm-card .student-portrait:before{width:58px;height:58px}.student-confirm-card .student-portrait .adventurer{height:77px;width:57px}.student-confirm-card .student-summary h2{font-size:14px}.student-confirm-card .talent-inline article{padding:4px 6px}.student-confirm-card+.setup-final-choices>button{padding:5px 7px}.student-confirm-card+.setup-final-choices{gap:4px;margin-top:5px}}
.is-setup .mentor-grid{gap:7px}.is-setup .setup-step-content .mentor-card{min-height:91px;padding:8px 7px;gap:6px;align-items:start}.is-setup .mentor-card .mentor-face{width:26px;height:39px;flex-shrink:0}.is-setup .mentor-card .mentor-face .adventurer{width:29px;height:41px}.is-setup .mentor-card>span:nth-child(2){flex:1;min-width:0}.is-setup .mentor-card b{font-size:11px;line-height:1.3}.is-setup .mentor-card small{display:block;white-space:normal;line-height:1.35;margin-top:3px}.is-setup .mentor-card .mentor-specialty{font-size:8px;color:#9a7aac}.is-setup .mentor-card .mentor-teaches{font-size:9px;color:#73528e;font-weight:700}.is-setup .mentor-card .mentor-effect{font-size:8px;color:#9476a4}.is-setup .mentor-card>i{font-size:13px;align-self:start}.mentor-help{font-size:9px;line-height:1.65;color:#9a80aa;margin:9px 0 0}.mentor-help b{color:#74578b}.route-teacher{font-size:7px;line-height:1.3;color:#8a6c44;background:#fff0ce;border-radius:4px;padding:2px 4px}.teacher-progress{display:grid;gap:7px;margin:8px 0 15px}.teacher-progress>div{border:1px solid #d4bee5;border-radius:9px;padding:8px 10px;background:#f8f1ff;display:grid;gap:3px}.teacher-progress b{font-size:12px}.teacher-progress span,.teacher-progress small{font-size:10px;color:#a087ae}@media(max-height:730px){.is-setup .setup-step-content .mentor-card{min-height:83px;padding:6px}.is-setup .mentor-card .mentor-face{display:none}.is-setup .mentor-card b{font-size:10px}.is-setup .mentor-card small{margin-top:2px}.mentor-help{font-size:8px;line-height:1.55;margin-top:6px}.is-setup .mentor-grid{gap:6px}}
.setup-progress{--setup-columns:4}.setup-progress li{flex:1}.material-language{font-size:10px;color:#987ca8;padding:8px 0;align-self:center}.route-card-top>span{white-space:normal;line-height:1.3}.journey-page .route-card-top{min-height:15px}.journey-page .learning-dashboard{margin:0;flex-shrink:0}.journey-page .route-prompt h2{font-size:12px}.is-journey .journey-page{justify-content:flex-start}
@media(max-height:730px){.journey-page{gap:3px}}
.single-teacher-list{display:grid;gap:6px;flex-shrink:0}.single-teacher-option{display:flex;align-items:center;gap:8px;width:100%;min-height:49px;border:1.5px solid #cbb3dd;border-radius:11px;background:#fff9ec;padding:4px 9px;box-shadow:0 2px 0 #ded0e7;text-align:left;color:#715589}.single-teacher-option.selected{border-color:#a176c4;background:#eadafa;box-shadow:0 2px 0 #c0a3d3}.single-teacher-face{display:flex;align-items:center;justify-content:center;width:31px;height:37px;overflow:hidden;flex-shrink:0}.single-teacher-face .adventurer{width:29px;height:39px}.single-teacher-option>span:nth-child(2){flex:1;min-width:0}.single-teacher-option b{display:block;font-size:12px;font-weight:900;line-height:1.3}.single-teacher-option small{display:block;font-size:10px;line-height:1.3;margin-top:3px;color:#9a7cae}.single-teacher-option strong{color:#8458a6;font-size:12px}.single-teacher-option>i{font-style:normal;font-size:17px;color:#9b6bce}.single-teacher-summary{flex-shrink:0;margin-top:9px;padding:9px 10px;border:1px solid #dbc59e;border-radius:10px;background:#fff1d2;color:#9b7d48}.single-teacher-summary>b{font-size:10px}.single-teacher-summary p{font-size:10px;line-height:1.4;margin:4px 0}.single-teacher-summary small{display:block;font-size:9px;line-height:1.45}.is-setup .single-teacher-list+.single-teacher-summary{margin-bottom:0}@media(max-height:730px){.single-teacher-list{gap:4px}.single-teacher-option{min-height:46px;padding:5px 8px}.single-teacher-face{width:26px;height:32px}.single-teacher-face .adventurer{height:34px;width:25px}.single-teacher-option b{font-size:11px}.single-teacher-option small{font-size:9px;margin-top:2px}.single-teacher-summary{margin-top:6px;padding:6px 8px}.single-teacher-summary p{font-size:9px;margin:3px 0}.single-teacher-summary small{font-size:8px}.single-teacher-summary>b{font-size:9px}}
/* Recruitment: one-screen talent locks and account wallet. */
.school-wallet{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#96724a;margin:0 0 5px;padding:5px 9px;border:1px solid #e5cd9b;background:#fff0cd;border-radius:8px;flex-shrink:0}.school-wallet b{font-size:12px}.recruit-random-actions{display:flex;gap:7px;width:100%;flex-shrink:0;margin-top:3px}.student-roll-card .recruit-random-actions .random-button{flex:1;min-width:0;min-height:35px;margin:0;font-size:11px;padding:5px}.talent-inline header{display:flex;align-items:center;gap:4px}.talent-inline header>b{flex:1}.talent-lock{padding:3px 6px;min-width:43px;border:1px solid currentColor;border-radius:5px;font-size:9px;line-height:1.25;color:inherit;background:#fff9;flex-shrink:0}.talent-lock.locked{background:#fff2b8;color:#8d6223;box-shadow:0 1px 0 #bba06b}.talent-lock:disabled{opacity:.8}.talent-lock-rule{font-size:9px!important;line-height:1.3!important;text-align:center;margin:0!important;color:#a28cae}.setup-progress{--setup-columns:3}.school-name-label{font-size:12px;display:block;margin:15px 0 7px;color:#8c719c}#school-name{box-sizing:border-box;width:100%;border:2px solid #c6addb;background:#fffaf1;color:#49345c;border-radius:10px;font:inherit;padding:12px;outline:none}#school-name:focus{border-color:#8455e7}.school-name-note{font-size:11px;color:#9a80aa;margin:8px 0 18px}.rank-empty{text-align:center;padding:30px 12px;color:#a38caf;font-size:13px}.ranking-note{font-size:10px;color:#a38caf;margin:12px 0}.mobile-top .brand{min-width:0}.mobile-top .brand>span{max-width:290px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-height:730px){.school-wallet{padding:3px 8px;margin-bottom:3px;font-size:9px}.school-wallet b{font-size:10px}.talent-lock{font-size:8px;padding:2px 4px;min-width:35px}.student-roll-card .recruit-random-actions .random-button{min-height:31px;font-size:10px}.talent-lock-rule{font-size:8px!important}.recruit-random-actions{gap:6px}}
.talent-lock-rule{flex-shrink:0}
@media(max-height:730px){.is-setup .student-roll-card{gap:4px;padding:8px}}
/* Scene-first classroom: navigation tools above, resources inside the world. */
.classroom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:35px}.classroom-title{min-width:0}.classroom-title h1{font-size:16px;line-height:1.3;font-weight:900;margin:0;color:#5a426d}.classroom-title>span{display:block;font-size:9px;line-height:1.4;color:#aa92b6;margin-top:2px}.classroom-tools{display:flex;align-items:center;gap:5px;flex-shrink:0}.classroom-tools>button{width:29px;height:29px;border:1.5px solid #d5c2e3;border-radius:9px;color:#9677ae;background:#fff9ef;display:flex;align-items:center;justify-content:center;padding:4px;position:relative}.classroom-tools>button:active{background:#e9d8f8}.classroom-tools small{position:absolute;right:-3px;top:-5px;background:#ffdfa1;color:#977242;border:1px solid #d7b777;border-radius:7px;font-size:8px;padding:0 3px;line-height:12px}.classroom-tools .notify-dot{top:-3px;right:-3px}.classroom-tools .classroom-exit{font-size:21px;line-height:1;background:transparent;border-color:transparent;color:#b594a4}
.classroom-screen .classroom-stage{position:relative;flex:1 1 auto;min-height:145px;margin:0;border-radius:15px;border-color:#bba2cf;box-shadow:0 3px 0 #d5c4e0;background:#ece0e7}.classroom-stage .journey-sky .world-art{height:100%;width:100%;opacity:1;transform:none}.classroom-stage .classroom-nameplate{position:absolute;top:9px;left:10px;max-width:calc(100% - 20px);display:flex;align-items:center;gap:7px;padding:4px 7px;border-radius:7px;background:#fff9eddc;color:#796286}.classroom-nameplate b{font-size:10px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.classroom-nameplate>span{font-size:8px;white-space:nowrap;color:#a08baa}.classroom-screen .stage-character{height:68%;max-height:190px;width:126px;right:22px;bottom:30px;left:auto;display:flex;align-items:end;justify-content:center}.classroom-screen .stage-character .adventurer{height:100%;width:auto;max-width:100%}.classroom-screen .stage-speech{left:11px;right:auto;top:auto;bottom:58px;max-width:180px;background:#fff8e9f0;border:1.5px solid #c0a6cf;border-radius:10px 10px 0 10px;padding:6px 8px;transform:rotate(-2deg);font-style:normal;color:#9872b0;line-height:1.4}.classroom-screen .stage-speech>b{display:block;font-size:10px}.classroom-screen .stage-speech>small{font-size:8px;color:#b08a50;display:block;margin-top:2px}.classroom-resources{position:absolute;bottom:8px;left:8px;right:8px;display:flex;align-items:center;gap:13px;padding:4px 8px;border:1px solid #d9c6dc;border-radius:8px;background:#fffaf0eb;color:#ac9270;min-height:25px}.classroom-resources>span{display:flex;align-items:center;gap:4px;white-space:nowrap}.classroom-resources b{font-size:11px;line-height:1.2;color:#8a6d91}.classroom-resources .classroom-energy{flex:1;color:#c38b9b}.classroom-energy>i{display:block;width:42px;height:5px;border-radius:4px;background:#e9d8df;overflow:hidden;margin-left:2px}.classroom-energy em{display:block;height:100%;background:#d88ca0;border-radius:4px}.classroom-legacy-oath{position:absolute;right:7px;top:40px;font-size:9px;background:#fff7e4;padding:5px;border-radius:7px;color:#8c6c9f}.classroom-screen .route-prompt{min-height:16px;height:16px}.classroom-screen .route-prompt>span{display:none}.classroom-screen .route-card{min-height:158px}.classroom-screen .node-detail{min-height:12px}.classroom-screen .route-card-top>span{font-size:8px}.classroom-screen .route-card-top small{font-size:8px}.classroom-screen .pending-loot{min-height:58px}
@media(max-height:730px){.classroom-screen{gap:4px}.classroom-toolbar{min-height:32px}.classroom-title h1{font-size:14px}.classroom-title>span{font-size:8px}.classroom-tools{gap:4px}.classroom-tools>button{width:27px;height:27px;padding:3px;border-radius:8px}.classroom-tools svg{width:18px;height:18px}.classroom-screen .classroom-stage{min-height:130px}.classroom-screen .stage-character{max-height:145px;right:14px;bottom:29px}.classroom-screen .stage-speech{bottom:49px;max-width:150px;padding:4px 6px}.classroom-screen .stage-speech>b{font-size:9px}.classroom-screen .stage-speech>small{font-size:7px}.classroom-nameplate b{font-size:9px;max-width:150px}.classroom-nameplate>span{font-size:7px}.classroom-resources{bottom:6px;left:6px;right:6px;min-height:23px;padding:3px 7px;gap:10px}.classroom-screen .route-card{min-height:124px}.classroom-screen .route-card-top{min-height:14px}.classroom-screen .node-title{font-size:10px}.classroom-screen .node-reward strong{font-size:17px}.classroom-screen .node-go{font-size:8px}.classroom-screen .camp-rest{min-height:33px}.classroom-screen .route-prompt h2{font-size:11px}}
@media(prefers-reduced-motion:reduce){.classroom-screen .stage-character,.classroom-screen .stage-speech{animation:none!important;transform:none}}
.classroom-return{display:flex;align-items:center;gap:7px;min-width:0}.classroom-return>button{color:#a387b6;font-size:27px;line-height:1;width:24px;height:30px;background:transparent;border:0;padding:0;flex-shrink:0}.classroom-return .classroom-title{min-width:0}.classroom-return h1{white-space:nowrap}.mobile-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
