/* 讃美オイスタークレール — SANBI OYSTER CLAIRE
   Shared stylesheet for the Japanese (/) and English (/en/) editions.
   Lacquer black, warm gold, cream. Photographs full-bleed. The tables sit on
   cream paper inserts, like cards laid on a dark table. */

:root{
  --bg:#070B14;
  --bg-2:#0B1120;
  --bg-3:#111A2E;
  --text:#EFE9DA;
  --text-soft:#B9BECD;
  --text-dim:#7F879E;
  --gold:#C9A24B;
  --gold-2:#E2C57F;
  --gold-3:#F3E3B4;
  --gold-dim:rgba(201,162,75,.36);
  --gold-faint:rgba(201,162,75,.16);
  --line:rgba(239,233,218,.12);
  --paper:#F6F1E6;
  --paper-2:#EDE6D6;
  --ink:#121B33;
  --ink-soft:#4A5370;
  --ink-dim:#8B91A6;
  --line-l:#E1D9C6;
  --maxw:1160px;
  --serif-ja:'Shippori Mincho','Hiragino Mincho ProN','Yu Mincho',YuMincho,serif;
  --serif-en:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Hiragino Sans','Noto Sans JP','Helvetica Neue',Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-size:16px;line-height:1.95;
  -webkit-font-smoothing:antialiased;
}
/* a faint grain over everything, so the black reads as lacquer rather than a screen */
body::before{
  content:"";position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.07;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 .95  0 0 0 0 .85  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.lang-ja body{font-family:var(--serif-ja)}
.lang-ja .sans,.lang-ja table,.lang-ja form,.lang-ja .nav,.lang-ja .langsw,.lang-ja .kicker,.lang-ja .fact span,.lang-ja .foot,.lang-ja .note,.lang-ja .buy,.lang-ja .mailto{font-family:var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}

/* ---------- type ---------- */
.lang-ja h1,.lang-ja h2,.lang-ja h3,.lang-ja .face{font-family:var(--serif-ja);font-weight:500}
.lang-en h1,.lang-en h2,.lang-en h3,.lang-en .face{font-family:var(--serif-en);font-weight:400}
h1,h2,h3{line-height:1.25;margin:0;letter-spacing:.01em;color:#F6F1E4}
.lang-en h1,.lang-en h2{line-height:1.06}

.kicker{
  font-family:var(--serif-en);font-size:13px;letter-spacing:.36em;text-transform:uppercase;
  color:var(--gold-2);margin:0 0 26px;display:flex;align-items:center;gap:14px;font-weight:500;
}
.lang-ja .kicker{font-family:var(--sans);font-size:11px}
.kicker::before{content:"";width:30px;height:1px;background:var(--gold-dim)}
.kicker.center{justify-content:center}
.kicker.center::after{content:"";width:30px;height:1px;background:var(--gold-dim)}
.epi{
  font-family:var(--serif-en);font-style:italic;font-size:22px;color:var(--gold-2);
  letter-spacing:.02em;margin:0 0 24px;
}
.lang-ja .epi{font-family:var(--serif-ja);font-style:normal;font-size:14px;letter-spacing:.32em}
.rule{width:48px;height:1px;background:var(--gold);margin:32px 0;position:relative}
.rule::after{content:"";position:absolute;left:0;top:5px;width:20px;height:1px;background:var(--gold-dim)}
.lede{font-size:16.5px;line-height:2.1;color:var(--text-soft);max-width:44ch;margin:0}
.lang-ja .lede{font-size:15.5px;letter-spacing:.03em}
.note{font-size:12.5px;line-height:1.9;color:var(--text-dim);margin:16px 0 0}
.note strong{color:var(--text-soft);font-weight:600}
.note a{color:var(--gold-2)}

/* metallic gold, with a slow sweep of light */
.gold-text{
  background:linear-gradient(100deg,#9A7628 0%,#D9B96A 24%,#F7EBC4 44%,#D4AF55 58%,#9A7628 78%,#D9B96A 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:sheen 9s ease-in-out infinite;
}
@keyframes sheen{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* ---------- cream paper inserts (the tables) ---------- */
.light{
  background:var(--paper);color:var(--ink);position:relative;
  box-shadow:inset 0 0 0 1px var(--gold-dim), inset 0 0 0 6px var(--paper), inset 0 0 0 7px var(--gold-faint);
}
.light h1,.light h2,.light h3{color:var(--ink)}
.light .lede{color:var(--ink-soft)}
.light .note{color:var(--ink-dim)}
.light .note strong{color:var(--ink)}
.light .note a{color:var(--ink)}
.light .kicker{color:#A07E33}
.light .kicker::before,.light .kicker.center::after{background:rgba(160,126,51,.4)}

/* ---------- decorative arcs (the motif on the pack) ---------- */
.arcs{position:absolute;color:var(--gold);opacity:.22;pointer-events:none}
.hero .arcs{right:-6%;bottom:-18%;width:min(64vw,760px);height:auto}
.interlude .arcs{left:-10%;top:-30%;width:min(50vw,560px);height:auto;opacity:.14;transform:rotate(180deg)}

/* ---------- masthead ---------- */
.mast{background:var(--bg);border-top:2px solid var(--gold);position:relative;z-index:3}
.mast__in{
  max-width:var(--maxw);margin:0 auto;padding:30px 32px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;align-items:center;text-decoration:none}
.brand img{height:44px;width:auto}
.brand small{display:block;font-family:var(--serif-en);font-size:12.5px;letter-spacing:.38em;color:var(--text-dim);margin-left:22px;padding-left:22px;border-left:1px solid var(--line);text-transform:uppercase}
.langsw{display:flex;font-family:var(--sans);font-size:11px;letter-spacing:.18em}
.langsw a,.langsw span{padding:7px 14px;border:1px solid var(--line);text-decoration:none;color:var(--text-soft);margin-left:-1px}
.langsw .on{color:var(--gold-2);border-color:var(--gold-dim);position:relative;z-index:1}

.nav{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg)}
.nav__in{max-width:var(--maxw);margin:0 auto;padding:0 32px;display:flex;gap:40px;justify-content:center;flex-wrap:wrap}
.nav a{
  font-family:var(--sans);font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--text-dim);text-decoration:none;padding:17px 0;display:block;border-bottom:1px solid transparent;
  transition:color .3s;
}
.nav a:hover{color:var(--gold-2);border-bottom-color:var(--gold)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--bg)}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(42% 60% at 74% 38%, rgba(226,197,127,.30), rgba(226,197,127,0) 70%),
    radial-gradient(60% 50% at 74% 92%, rgba(201,162,75,.16), rgba(201,162,75,0) 70%),
    radial-gradient(50% 50% at 10% 0%, rgba(17,26,46,1), rgba(7,11,20,0) 70%),
    linear-gradient(180deg,#0A1020 0%,var(--bg) 100%);
}
.hero::after{
  content:"";position:absolute;inset:26px;border:1px solid var(--gold-dim);pointer-events:none;
  box-shadow:inset 0 0 0 5px var(--bg), inset 0 0 0 6px var(--gold-faint);
}
.vkick{
  position:absolute;left:60px;top:50%;transform:translateY(-50%);margin:0;
  writing-mode:vertical-rl;text-orientation:mixed;
  font-family:var(--sans);font-size:10.5px;letter-spacing:.44em;color:var(--text-dim);text-transform:uppercase;
}
.lang-ja .vkick{font-family:var(--serif-ja);font-size:12px;letter-spacing:.36em;text-orientation:upright}
.hero__in{
  max-width:var(--maxw);margin:0 auto;padding:124px 32px 116px 104px;
  display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;min-height:92vh;
}
.hero h1{font-size:clamp(38px,4.6vw,64px);margin:0 0 6px}
.lang-en .hero h1{font-size:clamp(54px,7.2vw,100px);letter-spacing:-.01em}
.hero .lede{margin-top:6px}
.hero__copy > *{opacity:0;transform:translateY(18px);animation:rise 1.3s cubic-bezier(.2,.6,.2,1) forwards}
.hero__copy > :nth-child(1){animation-delay:.15s}
.hero__copy > :nth-child(2){animation-delay:.3s}
.hero__copy > :nth-child(3){animation-delay:.5s}
.hero__copy > :nth-child(4){animation-delay:.65s}
.hero__copy > :nth-child(5){animation-delay:.8s}
.hero__copy > :nth-child(6){animation-delay:.95s}
@keyframes rise{to{opacity:1;transform:none}}
.hero__shot{position:relative;display:flex;flex-direction:column;align-items:center;opacity:0;animation:rise 1.8s cubic-bezier(.2,.6,.2,1) .35s forwards}
.hero__shot::before{
  content:"";position:absolute;left:50%;top:44%;width:92%;aspect-ratio:1;transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(226,197,127,.30) 0%, rgba(201,162,75,.10) 40%, transparent 68%);
  filter:blur(22px);pointer-events:none;
}
.hero__shot picture{position:relative;display:block}
.hero__shot img{
  position:relative;max-height:600px;width:auto;
  filter:drop-shadow(0 34px 44px rgba(0,0,0,.6)) drop-shadow(0 0 1px rgba(226,197,127,.35));
  animation:float 10s ease-in-out infinite;
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.hero__shot::after{
  content:"";position:absolute;left:50%;bottom:-6px;width:70%;height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--gold-dim),transparent);
}

