/* ============================================================
   KCT v3 REFINEMENT — stillness × knowledge × discovery
   Evolution of v2.1. Larger type, editorial rhythm, signature map.
   ============================================================ */
:root{
  --night:#1d1410;
  --night-2:#261b12;
  --ivory:#f7f0df;
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:180ms;
  --t-med:260ms;
  --t-slow:320ms;
}

/* ---------- 1. SCALE & TYPOGRAPHY ---------- */
body{font-size:18px;line-height:1.85}
.prose{font-size:1.12rem;line-height:1.95}
.lead{font-size:1.15rem;line-height:1.8}
.section{padding:clamp(72px,9vw,132px) 0}
.kicker{font-size:.78rem;margin-bottom:16px}
.h2{font-size:clamp(1.9rem,3.8vw,2.8rem);margin-bottom:16px;line-height:1.25}
.main-nav a,.main-nav .top{font-size:.88rem}
.main-nav .drop a{font-size:.92rem}
.card .body{padding:26px 26px 28px}
.card h3{font-size:1.28rem;line-height:1.5}
.card p{font-size:.98rem;line-height:1.75}
.card .meta{font-size:.82rem}
.card .cat{font-size:.72rem}
.tl-cell{padding:30px 26px}
.tl-cell h3{font-size:1.15rem}
.tl-cell p{font-size:.92rem;line-height:1.7}
.tl-cell .era{font-size:.74rem}
.zone-head{margin-bottom:34px}
.byline{font-size:.86rem}
.crumbs{font-size:.82rem}

