.word-atlas{padding:0;min-width:0}
.atlas-reading{display:contents}
.walk-content{min-width:0}
.walk-destination{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr));align-items:center;gap:16px;margin:4px 0 16px;max-width:30rem}
.walk-destination>div{display:grid;gap:3px;min-width:0}
.walk-destination strong{font-size:clamp(1.15rem,3vw,1.7rem);line-height:1.2;overflow-wrap:anywhere}
.walk-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.walk-actions button{min-height:44px}
.walk-stats{display:flex;gap:20px;align-items:center;margin-bottom:12px;font-size:.875rem;font-variant-numeric:tabular-nums}
.walk-clock{margin-left:auto}
.map-race .atlas-point.is-best:after{content:'✦';position:absolute;left:calc(50% - 8px);top:calc(50% + var(--atlas-label-height,12px) / 2 + 4px);color:#ffdfb0;font:16px/1 var(--mono);text-shadow:0 0 3px #0c1720;pointer-events:none}
.walk-board{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:0 24px;align-items:start}
.walk-map{min-width:0}
.walk-sidebar{min-width:0}
.walk-current{font-size:1.05rem;margin:0 0 8px;overflow-wrap:anywhere}
.walk-sidebar>p{line-height:1.5;margin:0 0 12px}
.walk-neighbors{display:grid;gap:6px;list-style:none;padding:0;margin:0}
.walk-neighbors button{width:100%;min-height:44px;text-align:left;overflow-wrap:anywhere;padding:8px 12px;border:1px solid var(--line);border-radius:6px}
.walk-coverage{margin:8px 0 16px}
.walk-content details{margin-top:10px;max-width:100%}.walk-content summary{min-height:32px;cursor:pointer}
.walk-history p,.walk-solution p{overflow-wrap:anywhere;font-size:.875rem;line-height:1.7}
.walk-hint{line-height:1.5;max-width:76ch;margin:16px 0 0}
.atlas-point.target:before{width:12px;height:12px;border:2px solid #a9e1ef;background:#0c1720;border-radius:0;transform:rotate(45deg)}
.atlas-point.target .atlas-label{border:1px solid #a9e1ef;color:#c6f0fb}
.atlas-point.visited:not(.selected):not(.has-heat):before{background:#c0dbe1;width:6px;height:6px}
.atlas-point.is-undiscovered{pointer-events:none;cursor:inherit}
.atlas-point.is-undiscovered:before{background:#536c75;width:3px;height:3px}
.atlas-player-lines,.atlas-players,.atlas-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.atlas-route polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}
/* The camera scales the SVG's parent; keep the route readable at every zoom. */
.atlas-route-halo{stroke:#071119;stroke-width:calc(5px / var(--map-zoom,1));stroke-opacity:.8}
.atlas-route-line{stroke:var(--route-color,#ffc078);stroke-width:calc(2px / var(--map-zoom,1));stroke-opacity:.9}
.atlas-players{z-index:1}.map-race .atlas-points{z-index:2}
.atlas-player-lines line{stroke-width:2;stroke-opacity:.45;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.atlas-player-marker{position:absolute;width:18px;height:18px;border:2px solid var(--player);border-radius:50%;transform:translate(-50%,-50%) scale(calc(1 / var(--map-zoom,1)));z-index:5}
.atlas-player-tag{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font:600 .625rem/1.3 var(--mono);padding:1px 4px;background:#0c1720;color:var(--player);border-radius:3px;border:1px solid var(--player)}
.walk-players-title{font-size:1rem;margin:20px 0 8px}
.walk-players{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:6px 20px;padding:0;margin:0}
.walk-player{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 0;min-width:0}
.walk-player strong:before{content:'';display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--player);vertical-align:.12em}
.walk-player strong{overflow-wrap:anywhere;min-width:0}.walk-player>span{font-variant-numeric:tabular-nums;color:var(--muted);flex-shrink:0}
.map-race .walk-actions{margin-top:12px}.map-race .walk-actions button{font-size:.8125rem}
.walk-room #map-race{margin-top:8px}.walk-room #play-area{min-width:0}
.map-walk .atlas-point:not(button){cursor:inherit}
@media(max-width:760px){.walk-board,.map-dialog .map-walk .walk-board{grid-template-columns:minmax(0,1fr)}.walk-sidebar{margin-top:14px}.walk-neighbors{grid-template-columns:repeat(2,minmax(0,1fr))}.walk-actions{gap:6px}.walk-actions button{font-size:.8125rem}.walk-destination{gap:12px}}
.paused-atlas{max-width:900px;margin:32px auto}
.home #word-atlas{border:0}
.atlas-heading h2{font-size:1.25rem;letter-spacing:-.025em;margin:0 0 4px}
.atlas-heading p{margin:0 0 18px}
.atlas-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 12px;margin-bottom:14px}
.atlas-languages{display:inline-flex;flex:none;margin:0}
.atlas-content{display:grid;gap:16px 24px;align-items:start}
.atlas-map-panel,.atlas-inspector{min-width:0}
.atlas-comparison{min-width:0;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.atlas-content>.atlas-comparison{padding-bottom:0;margin-bottom:0;border-bottom:0}
.atlas-pair-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;min-width:0;margin:0}
.atlas-pair-label{grid-column:1/-1;color:var(--muted);margin:0}
.atlas-pair-label:not(:first-child){margin-top:4px}
.atlas-pair-row{display:grid;grid-template-columns:subgrid;grid-column:1/-1;align-items:center;gap:8px;min-width:0}
.atlas-pair-row input{min-width:0;min-height:44px;width:100%}
.atlas-pair-row>button{min-height:44px;padding:8px 10px;font-size:.75rem;white-space:nowrap}
.atlas-pin{display:flex;align-items:center;justify-content:center;gap:5px}
.atlas-pin svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.atlas-pin[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--hover)}
.atlas-pair-hint,.atlas-pair-missing,.atlas-pair-status{margin:8px 0 0;line-height:1.5;overflow-wrap:anywhere}
.atlas-pair-status:not(.sr-only){color:var(--error)}
.atlas-comparison:has(.atlas-compare[aria-busy=true]) .atlas-pair-status{color:var(--muted)}
.atlas-pair-result{margin-top:14px}
.atlas-comparison .guess-row,.atlas-neighbour-list .guess-row{min-height:44px;padding:8px 10px;gap:0 8px}
.atlas-comparison .guess-word,.atlas-neighbour-list .guess-word{font-size:.875rem}
.atlas-comparison .guess-temperature,.atlas-neighbour-list .guess-temperature{font-size:1rem}
.atlas-pair-history{margin-top:10px;min-width:0}
.atlas-pair-history summary{cursor:pointer;min-height:44px;display:list-item;align-content:center;color:var(--muted)}
.atlas-pair-history ol{display:grid;gap:6px;list-style:none;padding:0;margin:0;max-height:220px;overflow:auto;overscroll-behavior:contain}
.atlas-history-pair{width:100%;text-align:left}
.atlas-history-pair:focus-visible{outline-offset:-2px}
@media(forced-colors:active){.atlas-pin[aria-pressed=true]{outline:2px solid Highlight}}
.word-atlas .atlas-map-panel>:is(.map-viewport,.map-load-state){height:clamp(280px,48dvh,540px);aspect-ratio:auto}
.atlas-scope{margin:8px 0 0;font-variant-numeric:tabular-nums}
.atlas-actions{display:flex;flex:none;flex-wrap:wrap;max-width:100%;gap:6px;align-items:center;margin:0}
.atlas-actions button{min-height:44px;padding:7px 10px}
:is(.atlas-chosen,.atlas-chosen-placeholder){font-size:1.35rem;margin:0 0 6px;letter-spacing:-.025em;min-width:0;max-width:100%;overflow-wrap:anywhere;scroll-margin:8px}
.atlas-chosen:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:2px}
.atlas-chosen-row{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px;min-height:44px;margin-bottom:6px}
.atlas-chosen-row :is(.atlas-chosen,.atlas-chosen-placeholder){margin:0}
/* Give a long selected word its full line; loading still reserves the Back slot. */
.atlas-chosen-row:has(>.atlas-chosen){display:flex;flex-wrap:wrap}
.atlas-chosen-row:has(>.atlas-chosen)>.atlas-back{flex:0 0 44px;align-self:flex-start}
.atlas-chosen-row>.atlas-chosen{flex:1 1 auto;width:max-content}
.atlas-chosen-placeholder{grid-column:2}
.atlas-back{display:grid;place-items:center;width:44px;min-width:44px;min-height:44px;padding:8px}
.atlas-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.atlas-neighbours-title{font-weight:500;color:var(--muted);margin:0 0 8px}
.atlas-neighbour-list,.atlas-neighbour-skeleton{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:6px 10px;list-style:none;padding:0;margin:0}
.atlas-neighbour-list button{width:100%;text-align:left}
.atlas-neighbour-placeholder{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-height:44px;font-size:.8125rem;background:var(--surface)}
/* Give actionable word choices the same boundary as other outline controls;
   loading placeholders retain the quieter separator color. */
.walk-neighbors button,.atlas-neighbour-list button{border-color:var(--control)}
.atlas-skeleton-line{position:relative;display:block}
.atlas-inspector-placeholder .atlas-chosen-placeholder{width:100%}
.atlas-skeleton-line:after,.atlas-neighbour-placeholder:before,.atlas-neighbour-placeholder:after{content:'';display:block;width:48%;height:.5em;border-radius:3px;background:var(--line)}
.atlas-skeleton-line:after{position:absolute;left:0;top:50%;transform:translateY(-50%)}
.atlas-neighbour-placeholder{position:relative}
.atlas-neighbour-placeholder:before,.atlas-neighbour-placeholder:after{position:absolute;top:50%;transform:translateY(-50%)}
.atlas-neighbour-placeholder:before{left:10px}.atlas-neighbour-placeholder:after{right:10px;width:12%}
.atlas-index-placeholder{margin-top:12px;min-height:32px;font-size:.8125rem}
/* Keep the shared heat surface visible while native buttons are hovered. */
.atlas-history-pair.guess-row:hover,.atlas-neighbour-list .guess-row:hover{background:var(--guess-surface);border-color:var(--control)}
.atlas-search{--atlas-search-layout:compact;flex:1 1 19rem;min-width:0;margin:0}
.atlas-search button{min-height:44px}
.atlas-search label{display:grid;gap:4px;margin:0}.atlas-search input{min-width:0;width:100%}
.atlas-search,.atlas-search input{scroll-margin:8px}
.atlas-search-actions{display:grid}
.atlas-search-actions>button,.atlas-search-actions:before{grid-area:1/1;padding:4px 10px;font-size:.75rem;line-height:1.2}
/* Wide expanded maps keep validation inside this stable slot. */
.atlas-search-actions:before{content:attr(data-missing) '\A' attr(data-recovery) ' →';white-space:pre;visibility:hidden;border:1px solid transparent;font-weight:600}
.atlas-search-missing{display:block;color:var(--error);font-weight:400}
.atlas-search-recovery-label{font-weight:600;white-space:nowrap}
.atlas-find-icon{display:none}
/* Reserve space for an explanation only once a lookup actually needs one. */
.atlas-search-compact{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px}
.atlas-search-compact>label{grid-column:1;grid-row:1;min-width:0;max-width:100%}
.atlas-search-compact .atlas-search-actions{display:contents}
.atlas-search-compact .atlas-search-actions:before{content:none}
.atlas-search-compact [type=submit]{position:relative;display:grid;grid-column:2;grid-row:1;place-items:center;width:44px;height:44px;min-width:44px;padding:10px}
.atlas-search-compact .atlas-find-icon{display:block;width:20px;height:20px}
.atlas-search-compact .atlas-search-recovery{grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:4px 8px;text-align:left;min-width:0;max-width:100%}
.atlas-search-compact .atlas-search-missing{display:inline}
.atlas-hint{margin:8px 0 0;line-height:1.6;max-width:90ch}
.atlas-index{margin-top:12px}
.atlas-about{margin-top:8px}
.atlas-index summary,.atlas-about summary{cursor:pointer;min-height:32px;padding-top:4px;color:var(--muted)}
.atlas-filter{display:block;margin:8px 0 0;min-width:0}.atlas-filter input{width:100%;min-width:0;min-height:44px}
.atlas-filter-status{margin:6px 0 0;line-height:1.5}
.atlas-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,6.25rem),1fr));max-height:220px;overflow:auto;gap:4px;margin-top:8px}
.atlas-options button{font-size:.75rem;min-height:32px;padding:5px;text-align:left;overflow-wrap:anywhere}
/* Keep keyboard focus inside choices at the scrollport's edges. */
.atlas-options button:focus-visible{outline-offset:-2px}
.atlas-viewport{background:radial-gradient(ellipse at 50% 50%,#182c31,#0a111a 80%)}
.atlas-font-probe{position:absolute;width:1rem;height:1rem;visibility:hidden;pointer-events:none}
.atlas-cloud{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.atlas-text-probe{position:absolute;visibility:hidden;pointer-events:none;font:var(--map-word-font-size,.8125rem)/1.4 var(--mono);white-space:nowrap}
.atlas-points,.atlas-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.atlas-lines{pointer-events:none}.atlas-lines line{stroke:#ccae7a;stroke-opacity:.5;stroke-width:1;vector-effect:non-scaling-stroke}
.atlas-point{position:absolute;display:grid;place-items:center;width:24px;height:24px;min-height:24px;padding:0;border:0;border-radius:50%;background:none;transform:translate(-50%,-50%) scale(calc(1 / var(--map-zoom,1)));color:#ccdfe3;cursor:inherit}
button.atlas-point{cursor:pointer}
.atlas-point:before{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#76959e}
.atlas-volume{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.atlas-volume line{stroke:#76959e;stroke-opacity:.2;stroke-width:calc(1px / var(--map-zoom,1));stroke-dasharray:calc(3px / var(--map-zoom,1)) calc(5px / var(--map-zoom,1))}
[data-map-dimension="3d"] .atlas-point:before{scale:var(--atlas-depth-scale,1);opacity:var(--atlas-depth-opacity,1)}
[data-map-dimension="3d"] .atlas-point:is(.selected,.target,.related,.has-heat):before{opacity:1}
/* The shared 3D minimum overrides each mode's compact/flex minimum. Wrapped
   controls must leave an actual exploration area, including enlarged text. */
.map-shell .atlas-viewport[data-map-dimension="3d"]{min-height:calc(var(--map-controls-inset,60px) + 220px)!important}
.atlas-point:hover{background:none}.atlas-point.related:before{background:#dfbc89;width:6px;height:6px}.atlas-point.selected:before{background:#ffcf8b;width:10px;height:10px;box-shadow:0 0 32px 13px #ffbd642b}
.atlas-point .atlas-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);white-space:nowrap;font:var(--map-word-font-size,.8125rem)/1.4 var(--mono);background:#0c1720;color:#c8dae0;padding:3px 4px;border-radius:3px}
.atlas-point.is-labeled{z-index:1}
.atlas-point.is-landmark{z-index:3}
.atlas-landmark-label,.atlas-landmark-pin{display:inline-grid;place-items:center;min-width:1.4em;height:1.4em;border:1px solid #dfbc89;border-radius:50%;color:#ffdfb0;font:700 .85em/1 var(--mono);background:#182c31}
.atlas-landmark-label{margin-right:6px}
.atlas-landmark-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:36px;height:36px;font-size:15px}
.atlas-landmark-pin:after{content:'';position:absolute;inset:-4px;border-radius:50%}
.atlas-point.is-labeled .atlas-landmark-pin{display:none}
.atlas-point.is-landmark:focus-visible{outline:none}
.atlas-point.is-landmark:focus-visible .atlas-landmark-pin{outline:2px solid #ffdfb0;outline-offset:3px}
/* An invisible label's hit box must not cover another word's visible text. */
.atlas-point.related.is-labeled{z-index:2}.atlas-point.related .atlas-label{color:#f4d3a0}.atlas-point.selected.is-labeled{z-index:3}.atlas-point.selected .atlas-label{color:#ffdfb0;border:1px solid #d9b17c;font-weight:700}
.atlas-point:focus-visible{outline:2px solid #ffdfb0;outline-offset:3px;z-index:4}
.atlas-point:focus-visible.is-labeled{outline:none}
.atlas-point:focus-visible .atlas-label{outline:2px solid #ffdfb0;outline-offset:3px}
.atlas-point.has-heat:before{width:8px;height:8px;background:var(--atlas-heat);box-shadow:0 0 14px 5px color-mix(in srgb,var(--atlas-heat) 40%,transparent)}
.atlas-point.has-heat .atlas-label{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:3px 8px;padding:4px 6px;color:var(--atlas-heat);box-shadow:0 0 14px color-mix(in srgb,var(--atlas-heat) 16%,transparent)}
.atlas-point.has-heat .atlas-temperature,.atlas-temperature-probe{font-size:.625rem;font-variant-numeric:tabular-nums;font-weight:400}
.atlas-heat-track{grid-column:1/-1;display:block;height:3px;background:#35454d;border-radius:2px;overflow:hidden}
.atlas-heat-fill{display:block;height:100%;width:var(--atlas-warmth);background:var(--atlas-heat)}
@media(forced-colors:active){.atlas-point.has-heat:before,.atlas-heat-fill{background:Highlight}.atlas-heat-track{outline:1px solid CanvasText}.atlas-point.has-heat .atlas-label{color:CanvasText}}
@media(min-width:900px){.atlas-content{grid-template-columns:minmax(0,1fr) minmax(0,.45fr)}}
.map-dialog .word-atlas .atlas-map-panel>.map-viewport{height:clamp(280px,64dvh,900px)}
/* Share the fixed exit with Walk; only the complete reading area scrolls. */
.map-dialog .word-atlas.map-contained-scroll{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;overflow:hidden}
.map-dialog .word-atlas.map-contained-scroll>.atlas-reading{position:relative;display:block;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:6px;scroll-padding:6px}
.map-dialog .word-atlas.map-contained-scroll>.atlas-reading:focus-visible{outline-offset:-4px}
/* The shared dialog title and existing About disclosure provide this context. */
.map-dialog .word-atlas.map-contained-scroll .atlas-heading>:is(h2,p){display:none}
/* Keep the map beside a scrolling inspector. The map and its caption set the
   row minimum, so short dialogs scroll instead of crushing the inspector. */
@media(min-width:900px){
  .map-dialog .word-atlas .atlas-search{--atlas-search-layout:stable}
  .map-dialog .word-atlas.map-contained-scroll>.atlas-reading{display:flex;flex-direction:column}
  .map-dialog .word-atlas .atlas-reading>.atlas-heading,.map-dialog .word-atlas .atlas-reading>.atlas-status{flex:none}
  .map-dialog .word-atlas .atlas-reading>.atlas-content{flex:1;min-height:0;grid-template-rows:minmax(auto,1fr);align-items:stretch}
  .map-dialog .word-atlas .atlas-map-panel{display:flex;flex-direction:column;min-height:auto}
  .map-dialog .word-atlas .atlas-map-panel>.map-viewport{flex:1;height:auto;min-height:280px}
  .map-dialog .word-atlas .atlas-scope{flex:none}
  /* Contain the absolute, visually hidden filter label inside this scrollport. */
  .map-dialog .word-atlas .atlas-inspector{position:relative;align-self:stretch;min-height:0;overflow:auto;overscroll-behavior:contain;margin:-6px 0;padding:6px;scroll-padding-block:6px}
}
@media(max-width:760px){.map-dialog .word-atlas .atlas-map-panel>.map-viewport{height:55dvh}}
