/* ═══════════════════════════════════════════════════════
   和流 -ORYU- — HOME page tokens + unique components
   Loaded AFTER common.css. Defines this page-set's
   design tokens (:root) and any HOME-only components
   (hero, about, specialties rack, style preview, tag).
   ═══════════════════════════════════════════════════════ */

:root {
  --ink: #100d0a;
  --panel: #1c1712;
  --panel-2: #221b14;
  --bone: #ece4d3;
  --stone: #948a76;
  --brass: #b08d4f;
  --brass-dim: #7d6537;
  --neon: #2fe374;
  --hair: rgba(236, 228, 211, 0.09);
  --hdr: 78px;
  --ease: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  --font-display: 'Fraunces', 'Shippori Mincho B1', serif;
  --font-jp: 'Shippori Mincho B1', serif;
  --font-sans: 'Noto Sans JP', sans-serif;
  --font-tag: 'JetBrains Mono', monospace;
  --font-label: var(--font-tag);
  --hdr-bg: rgba(16, 13, 10, .95);
  --mnav-bg: rgba(16, 13, 10, .98);
  --mbar-bg: rgba(16, 13, 10, .97);
  --footer-bg: #0a0806;
}

/* ── TOOL TAG — signature motif: a stamped brass tag ── */
.tag {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-tag); font-size: .64rem; letter-spacing: .12em; color: var(--brass);
  border: 1px solid rgba(176, 141, 79, .35); padding: .3rem .7rem; background: rgba(176, 141, 79, .05);
}
.tag::before { content: '⁕'; color: var(--neon); }

/* ── ALTERNATE SECTION TONE (washi interlude) ── */
.sec-washi { background: var(--bone); color: var(--ink); }
.sec-washi .eyebrow { color: var(--brass-dim); }
.sec-washi .eyebrow::before { background: var(--brass-dim); }
.sec-washi .h2 { color: var(--ink); }
.sec-washi p { color: #5a5347; }

/* ── FOOTER WATERMARK (HOME only) ── */
.ft-seal { position: absolute; bottom: -4rem; right: -1rem; width: 340px; height: 340px; opacity: .05; pointer-events: none; user-select: none; }
.ft-seal img { width: 100%; height: 100%; object-fit: contain; }

/* ── HERO ── */
#hero{position:relative;height:100svh;min-height:680px;display:flex;align-items:flex-end;overflow:hidden;margin-top:calc(-1 * var(--hdr))}
.hbg-img{position:absolute;inset:0;width:100%;height:100%;transform:scale(1.04);animation:kbz 14s var(--ease-soft) forwards}
@keyframes kbz{to{transform:scale(1)}}
.hbg-img img{width:100%;height:100%;object-fit:cover;object-position:center 15%;display:block}
.hov{position:absolute;inset:0;background:linear-gradient(178deg,rgba(16,13,10,.2) 0%,rgba(16,13,10,.05) 30%,rgba(16,13,10,.6) 66%,rgba(16,13,10,.97) 100%)}
.hc{position:relative;z-index:2;padding:3rem 3.5rem 5.5rem;max-width:700px}
.h-tag{opacity:0;animation:fu 1s var(--ease-soft) .3s forwards}
.h-t{font-family:var(--font-display);font-size:clamp(4.6rem,12vw,8rem);font-weight:700;line-height:.94;letter-spacing:-.01em;color:var(--bone);margin-top:1rem;opacity:0;animation:fu 1.1s var(--ease-soft) .48s forwards}
.h-sub{font-family:var(--font-tag);font-size:.62rem;letter-spacing:.3em;color:rgba(236,228,211,.35);text-transform:uppercase;margin-top:.8rem;opacity:0;animation:fu 1s var(--ease-soft) .64s forwards}
.h-copy{font-family:var(--font-jp);font-size:clamp(1rem,2vw,1.2rem);color:rgba(236,228,211,.75);margin-top:1.9rem;margin-bottom:2.6rem;line-height:2.1;opacity:0;animation:fu 1s var(--ease-soft) .8s forwards}
.h-ctas{display:flex;flex-wrap:wrap;gap:.9rem;opacity:0;animation:fu 1s var(--ease-soft) .96s forwards}
@keyframes fu{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.h-scroll{position:absolute;bottom:2.8rem;right:3.5rem;z-index:2;display:flex;flex-direction:column;align-items:center;gap:.7rem;opacity:0;animation:fu .8s var(--ease-soft) 1.3s forwards}
.h-scroll span{font-family:var(--font-tag);font-size:.56rem;letter-spacing:.3em;color:rgba(236,228,211,.28);writing-mode:vertical-rl}
.h-sbar{width:1px;height:46px;background:linear-gradient(to bottom,rgba(176,141,79,.6),transparent);animation:sp 2.8s ease-in-out 1.3s infinite}
@keyframes sp{0%,100%{opacity:0;transform:scaleY(0);transform-origin:top}45%{opacity:1;transform:scaleY(1);transform-origin:top}55%{opacity:1;transform:scaleY(1);transform-origin:bottom}100%{opacity:0;transform:scaleY(0);transform-origin:bottom}}

/* ── EDITORIAL NAV STRIP ── */
.enav{display:flex;border-top:1px solid var(--hair);flex-wrap:wrap}
.enc{flex:1;min-width:200px;padding:2.6rem 2.5rem;text-decoration:none;display:flex;align-items:baseline;justify-content:space-between;border-right:1px solid var(--hair);position:relative;transition:background .4s}
.enc:last-child{border-right:none}
.enc::before{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--neon);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.enc:hover{background:rgba(176,141,79,.04)}
.enc:hover::before{transform:scaleX(1)}
.enc-l{font-family:var(--font-jp);font-size:1.15rem;color:var(--bone)}
.enc-s{font-family:var(--font-tag);font-size:.56rem;color:var(--stone);letter-spacing:.1em;text-transform:uppercase}

/* ── ABOUT ── */
.ab-g{display:grid;grid-template-columns:1.15fr .85fr;gap:0;align-items:stretch}
.ab-img-wrap{position:relative;overflow:hidden;min-height:560px}
.ab-img-wrap picture,.ab-img-wrap img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.ab-text{padding:5.5rem 5.5rem 5.5rem 6rem;display:flex;flex-direction:column;justify-content:center;background:var(--panel)}
.ab-body{font-size:.88rem;color:var(--stone);line-height:2.3}
.ab-tags{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:2.2rem}

/* ── SPECIALTIES — pure typography, no icons ── */
.rack{margin-top:4rem;display:flex;flex-direction:column}
.rack-item{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:baseline;padding:2.6rem 0;border-bottom:1px solid var(--hair)}
.rack-item:first-child{border-top:1px solid var(--hair)}
.rack-name{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--bone)}
.rack-desc{font-size:.85rem;color:var(--stone);line-height:1.9}

/* ── STYLE SHOWCASE ── */
.sp-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.5rem;margin-bottom:3rem}
.sp-link{font-family:var(--font-tag);font-size:.64rem;letter-spacing:.1em;color:var(--brass);text-decoration:none;text-transform:uppercase;white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem;border-bottom:1px solid rgba(176,141,79,.3);padding-bottom:.4rem}
.sp-link .icon{width:14px;height:14px}
.sp-grid{display:grid;grid-template-columns:2fr 1fr;gap:2.5rem;align-items:end}
.sp-item{overflow:hidden;position:relative;aspect-ratio:3/4}
.sp-item:first-child{aspect-ratio:4/5}
.sp-item:last-child{aspect-ratio:3/4;align-self:end;max-width:82%}
.sp-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.sp-item:hover img{transform:scale(1.04)}
.sp-cap{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(transparent,rgba(16,13,10,.88))}
.sp-cap span{font-family:var(--font-tag);font-size:.65rem;color:var(--bone);letter-spacing:.05em}

