/* ============================================================
   "Paper" theme: the look of the poster / project pages
   (white paper, Source Serif + Inter, MIT red, black rules)
   applied on top of style.css without changing the layout.
   ============================================================ */
:root{
  --paper:#FFFFFF;
  --paper-2:#F6F6F4;
  --card:#FFFFFF;
  --ink:#111111;
  --ink-2:#383838;
  --muted:#6A6A6A;
  --faint:#8C8C8C;
  --line:#D6D6D6;
  --line-2:#EDEDED;
  --accent:#A31F34;
  --accent-soft:#F8EBED;
  --accent-ink:#7E1429;
  --amber:#6A6A6A;
  --teal:#111111;
  --shadow:none;
  --shadow-lift:none;
  --serif:'Source Serif 4',Georgia,serif;
  --sans:'Inter',-apple-system,system-ui,sans-serif;
}
html[data-theme="dark"]{
  --paper:#1B1C1F;
  --paper-2:#232428;
  --card:#1B1C1F;
  --ink:#E6E3DE;
  --ink-2:#BFBBB4;
  --muted:#8F8C87;
  --faint:#6F6C68;
  --line:#34353A;
  --line-2:#2A2B2F;
  --accent:#E08A95;
  --accent-soft:#33242A;
  --accent-ink:#F0C3C9;
  --amber:#8F8C87;
  --teal:#E6E3DE;
}
body{font-family:var(--serif);font-optical-sizing:auto}
body::before{display:none}

/* nav */
.nav-name .pt{color:var(--ink)}
.nav-links a{font-family:var(--sans);font-size:13.5px}
.nav-links a.active::after{background:var(--ink)}
.theme-toggle{border:0;background:none}
.theme-toggle:hover{color:var(--ink);background:var(--paper-2)}

/* hero */
.hero h1{font-weight:600}
.hero-role{font-family:var(--sans);font-size:17px}
.hero-socials a{color:var(--ink)}
.hero-cv{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:0;background:var(--ink);color:var(--paper) !important;padding:8px 16px;border-radius:999px}
.hero-bio i{color:var(--ink)}
.hero-bio p{font-size:clamp(16.5px,1.8vw,18px)}

/* section heads: numbered, booktabs rule */
.sec-head{border-bottom:2px solid var(--ink)}
.sec-num{font-family:var(--sans);font-weight:600;font-size:14px}
.sec-name{font-weight:600}
.sec-aside{font-family:var(--sans);font-size:12.5px;color:var(--muted)}
.sec-aside a{color:var(--accent) !important}

/* news: venue in red text, no pills */
.news-item{border-bottom-color:var(--line-2)}
.news-date{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--muted)}
.news-body{font-size:16.5px}

