*{box-sizing:border-box}body{margin:0;background:#f7f3e8;color:#263b32;font:18px/1.5 system-ui,sans-serif}header{background:#194b42;color:#fff8dc;border-bottom:4px solid #cd9650}.wrap{width:min(940px,100%);margin:auto;padding:0 20px}.brand{display:flex;align-items:center;gap:12px;padding-block:14px}.brand b{font:bold 27px Georgia}.brand small,.kicker{display:block;font:bold 11px/1.8 system-ui;letter-spacing:.16em}.brand small{color:#dfcda6}nav,.actions{display:flex;gap:8px;flex-wrap:wrap}nav{padding:17px 0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:11px;background:#226052;color:white;font-weight:700;padding:10px 16px;min-height:46px}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #af651e;outline-offset:2px}button:disabled{opacity:.55;cursor:default}.light,nav button{background:#ebe6d7;color:#344a3f}nav button[aria-current]{background:#234e42;color:white}.cover{background:linear-gradient(92deg,#193e37 9%,#193e37ed 42%,#193e3712),url('./valley.svg') center right/cover;border-radius:20px;padding:clamp(24px,5vw,48px);color:#fff8e9;min-height:220px;display:grid;align-content:center}.cover .kicker{color:#f6ca80}.cover p{max-width:38ch;margin:8px 0}.cover h1{font-size:clamp(35px,6vw,62px);margin:4px 0}h1,h2,h3{font-family:Georgia,serif;line-height:1.15;margin:0 0 .45em}h1{font-size:38px}h2{font-size:28px}h3{font-size:23px}p{margin:8px 0 16px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px}section,article,details{background:#fffdf5;border:1px solid #d9d3bf;border-radius:16px;padding:20px;margin:14px 0}article{margin:0}.row{display:flex;align-items:center;gap:12px}.portrait{width:64px;height:64px;object-fit:cover;border-radius:15px;background:#e4ebda;display:grid;place-items:center;font-size:32px;flex-shrink:0}.kicker{color:#716036}.stats{font-weight:700;color:#325449}.note{white-space:pre-wrap;overflow-wrap:anywhere}li{margin:.4em 0}dialog{width:min(450px,94vw);border:1px solid #d4c297;border-radius:18px;padding:24px;background:#fffdf4;color:inherit;max-height:90dvh}dialog::backdrop{background:#102c27aa}label{display:block;font-weight:650;margin:10px 0}input:not([type=checkbox]),textarea,select{width:100%;border:1px solid #9dafa2;border-radius:8px;padding:9px;background:white;color:inherit}input[type=checkbox]{width:20px;height:20px;vertical-align:middle}summary{cursor:pointer;font-weight:bold}.actions{margin-top:14px}#notice{color:#854212;font-weight:bold}progress{width:100%;accent-color:#aa6435}small{color:#53655b}.brand small{color:#dfcda6}@media(max-width:550px){.wrap{padding-inline:12px}nav{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}nav button{padding:7px 0;font-size:15px}.cover{min-height:200px}section,article{padding:16px}}
.map-board{position:relative;isolation:isolate;height:clamp(365px,55vw,455px);border:2px solid #aa9367;border-radius:18px;background:linear-gradient(155deg,#eadbabee,#f9edcddb 45%,#cbd6addb),url('./valley.svg') center/cover;overflow:hidden}.map-board svg{position:absolute;width:100%;height:100%;inset:0;stroke:#805c28;stroke-width:3px;stroke-dasharray:6 5}.map-board line{vector-effect:non-scaling-stroke}.map-compass{position:absolute;right:4%;top:1%;font:44px Georgia;color:#a38550}.map-pin{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:1px;line-height:1.2;background:#fff6d9;color:#344d3c;border:2px solid #ac966c;padding:4px 8px;font-size:clamp(14px,2vw,18px);white-space:nowrap}.map-pin span{font-size:22px}.map-pin[aria-pressed=true]{background:#235747;color:white;border-color:#183d33;box-shadow:0 0 0 3px #ffdc91}
@media(max-width:550px){nav[aria-label]{grid-template-columns:repeat(3,1fr)}}
.game-feedback{text-align:center;border:3px solid #66816b;padding:clamp(20px,5vw,36px);background:#fffaf0;color:#233d34}.game-feedback::backdrop{background:#0a211ed9}.game-feedback .actions{justify-content:center}.game-feedback h2{font-size:clamp(32px,8vw,48px);margin:6px 0 12px}.game-feedback .kicker{display:block}.game-feedback[data-theme=victory]{background:radial-gradient(ellipse at top,#ffdf90,#fff9e9 75%);border-color:#bd8b39}.game-feedback[data-theme=camp]{background:#eaf2ec}.result-emblem{font-size:68px;line-height:1.4}.die-art{display:block;box-sizing:border-box;width:112px;height:112px;margin:20px auto;border-radius:24%;background:#fffdf4;border:4px solid #36594e;box-shadow:0 5px 0 #9eaf99;fill:#234d40}.last-roll{display:flex;align-items:center;gap:12px;text-align:left;font-size:16px}.last-roll .die-art{width:50px;height:50px;flex:none;margin:4px}.game-feedback button{min-height:48px}@media(prefers-reduced-motion:no-preference){.die-art{animation:tumble .46s ease-out}.result-emblem{animation:celebrate .38s ease-out}@keyframes tumble{0%{transform:translateY(-15px) rotate(-110deg) scale(.65)}70%{transform:rotate(9deg)}100%{transform:none}}@keyframes celebrate{from{transform:scale(.7)}to{transform:scale(1)}}}
dialog .close-corner{position:sticky;top:0;float:right;z-index:1;margin:-12px -12px 0 4px;width:44px;height:44px;min-height:44px;padding:0;display:grid;place-items:center;font:32px/1 system-ui,sans-serif;border-radius:50%;background:#f3ecdb;color:#274b40;border:1px solid #b2ad98;cursor:pointer}dialog .close-corner:hover{background:#e2dac5}dialog #title{padding-right:38px}