/* ── CTA STRIP ── */
.cts{background:var(--panel-2);padding:7rem 3rem;text-align:center;position:relative}
.cts::before,.cts::after{content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(176,141,79,.25),transparent)}
.cts::before{top:0}.cts::after{bottom:0}
.cts p{color:var(--stone);margin-bottom:2.4rem;font-size:.88rem;line-height:2.1}
.cts-bs{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}

/* ── HOME-SPECIFIC RESPONSIVE ── */
@media(max-width:960px){
  .ab-g{grid-template-columns:1fr}
  .ab-img-wrap{min-height:400px}
  .ab-text{padding:3.5rem 1.75rem}
  .rack-item{grid-template-columns:1fr;gap:.6rem}
  .sp-grid{grid-template-columns:1fr}
  .sp-item:last-child{max-width:100%}
}
@media(max-width:600px){
  .hc{padding:2rem 1.25rem 3rem}
  .enc{min-width:100%;border-right:none;border-bottom:1px solid var(--hair)}
  .sp-grid{grid-template-columns:1fr}
  .sp-item:first-child{grid-column:span 1}
}
@media(max-width:768px){
  .h-t{font-size:4.2rem}
  .h-copy{font-size:1rem;line-height:1.9}
  .ab-img-wrap{min-height:340px}
  .ab-text{padding:2.75rem 1.25rem}
  .ab-body{font-size:.9rem;line-height:1.8}
  .enc{padding:1.6rem 1.5rem}
  .enc-l{font-size:1.05rem}
  .rack{margin-top:2.5rem}
  .rack-item{padding:1.75rem 0}
  .rack-name{font-size:1.2rem}
  .rack-desc{font-size:.85rem;line-height:1.75}
  .sp-item{aspect-ratio:4/5}
  .sp-item:first-child{aspect-ratio:4/5}
  .sp-cap{padding:1.1rem}
}
