:root{
  /* MIKAGE CANON PALETTE: void black + graphite + porcelain white + electric violet */
  --bg:#000000;
  --bg-soft:#050507;
  --panel:#08080d;
  --panel-2:#0c0c14;
  --text:#f8fafc;
  --muted:#9ca3af;
  --line:rgba(255,255,255,.095);
  --line-strong:rgba(255,255,255,.18);
  --accent:#8f00ff;
  --accent-bright:#b566ff;
  --accent-soft:rgba(143,0,255,.13);
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  line-height:1.6;
  background:
    radial-gradient(circle at 50% -12%, rgba(143,0,255,.16), transparent 30%),
    radial-gradient(circle at 85% 8%, rgba(143,0,255,.055), transparent 24%),
    linear-gradient(180deg, #000000 0%, #050507 42%, #000000 100%);
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(calc(100% - 32px), var(--max)); margin:0 auto}
.header{
  position:sticky; top:0; z-index:20;
  background:rgba(0,0,0,.86);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.brand{font-weight:800; letter-spacing:.12em; font-size:14px; white-space:nowrap}
.menu{display:flex; gap:18px; color:var(--muted); font-size:13px}
.menu a:hover{color:var(--text)}
.hero{padding:84px 0 64px; background:linear-gradient(180deg, rgba(255,255,255,.012), rgba(255,255,255,0))}
.hero-grid{display:grid; grid-template-columns:1.06fr .94fr; gap:44px; align-items:center}
.kicker{color:var(--accent-bright); text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:700}
h1{font-size:clamp(44px, 6vw, 68px); line-height:1.02; margin:14px 0 14px; letter-spacing:-.04em}
.motto{margin:0 0 10px; font-size:clamp(24px, 3vw, 38px); line-height:1.08; font-weight:800}
.lead{margin:0 0 10px; color:#d5d9e3; font-size:clamp(17px, 2vw, 21px); max-width:620px}
.small-lead{margin:0; color:var(--accent-bright); font-size:15px; max-width:620px}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:24px}
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:168px; padding:13px 18px; border-radius:12px;
  border:1px solid var(--line-strong); font-weight:600;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn.primary{
  color:#fff;
  border-color:rgba(181,102,255,.48);
  background:linear-gradient(180deg, #8f00ff 0%, #5e00b8 100%);
  box-shadow:0 0 0 1px rgba(143,0,255,.22), 0 14px 34px rgba(143,0,255,.20);
}
.btn.secondary{background:rgba(255,255,255,.018)}
.hero-card, .card, .audio-ip-card, .cta{
  background:linear-gradient(180deg, rgba(255,255,255,.032), rgba(255,255,255,.010));
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 18px 56px rgba(0,0,0,.45);
}
.hero-cover-card{
  padding:0; overflow:hidden; max-width:420px; justify-self:end;
  border-color:rgba(143,0,255,.22);
}
.hero-cover-card:hover{border-color:rgba(143,0,255,.36); box-shadow:0 20px 54px rgba(0,0,0,.28)}
.hero-cover-card img{width:100%; aspect-ratio:1/1; object-fit:cover}
.hero-cover-copy{padding:18px 20px 22px}
.hero-cover-copy h2{margin:8px 0 4px; font-size:clamp(22px, 2.1vw, 30px); line-height:1.08}
.hero-cover-copy p{margin:0; color:var(--accent-bright); font-weight:700}
.section{padding:58px 0}
.section-emphasis{
  background:
    linear-gradient(180deg, rgba(143,0,255,.045), rgba(0,0,0,.96)),
    #020204;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.section-head{margin-bottom:22px}
.section-head h2{margin:0 0 8px; font-size:32px; letter-spacing:-.03em}
.section-head p{margin:0; color:var(--muted); max-width:760px}
.section-head-inline{margin:0}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.card{padding:22px}
.card h3{margin:0 0 10px; font-size:20px}
.card p, .card li{color:#d5d9e3}
.list{margin:0; padding-left:18px}
.sep{border:none; border-top:1px solid var(--line); margin:14px 0 0}
.doctrine-card h3{font-size:clamp(24px, 2.4vw, 34px); line-height:1.1; margin-bottom:8px}
.doctrine-list{display:grid; gap:16px; margin-top:18px}
.doctrine-list li{color:#f8fafc}
.audio-ip-grid{display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; align-items:stretch}
.audio-ip-card{display:block; overflow:hidden; padding:0; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease}
.audio-ip-card:hover{transform:translateY(-2px); border-color:rgba(143,0,255,.32); box-shadow:0 0 0 1px rgba(143,0,255,.08), 0 20px 54px rgba(0,0,0,.30)}
.audio-ip-card img{width:100%; aspect-ratio:1/1; object-fit:cover; border-bottom:1px solid var(--line)}
.audio-ip-body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  line-height:1.6;
  background:
    radial-gradient(circle at 50% -12%, rgba(143,0,255,.16), transparent 30%),
    radial-gradient(circle at 85% 8%, rgba(143,0,255,.055), transparent 24%),
    linear-gradient(180deg, #000000 0%, #050507 42%, #000000 100%);
}
@media (max-width:920px){
  .menu{display:none}
  .hero{padding-top:56px}
  .hero-grid,.grid-2,.grid-3,.status,.cta{grid-template-columns:1fr}
  .cta{display:grid}
  .hero-cover-card{max-width:none; justify-self:stretch}
}
@media (max-width:760px){
  .audio-ip-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (max-width:520px){
  .audio-ip-grid{grid-template-columns:1fr}
  .btn{min-width:100%}
  .hero-actions,.cta-actions{display:grid}
}


/* Locked transmission release cards */
.release-map-grid .locked-release {
  cursor: default;
  position: relative;
}

.locked-cover {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background:#020205;
}

.locked-cover img {
  filter: blur(5px) brightness(.36) saturate(.72);
  transform: scale(1.045);
  opacity: .72;
  border-bottom: 0;
}

.locked-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 42%, rgba(143,0,255,.20), transparent 36%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.60));
  pointer-events: none;
}

.locked-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  padding: 5px 8px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(4,6,11,.74);
  color: #f8fafc;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}

.locked-release h3 {
  color: #e7e9ee;
}

.locked-release .audio-ip-body p {
  color: #9ca3af;
}

.locked-release:hover {
  transform: none;
  border-color: var(--line);
  box-shadow: 0 18px 48px rgba(0,0,0,.22);
}


/* Refocus update: listener-first release hub */
.compact-actions{
  margin-top:22px;
}

.archive-group{
  margin-top:28px;
}

.archive-group:first-of-type{
  margin-top:0;
}

.archive-group-next{
  margin-top:46px;
}

.archive-group-head{
  margin:0 0 18px;
}

.archive-group-head h3{
  margin:0 0 6px;
  font-size:22px;
  letter-spacing:-.02em;
}

.archive-group-head p{
  margin:0;
  color:var(--muted);
  max-width:760px;
}

.compact-archive-grid{
  grid-template-columns:repeat(5, minmax(0, 1fr));
}

.btn.disabled{
  opacity:.55;
  cursor:not-allowed;
  transform:none;
}

.btn.disabled:hover{
  transform:none;
  border-color:var(--line-strong);
}

.footer-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:24px;
  align-items:start;
}

.footer-business{
  padding:18px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.025);
}

.footer-btn{
  margin-top:10px;
  min-width:0;
}

@media (max-width:1120px){
  .compact-archive-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}
}

@media (max-width:920px){
  .footer-grid{grid-template-columns:1fr}
}

@media (max-width:760px){
  .compact-archive-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}
}

