/* GTA6 STREET — World tree experience
   Scoped refinement layer for entity archives, watch pages, map and dossiers.
   Loaded after gta6-world.css so the legacy World contracts remain intact. */

.world-tree-page {
    --world-page-accent: #ff4f64;
    --world-page-accent-rgb: 255, 79, 100;
    --world-page-cyan: #4ee2dc;
    --world-page-panel: #0f151c;
    --world-page-panel-2: #131b24;
    --world-page-line: rgba(255,255,255,.11);
    --world-page-muted: #9aa8b6;
    background: #070b10;
}

.world-tree-page.world-shell--character { --world-page-accent:#e96cff; --world-page-accent-rgb:233,108,255; }
.world-tree-page.world-shell--location { --world-page-accent:#41d8d1; --world-page-accent-rgb:65,216,209; }
.world-tree-page.world-shell--region { --world-page-accent:#5ea9ff; --world-page-accent-rgb:94,169,255; }
.world-tree-page.world-shell--business { --world-page-accent:#f5b94c; --world-page-accent-rgb:245,185,76; }
.world-tree-page.world-shell--activity { --world-page-accent:#7ee86d; --world-page-accent-rgb:126,232,109; }
.world-tree-page.world-shell--faction { --world-page-accent:#d58aff; --world-page-accent-rgb:213,138,255; }
.world-tree-page.world-shell--vehicle { --world-page-accent:#ff765e; --world-page-accent-rgb:255,118,94; }
.world-tree-page.world-shell--weapon { --world-page-accent:#bd85ff; --world-page-accent-rgb:189,133,255; }
.world-tree-page.world-shell--map { --world-page-accent:#4ee2dc; --world-page-accent-rgb:78,226,220; }

/* shared tree navigation */
.world-tree-page .world-nav,
.world-shell--landing .world-nav {
    position: relative;
    z-index: 30;
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0 auto 14px;
    max-width: 1440px;
    min-height: 58px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    border: 1px solid rgba(255,255,255,.09);
    background: rgba(13,18,24,.96);
}
.world-tree-page .world-nav::-webkit-scrollbar,
.world-shell--landing .world-nav::-webkit-scrollbar { display:none; }
.world-tree-page .world-nav a,
.world-shell--landing .world-nav a {
    position: relative;
    display: inline-flex;
    flex: 1 0 auto;
    min-width: 108px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 14px;
    color: #d5dde5;
    border-right: 1px solid rgba(255,255,255,.055);
    font-size: 10px;
    line-height: 1;
    font-weight: 850;
    letter-spacing: .085em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: background .2s ease,color .2s ease,transform .2s ease;
}
.world-tree-page .world-nav a:last-child,
.world-shell--landing .world-nav a:last-child { border-right:0; }
.world-tree-page .world-nav a:hover,
.world-shell--landing .world-nav a:hover { background:rgba(255,255,255,.055); color:#fff; }
.world-tree-page .world-nav a.is-current,
.world-shell--landing .world-nav a.is-current {
    color:#071015;
    background:var(--world-page-accent,#ff4f64);
}
.world-tree-page .world-nav a.is-current::after,
.world-shell--landing .world-nav a.is-current::after {
    content:"";
    position:absolute;
    left:20%; right:20%; bottom:-1px;
    height:3px;
    background:#fff;
    opacity:.85;
}
.world-nav__icon { font-family:'Material Symbols Outlined'; font-size:16px; font-weight:400; letter-spacing:normal; }

/* cinematic archive/watch/map hero */
.world-tree-hero {
    position: relative;
    isolation: isolate;
    min-height: 430px;
    overflow: hidden;
    border-top: 1px solid var(--world-page-line);
    border-bottom: 2px solid var(--world-page-accent);
    background: #0b1117;
}
.world-tree-hero__video,
.world-tree-hero__poster {
    position:absolute;
    inset:0;
    width:100%; height:100%;
    object-fit:cover;
    z-index:-4;
    opacity:.38;
    filter:saturate(.82) contrast(1.05);
}
.world-tree-hero__veil {
    position:absolute;
    inset:0;
    z-index:-3;
    background:
        linear-gradient(90deg,rgba(5,8,12,.98) 0%,rgba(5,8,12,.87) 45%,rgba(5,8,12,.48) 75%,rgba(5,8,12,.72) 100%),
        linear-gradient(180deg,rgba(5,8,12,.05),rgba(5,8,12,.72));
}
.world-tree-hero__grid {
    position:absolute;
    inset:0;
    z-index:-2;
    opacity:.16;
    background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
    background-size:72px 72px;
    mask-image:linear-gradient(90deg,#000,transparent 88%);
}
.world-tree-hero__layout {
    display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
    align-items:end;
    gap:42px;
    min-height:430px;
    padding:58px clamp(26px,5vw,74px) 48px;
}
.world-tree-hero__copy { max-width:810px; }
.world-tree-hero__copy .breadcrumbs { margin-bottom:24px; }
.world-tree-hero__eyebrow {
    display:flex; align-items:center; gap:10px;
    margin:0 0 16px;
    color:var(--world-page-accent);
    font-size:10px; font-weight:900; letter-spacing:.14em; text-transform:uppercase;
}
.world-tree-hero__eyebrow i { width:7px; height:7px; background:currentColor; border-radius:50%; box-shadow:0 0 18px currentColor; }
.world-tree-hero h1 {
    max-width:760px;
    margin:0;
    color:#f7f5ef;
    font-family:var(--font-display,'Anton',sans-serif);
    font-size:clamp(54px,6.6vw,104px);
    line-height:.86;
    letter-spacing:-.035em;
    text-transform:uppercase;
}
.world-tree-hero h1 em { color:var(--world-page-accent); font-style:normal; }
.world-tree-hero__intro {
    max-width:690px;
    margin:22px 0 0;
    color:#c2ccd5;
    font-size:15px;
    line-height:1.65;
}
.world-tree-hero__actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.world-tree-button {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    min-height:42px; padding:0 17px;
    border:1px solid rgba(255,255,255,.18);
    color:#fff;
    background:rgba(8,12,17,.72);
    font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
}
.world-tree-button:hover { border-color:var(--world-page-accent); color:var(--world-page-accent); }
.world-tree-button--primary { background:var(--world-page-accent); border-color:var(--world-page-accent); color:#081016; }
.world-tree-button--primary:hover { color:#081016; filter:brightness(1.08); }

.world-tree-pulse {
    align-self:stretch;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:26px 0 4px 26px;
    border-left:1px solid rgba(var(--world-page-accent-rgb),.55);
}
.world-tree-pulse__label { color:var(--world-page-accent); font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.world-tree-pulse__count { display:flex; align-items:flex-end; gap:12px; margin:14px 0 20px; }
.world-tree-pulse__count strong { color:#fff; font-family:var(--font-display,'Anton',sans-serif); font-size:72px; line-height:.8; }
.world-tree-pulse__count span { max-width:110px; color:#aeb9c4; font-size:10px; line-height:1.35; text-transform:uppercase; letter-spacing:.06em; }
.world-tree-pulse__meta { display:grid; gap:0; border-top:1px solid var(--world-page-line); }
.world-tree-pulse__meta div { display:flex; justify-content:space-between; gap:18px; padding:10px 0; border-bottom:1px solid var(--world-page-line); }
.world-tree-pulse__meta small { color:#798999; text-transform:uppercase; letter-spacing:.06em; font-size:8px; }
.world-tree-pulse__meta strong { color:#e8edf2; text-align:right; font-size:10px; font-weight:800; }
.world-tree-hero__motion {
    position:absolute; right:18px; bottom:18px; z-index:5;
    width:34px; height:34px;
    display:grid; place-items:center;
    border:1px solid rgba(255,255,255,.2);
    color:#fff; background:rgba(5,8,12,.72);
}
.world-tree-hero__motion span { font-size:17px; }

/* search + filters */
.world-tree-controls {
    position:relative;
    z-index:8;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
    margin:0;
    padding:14px clamp(18px,3vw,34px);
    border-bottom:1px solid var(--world-page-line);
    background:#0b1016;
}
.world-tree-search { display:grid; grid-template-columns:minmax(180px,460px) auto; gap:0; max-width:620px; }
.world-tree-search input {
    height:40px; width:100%; padding:0 14px;
    border:1px solid #273240; border-right:0;
    color:#fff; background:#101822; outline:none;
    font-size:11px;
}
.world-tree-search input:focus { border-color:var(--world-page-accent); box-shadow:0 0 0 1px var(--world-page-accent); }
.world-tree-search button { min-width:86px; border:0; background:var(--world-page-accent); color:#081016; font-size:10px; font-weight:900; }
.world-tree-filters { display:flex; align-items:center; gap:7px; overflow-x:auto; scrollbar-width:none; }
.world-tree-filters::-webkit-scrollbar { display:none; }
.world-tree-filters a {
    flex:0 0 auto;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.1);
    color:#aab6c2;
    background:#10161d;
    font-size:8px; font-weight:850; letter-spacing:.06em; text-transform:uppercase;
}
.world-tree-filters a.is-current { color:#071015; background:var(--world-page-accent); border-color:var(--world-page-accent); }

/* archive body */
.world-tree-content {
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:28px;
    max-width:1440px;
    margin:0 auto;
    padding:34px 0 68px;
}
.world-tree-content--full { grid-template-columns:1fr; }
.world-tree-results-head { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:20px; padding-bottom:14px; border-bottom:1px solid var(--world-page-line); }
.world-tree-results-head p { margin:0 0 6px; color:var(--world-page-accent); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.world-tree-results-head h2 { margin:0; color:#f5f3ed; font-family:var(--font-display,'Anton',sans-serif); font-size:34px; line-height:.95; text-transform:uppercase; }
.world-tree-results-head span { color:#81909e; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }

.world-tree-rail { display:grid; align-content:start; gap:14px; }
.world-tree-rail__panel { border-top:2px solid var(--world-page-accent); background:#101720; padding:18px; }
.world-tree-rail__panel > small { display:block; color:var(--world-page-accent); font-size:8px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; margin-bottom:12px; }
.world-tree-rail__panel h3 { margin:0 0 10px; color:#f6f4ef; font-family:var(--font-display,'Anton',sans-serif); font-size:25px; line-height:.95; text-transform:uppercase; }
.world-tree-rail__panel p { margin:0; color:#8f9eaa; font-size:11px; line-height:1.55; }
.world-tree-rail__links { display:grid; margin-top:15px; border-top:1px solid var(--world-page-line); }
.world-tree-rail__links a { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--world-page-line); color:#dbe2e8; font-size:9px; font-weight:800; text-transform:uppercase; }
.world-tree-rail__links a:hover { color:var(--world-page-accent); }

/* truthful empty state */
.world-tree-empty {
    display:grid;
    grid-template-columns:minmax(250px,.7fr) minmax(0,1.3fr);
    min-height:310px;
    border:1px solid var(--world-page-line);
    background:#0f151c;
}
.world-tree-empty__visual { position:relative; display:grid; place-items:center; overflow:hidden; min-height:270px; background:radial-gradient(circle at center,rgba(var(--world-page-accent-rgb),.13),transparent 42%),#0a1118; }
.world-tree-empty__visual::before,.world-tree-empty__visual::after { content:""; position:absolute; border:1px solid rgba(var(--world-page-accent-rgb),.18); border-radius:50%; }
.world-tree-empty__visual::before { width:190px; height:190px; }
.world-tree-empty__visual::after { width:280px; height:280px; }
.world-tree-empty__visual span { position:relative; z-index:2; color:var(--world-page-accent); font-size:64px; }
.world-tree-empty__copy { display:flex; flex-direction:column; justify-content:center; padding:38px; border-left:1px solid var(--world-page-line); }
.world-tree-empty__copy small { color:var(--world-page-accent); font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.world-tree-empty__copy h2 { max-width:540px; margin:10px 0 12px; color:#f7f4ee; font-family:var(--font-display,'Anton',sans-serif); font-size:clamp(38px,4vw,64px); line-height:.9; text-transform:uppercase; }
.world-tree-empty__copy p { max-width:620px; margin:0; color:#9aa9b5; font-size:12px; line-height:1.65; }
.world-tree-empty__actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }

/* tighten legacy family products and make each family own its layout */
.world-tree-page .world-ledger article,
.world-tree-page .world-regions article,
.world-tree-page .world-directory article,
.world-tree-page .world-cast article,
.world-tree-page .world-places article,
.world-tree-page .world-activities article,
.world-tree-page .world-factions article { border-color:var(--world-page-line); }
.world-tree-page .world-ledger article:hover,
.world-tree-page .world-regions article:hover,
.world-tree-page .world-directory article:hover,
.world-tree-page .world-cast article:hover,
.world-tree-page .world-places article:hover,
.world-tree-page .world-activities article:hover,
.world-tree-page .world-factions article:hover { border-color:rgba(var(--world-page-accent-rgb),.5); }
.world-tree-page [data-world-product] h2 a:hover { color:var(--world-page-accent); }
.world-tree-page [data-world-product] > article,
.world-tree-page .world-directory article { background:#0d131a; }
.world-tree-page .world-ledger article { grid-template-columns:48px minmax(0,1fr) 210px; padding:22px 0; }
.world-tree-page .world-ledger article > span { color:var(--world-page-accent); font-family:var(--font-display,'Anton',sans-serif); font-size:24px; }
.world-tree-page .world-cast { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.world-tree-page .world-cast article { min-height:420px; display:flex; flex-direction:column; }
.world-tree-page .world-cast__portrait { min-height:250px; }
.world-tree-page .world-cast article > div:last-child { padding:18px; }
.world-tree-page .world-places { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.world-tree-page .world-places article { min-height:300px; }
.world-tree-page .world-regions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.world-tree-page .world-regions article { min-height:220px; padding:22px; }
.world-tree-page .world-directory { border-top:2px solid var(--world-page-accent); }
.world-tree-page .world-activities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.world-tree-page .world-factions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.world-tree-page .world-factions__node strong { color:var(--world-page-accent); }

/* watch pages */
.world-watch-stage { max-width:1440px; margin:0 auto; padding:34px 0 68px; }
.world-watch-stage__head { display:flex; justify-content:space-between; gap:20px; align-items:end; padding-bottom:14px; margin-bottom:20px; border-bottom:1px solid var(--world-page-line); }
.world-watch-stage__head h2 { margin:0; color:#f5f3ed; font-family:var(--font-display,'Anton',sans-serif); font-size:36px; text-transform:uppercase; }
.world-watch-stage__head p { max-width:520px; margin:0; color:#8f9eaa; font-size:11px; line-height:1.55; }
.world-tree-page .world-watch-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.world-tree-page .world-watch-item { background:#0e151c; border:1px solid var(--world-page-line); }
.world-tree-page .world-watch-item:hover { border-color:rgba(var(--world-page-accent-rgb),.5); }
.world-tree-page .world-watch-item__compare { border-top:1px solid var(--world-page-line); color:#fff; background:#111a23; }
.world-tree-page .world-watch-item__compare:hover { color:#081016; background:var(--world-page-accent); }
.world-tree-page .world-compare-dock { border-top-color:var(--world-page-accent); }

/* map redesign wrapper */
.world-map-stage { max-width:1440px; margin:0 auto; padding:30px 0 70px; }
.world-tree-page .world-map-workspace { padding:0; }
.world-tree-page .world-map-filters { border-top:2px solid var(--world-page-accent); background:#101720; }
.world-tree-page .world-map-layout { gap:14px; }
.world-tree-page .world-map-canvas-shell,
.world-tree-page .world-map-selection { border:1px solid var(--world-page-line); background:#0d141c; }
.world-tree-page .world-map-selection { border-top:2px solid var(--world-page-accent); }
.world-tree-page .world-map-marker { border-color:#071015; background:var(--world-page-accent); box-shadow:0 0 0 5px rgba(var(--world-page-accent-rgb),.13); }
.world-tree-page .world-map-marker.is-selected { box-shadow:0 0 0 8px rgba(var(--world-page-accent-rgb),.23),0 0 26px rgba(var(--world-page-accent-rgb),.5); }
.world-tree-page .world-map-list { margin-top:20px; border-top:2px solid var(--world-page-accent); background:#0e151c; }

/* dossier convergence */
.world-tree-page .record-sheet { max-width:1440px; margin:0 auto; }
.world-tree-page .record-sheet__masthead { position:relative; overflow:hidden; border-top:2px solid var(--world-page-accent); background:#0e151c; }
.world-tree-page .record-sheet__masthead::after { content:""; position:absolute; inset:0 0 0 50%; pointer-events:none; background:linear-gradient(135deg,transparent 40%,rgba(var(--world-page-accent-rgb),.08)); }
.world-tree-page .record-sheet__identity h1 { color:#f7f5ef; }
.world-tree-page .world-dossier-rail__snapshot { border-top:2px solid var(--world-page-accent); }
.world-tree-page .evidence-badge { border-radius:0; }

@media (max-width: 1180px) {
    .world-tree-hero__layout { grid-template-columns:minmax(0,1fr) 280px; padding-left:30px; padding-right:30px; }
    .world-tree-content { padding-left:22px; padding-right:22px; grid-template-columns:minmax(0,1fr) 260px; }
    .world-watch-stage,.world-map-stage { padding-left:22px; padding-right:22px; }
    .world-tree-page .world-watch-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
    .world-tree-hero { min-height:auto; }
    .world-tree-hero__layout { min-height:520px; grid-template-columns:1fr; align-content:end; gap:25px; padding:64px 22px 30px; }
    .world-tree-pulse { align-self:auto; padding:16px 0 0; border-left:0; border-top:1px solid rgba(var(--world-page-accent-rgb),.55); }
    .world-tree-pulse__count { margin:10px 0 12px; }
    .world-tree-pulse__count strong { font-size:54px; }
    .world-tree-pulse__meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .world-tree-pulse__meta div { display:block; }
    .world-tree-pulse__meta strong { display:block; margin-top:4px; text-align:left; }
    .world-tree-controls { grid-template-columns:1fr; }
    .world-tree-content { grid-template-columns:1fr; }
    .world-tree-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .world-tree-page .world-cast { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 640px) {
    .world-tree-page .world-nav,.world-shell--landing .world-nav { margin-left:0; margin-right:0; min-height:50px; }
    .world-tree-page .world-nav a,.world-shell--landing .world-nav a { min-width:92px; padding:10px 11px; font-size:8px; }
    .world-nav__icon { font-size:14px; }
    .world-tree-hero__layout { min-height:500px; padding-left:17px; padding-right:17px; }
    .world-tree-hero h1 { font-size:clamp(48px,16vw,74px); }
    .world-tree-hero__intro { font-size:13px; }
    .world-tree-controls { padding:12px 14px; }
    .world-tree-search { grid-template-columns:minmax(0,1fr) 72px; }
    .world-tree-content,.world-watch-stage,.world-map-stage { padding:24px 14px 48px; }
    .world-tree-rail { grid-template-columns:1fr; }
    .world-tree-empty { grid-template-columns:1fr; }
    .world-tree-empty__visual { min-height:190px; }
    .world-tree-empty__copy { padding:25px 20px; border-left:0; border-top:1px solid var(--world-page-line); }
    .world-tree-page .world-ledger article { grid-template-columns:34px minmax(0,1fr); }
    .world-tree-page .world-ledger article > div:last-child { grid-column:2; }
    .world-tree-page .world-cast,
    .world-tree-page .world-places,
    .world-tree-page .world-regions,
    .world-tree-page .world-activities,
    .world-tree-page .world-factions,
    .world-tree-page .world-watch-grid { grid-template-columns:1fr; }
    .world-watch-stage__head { display:block; }
    .world-watch-stage__head p { margin-top:10px; }
}
