/*
Theme Name: Palace Luna
Theme URI: https://example.com/
Author: Palace Luna
Description: Palace Luna専用のオリジナルWordPressテーマ。VTuberを中心としたキャラクターIPプロジェクトサイト。
Version: 1.0.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: palace-luna
*/
*{box-sizing:border-box}
:root{
  --ink:#17132a;
  --muted:#6f6a7f;
  --purple:#7c54d9;
  --purple2:#b06be9;
  --blue:#4f82e8;
  --pale:#f7f4ff;
  --pale-blue:#f1f7ff;
  --line:rgba(62,42,110,.12);
  --white:#fff;
  --max:1180px;
}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);background:#fff;
  font-family:"Noto Sans JP",sans-serif;
  line-height:1.9;overflow-x:hidden;
}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.site-header{
  position:fixed;z-index:1000;top:0;left:0;width:100%;
  height:82px;padding:0 42px;display:flex;align-items:center;
  justify-content:space-between;background:rgba(255,255,255,.86);
  backdrop-filter:blur(18px);border-bottom:1px solid rgba(40,30,70,.07);
}
.brand img{width:176px;height:auto}
.main-nav{display:flex;gap:30px;align-items:center}
.main-nav a{
  font-family:"Outfit",sans-serif;font-size:12px;letter-spacing:.14em;
  color:#4e485c;transition:.25s;
}
.main-nav a:hover{color:var(--purple)}
/* WordPress navigation normalization */
.main-nav .primary-menu {
  display:flex;
  align-items:center;
  gap:30px;
  list-style:none;
  margin:0;
  padding:0;
}
.main-nav .primary-menu li {
  display:block;
  margin:0;
  padding:0;
  list-style:none;
}
.main-nav .primary-menu li a {
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
}
.primary-menu-fallback {
  display:flex;
  align-items:center;
  gap:30px;
  margin:0;
  padding:0;
}

/* Keep the fixed header below the WordPress admin bar while logged in */
.admin-bar .site-header { top:32px; }
@media (max-width:782px) {
  .admin-bar .site-header { top:46px; }
}

