@font-face{font-family:Cinzel;src:url('assets/cinzel.ttf')}@font-face{font-family:Garamond;src:url('assets/garamond.ttf')}*{box-sizing:border-box}body{margin:0;background:#0d181e;color:#f1e7d3;font:14px/1.5 system-ui,sans-serif}button,select,input{font:inherit}button{cursor:pointer;border:1px solid #bfa26855;color:#e9dec9;background:#253037;border-radius:6px;padding:10px 14px;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#3b4748;border-color:#d1b77c;transform:translateY(-1px)}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f1cf8a;outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:#d9bd82;color:#1c2424;border-color:#f3d99e;font-weight:700}.primary:hover:not(:disabled){background:#f1d69c}h1,h2,h3,.serif{font-family:Cinzel,serif}h1,h2,h3,p{margin:0}h2{font-size:22px}h3{font-size:14px;color:#d5bc89}small,.muted{color:#a8b1b2}a{color:#e2c48c}header{height:80px;display:flex;justify-content:space-between;align-items:center;padding:14px 28px;border-bottom:1px solid #b99b5c35;background:#122129}.brand{font:27px Cinzel;letter-spacing:3px}.brand small{display:block;font:9px system-ui;letter-spacing:4px;color:#bca77d;margin-top:-5px}.header-actions{display:flex;gap:8px}.header-actions button{padding:8px 12px;font-size:12px}.edition{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#bfa777}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;max-width:1800px;margin:auto;min-height:calc(100vh - 80px)}.arena{padding:22px 24px}.topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.round{font:22px Garamond;letter-spacing:1px}.round strong{color:#dfc28c}.players{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.player{position:relative;border:1px solid #81918b30;border-top:3px solid var(--clan);background:#18272e;padding:12px;display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;border-radius:6px}.player.active{background:#2b3739;box-shadow:0 0 0 1px var(--clan)}.portrait{width:38px;height:44px;object-fit:cover;object-position:50% 23%;border-radius:4px}.player .name{font:12px Cinzel;color:var(--clan)}.player .hero{font-size:10px;color:#a6b0b2}.score{font:25px Garamond}.score small{font:11px system-ui}.board-wrap{position:relative;background:#143340;border:1px solid #bea16a70;border-radius:10px;overflow:hidden;box-shadow:0 16px 50px #0005}.board-wrap svg{display:block;width:100%;height:auto;min-height:320px}.tile-target{fill:transparent;stroke:transparent;stroke-width:3;cursor:pointer}.tile-target:hover{fill:#f7e1aa22;stroke:#fff3bc}.tile-target.selected{fill:#e3be7025;stroke:#f4d796;stroke-width:4}.tile-target.legal{fill:#d5ffb222;stroke:#e8f4b7;stroke-dasharray:6 4}.edge-target{stroke:transparent;stroke-width:17;cursor:pointer}.edge-target.legal{stroke:#f3e3a6aa;stroke-width:10;stroke-dasharray:8 6}.edge-target:hover{stroke:#fff8c2;stroke-width:13}.node-target{fill:transparent;stroke:transparent;cursor:pointer}.node-target.legal{fill:#f5e3a6aa;stroke:#fff8dc;stroke-width:2}.node-target:hover{fill:#fff2ad;stroke:#fff}.map-label{font:bold 13px system-ui;fill:white;paint-order:stroke;stroke:#18262b;stroke-width:4;pointer-events:none}.board-footer{display:flex;justify-content:space-between;gap:12px;padding:12px 2px;color:#a9b6b9;font-size:11px}.dot{display:inline-block;width:7px;height:7px;background:#a0c7a9;border-radius:50%;margin-right:6px}.sidebar{border-left:1px solid #ad945431;background:#132229;padding:22px 20px}.turn-title{display:flex;align-items:center;gap:12px;margin-bottom:18px}.turn-title img{width:52px;height:65px;border-radius:5px;object-fit:cover;object-position:top}.turn-title h2{font-size:19px;color:var(--clan)}.steps{display:flex;gap:3px;margin-bottom:22px}.step{flex:1;text-align:center;border-bottom:2px solid #425052;padding:6px 0;color:#829194;font-size:10px}.step.current{color:#efd19a;border-color:#efd19a}.resources{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:12px 0 20px}.resource{background:#1d3035;border:1px solid #b49a6330;border-radius:5px;text-align:center;padding:9px 2px}.resource b{display:block;font:25px Garamond}.resource span{display:block;font-size:9px;color:#b4bebd}.resource i{font-style:normal;color:var(--rcolor);font-size:20px}.panel{padding:17px 0;border-top:1px solid #bd9f5c30}.panel h3{margin-bottom:8px}.panel p{font-size:12px;color:#b5c1c1;margin-bottom:12px}.wide{width:100%;margin-top:8px}.dice{font:32px Garamond;display:flex;gap:10px;align-items:center;margin:14px 0}.die{display:inline-grid;place-items:center;width:45px;height:45px;background:#e8d9b8;color:#273236;border-radius:7px;box-shadow:0 3px 0 #938369}.build-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.build-grid button{text-align:left;padding:10px;font-size:12px}.build-grid button.active{border-color:#e6c789;background:#4c493a}.build-grid small{display:block;font-size:9px;margin-top:3px}.field{display:flex;gap:6px;align-items:center;margin:8px 0}select,input{background:#22353b;border:1px solid #67746a;color:#f0e6d0;border-radius:5px;padding:8px;min-width:0;width:100%}label{font-size:12px;color:#bfc7c2}.log{max-height:180px;overflow:auto;padding-right:8px}.log p{padding:7px 0;border-bottom:1px solid #ffffff0b;font-size:11px;margin:0}.inspect{margin-top:10px;color:#dbcca8;font-size:12px}.mini{font-size:11px;padding:5px 8px}.landing{min-height:100vh;background:linear-gradient(90deg,#0c1c24f5 0%,#0d2029df 38%,#0c1d2455),url('assets/board-0.webp') center/cover;display:flex;align-items:center;padding:7vw;position:relative}.landing-content{max-width:660px}.landing h1{font-size:clamp(46px,7vw,90px);line-height:1.15;letter-spacing:4px;margin:22px 0 0;color:#f0ddb2}.landing h2{font:21px Garamond;letter-spacing:5px;text-transform:uppercase;color:#d3b985;margin:10px 0 30px}.landing p{max-width:480px;font:22px/1.5 Garamond;color:#d3d4c5}.landing .features{display:flex;gap:28px;margin:32px 0;color:#d7c194;font-size:12px}.landing .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.landing .primary{padding:15px 28px}.landing .fine{font:12px system-ui;margin-top:20px;color:#9eafb2}.ornament{color:#d0b77e;letter-spacing:8px}.error{color:#f1aa91}.badge{font-size:10px;color:#dfc58d;border:1px solid #b89c5a55;border-radius:20px;padding:4px 9px}.pending{border:1px solid #d5b77c;border-radius:6px;padding:14px;background:#3b3a2c;margin-bottom:16px}.pending h3{color:#fff1c5}.pending p{margin:8px 0;font-size:12px}.pending button{margin:4px 3px 0 0}.mobile-hint{display:none}dialog{border:1px solid #bba06c;background:#182930;color:#eee2c8;border-radius:12px;max-width:720px;width:calc(100% - 32px);max-height:85vh;padding:28px;box-shadow:0 20px 100px #0009}dialog::backdrop{background:#081116c9;backdrop-filter:blur(6px)}dialog h2{margin:0 0 16px}dialog p{margin:10px 0;color:#c6ceca}dialog .close{float:right}dialog ul{padding-left:20px}dialog li{margin:9px 0}.rule-table{width:100%;border-collapse:collapse;font-size:12px}.rule-table td,.rule-table th{padding:7px;border-bottom:1px solid #b59a5c33;text-align:left}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:#e9d3a0;color:#253138;padding:12px 20px;border-radius:6px;box-shadow:0 6px 30px #0008;z-index:20;display:none}.victory{padding:20px;background:#3e422d;border:1px solid #d9bc7d;border-radius:8px;margin-bottom:20px}.victory h2{color:#f4d898}.offer-grid{display:grid;grid-template-columns:1fr 60px 60px;gap:5px;align-items:center}.offer-grid input{padding:5px}.footer-note{margin-top:20px;font-size:10px;color:#71868d}.map-scroll{overflow:auto}.zoomed svg{width:1400px;max-width:none}.map-tools{display:flex;gap:6px}.phase-note{min-height:36px}.pending .map-notice{color:#e7d7aa}.bank-count{font-size:10px;color:#91a4a6;text-align:center;margin-top:-12px;margin-bottom:17px}
@media(min-width:1500px){.layout{grid-template-columns:minmax(0,1fr) 350px}.arena{padding:26px 32px}.sidebar{padding:26px}.player .name{font-size:14px}}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 290px}.arena{padding:16px}.sidebar{padding:16px}.player{grid-template-columns:1fr auto;padding:8px;gap:3px}.player .portrait{display:none}.player .name{font-size:10px}.brand{font-size:23px}}@media(max-width:800px){header{padding:12px 16px;height:72px}.header-actions button{padding:7px;font-size:11px}.header-actions .optional{display:none}.layout{display:flex;flex-direction:column}.sidebar{border-left:0;border-top:1px solid #b99b5c35;padding:20px}.arena{padding:14px 10px}.topline{margin-bottom:12px}.round{font-size:18px}.players{gap:5px}.player .name{font-size:9px}.player .hero{font-size:9px}.player .score{font-size:23px}.board-wrap svg{min-height:0}.mobile-hint{display:inline}.board-footer{font-size:10px}.landing{padding:35px 25px}.landing h1{font-size:48px}.landing h2{font-size:16px;letter-spacing:3px}.landing p{font-size:21px}.landing .features{gap:18px}.turn-title{margin-bottom:10px}.resources{margin-bottom:20px}.panel{padding:15px 0}.steps .step{font-size:12px}.build-grid{grid-template-columns:repeat(3,1fr)}.brand{font-size:20px}.brand small{font-size:7px;letter-spacing:3px}.header-actions{gap:4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:800px){.player{display:block;min-width:0}.player .name{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player .hero{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player .score{font-size:21px;margin-top:3px;line-height:1.1}.player .score small{font-size:10px}}

.guide{background:linear-gradient(125deg,#344638,#203940);border:1px solid #dfc48577;border-radius:8px;padding:14px;margin:0 0 18px}.guide p{font-size:13px;line-height:1.6;margin:8px 0;color:#f0e6ce}.guide small{display:block;font-size:10px;color:#b9c9c1;margin-top:8px}.coach-highlight{outline:3px solid #ffe4a1!important;outline-offset:4px;box-shadow:0 0 22px #ffd27588!important;animation:coachPulse 1.5s ease-in-out infinite}.tile-target.coach-highlight,.edge-target.coach-highlight,.node-target.coach-highlight{outline:none!important;stroke:#fff3b0!important;stroke-width:7!important;fill:#ffe09633;filter:drop-shadow(0 0 7px #ffe29c)}@keyframes coachPulse{50%{opacity:.6}}@media(prefers-reduced-motion:reduce){.coach-highlight{animation:none!important}}

@media(max-width:800px){header{height:auto;min-height:72px;flex-wrap:wrap;gap:10px}.header-actions{flex-wrap:wrap}.guide{scroll-margin-top:16px}}
.tutorial{border:1px solid #91c0ae55;border-radius:8px;background:#1d3438;padding:14px;margin-bottom:18px}.tutorial p{font-size:12px;color:#c8d9d3;margin:9px 0}.tutorial progress{width:100%;accent-color:#a5cbb4;margin:8px 0}.mission-list{display:grid;gap:3px;margin:10px 0;font-size:10px;color:#8fa6a7}.mission-list .done{color:#d6e6ba}.check-label{display:flex;gap:10px;align-items:center;margin:14px 0}.check-label input{width:18px;height:18px;accent-color:#dfc38a}dialog label{display:block;margin:12px 0}dialog .check-label{display:flex}.resource{position:relative}.resource-delta{position:absolute;top:0;right:4px;color:#fff4b4!important;font-size:16px!important;animation:resourceFloat 1.8s forwards}.resource-gain{animation:resourceGlow 1.4s}.resource-spent{animation:resourceSpend 1.2s}.dice-roll{animation:diceRoll .5s ease-out}@keyframes diceRoll{0%{transform:rotate(-25deg) scale(.6)}40%{transform:rotate(20deg) scale(1.2)}100%{transform:rotate(0) scale(1)}}@keyframes resourceFloat{to{opacity:0;transform:translateY(-22px)}}@keyframes resourceGlow{50%{background:#4a6346;box-shadow:0 0 15px #b9ce6f66}}@keyframes resourceSpend{50%{background:#614b38}}@media(prefers-reduced-motion:reduce){.resource-delta,.resource-gain,.resource-spent,.dice-roll{animation:none!important}.resource-delta{display:none}}
.players{grid-template-columns:repeat(var(--participants,4),minmax(0,1fr))}.roster-row{border:1px solid #af986755;border-radius:7px;margin:14px 0;padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.roster-row legend{font-family:Cinzel,serif;font-size:12px;color:#dfc38a}.roster-row label{margin:0}.roster-row select{margin-top:5px}@media(max-width:500px){.roster-row{grid-template-columns:1fr}.players[style*="--participants:2"] .name,.players[style*="--participants:3"] .name{font-size:10px}}
.home-wrap{display:flex;align-items:center;gap:14px}.home-link{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border-radius:999px;border:1px solid #b99b5c55;color:#e9dcb8;text-decoration:none;font:15px/1 system-ui,sans-serif;flex:none}.home-link:hover{background:#b99b5c22}.home-link:focus-visible{outline:2px solid #e9dcb8;outline-offset:2px}.landing-home{position:absolute;top:18px;left:18px;font-size:13px;letter-spacing:.5px;background:#0c1c24b0}
/* Cartas: a arte traz faixa de título e pergaminho vazios; o texto oficial é escrito dentro deles. */
.gcard{position:relative;display:block;width:100%;aspect-ratio:500/683;background:center/100% 100% no-repeat #2a2117;border-radius:6%/4.4%;container-type:inline-size;color:#2b1e10;text-align:center;overflow:hidden}
.gcard-title{position:absolute;left:34%;right:8%;top:46.6%;height:11%;display:flex;align-items:center;justify-content:flex-start;text-align:left;font:600 max(6.4cqw,8px)/1.05 Cinzel,Georgia,serif;letter-spacing:.03em;color:#f4e3b5;text-shadow:0 1px 2px #000;overflow:hidden}
.gcard-title.long{font-size:max(5.1cqw,7.5px)}
.gcard-kicker{position:absolute;left:10%;right:10%;top:60.5%;font:600 3.4cqw Cinzel,Georgia,serif;letter-spacing:.14em;color:#7d5e2c}
.gcard-text{position:absolute;left:11%;right:11%;top:61%;bottom:10%;display:flex;align-items:center;justify-content:center;font:500 max(7.4cqw,10px)/1.2 Garamond,Georgia,serif;overflow:hidden}
.gcard-kicker+.gcard-text{top:65%}
.gcard-sm .gcard-text{font-size:max(7.4cqw,8px)}
.card-thumb{display:block;width:100%;padding:0;border:0;background:none;border-radius:7px;transition:transform .15s,box-shadow .15s}
.card-thumb:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0008;background:none}
.card-thumb:focus-visible{outline:2px solid #e9cf96;outline-offset:3px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px;margin:10px 0}
.card-item{display:flex;flex-direction:column;gap:8px}
.card-item>button:last-child{text-align:center;width:100%;padding:7px 8px;font-size:12px}
.card-note{font-size:11px;color:#9fb0ad}
.event-panel{display:flex;gap:14px;align-items:center;border:1px solid #a58a5644;border-radius:9px;padding:10px 12px;background:linear-gradient(90deg,#253531,#19272c);margin:14px 0}
.event-panel .card-thumb{width:96px;flex:none}
.event-panel h3{margin:2px 0 4px}
.event-panel .edition{font-size:9px}
.card-hint{color:#8fb9a8;font-size:11px}
.event-panel.top{display:none}
.card-zoom{width:min(340px,74vw,calc((85vh - 190px)*.732));margin:4px auto 0;filter:drop-shadow(0 18px 40px #000a)}
.card-zoom.animate{animation:card-reveal .55s cubic-bezier(.2,.8,.25,1)}
.card-zoom-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}
.card-zoom-actions button{min-width:120px;text-align:center}
@keyframes card-reveal{from{transform:perspective(900px) rotateY(80deg) scale(.85);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.card-zoom.animate{animation:none}.card-thumb{transition:none}}
@media(max-width:800px){.event-panel.top{display:flex;margin:0 0 12px}.event-panel.side{display:none}.event-panel .card-thumb{width:84px}}
/* Três colunas: mesa (esquerda) · mapa (centro) · seu turno (direita) */
.layout{grid-template-areas:"arena side" "info side"}
.arena{grid-area:arena}.sidebar{grid-area:side}.info{grid-area:info;padding:0 24px 24px}
.info-players,.info .event-panel.side{display:none}
.portrait-btn{padding:0;border:0;background:none;border-radius:5px;line-height:0;flex:none}
.portrait-btn:hover{background:none;filter:brightness(1.12)}
.portrait-btn:focus-visible{outline:2px solid #e9cf96;outline-offset:2px}
.clan-row{display:flex;gap:12px;align-items:flex-start}
.clan-row .card-thumb{width:84px;flex:none}
.clan-row p{margin-bottom:8px}
.gcard-hero .gcard-kicker{top:60.6%;height:5.4%;display:flex;align-items:center;justify-content:center;color:#e8d6a4;font-size:max(3.6cqw,6px);letter-spacing:.1em}
.gcard-hero .gcard-text{top:68%;bottom:11%}
@media(min-width:1280px){
  .layout{grid-template-columns:272px minmax(0,1fr) 320px;grid-template-areas:"info arena side";max-width:none;height:calc(100vh - 80px);min-height:560px}
  .info,.sidebar,.arena{overflow-y:auto;overscroll-behavior:contain}
  .info{background:#132229;border-right:1px solid #ad945431;padding:22px 18px}
  .info-players{display:grid;grid-template-columns:1fr!important;gap:8px;margin-bottom:6px}
  .info .event-panel.side{display:flex}
  .top-players,.arena .event-panel.top{display:none}
  .info .panel:first-of-type{border-top:0}
  .board-wrap{max-width:calc((100vh - 215px)*1.408);margin:0 auto}
  .arena .topline,.arena .board-footer,.arena .inspect,.arena .footer-note{max-width:calc((100vh - 215px)*1.408);margin-left:auto;margin-right:auto}
}
@media(min-width:1700px){.layout{grid-template-columns:300px minmax(0,1fr) 350px}}
@media(max-width:800px){.arena{order:1}.sidebar{order:2}.info{order:3;padding:0 20px 20px}}
.gcard-sm .gcard-title{font-size:6.4cqw}.gcard-sm .gcard-title.long{font-size:5.1cqw}.gcard-sm .gcard-text{font-size:7.4cqw}.gcard-sm .gcard-kicker{font-size:3.4cqw}
.clan-row .card-thumb{width:96px}
.gcard-sm.gcard-hero .gcard-text{font-size:5.8cqw;line-height:1.15}
.gcard-hero .gcard-kicker{top:71.6%;height:4.6%}
.gcard-hero .gcard-text{top:77.5%;bottom:9.5%}
.gcard-hero .gcard-title{top:54.6%;height:12.4%}
@media(max-width:1100px){.player .portrait-btn{display:none}}
/* Enquadramento: todo bloco das laterais usa a mesma moldura e o mesmo ritmo de 12px */
.sidebar .panel,.info .panel{background:#16272e;border:1px solid #b0975e3a;border-radius:10px;padding:14px;margin:0 0 12px}
.info .panel:first-of-type{border-top:1px solid #b0975e3a}
.guide,.pending,.tutorial,.event-panel{margin:0 0 12px;border-radius:10px}
.panel h3{font-size:13px;margin-bottom:10px}
.panel p:last-child,.clan-row p:last-child{margin-bottom:0}
.resources{margin:0 0 8px}
.bank-count{margin:0}
.res-panel .wide{margin-top:10px}
.turn-title,.steps{margin-bottom:12px}
.players{margin-bottom:12px}
.info-players{gap:8px}
.info .footer-note{margin:4px 0 0;text-align:center}
.board-footer{flex-wrap:wrap;align-items:center;margin-top:10px;padding:9px 12px;background:#16272e;border:1px solid #b0975e3a;border-radius:10px}
.board-footer .inspect{flex-basis:100%;margin:0;padding-top:7px;border-top:1px solid #ffffff12}
@media(min-width:1280px){
  .info,.arena,.sidebar{padding:16px}
  .arena .topline{margin-bottom:12px;min-height:34px}
  .board-wrap,.arena .topline,.arena .board-footer{max-width:calc((100vh - 262px)*1.408)}
}
.turn-card{background:#16272e;border:1px solid #b0975e3a;border-top:3px solid var(--clan);border-radius:10px;padding:14px 14px 4px;margin:0 0 12px}
.turn-card .steps{margin-bottom:10px}
.info .card-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}
.info .clan-row .card-thumb{width:82px}
.info .clan-row p{font-size:11.5px}
@media(min-width:1280px){.layout{grid-template-columns:296px minmax(0,1fr) 320px}}
@media(min-width:1700px){.layout{grid-template-columns:320px minmax(0,1fr) 350px}}
.info .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.info .card-item>button:last-child{padding:6px 4px;font-size:11px}
.turn-card .edition{font-size:9px;letter-spacing:1.2px}
@media(min-width:801px){.info .card-grid .gcard-title{font-size:6.4cqw}.info .card-grid .gcard-title.long{font-size:5.1cqw}.info .card-grid .gcard-text{font-size:7.4cqw}}
