@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,700;1,700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#071d1a;color:#eff7ed;font-family:'Be Vietnam Pro',sans-serif;font-size:16px}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;border:1px solid #608b78;border-radius:10px;padding:12px 16px;color:inherit;background:#153e33}button:hover{filter:brightness(1.14)}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}header{max-width:1500px;margin:auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #365046}header a{font-weight:700}header span{font-size:13px;color:#aec1b3;margin-left:12px}main{max-width:1500px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;padding:24px 32px}.adventure{border:1px solid #476b58;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#072b2944,#08271ddd 65%,#0c2d26),url('/treasure-b2-forest.webp') center top/cover}.heading{padding:30px 32px 12px;text-shadow:0 2px 12px #001c13}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#d1c38f}h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(32px,5vw,62px);line-height:1.04;letter-spacing:-1px;margin:12px 0}h1 em{color:#f8d67b}h2{font-size:25px;line-height:1.5;margin:12px 0}p{line-height:1.7}.heading p{margin:8px 0;color:#e0ecdf}#map{padding:18px 32px;display:grid;grid-template-columns:repeat(10,1fr);gap:12px}#map div{aspect-ratio:1;min-width:0;border:1px solid #c4ce9988;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#092f29ba;font-weight:700;font-size:16px}#map .current{background:#f7d175;color:#172d22;box-shadow:0 0 25px #f2c96788;outline:3px solid #ffe9b744}#map .passed{background:#377356;color:#fff}#map .special{border-color:#f9d579}.legend{display:flex;gap:15px;flex-wrap:wrap;font-size:13px;padding:0 32px 20px;color:#f0e7c5}.panel{margin:0 24px 16px;padding:28px;background:#08231fec;border:1px solid #607a58;border-radius:18px;box-shadow:0 16px 50px #02130d77}.fields{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin:22px 0}label{font-size:14px;font-weight:600}input{display:block;width:100%;background:#f2f4e9;color:#132f26;border:0;border-radius:9px;padding:14px;margin-top:9px}.gold{background:#f2cb74;color:#163428;border-color:#ffdf96;font-weight:800;padding:15px 22px}.panel .gold{width:100%}details{margin-top:22px;color:#ccd8ce;font-size:14px;line-height:1.8}summary{cursor:pointer}li{margin:8px 0}.stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.stats span{background:#214639;border-radius:8px;padding:8px 12px;font-size:14px}#clock{color:#ffda83}#options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}#options button{text-align:left;min-height:66px;background:#214237;border-color:#67806c;line-height:1.5}#options b{color:#f9d584;margin-right:12px}#feedback{line-height:1.8;padding:10px 0 20px;white-space:pre-line}#error{color:#ffd1bd}#result{text-align:center}#result h2{color:#ffdc87;font-size:42px}#result .chest{font-size:76px}footer{text-align:center;padding:8px 16px 22px;color:#b1c7b9;font-size:13px}aside{background:#102f27;border:1px solid #375849;border-radius:20px;padding:22px;align-self:start}.rankTitle{display:flex;justify-content:space-between;align-items:center}.rankTitle h2{font-size:28px;margin:9px 0}.rankHelp{font-size:13px;color:#b9cbbf}.rankrow{display:grid;grid-template-columns:28px 1fr auto;gap:10px;border-top:1px solid #355146;padding:17px 0;align-items:center;font-size:14px}.rankrow small{display:block;font-size:12px;color:#b9cbbf;margin-top:5px}.rankrow strong{text-align:right;color:#f4d186}#ranks{max-height:850px;overflow:auto}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #f5d276;outline-offset:4px}[hidden]{display:none!important}@media(max-width:1000px){main{grid-template-columns:1fr}aside{width:100%}#ranks{max-height:400px}}@media(max-width:600px){header{padding:15px}header span{display:none}header a{font-size:14px}header button{font-size:13px}main{padding:12px;gap:16px}.heading{padding:25px 20px 10px}#map{padding:15px 20px;grid-template-columns:repeat(5,1fr);gap:9px}#map div{aspect-ratio:auto;min-height:36px;border-radius:9px}.legend{padding:0 20px 20px;font-size:12px;gap:9px}.panel{margin:0 10px 12px;padding:20px 16px}.fields,#options{grid-template-columns:1fr}h2{font-size:21px}.stats{gap:6px}.stats span{font-size:12px;padding:7px}h1{font-size:40px}}

