:root{color-scheme:dark;--bg:#141a16;--panel:#1c231c;--edge:#343c2e;--ink:#eee8d8;--muted:#aaa995;--gold:#d9ba76;--soft:#252d22;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid #e2bd77;outline-offset:4px}a{color:inherit}.masthead{height:91px;margin:0 auto;padding:0 42px;border-bottom:1px solid var(--edge);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:22px;font-weight:850;letter-spacing:2.5px}.brand-mark{font-size:38px;color:var(--gold);line-height:1}.brand small{display:block;color:var(--muted);font-size:8px;letter-spacing:2.5px;font-weight:500;margin-top:5px}.gold{color:var(--gold)}nav{display:flex;align-self:stretch;gap:28px}.nav{border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);padding:0 2px;font-size:12px}.nav.active{border-color:var(--gold);color:var(--ink)}.new-dot,.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#a7b77d;margin-left:7px}.top-actions{display:flex;align-items:center;gap:12px}.version{font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-right:8px}.icon-btn{width:30px;height:30px;background:none;border:1px solid var(--edge);border-radius:50%;font-size:16px}.icon-btn svg{width:15px;height:15px;vertical-align:middle}main{max-width:1560px;padding:30px 42px 16px;margin:auto}.game-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:23px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--gold);margin:0 0 10px}.game-heading h1{font:normal 31px/1.15 var(--serif);margin:0}.text-btn{background:none;border:0;padding:8px 0;color:var(--gold);font-size:11px}.text-btn span{margin-left:13px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:22px;align-items:start}.map-panel{border:1px solid var(--edge);background:#101510;box-shadow:0 10px 35px #0002}.map-toolbar,.map-footer{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:9px;letter-spacing:1px;gap:12px}.map-toolbar>div:first-child{display:flex;align-items:center;gap:8px}.live-dot{margin:0 3px 0 0;background:var(--gold);width:5px;height:5px}.toolbar-muted{color:var(--muted);letter-spacing:0;padding-left:10px;border-left:1px solid var(--edge);font-size:10px}.map-tools{display:flex;gap:7px}.map-tools button{background:#1c241b;border:1px solid #3c4534;border-radius:3px;color:#c8c8b2;font-size:10px;padding:5px 8px;letter-spacing:0}.map-tools button[aria-pressed=true]{background:#655b3c;color:#fff0c8}.canvas-wrap{position:relative;overflow:hidden;isolation:isolate}#board{display:block;width:100%;height:auto;aspect-ratio:1400/1140;touch-action:manipulation}.map-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);padding:9px 16px;background:#10190eea;border:1px solid #a59a6d66;border-radius:3px;font-size:11px;color:#e4d9b8;white-space:nowrap;pointer-events:none;transition:opacity .3s}.map-hint.faded{opacity:0}.hover-tip{position:absolute;left:12px;top:12px;background:#101810f2;border:1px solid #a49b73;padding:10px 14px;max-width:280px;z-index:5;font-size:11px;pointer-events:none;box-shadow:0 3px 12px #0008}.map-footer{color:var(--muted);font-size:9px;letter-spacing:0;border-top:1px solid var(--edge);padding:13px 15px}.legend{display:flex;gap:18px}.legend span{display:flex;align-items:center;gap:7px}.rope-symbol{display:inline-block;width:3px;height:12px;background:repeating-linear-gradient(45deg,#b18d50,#b18d50 2px,#eed5a1 2px,#eed5a1 4px);transform:rotate(12deg)}.pit-symbol,.deep-symbol{display:inline-block;width:13px;height:6px;border:1px solid #b08d5b;background:#000;border-radius:50%}.deep-symbol{border-color:#c3889f}.sidebar{display:flex;flex-direction:column;gap:13px}.turn-card,.bag-card,.crew-card,.journal-card{border:1px solid var(--edge);padding:17px;background:var(--panel)}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-top .eyebrow{margin:0;font-size:8px;letter-spacing:1.4px}.floor-tag{border:1px solid #5b5c42;color:#c2bd91;padding:4px 6px;font-size:8px;letter-spacing:.8px}.turn-person{display:flex;align-items:center;margin:8px -4px 0;gap:5px;min-height:75px}#turnPortrait{width:67px;height:72px;flex-shrink:0}.turn-person h2{font:normal 24px var(--serif);margin:0 0 5px}.turn-person p{margin:0;font-size:10px;color:var(--muted)}.turn-prompt{color:#c6c6af;font-size:11px;line-height:1.6;margin:9px 0 16px;min-height:34px}.dice-row{display:flex;gap:10px;align-items:stretch}.die{height:43px;width:43px;flex-shrink:0;background:#eee2bf;border-radius:6px;box-shadow:0 3px 0 #a88d57;display:flex;align-items:center;justify-content:center;color:#493d24;font:bold 24px var(--serif);position:relative}.die-pips{width:27px;height:27px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:3px}.die-pips i{border-radius:50%;background:#493d24}.primary{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e4cd94;background:var(--gold);color:#242619;font-weight:750;font-size:11px;min-height:43px;padding:11px 15px;border-radius:3px;flex:1;transition:filter .15s,transform .15s}.primary:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.primary span{font-size:17px;font-weight:400}.secondary-actions{display:flex;gap:9px;align-items:center;margin-top:15px}.secondary{border:1px solid #555e44;background:transparent;padding:9px 10px;border-radius:3px;font-size:10px;flex:1}.secondary:hover:not(:disabled){background:#323c2b}.secondary-actions .text-btn{font-size:10px;white-space:nowrap}.card-top h3{margin:0;font-size:11px;font-weight:600}.card-top>span:not(.eyebrow):not(.floor-tag){color:var(--muted);font-size:7px;letter-spacing:1px}.slots{display:flex;gap:8px;margin:13px 0}.slot{flex:1;min-width:0;min-height:62px;border:1px dashed #4c553e;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:8px 4px;gap:6px;color:#7b846c;font-size:9px;text-align:center;background:#172016}.slot.filled{color:#e0d2ab;border:1px solid #605d3e;background:#292d20}.slot svg{width:22px;height:22px;stroke-width:1.5}.gold-count{display:flex;align-items:center;gap:7px;color:#a9ab92;font-size:9px}.gold-count strong{font-size:13px;color:var(--gold)}.coin-small{width:12px;height:12px;border-radius:50%;background:#d6b66c;border:2px solid #92703d;box-shadow:inset 0 0 0 1px #ecd597}.crew{margin-top:8px}.crew-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #343d2c;font-size:10px}.crew-row:last-child{border:0;padding-bottom:0}.crew-row.active{color:var(--gold)}.crew-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.crew-label{flex:1}.crew-row small{color:#919980;font-size:8px;margin-left:5px}.crew-place{font-variant-numeric:tabular-nums;color:#b1b397}.crew-progress{width:40px;background:#3b4431;height:3px;border-radius:2px;overflow:hidden}.crew-progress i{display:block;height:100%;background:var(--gold)}.journal-card{padding-bottom:12px}.journal-line{flex:1;height:1px;background:var(--edge)}.journal{font-size:10px;line-height:1.55;color:#b1b49e;max-height:130px;overflow:auto;scrollbar-width:thin}.journal p{margin:9px 0;padding-bottom:8px;border-bottom:1px solid #343d2c}.journal p:first-child{color:#e6ddbf}.page-footer{display:flex;justify-content:space-between;gap:15px;padding:22px 0 0;color:#747f6a;font-size:8px;letter-spacing:1px}.page-footer>span:last-child{letter-spacing:0}.page-footer button{color:#949f84;background:none;border:0;padding:0;font-size:8px}.footer-divider{margin:0 8px;color:#48513e}.hidden{display:none!important}.decision{margin-top:14px;padding-top:13px;border-top:1px solid var(--edge)}.discovery-title{color:var(--gold);font:19px var(--serif);margin:0 0 6px}.discovery-type{font-size:8px;text-transform:uppercase;letter-spacing:1.5px;color:#a6b491}.discovery-copy{font-size:10px;line-height:1.5;color:#b9bca4;margin:7px 0 10px}.decision-buttons{display:flex;flex-wrap:wrap;gap:6px}.decision-buttons button{border:1px solid #777754;color:#e1d7b3;background:#303727;border-radius:3px;font-size:10px;padding:7px 9px}.decision-buttons button:hover{background:#474d31}.decision-buff{color:#c8daa0}.decision-debuff{color:#eba48a}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:30;background:#e7d7ac;color:#272b1c;box-shadow:0 8px 30px #0005;border-radius:4px;padding:12px 22px;font-size:12px;max-width:90vw}dialog{color:var(--ink);background:#1b231b;border:1px solid #626444;border-radius:8px;padding:34px;max-width:calc(100vw - 32px);box-shadow:0 30px 120px #000b;max-height:90vh;overflow:auto}dialog::backdrop{background:#08100bba;backdrop-filter:blur(7px)}dialog h2{font:normal 34px var(--serif);margin:0 0 12px}.dialog-close{position:absolute;right:17px;top:12px;background:none;border:0;color:#bfc3ac;font-size:26px}.setup-dialog{width:710px}.dialog-intro{font-size:12px;color:#abb29a;line-height:1.7;margin:0 0 21px}.character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.character{padding:8px 7px 12px;background:#242d22;border:1px solid #444e38;border-radius:5px;text-align:left;position:relative}.character.selected{border-color:var(--gold);background:#353b28;box-shadow:inset 0 0 0 1px #d9ba7655}.character.selected:after{content:'✓';position:absolute;right:9px;top:8px;color:var(--gold)}.character canvas{display:block;width:100%;height:104px}.character strong{display:block;text-align:center;font-size:13px;font-weight:600;margin:2px 0 5px}.character p{font-size:8px;color:#abb397;text-align:center;margin:0}.setup-options{margin-top:22px;display:flex;align-items:end;gap:20px}.setup-options>div{flex:1}.setup-options label{display:block;font-size:8px;letter-spacing:1.4px;color:#c6c09b;margin-bottom:8px}select{width:100%;padding:11px;background:#111b12;color:#e5ddc3;border:1px solid #5b6347;border-radius:3px;font-size:11px}.setup-options .primary{flex:0 0 220px}.setup-note{font-size:9px;color:#8c987f;text-align:center;margin:17px 0 0}.rules-dialog{width:740px}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px;margin:26px 0}.rules-grid b{color:#d6c48e;font-size:12px}.rules-grid p{font-size:12px;line-height:1.7;color:#b7bea5;margin:8px 0 0}.rules-note{font-size:10px;color:#88997b;margin:20px 0}.rules-dialog .primary{display:inline-flex;min-width:145px}.studio-dialog{width:1060px}.studio-stage{background:#121b15;border:1px solid #3d4936;border-radius:5px;overflow:hidden;position:relative}.studio-stage canvas{display:block;width:100%;height:auto}.studio-stage>span{display:block;text-align:center;font-size:10px;color:#a6b499;padding:0 10px 18px}.studio-controls{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0}.studio-controls button{padding:9px 12px;background:#293324;border:1px solid #4c5b3e;border-radius:3px;font-size:11px}.studio-controls button.active{border-color:var(--gold);color:var(--gold);background:#3c4027}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid #3b4631;padding-top:15px;font-size:10px;color:#a3ad93}.principles b{display:block;font-size:11px;color:#dacc9f;margin-bottom:5px}.studio-note{font-size:9px;color:#8d9b7e;line-height:1.6;margin:18px 0 0}.studio-note a{color:#bfc88e}.win-dialog{width:440px;text-align:center}.win-dialog canvas{width:180px;height:170px}.win-dialog p:not(.eyebrow){color:#b5c09f;font-size:12px;line-height:1.7}.win-dialog .primary{width:100%;margin-top:20px}.win-dialog .text-btn{margin-top:10px}:fullscreen{background:#0c110e}.map-panel:fullscreen{display:flex;flex-direction:column;align-items:center}.map-panel:fullscreen .canvas-wrap{height:calc(100vh - 90px);width:auto;aspect-ratio:1400/1140}.map-panel:fullscreen #board{height:100%;width:auto}.map-panel:fullscreen .map-toolbar,.map-panel:fullscreen .map-footer{width:100%}
@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 310px}.sidebar{gap:16px}.turn-card,.bag-card,.crew-card,.journal-card{padding:20px}.turn-prompt{font-size:12px}.journal{max-height:170px}}
@media(max-width:1100px){.masthead{padding:0 22px}.version{display:none}main{padding:26px 22px 15px}.game-layout{gap:15px;grid-template-columns:minmax(0,1fr) 255px}.turn-card,.bag-card,.crew-card,.journal-card{padding:13px}.game-heading h1{font-size:28px}.map-toolbar{padding:9px}.toolbar-muted{display:none}.map-footer>span{display:none}.map-footer{padding:10px}.legend{gap:13px}.turn-person h2{font-size:22px}.page-footer{font-size:7px}.masthead nav{gap:20px}}
@media(max-width:760px){.masthead{height:75px;padding:0 16px;gap:12px}.brand{font-size:17px;letter-spacing:1.5px;gap:7px}.brand-mark{font-size:28px}.brand small{font-size:6px;letter-spacing:1.4px}.masthead nav{gap:10px}.nav{font-size:10px}.new-dot{display:none}.top-actions{gap:7px}.icon-btn{width:26px;height:26px}.game-heading{margin-bottom:17px;gap:10px}.game-heading h1{font-size:24px}.game-heading .eyebrow{font-size:7px}.game-heading .text-btn{font-size:9px;white-space:nowrap}main{padding:22px 13px 15px}.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.turn-card{grid-row:span 2}.bag-card{align-self:start}.journal-card{grid-column:1/-1}.crew-card{align-self:start}.journal{max-height:95px}.turn-person{margin-left:-8px;gap:0}#turnPortrait{width:53px}.turn-person h2{font-size:22px}.turn-person p{font-size:8px}.secondary-actions{flex-wrap:wrap;gap:4px}.secondary{flex-basis:100%}.secondary-actions .text-btn{width:100%;text-align:right}.dice-row{gap:7px}.dice-row .primary{font-size:10px;padding:9px}.die{width:37px;height:40px}.floor-tag{font-size:7px;padding:3px}.turn-card .card-top .eyebrow{font-size:7px;letter-spacing:.6px}.page-footer{flex-direction:column;gap:10px;padding-top:20px}.map-hint{font-size:9px;bottom:8px;padding:7px 10px}.map-toolbar{font-size:8px;padding:8px 10px}.map-tools button{font-size:9px}.map-footer{font-size:8px}.setup-dialog{padding:25px 18px}dialog h2{font-size:28px}.dialog-intro{font-size:11px}.character-grid{gap:7px}.character canvas{height:90px}.character p{display:none}.character strong{font-size:11px}.setup-options{gap:12px;flex-direction:column;align-items:stretch}.setup-options .primary{flex:1}.setup-note{font-size:8px}.rules-grid{grid-template-columns:1fr;gap:16px}.rules-dialog,.studio-dialog{padding:27px 19px}.principles{grid-template-columns:1fr;gap:10px}.studio-controls{gap:5px}.studio-controls button{padding:8px;font-size:9px}.studio-note{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Preserve the approved sprite proportions inside every portrait box. */
.character canvas{height:140px;object-fit:contain}#turnPortrait,.win-dialog canvas{object-fit:contain}
@media(max-width:760px){.character canvas{height:120px}}

.studio-playback{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:14px 0;font-size:11px}.studio-playback label{display:grid;gap:6px;color:#bfc8ac}.studio-playback select{min-width:140px;padding:8px}.studio-playback button{padding:10px 14px;border:1px solid #596448;border-radius:4px;background:#2b3625;color:#eadab2}.studio-scrub{flex:1;min-width:120px}.studio-scrub input{width:100%;accent-color:#d9ba76}.studio-playback output{min-width:65px;padding-bottom:9px;color:#cfc7ac;font-variant-numeric:tabular-nums}
/* Landscape play keeps the cave and turn actions in one viewport. */
@media (orientation:landscape) and (max-height:600px){
 html,body{height:100%;overflow:hidden}
 body{box-sizing:border-box;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
 .masthead{height:44px;padding:0 12px;gap:10px}
 .brand{font-size:17px}.brand small,.brand-mark,.version,#playTab{display:none}
 .masthead nav{margin-left:auto}.nav{padding:10px;font-size:11px}.top-actions{gap:4px}.icon-btn{min-width:44px;min-height:40px}
 main{padding:0 8px 6px;max-width:none;height:calc(100% - 44px);display:flex;flex-direction:column}
 .game-heading{margin:0;height:30px;flex:none;justify-content:flex-end}.game-heading>div{display:none}#newBtn{font-size:11px;padding:5px 8px}
 .game-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:8px;min-height:0;flex:1}
 .map-panel{display:flex;flex-direction:column;min-width:0;min-height:0}
 .map-toolbar{padding:0 6px;min-height:42px;gap:4px}.map-toolbar>div:first-child{font-size:9px}.map-toolbar .live-dot,#roundLabel{display:none}
 .map-tools{gap:0}.map-tools button{min-height:42px;padding:0 9px;font-size:11px}#fullBtn{min-width:40px}
 .canvas-wrap{flex:1;min-height:0}#board{width:100%;height:100%;aspect-ratio:auto}
 .map-footer{padding:6px 9px;min-height:27px;font-size:10px}.map-footer>span{display:none}.legend{gap:16px}
 .map-hint{bottom:7px;max-width:90%;white-space:normal;text-align:center;font-size:10px;padding:5px 8px}
 .hover-tip{max-width:calc(100% - 24px);font-size:11px}
 .sidebar{display:flex;gap:7px;overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
 .sidebar>section{padding:10px;flex:none}.turn-person{margin:5px 0;gap:7px}.turn-person canvas{width:40px;height:44px}.turn-person h2{font-size:21px}.turn-person p{font-size:10px}
 .card-top{gap:3px}.card-top .eyebrow,.floor-tag{font-size:9px}.turn-prompt{font-size:10px;min-height:0;margin:4px 0 8px;line-height:1.35}
 .dice-row{gap:7px}.die{width:40px;height:44px}.dice-row .primary{min-height:44px;font-size:12px;padding:8px}
 .secondary-actions{margin-top:6px;gap:4px;flex-wrap:wrap}.secondary-actions button{min-height:44px;padding:7px;font-size:11px;flex:1}
 .bag-card .card-top>span{display:none}.slots{margin-top:7px;gap:5px}.slot{min-height:43px;font-size:10px}.gold-count{margin-top:7px}
 .crew-row{min-height:30px}.journal{max-height:90px}.page-footer{display:none}
 .decision-buttons button{min-height:44px}.decision{margin-top:10px}
 dialog{max-height:calc(100dvh - 16px);padding:18px 22px}dialog h2{font-size:25px;margin:4px 0 10px}.dialog-intro{font-size:12px;margin:4px 0 10px}
 .setup-dialog{width:700px}.setup-dialog .dialog-intro,.setup-note{display:none}.character-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.character canvas{height:90px}.character{padding:5px}.character p{display:none}.character strong{font-size:12px}
 .setup-options{display:grid;grid-template-columns:1fr 220px;gap:12px;margin-top:10px}.setup-options select,.setup-options button{min-height:44px}.setup-options label{font-size:9px}
 .dialog-close{min-width:44px;min-height:44px}.toast{max-width:75%;font-size:12px}
}
@media (orientation:landscape) and (max-height:360px){
 .masthead{height:40px}main{height:calc(100% - 40px)}.game-heading{height:23px}.game-layout{grid-template-columns:minmax(0,1fr) 190px}.turn-person{display:none}.turn-prompt{margin-top:6px}.character canvas{height:65px}
}
@media (orientation:landscape) and (max-height:600px){
 .map-panel{height:100%;box-sizing:border-box;overflow:hidden;align-self:stretch}
 .canvas-wrap{height:0;flex:1 1 0}#board{position:absolute;inset:0}
 .map-toolbar,.map-footer{flex-shrink:0}
}
@media (orientation:landscape) and (max-height:600px){
 body{position:fixed;inset:0;width:100%;margin:0}
 .sidebar{height:100%;min-height:0;box-sizing:border-box}
}
