/* theme-2 neon */
:root{--bg:#05070d;--text:#eaf2ff;--muted:rgba(234,242,255,.72);--border:rgba(106,227,255,.18);--panel:linear-gradient(180deg, rgba(106,227,255,.08), rgba(255,255,255,.03));--panel2:rgba(106,227,255,.06);--accent:#6ae3ff;--accentText:#031018;--shadow:0 20px 56px rgba(0,0,0,.62)}
html,body{background:radial-gradient(700px 420px at 15% 0%, rgba(106,227,255,.25), transparent 60%),radial-gradient(700px 420px at 85% 0%, rgba(244,114,182,.18), transparent 60%),var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,"Noto Sans",sans-serif}
.site-header{background:rgba(3,7,18,.55);border-bottom:1px solid rgba(106,227,255,.22)}
.card:hover{border-color:rgba(106,227,255,.60)}
.cta{box-shadow:0 0 0 1px rgba(106,227,255,.35), 0 18px 44px rgba(0,0,0,.45)}

*{box-sizing:border-box}
html,body{margin:0;padding:0;line-height:1.65}
a{color:inherit}
img{max-width:100%;display:block}
.container{width:min(1160px,92%);margin:0 auto}
.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border);backdrop-filter:blur(10px)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0}
.logo{text-decoration:none;font-weight:900;letter-spacing:.2px;white-space:nowrap}
.main-nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.main-nav a{text-decoration:none;padding:8px 10px;border-radius:12px;opacity:.92}
.main-nav a:hover{opacity:1;background:var(--panel2)}
.cta{text-decoration:none;font-weight:900;padding:10px 14px;border-radius:14px;background:var(--accent);color:var(--accentText);box-shadow:0 14px 30px rgba(0,0,0,.18);white-space:nowrap}

.hero{padding:40px 0 20px}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}
.badge{display:inline-flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--border);padding:8px 12px;border-radius:999px;color:var(--muted)}
.h1{font-size:36px;line-height:1.12;margin:0 0 10px}
.h2{font-size:20px;margin:0 0 10px}
.lead{margin:0;color:var(--muted)}
.small{color:var(--muted);font-size:13px}
.tag{display:inline-flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-top:8px}
.section{padding:18px 0}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:980px){.grid{grid-template-columns:1fr}.main-nav{justify-content:flex-start}}

.card{background:var(--panel2);border:1px solid var(--border);border-radius:16px;padding:14px;overflow:hidden;transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease}
.card:hover{transform:translateY(-2px);border-color:color-mix(in oklab, var(--accent) 35%, var(--border));box-shadow:0 18px 46px rgba(0,0,0,.18)}
.card img{width:100%;height:160px;object-fit:cover;border-radius:12px;border:1px solid var(--border);margin-bottom:10px}

.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:stretch}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr}}
.hero-card{padding:18px}
.hero-card img{width:100%;height:260px;object-fit:cover;border-radius:14px;border:1px solid var(--border)}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.pill{background:var(--panel2);border:1px solid var(--border);padding:10px 12px;border-radius:14px}

.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:14px}
.table th,.table td{border:1px solid var(--border);padding:10px 12px;text-align:left}
.table th{background:color-mix(in oklab, var(--panel2) 80%, transparent)}

.footer{padding:26px 0 92px;border-top:1px solid var(--border);margin-top:18px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr}}