.buy{
  display:inline-block;margin-top:38px;font-family:var(--sans);font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--gold-2);text-decoration:none;border:1px solid var(--gold-dim);padding:15px 30px;transition:all .3s;
}
.buy:hover{background:var(--gold-2);color:var(--bg);border-color:var(--gold-2)}

/* ---------- facts strip ---------- */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.facts__in{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
.fact{padding:44px 14px;text-align:center;border-right:1px solid var(--line)}
.fact:last-child{border-right:0}
.fact b{display:inline-block;font-family:var(--serif-en);font-size:44px;font-weight:400;letter-spacing:.02em;line-height:1.1}
.lang-ja .fact b{font-family:var(--serif-ja);font-size:32px;font-weight:500}
.fact span{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.32em;color:var(--text-dim);margin-top:14px;text-transform:uppercase}

/* ---------- interlude ---------- */
.interlude{padding:160px 0;text-align:center;background:var(--bg);position:relative;overflow:hidden}
.interlude::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(50% 60% at 50% 50%, rgba(226,197,127,.12), transparent 70%);
}
.interlude::after{
  content:"";position:absolute;left:50%;bottom:0;width:1px;height:80px;background:linear-gradient(180deg,transparent,var(--gold-dim));
}
.interlude p{
  position:relative;margin:0 auto;max-width:22ch;font-size:clamp(34px,5.2vw,68px);line-height:1.26;color:#F6F1E4;
}
.lang-en .interlude p{font-family:var(--serif-en);font-style:italic;font-weight:400}
.lang-ja .interlude p{font-family:var(--serif-ja);font-weight:500;letter-spacing:.1em}
.interlude small{position:relative;display:block;margin-top:28px;font-family:var(--sans);font-size:10.5px;letter-spacing:.38em;color:var(--gold-2);text-transform:uppercase}