@media (max-width:520px){
  .compact-archive-grid{grid-template-columns:1fr}
}


/* MIKAGE CANON COLOR FIX — 2026-05-10
   Purpose: remove the cold blue/gray web-app feel; keep void black, graphite panels, porcelain text, and controlled electric violet. */
.header{box-shadow:0 1px 0 rgba(143,0,255,.10)}
.hero{background:linear-gradient(180deg, rgba(143,0,255,.050), rgba(0,0,0,0) 70%)}
.card,.audio-ip-card,.hero-card,.cta{
  background:
    linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,.008)),
    rgba(3,3,7,.86);
  border-color:rgba(255,255,255,.105);
}
.hero-cover-card,.featured-release{
  border-color:rgba(143,0,255,.38);
  box-shadow:0 0 0 1px rgba(143,0,255,.10), 0 24px 68px rgba(0,0,0,.50);
}
.kicker,.small-lead,.hero-cover-copy p,.audio-ip-body p{color:var(--accent-bright)}
.section-head p,.card p,.card li,.footer{color:#a8adb8}
.btn.primary{color:#fff;text-shadow:0 0 12px rgba(255,255,255,.18)}
.btn.secondary{border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.020)}
.locked-cover::after{
  background:
    radial-gradient(circle at 50% 42%, rgba(143,0,255,.18), transparent 34%),
    linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,.74));
}
.locked-cover img{filter:blur(5px) brightness(.28) saturate(.70); opacity:.68}
.locked-badge{background:rgba(0,0,0,.70); border-color:rgba(181,102,255,.28)}
.footer-business{background:rgba(255,255,255,.015); border-color:rgba(255,255,255,.095)}