.menu-toggle{display:none;background:none;border:0;padding:8px}
.hero{
  min-height:100svh;position:relative;overflow:hidden;
  display:flex;align-items:center;padding:130px max(7vw,40px) 80px;
  background:
    radial-gradient(circle at 72% 42%,rgba(177,135,255,.18),transparent 29%),
    radial-gradient(circle at 25% 75%,rgba(89,142,246,.11),transparent 27%),
    linear-gradient(135deg,#fff 0%,#fbf9ff 52%,#f5f9ff 100%);
}
.hero-copy{position:relative;z-index:5;max-width:670px}
.eyebrow,.section-label,.small-kicker{
  font-family:"Outfit",sans-serif;letter-spacing:.2em;font-size:11px;
  color:#796c96;font-weight:500;
}
.hero h1{
  margin:18px 0 20px;font-size:clamp(42px,6vw,78px);
  line-height:1.14;font-weight:500;letter-spacing:-.04em;
}
.hero h1 em{font-style:normal;color:var(--purple)}
.hero-lead{color:#625c6e;font-size:16px;line-height:2.05}
.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.btn{
  min-height:52px;padding:13px 24px;display:inline-flex;align-items:center;
  justify-content:center;gap:22px;border-radius:999px;font-size:13px;
  transition:.3s;border:1px solid transparent;
}
.btn-primary{background:linear-gradient(100deg,#8057db,#5f83dc);color:#fff;box-shadow:0 12px 30px rgba(102,80,190,.18)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(102,80,190,.25)}
.btn-ghost{background:rgba(255,255,255,.65);border-color:var(--line)}
.btn-ghost:hover{background:#fff}
.hero-characters{position:absolute;right:0;bottom:-5px;width:min(57vw,760px);height:86%;z-index:2}
.hero-aoi{position:absolute;right:30%;bottom:-1%;height:92%;width:auto;object-fit:contain;filter:drop-shadow(0 22px 32px rgba(100,75,160,.14))}
.hero-lavi{position:absolute;right:1%;bottom:-1%;height:83%;width:auto;object-fit:contain;filter:drop-shadow(0 22px 32px rgba(60,90,170,.16))}
.character-glow{position:absolute;width:70%;height:70%;right:9%;top:14%;border-radius:50%;background:radial-gradient(circle,rgba(161,119,245,.2),rgba(91,137,237,.07) 45%,transparent 70%);filter:blur(10px)}
.hero-orbit{position:absolute;border:1px solid rgba(126,87,215,.12);border-radius:50%;transform:rotate(-18deg);pointer-events:none}
.orbit-a{width:900px;height:360px;right:-220px;top:23%}
.orbit-b{width:720px;height:280px;right:-160px;top:33%;border-color:rgba(75,127,229,.11)}
.hero-stars{position:absolute;right:48%;top:22%;font-size:17px;letter-spacing:1.1em;color:#9c82dd}
.hero-bottom{position:absolute;z-index:6;left:max(7vw,40px);bottom:28px;display:flex;gap:14px;align-items:center;font:10px "Outfit",sans-serif;letter-spacing:.18em;color:#8b8495}
.scroll-line{width:52px;height:1px;background:#b8afc5}
.section{padding:125px max(7vw,40px)}
.manifesto{padding:135px max(7vw,40px);background:#fff}
.manifesto-grid{max-width:var(--max);margin:45px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:90px}
.manifesto h2,.section-heading h2,.contact h2{
  margin:0;font-size:clamp(34px,4.3vw,58px);line-height:1.35;font-weight:500;letter-spacing:-.04em;
}
.manifesto h2 span,.section-heading h2 span,.contact h2 span{color:var(--purple)}
.manifesto-text{max-width:540px}
.manifesto-text p{color:var(--muted);font-size:15px}
.manifesto-text .lead{font-size:19px;color:var(--ink);line-height:1.9}
.manifesto-text strong{font-weight:600;color:#51369b}
.vision{
  min-height:600px;display:grid;place-items:center;text-align:center;
  background:
   radial-gradient(circle at 50% 40%,rgba(150,110,240,.18),transparent 28%),
   linear-gradient(135deg,#f8f5ff,#f4f9ff);
  position:relative;overflow:hidden;
}
.vision:before,.vision:after{
  content:"";position:absolute;border:1px solid rgba(120,83,207,.12);border-radius:50%;
}
.vision:before{width:800px;height:300px;transform:rotate(-12deg)}
.vision:after{width:1050px;height:390px;transform:rotate(-12deg)}
.vision-inner{position:relative;z-index:2}
.vision h2{font-size:clamp(48px,7vw,86px);line-height:1.2;font-weight:400;margin:15px 0 28px;letter-spacing:-.05em}
.vision h2 span{color:var(--purple)}
.vision p{color:#6b6577}
.section-heading{max-width:var(--max);margin:0 auto 54px;display:flex;justify-content:space-between;gap:50px;align-items:end}
.section-heading>p{max-width:380px;color:var(--muted);font-size:14px}
.talent-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.talent-card{border-radius:26px;overflow:hidden;background:#faf9ff;border:1px solid rgba(70,50,120,.08)}
.lavi-card{background:#f7fbff}
.talent-image{height:620px;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.aoi-card .talent-image{background:linear-gradient(145deg,#eee8ff,#faf9ff)}
.lavi-card .talent-image{background:linear-gradient(145deg,#eaf3ff,#f8fbff)}
.talent-image img{height:100%;width:auto;max-width:100%;object-fit:contain;object-position:center bottom;transition:.6s}
.talent-card:hover .talent-image img{transform:translateY(-8px) scale(1.015)}
.talent-number{position:absolute;left:25px;top:23px;z-index:2;font:12px "Outfit",sans-serif;letter-spacing:.15em;color:#807493}
.talent-info{padding:30px 34px 34px}
.talent-role{margin:0;color:#8d829d;font:11px "Outfit",sans-serif;letter-spacing:.18em}
.talent-info h3{font-size:32px;font-weight:500;margin:3px 0 10px}
.talent-info p:not(.talent-role){color:var(--muted);font-size:14px}
.talent-links{display:flex;gap:24px;margin-top:20px}
.talent-links a,.text-link{font:12px "Outfit",sans-serif;letter-spacing:.08em;color:#6346aa;border-bottom:1px solid rgba(99,70,170,.3);padding-bottom:3px}
.fan-cta{text-align:center;padding:100px 20px 15px}
.fan-cta h3{font-size:clamp(27px,3.4vw,42px);line-height:1.55;font-weight:400}
.fan-cta h3 span{color:var(--purple)}
.project{background:#f9f7ff}
.project-layout{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:.72fr 1.28fr;gap:90px;align-items:start}
.project-intro{position:sticky;top:125px}
.project-intro h2{font-size:clamp(34px,4vw,52px);line-height:1.45;font-weight:400;letter-spacing:-.04em;margin:18px 0 24px}
.project-intro h2 span{color:var(--purple)}
.project-intro>p{max-width:330px;color:var(--muted);font-size:14px}

.project-list{max-width:var(--max);margin:auto;border-top:1px solid var(--line)}
.project-item{display:grid;grid-template-columns:70px 1fr 50px;gap:20px;padding:36px 0;border-bottom:1px solid var(--line);align-items:start;transition:.3s}
.project-item:hover{padding-left:14px;padding-right:14px;background:rgba(255,255,255,.6)}
.project-no{font:12px "Outfit",sans-serif;color:#9c91aa;padding-top:5px}
.project-en{font:11px "Outfit",sans-serif;letter-spacing:.18em;color:#7d6c98}
.project-item h3{margin:5px 0 8px;font-size:27px;font-weight:500}
.project-item p{margin:0;color:var(--muted);font-size:14px}
.project-arrow{font-size:22px;color:#7d60b7}
.journey{background:#fff}
.timeline{max-width:920px;margin:0 auto;border-left:1px solid #d9d0e6;padding-left:55px}
.timeline-item{position:relative;padding:0 0 55px;display:grid;grid-template-columns:120px 1fr;gap:35px}
.timeline-date{font:13px "Outfit",sans-serif;color:#877b96;letter-spacing:.1em;padding-top:4px}
.timeline-dot{position:absolute;left:-61px;top:5px;width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--purple)}
.timeline-content span{font:10px "Outfit",sans-serif;letter-spacing:.18em;color:#9b8caf}
.timeline-content h3{font-size:25px;font-weight:500;margin:5px 0}
.timeline-content p{font-size:14px;color:var(--muted);margin:0}
.timeline-future{margin-top:10px;padding:35px;border-radius:20px;background:linear-gradient(120deg,#f8f3ff,#f2f8ff);display:flex;justify-content:space-between;gap:30px;align-items:center}
.timeline-future span{font:11px "Outfit",sans-serif;letter-spacing:.16em;color:#8a7d9c}
.timeline-future strong{font-weight:500}
.philosophy{background:#151326;color:#fff}
.philosophy .section-label{color:#aaa1c4}
.philosophy-main{max-width:var(--max);margin:48px auto 0;display:grid;grid-template-columns:1.2fr .8fr;gap:100px;align-items:center}
blockquote{margin:0;font-size:clamp(34px,4.5vw,60px);line-height:1.5;font-weight:300;letter-spacing:-.04em}
blockquote span{color:#c4a4ff}
.philosophy-copy{color:#bdb7c9;font-size:14px}
.philosophy-copy p{margin:0 0 20px}
.closing{min-height:560px;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#7550c9,#4f7fd9);color:#fff}
.closing-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:rgba(255,255,255,.11);filter:blur(30px)}
.closing>*:not(.closing-glow){position:relative;z-index:2}
.closing h2{font-size:clamp(45px,6vw,78px);font-weight:300;letter-spacing:-.05em;margin:12px 0}
.closing p:not(.eyebrow){color:rgba(255,255,255,.82);line-height:2}
.btn-light{background:#fff;color:#5e46a2;margin-top:22px}
.contact{background:#fbfaff}
.contact-grid{max-width:var(--max);margin:48px auto 0;display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.contact> .section-label{max-width:var(--max);margin:auto}
.contact-grid>div:first-child p{color:var(--muted);max-width:440px;margin-top:28px}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.contact-card{padding:28px;border:1px solid var(--line);border-radius:20px;background:#fff;min-height:210px;display:flex;flex-direction:column;justify-content:space-between;transition:.3s}
.contact-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(80,60,130,.08)}
.contact-card span,.contact-card small{font:10px "Outfit",sans-serif;letter-spacing:.15em;color:#8a7c9d}
.contact-card strong{font-size:20px;font-weight:500;line-height:1.7}
.site-footer{padding:42px max(7vw,40px) 25px;background:#fff;border-top:1px solid var(--line)}
.footer-top{max-width:var(--max);margin:auto;display:flex;justify-content:space-between;align-items:center}
.footer-top img{width:170px}
.footer-top p{font:10px "Outfit",sans-serif;letter-spacing:.2em;color:#8c8395}
.footer-bottom{max-width:var(--max);margin:35px auto 0;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#98919f;font:10px "Outfit",sans-serif;letter-spacing:.08em}
.reveal{opacity:1;transform:none}
body.reveal-enabled .reveal{opacity:1;transform:none;transition:opacity .8s ease,transform .8s ease}
body.reveal-enabled .reveal.is-visible{opacity:1;transform:none}

@media(max-width:900px){
  .site-header{height:70px;padding:0 20px}
  .brand img{width:145px}
  .menu-toggle{display:block;position:relative;z-index:1002}
  .menu-toggle span{display:block;width:25px;height:1px;background:#342d42;margin:6px 0;transition:.3s}
  .menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle.is-open span:nth-child(2){opacity:0}
  .menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .main-nav{position:fixed;inset:70px 0 0;background:rgba(251,249,255,.98);backdrop-filter:blur(18px);display:flex;flex-direction:column;justify-content:center;gap:28px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:.3s}
  .main-nav.is-open{opacity:1;pointer-events:auto;transform:none}
  .main-nav .primary-menu{flex-direction:column;gap:28px;width:100%;align-items:center}.main-nav .primary-menu li{width:auto}.main-nav a{font-size:16px}.primary-menu-fallback{flex-direction:column;gap:28px;width:100%;align-items:center}
  .hero{min-height:900px;padding:115px 24px 50px;align-items:flex-start}
  .hero-copy{max-width:100%}
  .hero h1{font-size:46px}
  .hero-lead{font-size:14px}
  .hero-characters{width:100%;height:54%;right:0;bottom:0}
  .hero-aoi{height:88%;right:34%}
  .hero-lavi{height:80%;right:1%}
  .hero-bottom{left:24px}
  .orbit-a{width:650px;height:260px;right:-260px;top:48%}
  .orbit-b{width:560px;height:220px;right:-230px;top:54%}
  .manifesto-grid,.philosophy-main,.contact-grid{grid-template-columns:1fr;gap:45px}
  .section,.manifesto{padding:90px 24px}
  .section-heading{display:block;margin-bottom:38px}
  .section-heading>p{margin-top:22px}
  .talent-grid{grid-template-columns:1fr}
  .talent-image{height:560px}
  .project-item{grid-template-columns:45px 1fr 30px}
  .timeline{padding-left:35px}
  .timeline-item{grid-template-columns:1fr;gap:4px}
  .timeline-dot{left:-41px}
  .timeline-future{display:block}
  .contact-cards{grid-template-columns:1fr}
  .footer-top,.footer-bottom{display:block}
  .footer-top p{margin-top:20px}
  .footer-bottom a{display:block;margin-top:10px}
}
@media(max-width:560px){
  .pc{display:none}
  .hero{min-height:820px}
  .hero h1{font-size:40px}
  .hero-characters{height:48%;bottom:20px}
  .hero-aoi{height:84%;right:32%}
  .hero-lavi{height:76%;right:-1%}
  .hero-stars{right:12%;top:37%}
  .talent-image{height:500px}
  .talent-info{padding:24px}
  .project-item{padding:28px 0}
  .project-item h3{font-size:22px}
  .vision{min-height:520px;padding:70px 24px}
  .vision h2{font-size:48px}
  blockquote{font-size:34px}
}

.supporter-note{padding:0 max(7vw,40px) 110px;background:#fff}.supporter-note-inner{max-width:var(--max);margin:auto;padding:34px 38px;border:1px solid rgba(100,76,150,.13);border-radius:22px;background:linear-gradient(110deg,#fbf9ff,#f7fbff)}.supporter-note-inner>span{font:10px "Outfit",sans-serif;letter-spacing:.18em;color:#8a7d9b}.supporter-note-inner p{margin:12px 0 0;color:#716b7c;font-size:13px}.supporter-card:hover .supporter-image img{transform:translateY(-8px) scale(1.015)}.supporter-role{margin:0;color:#8d829d;font:11px "Outfit",sans-serif;letter-spacing:.16em}.supporter-links{display:flex;gap:24px;margin-top:20px}.supporter-links a{font:12px "Outfit",sans-serif;letter-spacing:.08em;color:#6346aa;border-bottom:1px solid rgba(99,70,170,.3);padding-bottom:3px}@media(max-width:900px){.supporter-note{padding:0 24px 80px}}

@media(max-width:900px){
  .project-layout{grid-template-columns:1fr;gap:42px}
  .project-intro{position:static}
}

/* v5 visual refinement: restore the rounded-card presentation from the initial design */
.section-heading.centered { text-align:center; }
.section-heading.centered > p { margin-left:auto; margin-right:auto; }
.talents { background: var(--bg); }
.talent-grid { max-width: 1180px; margin: 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.talent-card { border-radius:28px; overflow:hidden; background:#fff; border:1px solid rgba(88,76,137,.12); box-shadow:var(--shadow); }
.talent-image { height:620px; position:relative; display:flex; align-items:flex-end; justify-content:center; overflow:hidden; }
.aoi-card .talent-image { background:linear-gradient(145deg,#eee8ff 0%,#faf9ff 100%); }
.ol-card .talent-image { background:linear-gradient(145deg,#eaf3ff 0%,#f8fbff 100%); }
.talent-image img { position:relative; z-index:2; width:auto; height:100%; max-width:96%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 22px 24px rgba(54,47,90,.15)); transition:transform .6s ease; }
.talent-card:hover .talent-image img { transform:translateY(-8px) scale(1.015); }
.talent-orbit { position:absolute; z-index:1; width:74%; aspect-ratio:1; border:1px solid rgba(112,91,165,.12); border-radius:50%; transform:rotate(-15deg) scaleY(.48); bottom:12%; }
.talent-number { position:absolute; z-index:4; left:28px; top:24px; font:12px "Outfit",sans-serif; letter-spacing:.15em; color:#807493; }
.talent-info { padding:30px 34px 34px; }
.talent-label { margin:0; color:#8d829d; font:10px "Outfit",sans-serif; letter-spacing:.18em; }
.talent-info h3 { margin:5px 0 0; font-size:32px; font-weight:500; line-height:1.4; }
.talent-kana { margin:2px 0 12px; color:#aaa2b4; font:11px "Outfit",sans-serif; letter-spacing:.16em; }
.talent-description { color:var(--muted); font-size:14px; margin:0; }
.talent-links { display:flex; gap:24px; margin-top:20px; }
.talent-links a { font:12px "Outfit",sans-serif; letter-spacing:.08em; color:#6346aa; border-bottom:1px solid rgba(99,70,170,.3); padding-bottom:3px; }

.join { background:var(--bg-blue); padding-top:110px; padding-bottom:110px; }
.join-card { max-width:1180px; margin:0 auto; padding:60px 64px; border-radius:30px; background:linear-gradient(120deg,#f4efff 0%,#eef6ff 100%); border:1px solid rgba(88,76,137,.12); box-shadow:var(--shadow); display:flex; justify-content:space-between; align-items:flex-end; gap:50px; }
.join-card h2 { margin:0 0 22px; font-size:clamp(34px,4vw,58px); line-height:1.35; font-weight:500; letter-spacing:.02em; }
.join-card > div > p:last-child { color:#6f6b7c; font-size:14px; margin:0; }
.button { display:inline-flex; align-items:center; gap:24px; flex:0 0 auto; padding:15px 23px; border:1px solid rgba(85,69,142,.3); border-radius:999px; background:#fff; color:var(--purple-dark); font:11px "Outfit",sans-serif; font-weight:700; letter-spacing:.15em; }
.button span { font-size:18px; line-height:1; }

/* Mobile hero: characters first, copy begins around their lower body */
@media (max-width:900px) {
  .talent-grid { grid-template-columns:1fr; gap:22px; }
  .talent-image { height:560px; }
  .join-card { padding:42px 30px; display:block; }
  .join-card .button { margin-top:28px; }

  .hero {
    min-height: 900px;
    height: 100svh;
    max-height: none;
    display:block;
    padding:0;
    background:
      radial-gradient(circle at 72% 34%, rgba(221,214,250,.7), transparent 30%),
      linear-gradient(180deg,#fff 0%,#faf8ff 58%,#f1f7ff 100%);
  }
  .hero-talents { inset:70px 0 auto; height:63%; z-index:3; }
  .hero-talent { bottom:0; height:100%; width:62vw; }
  .hero-aoi { left:2%; }
  .hero-ol { right:-1%; width:57vw; }
  .hero-brand { top:88px; right:18px; width:105px; z-index:4; opacity:.72; }
  .hero-copy {
    position:absolute;
    z-index:8;
    left:0;
    bottom:0;
    width:100%;
    margin:0;
    padding:180px 24px 74px;
    background:linear-gradient(180deg,rgba(250,248,255,0) 0%,rgba(250,248,255,.80) 25%,rgba(250,248,255,.98) 55%,#f1f7ff 100%);
  }
  .hero-copy .eyebrow { margin-bottom:12px; }
  .hero h1 { font-size:40px; line-height:1.2; }
  .hero-lead { margin:22px 0 22px; font-size:13px; }
  .hero-actions { display:flex; flex-wrap:wrap; gap:10px; }
  .hero-actions .btn { padding:11px 15px; font-size:10px; }
  .hero-bottom { z-index:10; left:24px; bottom:18px; }
  .hero-stars { z-index:2; }
}

@media (max-width:560px) {
  .hero { min-height:860px; }
  .hero-talents { top:66px; height:62%; }
  .hero-talent { width:68vw; }
  .hero-aoi { left:-4%; }
  .hero-ol { width:61vw; right:-5%; }
  .hero-copy { padding:155px 20px 70px; }
  .hero h1 { font-size:35px; }
  .hero-lead { font-size:12px; line-height:1.8; }
  .talent-image { height:500px; }
  .talent-info { padding:24px; }
  .join-card { padding:34px 24px; border-radius:24px; }
}


/* Final navigation/mobile fixes */
@media (max-width:900px) {
  .main-nav .primary-menu {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
    width:100%;
    margin:0;
    padding:0;
  }
  .main-nav .primary-menu li {
    display:block;
    width:auto;
    margin:0;
    padding:0;
  }
  .main-nav .primary-menu li a {
    display:block;
    white-space:nowrap;
    font-size:16px;
  }
  .primary-menu-fallback {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
    width:100%;
    margin:0;
    padding:0;
  }
  .site-header {
    padding-left:20px;
    padding-right:20px;
  }
}
@media (max-width:560px) {
  .brand img { width:130px; }
}

/* WordPress-safe typography: never hide the site's core text */
.manifesto h2,.manifesto-text,.manifesto-text p,.vision h2,.vision p,.section-heading h2,.section-heading>p,.project-intro h2,.project-intro>p,.project-item h3,.project-item p,.timeline-content h3,.timeline-content p,.philosophy blockquote,.philosophy-copy,.join-card h2,.join-card p{visibility:visible;opacity:1;color:inherit;}
.manifesto h2,.section-heading h2,.project-intro h2,.vision h2{color:var(--ink);}
.manifesto-text p,.section-heading>p,.project-intro>p,.project-item p,.timeline-content p,.join-card p{color:var(--muted);}

/* v7: VISION / PHILOSOPHY must remain visible even when customizer values are empty. */
.vision{display:block !important; visibility:visible !important; opacity:1 !important;}
.vision-inner{display:block !important; visibility:visible !important; opacity:1 !important;}
.vision .eyebrow,.vision h2,.vision p{visibility:visible !important; opacity:1 !important;}
.philosophy{display:block !important; visibility:visible !important; opacity:1 !important;}
.philosophy-main,.philosophy .section-label,.philosophy blockquote,.philosophy-copy,.philosophy-copy p{visibility:visible !important; opacity:1 !important;}


/* v8: Contact is split into Creator / Collaboration cards */
.contact { background: var(--bg-blue); padding-top: 90px; padding-bottom: 110px; }
.contact > .section-label { max-width: var(--max); margin: 0 auto; }
.contact-grid { max-width: var(--max); margin: 48px auto 0; display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: stretch; }
.contact-intro h2 { margin: 12px 0 28px; font-size: clamp(42px, 5vw, 68px); line-height: 1.28; font-weight: 500; letter-spacing: -.04em; color: var(--ink); }
.contact-intro > p:last-child { color: var(--muted); max-width: 440px; line-height: 2; margin: 0; }
.contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-card { min-height: 360px; padding: 30px; border: 1px solid var(--line); border-radius: 22px; background: #fff; display: flex; flex-direction: column; justify-content: space-between; color: var(--ink); text-decoration: none; transition: transform .3s ease, box-shadow .3s ease; }
.contact-card:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(80,60,130,.10); }
.contact-card span, .contact-card small { font: 10px "Outfit", sans-serif; letter-spacing: .16em; color: #8a7c9d; }
.contact-card strong { display: block; font-size: clamp(18px, 1.7vw, 22px); font-weight: 500; line-height: 1.7; color: var(--ink); }
.contact-card small { color: #7356b2; }
@media (max-width: 900px) {
  .contact { padding-top: 75px; padding-bottom: 80px; }
  .contact-grid { grid-template-columns: 1fr; gap: 42px; margin-top: 38px; }
  .contact-intro h2 { font-size: 44px; }
  .contact-cards { grid-template-columns: 1fr; }
  .contact-card { min-height: 260px; }
}
@media (max-width: 560px) {
  .contact { padding-top: 65px; }
  .contact-intro h2 { font-size: 38px; }
  .contact-card { min-height: 230px; padding: 25px; border-radius: 20px; }
}