/* ---------- sections ---------- */
section{padding:140px 0;position:relative}
section.tight{padding:112px 0}
.sec-head{max-width:60ch;margin:0 0 60px}
.sec-head h2{font-size:clamp(30px,4vw,50px)}
.lang-en .sec-head h2,.lang-en .split2 h2{font-size:clamp(38px,5vw,66px)}
.split2 h2{font-size:clamp(30px,4vw,50px)}
.band{background:var(--bg-2)}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}

/* ---------- origin: photograph, chapter, two per cent ---------- */
.origin{padding:0}
.origin__visual{
  position:relative;min-height:84vh;display:flex;align-items:flex-end;background:#000;overflow:hidden;isolation:isolate;
}
.origin__visual .ph{
  position:absolute;inset:0;z-index:0;
  background:url("media/sanbi-oyster-ice.jpg") center 40%/cover no-repeat;
  animation:kb 26s ease-out both;
}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.origin__visual::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(7,11,20,.9) 0%,rgba(7,11,20,.05) 32%,rgba(7,11,20,.1) 52%,rgba(7,11,20,.88) 78%,rgba(7,11,20,1) 100%);
}
.origin__visual .wrap{position:relative;z-index:2;padding-bottom:80px;padding-top:56vh}
.origin__visual h2{font-size:clamp(34px,4.8vw,62px);max-width:22ch;text-shadow:0 2px 30px rgba(0,0,0,.85),0 0 2px rgba(0,0,0,.6)}
.lang-en .origin__visual h2{font-size:clamp(42px,5.6vw,74px);font-style:italic}
.origin__visual .epi{margin-bottom:26px;text-shadow:0 1px 18px rgba(0,0,0,.95),0 0 2px rgba(0,0,0,.8)}
.origin__body{padding:120px 0 128px;background:var(--bg)}

