/* ID: BCP-0009 / v17 / 2026-09-14 — hero reveal on scroll; scroll-scrubbed hero clip over the still artwork
   v17: the three beat cards are removed on desktop and phone alike. The hero is the picture and the
   scroll; the words belong to the sections below. The still-artwork fallbacks (.fh-art, .fh-art-clip,
   the data-motion hides and the reduced-motion rule) are untouched, so a missing or stopped clip
   still leaves a complete hero. */
html { --forge-home-ready:1; }
body.forge-landing { background:#f5f0e5; }
.forge-landing .wrap { max-width:none; }
.forge-landing .wrap > .nav,.forge-landing .wrap > .mqdark { display:none; }
.forge-landing > .wm { display:none; }
.forge-landing #mainbody { padding:0; }
.forge-landing .botbar { max-width:1200px; margin:auto; padding:32px 24px; }
.forge-landing #totop { display:none!important; }
.forge-landing #checkoutNotice { position:relative; z-index:4; max-width:900px; margin:16px auto!important; }
.fh { --fh-ink:#071d2b; --fh-muted:#56656a; --fh-sand:#f5f0e5; --fh-sky:#b5e9e5; --fh-rule:#d5d6cc; color:var(--fh-ink); font-family:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Noto Sans JP','Yu Gothic',sans-serif; font-size:16px; line-height:1.75; overflow:clip; }
.fh * { box-sizing:border-box; }
.fh h1,.fh h2,.fh h3,.fh p { margin:0; }
.fh button,.fh a { -webkit-tap-highlight-color:transparent; }
.fh button { font:inherit; cursor:pointer; }
.fh a { color:inherit; text-decoration:none; }
.fh [hidden] { display:none!important; }
.fh :focus-visible { outline:3px solid #006a92; outline-offset:5px; }
.fh button:disabled { cursor:wait; opacity:.6; }
.fh details,.fh details:hover { background:transparent; box-shadow:none; }
.fh summary::after { color:inherit; }
.fh-hero { position:relative; background:var(--fh-sky); }
.fh-visual { position:relative; height:calc(100svh - 142px); min-height:590px; max-height:860px; isolation:isolate; overflow:clip; }
.fh-art { position:absolute; z-index:-1; width:100%; height:100%; inset:0; object-fit:cover; object-position:center 72%; }
/* The hero clip is the same artwork in motion, laid over the still in the same box.
   It is inserted after the <img>, so it wins on equal z-index while the still keeps
   serving as the poster underneath. Invisible until it can actually seek: a missing,
   slow or unsupported file simply leaves the hero exactly as it is today. */
.fh-art-clip { opacity:0; transition:opacity .55s ease; pointer-events:none; }
.fh-art-clip.is-ready { opacity:1; }
.fh[data-motion=system-reduced] .fh-art-clip,.fh[data-motion=inactive] .fh-art-clip { display:none; }
@media (prefers-reduced-motion:reduce) { .fh-art-clip { display:none; } }
.fh-sky { position:absolute; inset:0; overflow:clip; pointer-events:none; user-select:none; }
.fh-sky-track { position:absolute; top:0; left:0; opacity:0; offset-position:0 0; offset-distance:0%; animation-duration:120s; animation-delay:.2s; animation-timing-function:linear; animation-iteration-count:infinite; animation-play-state:paused; animation-fill-mode:both; }
.fh-plane-track { z-index:0; width:76px; height:22px; offset-path:var(--fh-plane-path); offset-anchor:80% 55%; offset-rotate:auto; animation-name:fh-plane-pass; }
.fh-plane { display:block; width:76px; height:22px; opacity:.62; filter:blur(.15px); }
.fh-birds-track { z-index:2; width:86px; height:42px; offset-path:var(--fh-birds-path); offset-anchor:50% 50%; offset-rotate:0deg; animation-name:fh-birds-pass; }
.fh-bird { position:absolute; width:23px; height:16px; fill:none; stroke:#487c82; stroke-width:2; stroke-linecap:round; animation:fh-bird-drift 5.7s ease-in-out infinite; animation-play-state:paused; }
.fh-bird-1 { left:0; top:0; }
.fh-bird-2 { left:29px; top:11px; width:18px; opacity:.8; }
.fh-bird-3 { left:52px; top:3px; width:15px; opacity:.64; }
.fh-wing { transform-origin:16px 14px; animation:fh-wingbeat 4.9s ease-in-out infinite; animation-play-state:paused; }
.fh-bird-2 { animation-duration:6.4s; animation-delay:-1.7s; }
.fh-bird-3 { animation-duration:7.1s; animation-delay:-3s; }
.fh-bird-2 .fh-wing { animation-duration:5.6s; animation-delay:-1.1s; }
.fh-bird-3 .fh-wing { animation-duration:6.2s; animation-delay:-2.7s; }
.fh-motion-on .fh-sky[data-sky-running=true] .fh-sky-track,.fh-motion-on .fh-sky[data-sky-running=true] .fh-wing,.fh-motion-on .fh-sky[data-sky-running=true] .fh-bird { animation-play-state:running; }
.fh[data-motion=system-reduced] .fh-sky,.fh[data-motion=inactive] .fh-sky { visibility:hidden; }
/* Both tracks use the same 120 s clock. Resets and fades stay inside non-overlapping slots. */
@keyframes fh-plane-pass {
 0%,11% { offset-distance:0%; opacity:0; } 12% { opacity:1; } 31% { opacity:1; }
 32%,63.999% { offset-distance:100%; opacity:0; } 64% { offset-distance:0%; opacity:0; }
 65% { opacity:1; } 86% { opacity:1; } 87%,100% { offset-distance:100%; opacity:0; }
}
@keyframes fh-birds-pass {
 0% { offset-distance:0%; opacity:0; } .5% { opacity:1; } 7% { opacity:1; }
 7.5%,43.999% { offset-distance:100%; opacity:0; } 44% { offset-distance:0%; opacity:0; }
 44.5% { opacity:1; } 52.5% { opacity:1; } 53%,100% { offset-distance:100%; opacity:0; }
}
@keyframes fh-wingbeat { 0%,13%,26%,39%,100% { transform:scaleY(.94); } 6%,19%,32% { transform:scaleY(.25); } 47%,88% { transform:scaleY(.8); } }
@keyframes fh-bird-drift { 0%,100% { transform:translate(0,0) rotate(-4deg); } 37% { transform:translate(-3px,-3px) rotate(2deg); } 73% { transform:translate(2px,2px) rotate(-1deg); } }
@supports not (offset-path:path('M 0 0 L 1 1')) { .fh-sky { display:none; } }
.fh-header { position:relative; z-index:3; display:flex; align-items:center; justify-content:space-between; padding:22px 22px 0; max-width:1320px; margin:auto; gap:20px; }
.fh-brand { display:flex; flex-direction:column; align-items:flex-start; gap:2px; }
.fh-brand strong { font-size:28px; font-weight:850; letter-spacing:-1.1px; line-height:1.15; }
.fh-brand small { font-size:10px; font-weight:650; letter-spacing:.06em; }
.fh-header-actions { display:flex; align-items:center; gap:8px; }
.fh-motion-toggle { min-height:44px; padding:7px 10px; font-size:10px!important; font-weight:650!important; line-height:1.4; color:var(--fh-ink); border:1px solid #487b7c80; background:#e1f6ee65; border-radius:999px; white-space:nowrap; }
.fh-motion-toggle:disabled { opacity:.8!important; cursor:default!important; }
.fh-scroll-progress { position:fixed; z-index:58; top:0; left:0; right:0; height:3px; background:#35645b; transform:scaleX(var(--fh-progress,0)); transform-origin:left center; pointer-events:none; }
.fh-motion-on .fh-art { translate:0 var(--fh-pan,0px); transform:scale(1.035); }
.fh-motion-on .fh-arrow { transition:transform .24s ease,background .24s; }
.fh-motion-on .fh-primary:hover .fh-arrow { transform:translateX(3px); }
.fh:not(.fh-motion-on) * { transition:none!important; }
.fh-menu { width:48px; height:48px; padding:13px; border:0; border-radius:15px; background:var(--fh-ink); color:var(--fh-sky); display:flex; flex-direction:column; justify-content:center; gap:5px; }
.fh-menu span { height:2px; background:currentColor; border-radius:2px; width:100%; }
.fh-copy { position:relative; z-index:1; padding:50px 18px 0; text-align:center; max-width:700px; margin:auto; }
.fh-copy h1 { font-size:clamp(33px,9.2vw,52px); font-weight:900; letter-spacing:-.055em; line-height:1.43; }
.fh-copy h1 span { display:block; }
.fh-copy p { margin-top:22px; font-size:clamp(14px,3.8vw,17px); font-weight:750; line-height:1.85; }
.fh-hero-actions { position:relative; background:var(--fh-sand); border-radius:26px 26px 0 0; padding:18px 20px 15px; margin-top:-20px; z-index:1; text-align:center; }
.fh-hero-actions > p { font-size:12px; font-weight:700; margin-bottom:9px; letter-spacing:.04em; }
.fh-primary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; width:100%; max-width:450px; margin:0 auto; padding:15px 22px; background:var(--fh-ink); color:#fff!important; border:1px solid var(--fh-ink); border-radius:999px; font-size:16px!important; font-weight:750!important; line-height:1.5; text-align:left; transition:background .18s,transform .18s; }
.fh-primary:hover { background:#174759; }
.fh-primary:active { transform:scale(.985); }
.fh-arrow { flex:0 0 26px; width:26px; height:26px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; font-size:18px; line-height:1; }
.fh-scroll { display:inline-flex; align-items:center; gap:9px; min-height:44px; font-size:11px; letter-spacing:.06em; margin-top:4px; }
.fh-scroll span { font-size:18px; }
.fh-section { padding:64px 22px; scroll-margin-top:20px; }
.fh-inner { max-width:1120px; margin:auto; }
.fh-kicker { display:flex; gap:14px; align-items:center; font-size:10px!important; letter-spacing:.16em; font-weight:750; margin-bottom:20px!important; }
.fh-kicker:before { content:''; width:28px; height:1px; background:currentColor; }
.fh-section h2 { font-size:clamp(30px,8vw,44px); letter-spacing:-.045em; font-weight:850; line-height:1.45; }
.fh-section h2 span { display:block; }
.fh-section-lead { font-size:14px; margin-top:16px!important; color:var(--fh-muted); line-height:1.9; }
.fh-report-section { background:var(--fh-sand); padding-top:46px; }
.fh-report-section .fh-section-lead { max-width:460px; }
.fh-benefits { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; list-style:none; padding:0; margin:25px 0 0; }
.fh-benefits li { display:flex; gap:10px; align-items:flex-start; padding:15px 0; border-top:1px solid #bfc9be; }
.fh-benefit-icon { display:flex; flex:0 0 24px; color:#467268; margin-top:2px; }
.fh-benefits b { display:block; font-size:14px; font-weight:800; letter-spacing:-.04em; }
.fh-benefits li div > span { display:block; font-size:11px; line-height:1.7; color:var(--fh-muted); margin-top:3px; }
.fh-report-scope { font-size:11px; line-height:1.8; color:var(--fh-muted); margin-top:9px!important; }
.fh-preview-label { font-size:12px; font-weight:700; line-height:1.7; margin-top:30px!important; }
.fh-tabs { display:grid; grid-template-columns:1fr 1.4fr 1fr; gap:7px; margin:28px 0 20px; }
.fh-report-content .fh-tabs { margin-top:12px; }
.fh-tabs button { border:1px solid #798688; background:transparent; border-radius:999px; min-height:46px; padding:9px 6px; font-size:13px; font-weight:750; color:var(--fh-ink); }
.fh-tabs button[aria-selected=true] { background:var(--fh-ink); border-color:var(--fh-ink); color:white; }
.fh-paper-wrap { position:relative; padding-bottom:10px; }
.fh-paper-wrap:before { content:''; position:absolute; inset:8px 7px 0 9px; background:#e5e0d4; border:1px solid #d8d5ca; transform:rotate(1.3deg); border-radius:3px; }
.fh-paper { position:relative; background:#fffefa; border:1px solid #d6d7cd; border-radius:3px; padding:25px 21px 23px; box-shadow:0 8px 25px #1b2e3b08; }
.fh-paper-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.fh-sample-badge { display:inline-flex; align-items:center; background:#e7efea; color:#254b43; border-radius:3px; font-size:10px; font-weight:750; padding:4px 8px; }
.fh-paper-brand { font-size:10px; font-weight:800; letter-spacing:-.3px; }
.fh-paper h3 { font-size:22px; font-weight:850; letter-spacing:-.05em; margin:17px 0 8px; line-height:1.5; }
.fh-example { font-size:11px; color:var(--fh-muted); padding-bottom:18px; border-bottom:1px solid var(--fh-rule); }
.fh-paper-promise { font-size:12px; font-weight:650; color:#467268; margin:0 0 11px!important; }
.fh-report-items { list-style:none; padding:0; margin:0; }
.fh-report-items li { display:grid; grid-template-columns:25px 1fr; gap:10px; padding:20px 0; border-bottom:1px solid var(--fh-rule); }
.fh-report-items li:last-child { border:0; padding-bottom:4px; }
.fh-step-number { color:#467268; font-size:12px; font-weight:800; padding-top:2px; }
.fh-report-items b { display:block; font-size:14px; margin-bottom:5px; line-height:1.55; }
.fh-report-items p { font-size:13px; line-height:1.8; color:#344c53; }
.fh-report-category { display:block; color:#467268; font-size:10px; font-weight:750; letter-spacing:.05em; margin-bottom:5px; }
.fh-report-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.fh-report-tags span { padding:3px 7px; border-radius:3px; background:#edf2ec; color:#36574e; font-size:10px; line-height:1.55; }
.fh-stock-example { padding:11px 10px; background:#edf2ec; border-radius:5px; margin-top:11px; }
.fh-stock-example > p { font-size:10px; font-weight:750; }
.fh-stock-example dl { display:grid; grid-template-columns:repeat(3,1fr); margin:9px 0; text-align:center; }
.fh-stock-example dl > div + div { border-left:1px solid #c7d5ca; }
.fh-stock-example dt { font-size:10px; color:#36574e; }
.fh-stock-example dd { margin:0; font-size:27px; font-weight:800; line-height:1.3; letter-spacing:-.035em; }
.fh-stock-example dd small { font-size:12px; margin-left:3px; font-weight:650; }
.fh-stock-example > small { display:block; font-size:10px; line-height:1.7; color:var(--fh-muted); }
.fh-note { font-size:11px; line-height:1.85; color:var(--fh-muted); margin-top:18px!important; }
.fh-note a { text-decoration:underline; }
.fh-detail { margin-top:16px; border-top:1px solid var(--fh-rule); }
.fh-detail summary { display:flex; justify-content:space-between; gap:10px; align-items:center; list-style:none; font-size:13px; font-weight:750; min-height:52px; cursor:pointer; padding:10px 0; }
.fh-detail summary::-webkit-details-marker { display:none; }
.fh-detail summary:after { content:'＋'; font-size:20px; font-weight:400; }
.fh-detail[open] summary:after { content:'−'; }
.fh-detail p { font-size:13px; color:var(--fh-muted); padding:0 0 17px; }
.fh-report-cta { margin-top:25px; }
.fh-report-cta .fh-note { text-align:center; margin-top:9px!important; }
.fh-start-section { background:#badbd2; }
.fh-options { display:grid; gap:0; margin-top:30px; }
.fh-option { width:100%; background:none; border:0; border-top:1px solid #698c83; padding:25px 0; display:grid; grid-template-columns:30px 1fr 30px; align-items:center; text-align:left; color:var(--fh-ink); gap:10px; }
.fh-option:last-child { border-bottom:1px solid #698c83; }
.fh-option > small { align-self:start; padding-top:4px; font-size:11px; font-weight:750; }
.fh-option strong { font-size:23px; letter-spacing:-.04em; font-weight:800; display:block; line-height:1.55; }
.fh-option .fh-option-desc { display:block; font-size:12px; margin-top:6px; line-height:1.8; font-weight:500; }
.fh-option .fh-arrow { background:var(--fh-ink); color:white; }
.fh-option:hover .fh-arrow { background:#27604d; transform:translateX(3px); }
.fh-how-section { background:#f9f7f0; }
.fh-how { margin:30px 0 0; padding:0; list-style:none; }
.fh-how li { display:grid; grid-template-columns:40px 1fr; gap:15px; position:relative; padding-bottom:28px; }
.fh-how li:not(:last-child):before { content:''; position:absolute; top:36px; bottom:0; left:17px; width:1px; background:#abbdb6; }
.fh-how li > span { display:grid; place-items:center; width:35px; height:35px; background:#d9ebe5; font-size:12px; font-weight:750; border-radius:50%; }
.fh-how b { display:block; font-size:17px; margin:0 0 5px; }
.fh-how p { color:var(--fh-muted); font-size:13px; }
.fh-faq { margin-top:28px; }
.fh-faq details { border-bottom:1px solid var(--fh-rule); }
.fh-faq summary { font-size:14px; font-weight:750; padding:19px 0; cursor:pointer; list-style:none; display:flex; align-items:center; gap:12px; justify-content:space-between; }
.fh-faq summary:after { content:'＋'; flex:0 0 18px; }
.fh-faq details[open] summary:after { content:'−'; }
.fh-faq p { font-size:13px; line-height:1.9; color:var(--fh-muted); padding:0 0 20px; }
.fh-end { background:#193d3d; color:#fff9eb; padding:55px 22px; text-align:center; }
.fh-end h2 { font-size:29px; font-weight:800; letter-spacing:-.04em; line-height:1.55; margin-bottom:24px; }
.fh-end .fh-primary { background:#fff9eb; color:var(--fh-ink)!important; border:0; }
.fh-end .fh-note { color:#c3d5ca; }
.fh-dialog { width:calc(100% - 20px); max-width:550px; max-height:calc(100dvh - 30px); overflow:auto; margin:auto auto 0; padding:22px 22px calc(25px + env(safe-area-inset-bottom)); background:#faf7ef; color:var(--fh-ink); border:0; border-radius:24px 24px 0 0; box-shadow:0 -15px 70px #071d2b22; overscroll-behavior:contain; }
.fh-dialog::backdrop { background:#071d2b80; backdrop-filter:blur(3px); }
.fh-dialog .fh-dialog-head { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.fh-dialog h2 { font-size:25px; line-height:1.5; font-weight:800; }
.fh-close { min-width:44px; min-height:44px; border:1px solid #c4cbc3; border-radius:50%; background:transparent; color:var(--fh-ink); font-size:24px!important; line-height:1; }
.fh-dialog .fh-options { margin-top:18px; }
.fh-dialog .fh-option { padding:21px 0; }
.fh-dialog .fh-option strong { font-size:21px; }
.fh-dialog .fh-note { margin-top:13px!important; }
.fh-live { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.fh-connection-note { color:#9b311d; border:1px solid #c9a496; padding:12px; margin-top:16px!important; font-size:13px; }
@media(min-width:700px){
 .fh-visual { min-height:740px; height:90svh; max-height:1000px; }
 /* Desktop only: the crop window slides down the tall artwork as the hero scrolls,
    so the townscape, the two people and the emergency kit all come into view.
    Default 100% keeps the lower half visible when the script never sets the variable. */
 .fh-art { object-fit:cover; object-position:center var(--fh-art-y,100%); width:68%; left:auto; background:var(--fh-sky); }
 .fh-visual:after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,#b5e9e5 20%,#b5e9e5 32%,#b5e9e5e8 40%,#b5e9e500 66%); pointer-events:none; }
 .fh-header { padding:30px 40px 0; }
 .fh-brand strong { font-size:32px; }
 .fh-copy { margin:100px 0 0 max(40px,calc((100vw - 1240px)/2)); padding:0; text-align:left; width:55%; }
 .fh-copy h1 { font-size:clamp(42px,5vw,70px); line-height:1.5; }
 .fh-copy p { font-size:18px; margin-top:24px; }
 .fh-hero-actions { border-radius:0; padding:21px 32px 12px; }
 .fh-section { padding:92px 44px; }
 .fh-report-section .fh-inner { display:grid; grid-template-columns:1fr 1fr; column-gap:70px; align-items:start; }
 .fh-report-intro { position:sticky; top:70px; }
 .fh-preview-label { margin-top:0!important; }
 .fh-tabs { margin-top:0; }
 .fh-paper { padding:30px; }
 .fh-paper h3 { font-size:27px; }
 .fh-report-items b { font-size:16px; }
 .fh-report-items p { font-size:14px; }
 .fh-section h2 { font-size:44px; }
 .fh-section-lead { font-size:16px; }
 .fh-start-section .fh-inner,.fh-how-section .fh-inner { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
 .fh-options,.fh-how { margin-top:0; }
 .fh-dialog { margin:auto; border-radius:24px; }
 .fh-faq { margin-top:0; }
 .fh-end { padding:70px 32px; }
 .fh-end h2 { font-size:38px; }
}
@media(max-width:360px){
 .fh-copy { padding-top:42px; }
 .fh-copy h1 { font-size:31px; }
 .fh-header { padding:20px 18px 0; }
 .fh-section { padding-left:18px; padding-right:18px; }
 .fh-paper { padding:21px 17px; }
}
@media(prefers-reduced-motion:reduce){.fh * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }.fh-art { translate:none!important; transform:none!important; }.fh-sky { display:none!important; }}
/* Reduced motion / stopped: hold the static frame that already shows the lower half of the artwork. */
@media(prefers-reduced-motion:reduce) and (min-width:700px){ .fh-art { object-position:center 100%!important; } }