/* DRAFT UPDATE — archive card body stabilization for 15 locked transmissions */
.audio-ip-body{
  padding:16px 16px 18px;
  background:rgba(0,0,0,.18);
}
.audio-ip-body h3{
  margin:8px 0 6px;
  font-size:16px;
  line-height:1.18;
  letter-spacing:-.01em;
}
.audio-ip-body p{
  margin:0;
  font-size:13px;
}


/* DRAFT UPDATE — EN / 日本語 / VI language switcher */
.language-switcher{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:18px;
  padding:4px;
  border:1px solid rgba(181,102,255,.24);
  border-radius:999px;
  background:rgba(0,0,0,.34);
  box-shadow:0 0 0 1px rgba(143,0,255,.06), 0 10px 28px rgba(0,0,0,.24);
}

.lang-btn{
  appearance:none;
  border:1px solid transparent;
  border-radius:999px;
  padding:7px 10px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1;
  cursor:pointer;
  transition:background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}

.lang-btn:hover{
  color:var(--text);
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.035);
}

.lang-btn.active{
  color:#fff;
  border-color:rgba(181,102,255,.46);
  background:linear-gradient(180deg, rgba(143,0,255,.72), rgba(94,0,184,.74));
  box-shadow:0 0 18px rgba(143,0,255,.22);
}

@media (max-width:920px){
  .nav{
    gap:12px;
  }
  .language-switcher{
    margin-left:auto;
  }
}

@media (max-width:520px){
  .nav{
    flex-wrap:wrap;
  }
  .language-switcher{
    width:100%;
    justify-content:center;
    margin-left:0;
  }
}


/* MIKAGE LANGUAGE UPDATE — add Korean + Chinese buttons */
.language-switcher{
  flex-wrap:wrap;
  justify-content:flex-end;
  max-width:420px;
}
@media (max-width:760px){
  .language-switcher{
    max-width:100%;
  }
  .lang-btn{
    padding:7px 9px;
  }
}


/* MIKAGE SITE UPDATE V1.5 — May Arc website card data */
.release-date{
  margin:4px 0 0;
  color:#cbd5e1;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.release-signal{
  margin:7px 0 10px;
  color:#d5d9e3;
  font-size:13px;
  line-height:1.42;
}
.release-cta{
  display:inline-flex;
  align-items:center;
  width:max-content;
  margin-top:2px!important;
  padding:5px 9px;
  border:1px solid rgba(181,102,255,.34);
  border-radius:999px;
  background:rgba(143,0,255,.12);
  color:var(--accent-bright)!important;
  font-size:11px!important;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.featured-release .release-cta{
  border-color:rgba(181,102,255,.52);
  background:linear-gradient(180deg, rgba(143,0,255,.22), rgba(94,0,184,.18));
}


/* MIKAGE SITE UPDATE V1.6 — listener-first identity/support statement */
.identity-signal{
  padding-top:34px;
  padding-bottom:34px;
  background:
    radial-gradient(circle at 18% 20%, rgba(143,0,255,.11), transparent 30%),
    linear-gradient(180deg, rgba(0,0,0,.94), rgba(5,5,7,.98));
  border-top:1px solid rgba(143,0,255,.08);
  border-bottom:1px solid rgba(255,255,255,.055);
}

.identity-card{
  position:relative;
  overflow:hidden;
  padding:34px;
  border-color:rgba(143,0,255,.24);
}

.identity-card::before{
  content:"";
  position:absolute;
  inset:-1px;
  background:
    linear-gradient(90deg, transparent, rgba(143,0,255,.16), transparent),
    radial-gradient(circle at 72% 28%, rgba(181,102,255,.12), transparent 28%);
  opacity:.72;
  pointer-events:none;
}

.identity-copy{
  position:relative;
  max-width:840px;
}

.identity-copy h2{
  margin:10px 0 12px;
  font-size:clamp(28px, 4vw, 46px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.identity-lead{
  max-width:780px;
  margin:0;
  color:#d8dbe4;
  font-size:clamp(16px, 1.55vw, 19px);
  line-height:1.72;
}

.identity-lines{
  display:grid;
  gap:2px;
  margin:22px 0 18px;
  padding:18px 0 18px 18px;
  border-left:1px solid rgba(181,102,255,.44);
}

.identity-lines p{
  margin:0;
  color:#f8fafc;
  font-size:clamp(17px, 1.65vw, 22px);
  font-weight:750;
  letter-spacing:-.015em;
}

.identity-close{
  margin:0;
  color:var(--accent-bright);
  font-weight:800;
}

.identity-signature{
  margin:8px 0 0;
  color:#d5d9e3;
  font-weight:700;
  letter-spacing:.06em;
}

@media (max-width:520px){
  .identity-card{
    padding:24px;
  }
  .identity-lines{
    padding-left:14px;
  }
}
