:root{--bg:#091916;--teal:#122f27;--bright:#d1ead1;--gold:#e9c788;--muted:#9fae9e;--border:#876f48;--panel:#102622;--shadow:#0008}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:#efead6;font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}body{background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:45px 45px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold)}a{color:var(--gold)}.bar{display:flex;gap:16px;align-items:center;padding:12px 22px;background:#102923;border-bottom:1px solid #846e4288;position:relative;z-index:5;min-height:70px}.brand{font:700 20px Georgia,serif;text-decoration:none;white-space:nowrap;color:var(--gold);letter-spacing:.08em;display:flex;align-items:center;gap:9px}.brand span{display:block;font:700 9px system-ui;letter-spacing:.16em;color:#9fbd9e;margin-left:10px}.online-pill{margin-left:auto;border:1px solid #70937480;background:#07221ca8;padding:7px 12px;font:700 11px ui-monospace,monospace;border-radius:25px;color:#a9d8a6}.status-dot{display:inline-block;width:8px;height:8px;border-radius:99px;background:#e4ab7f;margin-right:7px}.status-dot.on{background:#86db9c;box-shadow:0 0 8px #72d58b}.campaign-link{text-decoration:none;font-size:12px;border:1px solid #a38c6177;padding:8px 12px;white-space:nowrap}.layout{max-width:1840px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,355px);gap:16px;padding:18px 20px 30px}.play-area{min-width:0}.world-title{display:flex;align-items:center;justify-content:space-between;margin:5px 0 13px;gap:20px}.world-title h1{font:normal clamp(26px,2.6vw,39px) Georgia,serif;color:#f6deb0;margin:3px 0 0}.tag{font:700 10px ui-monospace,monospace;letter-spacing:.2em;color:#a9cca3}.clock{text-align:right;color:var(--gold);font:700 12px Georgia,serif}.clock small{display:block;font:10px system-ui;letter-spacing:.07em;color:#9daa9d}.canvas-shell{position:relative;border:5px solid #9b8759;outline:4px solid #233e32;box-shadow:0 25px 60px var(--shadow);background:#1a3729;aspect-ratio:5/3;overflow:hidden}.canvas-shell canvas{width:100%;height:100%;display:block;object-fit:fill;image-rendering:pixelated;cursor:crosshair;touch-action:none}.toast{position:absolute;bottom:65px;left:50%;transform:translate(-50%,10px);text-align:center;background:#0c2121eb;color:#ffe1a5;font-weight:700;padding:11px 15px;border:1px solid #b49c62;max-width:80%;opacity:0;pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}.game-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:radial-gradient(ellipse,#16382fcf,#091713f5);padding:20px}.game-overlay[hidden]{display:none}.intro-panel{background:#132922f9;padding:23px 29px 20px;border:1px solid #bca06a;max-width:465px;width:100%;text-align:center;box-shadow:0 16px 45px #0008}.ornament{font-size:20px;color:#e1c182;letter-spacing:.3em}.intro-panel h2{font:normal 33px Georgia,serif;color:#f4ddb1;margin:8px 0 10px}.intro-panel p{font-size:13px;color:#c4cfbf;line-height:1.7}.intro-panel form{display:flex;flex-direction:column;gap:10px;text-align:left;margin-top:17px}.intro-panel label{font:700 10px system-ui;letter-spacing:.16em;color:#e0c589}.intro-panel input,.intro-panel select{background:#091f1b;border:1px solid #798e75;color:#f1e4c4;padding:12px 14px;border-radius:2px}.intro-panel form button{border:none;background:#e1c088;color:#18352a;padding:13px;font-weight:800}.intro-panel .tiny{font-size:11px;color:#f4a69d;margin:0;min-height:15px}.intro-link{font-size:11px;text-decoration:none}.death-flash{position:absolute;inset:0;background:#b9232066;pointer-events:none}.death-flash[hidden]{display:none}.hotbar{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:14px 0 12px}.hotbar button,.travel-panel button,.tabcontent button{padding:10px 12px;border:1px solid #9f8a5c75;background:#193b30;color:#f3ddb1;font-weight:700;font-size:12px;transition:background .15s}.hotbar button:hover,.travel-panel button:hover,.tabcontent button:hover{background:#35614a}.hotbar button span{background:#091c19;color:#99b89f;padding:2px 5px;font:700 10px monospace}.hotbar .hint{color:#d7c18d;font:700 10px ui-monospace,monospace;border:1px solid #45685480;padding:6px 10px}.hotbar .hint small{display:block;color:#8fae96;font-size:9px}.travel-panel{background:linear-gradient(90deg,#13332b,#10251f);border:1px solid #7e946f66;padding:14px 17px;display:flex;flex-direction:column;gap:9px}.travel-panel>b{font:700 11px system-ui;color:#efcd8d;letter-spacing:.1em}.travel-panel>div{display:flex;flex-wrap:wrap;gap:7px}.travel-panel button{padding:7px 12px}.travel-panel small{font-size:11px;color:#abbda9}.sidebar{display:flex;flex-direction:column;gap:13px;min-width:0}.panel{background:linear-gradient(135deg,#16332a,#0f2420);border:1px solid #9c815160;box-shadow:0 5px 17px #0004;padding:15px}.panel-top{display:flex;justify-content:space-between;gap:10px;color:#dabe89;font:800 10px/1.6 system-ui;letter-spacing:.09em}.panel-top span:last-child{color:#9cbca5}.hero-status h2{font:normal 27px Georgia,serif;color:#f6e5c1;margin:11px 0 6px;overflow-wrap:anywhere}.level{display:flex;justify-content:space-between;gap:7px;color:#e6d39f;font:700 12px system-ui;margin-bottom:14px}.level span{color:#f5ca6f}.statline{font:700 10px system-ui;letter-spacing:.1em;color:#bacbb6;display:flex;justify-content:space-between;margin:10px 0 5px}.progress{height:11px;background:#061a18;border:1px solid #3c5141;overflow:hidden}.progress>div{height:100%;width:100%;transition:width .2s}.hp-bar{background:linear-gradient(90deg,#a3423b,#d47b59)}.xp-bar{background:linear-gradient(90deg,#287d70,#9ed9ba)}.character-more{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.character-more div{background:#0a231d;border:1px solid #3c6c50;padding:9px 6px;text-align:center}.character-more small{display:block;color:#9db39c;font-size:8px;letter-spacing:.03em;min-height:27px}.character-more b{font:600 21px Georgia,serif;color:#e8d39a}.action-panel{min-height:222px}.tabrow{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:14px 0}.tab{border:1px solid #315746;background:#091e1a;color:#a3b7a9;font-size:11px;padding:8px 2px}.tab.active{background:#315340;color:#ffe4a5;border-color:#b9a06a}.tabcontent{font-size:12px;max-height:350px;min-height:115px;overflow:auto;padding-right:2px}.tabcontent h3{color:#e6c98f;font:normal 18px Georgia,serif;margin:5px 0 9px}.tabcontent .entry{border:1px solid #42614b77;background:#0c251e;padding:9px 10px;margin:7px 0;display:flex;flex-direction:column;gap:5px}.tabcontent .entry small{color:#abc4ad}.tabcontent .entry b{color:#f0e5cc}.tabcontent .entry .entry-actions{display:flex;flex-wrap:wrap;gap:6px}.tabcontent button{font-size:11px;padding:6px 10px}.tabcontent input,.tabcontent select{background:#061c19;color:#f5e1bf;border:1px solid #80947d;padding:8px;width:100%}.tabcontent .muted{color:#a9bdab;font-size:12px}.tabcontent .warning{color:#ecb697;font-size:11px}.chat-panel{min-height:270px;display:flex;flex-direction:column;flex:1}.chat-panel #chatLog{height:200px;max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:5px;padding:10px 0;font-size:12px;flex:1}.chat-row{overflow-wrap:anywhere}.chat-row b{color:#d8bd89}.chat-row.sys{color:#85b99b;font-style:italic}.chat-row.party b{color:#b3d3f5}.chat-row.guild b{color:#d9addf}#chatForm{display:flex;gap:4px;padding-top:9px;border-top:1px solid #576e4d}#chatForm select{width:85px;min-width:0;padding:7px 1px;background:#0c251e;color:#eedab7;border:1px solid #5a785d;font-size:10px}#chatForm input{flex:1;width:0;padding:8px;background:#091c19;color:#f9e7cd;border:1px solid #5a785d;font-size:11px}#chatForm button{border:0;background:#dfc087;color:#123023;padding:0 11px;font-size:16px}.monster-label{font-family:monospace}.tabcontent .action-rows{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}footer{color:#819c89;border-top:1px solid #42604b;padding:15px 20px;display:flex;gap:20px;justify-content:space-between;font:700 10px system-ui;letter-spacing:.07em}@media(max-width:1180px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.chat-panel{grid-column:1/-1}.canvas-shell{max-width:1200px}.bar{flex-wrap:wrap}}@media(max-width:700px){.layout{padding:10px}.bar{padding:11px}.brand{font-size:16px}.brand span{display:none}.campaign-link{font-size:10px}.world-title{display:block}.clock{display:none}.sidebar{display:flex}.canvas-shell{aspect-ratio:5/4}.canvas-shell canvas{height:100%}.hotbar .hint{display:none}.hotbar button{flex:1}.intro-panel{padding:13px}.intro-panel h2{font-size:25px}footer{display:block}.travel-panel{padding:10px}}

/* Tela cheia do Mundo Aberto: Canvas proporcional 5:3, sem distorção de pixel art. */
#fullscreenBtn{position:absolute;z-index:10;right:12px;top:12px;display:flex;align-items:center;justify-content:center;min-width:114px;min-height:38px;padding:8px 11px;cursor:pointer;border:2px solid #e4c681;border-radius:5px;background:#0b2a25e8;color:#ffecbf;font:700 12px system-ui,sans-serif;letter-spacing:.01em;box-shadow:0 3px 13px #0008;touch-action:manipulation}
#fullscreenBtn:hover,#fullscreenBtn:focus-visible{background:#244d3c;outline:2px solid #fff0b3;outline-offset:1px}
#canvasShell:fullscreen{box-sizing:border-box;margin:0;padding:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;aspect-ratio:auto;border:0;outline:0;box-shadow:none;background:#071510;display:flex;align-items:center;justify-content:center;overflow:hidden}
#canvasShell:fullscreen canvas{flex:0 0 auto;width:min(100vw,166.6667dvh);height:auto;aspect-ratio:5/3;max-width:100%;max-height:100%;object-fit:fill;image-rendering:pixelated}
#canvasShell:fullscreen #fullscreenBtn{position:fixed;right:16px;top:16px;z-index:12}
#canvasShell:fullscreen .game-overlay{z-index:8}
@media(max-width:700px){#fullscreenBtn{min-height:34px;min-width:102px;right:6px;top:6px;font-size:11px;padding:6px 8px}#canvasShell:fullscreen #fullscreenBtn{right:7px;top:7px}}

/* Diálogos narrativos 16-bit: dentro do mapa para funcionar também em tela cheia. */
.npc-dialogue[hidden]{display:none!important}
.npc-dialogue{position:absolute;inset:0;z-index:9;display:flex;justify-content:center;align-items:flex-end;padding:clamp(7px,2.2%,20px);background:linear-gradient(180deg,transparent 8%,#07181055 38%,#06140eb8);box-sizing:border-box}
.npc-window{width:min(820px,100%);min-height:230px;max-height:95%;overflow-y:auto;box-sizing:border-box;border:3px double #e7c88a;border-radius:5px;background:linear-gradient(145deg,#21392cfa,#071e19fc);box-shadow:0 0 0 4px #04130c,0 22px 45px #000c;color:#f4e5c9;padding:clamp(12px,2.6vw,23px)}
.npc-heading{display:flex;align-items:center;gap:14px;padding-bottom:9px;border-bottom:1px solid #c4a36a66}
.npc-sigil{flex:0 0 56px;display:grid;place-items:center;height:56px;border:2px solid #bda16b;background:radial-gradient(#517052,#263c2c);color:#ffedb8;font-size:29px;text-shadow:0 0 13px #fcd88e}
.npc-heading-text{flex:1;min-width:0}.npc-heading-text small{color:#d6bc7d;letter-spacing:.19em;font:700 10px ui-monospace,monospace}
.npc-heading-text h2{margin:3px 0;font:normal clamp(19px,3.3vw,29px) Georgia,serif;color:#ffe4a8}.npc-heading-text span{font-size:12px;color:#accbb5}
#npcClose{border:1px solid #c5a877;background:#2d3828;color:#ffeab6;padding:8px 12px;cursor:pointer;font-size:17px;align-self:flex-start}
.npc-paragraph{font:17px/1.6 Georgia,serif;color:#faf0d9;margin:16px 0 10px;min-height:76px;overflow-wrap:anywhere}
.npc-page-count{font:700 11px monospace;color:#c4b58d;text-align:right;margin-bottom:10px}
.npc-choices{display:flex;gap:8px;flex-wrap:wrap}.npc-choices button,.npc-foot button{background:#e1c283;color:#15342a;font:700 13px Georgia,serif;border:2px solid #e8d09f;padding:10px 14px;cursor:pointer;border-radius:2px;flex:1;min-width:180px}
.npc-choices button:hover,.npc-foot button:hover{background:#f7dfab}.npc-foot{border-top:1px solid #b99c604f;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.npc-foot span{font:700 10px monospace;color:#b9c6ac}.npc-foot button{flex:0 0 auto;min-width:125px}
#canvasShell:fullscreen .npc-dialogue{z-index:15;align-items:flex-end;padding:3vmin}#canvasShell:fullscreen .npc-window{width:min(900px,96%);max-height:90%}
.hotbar .talk-action{background:#325342;border-color:#d3ad66;color:#ffe1ac}.tabrow{grid-template-columns:repeat(5,minmax(0,1fr))}.story-progress{height:7px;border:1px solid #a18454;background:#091b14;margin:8px 0 13px}.story-progress>div{height:100%;background:linear-gradient(90deg,#bc9f64,#ffdb83)}
.story-step{padding:9px;border:1px solid #a88b5266;background:#152b23;margin:8px 0}.story-step b{color:#f8daa5}.story-step small{display:block;color:#b2c7b3;line-height:1.65;margin-top:3px}.story-shards{font-size:12px;line-height:1.8;color:#dfbd7e}
@media(max-width:700px){.npc-window{padding:10px 13px;max-height:99%}.npc-dialogue{padding:5px}.npc-heading{gap:8px}.npc-sigil{flex:0 0 36px;height:36px;font-size:19px}.npc-heading-text small{font-size:8px}.npc-paragraph{font-size:14px;line-height:1.45;margin:10px 0;min-height:55px}.npc-foot span{font-size:8px}.npc-choices button,.npc-foot button{font-size:11px;min-width:120px;padding:9px}.npc-foot button{min-width:90px}.tabrow .tab{font-size:10px}}

.game-info-links{display:flex;gap:12px;flex-wrap:wrap}.game-info-links a{color:#e8c989;text-decoration:underline;text-underline-offset:3px}.game-info-links a:focus-visible{outline:2px solid #f3d591}

/* Preferências da CMP certificada do Google e contato privado opcional */
.privacy-pref-button{background:transparent;border:1px solid #aa9466;color:#f4d69d;padding:8px 10px;border-radius:4px;cursor:pointer;font:600 12px/1.5 system-ui,sans-serif;white-space:normal;text-align:left}.privacy-pref-button:hover{background:#204436;color:#fff2c8}.privacy-pref-button:focus-visible{outline:3px solid #f1d188;outline-offset:2px}.privacy-pref-inline{display:inline-block;margin:7px 0 4px}.privacy-notice{display:block;flex-basis:100%;color:#e9d4a8;line-height:1.65;margin-top:7px;font-size:12px;max-width:680px}.privacy-notice a{color:#f9dda8;margin-right:8px}.private-support-placeholder{padding:12px 14px;margin:17px 0;background:#17352b;border-left:3px solid #bba36d;overflow-wrap:anywhere}.private-support-placeholder a{color:#f1d59f}

/* Cadastro opcional, login e modo visitante */
.auth-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:13px 0}.auth-switch button{border:1px solid #876c43;background:#09261f;color:#f0dab1;min-width:0;padding:10px 5px;font:700 12px/1.2 system-ui;cursor:pointer}.auth-switch button.active{background:#dfc184;color:#1c3328;border-color:#f2daa5}.intro-panel form[hidden],#logoutBtn[hidden]{display:none!important}.intro-panel{max-height:min(92vh,760px);overflow-y:auto;scrollbar-width:thin}.storage-note{font-size:11px!important;color:#b3ccb6!important;margin:6px 0!important}.storage-note.warning{color:#f4b996!important}.auth-message{color:#ffbcae!important;min-height:14px;margin:6px 0!important;font-size:12px!important}.intro-panel label.import-choice{display:flex;align-items:center;gap:9px;font:500 11px/1.4 system-ui;letter-spacing:0;color:#d9d2b5}.import-choice input{width:17px;height:17px;flex:0 0 17px}.intro-panel form>small{color:#bac9b7;font-size:11px;line-height:1.55}.bar #logoutBtn{background:#15362a;color:#f5d6a4;cursor:pointer}.bar #logoutBtn:hover{background:#295743}@media(max-width:650px){.auth-switch button{font-size:11px;padding:9px 3px}.intro-panel{padding:16px 15px;max-height:94vh}}

/* Recuperação de conta por e-mail, sem alterar os controles do jogo. */
.bar #emailSettingsBtn[hidden]{display:none!important}.auth-help-link{display:block;text-align:center;color:#f8d89b;font-size:12px;margin-top:3px;text-underline-offset:4px}
.account-dialog{position:fixed;inset:0;margin:auto;width:min(480px,94vw);max-height:90vh;overflow:auto;border:2px solid #c2a572;background:#0d2922;color:#f4e5c7;padding:28px;box-shadow:0 30px 85px #000b;z-index:100}
.account-dialog::backdrop{background:#020e0bd9}.account-dialog h2{font:normal 27px Georgia,serif;color:#f0d29a;margin:8px 0 16px}.account-dialog p{font:13px/1.65 system-ui;color:#d9ddc8}.account-dialog form:not(.dialog-dismiss){display:flex;flex-direction:column;gap:11px}.account-dialog label{color:#ead19b;font:700 11px system-ui;letter-spacing:.09em}.account-dialog input{width:100%;background:#051a15;color:#f4e6cd;border:1px solid #92845f;padding:12px}.account-dialog form button{background:#e7c587;border:0;padding:12px;color:#183b2e;font-weight:800;cursor:pointer}.account-dialog .dialog-dismiss{float:right}.account-dialog .dialog-dismiss button{background:transparent;color:#e7c587;border:1px solid #786640;padding:7px 12px}
