/* ASCENSÃO · Anime RPG UI · sem dependências externas */
:root{color-scheme:dark;--asc-navy:#071524;--asc-panel:#071625f2;--asc-gold:#dfb662;--asc-gold-light:#fff0b4;--asc-gold-dark:#88602c;--asc-cyan:#56dfff;--asc-text:#fff4df;--asc-muted:#c3d3de;--asc-serif:Georgia,'Times New Roman',serif;--asc-sans:system-ui,-apple-system,'Segoe UI',sans-serif;--asc-art:url('assets/ascensao-art.png');--asc-reference:url('assets/ascensao-reference.png')}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#16334b 0,#060c16 70%);color:var(--asc-text);font-family:var(--asc-sans)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--asc-cyan);outline-offset:4px}[hidden]{display:none!important}.demo-toolbar{max-width:1180px;margin:0 auto;padding:22px 20px 12px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.demo-toolbar h1{font:700 1.2rem var(--asc-serif);color:var(--asc-gold-light);margin:0 0 5px}.demo-toolbar p{font-size:.78rem;margin:0;color:var(--asc-muted)}.demo-toolbar fieldset{display:flex;gap:4px;border:1px solid #8d713e;padding:4px;border-radius:8px;margin:0}.demo-toolbar label{font-size:.78rem;padding:9px 10px;cursor:pointer;border-radius:5px;display:flex;gap:6px;align-items:center}.demo-toolbar label:has(input:checked){background:#354353;color:#fff0b4}.demo-toolbar input{accent-color:var(--asc-gold)}.demo-layout{display:grid;grid-template-columns:minmax(0,478px) minmax(240px,330px);gap:46px;justify-content:center;padding:20px 22px 60px;align-items:start}.asc-app{width:100%;max-width:478px;background:var(--asc-navy);border:1px solid var(--asc-gold-dark);border-radius:28px;box-shadow:0 0 0 3px #020910,0 0 0 4px #c29b57,0 30px 100px #0008;overflow:hidden;position:relative;isolation:isolate}.asc-scene{--scene:0%;--accent:#61d8ff;position:relative;background:#071524;min-height:820px;display:flex;flex-direction:column}.asc-scene[data-world=dojo]{--scene:33.333333%;--accent:#ff9a58}.asc-scene[data-world=finance]{--scene:66.666667%;--accent:#f6d271}.asc-scene[data-world=study]{--scene:100%;--accent:#b6a4ff}.asc-art{height:510px;flex-shrink:0;background-image:linear-gradient(180deg,#02101a55 0%,transparent 25%,transparent 55%,#071524cc 90%,#071524 100%),var(--asc-art);background-size:100% 100%,400% 100%;background-position:center,var(--scene) center;background-repeat:no-repeat;position:relative}.asc-art::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #030e1660}.asc-header{position:absolute;z-index:2;inset:0 0 auto;min-height:92px;display:flex;align-items:flex-start;justify-content:center;text-align:center;padding:24px 16px;background:linear-gradient(#03101ad9,transparent)}.asc-brand{font:700 clamp(2.9rem,12vw,4rem)/1 var(--asc-serif);letter-spacing:-.05em;color:var(--asc-gold-light);text-shadow:0 2px 0 #5b350d,0 4px 8px #000}.asc-subtitle{font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;line-height:1.8;color:#fff9ed;margin:6px 0}.asc-world-title{font:700 clamp(1.1rem,5vw,1.5rem)/1.1 var(--asc-serif);color:var(--asc-gold-light);text-transform:uppercase;letter-spacing:.015em;margin:7px 0;text-shadow:0 2px 6px #000}.asc-back{position:absolute;left:15px;top:26px;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--asc-gold);background:#071524da;color:var(--asc-gold-light);transform:rotate(45deg);border-radius:5px}.asc-back svg{transform:rotate(-45deg);width:21px;height:21px}.asc-icon{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.asc-content{position:relative;z-index:2;margin:-115px 15px 0;flex:1}.asc-profile{display:flex;align-items:center;gap:12px;padding:10px 3px 15px;text-shadow:0 2px 4px #000}.asc-portrait{width:66px;height:66px;border-radius:50%;border:2px solid var(--asc-gold-light);box-shadow:0 0 0 3px #5d451e,0 4px 12px #0008;background-image:var(--asc-art);background-size:650% auto;background-position:2% 23%;background-color:#182e41;flex-shrink:0}.asc-profile-body{flex:1}.asc-profile h2{font:700 1.18rem var(--asc-serif);margin:0 0 8px}.asc-progress{display:block;width:100%;height:10px;border:1px solid var(--asc-gold);border-radius:99px;overflow:hidden;background:#03101c;accent-color:var(--asc-cyan)}.asc-progress::-webkit-progress-bar{background:#03101c}.asc-progress::-webkit-progress-value{background:linear-gradient(90deg,#0787b1,#64edff);border-radius:99px}.asc-progress::-moz-progress-bar{background:#64edff}.asc-xp-label{display:block;text-align:center;font-size:.7rem;margin:4px 0 0;color:#e3f7ff}.asc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:10px}.asc-stat{border:1px solid #bd9451;background:linear-gradient(130deg,#122d42f0,#03111ef5);box-shadow:inset 0 0 0 2px #07121f;display:flex;align-items:center;gap:7px;padding:10px 8px;min-height:62px;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%,0 7px)}.asc-stat:first-child{color:#ff9e8c}.asc-stat:nth-child(2){color:#66ddff}.asc-stat:last-child{color:#f6d47d}.asc-stat span{display:block;color:#f9efdb;font-size:.65rem}.asc-stat strong{font:700 1.1rem var(--asc-serif);color:var(--asc-gold-light)}.asc-parchment{padding:15px 18px;color:#251c13;background:linear-gradient(110deg,#fff2c9,#e7cd94 55%,#f6e7bd);border:1px solid var(--asc-gold);box-shadow:inset 0 0 15px #9b712b50}.asc-parchment h2{font:700 1.5rem/1.12 var(--asc-serif);margin:0}.asc-quest-list{padding:9px;background:#dcca9e;border:1px solid #b8904e;border-top:0;display:grid;gap:8px}.asc-quest-row{width:100%;display:flex;align-items:center;gap:12px;padding:0 10px 0 0;border:1px solid #c9a65c;background:linear-gradient(90deg,#16354b,#061522);color:var(--asc-text);text-align:left;min-height:58px;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%)}.asc-thumb{align-self:stretch;width:94px;flex-shrink:0;background-image:var(--asc-art);background-size:400% auto;background-position:var(--thumb,0%) 40%;border-right:1px solid var(--asc-gold)}.asc-quest-copy{flex:1}.asc-quest-copy strong{font:700 .95rem var(--asc-serif);display:block}.asc-quest-copy small{font-size:.66rem;display:block;color:var(--asc-muted);margin-top:3px}.asc-chevron{font:1.5rem var(--asc-serif);color:var(--asc-gold-light)}.asc-nav{display:grid;grid-template-columns:repeat(4,1fr);padding:12px 5px max(14px,env(safe-area-inset-bottom));background:linear-gradient(#0b2030,#030e19);border-top:1px solid var(--asc-gold);margin-top:12px}.asc-nav button{border:0;background:transparent;color:#b1b6b9;display:flex;flex-direction:column;align-items:center;gap:4px;font: .82rem var(--asc-serif);min-height:50px}.asc-nav button[aria-current=page]{color:#7ae9ff;text-shadow:0 0 10px #0bddff}.asc-nav button[aria-current=page] .asc-icon{filter:drop-shadow(0 0 5px #02bbff)}.asc-panel{position:relative;padding:24px 18px 20px;background:linear-gradient(115deg,#102a3eed,#04111ff5 65%);border:1px solid var(--asc-gold);box-shadow:inset 0 0 0 3px #0b1723,inset 0 0 0 4px #7d6238,0 6px 30px #0009;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)}.asc-panel-title{text-align:center;letter-spacing:.24em;font:700 .61rem var(--asc-serif);color:var(--asc-gold-light);margin:0 0 20px}.asc-mission-body{display:grid;grid-template-columns:49px 1fr 75px;gap:12px;align-items:center}.asc-badge{width:49px;height:61px;display:grid;place-items:center;background:linear-gradient(150deg,#62341b,#21130d);color:#ffbd79;border:2px solid var(--asc-gold);clip-path:polygon(50% 0,100% 20%,100% 80%,50% 100%,0 80%,0 20%)}[data-world=study] .asc-badge{color:#c7ccff;background:#233e86}[data-world=finance] .asc-badge{color:#ffe7a1;background:#675322}.asc-mission-title{font:700 1.35rem/1.05 var(--asc-serif);margin:0 0 8px}.asc-mission-description{font-size:.76rem;line-height:1.45;color:#c9e2f3;margin:0}.asc-reward{text-align:center;border-left:1px solid #98703e;padding-left:9px}.asc-reward small{display:block;font-size:.49rem;letter-spacing:.08em;color:var(--asc-gold-light)}.asc-reward strong{display:block;color:#ffe99b;font:700 1.17rem var(--asc-serif);margin-top:6px}.asc-reward span{display:inline-grid;place-items:center;background:#033961;border:1px solid #53e9ff;box-shadow:0 0 13px #00c7ff70;color:#81e8ff;width:27px;height:27px;font-size:.65rem;margin-top:9px;transform:rotate(12deg)}.asc-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:49px;border:1px solid #fff1bc;border-radius:3px;background:linear-gradient(#ffedb1 0,#e5b65b 30%,#c39340 55%,#edca7e 100%);box-shadow:inset 0 0 0 3px #b17c32,inset 0 0 0 4px #f7d88e,0 3px 0 #4c331d;color:#221a0e;font:700 1.35rem var(--asc-serif);text-shadow:0 1px #fff9c8;padding:10px 15px;margin-top:24px}.asc-button:disabled{filter:saturate(.5);opacity:.8}.asc-button--secondary{background:#0b2335;color:#f9e5b5;text-shadow:none;font-size:.95rem;box-shadow:inset 0 0 0 2px #6e542f;margin-top:10px}.asc-caption{font-size:.65rem;line-height:1.5;letter-spacing:.1em;text-transform:uppercase;text-align:center;margin:22px 15px;color:#f7e6bb}.asc-world-footer{height:130px;margin-top:18px;background-image:linear-gradient(#07152411,#071524aa),var(--asc-art);background-size:100% 100%,400% auto;background-position:center,var(--scene) bottom;display:flex;align-items:flex-end;justify-content:center}.asc-world-footer p{text-align:center;background:#04101bc9;padding:12px 16px;font-size:.6rem;letter-spacing:.13em;color:#f3e2c3}.asc-quote{text-align:center;font-size:.6rem;letter-spacing:.14em;margin:0 36px 18px;color:#fff0ce;text-transform:uppercase;text-shadow:0 2px 5px #000}.asc-reference{position:relative;aspect-ratio:478/823;width:100%;background-image:var(--asc-reference);background-size:400% 100%;background-position:var(--ref-pos,0%) center;background-repeat:no-repeat}.asc-reference button{position:absolute;background:transparent;border:0;color:transparent;border-radius:8px}.asc-reference button:hover,.asc-reference button:focus-visible{background:#63dfff22;outline:2px solid #8aeaff;outline-offset:-2px}.asc-reference .ref-back{left:4%;top:6%;width:10%;height:7%}.ref-mission{left:10%;top:78%;width:80%;height:7%}.ref-quest{left:5%;width:90%;height:6%}.ref-quest:nth-of-type(1){top:66%}.ref-quest:nth-of-type(2){top:74%}.ref-quest:nth-of-type(3){top:81%}.asc-reference-note{font-size:.72rem;color:var(--asc-muted);text-align:center;margin:12px}.demo-aside{padding-top:16px}.demo-aside h2{font:700 1.8rem var(--asc-serif);color:var(--asc-gold-light);margin:8px 0 15px}.demo-aside p{font-size:.88rem;line-height:1.7;color:var(--asc-muted)}.demo-worlds{display:grid;gap:10px;margin:24px 0}.demo-worlds button{display:flex;gap:12px;align-items:center;text-align:left;color:#e8e5d8;padding:14px;background:#0d2130;border:1px solid #4a4e48;min-height:54px;border-radius:5px}.demo-worlds button[aria-pressed=true]{border-color:var(--asc-gold);background:linear-gradient(100deg,#373020,#0d2130);color:#fff0b4}.demo-worlds small{display:block;font-size:.7rem;color:var(--asc-muted);margin-top:3px}.demo-note{padding:15px;border-left:2px solid var(--asc-gold);background:#102334;font-size:.78rem!important}.asc-dialog{max-width:min(90vw,440px);color:var(--asc-text);padding:26px;border:1px solid var(--asc-gold);border-radius:12px;background:linear-gradient(135deg,#183449,#071524);box-shadow:0 20px 100px #000}.asc-dialog::backdrop{background:#020713d9;backdrop-filter:blur(5px)}.asc-dialog h2{font:700 1.7rem var(--asc-serif);color:var(--asc-gold-light);margin:0 0 12px}.asc-dialog p{font-size:.88rem;line-height:1.6;color:var(--asc-muted)}.asc-dialog label{display:block;font-size:.85rem;margin-top:15px}.asc-dialog input{display:block;width:100%;padding:12px;border:1px solid #94733f;border-radius:4px;background:#03111e;color:#fff;margin-top:5px}.asc-status{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 22px;background:#071c2ff5;color:#ffeab7;border:1px solid var(--asc-gold);border-radius:8px;box-shadow:0 6px 24px #000;z-index:30;font-size:.85rem;text-align:center}.asc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.demo-layout{grid-template-columns:minmax(0,478px);gap:12px;padding:12px 12px 32px}.demo-aside{padding:10px 8px}.demo-aside h2,.demo-aside>p:not(.demo-note){display:none}.demo-worlds{grid-template-columns:repeat(4,1fr);gap:5px;margin:5px 0}.demo-worlds button{padding:10px 4px;justify-content:center;font-size:.67rem;min-height:45px}.demo-worlds small,.demo-worlds .asc-icon{display:none}.demo-toolbar{padding:15px 12px 5px}.demo-toolbar fieldset{width:100%;justify-content:center}.asc-mission-body{grid-template-columns:42px 1fr 64px;gap:8px}.asc-mission-title{font-size:1.15rem}.asc-reward strong{font-size:1rem}.asc-badge{width:42px;height:56px}.asc-content{margin-left:12px;margin-right:12px}.asc-panel{padding-left:14px;padding-right:14px}}@media(max-width:360px){.asc-stat{gap:4px;padding:9px 5px}.asc-stat .asc-icon{width:22px}.asc-thumb{width:72px}.asc-world-title{font-size:1rem}.asc-art{height:475px}.asc-scene{min-height:790px}}@media(prefers-reduced-motion:no-preference){.asc-button,.asc-quest-row,.demo-worlds button{transition:filter .15s,transform .15s}.asc-button:hover,.asc-quest-row:hover{filter:brightness(1.12)}.asc-button:active{transform:translateY(2px)}}
/* Preserva proporção das artes; o enquadramento recorta, sem deformar o herói. */
.asc-art{background-size:100% 100%,400% auto;background-position:center,var(--scene) 22%}.asc-reward strong{white-space:nowrap;font-size:1.03rem}.asc-world-footer{background-position:center,0% bottom}

/* Portal web ligado à conta e às missões da API. */
.web-body{min-height:100vh;background:radial-gradient(ellipse at 50% -10%,#17334b 0,#070d16 65%)}
.web-shell{min-height:100vh}.web-topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,58px);border-bottom:1px solid #765b32;background:#07111de8;position:sticky;top:0;z-index:10;backdrop-filter:blur(14px)}
.web-brand{font:700 2rem var(--asc-serif);letter-spacing:-.04em;color:var(--asc-gold-light);text-decoration:none;text-shadow:0 2px 8px #d59d3a55}.web-account{display:flex;align-items:center;gap:14px;color:var(--asc-muted)}.icon-button{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #92733f;background:#12253a;color:var(--asc-cyan)}
.web-layout{max-width:1480px;margin:auto;padding:28px clamp(16px,4vw,58px) 50px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:34px;align-items:start}.web-sidebar{position:sticky;top:96px}.web-sidebar h2{font:700 1.6rem/1.1 var(--asc-serif);color:var(--asc-gold-light);margin:8px 0 10px}.web-sidebar>p:not(.asc-subtitle){font-size:.88rem;color:var(--asc-muted);line-height:1.6}.web-sidebar .demo-worlds{margin:24px 0}.web-sidebar .demo-worlds button{border-color:#645436}.web-main{min-width:0}.web-main .asc-app{width:100%;max-width:100%;border-radius:18px;min-height:calc(100vh - 130px);box-shadow:0 15px 65px #0008}.web-main .asc-scene{min-height:calc(100vh - 130px);border-radius:18px;overflow:hidden}.web-main .asc-art{height:clamp(280px,34vw,440px)}.web-main .asc-content{margin:-100px clamp(18px,3vw,42px) 0}.web-main .asc-profile{max-width:700px}.web-main .asc-stats{max-width:520px}.web-main .asc-parchment{max-width:850px}.web-main .asc-quest-list{max-width:850px}.web-main .asc-panel{max-width:900px}.web-main .asc-world-footer{height:110px}.web-main .asc-nav{grid-template-columns:repeat(4,minmax(0,1fr));border-radius:0 0 18px 18px}
.web-main .asc-quest-list{background:transparent;border:0;padding:0;gap:10px}.web-main .asc-quest-row{min-height:72px;border-radius:5px}.web-main .asc-quest-copy strong{font-size:1rem}.web-main .asc-quest-copy small{font-size:.75rem}.quest-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#c7d4dd;font-size:.7rem;margin-top:6px}.quest-xp{margin-left:auto;color:#ffe99b;font:700 1rem var(--asc-serif);white-space:nowrap}.quest-check{width:22px;height:22px;accent-color:#42d5fa}.empty-state{border:1px dashed #8b7040;padding:20px;color:var(--asc-muted);text-align:center;background:#071a2b9c}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}.section-heading h2{font:700 1.3rem var(--asc-serif);margin:0;color:#fff1cf}.inline-actions{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.small-button{border:1px solid var(--asc-gold);background:#10283b;color:#ffebbd;border-radius:4px;padding:9px 12px}.small-button--cyan{border-color:#44d7f5;color:#7deaff}.web-form{display:grid;gap:12px;margin:18px 0}.web-form label{display:grid;gap:6px;text-align:left;color:#e5d8bf;font-size:.85rem}.web-form input,.web-form select,.web-form textarea{width:100%;min-height:44px;background:#071523;color:#fff4df;border:1px solid #85693c;border-radius:4px;padding:10px 12px}.web-form textarea{min-height:78px;resize:vertical}.auth-screen{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;overflow:auto;background:#050b13}.auth-art{position:fixed;inset:0;background-image:linear-gradient(90deg,#06101bd9,#06101b99),url('/assets/ascensao-art.png');background-size:cover,200% auto;background-position:center,0% 30%;filter:saturate(.9)}.auth-card{position:relative;width:min(100%,440px);padding:34px clamp(22px,5vw,42px);border:1px solid var(--asc-gold);background:linear-gradient(145deg,#102840f2,#06111ff7 74%);box-shadow:0 24px 90px #000b,inset 0 0 0 3px #07121d;border-radius:9px;text-align:center}.auth-card h1{font:700 3rem/1 var(--asc-serif);color:var(--asc-gold-light);margin:0;text-shadow:0 2px 10px #da9d3655}.auth-kicker{font-size:.58rem;letter-spacing:.22em;color:#f2d89d}.auth-card>p:not(.auth-kicker):not(.auth-message){color:var(--asc-muted);font-size:.9rem;margin:14px 0}.auth-card .asc-button{font-size:1.12rem;margin-top:8px}.auth-link{border:0;background:transparent;color:#75def5;text-decoration:underline;margin-top:18px;padding:8px}.auth-message{min-height:1.2em;color:#ffe5a3;font-size:.82rem}.auth-card[aria-busy=true]{opacity:.82}.dialog-x{float:right;border:0;background:transparent;color:#ffebbd;font-size:1.6rem;line-height:1}.book-card{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:14px;padding:14px;margin:10px 0;border:1px solid #98764a;background:#0b2034;border-radius:5px}.book-card .asc-icon{color:#bea9ff}.book-card h3{font:700 1rem var(--asc-serif);margin:0 0 5px}.book-card p{font-size:.8rem;color:var(--asc-muted);margin:4px 0}.finance-total{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.finance-total>div{border:1px solid #3a977f;background:#092a2a;padding:15px;border-radius:6px}.finance-total span{display:block;color:#9bd8c5;font-size:.75rem}.finance-total strong{display:block;color:#8fe3c1;font:700 1.15rem var(--asc-serif);margin-top:6px}.finance-switch{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.finance-switch select{background:#08231f;color:#9eead0;border:1px solid #42977e;padding:8px;border-radius:4px}.force-password .auth-link{display:none}
@media(max-width:850px){.web-layout{grid-template-columns:1fr;gap:16px;padding:18px 14px 32px}.web-sidebar{position:static}.web-sidebar>p:not(.asc-subtitle),.web-sidebar h2,.web-sidebar .asc-subtitle{display:none}.web-sidebar .demo-worlds{grid-template-columns:repeat(4,1fr);margin:4px 0}.web-sidebar .demo-worlds button{justify-content:center;padding:8px 4px;min-height:54px;font-size:.75rem}.web-sidebar .demo-worlds .asc-icon{display:none}.web-sidebar .demo-worlds small{display:none}.web-sidebar>#logout{display:none}.web-main .asc-app,.web-main .asc-scene{min-height:calc(100vh - 210px)}.web-main .asc-art{height:clamp(255px,64vw,380px)}.web-main .asc-content{margin-top:-85px}.web-topbar{height:62px;padding:0 14px}.web-brand{font-size:1.7rem}}
@media(max-width:500px){.web-layout{padding:10px 8px 22px}.web-main .asc-app{border-radius:14px}.web-main .asc-scene{border-radius:14px}.web-main .asc-content{margin-left:12px;margin-right:12px}.web-main .asc-nav{position:sticky;bottom:0;z-index:5}.finance-total{grid-template-columns:1fr}.book-card{grid-template-columns:40px 1fr}.book-card .small-button{grid-column:1/-1}.web-sidebar .demo-worlds button{font-size:.67rem}.web-account{font-size:.75rem}.auth-card{padding-top:28px;padding-bottom:24px}}