.pct{position:relative;background:#000;overflow:hidden;isolation:isolate}
.pct__ph{
  position:absolute;inset:0;z-index:0;
  background:url("media/sanbi-oyster-plate.jpg") 70% center/cover no-repeat;
  animation:kb 30s ease-out both;
}
.pct::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(7,11,20,.97) 0%,rgba(7,11,20,.9) 38%,rgba(7,11,20,.45) 68%,rgba(7,11,20,.1) 100%);
}
.pct__in{
  position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:140px 32px;min-height:76vh;
  display:grid;grid-template-columns:auto 1fr;gap:72px;align-items:center;
}
.pct__num{font-family:var(--serif-en);font-size:clamp(130px,19vw,270px);line-height:.88;letter-spacing:-.03em;font-weight:400}
.pct__num small{font-size:.36em;vertical-align:top;margin-left:.04em;letter-spacing:0}
.pct__txt{max-width:46ch}
.pct .epi{font-size:22px}
.lang-ja .pct .epi{font-size:15px}
.pct .lede{color:var(--text-soft)}
.pct .note{color:var(--text-dim)}

/* ---------- comparison ---------- */
.cmp{width:100%;border-collapse:collapse;font-size:14.5px;font-family:var(--sans)}
.cmp th,.cmp td{text-align:left;padding:19px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.cmp th{font-weight:400;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--text-dim)}
.cmp td:first-child{color:var(--text-dim);width:36%;font-size:13px;letter-spacing:.04em}
.cmp td{color:var(--text-soft)}
.cmp .ours{color:var(--gold-2);display:block;margin-top:5px;font-weight:600}
.cmp .ours::before{content:"— ";color:var(--gold)}

