/* FluentQuest — playful adventure UI. */
:root{--ink:#29233e;--ink2:#59536e;--muted:#777089;--bg:#f7f6fb;--panel:#fff;--line:#e9e5f1;--teal:#7554d8;--teal-light:#eee8ff;--shadow:0 5px 0 #efecf5;--radius:22px;--mint:#c8f58a;--purple:#7554d8;--deep:#27203f}
body{background:var(--bg);color:var(--ink)}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8a64ee;outline-offset:5px}
.ui-icon{width:23px;height:23px;flex-shrink:0;vertical-align:middle}
.eyebrow{color:#807591;font-size:10px;font-weight:800;letter-spacing:1.8px}
.btn{border-radius:13px;min-height:45px;font-weight:700;gap:10px;transition:transform .15s,box-shadow .15s;background-clip:padding-box}
.btn:active:not(:disabled){transform:translateY(3px)!important;box-shadow:none!important}
.btn-primary,.btn-dark{background:var(--purple);color:#fff;box-shadow:0 4px 0 #5436ad}
.btn-primary:hover,.btn-dark:hover{background:#6945cb;transform:translateY(-1px)}
.btn-ghost{color:var(--ink2);border-color:var(--line);box-shadow:0 3px 0 #eeebf3}
.btn-soft{background:#eee8ff;color:#6946c2;box-shadow:0 3px 0 #ded3fa}
.btn-mint{background:var(--mint);color:#283b22;box-shadow:0 5px 0 #89b84f}
.tag{background:#f1edf8;color:#726583;letter-spacing:.2px}
.tag.teal{background:#e9f8e0;color:#477331}.tag.violet{background:#eee8ff;color:#7050bf}
.link-btn{color:#7554c7;min-height:44px}
.bar{height:9px;background:#ece8f4}.bar span{background:#9975ee}
.card{box-shadow:var(--shadow)}
.input,.textarea,.select{background:#faf9fd;border:2px solid #eae5f2;border-radius:13px}
.input:focus,.textarea:focus,.select:focus{border-color:#9670e8;box-shadow:0 0 0 4px #9369ea13}
.sidebar{width:234px;background:var(--deep);border:0;padding:34px 20px 22px;color:#fff;top:0}
.brand{padding:0;gap:10px;font-size:23px;letter-spacing:-1px;color:inherit;line-height:1}
.brand .accent{color:#bca2ff}.brand small{display:block;font-size:8px;letter-spacing:1.7px;margin-top:11px;color:#a297bd}
.logo{width:38px;height:43px;background:#bfa0ff;color:#312342;border-radius:12px;transform:rotate(-8deg);box-shadow:0 4px 0 #7555b5;font-size:28px}
.sidebar-caption{color:#9185aa;font-size:9px;padding:49px 15px 15px}
.navlist{gap:9px}.navlink{color:#afa5c4;padding:14px;font-size:12px;gap:13px;min-height:49px;transition:background .15s}
.navlink:hover{background:#ffffff0a}.navlink.active{background:#8060d1;color:white;box-shadow:0 4px 0 #1d1730}
.navicon{display:grid;place-items:center}.navicon .ui-icon{width:21px;height:21px}
.sidebar-foot{background:#39304f;padding:21px 17px;border:1px solid #524366;margin-top:45px;border-radius:18px}
.sidebar-foot .eyebrow{display:block;color:#aa9abf;font-size:8px}.sidebar-foot strong{display:block;font-size:16px;margin-top:10px}.sidebar-foot p{color:#b9afcb;font-size:11px;line-height:1.8}
.sidebar-foot button{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#c9f38d;color:#334226;width:100%;min-height:40px;font-size:11px}
.side-star{position:absolute;right:14px;top:10px;color:#c2a8fb;font-size:33px}.sidebar-bottom{margin-top:auto;padding:30px 2px 0;font-size:9px;color:#8e81a8}.sidebar-bottom span{color:#bfa7ee;margin:0 5px}
.main{width:calc(100% - 234px)}.main-inner{max-width:1390px;padding:28px 40px 40px}.topbar{margin-bottom:31px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.top-label{font-size:10px;color:#8b839b;margin-bottom:5px}.top-greeting>strong{font-size:15px}.hello-wave{font-size:19px;margin-left:5px}
.top-actions{gap:14px}.xp-pill{color:#a87620;background:#fff6de;border:1px solid #f4e5b9;box-shadow:0 3px 0 #f4e9ce;font:800 13px 'DM Sans','Prompt',system-ui,sans-serif;padding:10px 15px}
.avatar{border:2px solid #fff;outline:2px solid #ddcff5;background:#e9ddff;color:#7449c2;width:42px;height:42px;font:bold 18px 'DM Sans',system-ui,sans-serif;position:relative;border-radius:13px}
.avatar span{position:absolute;bottom:-8px;left:9px;font-size:7px;background:#7350bf;color:#fff;border-radius:4px;padding:2px 5px}
.dashboard-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px}.dashboard-title h1{font-size:27px;letter-spacing:-.8px;margin:7px 0 0}.dashboard-title p{font-size:12px;margin:10px 0 0;color:var(--muted)}
.season-tag{font:700 9px 'DM Sans',system-ui,sans-serif;letter-spacing:1.2px;color:#8b829c;border:1px solid #e6e0ed;border-radius:7px;padding:8px 10px}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px}.adventure-main,.adventure-aside{min-width:0}.adventure-aside{display:flex;flex-direction:column;gap:19px}
.adventure-hero{position:relative;overflow:hidden;min-height:310px;border-radius:25px;background:#7560ba;color:white;padding:32px;isolation:isolate;display:flex;align-items:center;box-shadow:0 6px 0 #e6dff2}
.adventure-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 90% 20%,#c3a9ff55,transparent 50%),radial-gradient(circle at 1% 100%,#463c86bb,transparent 60%);z-index:-1}
.adventure-hero .hero-copy{max-width:65%;z-index:2}.chapter-tag{font:800 9px 'DM Sans',system-ui,sans-serif;letter-spacing:1.6px;display:inline-flex;align-items:center;gap:7px;background:#ffffff17;border:1px solid #ffffff25;border-radius:7px;padding:7px 9px}.chapter-tag>span{width:5px;height:5px;border-radius:50%;background:#c8f58a}
.adventure-hero h2{font-size:36px;line-height:1.3;letter-spacing:-1px;margin:18px 0 12px}.adventure-hero h2>span{display:block;color:#d4f6a4}.adventure-hero p{font-size:12px;color:#e1d8f6;line-height:1.9;margin-bottom:23px}
.adventure-hero .btn{font-size:12px}.hero-footnote{font-size:9px;color:#dfd4f3;margin-top:14px}
.companion{position:absolute;width:235px;height:260px;right:8px;bottom:20px;pointer-events:none}.buddy{position:absolute;width:128px;height:142px;background:#cbf7a0;box-shadow:inset -12px -12px 0 #9ed67a,inset 7px 4px 0 #e2ffbd;border-radius:51px 54px 43px 42px;left:53px;top:72px;transform:rotate(10deg);animation:buddy-float 4s ease-in-out infinite}
.buddy-face{position:absolute;top:29px;left:23px;width:79px;height:56px;background:#f2ffe1;border-radius:24px 24px 30px 30px;display:flex;justify-content:center;gap:20px;padding-top:17px}.buddy-face i{width:8px;height:13px;background:#303347;border-radius:8px;position:relative}.buddy-face i:before{content:'';position:absolute;top:2px;left:2px;width:3px;height:3px;background:#fff;border-radius:50%}.buddy-face>span{position:absolute;width:12px;height:8px;border:2px solid #343748;border-top:0;border-radius:0 0 10px 10px;bottom:8px;left:34px}
.buddy-ear{position:absolute;top:-12px;width:27px;height:41px;background:#c9f49d;border-radius:16px 16px 0 0;z-index:-1}.buddy-ear.left{left:11px;transform:rotate(-30deg)}.buddy-ear.right{right:10px;transform:rotate(30deg);background:#b4e68b}
.buddy-cheek{position:absolute;width:15px;height:8px;background:#ffa9a3;border-radius:50%;top:70px;opacity:.8}.buddy-cheek.left{left:19px}.buddy-cheek.right{right:21px}.buddy-star{position:absolute;bottom:19px;left:50px;font-size:28px;color:#59835a}.buddy-foot{position:absolute;bottom:-9px;width:37px;height:23px;background:#a6dc80;border-radius:12px;z-index:-1}.buddy-foot.left{left:10px;transform:rotate(12deg)}.buddy-foot.right{right:6px;transform:rotate(-15deg)}
.buddy-shadow{position:absolute;left:50px;bottom:17px;width:143px;height:18px;background:#42337e55;border-radius:50%;filter:blur(3px)}.buddy-bubble{position:absolute;top:25px;left:32px;background:#fff9ed;color:#58446f;padding:10px 15px;font:800 12px 'DM Sans',system-ui,sans-serif;border-radius:12px;transform:rotate(-9deg);box-shadow:0 4px 0 #493a7e33}.buddy-bubble:after{content:'';position:absolute;bottom:-8px;left:60%;border-top:11px solid #fff9ed;border-right:11px solid transparent}
.orbit{position:absolute;border:1px solid #ffffff20;border-radius:50%;width:230px;height:230px;top:25px;left:0}.orbit-two{width:177px;height:177px;top:53px;left:25px}.spark{position:absolute;font:30px 'DM Sans',system-ui,sans-serif;color:#d8c1ff}.spark-one{right:13px;top:70px;color:#ffdc83}.spark-two{left:12px;top:161px}.spark-three{right:25px;bottom:20px;font-size:20px}
@keyframes buddy-float{0%,100%{transform:translateY(0) rotate(10deg)}50%{transform:translateY(-8px) rotate(6deg)}}
.mission-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:#fff;border-radius:17px;margin:21px 0 28px;padding:16px 0}.mission-strip>div{display:grid;grid-template-columns:26px auto;gap:1px 8px;padding:0 17px;border-right:1px solid var(--line)}.mission-strip>div:last-child{border:0}.strip-icon{grid-row:span 2;font-size:22px;align-self:center}.mission-strip strong{font:800 20px 'DM Sans','Prompt',system-ui,sans-serif;white-space:nowrap}.mission-strip strong small{font-size:10px;font-weight:500;color:#8a829b}.mission-strip div>span:last-child{font-size:9px;color:#8b819b}
.section-head{margin:0 0 18px;align-items:center}.section-head h2{font-size:18px;letter-spacing:-.4px;margin:4px 0 0}.section-head h3{font-size:13px;margin:0}
.quest-map{border:1px solid var(--line);background:#fff;border-radius:20px;padding:23px;margin-bottom:29px;overflow:hidden}.map-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;margin:19px -8px 17px}.map-track:before{content:'';position:absolute;left:10%;right:10%;top:58px;border-top:3px dashed #e6def3}.map-stop{position:relative;border:0;background:none;display:flex;align-items:center;flex-direction:column;color:#756d86;padding:0 3px;z-index:1}.map-number{font:700 9px 'DM Sans',system-ui,sans-serif;letter-spacing:1px;color:#a39bae;margin-bottom:10px}.map-node{width:54px;height:54px;border:2px solid #e8e2f2;border-radius:18px;background:#f2eef9;display:grid;place-items:center;box-shadow:0 5px 0 #e5dfef;transition:transform .15s}.map-node .ui-icon{width:22px;height:22px}.map-stop.current .map-node{background:#8d6add;color:#fff;border-color:#a98be9;box-shadow:0 5px 0 #6342b0,0 0 0 5px #f0e9ff}.map-stop.complete .map-node{background:#d9efc8;border-color:#c5e5ae;box-shadow:0 5px 0 #b8d89f;color:#4e7e33}.map-stop:hover .map-node{transform:translateY(-3px)}.map-stop strong{font-size:10px;margin-top:14px}.map-stop small{font:600 8px 'DM Sans','Prompt',system-ui,sans-serif;margin-top:3px;color:#9a8fab}.map-caption{display:flex;justify-content:space-between;gap:6px;border-top:1px solid #f1edf5;padding-top:14px;color:#92869f;font-size:9px}
.quest-list{gap:12px}.quest-row{padding:14px 16px;border:1px solid var(--line);border-radius:16px;box-shadow:0 3px 0 #efecf5;gap:13px}.quest-symbol{width:45px;height:45px;border-radius:14px;background:var(--quest-bg);color:var(--quest-ink)}.quest-body h4{font-size:12px;margin:0 0 4px}.quest-body p{font-size:10px;color:#8c829c;margin:0}.quest-body p span{margin:0 5px}.quest-xp{font:800 10px 'DM Sans',system-ui,sans-serif;color:#aa8134;white-space:nowrap}.quest-row .btn{font-size:10px;min-height:36px;padding:8px 13px}.quest-complete .quest-xp{color:#64924e}
.quest-vocab{--quest-bg:#eee6ff;--quest-ink:#8a61cc}.quest-listening{--quest-bg:#e4eefb;--quest-ink:#6091d2}.quest-speaking{--quest-bg:#ffebdb;--quest-ink:#d59a58}.quest-writing{--quest-bg:#fce6ed;--quest-ink:#c77f9a}.quest-game{--quest-bg:#e6f2d9;--quest-ink:#88a75d}
.player-card,.weekly-card,.destination-card{background:white;border:1px solid var(--line);border-radius:20px;padding:21px}.player-card{background:#f0eafa;border-color:#e3d8f2}.player-card .eyebrow{font-size:8px;color:#927ba7}.player-card .tag{font:800 10px 'DM Sans',system-ui,sans-serif;color:#7954bc;background:#e2d4f6;padding:5px 8px}.player-medal{margin:23px auto 17px;width:86px;height:86px;display:grid;place-items:center;border-radius:27px;background:#ddc9ff;box-shadow:0 7px 0 #bca1e3,inset 0 0 0 5px #e6d8ff;transform:rotate(-8deg)}.player-medal span{font-size:53px;color:#8254be;text-shadow:0 3px 0 #bca1e3}.player-card h2{text-align:center;font-size:17px;margin:21px 0 5px}.player-card>p{text-align:center;font-size:10px;color:#9683a6;margin-bottom:24px}.player-card .small{font-size:9px;color:#8b769e}.xp-bar{margin-top:9px;background:#dfd3ee;height:9px}.xp-bar span{background:#9270d1}.level-caption{font-size:10px;text-align:center;color:#8464a7;margin-top:10px}.player-note{font-size:8px;text-align:center;color:#9886a6;margin-top:14px}
.weekly-card .section-head{margin-bottom:18px}.week-dots{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.week-dots>div{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:8px;color:#92889c}.week-dots b{display:grid;place-items:center;width:25px;height:28px;background:#f1eef6;border-radius:9px;font-size:17px;color:#c1b8cf}.week-dots .today b{outline:2px solid #ac8cdd;outline-offset:2px;color:#a17bd2}.week-dots .trained b{background:#d9efc7;color:#71924d}.weekly-card>p{font-size:10px;text-align:center;margin:17px 0 0;color:#8a8199}.weekly-card>p strong{color:#756486}
.destination-card{background:#fffbf3;border-color:#efe8d9}.destination-card .eyebrow{font-size:8px;color:#ac9875}.destination-level{font:800 30px 'DM Sans',system-ui,sans-serif;display:flex;align-items:center;gap:16px;margin:17px 0;color:#b6a38a}.destination-level>span{font-size:20px;color:#cebc9c}.destination-level strong{color:#69533a}.destination-card h3{font-size:13px;margin-bottom:6px}.destination-card p{font-size:10px;color:#9c8a72}.destination-card .btn{font-size:10px;min-height:39px;background:#fffefb;border-color:#e9e0cf;box-shadow:0 3px 0 #eee7d9}
.tip-card{display:flex;gap:12px;padding:4px 8px;color:#9c81bf}.tip-card>span{font-size:27px}.tip-card strong{font-size:11px;color:#7f6a98}.tip-card p{font-size:10px;line-height:1.9;color:#9584a5;margin:6px 0 0}
.app-footer{border-top:1px solid var(--line);padding-top:21px;margin-top:35px;color:#a69bae;font-size:9px;display:flex;justify-content:space-between;gap:10px}.app-footer>span{font:600 10px 'DM Sans',system-ui,sans-serif;color:#a38dbd}
.quest-banner{display:flex;align-items:center;justify-content:space-between;background:#eee8f9;border:1px solid #e1d7ef;border-radius:21px;padding:25px 30px;margin-bottom:25px}.quest-banner h2{font:800 30px 'DM Sans','Prompt',system-ui,sans-serif;margin:9px 0;color:#6c48b1}.quest-banner p{font-size:11px;color:#9883ac;margin:0}.quest-progress-ring{width:86px;height:86px;flex-shrink:0;border-radius:50%;background:conic-gradient(#9472d2 var(--progress),#dfd3ed 0);padding:8px}.quest-progress-ring>span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:#eee8f9;font:800 21px 'DM Sans',system-ui,sans-serif;color:#7c5ba9}
.quest-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.mission-card{background:white;border:1px solid var(--line);box-shadow:0 5px 0 #ece8f1;border-radius:21px;padding:20px}.mission-number{font:700 9px 'DM Sans',system-ui,sans-serif;letter-spacing:1px;color:#aca0b9}.mission-card .tag{font-size:9px;background:var(--quest-bg);color:var(--quest-ink)}.mission-art{height:120px;display:grid;place-items:center;position:relative;isolation:isolate}.mission-art>.ui-icon{width:38px;height:38px;color:var(--quest-ink);transform:rotate(-8deg)}.mission-orbit{position:absolute;z-index:-1;left:50%;top:50%;width:77px;height:77px;border-radius:23px;background:var(--quest-bg);transform:translate(-50%,-50%) rotate(-8deg);box-shadow:0 6px 0 color-mix(in srgb,var(--quest-bg),var(--quest-ink) 16%)}.mission-art>i{position:absolute;right:22%;top:12px;color:var(--quest-ink);font-size:20px;font-style:normal}.mission-card h2{font-size:16px;margin:11px 0 8px}.mission-card>p{font-size:11px;min-height:40px;color:#8b7e9b}.mission-card .btn{font-size:11px;min-height:40px;padding:9px 13px}.mission-card .small{font-size:10px}
.page-title{font-size:25px}.page-sub{line-height:1.8}.practice-tile{box-shadow:0 5px 0 #ece8f1;border-radius:20px}.choice{border:2px solid #e8e2f0;box-shadow:0 4px 0 #eee9f4;border-radius:15px}.choice.selected{background:#f1eaff;border-color:#a887e2}.chip{border:2px solid #e6e0ee;min-height:44px}.chip.selected{border-color:#a383d2;background:#eee5fc;color:#7952b0}.onboard-wrap{background:#faf8fd}.onboard-side{background:#302541;color:#fff}.onboard-side h1 span{color:#d2f3a5}.onboard-main{background:#faf8fd}.step-line.active{background:#9676d5}.onboard-side-visual{background:#c7f299;color:#374a2a;box-shadow:0 10px 0 #8aaf65;transform:rotate(-7deg);border-radius:26px}.onboard-side .brand .logo{background:#ba9be9;color:#352349}
.activity-shell{max-width:760px}.activity-card{border:2px solid #e8e0f1;box-shadow:0 7px 0 #e7e1ed;border-radius:25px;background:white}.activity-card h2{font-size:24px}.test-option{border:2px solid #e8e1f0;box-shadow:0 4px 0 #eee9f5;min-height:58px;transition:transform .15s,background .15s}.test-option:hover:not(:disabled){border-color:#ad8dde;transform:translateY(-1px)}.test-option span{background:#f3eef9;border:0;color:#8d76aa;border-radius:8px}.test-option.selected{background:#eee5fc;border-color:#a380df;box-shadow:0 4px 0 #d7c5f0;opacity:1}.progress-mini{height:10px;background:#eee7f6}.progress-mini span{background:#ac87e7}.answer-feedback{background:#edf7e4;border:1px solid #d9e9ca;color:#5b8143}.answer-feedback.error{background:#fff0ed;border-color:#f5d9d2}.listen-card{background:#edf2fc}.speaking-prompt{background:#f1ecfb}.mic-btn{background:#8c66d3;box-shadow:0 0 0 10px #cbb4ec33}.word-tile{border:2px solid #e5deed;box-shadow:0 4px 0 #ddd3eb;border-radius:12px}.word-area{background:#f6f2fc;border:2px dashed #d9cbe9}.info-note{background:#f1edf8;color:#80718f}.callout{background:#f1f7e9;border-color:#e1ebd5;color:#72835c}.result-number{color:#845bc1}.victory-card{position:relative;overflow:hidden}.victory-emblem{width:95px;height:95px;margin:15px auto 25px;border-radius:30px;background:#ffe4a0;color:#bd8c24;font-size:61px;display:grid;place-items:center;box-shadow:0 8px 0 #e8bd64;transform:rotate(-9deg);animation:victory-enter .5s ease-out}.victory-card:before,.victory-card:after{content:'✧';position:absolute;top:42px;font-size:50px;color:#b998e1;pointer-events:none}.victory-card:before{left:18%;transform:rotate(-20deg)}.victory-card:after{right:18%;top:80px;color:#b4cc92;font-size:30px}@keyframes victory-enter{from{opacity:0;transform:translateY(15px) rotate(-20deg) scale(.8)}to{opacity:1;transform:translateY(0) rotate(-9deg) scale(1)}}
#cloud-account:empty{display:none}#cloud-account{background:#f0ecf6;border-bottom:1px solid #e5dfed;padding:8px 24px;display:flex;align-items:center;gap:12px;font-size:10px;color:#8c7f9b;min-height:42px;flex-wrap:wrap}.sync-message{display:flex;align-items:center;gap:7px;flex:1;min-width:160px}.sync-dot{height:6px;width:6px;background:#83aa63;flex-shrink:0;border-radius:50%}.sync-message.is-warning .sync-dot{background:#dbad47}#cloud-account .btn{font-size:9px;padding:4px 9px;min-height:28px;border:0;box-shadow:none;background:#fff8;color:#88769c}.account-menu{position:relative}.account-menu summary{cursor:pointer;list-style:none;font-size:10px;padding:6px 8px;min-height:28px;color:#716082}.account-menu summary::-webkit-details-marker{display:none}.account-popover{position:absolute;z-index:60;right:0;top:34px;background:#fff;min-width:235px;border:1px solid var(--line);box-shadow:0 12px 35px #32204620;padding:15px;border-radius:13px;display:grid;gap:10px}.account-popover>span{overflow-wrap:anywhere;font-size:11px}#cloud-account .account-popover .btn{min-height:38px;background:#f4effa}
.auth-page{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr;background:#faf8fd}.auth-world{position:relative;overflow:hidden;background:#36284d;color:white;display:flex;flex-direction:column;justify-content:center;padding:10% 13%;isolation:isolate}.auth-world:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 70%,#8b63b633,transparent 55%),radial-gradient(circle,#ffffff18 1px,transparent 1px);background-size:auto,26px 26px}.auth-world .brand{position:absolute;left:13%;top:45px}.auth-world .eyebrow{color:#bca3d6}.auth-world h1{font-size:49px;line-height:1.25;letter-spacing:-2px;margin:17px 0}.auth-world h1 span{color:#d0ef9c}.auth-world>p{font-size:13px;color:#bbaacc;line-height:1.9;max-width:320px}.auth-world .companion{position:relative;right:auto;bottom:auto;align-self:center;transform:scale(1.1);margin-top:30px}.auth-world-foot{font:700 9px 'DM Sans',system-ui,sans-serif;letter-spacing:2px;color:#8f7aa8;position:absolute;bottom:29px;left:13%}.auth-panel{display:flex;align-items:center;justify-content:center;padding:45px}.auth-form-wrap{width:100%;max-width:355px}.auth-form-wrap>.eyebrow{color:#a087b8}.auth-form-wrap h2{font-size:29px;letter-spacing:-1px;margin:12px 0}.auth-form-wrap>p{font-size:12px;color:#9688a4;margin-bottom:29px;line-height:1.9}.auth-emblem{font-size:27px;width:53px;height:53px;display:grid;place-items:center;background:#eadefa;color:#9470c1;border-radius:17px;box-shadow:0 4px 0 #d3bde9;margin-bottom:27px}.auth-form-wrap label{font-size:12px;color:#746280;font-weight:600;gap:9px}.auth-form-wrap input{min-height:49px;background:white}.auth-form-wrap .btn{min-height:48px}.auth-divider{display:flex;align-items:center;gap:12px;font-size:10px;color:#b2a5bc}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:#e9e0ef;flex:1}.auth-note{display:flex;gap:9px;background:#f0ebf7;border-radius:12px;padding:13px 15px;font-size:10px;color:#9b88aa;margin-top:23px}.auth-note p{margin:0;color:inherit;line-height:1.9}.auth-note strong{color:#817090}.auth-form-wrap #cloud-auth-message{margin:0;color:#876a9e;line-height:1.8}
@media(min-width:1500px){.adventure-hero{min-height:340px}.companion{right:35px;transform:scale(1.15)}}
@media(max-width:1190px){.sidebar{width:205px;padding:30px 15px}.main{width:calc(100% - 205px)}.main-inner{padding:25px}.game-layout{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.adventure-hero{padding:26px;min-height:310px}.adventure-hero h2{font-size:31px}.adventure-hero .companion{right:-35px;transform:scale(.83)}.mission-strip>div{padding:0 10px;gap:1px 4px}.strip-icon{font-size:18px}.mission-strip div>span:last-child{font-size:8px}.player-card,.weekly-card,.destination-card{padding:18px}.season-tag{display:none}.quest-deck{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-world{padding:10%}.auth-world h1{font-size:40px}.auth-world .brand{left:10%}}
@media(max-width:980px) and (min-width:761px){.game-layout{grid-template-columns:1fr}.adventure-aside{display:grid;grid-template-columns:1fr 1fr}.player-card{grid-row:span 2}.tip-card{display:none}.adventure-hero .companion{right:15px;transform:scale(1)}.mission-strip>div{padding:0 20px}.adventure-hero h2{font-size:36px}}
@media(max-width:760px){.sidebar{display:none}.main{width:100%}.main-inner{padding:23px 18px 105px;max-width:620px}.topbar{margin-bottom:22px;padding-bottom:18px}.top-greeting>strong{font-size:13px}.top-label{font-size:9px}.top-actions{gap:10px}.xp-pill{font-size:11px;padding:8px 10px}.avatar{width:33px;height:33px;border-radius:11px;font-size:15px}.avatar span{left:5px;font-size:6px}.dashboard-title{margin-bottom:19px}.dashboard-title h1{font-size:24px}.dashboard-title .eyebrow{font-size:8px}.game-layout{grid-template-columns:1fr;gap:26px}.adventure-hero{padding:26px 23px;min-height:295px;border-radius:22px}.adventure-hero h2{font-size:32px;margin-top:17px}.adventure-hero .hero-copy{max-width:75%}.adventure-hero p{font-size:10px}.adventure-hero .companion{right:-24px;bottom:30px;transform:scale(.85);transform-origin:right bottom}.adventure-hero .btn{font-size:11px;min-height:44px}.adventure-hero .btn .ui-icon{width:17px}.hero-footnote{font-size:8px}.chapter-tag{font-size:8px}.mission-strip{margin:20px 0 24px;padding:14px 0}.mission-strip>div{padding:0 11px;grid-template-columns:21px auto;gap:3px 4px}.mission-strip strong{font-size:19px}.mission-strip div>span:last-child{font-size:8px}.strip-icon{font-size:19px}.quest-map{padding:20px 15px;margin-bottom:25px}.section-head h2{font-size:16px}.section-head .eyebrow{font-size:8px}.map-node{width:47px;height:47px;border-radius:16px}.map-track:before{top:54px}.map-caption>span:last-child{display:none}.map-caption{justify-content:center;font-size:9px}.map-stop strong{font-size:10px}.quest-row{padding:13px 12px;gap:10px}.quest-body h4{font-size:11px}.quest-body p{font-size:9px}.quest-symbol{width:39px;height:42px;border-radius:12px}.quest-symbol .ui-icon{width:21px}.quest-xp{font-size:9px}.quest-row .btn{padding:8px 11px;font-size:10px;min-height:40px}.quest-row .btn span{display:none}.adventure-aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.player-card{grid-row:span 2}.weekly-card,.destination-card,.player-card{padding:17px 13px}.player-card .eyebrow{font-size:7px;letter-spacing:1px}.player-card h2{font-size:15px}.player-card>p{font-size:9px}.player-card .row.small{flex-direction:column;gap:4px}.player-card .tag{font-size:9px}.player-note{font-size:7px}.weekly-card .section-head h3{font-size:11px}.weekly-card .section-head{gap:3px}.week-dots{gap:3px}.week-dots b{width:16px;height:22px;border-radius:6px;font-size:13px}.week-dots>div{font-size:7px}.weekly-card>p{font-size:8px}.destination-card .eyebrow{font-size:6px;letter-spacing:1px}.destination-level{font-size:25px;gap:10px;margin:12px 0}.destination-card h3{font-size:10px}.destination-card p{font-size:8px}.destination-card .btn{font-size:8px;padding:7px;min-height:36px}.tip-card{grid-column:1/-1;background:#f0eafa;border-radius:14px;padding:15px 20px}.tip-card p br{display:none}.mobile-nav{display:flex;background:#ffffffed;backdrop-filter:blur(14px);border-top:1px solid #e8e0f2;padding:9px 9px max(10px,env(safe-area-inset-bottom));box-shadow:0 -4px 24px #36234f08}.mobile-nav .navlink{color:#9c8caa;min-width:52px;min-height:48px;font-size:9px;padding:6px 9px;gap:5px;border-radius:12px}.mobile-nav .navlink.active{background:#eee5fc;color:#8b61c9;box-shadow:none}.mobile-nav .navicon{font-size:20px;width:21px}.mobile-nav .ui-icon{width:21px;height:21px}.app-footer{font-size:8px}.app-footer>span{font-size:9px}.quest-banner{padding:20px;gap:15px}.quest-banner h2{font-size:27px}.quest-banner p{font-size:10px;max-width:190px}.quest-progress-ring{width:69px;height:69px;padding:6px}.quest-progress-ring>span{font-size:18px}.quest-deck{grid-template-columns:1fr;gap:17px}.mission-card{padding:20px;display:grid;grid-template-columns:80px minmax(0,1fr);column-gap:18px}.mission-card>.row:first-child{grid-column:1/-1;margin-bottom:14px}.mission-art{grid-row:span 3;height:100%;min-height:120px}.mission-orbit{width:70px;height:70px}.mission-art>i{right:0;top:0}.mission-card h2{margin:0 0 5px;font-size:16px}.mission-card>p{min-height:0;font-size:11px}.mission-card>.row:last-child{gap:8px;flex-wrap:wrap}.mission-card .btn{min-height:42px}.activity-card{padding:24px 19px}.activity-card h2{font-size:21px}.activity-top{gap:8px}.activity-top .btn{font-size:11px;padding:11px}.activity-top .tag{font-size:9px}.test-question{font-size:23px}.test-option{font-size:14px}.onboard-side .brand{color:white}.onboard-main{padding-top:28px}.onboard-main h2{font-size:24px}#cloud-account{padding:7px 15px;gap:8px;font-size:8px;min-height:36px}.sync-message{min-width:150px;line-height:1.6}#cloud-account .btn{font-size:8px;min-height:28px}.account-menu summary{font-size:8px;padding:5px}.auth-page{display:flex;flex-direction:column}.auth-world{padding:33px 25px 25px;min-height:235px;display:block}.auth-world .brand{position:static;font-size:20px;margin-bottom:28px}.auth-world .brand small{font-size:6px;margin-top:7px}.auth-world .logo{width:30px;height:34px;font-size:23px}.auth-world>.eyebrow{font-size:8px}.auth-world h1{font-size:30px;line-height:1.3;margin:10px 0}.auth-world>p{font-size:10px;max-width:215px;margin-bottom:0}.auth-world .companion{position:absolute;right:3px;bottom:5px;transform:scale(.56);transform-origin:right bottom;top:auto;margin:0}.auth-world-foot{display:none}.auth-panel{padding:31px 26px 40px;display:block}.auth-form-wrap{max-width:430px;margin:auto}.auth-emblem{display:none}.auth-form-wrap h2{font-size:24px;margin:10px 0}.auth-form-wrap>p{font-size:11px;margin-bottom:22px}.auth-form-wrap label{font-size:11px}.auth-form-wrap .grid{gap:17px}.auth-note{font-size:9px}.auth-form-wrap>.eyebrow{font-size:8px}}
@media(max-width:370px){.main-inner{padding-left:13px;padding-right:13px}.adventure-hero{padding:25px 20px}.adventure-hero h2{font-size:29px}.adventure-hero .companion{right:-32px;transform:scale(.7)}.adventure-hero .hero-copy{max-width:80%}.mission-strip>div{padding:0 7px}.quest-xp{display:none}.map-node{width:42px;height:44px}.map-node .ui-icon{width:19px}.adventure-aside{gap:10px}.player-card .eyebrow{font-size:6px}.weekly-card,.player-card,.destination-card{padding:14px 11px}.season-tag{display:none}.auth-world .companion{right:-7px;transform:scale(.5)}}
@media(prefers-reduced-motion:reduce){.buddy,.victory-emblem{animation:none!important}*,*:before,*:after{transition:none!important}}

/* Readable supporting text and comfortable account controls on small screens. */
.hero-footnote,.mission-strip div>span:last-child,.quest-body p,.map-stop small,.level-caption,.player-note,.destination-card p,.tip-card p,.weekly-card>p{font-size:11px}
.player-card .small,.destination-card .btn,.quest-xp,.map-caption{font-size:11px}
.map-stop strong,.player-card>p{font-size:12px}
#cloud-account,#cloud-account .btn,.account-menu summary{font-size:11px}
#cloud-account .btn,.account-menu summary{min-height:36px;display:flex;align-items:center}
.auth-note{font-size:12px;line-height:1.8}.auth-form-wrap>p{font-size:13px}
@media(max-width:760px){
 .top-label{font-size:10px}.mission-strip div>span:last-child{font-size:10px}.mission-strip strong small{font-size:11px}
 .adventure-hero p{font-size:12px}.hero-footnote{font-size:10px}.quest-body h4{font-size:13px}.quest-body p{font-size:11px}
 .quest-row .btn{font-size:11px;min-height:44px}.quest-xp{font-size:10px}.map-stop small{font-size:10px}
 .player-card .small,.player-note,.weekly-card>p,.destination-card p,.destination-card .btn{font-size:10px}
 .player-card>p{font-size:11px}.destination-card h3{font-size:12px}.week-dots>div{font-size:9px}
 #cloud-account{font-size:10px;padding:5px 12px;gap:6px}#cloud-account .btn,.account-menu summary{font-size:10px;min-height:36px}
 .sync-message{font-size:10px}.auth-world>p{font-size:11px}.auth-note{font-size:11px}.auth-form-wrap label{font-size:12px}
}
@media(max-width:370px){
 .adventure-aside{grid-template-columns:1fr}.player-card{grid-row:auto}.player-card .row.small{flex-direction:row}
 .weekly-card,.destination-card,.player-card{padding:20px}.week-dots b{width:28px;height:30px}
 .player-card .eyebrow,.destination-card .eyebrow{font-size:9px}.player-note{font-size:10px}
}
