/* ankokuin.or.jp — night indigo, the crest's blue→magenta, lantern gold */
:root {
  --bg: #070610; --bg2: #0e0b1c; --bg3: #171230;
  --ink: #f3eee6; --ink2: #b3aabd; --ink3: #756c82;
  --line: rgb(210 180 255 / .13); --line2: rgb(210 180 255 / .26);
  --accent: #e7c27d; --accent2: #ffeccb; --glow: rgb(214 80 255 / .4);
  --blue: #2a3bff; --magenta: #ff2bd6;
  --font-display: "Cormorant Garamond", "Shippori Mincho B1", serif;
  --font-body: "Zen Kaku Gothic New", "Inter", system-ui, sans-serif;
  --font-jp: "Shippori Mincho B1", "Zen Old Mincho", serif;
}
body { background:
  radial-gradient(1000px 700px at 110% 10%, rgb(255 43 214 / .06), transparent 60%),
  radial-gradient(900px 700px at -10% 60%, rgb(42 59 255 / .07), transparent 60%), var(--bg); }

.ak-crest { display: block; color: #fff; }
.ak-crest.is-small { width: 36px; height: 36px; color: #fff; filter: drop-shadow(0 0 8px rgb(214 80 255 / .6)); }
.ak-brand { font-family: var(--font-jp); letter-spacing: .4em; }
:lang(en) .ak-brand { font-family: var(--font-display); letter-spacing: .3em; }

/* hero */
.ak-hero { align-items: center; justify-items: center; text-align: center; }
.ak-hero .lx-hero-bg img { animation-duration: 40s; }
.ak-hero-in { padding: calc(var(--head-h) + 4vh) var(--gutter) 12vh; display: grid; justify-items: center; }
.ak-crest-wrap { width: clamp(120px, 24vmin, 260px); aspect-ratio: 1; position: relative; margin-bottom: clamp(18px, 3vh, 36px); animation: ak-rise 2.4s var(--ease) both .3s; }
.ak-crest-wrap::before { content: ""; position: absolute; inset: -18%; border-radius: 50%;
  background: conic-gradient(from 200deg, var(--blue), var(--magenta), var(--blue)); filter: blur(38px); opacity: .55; animation: ak-breathe 8s ease-in-out infinite; }
.ak-crest-wrap .ak-crest { position: relative; width: 100%; height: 100%; filter: drop-shadow(0 0 18px rgb(255 255 255 / .35)); }
@keyframes ak-rise { from { opacity: 0; transform: translateY(20px) scale(.94); filter: blur(10px); } }
@keyframes ak-breathe { 50% { opacity: .85; transform: scale(1.08) rotate(20deg); } }
.ak-sango { font: 500 var(--s1)/1 var(--font-jp); letter-spacing: 1em; margin: 0 -1em .6em 0; color: var(--accent2); animation: ak-rise 2s var(--ease) both .7s; }
:lang(en) .ak-sango { font-family: var(--font-display); letter-spacing: .5em; margin-right: -.5em; text-transform: uppercase; font-size: var(--s0); }
.ak-name { font: 600 clamp(3.4rem, 1.5rem + 9vw, 9rem)/1 var(--font-jp); letter-spacing: .28em; margin-right: -.28em;
  background: linear-gradient(180deg, #fff 35%, #e8d6ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 0 50px rgb(214 80 255 / .35); animation: ak-rise 2.2s var(--ease) both .9s; }
:lang(en) .ak-name { font: 300 clamp(3rem, 1rem + 8vw, 8rem)/1 var(--font-display); letter-spacing: .18em; margin-right: -.18em; text-transform: uppercase; }
.ak-with { margin: .8em 0 0; font: 300 var(--s1)/1.4 var(--font-display); font-style: italic; color: var(--ink2); animation: ak-rise 2s var(--ease) both 1.1s; }
.ak-with span { font-style: normal; font-family: var(--font-jp); color: var(--ink); letter-spacing: .15em; margin-left: .3em; }
.ak-tagline { margin-top: 1.6em; font-size: var(--s-1); letter-spacing: .5em; color: var(--ink2); animation: ak-rise 2s var(--ease) both 1.3s; }
:lang(en) .ak-tagline { letter-spacing: .3em; text-transform: uppercase; font-size: var(--s-2); }

/* sections */
.ak-split { display: grid; gap: clamp(32px, 5vw, 96px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); align-items: center; }
.ak-split .lx-h2 { margin-bottom: 1.4rem; }
:lang(ja) .ak-v { line-height: 1.6; }
.ak-stack { display: grid; gap: clamp(14px, 2vw, 24px); }
.ak-stack img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.lx-figure a[data-zoom] { display: block; cursor: zoom-in; }
.ak-gallery { padding-top: 0; }
.ak-band { height: clamp(260px, 52vw, 720px); overflow: hidden; margin-bottom: clamp(48px, 7vw, 110px); position: relative;
  -webkit-mask: linear-gradient(transparent, #000 18%, #000 70%, transparent); mask: linear-gradient(transparent, #000 18%, #000 70%, transparent); }
.ak-band .lx-pic, .ak-band img { width: 100%; height: 100%; object-fit: cover; }
.ak-cafe { display: grid; gap: clamp(12px, 2vw, 24px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-top: clamp(40px, 6vw, 88px); }
.ak-cafe img { aspect-ratio: 5 / 3; object-fit: cover; width: 100%; }
.ak-priest-pic img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ak-line { flex-direction: row; align-items: center; gap: 22px; }
.ak-line .lx-orb-disc .lx-ico { width: 40%; height: 40%; color: #06c755; }
.lx-orbs-head { text-align: center; margin-bottom: clamp(28px, 4vw, 56px); }
.lx-orbs-head .lx-eyebrow { justify-content: center; }
.lx-orbs-head .lx-eyebrow::after { content: ""; width: 2.2em; height: 1px; background: var(--accent); opacity: .8; }

/* three doors */
.ak-doors { display: grid; gap: clamp(12px, 1.6vw, 22px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.ak-door { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--radius); overflow: hidden; isolation: isolate; border: 1px solid var(--line); }
.ak-door .lx-pic, .ak-door img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ak-door img { transition: transform 1.4s var(--ease), filter .6s; filter: brightness(.72) saturate(.95); }
.ak-door::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 30%, rgb(7 6 16 / .92)); z-index: 0; }
.ak-door:hover img { transform: scale(1.05); filter: brightness(.9); }
.ak-door-in { position: absolute; inset: auto 0 0 0; z-index: 1; padding: clamp(20px, 2.4vw, 32px); display: grid; gap: .5rem; }
.ak-door-in .lx-eyebrow { margin: 0; color: var(--accent); }
.ak-door-t { font: 600 var(--s2)/1.3 var(--font-jp); letter-spacing: .08em; }
:lang(en) .ak-door-t { font: 300 var(--s2)/1.2 var(--font-display); letter-spacing: 0; }
.ak-door-p { font-size: var(--s-1); color: var(--ink2); }
.ak-sechead { display: flex; flex-wrap: wrap; gap: 20px; align-items: end; justify-content: space-between; margin-bottom: clamp(28px, 4vw, 48px); }

/* lineage */
.ak-lineage { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ak-lineage li { background: var(--bg); padding: clamp(22px, 2.6vw, 36px); display: grid; gap: 14px; align-content: start; }
.ak-lineage li:last-child { background: radial-gradient(120% 90% at 20% 0%, rgb(214 80 255 / .12), transparent 70%), var(--bg); }
.ak-gen { font: 300 var(--s5)/.9 var(--font-display); background: linear-gradient(180deg, #fff, #b7a3ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ak-gen small { font-size: .3em; margin-left: .2em; color: var(--ink2); -webkit-text-fill-color: var(--ink2); font-family: var(--font-jp); }
.ak-lineage b { display: block; font: 500 var(--s1)/1.4 var(--font-jp); letter-spacing: .06em; margin-bottom: .4em; }
.ak-lineage small { display: block; color: var(--ink2); font-size: var(--s-1); }
.ak-trio { display: grid; gap: clamp(12px, 2vw, 24px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.ak-trio img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }

/* engi (origins) — vertical Japanese text */
.ak-enyu { writing-mode: vertical-rl; text-orientation: upright; font: 400 var(--s0)/2.1 var(--font-jp); letter-spacing: .12em; max-height: min(78vh, 640px);
  overflow-x: auto; padding: clamp(22px, 3vw, 40px); border: 1px solid var(--line2); border-radius: var(--radius);
  background: linear-gradient(90deg, rgb(255 236 203 / .04), transparent), repeating-linear-gradient(90deg, transparent 0 2.05em, rgb(255 255 255 / .025) 2.05em 2.1em); }
.ak-enyu p { margin: 0 0 0 1.2em; text-indent: 1em; }
.ak-enyu .ak-enyu-sign { text-align: end; color: var(--accent2); text-indent: 0; margin-left: 0; }
@media (max-width: 640px) { .ak-enyu { writing-mode: horizontal-tb; max-height: none; } .ak-enyu p { margin: 0 0 1em; } }

.ak-info .v { font-family: var(--font-body) !important; font-size: var(--s0) !important; }
.ak-info .v a { border-bottom: 1px solid var(--line2); }
.ak-empty { padding: clamp(22px, 3vw, 36px); border: 1px dashed var(--line2); border-radius: var(--radius); color: var(--ink2); }
.ak-contact-quick { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.ak-contact-quick .lx-orb-disc .lx-ico { width: 40%; height: 40%; }
.ak-contact-quick a[href^="tel"] .lx-ico { color: var(--accent); }
.ak-intro .lx-figure img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