/* ---------- 2. HERO v3 — the wow moment ---------- */
.hero .bg::after{
  background:
    linear-gradient(100deg, rgba(24,14,8,.68) 0%, rgba(24,14,8,.44) 42%, rgba(24,14,8,.10) 68%, rgba(24,14,8,0) 86%),
    linear-gradient(180deg, rgba(24,14,8,.34) 0%, rgba(24,14,8,0) 26%, rgba(24,14,8,0) 62%, var(--paper) 100%);
}
.hero-inner{padding:clamp(150px,19vw,230px) 0 clamp(96px,12vw,160px);max-width:880px}
.hero .kicker{color:#e8c86a;font-size:.82rem;text-shadow:0 1px 14px rgba(15,8,4,.6)}
.hero h1{
  color:#fdf8ec;
  font-size:clamp(2.9rem,7.2vw,5.1rem);
  line-height:1.06;
  letter-spacing:.015em;
  margin:22px 0 20px;
  text-shadow:0 2px 34px rgba(15,8,4,.65), 0 1px 6px rgba(15,8,4,.5);
}
.hero .sub{
  color:#f0e4c9;
  font-size:clamp(1.1rem,2.2vw,1.35rem);
  line-height:1.75;
  max-width:640px;
  margin-bottom:36px;
  text-shadow:0 1px 14px rgba(15,8,4,.6);
}
.hero-search{max-width:640px;padding:6px;border:1px solid rgba(232,200,106,.35);box-shadow:0 24px 60px rgba(15,8,4,.35)}
.hero-search input{padding:19px 28px;font-size:1.12rem}
.hero-search input::placeholder{color:#a89a82}
.hero-search button{padding:0 38px;font-size:.9rem}
.hero-search:focus-within{border-color:#e8c86a;box-shadow:0 24px 60px rgba(15,8,4,.4),0 0 0 3px rgba(232,200,106,.22)}
.hero-examples{margin-top:20px;font-size:.86rem;color:rgba(240,228,201,.78)}
.hero-examples>span{color:rgba(240,228,201,.6);margin-right:6px}
.hero-examples button{
  border:1px solid rgba(253,248,236,.26);
  background:rgba(20,12,8,.22);
  padding:9px 20px;font-size:.86rem;color:#f3e9d2;
}
.hero-examples button:hover{border-color:#e8c86a;color:#e8c86a;background:rgba(20,12,8,.34)}
.kbd-hint{color:rgba(203,185,143,.85);font-size:.78rem;margin-top:18px}
@media(max-width:960px){
  .hero .bg::after{
    background:
      linear-gradient(180deg, rgba(24,14,8,.55) 0%, rgba(24,14,8,.38) 55%, rgba(24,14,8,.12) 80%, var(--paper) 100%);
  }
}

/* ---------- 3. SECTION RHYTHM — museum rooms ---------- */
.zone-night{
  background:var(--night);
  color:var(--ivory);
  border-top:1px solid #2e2117;
  border-bottom:1px solid #2e2117;
}
.zone-night .kicker{color:#d8b45c}
.zone-night .h2{color:#f7f0df}
.zone-night .lead{color:#c9b998}
.zone-night .zone-head .more{color:#e8c86a}
.zone-narrow .wrap{max-width:1020px}
.zone-offset .split2{grid-template-columns:1.15fr .85fr}

/* ---------- 4. ĐỌC GÌ HÔM NAY — hierarchy ---------- */
.today-featured .body{padding:34px 34px 36px}
.today-featured h3{font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.35;margin:10px 0 12px}
.today-featured .body p{font-size:1.02rem}
.today-list{display:grid;gap:0}
.today-item{padding:26px 6px;border-bottom:1px solid var(--line-soft);transition:background var(--t-med) var(--ease)}
.today-item:last-child{border-bottom:0}
.today-item:hover{background:var(--card)}
.today-item .cat{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--maroon)}
.today-item h3{font-size:1.3rem;line-height:1.5;margin:8px 0 6px;font-weight:600}
.today-item h3 a{color:var(--ink);transition:color var(--t-fast) var(--ease)}
.today-item:hover h3 a{color:var(--maroon)}
.today-item .go-arrow{font-family:var(--sans);color:var(--gold);opacity:0;transform:translateX(-8px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease);display:inline-block}
.today-item:hover .go-arrow{opacity:1;transform:none}
.today-item .meta{font-family:var(--sans);font-size:.82rem;color:var(--ink-faint)}
.today-featured .thumb{aspect-ratio:16/9}

/* ---------- 5. TOPIC EXPLORATION — entrances ---------- */
.cat-tile{min-height:210px}
.cat-tile img{transition:transform var(--t-slow) var(--ease)}
.cat-tile:hover img{transform:scale(1.02)}
.cat-tile::after{background:linear-gradient(180deg,rgba(20,12,8,.08) 25%,rgba(20,12,8,.84));transition:opacity var(--t-med) var(--ease)}
.cat-tile:hover::after{background:linear-gradient(180deg,rgba(20,12,8,.02) 15%,rgba(20,12,8,.9))}
.cat-tile .tt{position:relative;z-index:1;padding:20px;transition:transform var(--t-med) var(--ease)}
.cat-tile:hover .tt{transform:translateY(-4px)}
.cat-tile .tt small{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.22em;color:#e8c86a;margin-bottom:6px}
.cat-tile .tt b{font-family:var(--serif-d);font-weight:600;font-size:1.22rem;color:#fff;line-height:1.35;display:block}
.cat-tile .go{position:absolute;right:20px;bottom:18px;z-index:2;font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;color:#e8c86a;opacity:0;transform:translateX(-10px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}
.cat-tile:hover .go{opacity:1;transform:none}
@media(max-width:640px){.cat-tiles{grid-template-columns:repeat(2,1fr);gap:12px}.cat-tile{min-height:160px}.cat-tile .tt b{font-size:1.02rem}}

/* ---------- 6. BEGINNER JOURNEY — the learning path ---------- */
.jpath{max-width:1080px;margin:14px auto 0}
.jrow{display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.jrow::before{content:"";position:absolute;top:34px;left:6%;right:6%;height:2px;background:linear-gradient(90deg,var(--line),var(--gold),var(--line));opacity:.7}
.jstep3{position:relative;padding:0 22px 8px;text-align:left}
.jstep3 .st{position:relative;z-index:1;width:68px;height:68px;border-radius:50%;background:var(--paper);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--serif-d);font-size:1.5rem;color:var(--maroon);margin-bottom:20px;transition:all var(--t-med) var(--ease)}
.jstep3:hover .st{background:var(--maroon);border-color:var(--maroon);color:#fff;transform:translateY(-3px)}
.jstep3.done .st{background:var(--maroon);border-color:var(--maroon);color:#fff}
.jstep3 h3{font-size:1.22rem;margin-bottom:8px;line-height:1.4}
.jstep3 h3 a{color:var(--ink);transition:color var(--t-fast) var(--ease)}
.jstep3 h3 a:hover{color:var(--maroon)}
.jstep3 p{font-size:.94rem;color:var(--ink-soft);line-height:1.7}
.jturn{height:64px;position:relative}
.jturn::after{content:"";position:absolute;top:0;bottom:0;right:calc(12.5% - 34px);width:68px;border:2px solid var(--line);border-left:0;border-radius:0 40px 40px 0}
.jcta{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 22px}
.jcta .prog{font-family:var(--sans);font-size:.82rem;color:var(--ink-faint);margin-top:12px;letter-spacing:.06em}
.jcta .pbar{width:100%;max-width:220px;height:6px;background:var(--paper-3);border-radius:99px;margin-top:8px;overflow:hidden}
.jcta .pbar span{display:block;height:100%;background:linear-gradient(90deg,var(--maroon),var(--saffron));border-radius:99px;transition:width .6s var(--ease)}
@media(max-width:800px){
  .jrow{grid-template-columns:1fr}
  .jrow>*{grid-column:auto !important}
  .jrow::before{top:0;bottom:0;left:33px;right:auto;width:2px;height:auto;background:linear-gradient(180deg,var(--line),var(--gold),var(--line))}
  .jstep3{display:grid;grid-template-columns:68px 1fr;gap:0 20px;padding:0 0 34px}
  .jstep3 .st{margin-bottom:0;width:68px;height:68px}
  .jturn{display:none}
  .jcta{padding:6px 0 0 88px}
}

/* ---------- 7. KNOWLEDGE MAP — the signature ---------- */
.map-shell-night{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:26px;margin-top:30px;align-items:start}
@media(max-width:1000px){.map-shell-night{grid-template-columns:1fr}}
.map-canvas-night{background:rgba(255,253,248,.015);border:1px solid rgba(216,180,92,.28);border-radius:var(--radius);min-height:660px;position:relative;overflow:hidden}
.map-scroller{overflow-x:auto;scrollbar-width:thin}
.map-scroller svg{width:100%;height:auto;min-width:700px;min-height:600px;display:block}
.me-edge{fill:none;stroke:rgba(216,180,92,.30);stroke-width:1.3;transition:opacity var(--t-med) var(--ease),stroke var(--t-med) var(--ease),stroke-width var(--t-med) var(--ease)}
.me-edge.hi{stroke:#e8c86a;stroke-width:2.2;opacity:1}
.me-edge.dim{opacity:.06}
.me-node{cursor:pointer;outline:none;transition:opacity var(--t-med) var(--ease)}
.me-node .me-ring{fill:rgba(29,20,16,.55);stroke-width:1.7;transition:all var(--t-med) var(--ease)}
.me-node .me-ring2{fill:none;stroke-width:1;opacity:.55}
.me-node .me-label{font-family:var(--sans);font-size:14px;font-weight:600;fill:#f2e9d5;text-anchor:middle;pointer-events:none}
.me-node .me-sub{font-family:var(--sans);font-size:10.5px;fill:#b39b6d;text-anchor:middle;pointer-events:none}
.me-node.type-person .me-ring{stroke:#e8c86a;fill:rgba(232,200,106,.10)}
.me-node.type-tradition .me-ring{stroke:#c2701a;fill:rgba(194,112,26,.16)}
.me-node.type-concept .me-ring{stroke:#f2e9d5;stroke-dasharray:6 5;fill:transparent}
.me-node.type-practice .me-ring{stroke:#d8b45c;fill:rgba(216,180,92,.08)}
.me-node.type-sacred-object .me-ring{stroke:#a8842c;fill:rgba(168,132,44,.10)}
.me-node.type-sacred-object .me-ring2{stroke:#a8842c}
.me-node:hover .me-ring,.me-node.sel .me-ring{stroke:#ffe9a8;stroke-width:2.6;filter:drop-shadow(0 0 12px rgba(232,200,106,.5))}
.me-node.dim{opacity:.25}
.map-panel-night{background:var(--night-2);border:1px solid rgba(216,180,92,.3);border-radius:var(--radius);padding:30px;position:sticky;top:100px;min-height:280px}
.map-panel-night .kind{font-family:var(--sans);font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:#d8b45c;margin-bottom:12px}
.map-panel-night h3{font-size:1.6rem;color:#f7f0df;margin-bottom:6px}
.map-panel-night .psub{font-family:var(--sans);font-size:.86rem;color:#b39b6d;margin-bottom:14px}
.map-panel-night>p{font-size:.96rem;color:#d9cdb4;line-height:1.75}
.map-panel-night .pcount{font-family:var(--sans);font-size:.8rem;letter-spacing:.14em;color:#d8b45c;margin:18px 0 10px;text-transform:uppercase}
.map-panel-night .prel{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.map-panel-night .prel button{border:1px solid rgba(216,180,92,.4);background:transparent;color:#e8c86a;border-radius:999px;padding:8px 16px;font-size:.82rem;cursor:pointer;font-family:var(--sans);transition:all var(--t-fast) var(--ease)}
.map-panel-night .prel button:hover{background:rgba(232,200,106,.14);border-color:#e8c86a}
.map-panel-night .links{margin-top:16px;display:grid;gap:10px;font-family:var(--sans);font-size:.9rem}
.map-panel-night .links>span{font-size:.74rem;letter-spacing:.22em;color:#8f7c58}
.map-panel-night .links a{color:#e8c86a;transition:color var(--t-fast) var(--ease)}
.map-panel-night .links a:hover{color:#fff}
.map-legend-night{display:flex;gap:20px;flex-wrap:wrap;margin-top:18px;font-family:var(--sans);font-size:.8rem;color:#b39b6d}
.map-legend-night i{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:8px;vertical-align:-1px;border:1.5px solid}
/* full map page */
.map-page-night{background:var(--night);border-radius:var(--radius);padding:clamp(24px,4vw,48px);margin-top:26px}
.map-page-night .map-shell{grid-template-columns:minmax(0,1fr) 340px}
.map-page-night .map-canvas{background:transparent;border-color:rgba(216,180,92,.28);min-height:640px}
.map-page-night .map-panel{background:var(--night-2);border-color:rgba(216,180,92,.3)}
.map-page-night .map-panel h3{color:#f7f0df}
.map-page-night .map-panel p{color:#d9cdb4}
.map-page-night .map-panel .links a{color:#e8c86a}

/* ---------- 8. LATEST — premium editorial feed ---------- */
.feed-list{max-width:880px;margin:0 auto}
.feed-row{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:28px;align-items:center;padding:28px 8px;border-bottom:1px solid var(--line-soft);transition:background var(--t-med) var(--ease)}
.feed-row:last-child{border-bottom:0}
.feed-row:hover{background:var(--card)}
.feed-row .fthumb{width:132px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--paper-3);flex:none}
.feed-row .fthumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow) var(--ease)}
.feed-row:hover .fthumb img{transform:scale(1.02)}
.feed-row .fthumb-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--gold);font-size:1.6rem;background:var(--paper-2)}
.feed-row .fcat{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--maroon)}
.feed-row h3{font-size:1.38rem;line-height:1.45;margin:8px 0 8px;font-weight:600}
.feed-row h3 a{color:var(--ink);transition:color var(--t-fast) var(--ease)}
.feed-row:hover h3 a{color:var(--maroon)}
.feed-row .fdesc{font-size:.96rem;color:var(--ink-soft);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feed-row .fmeta{font-family:var(--sans);font-size:.8rem;color:var(--ink-faint);white-space:nowrap;text-align:right;line-height:2}
.feed-row .go-arrow{font-family:var(--sans);color:var(--gold);opacity:0;transform:translateX(-8px);transition:opacity var(--t-med) var(--ease),transform var(--t-med) var(--ease)}
.feed-row:hover .go-arrow{opacity:1;transform:none}
@media(max-width:640px){.feed-row{grid-template-columns:96px 1fr;gap:18px}.feed-row .fthumb{width:96px}.feed-row .fmeta{grid-column:2;text-align:left}}

/* ---------- 9. ART LIBRARY teaser ---------- */
.art-teaser{display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center}
@media(max-width:860px){.art-teaser{grid-template-columns:1fr;gap:32px}}
.art-stage{position:relative;padding:0 34px 34px 0}
.art-stage .main{border-radius:var(--radius);box-shadow:var(--shadow);position:relative;z-index:1;aspect-ratio:4/3;object-fit:cover;width:100%}
.art-stage .echo{position:absolute;right:0;bottom:0;width:46%;border-radius:12px;box-shadow:var(--shadow);opacity:.92;z-index:0;aspect-ratio:1;object-fit:cover}
.art-copy .kicker{margin-bottom:14px}
.art-copy h2{margin-bottom:16px}

/* ---------- 10. TIMELINE — horizontal journey ---------- */
.tl-h{overflow-x:auto;scroll-snap-type:x proximity;padding:6px 4px 14px;scrollbar-width:thin;margin-top:10px}
.tl-track{position:relative;display:flex;min-width:max-content;padding:64px 30px 26px}
.tl-track::before{content:"";position:absolute;left:30px;right:30px;top:70px;height:2px;background:linear-gradient(90deg,var(--line),var(--gold),var(--line))}
.tl-ev{position:relative;min-width:230px;max-width:270px;padding:0 26px;scroll-snap-align:start;background:none;border:0;text-align:left;cursor:pointer;font-family:inherit}
.tl-ev .dot{position:absolute;left:26px;top:-1px;width:15px;height:15px;border-radius:50%;background:var(--paper);border:3px solid var(--maroon);transition:all var(--t-med) var(--ease)}
.tl-ev:hover .dot,.tl-ev.on .dot{background:var(--maroon);transform:scale(1.25);box-shadow:0 0 0 6px rgba(107,31,31,.12)}
.tl-ev .era{position:absolute;left:26px;top:-52px;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.22em;color:var(--saffron);text-transform:uppercase;white-space:nowrap}
.tl-ev h3{font-size:1.18rem;margin:14px 0 8px;color:var(--ink);transition:color var(--t-fast) var(--ease)}
.tl-ev:hover h3,.tl-ev.on h3{color:var(--maroon)}
.tl-ev p{font-size:.9rem;color:var(--ink-soft);line-height:1.7}
.tl-ev .t{display:block;font-family:var(--serif-d);font-weight:600;font-size:1.18rem;margin:14px 0 8px;color:var(--ink);line-height:1.4;transition:color var(--t-fast) var(--ease)}
.tl-ev:hover .t,.tl-ev.on .t{color:var(--maroon)}
.tl-ev .d{display:block;font-size:.9rem;color:var(--ink-soft);line-height:1.7}
.tl-detail{max-width:760px;margin:26px auto 0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:32px clamp(24px,4vw,44px);display:none}
.tl-detail.show{display:block;animation:tlIn var(--t-med) var(--ease)}
@keyframes tlIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tl-detail .era{font-family:var(--sans);font-size:.74rem;font-weight:600;letter-spacing:.24em;color:var(--saffron);text-transform:uppercase;margin-bottom:10px}
.tl-detail h3{font-size:1.6rem;margin-bottom:12px}
.tl-detail p{color:var(--ink-soft);line-height:1.8}
.tl-detail .rel{margin-top:18px;font-family:var(--sans);font-size:.88rem;display:flex;gap:22px;flex-wrap:wrap}
.tl-detail .rel a{color:var(--maroon)}
@media (prefers-reduced-motion:reduce){.tl-detail.show{animation:none}}

/* ---------- 11. FINAL DISCOVERY ---------- */
.discover{max-width:980px;margin:0 auto}
.discover-head{text-align:center;margin-bottom:44px}
.discover-list{border-top:1px solid var(--line)}
.discover-item{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:26px;align-items:center;padding:36px 12px;border-bottom:1px solid var(--line);transition:background var(--t-med) var(--ease),padding var(--t-med) var(--ease)}
.discover-item:hover{background:var(--card);padding-left:22px}
.discover-item .idx{font-family:var(--serif-d);font-size:1.5rem;color:var(--gold)}
.discover-item h3{font-size:clamp(1.5rem,3.2vw,2.2rem);letter-spacing:.04em;line-height:1.25;font-weight:600}
.discover-item h3 a{color:var(--ink);transition:color var(--t-fast) var(--ease)}
.discover-item:hover h3 a{color:var(--maroon)}
.discover-item .go{font-family:var(--sans);font-size:.88rem;letter-spacing:.1em;color:var(--maroon);white-space:nowrap}
.discover-item .go .arr{display:inline-block;transition:transform var(--t-med) var(--ease);color:var(--gold)}
.discover-item:hover .go .arr{transform:translateX(8px)}
@media(max-width:640px){.discover-item{grid-template-columns:52px 1fr;gap:16px}.discover-item .go{grid-column:2}}

/* ---------- 13. SEARCH v3 ---------- */
.search-box .kicker{margin-bottom:12px}
.search-box .quick-label{font-family:var(--sans);font-size:.78rem;letter-spacing:.2em;color:var(--ink-faint);text-transform:uppercase;margin:22px 0 4px}
.sr-suggest{margin-top:6px}
@media(max-width:640px){
  .search-overlay{padding:0}
  .search-box{border-radius:0;min-height:100vh;max-width:none;padding:80px 22px 40px}
  #search-results{max-height:none}
}

/* ---------- 14. MICRO INTERACTIONS ---------- */
a,.btn,.icon-btn,.cat-tile,.card,.jstep3 .st,.discover-item,.feed-row,.today-item,.tl-ev{-webkit-tap-highlight-color:transparent}
.u-reveal{background-image:linear-gradient(var(--gold),var(--gold));background-size:0% 1.5px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--t-med) var(--ease);padding-bottom:2px}
.u-reveal:hover{background-size:100% 1.5px}
.zone-head .more{transition:color var(--t-fast) var(--ease)}
.zone-head .more:hover{color:var(--maroon-deep)}
.btn{transition:background var(--t-med) var(--ease),color var(--t-med) var(--ease),transform var(--t-fast) var(--ease)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:none}

/* ---------- v3.1: entity connections on articles ---------- */
.ent-chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0 6px;font-family:var(--sans)}
.ent-chips .ent-label{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}
.ent-chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 18px;font-size:.85rem;color:var(--ink-soft);transition:all var(--t-fast) var(--ease)}
.ent-chip:hover{border-color:var(--maroon);color:var(--maroon);transform:translateY(-1px)}
.related .card .thumb{aspect-ratio:16/9}

/* ---------- 15. MOBILE refinements ---------- */
@media(max-width:960px){
  body{font-size:17px}
  .hero-inner{padding:clamp(110px,16vw,170px) 0 clamp(70px,10vw,110px)}
  .hero h1{font-size:clamp(2.5rem,10vw,3.6rem)}
  .hero-search input{padding:16px 22px;font-size:1.02rem}
  .hero-search button{padding:0 26px}
  .map-canvas-night{min-height:480px}
  .map-panel-night{position:static}
}
@media(max-width:640px){
  .section{padding:60px 0}
  .h2{font-size:1.75rem}
  .zone-head{margin-bottom:24px}
  .today-featured h3{font-size:1.45rem}
  .art-stage{padding:0 20px 20px 0}
  .tl-ev{min-width:200px}
}
/* touch targets */
@media(hover:none){
  .icon-btn{width:46px;height:46px}
  .tl-ev{padding-top:8px;padding-bottom:8px}
  .discover-item{padding-top:30px;padding-bottom:30px}
}