/* ---------- data tables ---------- */
.data{width:100%;border-collapse:collapse;font-size:14.5px;font-family:var(--sans)}
.data th,.data td{text-align:left;padding:15px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.data th{width:30%;font-weight:600;color:var(--text);background:rgba(255,255,255,.03)}
.data td{color:var(--text-soft)}
.data td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--serif-en);font-size:20px;color:#F6F1E4}
.data caption{caption-side:top;text-align:left;font-family:var(--serif-en);font-size:12.5px;letter-spacing:.3em;color:var(--gold-2);padding-bottom:14px;text-transform:uppercase;font-weight:500}
.light .data th,.light .data td{border-bottom-color:var(--line-l)}
.light .data th{color:var(--ink);background:var(--paper-2)}
.light .data td{color:var(--ink-soft)}
.light .data td.num{color:var(--ink)}
.light .data caption{color:#A07E33}

/* ---------- cards (inside paper) ---------- */
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.card{border:1px solid var(--line-l);background:#FBF7EE;padding:42px 36px;position:relative}
.card::after{content:"";position:absolute;left:36px;right:36px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(160,126,51,.5),transparent)}
.card h3{font-size:22px;margin:0 0 12px;color:var(--ink)}
.card p{margin:0;font-size:14.5px;line-height:2;color:var(--ink-soft)}
.card .n{font-family:var(--serif-en);font-size:14px;letter-spacing:.3em;color:#A07E33;display:block;margin-bottom:20px}

/* ---------- the object ---------- */
.object{background:var(--bg-2);overflow:hidden}
.object .sec-head{text-align:center;margin:0 auto 20px}
.object__stage{position:relative;display:flex;flex-direction:column;align-items:center;padding:40px 0 0;isolation:isolate}
.object__stage::before{
  content:"";position:absolute;left:50%;top:46%;width:min(84vw,920px);aspect-ratio:1;transform:translate(-50%,-50%);z-index:-1;
  background:radial-gradient(circle, rgba(226,197,127,.30) 0%, rgba(201,162,75,.10) 36%, rgba(11,17,32,0) 66%);
  filter:blur(6px);
}
.object__stage::after{
  content:"";position:absolute;left:50%;bottom:31%;width:min(64vw,600px);height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.7;
}
.object__img{max-height:540px;width:auto;filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.object__refl{
  max-height:540px;width:auto;transform:scaleY(-1);opacity:.28;margin-top:-4px;pointer-events:none;
  -webkit-mask-image:linear-gradient(0deg,rgba(0,0,0,1) 0%,rgba(0,0,0,0) 46%);mask-image:linear-gradient(0deg,rgba(0,0,0,1) 0%,rgba(0,0,0,0) 46%);
}
.object__notes{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:-130px;position:relative;z-index:2}
.object__notes > div{border-top:1px solid var(--gold-dim);padding-top:24px}
.object__notes .n{font-family:var(--serif-en);font-size:13px;letter-spacing:.3em;color:var(--gold-2);display:block;margin-bottom:14px}
.object__notes h3{font-size:18px;margin:0 0 8px}
.object__notes p{margin:0;font-size:13.5px;line-height:1.95;color:var(--text-soft)}

/* ---------- the word ---------- */
.quote{background:var(--bg);text-align:center;padding:160px 0;position:relative;overflow:hidden}
.quote::before{content:"";position:absolute;inset:0;background:radial-gradient(40% 50% at 50% 50%, rgba(226,197,127,.08), transparent 70%)}
.quote blockquote{margin:0 auto;max-width:none;position:relative;padding-top:56px}
.quote blockquote::before{
  content:"";position:absolute;left:50%;top:0;width:1px;height:40px;background:var(--gold);transform:translateX(-50%);
}
.lang-en .quote blockquote::before{content:"“";width:auto;height:auto;background:none;font-family:var(--serif-en);font-size:150px;line-height:.6;color:var(--gold-dim);top:-8px}
.quote blockquote p{max-width:30ch;margin:0 auto;font-family:var(--serif-ja);font-size:clamp(26px,3.5vw,46px);line-height:1.55;color:#F6F1E4}
.lang-en .quote blockquote p{max-width:26ch;font-family:var(--serif-en);font-style:italic;font-size:clamp(32px,4.4vw,56px);line-height:1.25}
.quote footer{margin-top:32px;font-family:var(--sans);font-size:11px;letter-spacing:.32em;color:var(--gold-2);text-transform:uppercase}
.quote .note{max-width:52ch;margin:30px auto 0;position:relative}

/* ---------- list ---------- */
.ticks{list-style:none;margin:0;padding:0}
.ticks li{padding:15px 0 15px 30px;position:relative;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--text-soft)}
.ticks li::before{content:"";position:absolute;left:0;top:26px;width:12px;height:1px;background:var(--gold)}
.light .ticks li{border-bottom-color:var(--line-l);color:var(--ink-soft)}

/* ---------- faq (inside paper) ---------- */
.faq-item{border-bottom:1px solid var(--line-l);padding:30px 0}
.faq-item h3{font-size:18px;margin:0 0 10px;color:var(--ink)}
.faq-item p{margin:0;font-size:14.5px;line-height:2;color:var(--ink-soft)}

/* ---------- contact ---------- */
.contact{background:var(--bg-2);border-top:1px solid var(--line)}
form{display:grid;gap:18px;max-width:560px;font-family:var(--sans)}
label{display:block;font-size:10.5px;letter-spacing:.26em;color:var(--text-dim);margin-bottom:8px;text-transform:uppercase}
input,textarea,select{
  width:100%;font:inherit;font-size:15px;padding:13px 14px;
  border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--text);border-radius:0;
}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-dim) 50%),linear-gradient(135deg,var(--text-dim) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
select option{color:var(--ink)}
input:focus,textarea:focus,select:focus{outline:1px solid var(--gold-2);outline-offset:0;border-color:var(--gold-2)}
textarea{min-height:140px;resize:vertical}
button{
  font:inherit;font-family:var(--sans);font-size:11.5px;letter-spacing:.32em;text-transform:uppercase;
  background:linear-gradient(100deg,#B8923F,#E2C57F 50%,#B8923F);color:var(--bg);border:0;padding:18px 40px;cursor:pointer;justify-self:start;transition:filter .3s;
}
button:hover{filter:brightness(1.08)}
.mailto{font-size:14.5px;color:var(--text-soft);font-family:var(--sans)}
.mailto a{color:var(--gold-2);text-decoration:none;border-bottom:1px solid var(--gold-dim)}

/* ---------- footer ---------- */
.foot{background:#04070E;color:var(--text-dim);padding:76px 0 56px;font-size:13px;line-height:2;font-family:var(--sans);border-top:1px solid var(--line)}
.foot .wrap>*+*{margin-top:18px}
.foot img{height:36px;width:auto;opacity:.85;margin-bottom:8px}
.foot strong{color:var(--text-soft);font-weight:600}
.foot a{color:var(--text-soft);text-decoration:none;border-bottom:1px solid var(--line)}
.foot .legal{font-size:11.5px;color:#5A6279;border-top:1px solid var(--line);padding-top:22px;margin-top:30px}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity 1.2s cubic-bezier(.2,.6,.2,1),transform 1.2s cubic-bezier(.2,.6,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .rv,.hero__copy > *,.hero__shot{opacity:1;transform:none;transition:none;animation:none}
  .hero__shot img,.origin__visual .ph,.pct__ph,.gold-text{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- responsive ---------- */
@media (max-width:880px){
  .hero::after{inset:12px}
  .vkick{display:none}
  .hero__in{grid-template-columns:1fr;gap:32px;padding:60px 28px 64px;min-height:0}
  .hero__shot{order:-1}
  .hero__shot img{max-height:400px}
  .hero .arcs{width:80vw;right:-20%;bottom:-10%}
  .split2,.grid2{grid-template-columns:1fr;gap:40px}
  .facts__in{grid-template-columns:1fr 1fr}
  .fact{border-bottom:1px solid var(--line);padding:30px 12px}
  .fact:nth-child(2){border-right:0}
  section{padding:92px 0}
  section.tight{padding:76px 0}
  .interlude{padding:104px 0}
  .origin__visual{min-height:64vh}
  .origin__visual .wrap{padding-top:110px;padding-bottom:56px}
  .origin__body{padding:76px 0 88px}
  .pct__in{grid-template-columns:1fr;gap:28px;padding:100px 28px;min-height:0}
  .pct::before{background:linear-gradient(180deg,rgba(7,11,20,.97) 0%,rgba(7,11,20,.9) 60%,rgba(7,11,20,.45) 100%)}
  .object__img,.object__refl{max-height:400px}
  .object__notes{grid-template-columns:1fr;gap:22px;margin-top:-60px}
  .quote{padding:104px 0}
  .brand small{display:none}
  .wrap{padding:0 28px}
  .nav__in{gap:24px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav__in::-webkit-scrollbar{display:none}
  .nav a{white-space:nowrap;padding:14px 0}
}
@media (max-width:560px){
  body{font-size:15px}
  .wrap{padding:0 20px}
  .mast__in{padding:22px 20px 16px}
  .brand img{height:34px}
  .hero__in{padding:48px 20px 56px}
  .hero__shot img{max-height:330px}
  .lang-ja .hero h1{font-size:34px}
  .lang-en .hero h1{font-size:48px}
  .pct__num{font-size:110px}
  .data th{width:38%}
  .data th,.data td{padding:12px 10px;font-size:13.5px}
  .cmp th,.cmp td{padding:13px 8px;font-size:13px}
  .interlude p{font-size:30px}
  .quote blockquote p{font-size:24px}
  .lang-en .quote blockquote p{font-size:30px}
}