/* badges: quiet small caps, colour only on "paper" */
.badge{font-family:var(--sans);font-size:10.5px;letter-spacing:.07em;padding:3px 9px;border-radius:999px;box-shadow:none;background:transparent;color:var(--ink-2);border:1px solid var(--line)}
.badge::before{display:none}
.badge.paper{background:var(--accent);border-color:var(--accent);color:#fff}
.badge.poster{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.badge.talk,.badge.reviewer{background:transparent;color:var(--ink-2)}
html[data-theme="dark"] .badge.paper{color:#1A0A0D}
html[data-theme="dark"] .badge.talk,html[data-theme="dark"] .badge.reviewer{color:var(--ink-2)}
.news-body .badge{font-size:9.5px;padding:2px 7px}

/* publications */
.pub{border-radius:0;padding:20px 4px}
.pub:hover{background:none}
a.pub::before{display:none}
.pub-title{font-size:19px;font-weight:500}
.pub-venue .track,.pub-venue .affil-chip{font-family:var(--sans);font-size:13px}
.pub-venue .affil-chip::before{background:var(--line)}
.pub-go{font-family:var(--sans);font-size:12.5px;background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
a.pub:hover .pub-go{background:none;color:var(--accent)}
html[data-theme="dark"] a.pub:hover .pub-go{color:var(--accent)}

/* experience */
.exp-meta .when{font-family:var(--sans);font-size:13px}
.exp-role{font-family:var(--serif);font-size:18px}
.exp-role .now{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:0;padding:0}
.exp-list li{font-size:16px}
.exp-list li::before{content:"";width:5px;height:5px;background:var(--accent);border-radius:1px;top:.62em}
.exp-list li .n{font-family:var(--sans);font-size:14.5px;font-weight:600;color:var(--ink)}

/* projects: flat, ruled */
.proj{border-radius:6px;border-color:var(--line);box-shadow:none}
.proj:hover{transform:none;box-shadow:none;border-color:var(--ink)}
.proj-metric{font-size:34px}
.proj-metric .u{font-family:var(--sans);font-size:14px}
.proj-stack{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--muted)}
.proj-desc{font-size:15.5px}
.proj-foot{font-family:var(--sans);font-size:12.5px}
.oss-item{border-radius:999px;background:none}
.oss-item b{font-family:var(--sans)}
.oss-item .pr{font-family:var(--sans);font-size:12px;font-weight:600}

/* footer */
.site-footer{border-top:2px solid var(--ink)}
.footer-copy{font-family:var(--sans)}
.pub-venue,.exp-meta .loc{font-family:var(--sans)}

/* the conference is the headline, the workshop is secondary */
:root{--spot-bg:#A31F34;--spot-ink:#FFFFFF}
html[data-theme="dark"]{--spot-bg:#B5485A;--spot-ink:#FBF1F2}
.news-tag .nv,.pub-venue .conf{font-family:var(--serif);font-weight:700;letter-spacing:-.005em;color:var(--spot-ink);background:var(--spot-bg);border:0;border-radius:4px;white-space:nowrap}
.news-tag .nv{font-size:16px;padding:2px 9px}
.pub-venue .conf{font-size:18px;padding:3px 11px;line-height:1.3}
.news-tag .nw,.pub-venue .track{font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--muted)}
.news-tag .nw{margin-left:6px}

/* dark mode: calmer badges */
html[data-theme="dark"] .badge.paper{background:transparent;border-color:var(--accent);color:var(--accent)}
html[data-theme="dark"] .badge.poster{background:var(--paper-2);border-color:var(--line);color:var(--ink)}
html[data-theme="dark"] .hero-cv{background:var(--ink);color:var(--paper) !important}

/* ============================================================
   Research list + older research pages
   ============================================================ */
.blog-hero h1{font-weight:600}
.blog-hero p{font-size:18px}

/* research cards: flat, ruled, conference spotlight */
.post-card{border-radius:6px;box-shadow:none;border-color:var(--line)}
.post-card:hover{transform:none;box-shadow:none;border-color:var(--ink)}
.post-card .tag{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--muted);background:none;padding:0;letter-spacing:0}
.post-card .tag+.tag::before{content:"· ";color:var(--line)}
.post-card .tag.conf{font-family:var(--serif);font-weight:700;font-size:16px;color:var(--spot-ink);background:var(--spot-bg);border:0;border-radius:4px;padding:2px 10px}
.post-card .tag.conf+.tag::before{content:""}
.post-card h2{font-weight:600}
.post-card .excerpt{font-size:16px}
.post-card .meta{font-family:var(--sans);font-size:12.5px;color:var(--muted)}
.post-card .meta .cta{font-family:var(--sans);font-size:12.5px;background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.post-card:hover .meta .cta{background:none;color:var(--accent)}
html[data-theme="dark"] .post-card:hover .meta .cta{color:var(--accent)}

/* paper page header */
.post-header{border-bottom:2px solid var(--ink)}
.post-back{font-family:var(--sans);font-size:13.5px}
.post-title{font-weight:600}
.venue-line{font-family:var(--sans);font-size:13.5px}
.venue-line .badge,html[data-theme="dark"] .venue-line .badge{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:-.005em;color:var(--spot-ink);background:var(--spot-bg);border:0;border-radius:4px;padding:2px 11px}
.post-author-line{font-family:var(--sans)}
.post-author-line .lbl{font-family:var(--sans);font-weight:600;color:var(--muted)}
.post-author-line .org::before{background:var(--accent)}
.post-author-line .org a{border-bottom-color:var(--line)}
@media(min-width:900px){.affil .affil-label{font-family:var(--sans);font-weight:600;color:var(--muted)}}

/* paper page body */
.post-body p{font-size:18px}
.post-body li{font-size:17px}
.post-body h2{font-weight:600}
.post-body code{background:var(--paper-2);color:var(--ink)}
.post-body img{border-radius:6px}
.callout{background:none;border:0;border-left:3px solid var(--accent);border-radius:0;padding:4px 0 4px 20px}
.callout p,html[data-theme="dark"] .callout p{color:var(--ink);font-style:italic;font-size:18px}

/* key numbers: open, ruled, not boxed */
.paper-tldr{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:none}
.tldr-cell{border-right:1px solid var(--line)}
.tldr-val{color:var(--ink)}
.tldr-val .u{font-family:var(--sans)}
.tldr-key{font-family:var(--sans);font-size:12.5px}

.figure img{border-radius:6px}
.figure figcaption{font-size:14px}
.figure figcaption b{font-family:var(--sans);font-weight:600;color:var(--ink)}

.finding{border-radius:6px;box-shadow:none}
.finding .n .u{font-family:var(--sans)}
.finding h4{font-family:var(--sans);font-size:15px}
.finding p{font-size:15px}

/* booktabs tables */
.paper-table{font-family:var(--sans);font-size:14.5px}
.paper-table th{font-family:var(--sans);font-size:13px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.paper-table tr:last-child td{border-bottom:2px solid var(--ink)}
.paper-table .hi{font-family:var(--sans);font-weight:700}
.footer-links{font-family:var(--sans)}

/* blog post meta line */
.post-meta{font-family:var(--sans)}
.post-meta .tag{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--muted);background:none;padding:0;border-radius:0}
.post-meta .tag::before{content:"· ";color:var(--line)}

/* research page: intro text beside a large Embedded LLM logo */
.hero-split{display:grid;gap:28px;align-items:center}
@media(min-width:860px){.hero-split{grid-template-columns:1fr 260px;gap:48px}}
.hero-logo{display:flex;flex-direction:column;gap:12px;align-items:flex-start;text-decoration:none}
@media(min-width:860px){.hero-logo{align-items:center;padding-left:40px;border-left:1px solid var(--line)}}
.hero-logo span{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.hero-logo img{width:160px;height:auto;display:block}
@media(min-width:860px){.hero-logo img{width:220px}}
.hero-logo .logo-d{display:none}
html[data-theme="dark"] .hero-logo .logo-l{display:none}
html[data-theme="dark"] .hero-logo .logo-d{display:block}

/* home: venue map + acceptance timeline, paper style */
.atlas{margin:0}
.atlas-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap}
.atlas-k{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.atlas-sub{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--muted)}
.atlas-stats{display:grid;grid-template-columns:repeat(2,auto) 1fr;gap:0;margin-top:16px;border-bottom:1px solid var(--line)}
.atlas-stats>div{padding:4px 30px 14px 0}
.atlas-stats>div+div{padding-left:30px;border-left:1px solid var(--line)}
.atlas-stats>div>b{display:block;font-family:var(--serif);font-size:clamp(34px,4.6vw,52px);font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.atlas-stats>div>span{display:block;font-family:var(--sans);font-size:13px;color:var(--muted);margin-top:6px}
.atlas-stats .kinds{display:flex;flex-direction:column;justify-content:center;gap:5px}
.atlas-stats .kinds p{font-family:var(--sans);font-size:14px;color:var(--ink-2);display:flex;align-items:center;gap:9px;margin:0}
.atlas-stats .kinds p b{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink);min-width:12px;font-variant-numeric:tabular-nums}
@media(max-width:760px){.atlas-stats{grid-template-columns:repeat(2,1fr)}.atlas-stats>div{padding-right:10px}.atlas-stats>div+div{padding-left:12px}.atlas-stats .kinds{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:6px 18px;border-left:0 !important;padding:12px 0 !important;border-top:1px solid var(--line)}}
/* type shapes, shared by stats, timeline and pins */
.sh{display:inline-block;width:10px;height:10px;flex:none}
.sh-paper{background:var(--accent);border-radius:50%}
.sh-poster{background:var(--ink)}
.sh-talk{border-radius:50%;box-shadow:inset 0 0 0 2px var(--accent)}
.atlas-plot{position:relative;margin-top:18px}
.atlas-plot svg{display:block;width:100%;height:auto;overflow:visible}
.atlas .grat line{stroke:var(--line);stroke-width:1;stroke-dasharray:2 5}
.atlas .grat line.t{opacity:.6}
.atlas .grat text{font-family:var(--serif);font-style:italic;font-size:12px;fill:var(--faint)}
.atlas .land{stroke:#DDDAD3;stroke-width:3;stroke-linecap:round;fill:none}
html[data-theme="dark"] .atlas .land{stroke:#34353A}
.atlas .land.visited{stroke:#8E8A83;stroke-width:3.2}
html[data-theme="dark"] .atlas .land.visited{stroke:#77746E}
.atlas .land.homeland,html[data-theme="dark"] .atlas .land.homeland{stroke:var(--accent);stroke-width:3.2;opacity:.75}
.atlas .traveller{fill:var(--ink);stroke:var(--paper);stroke-width:1.5;transition:opacity .4s}
.atlas .traveller.gone{opacity:0}
.atlas .arc{fill:none;stroke:var(--accent);stroke-width:var(--w,1.3);opacity:var(--o,.85);transition:stroke-dashoffset 1s cubic-bezier(.45,0,.2,1),opacity .5s}
.atlas .arc.rest,.atlas.focus .arc.rest:not(.hl){opacity:0}
.atlas.focus .arc{opacity:.12}
.atlas.focus .arc.hl{opacity:1;stroke-width:2}
.atlas .pin{cursor:pointer;opacity:0;transition:opacity .4s}
.atlas .pin.on{opacity:1}
.atlas .pin .hit{fill:transparent}
.atlas .arc.a-poster{stroke:var(--ink);stroke-width:calc(var(--w,1.1) * .9)}
.atlas .pin .core{fill:var(--accent);stroke:var(--paper);stroke-width:2}
.atlas .pin.k-poster .core{fill:var(--ink)}
.atlas .pin.k-talk .core{fill:var(--paper);stroke:var(--accent);stroke-width:2.4}
.atlas .leader{fill:none;stroke:var(--ink);stroke-width:.8;opacity:.55}
.atlas .pin.new .core{animation:apop .6s cubic-bezier(.3,1.6,.5,1);transform-box:fill-box;transform-origin:center}
@keyframes apop{0%{transform:scale(0)}100%{transform:scale(1)}}
.atlas .pin.hl .core{stroke:var(--ink);stroke-width:2.4}
.atlas .pin:focus{outline:none}
.atlas .lbl{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.04em;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round}
.atlas.focus .pin:not(.hl) .lbl{fill:var(--faint)}
.atlas .home .ring{fill:none;stroke:var(--ink);stroke-width:1.5}
.atlas .home .dot{fill:var(--ink)}
.atlas .hlbl{font-family:var(--serif);font-style:italic;font-size:17px;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px}
.atlas-card{position:absolute;pointer-events:none;width:270px;background:var(--paper);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--line-2);font-family:var(--sans);opacity:0;transition:opacity .12s;z-index:5}
.atlas-card .c-top{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:11px 12px 0}
.atlas-card .c-top b{font-family:var(--serif);font-size:15px;color:var(--spot-ink);background:var(--spot-bg);padding:1px 8px;border-radius:3px;white-space:nowrap}
.atlas-card .c-top span{font-size:12px;color:var(--muted)}
.atlas-card .c-title{font-family:var(--serif);font-size:16.5px;line-height:1.3;color:var(--ink);padding:8px 12px 0}
.atlas-card .c-num{display:block;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--accent);padding:6px 12px 0}
.atlas-card .c-foot{display:flex;justify-content:space-between;margin-top:10px;padding:7px 12px;border-top:1px solid var(--line);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.atlas-card .c-go{color:var(--ink);letter-spacing:.02em;text-transform:none;font-size:12.5px}

/* timeline */
.tl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;margin-top:18px}
.tl-play{align-self:end;margin-bottom:12px;width:32px;height:32px;border-radius:50%;border:1px solid var(--ink);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.tl-play:hover{background:var(--ink);color:var(--paper)}
.tl-play svg{width:14px;height:14px}
.tl-track{position:relative;height:40px}
.tl-rail,.tl-fill{position:absolute;left:0;top:10px;height:2px;background:var(--line)}
.tl-rail{right:0}
.tl-fill{background:var(--accent);transition:width .9s cubic-bezier(.45,0,.2,1);width:0}
.tl-tick{position:absolute;top:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}
.tl-tick::before{content:"";width:1px;height:8px;background:var(--line);margin-top:7px}
.tl-tick em{position:absolute;bottom:36px;display:flex;flex-direction:column-reverse;gap:3px;align-items:center}
.tl-tick em .sh{width:9px;height:9px}
.tl-track{margin-top:34px}
.tl-tick span{font-family:var(--sans);font-size:11px;color:var(--muted);margin-top:8px;white-space:nowrap}
.tl-tick:first-child{transform:none;align-items:flex-start}
.tl-tick:last-child{transform:translateX(-100%);align-items:flex-end}
.tl-track input{position:absolute;inset:0 -6px;width:calc(100% + 12px);opacity:0;cursor:pointer;margin:0}
.tl-now{grid-column:2;font-family:var(--serif);font-size:16px;color:var(--ink-2);min-height:1.4em}
.tl-now b{font-weight:600;color:var(--ink)}
.atlas figcaption{margin-top:10px;font-family:var(--sans);font-size:13.5px;color:var(--muted);line-height:1.5}
.atlas figcaption b{color:var(--ink)}
@media(max-width:700px){
  .atlas .lbl{font-size:22px;stroke-width:6px}.atlas .hlbl{font-size:26px}.atlas .land{stroke-width:3.4}
  .atlas .grat text{display:none}
    .tl-tick span{font-size:9.5px}.tl-tick:nth-child(even) span{visibility:hidden}
  .atlas-card{width:230px}
}
@media(prefers-reduced-motion:reduce){.atlas .arc,.tl-fill{transition:none}.atlas .pin.new .core{animation:none}}

/* planted flags: raised once each arc lands */
.atlas .flag .pole{stroke:var(--ink);stroke-width:1.3;stroke-linecap:round}
.atlas .flag .pennant{fill:var(--accent);stroke:var(--accent);stroke-width:1;stroke-linejoin:round}
.atlas .pin.k-poster .flag .pennant{fill:var(--ink);stroke:var(--ink)}
.atlas .pin.k-talk .flag .pennant{fill:var(--paper);stroke:var(--accent);stroke-width:1.4}
.atlas .flag{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform .35s cubic-bezier(.3,1.5,.5,1) .95s}
.atlas .pin.on .flag{transform:scaleY(1)}
.atlas .pen-wrap .pennant{transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0);transition:transform .3s ease-out 1.25s}
.atlas .pin.on .pennant{transform:scaleX(1);animation:wave 2.2s ease-in-out 1.6s 1}
@keyframes wave{0%,100%{transform:scaleX(1) skewY(0)}30%{transform:scaleX(.85) skewY(-8deg)}60%{transform:scaleX(1) skewY(5deg)}}
.atlas .pin.hl .flag .pole{stroke-width:1.8}
@media(prefers-reduced-motion:reduce){.atlas .flag,.atlas .pen-wrap .pennant{transition:none}.atlas .pin.on .pennant{animation:none}}
@media(max-width:700px){.atlas .flag .pole{stroke-width:2}}

.atlas-sub b{font-style:normal;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}

/* home bio: text + gif */
.bio-grid{display:grid;gap:28px}
@media(min-width:900px){.bio-grid{grid-template-columns:minmax(0,1fr) 240px;gap:64px;align-items:start}}
.bio-gif img{display:block;width:100%;max-width:240px;height:auto;border:1px solid var(--line)}
.bio-gif-cap{margin-top:8px !important;font-family:var(--sans);font-size:12.5px !important;color:var(--muted) !important;line-height:1.4 !important}
.bio-gif-cap b{color:var(--ink);font-weight:600}
@media(max-width:899px){.bio-gif img{max-width:200px}}

/* bio as a manuscript under review: line numbers, drop cap, red-pen marks */
.review{position:relative}
.review .lnums{position:absolute;left:-44px;top:0;width:30px;height:100%;pointer-events:none}
.review .lnums span{position:absolute;right:0;font-family:var(--sans);font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
@media(max-width:1260px){.review .lnums{display:none}}
.ink{position:relative;display:inline-block;white-space:nowrap}
.ink svg{position:absolute;pointer-events:none;overflow:visible}
.ink path{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round}
.ink-wave svg{left:-1px;bottom:-4px}
.ink-wave path{stroke-width:1.8;transition:stroke-dashoffset .9s cubic-bezier(.45,0,.2,1)}
.ink-circle svg{left:-20px;top:-4px}
.ink-circle path{stroke-width:2;transition:stroke-dashoffset 1.3s cubic-bezier(.45,0,.2,1) .8s}
@media(prefers-reduced-motion:reduce){.ink path{transition:none}}
/* venues: a lighter pen stroke under each */
.ink-line{display:inline;font-weight:600;color:var(--ink)}
.ink-line svg{left:-1px;bottom:-3px}
.ink-line path{stroke-width:1.3;opacity:.7;transition:stroke-dashoffset .35s ease-out}
@media(max-width:520px){.ink-circle{white-space:normal}.ink-circle svg{display:none}.ink-circle{text-decoration:underline 2px var(--accent);text-underline-offset:4px}}

/* map as its own section */
#map .sec-aside b{font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}
.atlas figcaption .lg{display:inline-flex;align-items:center;gap:5px;margin:0 6px 0 2px;color:var(--ink-2);white-space:nowrap}
.atlas figcaption .sh{width:8px;height:8px}
.atlas-plot{margin-top:4px}

/* map polish: atlas labels, ripple, now-playing panel, compass + scale */
.atlas .lbl .lc{font-family:var(--serif);font-style:italic;font-weight:400;font-size:11.5px;letter-spacing:0;fill:var(--muted)}
.atlas.focus .pin:not(.hl) .lbl .lc{fill:var(--line)}
.atlas .pin .ripple{fill:none;stroke:var(--accent);stroke-width:1.2;opacity:0;transform-box:fill-box;transform-origin:center}
.atlas .pin.new .ripple{animation:ripple 1.1s ease-out .9s 1}
.atlas .pin.k-poster .ripple{stroke:var(--ink)}
@keyframes ripple{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(4.2)}}
.tl-now{display:none}
.atlas-now{display:grid;grid-template-columns:130px 230px 1fr auto;gap:6px 22px;align-items:baseline;margin-top:14px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--sans);min-height:52px;opacity:0;transition:opacity .35s}
.atlas-now.show{opacity:1}
.atlas-now .np-k{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink)}
.atlas-now .np-k span{display:block;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.atlas-now .np-v{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.atlas-now .np-v b{font-family:var(--serif);font-size:15px;font-weight:700;color:var(--spot-ink);background:var(--spot-bg);padding:1px 8px;border-radius:3px;white-space:nowrap}
.atlas-now .np-v span{font-family:var(--serif);font-style:italic;font-size:14.5px;color:var(--muted)}
.atlas-now .np-t{font-family:var(--serif);font-size:16px;line-height:1.35;color:var(--ink)}
.atlas-now .np-n{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--accent);text-align:right;white-space:nowrap}
.atlas-now .np-sum{font-family:var(--serif);font-size:18px;color:var(--ink)}
.atlas-now .np-sum b{font-size:24px;font-weight:600;color:var(--accent)}
.atlas-now .np-hint{font-family:var(--sans);font-size:12.5px;font-weight:400;color:var(--muted)}
@media(max-width:860px){.atlas-now{grid-template-columns:1fr;gap:6px}.atlas-now .np-n{text-align:left;white-space:normal}}
@media(max-width:700px){.atlas .lbl .lc{display:none}}
@media(prefers-reduced-motion:reduce){.atlas .pin.new .ripple{animation:none}.atlas-now{transition:none}}

/* map legend row + tighter section end */
.atlas-legend{display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 6px;font-family:var(--sans);font-size:14px;color:var(--ink-2)}
.atlas-legend span{display:inline-flex;align-items:center;gap:9px}
.atlas-legend .sh{width:12px;height:12px}
.atlas-legend .sh-talk{box-shadow:inset 0 0 0 2.5px var(--accent)}
#map{padding-bottom:0}
#map + #news{padding-top:44px}