.notice-bar{position:fixed;left:0;right:0;bottom:0;background:#7c2d12;border-top:1px solid rgba(255,255,255,.12);padding:22px 20px;display:flex;align-items:center;justify-content:center;gap:18px;z-index:80;box-shadow:0 -14px 32px rgba(0,0,0,.45)}
.notice-bar a{color:#fff7ed;font-size:18px;font-weight:700;text-decoration:none}
.notice-bar .notice-btn{background:#fde68a;color:#7c2d12;padding:14px 26px;border-radius:999px;font-weight:900;font-size:17px;box-shadow:0 10px 20px rgba(253,230,138,.45)}
.notice-overlay{position:fixed;inset:0;background:rgba(2,6,23,.65);backdrop-filter:blur(2px);z-index:85}
.notice-popup{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(680px,94%);background:#111827;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:36px;text-align:center;z-index:90;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.notice-popup p{margin:0 0 16px;color:#e2e8f0;font-size:18px;line-height:1.65}
.notice-popup .btns{display:flex;justify-content:center;gap:16px}
.notice-popup button{border:none;border-radius:10px;padding:14px 26px;cursor:pointer;font-weight:800;font-size:17px}
.notice-popup .primary{background:#facc15;color:#1f2937;box-shadow:0 10px 22px rgba(250,204,21,.45)}
.notice-popup .ghost{background:#374151;color:#f8fafc}


/* portal-components */
.portal .layout{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}
@media (max-width:980px){.portal .layout{grid-template-columns:1fr}.sidebar{position:static}}

.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:12px 0 10px}
.section-title{font-weight:900;font-size:16px;letter-spacing:.2px}
.section-actions{font-size:13px;color:var(--muted)}
.section-actions a{opacity:.9}
.section-actions a:hover{opacity:1}

.headline{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:stretch;background:var(--panel);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
@media (max-width:980px){.headline{grid-template-columns:1fr}}
.headline-media img{width:100%;height:320px;object-fit:cover}
@media (max-width:980px){.headline-media img{height:220px}}
.headline-body{padding:16px}
.kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--panel2)}
.headline-title{margin:10px 0 8px;font-size:22px;line-height:1.25}
.headline-title a{text-decoration:none}
.headline-desc{margin:0;color:var(--muted);font-size:14px}

.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900;padding:10px 14px;border-radius:14px;background:var(--accent);color:var(--accentText);border:1px solid color-mix(in oklab, var(--accent) 60%, transparent)}
.btn.secondary{background:transparent;color:var(--text);border:1px solid var(--border)}

.featured{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media (max-width:980px){.featured{grid-template-columns:1fr}}
.story.compact{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;background:var(--panel2);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.story.compact .story-media img{width:120px;height:90px;object-fit:cover}
.story.compact .story-body{padding:10px 10px 10px 0}
.story-title{font-weight:900;line-height:1.3}
.story-title a{text-decoration:none}
.story-desc{color:var(--muted);font-size:13px;margin-top:6px}

.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:980px){.story-grid{grid-template-columns:1fr}}
.story.grid{background:var(--panel2);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.story.grid .story-media img{width:100%;height:170px;object-fit:cover}
.story.grid .story-body{padding:12px}

.listbox{background:var(--panel2);border:1px solid var(--border);border-radius:16px;padding:12px}
.row{padding:10px 6px;border-top:1px dashed color-mix(in oklab, var(--border) 70%, transparent)}
.row:first-child{border-top:none}
.row a{text-decoration:none;font-weight:800}
.row .muted{color:var(--muted);font-size:12px}

.sidebar .widget{background:var(--panel2);border:1px solid var(--border);border-radius:16px;padding:12px;margin-bottom:12px}
.sidebar .widget-title{font-weight:900;margin-bottom:10px}
.sidebar .sticky{position:sticky;top:78px}
.hotlist{margin:0;padding-left:18px}
.hotlist li{margin:8px 0}
.hotlist a{text-decoration:none}
.hotlist a:hover{text-decoration:underline}

.quick{display:grid;grid-template-columns:1fr;gap:8px}
.q{display:block;text-decoration:none;padding:10px 12px;border-radius:14px;border:1px solid var(--border);background:var(--panel);font-weight:900}
.q:hover{border-color:color-mix(in oklab, var(--accent) 35%, var(--border))}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{text-decoration:none;font-size:12px;padding:8px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel)}
.chip:hover{border-color:color-mix(in oklab, var(--accent) 35%, var(--border))}

.mini{margin-top:10px}
.mini-row{padding:8px 0;border-top:1px dashed color-mix(in oklab, var(--border) 70%, transparent)}
.mini-row:first-child{border-top:none}

/* portal-tidy */
/* prevent overflow pushing columns */
.portal .layout > *{min-width:0}

/* consistent typography + clamping for neat grids */
.headline-title a,
.story-title a,
.hotlist a{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.headline-title a{-webkit-line-clamp:2}
.story-title a{-webkit-line-clamp:2}
.hotlist a{-webkit-line-clamp:2}

.headline-desc,
.story-desc{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.headline-desc{-webkit-line-clamp:3}
.story-desc{-webkit-line-clamp:2}

/* make cards feel aligned */
.story.grid{display:flex;flex-direction:column}
.story.grid .story-body{flex:1}
.story.grid .story-media img{aspect-ratio:16/9;height:auto;min-height:170px}

.story.compact{grid-template-columns:132px 1fr}
.story.compact .story-media img{width:132px;height:96px}
.story.compact .story-body{padding:10px 12px 10px 0}

/* sidebar density */
.hotlist{padding-left:18px}
.hotlist li{margin:10px 0}
.chips{max-height:220px;overflow:auto;padding-right:6px}

/* nicer listbox rows */
.listbox .row{line-height:1.55}
.listbox .row .muted{display:inline}

/* portal-bugfix-20260428 */
/* Fix image overflow/weird inline-anchor sizing */
.headline-media,
.story-media{display:block;line-height:0}
.headline-media img,
.story-media img{display:block;max-width:100%}

/* Avoid sticky overlap/partial-scroll feeling in sidebar */
.sidebar .sticky{position:static !important;top:auto !important}
/* Let page scroll; avoid inner scroll capturing wheel */
.chips{max-height:none !important;overflow:visible !important;padding-right:0 !important}

/* portal-media-contain */
/* Ensure media blocks clip images reliably across themes */
.headline-media{overflow:hidden}
.headline-media{height:320px}
@media (max-width:980px){.headline-media{height:220px}}
.headline-media img{width:100% !important;height:100% !important;object-fit:cover}

.story.grid .story-media{overflow:hidden;height:170px}
.story.grid .story-media img{width:100% !important;height:100% !important;object-fit:cover}

.story.compact .story-media{overflow:hidden}
.story.compact .story-media img{width:132px !important;height:96px !important;object-fit:cover}

/* portal-theme-variant */
/* theme-2: neon portal (denser + glow) */
.portal .layout{grid-template-columns:1fr 340px}
.story-grid{grid-template-columns:repeat(2,1fr)}
.featured{grid-template-columns:1fr}
.sidebar .widget{box-shadow:0 0 0 1px rgba(106,227,255,.18), 0 20px 50px rgba(0,0,0,.35)}
.story.grid{box-shadow:0 0 0 1px rgba(106,227,255,.14)}

/* portal-v2-components */
.portal.v2 .top-grid{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:stretch}
@media (max-width:980px){.portal.v2 .top-grid{grid-template-columns:1fr}}
.portal.v2 .top-left,.portal.v2 .top-right{min-width:0}
.portal.v2 .top-right{display:flex;flex-direction:column;gap:12px}

.portal.v2 .widget{background:var(--panel2);border:1px solid var(--border);border-radius:16px;padding:12px}
.portal.v2 .widget.wide{margin-top:14px}
.portal.v2 .widget-title{font-weight:900;margin-bottom:10px}

.portal.v2 .chips{display:flex;flex-wrap:wrap;gap:8px}

/* Theme-2 ticker */
.portal.v2 .split-heads{display:grid;grid-template-columns:1fr;gap:12px}
.portal.v2 .minihead{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:stretch;background:var(--panel2);border:1px solid var(--border);border-radius:16px;overflow:hidden}
.portal.v2 .minihead .story-media img{width:140px;height:110px;object-fit:cover}
.portal.v2 .minihead .story-body{padding:10px 12px 10px 0}
.portal.v2 .ticker{display:grid;gap:8px}
.portal.v2 .tick{padding:10px 10px;border:1px dashed color-mix(in oklab, var(--border) 70%, transparent);border-radius:12px}
.portal.v2 .tick a{text-decoration:none;font-weight:900;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:2}
.portal.v2 .mid-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
@media (max-width:980px){.portal.v2 .mid-grid{grid-template-columns:1fr}}

/* Theme-3 newspaper */
.portal.v2 .paper{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}
@media (max-width:980px){.portal.v2 .paper{grid-template-columns:1fr}}
.portal.v2 .textlist{margin:0;padding-left:18px}
.portal.v2 .textlist li{margin:10px 0;line-height:1.55}
.portal.v2 .textlist a{text-decoration:none;font-weight:900}
.portal.v2 .textlist .muted{color:var(--muted);font-size:12px}
.portal.v2 .mini-cta{margin-top:10px}

/* Theme-4 rail */
.portal.v2 .rail{display:flex;gap:12px;overflow:auto;padding-bottom:8px;scroll-snap-type:x mandatory}
.portal.v2 .rail-item{min-width:280px;scroll-snap-align:start}

/* Theme-5 dashboard */
.portal.v2 .dash{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.portal.v2 .dash-card{display:flex;flex-direction:column;gap:4px;text-decoration:none;padding:12px;border-radius:14px;border:1px solid var(--border);background:var(--panel)}
.portal.v2 .dash-card b{font-size:14px}
.portal.v2 .dash-card span{font-size:12px;color:var(--muted)}

/* Equal-height feel: headline and right widgets align */
.portal.v2 .headline{height:100%}
