:root{--red:#851f2e;--wine:#360910;--gold:#e2bc65;--ink:#422c24;--paper:#fffaf0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#33080e;color:var(--ink);font-family:'Yu Mincho','Hiragino Mincho ProN','Noto Serif JP',serif;line-height:1.9;-webkit-font-smoothing:antialiased}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 20%,#a3532b44,transparent 64%),repeating-linear-gradient(125deg,transparent 0 50px,#daa44a09 51px 52px);z-index:-1}.side-brand{position:fixed;left:max(28px,calc((100vw - 1100px)/2));top:24%;color:var(--gold);writing-mode:vertical-rl;display:flex;gap:32px;letter-spacing:.4em}.side-brand span{font-size:24px}.side-brand small{font-size:14px;opacity:.65}main{max-width:680px;margin:auto;background:var(--paper);box-shadow:0 0 100px #0007}header{height:66px;background:#430d15;color:#f8dea0;display:flex;align-items:center;padding:0 25px;gap:12px;font-weight:600;letter-spacing:.13em;font-size:16px}header small{margin-left:auto;font-size:12px;letter-spacing:.05em;border-bottom:1px solid #b98d43}.seal{display:inline-grid;place-items:center;border:1px solid #dab46a;width:32px;height:36px;color:#eacc8b;font-size:23px;line-height:1}.hero{position:relative;isolation:isolate;overflow:hidden;background:#5d1720;aspect-ratio:2/3}.hero>img{width:100%;height:100%;object-fit:cover;display:block;animation:soar 8s ease-in-out infinite;transform-origin:50% 65%}.hero:after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(#29020b77,transparent 22%,transparent 74%,#3e0b1111)}.hero-top{position:absolute;z-index:2;top:5%;left:8%;font-size:clamp(20px,4vw,29px);line-height:1.9;font-weight:700;letter-spacing:.19em;color:#fff6cf;text-shadow:0 2px 12px #4c0715;writing-mode:vertical-rl}.hero-bottom{position:absolute;bottom:1.3%;z-index:2;left:0;width:100%;text-align:center;color:#fff7e1;font-size:clamp(17px,3.6vw,24px);font-weight:600;letter-spacing:.12em;line-height:1.8}.sunbeam{position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent,#fff4b811 9deg,transparent 19deg,transparent 46deg,#fff8ab1a 57deg,transparent 68deg,transparent 90deg);animation:glowturn 50s linear infinite;mix-blend-mode:screen;pointer-events:none}.particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.particles i{position:absolute;bottom:-5%;width:4px;height:4px;border-radius:50%;background:#fff0a7;box-shadow:0 0 12px 3px #ffbb52;animation:rise var(--duration) linear infinite;animation-delay:var(--delay);left:var(--left)}.cta-block{text-align:center;position:relative;padding:28px 28px 35px}.first{background:linear-gradient(#440e16,#671521);color:#ffe9bc}.cta-kicker{font-size:16px;letter-spacing:.08em;margin:0 0 18px}.cta{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px 11px;width:100%;min-height:88px;padding:18px 25px 18px 17px;border:1px solid #fff5c3;border-radius:8px;background:linear-gradient(110deg,#bd8527,#f9d777 35%,#fff2b3 50%,#e9bd53 76%,#d9a341);box-shadow:0 5px 0 #996317,0 8px 28px #24080855,inset 0 0 0 4px #fff6bc44;color:#512111;font-family:inherit;font-size:clamp(17px,3.5vw,25px);font-weight:800;cursor:pointer;transition:filter .2s,transform .2s}.cta:hover{filter:brightness(1.1);transform:translateY(-2px)}.cta:focus-visible{outline:3px solid #fff;outline-offset:6px}.free{font:700 13px/1.35 sans-serif;writing-mode:vertical-rl;letter-spacing:.1em;padding:6px 5px;border-right:1px solid #96652e77}.tap{position:absolute;right:12px;bottom:-24px;width:40px;height:48px;transform:rotate(-20deg);animation:tap 1.8s ease-in-out infinite;filter:drop-shadow(0 2px 2px #66310e66);pointer-events:none}.tap:before{content:'';position:absolute;top:-8px;left:6px;width:20px;height:20px;border:2px solid #fff9d1;border-radius:50%;animation:ring 1.8s infinite}.tap svg{position:relative;width:100%;height:100%}.cta-note{font-size:13px;margin:24px 0 0;opacity:.8;letter-spacing:.03em}.section{padding:66px 42px;text-align:center}.eyebrow{font-size:14px;color:#a37a32;letter-spacing:.15em;margin-bottom:18px}h2{font-size:clamp(28px,6vw,40px);font-weight:700;line-height:1.65;letter-spacing:.07em;margin:0 0 28px}h2 span{color:var(--red)}h3{line-height:1.75}p{font-size:17px}.worries{background:radial-gradient(ellipse at top,#ead6b050,transparent 60%),#fffaf0}.worry-list{text-align:left;margin-top:32px}.worry-list p{position:relative;padding:23px 0 23px 47px;margin:0;border-bottom:1px solid #b1977038;font-size:17px}.worry-list p span{position:absolute;left:0;top:26px;width:29px;height:29px;border:1px solid #bea178;color:#9d763d;display:grid;place-items:center;font-size:14px;line-height:1;transform:rotate(45deg)}.worry-list strong{font-weight:600}.bridge{margin-top:48px;color:#986f3b}.worries h3{font-size:25px;color:var(--red);margin:15px 0}.ornament{color:#c09a4e;font-size:28px;margin:25px auto 0}.future{background:#f6edda;padding-top:52px}.intro{line-height:2.1;margin:0 0 38px}.future-card{text-align:left;background:#fffbf2;margin:0 0 32px;box-shadow:0 8px 25px #7951240a}.future-card img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.future-copy{padding:28px 30px 30px;position:relative}.number{color:#c49e59;font-size:15px;letter-spacing:.15em;display:block;margin-bottom:9px}.future-copy h3{font-size:27px;margin:0 0 13px;letter-spacing:.08em;color:#6f1827}.future-copy p{margin:0;line-height:1.95}.fine{font-size:12px;line-height:1.8;text-align:left;color:#86745e;margin-top:25px}.about{background:radial-gradient(ellipse at 50% 0,#a6472b,transparent 65%),#5a1020;color:#fff1d5}.about .ornament{margin:0 0 25px}.about h2 span{color:#f3d387}.about .eyebrow{color:#e5bd73}.about>p{line-height:2.35;margin:28px 0}.about-features{display:flex;border-top:1px solid #c8995244;padding-top:32px;margin-top:44px;gap:16px}.about-features>div{flex:1}.about-features b{display:inline-grid;place-items:center;font-weight:400;font-size:29px;border:1px solid #c79955;width:62px;height:62px;border-radius:50%;color:#f5cf7c}.about-features h3{font-size:16px;margin:14px 0 8px}.about-features p{font-size:13px;line-height:1.9;color:#e6cdae;margin:0}.voices{background:#fffcf5}.voice{border-top:1px solid #d9c49d;padding:27px 0 28px;text-align:left}.voice:last-child{border-bottom:1px solid #d9c49d}.voice-meta{display:flex;align-items:center;gap:15px;font-size:15px}.voice-meta small{display:block;font-size:12px;color:#a09482}.avatar{border-radius:50%;display:grid;place-items:center;width:49px;height:49px;background:#f0e4cb;color:#a16d32;font-size:28px}.voice h3{font-size:23px;color:#782737;margin:15px 0}.voice p{font-size:16px;margin:0}.closing{background:linear-gradient(#4a0c18dd,#380711f5),url('assets/hero.webp') center 40%/cover;color:#fff4dc;padding-bottom:28px}.closing h2 span{color:#edc875}.closing .eyebrow{color:#e0b96c}.closing p{line-height:2.15}.closing .cta-block{padding:20px 0 28px}.closing .cta-note{line-height:1.5}footer{text-align:center;background:#28070d;color:#c6a87d;padding:40px 25px}footer p{font-size:16px;letter-spacing:.13em;margin:14px 0 24px}footer small{display:block;font-family:sans-serif;font-size:12px;line-height:1.8;color:#ac927f;margin-top:12px}dialog{max-width:440px;width:calc(100% - 40px);background:#fffaf0;border:1px solid #cba45b;color:#512325;padding:40px 25px;text-align:center;border-radius:10px;box-shadow:0 20px 70px #0006}dialog::backdrop{background:#270710bb;backdrop-filter:blur(5px)}dialog h2{font-size:26px;margin:20px 0 15px}dialog p{font-size:16px}dialog .seal{background:#74182a}.close{position:absolute;top:8px;right:14px;border:0;background:none;font-size:30px;cursor:pointer;color:#6c2931}.dismiss{background:#781b2b;color:#fff1cc;border:0;border-radius:4px;padding:11px 38px;font:inherit;cursor:pointer;margin-top:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes soar{0%,100%{transform:scale(1.015) translateY(5px)}50%{transform:scale(1.065) translateY(-11px)}}@keyframes glowturn{to{transform:rotate(360deg)}}@keyframes rise{0%{transform:translate(0,0);opacity:0}10%{opacity:1}85%{opacity:.8}100%{transform:translate(30px,-850px);opacity:0}}@keyframes tap{0%,60%,100%{transform:translateY(5px) rotate(-20deg)}30%,42%{transform:translateY(-4px) rotate(-20deg) scale(.94)}}@keyframes ring{0%,20%{transform:scale(.6);opacity:0}35%{opacity:1}65%,100%{transform:scale(2);opacity:0}}@media(max-width:1080px){.side-brand{display:none}}@media(max-width:480px){header{height:53px;padding:0 15px;font-size:13px;gap:9px}header small{font-size:11px}.seal{width:27px;height:29px;font-size:21px}.section{padding:48px 24px}.cta-block{padding:24px 22px 28px}.cta-kicker{font-size:13px}.cta{min-height:78px;padding:15px 17px 15px 9px;gap:9px}.free{font-size:11px;padding:4px}.worry-list p{font-size:15px;padding-left:40px}.worries h3{font-size:23px}.future-copy{padding:22px 25px 27px}.future-copy h3{font-size:25px}.future-copy p{font-size:16px}.about-features{gap:8px}.about-features h3{font-size:14px}.about-features p{font-size:12px}.about>p{font-size:15px}.voice h3{font-size:22px}.closing .cta{font-size:18px}.hero-bottom{bottom:1%;font-size:18px}.hero-top{top:5%;font-size:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}

/* Customer voices */
.voices .voice{padding:32px 0 35px}.voices .voice-meta{font-size:1.125rem;font-weight:700;gap:20px}.voice-photo{display:block;flex:none;width:104px;height:104px;object-fit:cover;border-radius:50%;border:3px solid #d9bc82;background:#f4e7cf}.voices .voice h3{margin:24px 0 20px;font-size:1.5rem;line-height:1.8}.voices .voice p{font-size:1.0625rem;line-height:2.05;overflow-wrap:break-word}.voices .voice p+p{margin-top:1.5em}@media(max-width:480px){.voice-photo{width:86px;height:86px}.voices .voice-meta{font-size:1rem;gap:16px}.voices .voice h3{font-size:1.3125rem}.voices .voice p{font-size:1rem;line-height:2.05}}

/* Readable type, clear emphasis and gentle scroll motion. */
:root{--body-font:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif}
.section>p,.future-copy p,.worry-list p,.voices .voice p{font-family:var(--body-font);font-weight:500;font-size:1.125rem;line-height:2.05;letter-spacing:.02em}
.section h2{font-size:clamp(2rem,5.5vw,2.75rem);font-weight:800;line-height:1.65;letter-spacing:.045em;text-wrap:balance}
.eyebrow{font-family:var(--body-font);font-size:.9375rem;font-weight:700;letter-spacing:.09em;color:#86601f}
.about .eyebrow,.closing .eyebrow{color:#f2cf8b}
.section h2>span{font-weight:900}.worries h3{font-size:clamp(1.5rem,4.8vw,1.875rem);font-weight:800}
.worry-list p{padding:25px 10px 25px 46px}.worry-list strong{color:#7b1830;font-weight:800;background:linear-gradient(transparent 62%,#edce7875 62%,#edce7875 94%,transparent 94%);box-decoration-break:clone;-webkit-box-decoration-break:clone}
.worry-list p>span{transform:none;border-radius:50%;font-family:inherit;font-weight:700;background:#f1e0bc}
.future-copy h3{font-size:clamp(1.65rem,4.6vw,2rem);font-weight:800;line-height:1.7}.future-copy .number{font-size:1.125rem;font-weight:700;border-bottom:2px solid #caa75f;display:inline-block;min-width:44px}
.future-card{border-bottom:3px solid #d3ad60;overflow:hidden}.future-card img{transition:filter .4s ease}
.emphasis{color:#83182e;font-weight:800}.highlight{color:#6c1729;font-weight:800;background:linear-gradient(transparent 58%,#f2d882 58%,#f2d882 96%,transparent 96%);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 .06em}
.gold-emphasis{font-weight:800;color:#ffe39b;text-decoration:underline;text-decoration-color:#d8b567;text-decoration-thickness:2px;text-underline-offset:6px}
.about>p{font-size:1.125rem;line-height:2.15}.about-features h3{font-size:1.125rem;font-weight:800}.about-features p{font-family:var(--body-font);font-size:.875rem}
.voices .voice{background:#fff;border:1px solid #dac396;border-top:4px solid #8e2c3b;border-radius:10px;margin:0 0 32px;padding:30px 28px;box-shadow:0 10px 25px #69421209}
.voices .voice:last-child{margin-bottom:0}.voices .voice-meta{font-family:var(--body-font);gap:20px}.voice-age{display:block;font-size:1.625rem;color:#791e30;line-height:1.35}.voice-work{display:block;font-size:1rem;margin-top:7px;font-weight:600;color:#4a392b}
.voices .voice h3{font-size:clamp(1.4rem,4.1vw,1.75rem);font-weight:800;line-height:1.75;padding:17px 18px;margin:24px 0;background:linear-gradient(100deg,#f6e7bd,#fffaf0);border-left:4px solid #bc913d;border-radius:0 5px 5px 0;color:#751e30}
.voices .voice p{font-size:1.0625rem;line-height:2.05;color:#3c3029}.voices .voice p+p{margin-top:1.6em}
.cta{background-size:180% 100%;animation:cta-shine 5.5s ease-in-out infinite;font-weight:900;line-height:1.6;letter-spacing:.015em}.cta-kicker{font-weight:700}.cta-note{font-family:var(--body-font);font-size:.875rem;opacity:1}.hero-top{animation:hero-copy-in 1.15s ease-out both}
.scroll-reveal.is-visible{animation:read-in .7s cubic-bezier(.2,.7,.25,1) both;animation-delay:var(--reveal-delay,0ms)}
.section>h2.is-visible>span{display:inline-block;animation:emphasis-in .9s cubic-bezier(.18,.72,.2,1) .15s both}
@keyframes read-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes emphasis-in{from{opacity:.35;transform:translateY(9px);text-shadow:0 0 18px #d9ac6666}to{opacity:1;transform:translateY(0);text-shadow:0 0 0 transparent}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes cta-shine{0%,70%,100%{background-position:0% 50%}35%{background-position:100% 50%}}
@media(max-width:480px){.section>p,.future-copy p,.worry-list p{font-size:1.0625rem}.worry-list p{padding-left:39px;padding-right:0}.eyebrow{font-size:.875rem}.about>p{font-size:1.0625rem}.about-features{gap:7px}.about-features h3{font-size:.9375rem}.about-features p{font-size:.875rem}.voices .voice{padding:25px 19px}.voices .voice h3{padding:15px 13px;font-size:1.3125rem;line-height:1.8}.voices .voice p{font-size:1.0625rem;line-height:2}.voice-age{font-size:1.5rem}.voice-work{font-size:.9375rem}.cta{font-size:clamp(1rem,4.65vw,1.375rem)}.closing .cta{font-size:clamp(1rem,4.5vw,1.375rem)}.about h2>span{font-size:clamp(1.55rem,6.7vw,2rem)}}
@media(prefers-reduced-motion:reduce){.scroll-reveal.is-visible,.section>h2.is-visible>span,.cta,.hero-top{animation:none!important;opacity:1;transform:none}}

/* ===== 日本語の折り返し最適化：文節単位の改行・禁則処理・孤立行の抑制 ===== */
html { line-break: strict; }
body {
  word-break: auto-phrase;
  overflow-wrap: break-word;
  line-break: strict;
}
p, li, dd, dt, small, figcaption, summary, h1, h2, h3, h4, strong, em, span, button, a, blockquote {
  line-break: strict;
}
p, li, dd, dt, small, figcaption, summary, blockquote {
  word-break: auto-phrase;
  overflow-wrap: break-word;
  text-wrap: pretty;
}
h1, h2, h3, h4 {
  word-break: auto-phrase;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

/* 折り返し最適化：狭い画面では3段組みを縦積みに */
@media (max-width:560px) {
  .about-features { flex-direction: column; gap: 22px; }
  .about-features > div { flex: none; }
}
