:root{--forest:#244735;--ink:#233c2c;--olive:#758149;--cream:#f6f4e9;--gold:#edb848;--line:#dedfd0}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--cream);font-family:Arial,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:13px 16px;transition:transform .15s,background .15s}button:hover{filter:brightness(1.06);transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button:focus-visible,a:focus-visible{outline:3px solid #c78d27;outline-offset:3px}header{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;max-width:1500px;margin:auto;padding:0 42px}.brand{display:flex;gap:10px;align-items:center;color:var(--forest);text-decoration:none;line-height:.95;letter-spacing:1px}.brandmark{font-size:44px}.navtext{font-size:10px;letter-spacing:2.5px;color:#78806c}.subtle{border:1px solid #d8dcca;background:transparent;color:var(--forest);font-size:12px}main{max-width:1500px;margin:auto;padding:34px 42px 0}.intro{display:flex;align-items:center;justify-content:space-between;padding-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2.8px;color:#7c825e;font-weight:700}h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(42px,5.3vw,76px);font-weight:900;letter-spacing:1px;margin:9px 0 9px;line-height:1;color:#294b31;text-shadow:1px 2px #d4d4aa}h1 span{color:#8b934d}h1 i{display:inline-block;color:#d8a041;font-size:38px;font-style:normal;margin-left:15px;vertical-align:middle}.intro p{color:#7a806e;margin:0;font-size:13px}.expedition{border-left:1px solid #d8dcca;padding:5px 0 5px 24px;display:grid;gap:7px}.expedition span{font-size:9px;letter-spacing:2px;color:#858b72}.expedition b{font-family:Georgia,serif;font-size:20px;font-weight:normal;line-height:1.35}.expedition small{font-size:11px;color:#8c907c}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start}.map-card{border:1px solid #cdd5bd;border-radius:14px;overflow:hidden;box-shadow:0 6px 28px #253b2010;background:#e5ead6}.map-top{display:flex;justify-content:space-between;padding:17px 22px;background:#f8f8ed;border-bottom:1px solid #d7dec9;letter-spacing:1.6px;font-size:9px;font-weight:bold}.map-top span:last-child{color:#8d9579;font-size:8px;letter-spacing:1px}.live-dot{display:inline-block;background:#64825a;width:6px;height:6px;border-radius:50%;margin-right:8px}.map-wrap{position:relative;background:#dfe7ce}#board{width:100%;display:block}.legend{display:flex;justify-content:space-around;gap:8px;background:#f8f8ed;padding:18px 12px;font-size:11px}.legend small{display:block;margin:5px 0 0 20px;font-size:9px;color:#8a907a}.legend-ladder{color:#a57332;font-size:19px;line-height:12px}.panel{padding:23px;background:#fffef7;border:1px solid var(--line);border-radius:12px;margin-bottom:16px}.panel-title{font-size:10px;letter-spacing:1.8px;font-weight:bold;display:flex;justify-content:space-between;margin-bottom:19px}.panel h2{font-family:Georgia,serif;font-size:26px;font-weight:normal;margin:6px 0 10px}.panel p{font-size:12px;line-height:1.7;color:#7e846e}.badge{display:inline-block;font-size:9px;letter-spacing:1px;border-radius:30px;background:#edf0df;padding:6px 9px;color:#74804f}.primary{background:var(--forest);color:#fffbe4;width:100%;font-weight:bold;display:flex;justify-content:space-between;align-items:center;margin-top:12px}.gold{background:var(--gold);color:#403a20}.secondary{background:#f5f5e8;border:1px solid #dce0cb;color:var(--forest);width:100%;margin-top:9px}.divider{display:flex;align-items:center;gap:10px;color:#a3a58f;font-size:9px;margin:16px 0}.divider:before,.divider:after{content:'';height:1px;background:#e2e4d4;flex:1}.tiny{font-size:10px!important;text-align:center;margin-bottom:0}.muted{color:#8a917b}.history{padding-bottom:14px}#log{max-height:170px;overflow-y:auto}#log p{margin:0 0 10px;padding-left:12px;border-left:2px solid #e3e6d2;font-size:11px;line-height:1.6}#log p:first-child{border-color:#c6a14f;color:#536142}.aside-note{color:#8b917d;font-size:10px;line-height:1.8;text-align:center;padding:4px}.player{display:flex;align-items:center;gap:10px;padding:12px 8px;border-bottom:1px solid #ececdf;border-radius:7px}.player.active{background:#f0f2de;box-shadow:inset 3px 0 #819249}.player:last-child{border:0}.player-name{flex:1;font-size:12px;font-weight:bold;min-width:0;overflow-wrap:anywhere}.player small{display:block;font-size:9px;color:#93977d;font-weight:normal;margin-top:5px}.token{font-size:12px;color:#9b7936;white-space:nowrap}.pawn-mini{width:24px;height:32px;filter:drop-shadow(0 2px 1px #0002)}.turn-heading{font-family:Georgia,serif;font-size:24px;margin:10px 0 3px}.dice-stage{height:115px;display:flex;justify-content:center;align-items:center;perspective:600px}.die{height:72px;width:72px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:13px;gap:5px;border-radius:15px;background:linear-gradient(135deg,#fffef1,#e4dfc4);box-shadow:4px 6px 0 #cac5ab,8px 12px 20px #1d3b2920;transform:rotate(-9deg)}.pip{background:#294d37;border-radius:50%}.die.rolling{animation:tumble .15s infinite}.turn-subtitle{text-align:center;color:#849073;font-size:11px}.choice-row{display:flex;gap:7px}.choice-row button{flex:1}.room-code{font-size:31px;font-family:monospace;font-weight:bold;letter-spacing:6px;margin:16px 0}.status{font-size:10px;padding:8px 10px;background:#f0f1df;border-radius:7px;color:#7a805d;margin-top:12px}.status.offline{background:#fff0dc;color:#9b6826}input,select{width:100%;padding:12px;border:1px solid #daddc8;border-radius:8px;background:#fffef7;color:var(--ink);margin:6px 0 10px}label{font-size:11px;color:#747d60;display:block}.name-row{display:flex;gap:8px;align-items:center}.name-row input{margin:4px 0}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:24px 0;margin-top:30px;font-size:9px;letter-spacing:1px;color:#8c927c}footer small{letter-spacing:0}dialog{border:1px solid #d1d7bc;border-radius:17px;padding:32px;width:min(550px,92vw);background:#fffdf1;color:var(--ink);box-shadow:0 20px 90px #0004}dialog::backdrop{background:#172f25aa;backdrop-filter:blur(5px)}dialog h2{font-family:Georgia,serif;font-size:29px;font-weight:normal;margin:4px 0 20px}dialog p,dialog li{font-size:13px;line-height:1.8;color:#667156}dialog ol{padding-left:20px}.close{position:absolute;right:12px;top:9px;background:none;font-size:25px;color:#7d866c}.rules-note{background:#eff0de;padding:14px;border-radius:8px;font-size:11px!important}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#244735;color:#fffde8;border-radius:10px;padding:14px 22px;z-index:20;display:none;max-width:90vw;font-size:12px;box-shadow:0 5px 30px #0003}.pawn{transition:transform .18s ease-out;filter:drop-shadow(1px 3px 2px #20301970)}.tile-number{font-family:Arial,sans-serif;font-weight:bold;font-size:18px;fill:#34442c}.tile-special{font-size:11px}.map-label{fill:#748453;font:italic 17px Georgia,serif;letter-spacing:2px}.reset{background:none;font-size:10px;color:#8f967e;padding:7px;width:100%;margin-top:7px}.finish-rank{background:#f6edc7;border:1px solid #deca81;border-radius:9px;padding:12px;margin:10px 0}.empty-slot{padding:12px;color:#a1a68e;font-size:11px;border-bottom:1px dashed #dce0cf}@keyframes tumble{0%{transform:rotateX(0) rotate(-12deg) translateY(0)}50%{transform:rotateX(100deg) rotate(18deg) translateY(-10px)}100%{transform:rotateX(180deg) rotate(-12deg)}}@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 350px}}@media(max-width:1000px){header{padding:0 24px}main{padding:28px 24px 0}.game-layout{grid-template-columns:minmax(0,1fr) 280px;gap:16px}.panel{padding:18px}.expedition{display:none}.legend{font-size:9px}.legend small{font-size:8px;margin-left:0}}@media(max-width:760px){header{height:72px;padding:0 18px}.navtext{display:none}.brandmark{font-size:34px}.brand b{font-size:12px}main{padding:25px 14px 0}.intro{padding:0 4px 25px}h1{font-size:45px}.eyebrow{font-size:8px;letter-spacing:2px}.intro p{font-size:11px}.game-layout{grid-template-columns:1fr}.map-card{order:0}aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{margin:0}#controls{grid-column:1/-1}.aside-note{display:none}.history:only-child{grid-column:1/-1}.map-top{padding:13px;font-size:8px}.legend{padding:13px 6px;font-size:9px}.legend small{font-size:7px}.panel h2{font-size:23px}footer{font-size:7px;padding:20px 4px;gap:12px}.turn-heading{text-align:center}.turn-subtitle{text-align:center}.dice-stage{height:95px}.panel-title{margin-bottom:12px}#players[hidden]{display:none}#history{grid-column:auto}.room-code{text-align:center}h1 i{font-size:24px;margin-left:8px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.map-wrap{overflow:auto}.map-tools{display:none}#board.zoomed{width:1000px;max-width:none}@media(max-width:760px){.map-tools{display:flex;align-items:center;justify-content:space-between;background:#e3e8ce;padding:8px 10px}.map-tools button{padding:7px 10px;font-size:10px;background:#f8f8e8}.map-tools small{font-size:8px;color:#7c8a61}}

footer a{color:#737e5b;text-decoration:none}footer a:hover{text-decoration:underline}
/* Raised forest and illustrated special squares. */
.tile-number{font-size:13px;paint-order:stroke;stroke:#fff9;stroke-width:2.4px;stroke-linejoin:round;fill:#293e2a}.tile-special{font-size:16px;fill:#4a6638}.trap-art,.cave-art{pointer-events:none}.pawn{transition:transform .4s ease-out;filter:drop-shadow(1px 4px 2px #20301970)}.board-arena{position:relative}.trap-legend{font-size:17px;color:#667574;line-height:11px}.dice-summary{font-size:11px;line-height:1.7;text-align:center;color:#7c8967;padding:20px 0 10px}.dice-summary strong{font-size:22px;color:#38543b;margin-left:5px}
/* Six separate faces form a real CSS 3D cube at the board's centre. */
.board-dice[hidden]{display:none}.board-dice{position:absolute;inset:0;z-index:6;display:grid;place-items:center;pointer-events:none}.dice-scrim{position:absolute;inset:0;background:radial-gradient(ellipse at center,#152e2559 0%,#17322524 55%,#1732250a 100%)}.dice-card{position:relative;display:flex;align-items:center;flex-direction:column;gap:13px;padding:22px 32px 25px;border:1px solid #f9f0c680;background:linear-gradient(145deg,#fdf9e8ed,#e9ecd7e8);border-radius:22px;box-shadow:0 18px 55px #102c2559,inset 0 1px #fff;min-width:240px}.dice-kicker{font-size:9px;letter-spacing:2.5px;color:#7f8a63}.dice-card>strong{font-family:Georgia,serif;font-size:19px;font-weight:normal;color:#2f4b33}.cube-stage{--cube-size:94px;--half-cube:47px;width:180px;height:155px;display:grid;place-items:center;perspective:700px;position:relative}.cube-stage:after{content:'';position:absolute;left:35px;right:25px;bottom:8px;height:17px;border-radius:50%;background:#23372d40;filter:blur(9px)}.cube{width:var(--cube-size);height:var(--cube-size);position:relative;transform-style:preserve-3d;transform:rotateX(var(--rest-x,-20deg)) rotateY(var(--rest-y,-28deg));transition:transform .55s cubic-bezier(.2,.8,.2,1);z-index:1}.cube-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:7px;padding:18px;background:linear-gradient(135deg,#fffdf0,#e7dfbd);border:2px solid #e3d9b6;border-radius:13px;backface-visibility:hidden;box-shadow:inset 0 0 0 2px #fff9,inset -5px -6px 13px #b4a5793d}.cube-face .pip{background:radial-gradient(circle at 35% 30%,#45674c,#173c2b);box-shadow:inset 1px 1px 3px #102d2d80,0 1px #fff}.face-0{transform:translateZ(var(--half-cube))}.face-1{transform:rotateY(180deg) translateZ(var(--half-cube));background:linear-gradient(135deg,#e9e1c4,#d5cba7)}.face-2{transform:rotateY(90deg) translateZ(var(--half-cube));background:linear-gradient(135deg,#ede7ce,#d4c99f)}.face-3{transform:rotateY(-90deg) translateZ(var(--half-cube));background:linear-gradient(135deg,#f3edda,#d9cda6)}.face-4{transform:rotateX(90deg) translateZ(var(--half-cube));background:linear-gradient(135deg,#fffef7,#eee6cc)}.face-5{transform:rotateX(-90deg) translateZ(var(--half-cube));background:linear-gradient(135deg,#dfd6b7,#c6bb96)}.cube.rolling{animation:cube-toss 1.1s linear infinite}@keyframes cube-toss{0%{transform:translateY(5px) rotateX(-20deg) rotateY(-28deg) rotateZ(0)}25%{transform:translateY(-24px) rotateX(160deg) rotateY(112deg) rotateZ(18deg)}50%{transform:translateY(-8px) rotateX(340deg) rotateY(252deg) rotateZ(-10deg)}75%{transform:translateY(-20px) rotateX(520deg) rotateY(392deg) rotateZ(14deg)}100%{transform:translateY(5px) rotateX(700deg) rotateY(692deg) rotateZ(0)}}
@media(max-width:760px){.dice-card{min-width:195px;padding:16px 20px 18px;gap:7px;border-radius:18px}.cube-stage{--cube-size:76px;--half-cube:38px;width:145px;height:120px}.cube-face{gap:5px;padding:14px;border-radius:11px}.dice-kicker{font-size:8px;letter-spacing:1.6px}.dice-card>strong{font-size:17px}.dice-summary{padding:12px 0 6px}}
@media(prefers-reduced-motion:reduce){.cube.rolling{animation:none}.cube{transition:none}.pawn{transition:none}}

/* Original angular lettering based on the supplied title reference. Embedded for offline play. */
@font-face{font-family:'Jujur Adventure';src:url(data:font/ttf;base64,AAEAAAAKAIAAAwAgT1MvMkvCRW4AAAEoAAAAYGNtYXABkQGDAAABrAAAAGxnbHlm1YRjOgAAAiwAAAF+aGVhZDArFWQAAACsAAAANmhoZWEHCgJ2AAAA5AAAACRobXR4FeoAjAAAAYgAAAAkbG9jYQFHAcIAAAIYAAAAFG1heHAADAAYAAABCAAAACBuYW1l6XfRwAAAA6wAAAHCcG9zdACmALQAAAVwAAAANAABAAAAAQAA7slmJ18PPPUAAQPoAAAAAOcE6JQAAAAA5wTolAAU/3QC+APoAAAAAwACAAAAAAAAAAEAAAQa/0wAAAMMABQAFALaAAEAAAAAAAAAAAAAAAAAAAAJAAEAAAAJABYAAgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwJvA4QABQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAPz8/PwAAACAAVQQa/0wAAAQaALQAAAAAAAAAAAAAA+gAAAAgAAABLAAAASwAAAKoABQC0AAUAuQAFALuABQDDAAUApQAFAKoABQAAAACAAAAAwAAABQAAwABAAAAFAAEAFgAAAASABAAAwACACAARQBHAEoATABOAFIAVf//AAAAIABFAEcASgBMAE4AUgBV////4f/D/7//uP+7/7f/sv+uAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGQA0AFYAbgCUAKUAvwABABT/dAIcA+gACgAAEyEDEAcFNxcyNxH6ASIK8P7yKIxkCgPo/Or+8jwU0gqgArIAAAEAMv/sArwDZgANAAATMwMUMzI1AzMDECEgETLwCmRkCuYK/sr+ygNm/bJkZAJO/Z7+6AEYAAIAMgAAAu4DZgALABIAABMhBBUUBxMhAyMRIxMVMzI1NCMyAV4BLKDS/vK0FNzcblpaA2YK+qo8/oQBVP6sArK0WloAAQAy/+IC5AN6AAkAADMRFwEDMxEnARMyyAEYCty+/ugKA3oy/lIBwvyGPAGk/j4AAQAy/9gC+AN6ABUAAAEHJiMiERAzMjc1IzUhEQYnJBEQJTIC2jJugqqqPCh4AVSqqv6OAXy0AzTIUP7y/vIeeKr+XGQKCgG4AcwKAAEAMgAAApQDZgAFAAATMwMlFyEy8AoBXh79ngNm/WIK0gABADIAAAKUA2YACwAAEyEHJRUlFSUVJRUhMgJYHv6sASz+1AF8/Z4DZsgKlgrICqAKyAAAAAAAAAwAlgABAAAAAAABAA8AAAABAAAAAAACAAcADwABAAAAAAADABYAFgABAAAAAAAEABcALAABAAAAAAAFAAsAQwABAAAAAAAGABYATgADAAEECQABAB4AZAADAAEECQACAA4AggADAAEECQADACwAkAADAAEECQAEAC4AvAADAAEECQAFABYA6gADAAEECQAGACwBAEp1anVyIEFkdmVudHVyZURpc3BsYXlKdWp1ckFkdmVudHVyZURpc3BsYXkxSnVqdXIgQWR2ZW50dXJlIERpc3BsYXlWZXJzaW9uIDEuMEp1anVyQWR2ZW50dXJlLURpc3BsYXkASgB1AGoAdQByACAAQQBkAHYAZQBuAHQAdQByAGUARABpAHMAcABsAGEAeQBKAHUAagB1AHIAQQBkAHYAZQBuAHQAdQByAGUARABpAHMAcABsAGEAeQAxAEoAdQBqAHUAcgAgAEEAZAB2AGUAbgB0AHUAcgBlACAARABpAHMAcABsAGEAeQBWAGUAcgBzAGkAbwBuACAAMQAuADAASgB1AGoAdQByAEEAZAB2AGUAbgB0AHUAcgBlAC0ARABpAHMAcABsAGEAeQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAMALQA4ADUAMQAqAC8AKA==) format('truetype');font-weight:900;font-style:normal;font-display:swap}
h1.adventure-title{font-family:'Jujur Adventure',Impact,sans-serif;font-size:clamp(52px,6.3vw,91px);font-weight:900;line-height:1.2;letter-spacing:-1.5px;display:flex;flex-wrap:wrap;column-gap:20px;row-gap:0;margin:4px 0 10px;text-shadow:none;isolation:isolate;position:relative;filter:drop-shadow(0 3px 1px #162d2525)}
h1.adventure-title span,.brand-title>span{display:inline-block;position:relative;color:transparent;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='.16' numOctaves='3' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"),linear-gradient(180deg,#fff3b3 0%,#ffe37c 18%,#edb93f 36%,#db8d21 49%,#ce4f17 63%,#ba291b 80%,#8f201b 100%);background-blend-mode:soft-light;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:.45px #bd9c4970}
h1.adventure-title span:before,.brand-title>span:before{content:attr(data-word);position:absolute;inset:0;z-index:-1;color:#1d3834;-webkit-text-fill-color:#1d3834;-webkit-text-stroke:1.2px #1d3834;transform:translate(4px,4px);text-shadow:1px 1px #547067,2px 2px #294740,3px 3px #203c35}
h1.adventure-title span:after,.brand-title>span:after{content:attr(data-word);position:absolute;inset:0;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:.35px #ffe7a980;pointer-events:none}
@media(max-width:1100px){h1.adventure-title{font-size:72px;column-gap:16px}}@media(max-width:760px){h1.adventure-title{font-size:clamp(39px,9.4vw,64px);letter-spacing:-.7px;column-gap:12px;line-height:1.25;margin:6px 0 12px}h1.adventure-title span:before,.brand-title>span:before{transform:translate(2px,2px);text-shadow:1px 1px #547067,2px 2px #294740}}

/* Readable controls, matching corner title, and larger named pieces. */
.primary{justify-content:center;position:relative;text-align:center;padding-inline:40px}.primary>span{position:absolute;right:16px;top:50%;transform:translateY(-50%)}.turn-subtitle:empty{display:none}.brand{display:block;letter-spacing:0}.brand-title{font-family:'Jujur Adventure',Impact,sans-serif;font-weight:900;font-size:24px;display:flex;flex-direction:column;line-height:1.08;isolation:isolate}.brand-title>span:before{transform:translate(1px,1px);text-shadow:1px 1px #294740;-webkit-text-stroke:.6px #1d3834}.brand-title>span:after{-webkit-text-stroke:.2px #ffe7a980}.pawn-mini{width:30px;height:40px;flex-shrink:0}.pawn-name{font:700 11px Arial,sans-serif;fill:#294432}.pawn-nameplate,.pawn-name-leader{pointer-events:none}
.cube{transform:rotateX(var(--rest-x,0deg)) rotateY(var(--rest-y,0deg))}
@media(max-width:760px){.brand-title{font-size:21px}.player{gap:8px;padding-inline:6px}}

.map-label,.board-sign-label{paint-order:stroke;stroke:#f5f3df;stroke-width:2.5px;stroke-linejoin:round}
@media(max-width:600px){#players,#history{grid-column:1/-1}}

/* Paper-and-ink palette for the illustrated jungle board. */
.map-card{border-color:#b1a280;background:#e8debf}.map-wrap{background:#e9dfc0}.tile-number{fill:#413627;stroke:#fff2cf88}.map-label{fill:#726447;stroke:#f3e9ce;stroke-width:2px}.board-sign-label{stroke:#f3e9ce}.legend{background:#f5efdd}

/* Keep the turn panel focused on the active player and available actions. */
.turn-heading{text-align:center}.game-actions{border-top:1px solid var(--line);padding:12px 0 2px;margin-top:4px}.game-actions[hidden]{display:none}.game-actions .reset{font-size:11px;padding:11px 8px;margin-top:0;color:#6c795c}.game-actions .reset:hover{background:#ecebdc}.game-actions .reset:disabled{cursor:not-allowed}
@media(max-width:760px){.game-actions{grid-column:1/-1;margin-top:2px}}
