/* Atlas dailies: Straight Shot and Spell the Map. Uses the site tokens from site.css. */
.dly [hidden]{display:none!important}
.dly{--sea:#DCE9F2;--sea-line:#C7D9E6;--land:#FBFCFD;--land-edge:#B9C6D3;--coral:#E4574A;--gold-deep:#C98E0A;--par:#1F8A5B;background:#F4F7FA;padding:22px 0 48px}
.dly .wrap{display:flex;flex-direction:column;gap:16px}
.dtop{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 28px}
.dtop .eyebrow{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--sub)}
.dtop h1{font-family:'Lilita One',sans-serif;font-weight:400;font-size:clamp(40px,7vw,64px);line-height:.95;margin:4px 0 0;text-wrap:balance}
.dtop h1 .dot{color:var(--gold)}
.dtop .rules{max-width:48ch;margin:0;color:var(--sub);font-weight:700;min-width:0}
.dswitch{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:800;font-size:14px}
.dswitch a{display:inline-flex;align-items:center;gap:6px;background:#fff;border:2px solid var(--line);border-radius:999px;padding:6px 14px;text-decoration:none;color:var(--ink)}
.dswitch a[aria-current]{background:var(--navy);border-color:var(--navy);color:#fff}
.dswitch .tstreak{margin-left:auto}
.strip{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:var(--navy);color:#fff;border-radius:14px;padding:12px 16px}
.strip .lbl{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#AFC0D6;margin-right:2px}
.targets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.tchip{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--navy);font-weight:900;border-radius:999px;padding:4px 12px 4px 6px;font-size:15px}
.tchip i{width:18px;height:18px;border-radius:50%;background:var(--navy);color:var(--gold);font-style:normal;font-size:11px;display:grid;place-items:center}
.tchip.got{box-shadow:0 0 0 3px #fff}
.tchip.missed{background:#F7D0CB}
.shots{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pip{min-width:54px;height:30px;padding:0 10px;border-radius:999px;border:2px solid #4A5D7A;display:grid;place-items:center;font-weight:900;font-size:13px;color:#AFC0D6;font-variant-numeric:tabular-nums}
.pip.now{border-color:var(--gold);color:var(--gold)}
.pip.done{background:#fff;border-color:#fff;color:var(--navy)}
.pip.miss{border-color:var(--coral);color:#FFB3AA}
.par{font-family:'Lilita One',sans-serif;font-size:22px;color:var(--gold)}
.stage{position:relative;border-radius:16px;overflow:hidden;background:var(--sea);box-shadow:0 1px 0 var(--land-edge),0 10px 30px -18px rgba(27,42,65,.45);touch-action:none;user-select:none;-webkit-user-select:none}
.stage.aimable{cursor:crosshair}
.stage{min-height:160px}
.stage svg{display:block;width:100%;height:auto}
.grat line{stroke:var(--sea-line);stroke-width:1;vector-effect:non-scaling-stroke}
.c{fill:var(--land);stroke:var(--land-edge);stroke-width:.8;vector-effect:non-scaling-stroke;transition:fill .25s}
.c.t{fill:var(--gold);stroke:var(--navy);stroke-width:1.6}
.c.t.hit{fill:#FFD25E;animation:pop .45s ease-out}
.c.x{fill:var(--coral);stroke:#fff;animation:pop .45s ease-out}
@keyframes pop{0%{filter:brightness(1.5)}100%{filter:none}}
.ghost{stroke:var(--navy);stroke-opacity:.25;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.aim{stroke:var(--navy);stroke-opacity:.55;stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}
.shot-halo{stroke:#fff;stroke-width:8;stroke-linecap:round;vector-effect:non-scaling-stroke}
.shot{stroke:var(--navy);stroke-width:3.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.parline{stroke:var(--par);stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}
.knob{fill:var(--navy);stroke:#fff;stroke-width:2.5;vector-effect:non-scaling-stroke;transition:opacity .15s}
.tag{font-family:'Nunito',sans-serif;font-weight:900;font-size:calc(17px * var(--k,1));fill:var(--coral);paint-order:stroke;stroke:#fff;stroke-width:calc(4.5px * var(--k,1));stroke-linejoin:round}
.tname{font-family:'Nunito',sans-serif;font-weight:900;font-size:calc(15px * var(--k,1));fill:var(--navy);paint-order:stroke;stroke:rgba(255,255,255,.92);stroke-width:calc(4px * var(--k,1));stroke-linejoin:round;pointer-events:none}
.hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);background:rgba(27,42,65,.9);color:#fff;font-weight:800;font-size:14px;padding:8px 14px;border-radius:999px;pointer-events:none;white-space:nowrap;transition:opacity .3s;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}
.hint.off{opacity:0}
.flash{position:absolute;left:50%;top:16px;transform:translateX(-50%);font-family:'Lilita One',sans-serif;font-size:clamp(22px,4vw,34px);color:var(--navy);background:#fff;padding:6px 18px;border-radius:12px;box-shadow:0 6px 20px -8px rgba(27,42,65,.5);pointer-events:none;opacity:0;transition:opacity .25s,transform .25s;white-space:nowrap}
.flash.on{opacity:1;transform:translateX(-50%) translateY(4px)}
.flash.bad{color:var(--coral)}
.loading{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;color:var(--sub)}
.below{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px}
@media (max-width:760px){.below{grid-template-columns:minmax(0,1fr)}}
.dcard2{background:#fff;border-radius:16px;padding:18px 20px;border:1px solid #E3E9F0;min-width:0}
.dcard2 h2{font-family:'Lilita One',sans-serif;font-weight:400;font-size:28px;margin:0;line-height:1.1}
.dcard2 h3,.lb-h{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--sub);margin:0 0 8px}
.verdict{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.verdict .big{font-family:'Lilita One',sans-serif;font-size:44px;line-height:1}
.verdict .big.under{color:var(--par)}
.verdict .big.over{color:var(--coral)}
.pts{font-weight:900;color:var(--sub)}
.share{margin-top:14px;background:var(--soft);border-radius:12px;padding:12px 14px;font-weight:800;white-space:pre-wrap;font-size:15px;line-height:1.45;overflow-x:auto}
.dbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.dbtn{font:inherit;font-weight:900;font-size:15px;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;background:var(--navy);color:#fff;text-decoration:none;display:inline-block}
.dbtn.gold{background:var(--gold);color:var(--navy)}
.dbtn.line{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.dbtn.sm{padding:5px 12px;font-size:13px}
.dbtn:focus-visible,.slot:focus-visible{outline:3px solid var(--gold-deep);outline-offset:2px}
.muted{color:var(--sub);font-weight:700;margin:8px 0 0}
ol.how{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-weight:700;color:var(--sub)}
ol.how b{color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:13px;font-weight:800;color:var(--sub)}
.legend span{display:inline-flex;gap:6px;align-items:center}
.legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.lbwrap{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.lb-join,.lb-rank,.lb-empty{margin:0 0 10px;font-weight:700;color:var(--sub)}
.lb-rank b,.lb-join b{color:var(--ink)}
ol.lb{list-style:none;margin:0;padding:0;counter-reset:r}
ol.lb li{counter-increment:r;display:flex;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;font-weight:800}
ol.lb li::before{content:counter(r);width:22px;color:var(--sub);font-variant-numeric:tabular-nums}
ol.lb li .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
ol.lb li .sc{font-variant-numeric:tabular-nums}
ol.lb li.me{background:#FFF1DC}
/* Spell the Map */
.slots{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.slot{position:relative;width:44px;height:52px;border-radius:10px;border:2px solid #4A5D7A;background:transparent;color:#fff;font:inherit;cursor:pointer;display:grid;place-items:center;padding:0}
.slot i{position:absolute;top:2px;left:5px;font-style:normal;font-size:10px;font-weight:900;color:#AFC0D6}
.slot b{font-family:'Lilita One',sans-serif;font-weight:400;font-size:26px;line-height:1}
.slot.cur{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.slot.got{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.slot.got i{color:var(--navy)}
.slot.gave{background:var(--coral);border-color:var(--coral)}
.slot.free{background:#fff;border-color:#fff;color:var(--navy)}
.slot.free i{color:var(--sub)}
.lenpill{font-family:'Lilita One',sans-serif;font-size:20px;color:var(--gold)}
.c.s-clue{fill:#FCE7B0;stroke:var(--gold-deep);stroke-width:1.2}
.c.s-cur{fill:var(--gold);stroke:var(--navy);stroke-width:2}
.c.s-got{fill:#BFE3CB;stroke:#1F8A5B;stroke-width:1.2}
.c.s-gave{fill:#F7D0CB;stroke:var(--coral);stroke-width:1.2}
.c.s-answer{fill:var(--navy);stroke:var(--gold);stroke-width:2.5;animation:pop .6s ease-out}
.pin{cursor:pointer}
.pin circle{fill:var(--navy);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}
.pin text{fill:#fff;font-family:'Nunito',sans-serif;font-weight:900;font-size:calc(14px * var(--k,1));pointer-events:none}
.pin.cur circle{fill:var(--gold);stroke:var(--navy)}
.pin.cur text{fill:var(--navy)}
.pin.done circle{fill:#fff;stroke:var(--navy)}
.pin.done text{fill:var(--navy)}
.askrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.askrow label{font-weight:900}
.askrow input{flex:1 1 200px;min-width:0;font:inherit;font-weight:800;font-size:17px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;color:var(--ink);background:#fff}
.askrow input:focus{outline:none;border-color:var(--gold)}
.say{margin:8px 0 0;font-weight:800;min-height:1.5em}
.say.ok{color:var(--par)}
.say.bad{color:#B8322C}
.linkbtn{background:none;border:0;padding:0;font:inherit;font-weight:800;color:var(--sub);text-decoration:underline;cursor:pointer}
.shake{animation:shake .35s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.solvebox{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
@media (prefers-reduced-motion:reduce){.c.t.hit,.c.x,.c.s-answer,.shake{animation:none}}
.dswitch .tstreak:empty{display:none}
@media (max-width:480px){.slot{width:36px;height:44px}.slot b{font-size:22px}.slots{gap:5px}}