/* Connected perspective map. Path and numbered markers reflect live game state. */
#map{display:block;padding:0 22px 10px;perspective:1100px}#map div{aspect-ratio:auto;min-width:0;border:0;border-radius:0;display:block;background:none;outline:0;box-shadow:none;font-size:inherit;font-weight:inherit}
#map .forest-scene{height:560px;position:relative;overflow:hidden;border-radius:18px;border:1px solid #b4c79288;background:linear-gradient(180deg,#09282422,#07291d55),url('/treasure-b2-forest.webp') center/cover;box-shadow:inset 0 -30px 55px #041e13aa,0 12px 24px #00160e88;perspective:1000px}
#map .route-plane{position:absolute;inset:25px 12px 15px;transform:rotateX(16deg);transform-style:preserve-3d;transform-origin:center 70%}
.route-plane svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.road-shadow,.road-bed,.road-line,.trail{fill:none;stroke-linejoin:round;stroke-linecap:round}.road-shadow{stroke:#0b130eaa;stroke-width:27;transform:translateY(6px)}.road-bed{stroke:#9c7447;stroke-width:23}.road-line{stroke:#ead6a0;stroke-width:14}.trail{stroke:#f9cb60;stroke-width:8;opacity:0;transition:opacity .5s}.trail.walked{opacity:1}
#map .waypoints{position:absolute;inset:0;transform-style:preserve-3d}#map .waypoint{position:absolute;width:36px;height:36px;border-radius:50%;background:linear-gradient(#e9ead2,#8d9d7d);color:#142b20;border:2px solid #edf1d8;box-shadow:0 5px 0 #536443,0 10px 10px #001a13b0;transform:translate(-50%,-50%) translateZ(8px);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;z-index:2}
#map .waypoint.passed{background:linear-gradient(#a5d699,#4c8f5b);border-color:#c5e6a7}#map .waypoint.current{background:linear-gradient(#fff2ab,#efb533);border-color:#fff3ae;box-shadow:0 5px 0 #947027,0 0 25px 8px #ffdd7477;color:#203b23}#map .waypoint.special{border-color:#ffda78}#map .waypoint small{position:absolute;top:37px;white-space:nowrap;background:#123527ee;border:1px solid #d1b775;color:#ffecab;border-radius:5px;padding:1px 5px;font-size:12px;line-height:1.4}#map #traveler{position:absolute;width:28px;height:28px;font-size:27px;line-height:28px;transform:translate(-50%,-160%) translateZ(40px);filter:drop-shadow(0 3px 3px #001a0a);transition:left .85s ease,top .85s ease;z-index:4}
#map .scene-badge{position:absolute;left:14px;top:12px;padding:7px 10px;border-radius:8px;background:#092d23e6;color:#fff0b5;font-size:12px;font-weight:700;letter-spacing:.8px}.scene-badge span{display:block;font-size:11px;color:#bbd3be;margin-top:4px}.location{margin:14px 0 6px;color:#ffe39a;font-weight:700;font-size:16px;text-align:center}.adventure{background:#0b2d25}.heading{background:linear-gradient(90deg,#092820,#174b3c)}
@media(max-width:600px){#map{padding:0 10px 10px}#map .forest-scene{height:520px}#map .route-plane{inset:38px 2px 12px;transform:rotateX(12deg)}#map .waypoint{width:30px;height:30px;font-size:14px}#map .waypoint small{top:30px;font-size:12px;padding:0 3px}.road-bed{stroke-width:27}.road-line{stroke-width:16}#map .scene-badge{font-size:10px;top:8px;left:8px}.location{font-size:14px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){#map #traveler,.trail{transition:none}}

/* Keep the supplied artwork intact and align every stop to its landscape coordinates. */
#map .map-scroll{overflow-x:auto;overscroll-behavior-x:contain;border-radius:18px}
#map .forest-scene{width:100%;min-width:760px;height:auto;aspect-ratio:1024/559;background:url('/treasure-b2-uploaded-forest.webp') center/100% 100% no-repeat;box-shadow:none;border:0;border-radius:0}
#map .route-plane{inset:0;transform:none}
#map .waypoint{width:28px;height:28px;min-height:0;font-size:14px;transform:translate(-50%,-50%);border-width:2px;box-shadow:0 2px 5px #082319bb}
#map #traveler{width:24px;height:24px;min-height:0;font-size:24px;transform:translate(-50%,-150%)}
#map .waypoint.current{z-index:3;outline:3px solid #fff;outline-offset:2px}
.legend{font-size:14px}
