/* r2: ワインの色、縦組み、余白を活かした独自の表現 */
:root { --wine-accent: #967321; --wine-wash: #f3eacb; }
body[data-wine="1"] { --wine-accent: #8f3552; --wine-wash: #f3dce5; }
body[data-wine="2"] { --wine-accent: #cd745f; --wine-wash: #fae5d9; }
.floating-nav { transition: top .55s cubic-bezier(.2,.7,.2,1), transform .55s cubic-bezier(.2,.7,.2,1), background .3s; }
@media (min-width:761px) {
  body:not([data-chapter="home"]) .floating-nav { top:calc(100svh - 61px); }
  body.footer-arriving .floating-nav { top:64px; }
  body:not([data-chapter="home"]):not(.footer-arriving) .floating-nav { padding-block:21px; }
  .wine-caption { bottom:124px; }
  .scene-foot { bottom:126px; }
}
.flavor-intro { top:15%; right:clamp(28px,6vw,120px); left:auto; width:auto; transform:none; text-align:start; z-index:22; }
.flavor-intro p { writing-mode:vertical-rl; text-orientation:mixed; display:flex; flex-direction:column; gap:16px; font-family:'Yu Gothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif; font-weight:600; font-size:clamp(18px,1.4vw,25px); line-height:1.8; letter-spacing:.11em; }
.flavor-intro p span { display:block; padding-block:14px 18px; background:#fff9; }
.flavor-intro .copy-main { border-block-start:2px solid var(--wine-accent); }
.flavor-intro .copy-rest { font-size:16px; letter-spacing:.09em; color:#56534a; }
.marquee-row.active { color:var(--wine-wash); }
.marquee-row.active .marquee-track { text-shadow:0 0 1px var(--wine-accent); }
.wine-caption button { color:var(--wine-accent); }
.orbit-pill { background:#f4ecdcdf; color:#665223; border:1px solid #dbcaa88c; }
.orbit-four .orbit-node:nth-of-type(3) .orbit-pill { background:#f5dcacdf; color:#765125; }
.orbit-four .orbit-node:nth-of-type(4) .orbit-pill { background:#deeadfdf; color:#476e58; }
.orbit-four .orbit-node:nth-of-type(5) .orbit-pill { background:#eadfe7df; color:#78566f; }
.orbit-node.active .orbit-pill,.orbit-node:hover .orbit-pill { background:var(--wine-accent); color:#fff; border-color:var(--wine-accent); }
.orbit-line { border-color:#b39c6c; }
.info-card { border-top:3px solid var(--wine-accent); background:#f6f3eced; }
.aroma-ghost { display:none; }
.aromas .sticky-scene { background:radial-gradient(ellipse at 14% 43%,var(--wine-wash),transparent 56%); transition:background .4s; }
.taste-chart-panel { position:absolute; left:clamp(24px,4vw,76px); top:18%; width:clamp(285px,29vw,410px); z-index:25; pointer-events:auto; }
.taste-eyebrow { font:700 13px 'Yu Gothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif; letter-spacing:.15em; color:var(--wine-accent); }
.taste-chart-panel h2 { font-family:'Yu Gothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif; font-size:clamp(23px,2vw,30px); line-height:1.5; margin-top:9px; letter-spacing:.03em; }
.taste-switch { display:flex; gap:7px; margin:20px 0 2px; }
.taste-switch button { padding:7px 18px; min-width:62px; border-radius:30px; font-size:16px; border:1px solid #c4bba9; background:#ffffff90; }
.taste-switch button[aria-pressed="true"] { color:#fff; background:var(--wine-accent); border-color:var(--wine-accent); }
.taste-plot { width:100%; }
.taste-plot svg { display:block; width:100%; height:auto; overflow:visible; }
.taste-caption { margin-top:4px; font-size:16px; line-height:1.8; color:#665b50; max-width:27em; }
.taste-plot text { font-family:'Yu Gothic',sans-serif; font-weight:600; font-size:22px; }
#scene-hud { overflow:hidden; }
.scene-overlay[data-scene="ritual"] { overflow:hidden; }
.ritual-card { border-top:3px solid var(--wine-accent); background:#fffaf0ed; }
.step-number { color:var(--wine-accent); opacity:.5; }
.footer-section { padding-top:14px; }
.footer-picture { height:100svh; }
.footer-message { top:18%; font-family:'Yu Gothic','Hiragino Kaku Gothic ProN','Meiryo',sans-serif; font-weight:600; }
.footer-cta { bottom:10%; background:#693e45; }
.footer-links { margin:14px 0 0; padding:26px 30px; background:#693e45; color:#fff9ee; border-radius:15px; min-height:90px; }
.footer-links button:hover,.footer-links a:hover { color:#edc6ab; }
.sample-note { color:#74645d; }
body.footer-arriving .chapter-badge { opacity:0; pointer-events:none; }
@media (min-width:761px) and (max-height:720px) {
  .flavor-intro { top:12%; right:4%; }
  .flavor-intro p { font-size:18px; gap:10px; }
  .flavor-intro .copy-rest { font-size:16px; }
  .taste-chart-panel { top:13%; width:min(28vw,325px); }
  .taste-chart-panel h2 { font-size:23px; }
  .taste-switch { margin-top:12px; }
  .taste-plot { max-width:290px; }
  .taste-caption { line-height:1.55; }
  .footer-message { top:23%; }
}
@media (max-width:760px) {
  .floating-nav { top:auto; transform:none; }
  .flavor-intro { top:14%; right:13px; left:auto; max-width:100px; width:auto; }
  .flavor-intro p { gap:6px; font-size:19px; letter-spacing:.03em; line-height:1.6; }
  .flavor-intro p span { background:#ffffffb8; padding-block:10px; }
  .flavor-intro .copy-rest { font-size:16px; }
  .flavor-intro .copy-rest:last-child { display:none; }
  .marquees { top:31%; height:46%; }
  .taste-chart-panel { left:12px; right:12px; top:67px; width:auto; padding:17px 16px 10px; border-radius:16px; background:#fffaf1ee; border-top:3px solid var(--wine-accent); display:grid; grid-template-columns:1fr 1fr; gap:0 10px; }
  .taste-eyebrow { grid-column:1/-1; font-size:12px; }
  .taste-chart-panel h2 { font-size:20px; margin-top:5px; grid-column:1/-1; }
  .taste-switch { grid-column:1; flex-direction:column; gap:5px; align-items:flex-start; margin:14px 0 9px; }
  .taste-switch button { min-width:74px; padding:5px 14px; }
  .taste-plot { grid-column:2; grid-row:3/5; width:210px; justify-self:end; margin-top:2px; }
  .taste-caption { grid-column:1/-1; font-size:16px; margin-top:0; line-height:1.65; }
  .taste-chart-panel .taste-plot text { font-size:28px; }
  .scene-overlay[data-scene="aromas"] .aroma-card { top:auto; bottom:108px; max-height:23svh; padding:13px 16px; border-top-width:2px; }
  .scene-overlay[data-scene="aromas"] .aroma-card>h2,.scene-overlay[data-scene="aromas"] .aroma-card>p { display:none; }
  .aroma-card details { padding-top:8px; margin-top:8px; }
  .aroma-card details:first-of-type { margin-top:0; border-top:0; padding-top:0; }
  .footer-section { padding-top:8px; }
  .footer-picture { height:100svh; }
  .footer-message { top:12%; left:7%; font-size:27px; }
  .footer-cta { bottom:16%; }
  .footer-links { margin-top:8px; padding:22px 18px; min-height:0; }
}
@media (max-width:360px) {
  .flavor-intro { right:8px; top:15%; }
  .flavor-intro p { font-size:17px; gap:4px; }
  .flavor-intro .copy-rest { display:none; }
  .taste-chart-panel { top:60px; padding:12px; gap:0 6px; }
  .taste-chart-panel h2 { font-size:19px; }
  .taste-plot { width:175px; }
  .taste-chart-panel .taste-plot text { font-size:33px; }
  .taste-switch { margin:10px 0 6px; }
  .taste-switch button { min-width:62px; padding:4px 12px; }
  .taste-caption { font-size:16px; line-height:1.5; }
  .scene-overlay[data-scene="aromas"] .aroma-card { max-height:22svh; bottom:104px; }
}
@media(prefers-reduced-motion:reduce) { .floating-nav { transition:none; } }
.no-motion .floating-nav { transition:none; }

.aroma-mobile-open { display:none; }
.aroma-reading { max-width:680px; margin:auto; }
.aroma-reading>p { margin:20px 0 28px; font-size:18px; }
.aroma-reading details { border-top:1px solid #d4c9b7; padding:18px 0; }
.aroma-reading summary { cursor:pointer; font-size:20px; }
.aroma-reading details p { padding-top:16px; font-size:18px; line-height:1.8; }
@media(max-width:760px) {
  #scene-hud .aroma-card { display:none; }
  .aroma-mobile-open { display:block; pointer-events:auto; position:absolute; bottom:115px; left:50%; transform:translateX(-50%); width:max-content; padding:11px 22px; font-size:16px; color:var(--wine-accent); background:#fffaf0ef; border-radius:30px; border:1px solid var(--wine-accent); }
}

/* r3.1: 全編ゴシック系。縦組みも本文と同じく、太く明瞭に。 */
.flavor-intro p,.taste-chart-panel h2,.footer-message { font-weight:700; }
.flavor-intro p { letter-spacing:.055em; }
.flavor-intro .copy-rest { color:#333a32; letter-spacing:.045em; }
.taste-caption { color:#42473e; }
