/* STOCKMAPS — one screen, like a game. Colours from the logo: sky blue, grass green, white roads. */
:root{--blue:#2a7bff;--blue2:#1257e6;--blue3:#0b3ea8;--green:#3ec24c;--green2:#2aa438;--white:#fff;--ink:#12305e;--mute:#5b76a3;--navy:rgba(255,255,255,.9);--navy2:rgba(255,255,255,.96);--line:rgba(18,48,94,.12);--red:#ff5d6c;--sans:"Nunito",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:#07101f;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.45;overflow:hidden;height:100svh}
[hidden]{display:none!important}a{color:inherit}img{display:block;max-width:100%}button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--white);outline-offset:2px}
.game{position:fixed;inset:0;background:#07101f}
#pano{position:absolute;inset:0}
#pano .gm-style-cc,#pano .gm-style a[href^="https://maps.google.com"]{opacity:.35}
.tint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(7,16,38,.35),rgba(7,16,38,0) 22%,rgba(7,16,38,0) 70%,rgba(7,16,38,.45))}
.hud{position:absolute;inset:0;pointer-events:none;z-index:5}
.hud>*{pointer-events:auto}
.pill,.btn{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 15px;border-radius:14px;background:linear-gradient(180deg,#ffffff,#eef3fb);border:2px solid #fff;font-weight:900;font-size:14px;text-decoration:none;white-space:nowrap;color:var(--ink);box-shadow:0 6px 16px rgba(10,30,70,.28),inset 0 -3px 0 rgba(18,48,94,.08)}
.btn:hover{transform:translateY(-1px)}
.btn.blue{background:linear-gradient(180deg,#5aa0ff,#1f66f0);border-color:#fff;color:#fff;box-shadow:0 6px 18px rgba(42,123,255,.45),inset 0 -3px 0 rgba(11,62,168,.55),inset 0 2px 0 rgba(255,255,255,.5)}
.btn.blue:hover{background:linear-gradient(180deg,#5c9cff,#2a70f5)}
.btn.green{background:linear-gradient(180deg,#6be276,#2aa438);border-color:#fff;box-shadow:0 6px 18px rgba(62,194,76,.45),inset 0 -3px 0 rgba(26,120,40,.6),inset 0 2px 0 rgba(255,255,255,.5);color:#fff}
.btn[disabled]{opacity:.55;cursor:default}
.ico{width:40px;padding:0;justify-content:center}
.top{position:absolute;z-index:3;top:14px;left:14px;right:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.brand{display:flex;align-items:center;gap:0;padding:0;overflow:hidden}
.brand img{width:42px;height:42px;border-radius:12px 0 0 12px;margin:-2px 0 -2px -2px}
.brand b{padding:0 14px 0 10px;font-size:16px;font-weight:900;letter-spacing:.01em}
.brand .sep{width:1px;height:24px;background:var(--line)}
.brand button{background:none;border:0;height:38px;padding:0 14px;font-weight:900;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px}
.tr{display:flex;gap:8px;align-items:center}
.tape{position:absolute;z-index:3;top:14px;left:50%;transform:translateX(-50%);width:min(420px,calc(100vw - 360px));height:46px;border-radius:14px;background:linear-gradient(180deg,#fff,#eef3fb);border:2px solid #fff;box-shadow:0 6px 16px rgba(10,30,70,.28);overflow:hidden;font-family:var(--mono)}
.tape .track{position:absolute;top:0;left:50%;height:100%;white-space:nowrap;will-change:transform}
.tape .t{position:absolute;top:0;width:60px;margin-left:-30px;text-align:center;font-size:10px;color:var(--mute);padding-top:6px}
.tape .t.c{color:var(--ink);font-weight:700;font-size:11px}
.tape .t::after{content:"";position:absolute;left:50%;bottom:6px;width:1px;height:8px;background:var(--line)}
.tape .t.c::after{height:12px;background:rgba(255,255,255,.5)}
.tape .mark{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ink);opacity:.5}
.tape .tgt{position:absolute;top:3px;width:22px;height:22px;margin-left:-11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7fc4ff,#2a7bff 60%,#1257e6);border:2px solid #fff;box-shadow:0 3px 8px rgba(10,30,70,.4);transition:left .15s ease-out;display:grid;place-items:center}.tape .tgt::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #fff;margin-top:-1px}
.tape .deg{position:absolute;left:0;right:0;bottom:2px;text-align:center;font-size:10px;color:var(--mute)}
@media (max-width:900px){.tape{top:64px;width:calc(100vw - 28px)}}
.center{position:absolute;z-index:1;inset:0;display:grid;place-items:center;text-align:center;padding:20px;background:rgba(7,16,38,.28)}
.center .in{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:560px}
.center img{width:132px;height:132px;border-radius:32px;border:4px solid #fff;box-shadow:0 16px 40px rgba(0,0,0,.45)}
.center .name{font-size:30px;font-weight:900;letter-spacing:.02em;margin-top:8px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.center .play{margin-top:26px;font-size:clamp(26px,4.6vw,40px);font-weight:900;letter-spacing:.05em;line-height:1;padding:18px 40px;border-radius:22px;color:#fff;background:linear-gradient(180deg,#6be276,#2aa438);border:4px solid #fff;box-shadow:0 12px 30px rgba(0,0,0,.4),inset 0 -6px 0 rgba(26,120,40,.6),inset 0 3px 0 rgba(255,255,255,.55);transition:transform .12s}
.center .play:hover{transform:translateY(-2px) scale(1.02)}.center .play:active{transform:translateY(2px)}
.center .sub{font-family:var(--mono);font-size:13px;color:#fff;margin-top:16px;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.center .link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-family:var(--mono);font-size:13px;color:#fff;text-decoration:none;background:none;border:0;padding:0;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.center .link:hover{text-decoration:underline}
.status{position:absolute;z-index:2;left:0;right:0;bottom:22px;padding-inline:16px;text-align:center;font-family:var(--mono);font-size:12px;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.7);pointer-events:none}
.status i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff;margin-right:8px;vertical-align:1px}
.status.live i{background:var(--green);box-shadow:0 0 0 4px rgba(62,194,76,.25)}
/* in-game HUD */
.card{position:absolute;left:14px;top:68px;width:min(320px,calc(100vw - 28px));padding:12px 14px;border-radius:16px;background:var(--navy);border:2px solid #fff;box-shadow:0 6px 16px rgba(10,30,70,.28)}
.card .st{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--mute)}
.card .st i{width:7px;height:7px;border-radius:50%;background:var(--mute)}
.card .st.live i{background:var(--green);box-shadow:0 0 0 4px rgba(62,194,76,.2)}
.card .st.practice i{background:var(--blue)}
.card .st.claimed i{background:var(--red)}
.card .tk{font-size:34px;font-weight:900;line-height:1;margin:6px 0 2px;color:var(--blue2)}
.card .tk small{font-size:14px;font-weight:700;color:var(--mute);margin-left:8px}
.card .where{font-size:12px;color:var(--mute);line-height:1.35}
.card .next{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}
.card .next b{color:var(--ink);font-family:var(--mono);font-weight:700}
.dist{position:absolute;left:14px;bottom:14px;padding:10px 14px;border-radius:16px;background:var(--navy);border:2px solid #fff;box-shadow:0 6px 16px rgba(10,30,70,.28);font-family:var(--mono);font-size:12px;color:var(--mute);line-height:1.35}
.dist b{display:block;font-size:24px;color:var(--blue2);font-weight:500;letter-spacing:-.02em;font-family:var(--sans);font-weight:900}
.dist .hops em{font-style:normal;color:var(--green2);font-weight:700}
.minimap{position:absolute;right:14px;bottom:14px;width:220px;height:150px;border-radius:16px;overflow:hidden;border:3px solid #fff;background:#8fe06a;box-shadow:0 8px 24px rgba(0,0,0,.35)}
#map{width:100%;height:100%}
.action{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.action .hint{font-family:var(--mono);font-size:12px;color:#fff;background:rgba(7,16,38,.55);padding:6px 10px;border-radius:8px;backdrop-filter:blur(8px)}
.action .btn{height:56px;padding:0 26px;font-size:18px;border-radius:18px;font-weight:900;border-width:3px}
.toast{position:absolute;z-index:4;top:72px;left:50%;transform:translateX(-50%);max-width:min(440px,calc(100vw - 28px));padding:10px 14px;border-radius:12px;background:var(--navy2);border:2px solid #fff;box-shadow:0 6px 16px rgba(10,30,70,.28);font-size:13px;font-weight:700;transition:opacity .25s;opacity:0;font-family:var(--mono)}
.toast.on{opacity:1}.toast.bad{border-color:var(--red)}.toast.good{border-color:var(--green)}
@media (max-width:900px){.toast{top:auto;bottom:200px}.card{top:118px}.minimap{width:140px;height:104px}.action{bottom:132px}#practiceBtn{display:none}.brand b{display:none}.brand button{padding:0 10px;font-size:13px}.btn{padding:0 11px;font-size:13px}}
/* hunt board modal */
.modal{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:rgba(7,16,38,.5);backdrop-filter:blur(6px)}
.panel{width:min(880px,100%);max-height:calc(100svh - 32px);overflow:auto;border-radius:22px;background:#f4f7fc;border:3px solid #fff;box-shadow:0 30px 80px rgba(0,0,0,.5);color:var(--ink)}
.panel header{position:sticky;top:0;display:flex;align-items:center;gap:6px;padding:12px 14px;background:#f4f7fc;border-bottom:1px solid var(--line);z-index:1}
.panel header .tab{height:36px;padding:0 14px;border-radius:10px;border:0;background:transparent;font-weight:800;color:var(--mute)}
.panel header .tab.on{background:linear-gradient(180deg,#5aa0ff,#1f66f0);color:#fff;box-shadow:inset 0 -2px 0 rgba(11,62,168,.5),inset 0 1px 0 rgba(255,255,255,.5)}
.panel header .x{margin-left:auto;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px}
.panel .body{padding:18px 18px 24px}
.panel h2{font-size:22px;font-weight:900;margin:0 0 8px}
.panel p{color:var(--mute);margin:0 0 12px;max-width:66ch}
.panel p b{color:var(--blue2)}
.steps{display:grid;gap:12px;margin:16px 0}
.step{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start}
.step .n{width:36px;height:36px;border-radius:12px;background:linear-gradient(180deg,#5aa0ff,#1f66f0);color:#fff;display:grid;place-items:center;font-weight:900;font-size:14px;box-shadow:inset 0 -2px 0 rgba(11,62,168,.5),inset 0 1px 0 rgba(255,255,255,.5)}
.step h3{margin:0 0 3px;font-size:16px;font-weight:900}
.step p{margin:0;font-size:14px}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:800;color:var(--mute);font-size:11px;letter-spacing:.04em}
td.m,th.m{font-family:var(--mono);font-size:12px}
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;background:#fff}
.tscroll table{min-width:620px}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:99px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;border:1px solid var(--line);color:var(--mute)}
.tag.live{color:var(--green2);border-color:var(--green)}.tag.claimed{color:var(--ink)}.tag.paid{color:var(--blue2);border-color:var(--blue)}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:14px 0}
.kv .k{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}
.kv .k small{display:block;color:var(--mute);font-size:11px;margin-bottom:4px}
.kv .k b{font-family:var(--mono);font-weight:500;font-size:12px;word-break:break-all}
.ca{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:12px;margin-top:10px}
.ca .addr{flex:1;min-width:0;font-family:var(--mono);font-size:12px;word-break:break-all}
details{border-top:1px solid var(--line)}details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:12px 0;font-weight:800;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--mute);font-family:var(--mono)}details[open] summary::after{content:"–"}
details p{font-size:14px}
.legal{font-size:11px;color:var(--mute);line-height:1.5;margin-top:18px;opacity:.8}
.drawer{position:absolute;z-index:4;right:14px;top:66px;width:min(340px,calc(100vw - 28px));max-height:calc(100svh - 120px);overflow:auto;background:var(--navy2);border:2px solid #fff;border-radius:14px;padding:4px 0}
.drawer .d{display:grid;grid-template-columns:64px 1fr auto;gap:10px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);font-size:13px}
.drawer .d:first-child{border-top:0}.drawer .d .t{font-weight:900;font-size:16px}.drawer .d .w{color:var(--mute);font-size:12px}.drawer .d .a{font-family:var(--mono);font-size:11px;color:var(--mute);text-align:right}
@media (max-width:900px){.drawer{top:118px}}
