@font-face{font-family:Cinzel;src:url('/assets/cinzel.woff2') format('woff2');font-weight:100 900;font-display:swap}@font-face{font-family:Alegreya;src:url('/assets/alegreya.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--night:#152a2d;--deep:#0f2023;--gold:#d9b46e;--muted:#acb9ae;--paper:#eddfb9;--ink:#302c20;--red:#90392c;--green:#375b43;--line:#c7ac73;--title:Cinzel,Georgia,serif;--text:Alegreya,Georgia,serif}*{box-sizing:border-box}html{min-height:100%;background:var(--deep)}body{margin:0;color:var(--paper);font:18px/1.45 var(--text);background:radial-gradient(ellipse at 25% 34%,#244147 0,transparent 66%),#14272b;background-attachment:scroll}body::before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.055;z-index:10;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.4' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath d='M0 0H150V150H0z' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #e9ba55;outline-offset:4px}[hidden]{display:none!important}a{color:inherit}button{color:inherit}h1,h2,h3,p{margin-top:0}.app-shell{max-width:1240px;padding:22px 38px 24px;margin:auto}.masthead{display:flex;justify-content:space-between;align-items:center;padding-bottom:20px;border-bottom:1px solid #d9b46e40}.wordmark{display:flex;gap:13px;align-items:center;text-decoration:none}.wordmark span{font:9px var(--title);letter-spacing:2.8px;color:var(--muted);display:block}.wordmark strong{display:block;font:600 31px/1.15 var(--title);letter-spacing:2px}.wordmark img{filter:drop-shadow(0 3px 2px #091a1c)}.guide-link{background:none;border:0;min-height:44px;font-size:16px;color:var(--gold);display:flex;gap:10px;align-items:center}.guide-link span{border:1px solid #d9b46e88;border-radius:50%;width:24px;height:24px;font:16px/23px Georgia;text-align:center}.chapter-bar{display:flex;align-items:baseline;justify-content:space-between;margin-top:19px}.chapter-bar p{margin:0;font-size:18px;color:var(--muted)}.chapter-bar strong{font-family:var(--title);font-size:22px;color:var(--paper);font-weight:500}.chapter-bar>span{font:9px var(--title);letter-spacing:2px;color:var(--muted)}.chapters{display:flex;border-bottom:1px solid #d9b46e40;gap:26px;margin:10px 0 24px}.chapters button{position:relative;background:transparent;border:0;padding:12px 5px 15px;font:600 14px var(--title);color:#a9b7ab;min-height:48px}.chapters button span{font-size:10px;color:var(--gold);margin-right:8px}.chapters button[aria-pressed=true]{color:var(--gold)}.chapters button[aria-pressed=true]::after{content:'';position:absolute;bottom:-2px;height:3px;left:0;right:0;background:var(--gold)}.chapters button:hover{color:var(--paper)}
.training{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);column-gap:32px;align-items:start}.mission{grid-column:2;grid-row:1;margin:4px 0 16px}.mission-kicker{display:flex;justify-content:space-between;gap:10px;color:var(--gold);font:10px var(--title);letter-spacing:1px}.progress{display:flex;gap:6px;margin:10px 0 23px}.progress i{display:block;width:100%;height:3px;background:#dae3c826}.progress i.current{background:var(--gold)}.progress i.success{background:#9bb88b}.progress i.fail{background:#bc7156}h1{font:500 clamp(25px,2.5vw,34px)/1.2 var(--title);letter-spacing:-.5px;margin:0 0 13px}#questionBrief{font-size:18px;color:#c5d0be;line-height:1.4;margin-bottom:0}.target-hint{margin:10px 0 0;color:var(--gold);font-size:16px;font-style:italic}.map-section{grid-column:1;grid-row:1 / span 3;min-width:0}.map-topline{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font:9px var(--title);letter-spacing:1.2px}.map-topline button{background:none;border:0;color:var(--gold);min-height:44px;font:14px var(--text);letter-spacing:0}.board-wrap{position:relative}.board{width:100%;margin-top:-7px}.board svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 12px 14px #07171b88)}.terrain-tile{transition:filter .2s}.tile-border{stroke:#6c542b;stroke-width:1.3;fill:none}.tile-rim{stroke:#d8c29b;stroke-opacity:.5;stroke-width:1;fill:none}.tile-highlight{fill:none;stroke-width:3;stroke:#fce9a6;opacity:0;pointer-events:none}.highlighted .tile-highlight{opacity:1}.candidate{cursor:pointer;outline:0}.candidate .shield{fill:#712e26;stroke:#e3bf7e;stroke-width:2;filter:drop-shadow(0 3px 2px #17170eaa);transition:fill .2s,stroke .2s}.candidate text{fill:#fff0c6;font:600 17px var(--title);pointer-events:none}.candidate.selected .shield{fill:#d8b475;stroke:#fff1be}.candidate.selected text{fill:#2a332b}.candidate.correct .shield{fill:#395d43;stroke:#e9d794}.candidate.incorrect .shield{fill:#64231e;stroke:#d08873}.candidate:hover .shield,.candidate:focus .shield{stroke:#fff4c6;stroke-width:3}.token-number{font:700 20px var(--text);fill:#39301f}.token-number.red{fill:#a03928}.token-dot{fill:#493924}.token-dot.red{fill:#a03928}.board-key{display:flex;justify-content:center;flex-wrap:wrap;gap:7px 18px;color:#c2cabc;font-size:13px;margin-top:-4px}.board-key>span{display:flex;gap:4px;align-items:center}.house-key{display:inline-block;width:9px;height:10px;background:#a44733;clip-path:polygon(0 40%,50% 0,100% 40%,100% 100%,0 100%);margin-right:4px}.house-key.own{background:#f1e4bd}.resource-legend{display:flex;gap:7px 16px;flex-wrap:wrap;justify-content:center;padding-top:17px;font-size:13px;color:#adbcad}.resource-legend span{display:flex;gap:5px;align-items:center}.resource-dot{display:inline-block;width:9px;height:9px;background:var(--resource);border:1px solid #d7c08c;rotate:30deg;flex-shrink:0}
.decision{grid-column:2;grid-row:2;position:relative;background:var(--paper);color:var(--ink);padding:22px 23px;box-shadow:0 3px 0 #aa8d55,0 10px 24px #051a1b66;border:1px solid #c5ac75;background-image:linear-gradient(95deg,#dfc99855,transparent 35%,#fff5d633);margin-bottom:15px}.decision::before{content:'';position:absolute;inset:6px;border:1px solid #a78b5140;pointer-events:none}.choice-label{font:600 13px var(--title);margin:0 0 13px}.choices{display:flex;gap:10px;margin-bottom:15px}.choices button{flex:1;min-height:48px;border:1px solid #8f794e;background:#f4e9ca;box-shadow:0 2px #a99568;font:600 21px var(--title);color:#5b432c;position:relative}.choices button:hover:not(:disabled){background:#fff4d3}.choices button[aria-pressed=true]{background:#344d40;color:#f4e6b5;box-shadow:0 2px #273d30;border-color:#314c3a}.choices button.correct{outline:2px solid #416349;outline-offset:2px}.choices button.incorrect{outline:2px solid #943e2c;outline-offset:2px}.primary{width:100%;min-height:48px;display:flex;justify-content:center;align-items:center;gap:14px;padding:12px 15px;background:#314d3e;color:#f5e5b8;border:1px solid #173b2d;box-shadow:inset 0 0 0 3px #bbaa6a26,0 2px 0 #193526;font:600 13px var(--title);letter-spacing:.2px;transition:background .18s}.primary:hover:not(:disabled){background:#42634e}.fineprint{font-size:12px;line-height:1.35;color:#736449;margin:13px 0 0}.feedback{border-top:1px solid #a78b5180;margin-top:19px;padding-top:19px}.eyebrow{font:600 10px var(--title);letter-spacing:1.5px;color:#635036;margin-bottom:10px}.feedback h3{font:600 23px/1.2 var(--title);margin-bottom:12px;outline:none}.feedback p{font-size:16px;line-height:1.4}.feedback[data-correct=true] .eyebrow{color:#335b3b}.feedback[data-correct=false] .eyebrow{color:#8d3828}table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0}th{font:600 9px var(--title);text-align:left;border-bottom:1px solid #ad935e;padding:7px 4px}td{padding:8px 4px;border-bottom:1px solid #bba36f55}td:first-child{font-family:var(--title);font-weight:600}td:last-child,th:last-child{text-align:right}tr.best{background:#4668431a}tr.best td:first-child::after{content:' ✓';font-size:11px}.lesson{font-style:italic;color:#625035}.summary{grid-column:1 / -1;max-width:620px;margin:25px auto;padding:35px;background:var(--paper);color:var(--ink);border:2px solid #b39352;box-shadow:0 9px 25px #04151966;width:100%}.summary h2{font:500 29px/1.2 var(--title)}.summary .final-score{font:500 62px var(--title);color:var(--green);margin:12px 0}.summary ol{padding-left:22px;font-size:16px}.summary li{margin-bottom:7px}.site-footer{border-top:1px solid #d9b46e25;margin-top:26px;padding-top:15px;font-size:12px;color:#a7b8ad;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0 14px}.site-footer button{background:transparent;border:0;text-decoration:underline;color:var(--gold);font-size:13px;min-height:44px}.site-footer p{font-size:11px;width:100%;margin:5px 0 0;opacity:.8}
dialog{background:var(--paper);color:var(--ink);border:2px solid #a5894f;padding:25px;max-width:540px;width:calc(100% - 28px);max-height:calc(100dvh - 35px);box-shadow:0 10px 50px #031819aa;overscroll-behavior:contain}dialog::backdrop{background:#07191de6}dialog h2{font:500 30px/1.2 var(--title)}dialog h3{font:600 17px var(--title);margin:27px 0 10px}dialog p,dialog li{font-size:17px}dialog ul{padding-left:21px}dialog a{font-weight:700}.dialog-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dialog-header button{background:none;border:1px solid #a0895c;width:44px;height:44px;color:var(--ink);font:28px Georgia}.dialog-actions{display:grid;gap:10px}.dialog-actions>button:not(.primary){min-height:44px;border:1px solid #a28c5b;background:transparent}.dice-chart{display:flex;align-items:flex-end;gap:5px;height:105px;margin:20px 0}.dice-column{flex:1;text-align:center;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:end;height:100%;gap:4px}.dice-column i{display:block;background:var(--green);width:100%;height:var(--h)}.dice-column.seven i{background:var(--red)}.dice-column small{font-size:10px}.zoom-dialog{max-width:950px;padding:14px;background:var(--night);color:var(--paper)}.zoom-dialog .eyebrow{color:var(--gold)}.zoom-dialog .dialog-header button{color:var(--paper)}#zoomBoard svg{display:block;width:100%;height:auto;max-height:calc(100dvh - 150px)}.zoom-dialog>p{font-size:14px;text-align:center;margin:0}.port-flag{fill:#e5d0a0}.port-label{font:600 8px var(--text);fill:#55472d}
@media(min-width:1050px){.map-section{position:sticky;top:15px}.board{margin-top:-12px}.mission{padding-top:10px}}
@media(max-width:800px){.app-shell{padding:16px 18px 23px;max-width:640px}.masthead{padding-bottom:14px}.wordmark strong{font-size:27px}.wordmark img{width:36px;height:43px}.wordmark{gap:10px}.guide-link{font-size:14px}.chapter-bar{margin-top:13px}.chapter-bar>span{font-size:7px;letter-spacing:1.3px}.chapter-bar p{font-size:16px}.chapter-bar strong{font-size:18px}.chapters{gap:0;justify-content:space-between;margin-bottom:21px}.chapters button{font-size:11px;padding:10px 2px 13px}.chapters button span{margin-right:3px;font-size:9px}.training{display:flex;flex-direction:column;gap:0}.mission{width:100%;order:1;margin:0}.progress{margin:9px 0 17px}.mission h1{font-size:25px;margin-bottom:9px}.mission #questionBrief{font-size:16px;line-height:1.35}.target-hint{font-size:14px}.map-section{width:100%;order:2;margin:10px 0 20px}.map-topline{font-size:7px;letter-spacing:1px}.map-topline button{font-size:12px;min-height:38px}.board{margin:-10px -8px 0;width:calc(100% + 16px)}.board-key{font-size:11px;gap:8px;margin-top:0}.resource-legend{padding-top:10px;font-size:11px;gap:10px}.resource-dot{width:8px;height:8px}.decision{order:3;width:100%;padding:19px 20px;margin:0}.summary{order:4;padding:25px;margin:0}.site-footer{margin-top:25px}.choice-label{font-size:12px}.mission-kicker{font-size:9px}.progress i{height:3px}}
@media(max-width:350px){.app-shell{padding:13px 13px 20px}.chapter-bar>span{display:none}.wordmark strong{font-size:24px}.guide-link{font-size:13px;gap:5px}.chapters button{font-size:10px}.mission h1{font-size:23px}.decision{padding:17px}.resource-legend{gap:8px}.resource-legend span{gap:4px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.candidate.correct text,.candidate.incorrect text{fill:#fff0c6}.choices button:disabled{opacity:1}
