/* Public discovery and reading layer; article photographs retain their natural layout. */
:root{--bg:#0c131c;--surface:#141f2b;--raised:#1d2d3c;--text:#f2eee6;--muted:#b5c2ce;--gold:#e4bd70;--holo:#8ccde1;--line:#344758;--control-line:#647b8e;--radius:10px}
html{scroll-padding-top:110px;color-scheme:dark}
body{background-color:var(--bg)}main{min-width:0}
.wrap{width:min(1280px,calc(100% - 64px))}
:is(h1,h2,h3,p,a){overflow-wrap:break-word}
:is(input,select,textarea,button){font:inherit}
:is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--holo);outline-offset:5px}
:is([id],main){scroll-margin-top:110px}
.topbar{background:#0c131cf5;border-bottom-color:var(--line)}
.header-inner{min-height:84px}.nav a{font-size:14px;padding-inline:4px}
.nav a[aria-current=page]{color:var(--gold)}
.header-actions .icon-btn{border-radius:8px}.python-menu>summary{border-radius:8px;min-height:44px}
.hero{background:radial-gradient(ellipse at 15% 35%,#1b344757,transparent 60%),var(--bg)}
.hero-inner{gap:clamp(32px,5vw,80px);padding-block:48px}.hero-copy{min-width:0}
.hero h1{font-size:clamp(40px,4.6vw,66px);line-height:1.55;margin:20px 0}
.hero-copy>p{color:var(--muted);font-size:18px;line-height:2}
.hero-search{max-width:none;border-radius:12px;min-height:64px;background:#182635;margin-bottom:12px}
.hero-search input{min-width:0;font-size:16px}
.hero-search button{min-width:44px;min-height:44px;border-radius:8px;background:#233b4a}
.hero-search button:hover{background:#304e60;color:var(--text)}
.hero-search:focus-within{border-color:var(--holo);box-shadow:0 0 0 3px #8ccde11a}
.search-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:24px;font-size:13px;color:var(--muted)}
.search-suggestions a{color:var(--holo);display:inline-flex;align-items:center;min-height:32px;text-underline-offset:5px}
.search-suggestions a:hover{text-decoration:underline}
.primary-btn{border-radius:8px;padding-inline:24px}
.outline-btn,.python-button,.python-action button{border-radius:8px}
.archive-hero-visual{aspect-ratio:1.06;border-radius:16px;clip-path:none;border-color:#536376;border-top-color:var(--gold);box-shadow:0 24px 64px #0004}
.archive-hero-visual:before{border-radius:8px}
.archive-hero-visual:after{background:linear-gradient(0deg,#0c131c 0%,#0c131ce8 18%,transparent 66%)}
.archive-hero-visual .hero-story{width:calc(100% - 56px)}.hero-story:hover h2{color:var(--gold)}
.hero-bottom{background:transparent;gap:16px}
.archive-strip{background:#101c28;border-block:1px solid var(--line)}
.strip-inner{min-height:90px;gap:32px}.strip-inner a{min-height:64px;display:flex;align-items:center;gap:12px}
.strip-inner strong{color:var(--gold);font-size:32px}.strip-inner a span{color:var(--muted);font-size:14px}
.section{padding-block:64px}.section-head{align-items:end;gap:24px}
.section-head h2{font-size:clamp(26px,2.5vw,36px)}.section-head p{max-width:650px}
.chip{border-radius:7px}.grid{gap:24px;align-items:stretch}
.grid .card{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.card-link{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none}
.card .card-art{overflow:hidden;height:auto;aspect-ratio:4/3;background:#101a24}
.card .card-art>img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 30%}
.card .card-body{padding:20px}.card .card-body h2{font-size:24px;line-height:1.65;margin:6px 0;color:var(--text)}
.card .card-body .english-name{font-size:12px;color:var(--holo);margin:0 0 12px}
.card .card-body>p:not(.english-name){font-size:15px;line-height:1.95;color:var(--muted);margin-bottom:0}
.card>.python-action{padding:0 20px 20px}.card>.python-action button{width:100%;font-size:13px;background:transparent}
.card:focus-within{border-color:var(--holo)}.card-link:focus-visible{outline-offset:-4px;border-radius:10px}
.journey-card,.path-card{border-radius:12px;overflow:hidden}
.andor-promo{padding:40px;border-radius:12px;border-inline-start:3px solid #93b7a1}
.mini-place-list{gap:12px}.mini-place-list .mini-place{display:flex;align-items:center;min-height:64px;padding:16px 20px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.mini-place-list .mini-place:after{content:'←';margin-inline-start:auto;color:var(--gold)}
.archive-article:has(>.python-grid){max-width:none;padding-block:40px}
.archive-article:has(>.python-grid)>h1{margin-block:12px 24px}
.archive-article>.compact-search{padding:20px;border-radius:12px;gap:16px}
.compact-search>input{padding:12px;border-radius:6px;background:var(--bg);min-height:48px}
.python-filters{padding-block:8px 0;gap:16px}.python-filters label{font-size:13px;color:var(--muted)}
.python-filters select{min-height:44px;border-radius:6px;border-color:var(--control-line)}
.python-filters button{min-height:44px;border:1px solid var(--gold);background:var(--gold);color:var(--bg);padding:8px 20px;border-radius:6px;cursor:pointer}
.python-filters>a{color:var(--holo);display:inline-flex;align-items:center;min-height:44px}
.python-pagination{align-items:center}.python-pagination>span{color:var(--muted);font-size:14px}
.dossier-hero{box-shadow:none;border-radius:0}.dossier-heading .entry-intro{color:var(--muted);line-height:2}
.dossier-toc{border-radius:8px}.toc-links a{min-height:40px;display:flex;align-items:center;border-radius:5px}
.toc-links a:hover{color:var(--text);background:var(--raised)}
.dossier-article :is(p,li),.archive-article>p{line-height:2.1}.spoiler-gate{border-radius:10px}
.cms-related{padding:24px;margin-block:32px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.cms-related ul{display:flex;gap:12px 28px;flex-wrap:wrap}.cms-hero{max-width:100%;max-height:500px;object-fit:contain}
.footer{background:#091019;margin-top:40px}.footer-links a{display:inline-flex;align-items:center;min-height:36px}
@media(hover:hover) and (pointer:fine){.grid .card:hover{border-color:#ac945f;box-shadow:0 12px 28px #0003}.mini-place:hover{border-color:var(--holo)}}
@media(max-width:1100px){.wrap{width:calc(100% - 48px)}.header-inner{gap:16px}.nav{gap:12px}.strip-inner{gap:20px;flex-wrap:wrap}.strip-note{display:none}}
@media(max-width:900px){.header-inner{flex-wrap:wrap}.python-navigation:has(>.python-menu[open]){width:100%}.python-navigation:has(>.python-menu[open])>.nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.python-navigation:has(>.python-menu[open])>.nav a{padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:6px}}
@media(max-width:760px){
 html{scroll-padding-top:90px}.wrap{width:calc(100% - 32px)}.header-inner{min-height:72px}
 .hero-inner{gap:28px;padding-block:32px}.hero h1{font-size:clamp(36px,8vw,48px);margin-block:16px}.hero-copy>p{font-size:16px}
 .hero-search{min-height:60px}.archive-hero-visual{aspect-ratio:4/3}.hero-bottom{flex-wrap:wrap;padding-block:16px}.hero-bottom .latin{display:none}
 .strip-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-block:16px}.strip-inner>p{grid-column:1/-1;margin:0;font-size:12px}
 .strip-inner a{flex-direction:column;justify-content:center;gap:2px;min-width:0}.strip-inner strong{font-size:28px}.strip-inner a span{font-size:12px}
 .section{padding-block:40px}.section-head{align-items:start;flex-direction:column;gap:12px}.grid{gap:16px}.card .card-body{padding:16px}
 .andor-promo{padding:24px}.archive-article>.compact-search{padding:16px}.python-filters{gap:12px}.python-filters select{font-size:16px;min-width:0}
 .python-filters button{flex:1}.archive-article:has(>.python-grid){padding-top:24px}
}
@media(max-width:600px){.grid{grid-template-columns:minmax(0,1fr)}.card .card-art{aspect-ratio:3/2}.hero-ctas{gap:12px}.hero-ctas .primary-btn{flex:1;justify-content:center}.hero-story h2{font-size:25px}}
@media print{body,.hero{background:white!important}.search-suggestions{display:none}.grid .card,.archive-hero-visual{box-shadow:none;break-inside:avoid}}
@media(max-width:380px){.hero-ctas{align-items:stretch;flex-direction:column}.hero-ctas .primary-btn{white-space:nowrap}.hero-ctas>.text-link{justify-content:center}.archive-hero-visual{aspect-ratio:1/1}}
/* Archive terminals: faction light and a barely visible phosphor scan texture. */
[data-aura]{--card-aura:#e4bd70}
[data-aura=sith]{--card-aura:#ff5264}
[data-aura=jedi]{--card-aura:#bce8ff}
[data-aura=rebel],[data-aura=nature]{--card-aura:#78d997}
[data-aura=mandalorian]{--card-aura:#aeb8c3}
[data-aura=empire]{--card-aura:#a7c3d3}
[data-aura=republic]{--card-aura:#e8c777}
[data-aura=droid]{--card-aura:#74cbd6}
[data-aura=witch]{--card-aura:#b38bdf}
[data-aura=underworld]{--card-aura:#e4a65b}
[data-aura=lava]{--card-aura:#f28454}
[data-aura=ice]{--card-aura:#d1f3ff}
[data-aura=ocean]{--card-aura:#65cbdc}
[data-aura=sand]{--card-aura:#dbb778}
[data-aura=city]{--card-aura:#89b9e1}
[data-aura=cloud]{--card-aura:#e5b4c0}
:is(.card,.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card){
 position:relative;isolation:isolate;--terminal-light:var(--card-aura,#e4bd70);
}
/* The overlay never receives pointer input or changes the underlying image. */
:is(.card,.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card)::before{
 content:'';position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;
 background:repeating-linear-gradient(0deg,transparent 0 3px,#bce8ff0a 3px 4px),linear-gradient(115deg,#bce8ff05,transparent 45%);
 border:0;opacity:1;
}
/* Fine corner marks evoke an old terminal without obscuring its labels. */
.grid .card{border-radius:5px;background-color:#121f2b}
.grid .card .card-art{border-bottom:1px solid color-mix(in srgb,var(--terminal-light) 24%,transparent)}
:is(.card,.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card):is(:focus-within,:active),
.atlas-region a[data-aura]:is(:focus-visible,:active){
 border-color:var(--terminal-light,var(--card-aura));
 box-shadow:0 0 0 1px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 55%,transparent),0 0 24px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 30%,transparent),0 0 52px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 12%,transparent);
}
@media(hover:hover) and (pointer:fine){
 .grid .card:hover,:is(.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card):hover,
 .atlas-region a[data-aura]:hover{
  border-color:var(--terminal-light,var(--card-aura));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 55%,transparent),0 0 24px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 30%,transparent),0 0 52px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 12%,transparent);
 }
}
@media(prefers-reduced-motion:no-preference){
 :is(.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card){transition:border-color 180ms ease,box-shadow 180ms ease}
}
@media print{
 :is(.card,.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card)::before{display:none}
 .grid .card,:is(.journey-card,.path-card,.mini-place,.place-feature,.archive-hero-visual,.atlas-region,.event-row,.relationship-item,.dialogue-card){box-shadow:none!important}
}
.atlas-region a[data-aura]{--terminal-light:var(--card-aura);border-radius:4px}
.dossier-page[data-culture=sith]{--card-aura:#ff5264}
.dossier-page[data-culture=jedi]{--card-aura:#bce8ff}
.dossier-page[data-culture=rebel]{--card-aura:#78d997}
.dossier-page[data-culture=mandalorian]{--card-aura:#aeb8c3}

/* Physical left is intentional in RTL: the insignia sits over the portrait. */
.card .card-link{position:relative}
.card .card-insignia{position:absolute;top:14px;left:14px;z-index:3;display:grid;place-items:center;width:52px;height:52px;border:1px solid color-mix(in srgb,var(--terminal-light,var(--card-aura)) 55%,transparent);border-radius:14px 4px 14px 4px;background:rgba(9,18,27,.92);box-shadow:0 4px 18px #0008,inset 0 0 14px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 12%,transparent);pointer-events:none}
.card .card-insignia img{width:32px;height:32px;object-fit:contain;image-rendering:auto;filter:none;transform:none;opacity:1}
@media(prefers-reduced-motion:no-preference){.card-insignia{transition:box-shadow 180ms ease,border-color 180ms ease}.card:is(:hover,:focus-within) .card-insignia{box-shadow:0 0 22px color-mix(in srgb,var(--terminal-light,var(--card-aura)) 40%,transparent)}}
@media(max-width:480px){.card .card-insignia{top:10px;left:10px;width:44px;height:44px}.card .card-insignia img{width:28px;height:28px}}
