/* Page-scoped styles for guide-open-house-follow-up-planner (visual preview 2026-10-28). Only selectors under .ohv. */
.ohv{--ohv-ease:cubic-bezier(.16,1,.3,1);--ohv-line:rgba(245,245,242,.42);--ohv-dim:rgba(245,245,242,.28);--ohv-panel:#141416;--ohv-glass:rgba(255,255,255,.04);--ohv-border:rgba(255,255,255,.12)}
.ohv .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ohv-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ohv svg use{stroke:currentColor}
.ohv [data-ohv-proxy][hidden]{display:none}

/* Hero */
.ohv-hero{text-align:left}
.ohv-hero__grid{display:grid;gap:36px;align-items:center}
.ohv-hero .page-hero__content{margin:0;max-width:640px}
.ohv-hero .g-rule{margin:22px 0 18px}
.ohv-hero .page-hero__sub{margin:0;max-width:540px}
.ohv-hero .page-hero__title{font-size:clamp(34px,4.6vw,58px)}
.ohv-hero__fine{margin:14px 0 0;font-size:14px;color:var(--muted)}
.ohv-hero__fine a{color:var(--accent)}
.ohv-hero__art{margin:0;position:relative;z-index:1;border:1px solid var(--ohv-border);background:linear-gradient(160deg,rgba(26,26,28,.85),rgba(11,11,12,.9));border-radius:24px;padding:18px 14px 12px}
.ohv-trio{display:block;width:100%;height:auto;aspect-ratio:560/400}
.ohv-s-paper{fill:#1A1A1C;stroke:#E8D5A3;stroke-width:1.6}
.ohv-s-clip{fill:#0B0B0C;stroke:#E8D5A3;stroke-width:1.6}
.ohv-s-rows path,.ohv-s-dim{stroke:var(--ohv-line);stroke-width:1.5}
.ohv-s-phone{fill:#0B0B0C;stroke:#E8D5A3;stroke-width:1.8}
.ohv-s-frame{stroke:#B07A2A;stroke-width:2.2}
.ohv-s-shutter{stroke:#FBF3DD;stroke-width:1.8}
.ohv-flash{fill:#FBF3DD;opacity:0;stroke:none}
.ohv-trio__arrow{stroke:#C9A24B;stroke-width:2}
.ohv-card rect:first-child{fill:#141416;stroke:rgba(232,213,163,.55);stroke-width:1.4}
.ohv-card--1 rect:first-child{stroke:#E8D5A3;stroke-width:1.8}
.ohv-s-bright{stroke:#FBF3DD;stroke-width:2}
.ohv-pill-r{fill:rgba(201,162,75,.16);stroke:#C9A24B;stroke-width:1.2}
.ohv-pill-t{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;fill:#FBF3DD}
.ohv-trio__labels text{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;fill:rgba(245,245,242,.62)}
.ohv-cap{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(245,245,242,.55);margin:10px 0 0}
.ohv-cap--center,.g-block p.ohv-cap--center{text-align:center;max-width:none;margin-left:auto;margin-right:auto}
.ohv-hero__art .ohv-cap{text-align:center}
.ohv-chips{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px;position:relative;z-index:1}
.ohv-chips li{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:100px;font-size:15px;color:var(--text)}
.ohv-chips svg,.ohv-flow svg,.ohv-howto svg,.ohv-guards svg,.ohv-pipe svg,.ohv-note header svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:var(--accent);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Beats */
.ohv-beats{list-style:none;margin:36px 0 56px;padding:0;display:grid;gap:16px;counter-reset:none}
.ohv-beat{position:relative;border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:24px;padding:16px 18px 20px}
.ohv-beat__art{background:var(--ohv-panel);border-radius:16px;margin-bottom:14px;display:flex;justify-content:center}
.ohv-beat__art img{display:block;width:100%;max-width:240px;height:auto;aspect-ratio:3/2}
.ohv-num{display:inline-block;font-family:var(--font-mono);font-size:12px;background:var(--primary);color:#fff;border-radius:6px;padding:3px 7px;margin-right:8px;vertical-align:middle}
.ohv-beat h3{display:inline;font-family:var(--font-display);font-weight:400;font-size:20px;letter-spacing:-.02em;color:var(--text);vertical-align:middle}
.ohv-beat p{margin:10px 0 0;color:var(--muted);line-height:1.6;font-size:15px}

/* Splits */
.ohv-split{display:grid;gap:28px;align-items:start}
.ohv-frame{margin:0}
.ohv-frame img{display:block;width:100%;max-width:440px;height:auto;aspect-ratio:360/260;border-radius:16px}
.ohv-flow,.ohv-guards,.ohv-pipe{list-style:none;padding:0;margin:0}
.ohv-flow li{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);color:var(--muted);line-height:1.6}
.ohv-flow li:last-child{border-bottom:0}
.ohv-split--prompt .oh-card{margin-top:0}

/* Sample terminal table */
.ohv-term{border:1px solid var(--ohv-border);background:linear-gradient(160deg,rgba(26,26,28,.9),rgba(11,11,12,.95));border-radius:24px;padding:16px 18px 18px;font-family:var(--font-mono)}
.ohv-term__bar{display:flex;align-items:center;gap:7px;margin-bottom:14px}
.ohv-term__bar span{width:9px;height:9px;border-radius:50%;background:rgba(245,245,242,.22)}
.ohv-term__bar b{margin-left:10px;font-weight:400;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.ohv-table{width:100%;border-collapse:collapse;font-size:13px}
.ohv-table th{font-weight:400;text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,245,242,.5);padding:8px 8px 8px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.ohv-table td{padding:11px 8px 11px 0;border-bottom:1px solid rgba(255,255,255,.07);color:var(--text);vertical-align:top}
.ohv-table td:nth-child(2){color:var(--muted)}
.ohv-tag{display:inline-block;padding:3px 9px;border-radius:100px;font-size:11px;white-space:nowrap}
.ohv-tag--ok{background:rgba(201,162,75,.16);color:#F1E6C8;border:1px solid rgba(201,162,75,.5)}
.ohv-tag--hold{background:rgba(245,245,242,.06);color:#F5F5F2;border:1px dashed rgba(245,245,242,.45)}
.ohv-term__foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}
.ohv-term__foot .ohv-cap{margin:0}
.ohv-wait{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:100px;border:1px solid rgba(201,162,75,.6);font-size:12px;color:#FBF3DD}
.ohv-wait::before{content:"";width:7px;height:7px;border-radius:50%;background:#E8D5A3}
.ohv-h3{font-family:var(--font-display);font-weight:300;font-size:clamp(20px,2vw,24px);letter-spacing:-.02em;color:var(--text);margin:40px 0 16px}

/* Sample notes */
.ohv-notes{display:grid;gap:14px}
.ohv-note{border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:16px;padding:16px 18px}
.ohv-note header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:10px}
.ohv-note header span{font-size:15px;color:var(--text)}
.ohv-note header em{font-style:normal;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-left:auto}
.ohv .ohv-note p{font-size:14.5px;line-height:1.6;color:var(--muted);margin:0}
.ohv .ohv-note p.ohv-note__en{margin-top:10px;padding-top:10px;border-top:1px dashed rgba(255,255,255,.14);font-size:13.5px}
.ohv-note__en b{font-weight:500;color:var(--text)}
.ohv-mid-cta{display:flex;justify-content:center;margin-top:22px}

/* How to */
.ohv .ohv-howto{list-style:none;padding:0;display:grid;gap:10px;margin:0 0 18px}
.ohv .ohv-howto li{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:16px;padding:14px 16px;color:var(--muted);line-height:1.6;margin:0}
.ohv .ohv-howto li::before{display:none}

/* Suggested plan timeline */
.ohv-plan{list-style:none;margin:22px 0 6px;padding:0;position:relative}
.ohv-plan::before{content:"";position:absolute;left:31px;top:12px;bottom:12px;width:2px;background:linear-gradient(180deg,#C9A24B,#B07A2A 60%,rgba(176,122,42,.15));transform-origin:top;border-radius:2px}
.ohv-plan li{position:relative;display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:start;padding:0 0 22px}
.ohv-day{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:64px;height:28px;border-radius:100px;background:#0B0B0C;border:1px solid #C9A24B;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:#FBF3DD}
.ohv-plan h3{font-family:var(--font-display);font-weight:400;font-size:18px;color:var(--text);margin:2px 0 4px;letter-spacing:-.01em}
.ohv .ohv-plan p{margin:0;font-size:15px}

/* Guardrails */
.ohv-guards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 22px}
.ohv-guards li{border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px}
.ohv-guards b{font-weight:500;color:var(--text);font-size:15px;margin-top:6px}
.ohv-guards span{color:var(--muted);font-size:13.5px;line-height:1.5}

/* Setup pipeline */
.ohv-pipe{display:grid;gap:12px;margin:8px 0 22px;counter-reset:pipe}
.ohv-pipe li{position:relative;border:1px solid var(--ohv-border);background:var(--ohv-glass);border-radius:16px;padding:16px;display:grid;grid-template-columns:22px 1fr;column-gap:12px;row-gap:2px;align-items:center}
.ohv-pipe li b{font-weight:500;color:var(--text);font-size:15px}
.ohv-pipe li span{grid-column:2;color:var(--muted);font-size:13.5px;line-height:1.5}
.ohv-pipe li svg{grid-row:1/3}
.ohv-pipe li:not(:last-child)::after{content:"";position:absolute;left:26px;bottom:-12px;width:2px;height:12px;background:#C9A24B}
.ohv-pipe__you{border-color:rgba(201,162,75,.6)!important;background:rgba(201,162,75,.08)!important}

/* Calculator bars */
.ohv [hidden]{display:none!important}
.ohv-bars{margin:18px 0 6px;display:grid;gap:10px}
.ohv-bar{display:grid;grid-template-columns:120px 1fr 56px;gap:10px;align-items:center;font-size:13px;color:var(--muted)}
.ohv-bar i{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,#C9A24B,#B07A2A);width:0;transition:width .4s var(--ohv-ease)}
.ohv-bar--check i{background:#E8D5A3}
.ohv-bar b{font-family:var(--font-mono);font-weight:400;color:var(--text);text-align:right}
.ohv-bars small{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(245,245,242,.5)}
.g-next__actions .ohv-proxy{white-space:nowrap}

/* Motion: only when page JS has run and motion is allowed. Content is visible by default. */
.ohv-motion .ohv-io{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ohv-ease),transform .6s var(--ohv-ease)}
.ohv-motion .ohv-io.ohv-in{opacity:1;transform:none}
.ohv-motion .ohv-beats .ohv-beat{opacity:0;transform:translateY(14px);transition:opacity .55s var(--ohv-ease),transform .55s var(--ohv-ease)}
.ohv-motion .ohv-beats.ohv-in .ohv-beat{opacity:1;transform:none}
.ohv-motion .ohv-beats.ohv-in .ohv-beat:nth-child(2){transition-delay:.1s}
.ohv-motion .ohv-beats.ohv-in .ohv-beat:nth-child(3){transition-delay:.2s}
.ohv-motion .ohv-plan::before{transform:scaleY(0);transition:transform 1s var(--ohv-ease) .15s}
.ohv-motion .ohv-in .ohv-plan::before{transform:scaleY(1)}
.ohv-motion .ohv-plan li{opacity:0;transform:translateX(-8px);transition:opacity .5s var(--ohv-ease),transform .5s var(--ohv-ease)}
.ohv-motion .ohv-in .ohv-plan li{opacity:1;transform:none}
.ohv-motion .ohv-in .ohv-plan li:nth-child(2){transition-delay:.25s}
.ohv-motion .ohv-in .ohv-plan li:nth-child(3){transition-delay:.45s}
.ohv-motion .ohv-in .ohv-plan li:nth-child(4){transition-delay:.65s}
/* Hero trio: arrows draw, flash once, cards settle. Runs once on load. */
.ohv-motion .ohv-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:ohv-draw .6s var(--ohv-ease) forwards}
.ohv-motion .ohv-trio__arrow:nth-of-type(1),.ohv-motion .ohv-trio__arrow:nth-of-type(2){animation-delay:.3s}
.ohv-motion .ohv-trio > path:nth-of-type(3),.ohv-motion .ohv-trio > path:nth-of-type(4){animation-delay:1.1s}
.ohv-motion .ohv-flash{animation:ohv-flash .5s ease-out .85s 1}
.ohv-motion .ohv-card{opacity:0;transform:translateY(10px);animation:ohv-card .6s var(--ohv-ease) forwards}
.ohv-motion .ohv-card--3{animation-delay:1.35s}
.ohv-motion .ohv-card--2{animation-delay:1.5s}
.ohv-motion .ohv-card--1{animation-delay:1.65s}
@keyframes ohv-draw{to{stroke-dashoffset:0}}
@keyframes ohv-flash{0%{opacity:0}30%{opacity:.35}100%{opacity:0}}
@keyframes ohv-card{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .ohv-motion .ohv-io,.ohv-motion .ohv-beat,.ohv-motion .ohv-plan li,.ohv-motion .ohv-card{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .ohv-motion .ohv-plan::before{transform:none!important;transition:none!important}
  .ohv-motion .ohv-draw{stroke-dasharray:none;stroke-dashoffset:0;animation:none!important}
  .ohv-motion .ohv-flash{animation:none!important}
  .ohv-bar i{transition:none}
}

/* Layout up */
@media (min-width:720px){
  .ohv-beats{grid-template-columns:repeat(3,1fr)}
  .ohv-notes{grid-template-columns:repeat(3,1fr)}
  .ohv-guards{grid-template-columns:repeat(4,1fr)}
  .ohv-pipe{grid-template-columns:repeat(4,1fr)}
  .ohv-pipe li{grid-template-columns:1fr;row-gap:6px;align-content:start}
  .ohv-pipe li span{grid-column:1}
  .ohv-pipe li svg{grid-row:auto}
  .ohv-pipe li:not(:last-child)::after{left:auto;right:-12px;top:50%;bottom:auto;width:12px;height:2px}
}
@media (min-width:900px){
  .ohv-split{grid-template-columns:1.1fr .9fr;gap:40px}
  .ohv-split--prompt{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  .ohv-hero__grid{grid-template-columns:1.05fr .95fr;gap:48px}
}
@media (max-width:719px){
  .ohv-hero .page-hero__title{font-size:clamp(30px,8vw,40px)}
  .ohv-chips li{font-size:14px;padding:8px 13px}
  .ohv-table{font-size:12px}
  .ohv-bar{grid-template-columns:96px 1fr 48px}
}

/* Light theme (preview toggle) */
html[data-theme="light"] .ohv{--ohv-glass:rgba(11,11,12,.03);--ohv-border:rgba(11,11,12,.12)}
html[data-theme="light"] .ohv-hero__art,html[data-theme="light"] .ohv-term{background:#141416}
html[data-theme="light"] .ohv-term .ohv-table td{color:#F5F5F2}
html[data-theme="light"] .ohv-term .ohv-table td:nth-child(2){color:rgba(245,245,242,.72)}
html[data-theme="light"] .ohv-hero__art .ohv-cap,html[data-theme="light"] .ohv-term .ohv-cap{color:rgba(245,245,242,.6)}
html[data-theme="light"] .ohv-cap,html[data-theme="light"] .ohv-bars small{color:rgba(11,11,12,.6)}
html[data-theme="light"] .ohv-chips svg,html[data-theme="light"] .ohv-flow svg,html[data-theme="light"] .ohv-howto svg,html[data-theme="light"] .ohv-guards svg,html[data-theme="light"] .ohv-pipe svg,html[data-theme="light"] .ohv-note header svg{stroke:#A8842F}
html[data-theme="light"] .ohv-note header em{color:#A8842F}
html[data-theme="light"] .ohv-day{background:#F5F5F2;color:#A8842F}

/* Print: everything visible and static, no decorative frames */
@media print{
  .ohv-io,.ohv-beat,.ohv-plan li,.ohv-card{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .ohv-draw{stroke-dasharray:none!important}
  .ohv-hero__art,.ohv-chips,.ohv-beat__art,.ohv-frame,.ohv-bars,.ohv-mid-cta,.ohv-sprite{display:none!important}
  .ohv-term,.ohv-note,.ohv-guards li,.ohv-pipe li,.ohv-beat,.ohv .ohv-howto li{background:none!important;border-color:#bbb!important;color:#000!important}
  .ohv-term *,.ohv-note *,.ohv-plan *,.ohv-guards *,.ohv-pipe *{color:#000!important}
  .ohv-day{background:#fff!important;border-color:#000!important}
  .ohv svg use,.ohv-guards svg,.ohv-pipe svg,.ohv .ohv-howto svg,.ohv-flow svg,.ohv-note svg{stroke:#000!important}
}
.ohv-table td:first-child{white-space:nowrap}
