/* ============================================================
   SHINDO — Atmospheric pressure page (Build_17)
   Palette from the app's pressure screens: night indigo, periwinkle line, lavender glow, coral for falls.
   ============================================================ */
.mod--pr, .pr-home { --pc: #8E90F5; --lav: #B9A4FF; --coral: #E8746E; --night: #14152A; --night2: #1C1E36; }

/* ---------- 1 · Hero — the air column ---------- */
.pr-hero { position: relative; min-height: 100svh; overflow: hidden; color: #fff; isolation: isolate; background: var(--night);
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: clamp(24px, 4vw, 80px);
  padding: calc(var(--nav-h) + 30px) clamp(24px, 4.6vw, 88px) 60px; cursor: ns-resize; touch-action: pan-x; }
.pr-hero__cv { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.pr-hero__copy { position: relative; display: grid; gap: 22px; max-width: 620px; }
.pr-hero .eyebrow { color: var(--lav); }
.pr-hero__title { margin: 0; font-family: var(--font-display); font-weight: 300; font-size: clamp(40px, 4.4vw, 76px); line-height: 1.03; letter-spacing: -0.04em; }
.pr-hero__lead { margin: 0; font-size: clamp(16px, 1.2vw, 19px); line-height: 1.55; color: rgba(255,255,255,0.72); max-width: 52ch; }
.pr-read { display: flex; align-items: baseline; gap: 10px; margin-top: 6px; font-variant-numeric: tabular-nums; }
.pr-read__n { font-family: var(--font-display); font-weight: 300; font-size: clamp(64px, 7vw, 120px); line-height: 0.9; letter-spacing: -0.05em; }
.pr-read__u { font-size: 20px; color: rgba(255,255,255,0.55); }
.pr-read__s { margin-left: 10px; padding: 6px 14px; border-radius: 99px; font-size: 14px; font-weight: 600; background: rgba(142,144,245,0.16); color: var(--lav); transition: background 400ms, color 400ms; }
.pr-read__s.is-low { background: rgba(232,116,110,0.18); color: var(--coral); }
.pr-hero__hint { margin: 0; font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.pr-hero__phone { width: clamp(240px, 22vw, 340px); transform: rotate(4deg) translateY(var(--py, 0px)); transition: transform 900ms var(--ease); }

/* ---------- 3 · Lift — floors of pressure ---------- */
.pr-lift { position: relative; height: 380vh; margin: 0 var(--inset); border-radius: var(--radius-xl); background: #0f1022; }
.pr-lift__sticky { position: sticky; top: 0; height: 100vh; min-height: 640px; overflow: hidden; border-radius: var(--radius-xl); color: #fff;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); gap: clamp(24px, 4vw, 72px); padding: clamp(84px, 11vh, 120px) clamp(24px, 4vw, 72px) 40px; }
.pr-lift__copy { display: flex; flex-direction: column; gap: 18px; justify-content: center; }
.pr-lift__copy > p { margin: 0; color: rgba(255,255,255,0.7); font-size: 17px; line-height: 1.55; max-width: 52ch; }
.pr-lift .eyebrow { color: var(--lav); }
.pr-lift__stops { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 4px; }
.pr-lift__stops li { display: grid; grid-template-columns: 9.5em 1fr; gap: 14px; padding: 12px 16px; border-radius: 16px; font-size: 15px; line-height: 1.45; color: rgba(255,255,255,0.38); transition: color 400ms, background 400ms; }
.pr-lift__stops li b { font-variant-numeric: tabular-nums; color: rgba(255,255,255,0.5); transition: color 400ms; }
.pr-lift__stops li.is-on { background: rgba(142,144,245,0.12); color: rgba(255,255,255,0.92); }
.pr-lift__stops li.is-on b { color: var(--lav); }
.pr-lift__note { font-size: 14px !important; color: rgba(255,255,255,0.5) !important; }
.pr-lift__tower { position: relative; min-height: 0; }
.pr-lift__cv { position: absolute; inset: 0; width: 100%; height: 100%; }
.pr-lift__gauge { position: absolute; right: 0; top: 0; display: grid; justify-items: end; font-variant-numeric: tabular-nums; }
.pr-lift__gauge b { font-family: var(--font-display); font-weight: 300; font-size: clamp(48px, 5vw, 84px); line-height: 1; letter-spacing: -0.04em; }
.pr-lift__gauge span { color: rgba(255,255,255,0.5); font-size: 14px; }
.pr-lift__gauge em { font-style: normal; margin-top: 6px; font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.1em; color: var(--coral); }

/* ---------- 4 · Barograph ---------- */
.pr-baro { position: relative; height: 420vh; margin: var(--inset) var(--inset) 0; border-radius: var(--radius-xl); background: #0d0e1c; }
.pr-baro__sticky { position: sticky; top: 0; height: 100vh; min-height: 680px; overflow: hidden; border-radius: var(--radius-xl); color: #fff;
  display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); grid-template-rows: auto 1fr auto; gap: 18px clamp(20px, 3vw, 48px);
  padding: clamp(84px, 11vh, 120px) clamp(24px, 4vw, 72px) clamp(18px, 3vh, 32px); }
.pr-baro__head { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: 8px 48px; align-items: end; }
.pr-baro__head .eyebrow { grid-column: 1 / -1; color: var(--lav); }
.pr-baro__head p { margin: 0; color: rgba(255,255,255,0.66); font-size: 15px; line-height: 1.55; }
.pr-baro__map, .pr-baro__drum { position: relative; min-height: 0; border-radius: 26px; overflow: hidden; }
.pr-baro__map { background: radial-gradient(120% 90% at 60% 40%, #1b1d3a, #0d0e1c); }
.pr-baro__drum { background: #08090f; }
.pr-baro__mapcv, .pr-baro__drumcv { position: absolute; inset: 0; width: 100%; height: 100%; }
.pr-baro__read { position: absolute; left: 22px; top: 18px; display: grid; gap: 2px; font-variant-numeric: tabular-nums; text-shadow: 0 2px 12px #000; }
.pr-baro__read .b-time { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.12em; color: rgba(255,255,255,0.55); }
.pr-baro__read b { font-family: var(--font-display); font-weight: 300; font-size: clamp(40px, 4vw, 64px); line-height: 1; letter-spacing: -0.04em; }
.pr-baro__read > span:last-of-type { font-size: 13px; color: rgba(255,255,255,0.55); }
.pr-baro__read em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--coral); min-height: 1.2em; }
.pr-baro__fine { grid-column: 1 / -1; margin: 0; font-size: 12px; color: rgba(255,255,255,0.4); }

/* ---------- 5 · Ear ---------- */
.pr-ear { position: relative; height: 380vh; margin: var(--inset) var(--inset) 0; border-radius: var(--radius-xl); background: #0f0f20; }
.pr-ear__sticky { position: sticky; top: 0; height: 100vh; min-height: 640px; overflow: hidden; border-radius: var(--radius-xl); color: #fff;
  display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); align-items: center; gap: clamp(20px, 3vw, 56px); padding: clamp(84px, 11vh, 120px) clamp(24px, 4vw, 72px) 40px; }
.pr-ear__svg { width: 100%; height: auto; max-height: 76vh; overflow: visible; }
.pr-ear .eyebrow { color: var(--lav); }
.pr-ear__copy { display: grid; gap: 20px; }
.pr-ear__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; counter-reset: s; }
.pr-ear__steps li { position: relative; padding: 14px 18px 14px 50px; border-radius: 18px; font-size: 15.5px; line-height: 1.5; color: rgba(255,255,255,0.32); transition: color 500ms, background 500ms; }
.pr-ear__steps li::before { counter-increment: s; content: counter(s); position: absolute; left: 16px; top: 14px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; border: 1px solid currentColor; }
.pr-ear__steps li.is-on { color: #fff; background: rgba(142,144,245,0.12); }
.e-head { fill: rgba(255,255,255,0.03); stroke: rgba(255,255,255,0.18); stroke-width: 1.5; }
.e-brain { fill: rgba(185,164,255,0.06); stroke: rgba(185,164,255,0.35); stroke-width: 1.5; stroke-dasharray: 3 6; }
.e-brainglow { opacity: var(--bg, 0); transition: opacity 600ms; mix-blend-mode: screen; }
.e-canal { fill: none; stroke: rgba(255,255,255,0.35); stroke-width: 22; stroke-linecap: round; opacity: 0.35; }
.e-drum { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.e-semi, .e-coch { fill: none; stroke: var(--pc); stroke-width: 5; stroke-linecap: round; filter: drop-shadow(0 0 calc(var(--ig, 0) * 14px) var(--pc)); }
.e-nerve { fill: none; stroke: url(#prNerve); stroke-width: 3; stroke-dasharray: 220; stroke-dashoffset: calc(220 * (1 - var(--nv, 0))); }
.e-pulse { fill: #fff; opacity: var(--po, 0); filter: drop-shadow(0 0 10px #fff); }
.e-waves path { fill: none; stroke: rgba(142,144,245,0.55); stroke-width: 2; }
.e-eye path { fill: rgba(255,255,255,0.05); stroke: rgba(255,255,255,0.4); stroke-width: 1.5; } .e-eye circle { fill: rgba(255,255,255,0.5); }
.e-eye { opacity: var(--ey, 0); transition: opacity 500ms; }

/* ---------- 6 · Year ring ---------- */
.pr-year { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 90px); align-items: center; padding: clamp(80px, 10vw, 150px) clamp(24px, 4.6vw, 88px) 20px; }
.pr-year__copy { display: grid; gap: 20px; }
.pr-year__copy > p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ink-soft); }
.pr-year__months { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.pr-year__months button { height: 42px; border: 0; border-radius: 12px; background: #ECE8E3; color: var(--ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 250ms, color 250ms, transform 250ms; }
.pr-year__months button:hover { transform: translateY(-2px); }
.pr-year__months button[aria-checked="true"] { background: var(--night); color: #fff; }
.pr-year__firsts { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; min-height: 180px; }
.pr-year__firsts li { display: grid; grid-template-columns: 14px 1fr; gap: 12px; align-items: baseline; font-size: 15px; line-height: 1.45; animation: prUp 500ms var(--ease) both; }
.pr-year__firsts li i { width: 10px; height: 10px; border-radius: 50%; background: var(--c); transform: translateY(1px); }
.pr-year__firsts li b { font-weight: 600; }
@keyframes prUp { from { opacity: 0; transform: translateY(10px); } }
.pr-year__ring { position: relative; aspect-ratio: 1; border-radius: var(--radius-xl); background: radial-gradient(circle at 50% 50%, var(--night2), var(--night) 72%); overflow: hidden; }
.pr-year__cv { position: absolute; inset: 0; width: 100%; height: 100%; }
.pr-year__mid { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 46%; text-align: center; color: #fff; display: grid; gap: 6px; pointer-events: none; }
.pr-year__mid b { font-family: var(--font-display); font-weight: 300; font-size: clamp(26px, 2.6vw, 40px); letter-spacing: -0.03em; line-height: 1.05; }
.pr-year__mid span { font-size: 13px; line-height: 1.45; color: rgba(255,255,255,0.6); }
.pr-year__fine { grid-column: 1 / -1; margin: 0; font-size: 12px; color: var(--ink-soft); text-align: right; }

/* ---------- 7 · Ahead ---------- */
.pr-ahead { margin: var(--inset) var(--inset) 0; border-radius: var(--radius-xl); background: linear-gradient(180deg, var(--night2), var(--night)); color: #fff;
  padding: clamp(80px, 10vw, 140px) clamp(24px, 4.6vw, 88px); display: grid; gap: clamp(36px, 4vw, 64px); }
.pr-ahead__copy { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 60px; align-items: end; }
.pr-ahead__copy .eyebrow { grid-column: 1 / -1; color: var(--lav); }
.pr-ahead__copy p { margin: 0; color: rgba(255,255,255,0.7); font-size: 17px; line-height: 1.6; }
.pr-ahead__stage { position: relative; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.pr-ahead__svg { width: 100%; height: auto; border-radius: 26px; background: rgba(0,0,0,0.22); border: 1px solid rgba(255,255,255,0.06); overflow: visible; }
.a-grid line { stroke: rgba(255,255,255,0.06); } .a-grid text, .a-x text { fill: rgba(255,255,255,0.42); font-family: var(--font-mono); font-size: 12px; }
.a-area { fill: url(#prArea); } .a-line { fill: none; stroke: var(--lav); stroke-width: 3; stroke-linejoin: round; }
.a-hi { fill: none; stroke: var(--coral); stroke-width: 6; stroke-linecap: round; filter: drop-shadow(0 0 10px var(--coral)); transition: d 500ms; }
.a-band { fill: rgba(142,144,245,0.07); stroke: rgba(142,144,245,0.4); stroke-dasharray: 4 6; }
.a-dot { fill: #fff; filter: drop-shadow(0 0 10px var(--lav)); }
.pr-ahead__ai { border-radius: 26px; padding: 26px 26px 28px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); display: grid; align-content: start; gap: 14px; }
.a-tag { font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lav); }
.a-txt { margin: 0; font-size: clamp(16px, 1.3vw, 19px); line-height: 1.6; color: rgba(255,255,255,0.78); }
.a-txt mark { background: none; color: inherit; border-radius: 6px; padding: 1px 3px; box-shadow: inset 0 -2px 0 rgba(142,144,245,0.45); cursor: pointer; transition: background 300ms, box-shadow 300ms, color 300ms; }
.a-txt mark.is-on { background: rgba(232,116,110,0.2); box-shadow: inset 0 -2px 0 var(--coral); color: #fff; }
.pr-ahead__note { position: absolute; z-index: 3; left: clamp(12px, 3%, 32px); top: -26px; display: flex; gap: 12px; align-items: center; padding: 12px 18px 12px 12px; border-radius: 20px; min-width: min(380px, 80%);
  background: rgba(40,42,70,0.82); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 20px 50px rgba(0,0,0,0.5);
  transform: translateY(-30px) scale(0.96); opacity: 0; transition: transform 700ms cubic-bezier(.2,1.3,.4,1), opacity 400ms; }
.pr-ahead__note.is-in { transform: none; opacity: 1; }
.pr-ahead__note i { width: 38px; height: 38px; border-radius: 10px; flex: none; background: url("img/favicon.svg") center/70% no-repeat, #0b0c18; }
.pr-ahead__note b { display: block; font-size: 15px; } .pr-ahead__note small { font-size: 13px; color: rgba(255,255,255,0.7); }
.pr-ahead__crops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.pr-ahead__crops figure { margin: 0; } .pr-ahead__crops img { display: block; width: 100%; border-radius: 20px; box-shadow: 0 20px 50px rgba(0,0,0,0.45); }

/* ---------- 8 · Mercury ---------- */
.pr-hg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 90px); align-items: center; padding: clamp(80px, 10vw, 150px) clamp(24px, 4.6vw, 88px); }
.pr-hg__copy { display: grid; gap: 20px; }
.pr-hg__copy > p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ink-soft); }
.pr-hg__read { margin: 8px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pr-hg__read div { padding: 14px 16px; border-radius: 18px; background: #ECE8E3; }
.pr-hg__read dt { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-soft); }
.pr-hg__read dd { margin: 6px 0 0; font-family: var(--font-display); font-weight: 300; font-size: clamp(24px, 2.2vw, 34px); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.pr-hg__band { margin: 0; display: flex; gap: 10px; align-items: center; font-size: 15px; }
.pr-hg__band i { width: 34px; height: 8px; border-radius: 4px; background: var(--bc, #7BC67E); transition: background 300ms; }
.pr-hg__stage { position: relative; border-radius: var(--radius-xl); background: radial-gradient(90% 70% at 50% 30%, #23264a, #0e0f1e); aspect-ratio: 1 / 1.05; display: grid; place-items: center; padding: 40px 24px 30px; }
.pr-hg__tube { position: relative; height: 82%; aspect-ratio: 0.42; cursor: ns-resize; touch-action: none; outline: none; }
.pr-hg__tube:focus-visible .pr-hg__glass { box-shadow: 0 0 0 3px var(--lav); }
.pr-hg__glass { position: absolute; left: 50%; top: 0; bottom: 9%; width: 30%; transform: translateX(-50%); border-radius: 20px 20px 6px 6px; border: 2px solid rgba(255,255,255,0.35); background: linear-gradient(90deg, rgba(255,255,255,0.12), rgba(255,255,255,0.02) 40%, rgba(255,255,255,0.08)); overflow: hidden; }
.pr-hg__hg { position: absolute; left: 0; right: 0; bottom: 0; height: var(--h, 70%); background: linear-gradient(90deg, #6d7180, #e7e9ef 35%, #9aa0ad 70%, #5b5e69); transition: height 120ms linear; }
.pr-hg__hg i { position: absolute; left: 0; right: 0; top: -6px; height: 12px; border-radius: 50%; background: radial-gradient(ellipse at 50% 30%, #fff, #b5b9c4 60%, #7d818c); }
.pr-hg__scale { position: absolute; left: 66%; top: 0; bottom: 9%; width: 40%; }
.pr-hg__scale span { position: absolute; left: 0; transform: translateY(50%); display: flex; gap: 8px; align-items: center; font-family: var(--font-mono); font-size: 11px; color: rgba(255,255,255,0.55); white-space: nowrap; }
.pr-hg__scale span::before { content: ""; width: 10px; height: 1px; background: currentColor; }
.pr-hg__dish { position: absolute; left: 0; right: 0; bottom: 0; height: 12%; border-radius: 0 0 40px 40px; border: 2px solid rgba(255,255,255,0.3); border-top: 0; overflow: hidden; }
.pr-hg__dish span { position: absolute; left: 0; right: 0; bottom: 0; height: 60%; background: linear-gradient(180deg, #d9dce3, #7d818c); }
.pr-hg__cap { position: absolute; left: 24px; right: 24px; bottom: 18px; margin: 0; text-align: center; font-size: 13px; color: rgba(255,255,255,0.55); }

/* ---------- 9 · Diary ---------- */
.pr-diary { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(32px, 5vw, 90px); align-items: center; padding: 0 clamp(24px, 4.6vw, 88px) clamp(80px, 10vw, 150px); }
.pr-diary__cal { position: relative; border-radius: var(--radius-xl); background: #fbfaf7; color: var(--ink); padding: 28px; box-shadow: 0 30px 80px rgba(20,21,42,0.16), inset 0 0 0 1px rgba(0,0,0,0.05); }
.pr-diary__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; font-size: 13px; color: var(--ink-soft); }
.pr-diary__head b { font-family: var(--font-display); font-weight: 400; font-size: 22px; color: var(--ink); letter-spacing: -0.02em; }
.k-line { display: inline-block; width: 18px; height: 3px; border-radius: 2px; background: var(--pc); vertical-align: middle; margin: 0 4px 0 10px; }
.k-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--coral); vertical-align: middle; margin: 0 4px 0 10px; }
.pr-diary__grid { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.pr-diary__grid > div { position: relative; aspect-ratio: 1 / 1.05; border-radius: 12px; background: #EFEBE5; padding: 6px 8px; font-size: 11px; font-weight: 600; color: rgba(26,29,33,0.45); }
.pr-diary__grid > div.is-dip { background: #ECEAF8; }
.pr-diary__grid em { position: absolute; left: 50%; bottom: 18%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(232,116,110,0.18);
  transform: translateY(calc(var(--f, 1) * -180px)) scale(calc(1 - var(--f, 1) * 0.5)); opacity: calc(1 - var(--f, 1)); }
.pr-diary__svg { position: absolute; left: 28px; right: 28px; bottom: 28px; top: 70px; width: calc(100% - 56px); height: calc(100% - 98px); pointer-events: none; overflow: visible; }
.d-line { fill: none; stroke: var(--pc); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: var(--len, 2000); stroke-dashoffset: calc(var(--len, 2000) * (1 - var(--dl, 0))); }
.pr-diary__copy { display: grid; gap: 20px; }
.pr-diary__copy > p { margin: 0; font-size: 17px; line-height: 1.6; color: var(--ink-soft); }
.pr-diary__tips { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 10px; }
.pr-diary__tips li { position: relative; padding: 14px 18px 14px 44px; border-radius: 18px; background: #ECE8E3; font-size: 15px; line-height: 1.5; }
.pr-diary__tips li::before { content: ""; position: absolute; left: 18px; top: 21px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--pc); }

/* ---------- 10 · Close — letters breathe ---------- */
.pr-close { margin: 0 var(--inset); border-radius: var(--radius-xl); min-height: 90vh; display: grid; place-items: center; padding: 80px 24px; color: #fff; overflow: hidden;
  background: radial-gradient(70% 60% at 50% 50%, #26284f, var(--night) 70%); }
.pr-close__line { margin: 0; text-align: center; font-family: var(--font-display); font-weight: 300; font-size: clamp(38px, 6vw, 104px); line-height: 1.04; letter-spacing: -0.045em; }
.pr-close__line .ch { display: inline-block; transform-origin: 50% 100%; transform: scale(calc(1 + var(--k, 0) * 0.14), calc(1 - var(--k, 0) * 0.32)); filter: blur(calc(var(--k, 0) * 1.2px)); opacity: calc(1 - var(--k, 0) * 0.45); }
.pr-close__line .wd { display: inline-block; white-space: nowrap; }

/* ---------- Homepage row ---------- */
.pr-home { position: relative; aspect-ratio: 16 / 13; width: 100%; border-radius: var(--radius-xl); overflow: hidden; isolation: isolate; background: radial-gradient(80% 70% at 50% 10%, #2a2c56 0%, #14152a 70%); }
.pr-home__in { position: absolute; inset: 0; transform: rotateX(calc(var(--rx, 0deg) * 0.5)) rotateY(calc(var(--ry, 0deg) * 0.5)) scale(1.03); transition: transform 600ms var(--ease); }
.pr-home__trace { position: absolute; left: 6%; right: 6%; top: 6%; width: 88%; height: 34%; overflow: visible; }
.pr-home__trace .t-grid { stroke: rgba(255,255,255,0.07); }
.pr-home__trace .t-line { fill: none; stroke: var(--lav); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: prHomeDraw 9s var(--ease) infinite; filter: drop-shadow(0 0 8px rgba(185,164,255,0.6)); }
.pr-home__trace .t-pen { fill: #fff; filter: drop-shadow(0 0 8px #fff); }
@keyframes prHomeDraw { 0% { stroke-dashoffset: 1000; opacity: 1; } 70% { stroke-dashoffset: 0; opacity: 1; } 92% { stroke-dashoffset: 0; opacity: 0; } 100% { stroke-dashoffset: 1000; opacity: 0; } }
.pr-home__card { position: absolute; margin: 0; z-index: 2; }
.pr-home__card img { display: block; width: 100%; border-radius: 18px; box-shadow: 0 24px 60px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.08); }
.pr-home__card--main { width: 52%; left: 4%; bottom: 5%; }
.pr-home__card--alert { width: 43%; right: 4%; top: 44%; }

/* ---------- Responsive ---------- */
@media (min-width: 1001px) and (max-width: 1280px) { .pr-hero__copy { max-width: 470px; } .pr-hero { grid-template-columns: minmax(0, 470px) auto; justify-content: space-between; } }
@media (max-width: 1000px) {
  .pr-hero { grid-template-columns: 1fr; justify-items: start; }
  .pr-hero__phone { justify-self: center; width: min(280px, 70vw); }
  .pr-lift__sticky { grid-template-columns: 1fr; grid-template-rows: auto 1fr; gap: 10px; padding-top: 76px; }
  .pr-lift__copy { gap: 10px; } .pr-lift__copy > p { font-size: 14px; }
  .pr-lift__stops li { grid-template-columns: 1fr; gap: 2px; padding: 8px 12px; font-size: 13px; }
  .pr-lift__stops li:not(.is-on) span { display: none; }
  .pr-lift__note { display: none; }
  .pr-baro__sticky { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 0.8fr) minmax(0, 1fr) auto; gap: 10px; padding-top: 76px; }
  .pr-baro__head { grid-template-columns: 1fr; } .pr-baro__head p { font-size: 13px; }
  .pr-ear__sticky { grid-template-columns: 1fr; grid-template-rows: minmax(0, 0.9fr) auto; gap: 8px; padding-top: 76px; }
  .pr-ear__svg { max-height: 36vh; } .pr-ear__copy { gap: 10px; }
  .pr-ear__steps li { padding: 8px 12px 8px 42px; font-size: 13px; } .pr-ear__steps li::before { left: 12px; top: 9px; }
  .pr-ear__steps li:not(.is-on) { display: none; }
  .pr-year, .pr-hg, .pr-diary { grid-template-columns: 1fr; }
  .pr-ahead__copy, .pr-ahead__stage { grid-template-columns: 1fr; }
  .pr-ahead__crops { grid-template-columns: 1fr 1fr; } .pr-ahead__crops figure:last-child { grid-column: 1 / -1; }
  .pr-hg__read { grid-template-columns: 1fr 1fr; }
  .pr-diary__cal { order: 2; }
}
@media (max-width: 600px) {
  .pr-year__months { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pr-diary__cal { padding: 16px; } .pr-diary__svg { left: 16px; right: 16px; bottom: 16px; top: 56px; width: calc(100% - 32px); height: calc(100% - 72px); }
  .pr-diary__grid { gap: 4px; } .pr-diary__grid > div { padding: 3px 4px; font-size: 9px; border-radius: 8px; }
  .pr-diary__grid em { width: 10px; height: 10px; margin-left: -5px; }
  .pr-baro__read { left: 14px; top: 10px; } .pr-baro__read b { font-size: 30px; }
  .pr-ahead__note { position: relative; left: auto; top: auto; min-width: 0; margin-bottom: 4px; }
}
html[lang="ja"] .pr-hero__title { font-size: clamp(34px, 3.8vw, 64px); line-height: 1.15; }
@media (prefers-reduced-motion: reduce) {
  .pr-home__trace .t-line { animation: none; stroke-dashoffset: 0; }
  .pr-ahead__note { transition: none; }
}
