
:root{--gg-maroon:#6e1a22;--gg-paper:#eef1f3;--gg-paper-2:#e3e8ec;--gg-ink:#161616;--paper:var(--gg-paper)}
body{background:var(--gg-paper);color:var(--gg-ink)}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.35;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .3 0 0 0 0 .3 0 0 0 .12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}


.section-label,.worries .section-label,.eyebrow{color:var(--gg-maroon);font:700 italic 17px/1.2 "Playfair Display",serif;letter-spacing:.02em;text-transform:none}
main h2{font-family:"Shippori Mincho B1",serif;font-weight:800;letter-spacing:.01em;color:var(--gg-ink)}
.plan h2 b,.worry-answer strong{color:var(--gg-maroon)}


.site-header{background:rgba(255,255,255,.94);border-bottom:2px solid var(--gg-maroon);color:var(--gg-ink)}
.brand span{border-left-color:rgba(110,26,34,.5)}


.hero{background:var(--gg-paper);color:var(--gg-ink)}
.hero-photo::after{background:linear-gradient(90deg,var(--gg-paper) 0%,rgba(238,241,243,.9) 16%,rgba(238,241,243,.25) 48%,rgba(238,241,243,0) 100%),linear-gradient(0deg,var(--gg-paper) 0%,transparent 26%)}
.eyebrow{color:var(--gg-maroon)}
.hero h1{font-family:"Shippori Mincho B1",serif;letter-spacing:-.04em;color:var(--gg-ink);text-shadow:0 0 18px rgba(255,255,255,.8)}
.hero h1 em{color:var(--gg-maroon)}
.hero-lead{color:#2a2a2a;text-shadow:0 0 10px #fff,0 0 2px #fff}
.hero-tags span{border-color:rgba(110,26,34,.35);background:rgba(255,255,255,.75);color:var(--gg-maroon)}
.status-dot{background:var(--gg-maroon);box-shadow:0 0 0 6px rgba(110,26,34,.14)}
.trial-ticket{border:1px solid #d9dee2}
.ticket-top span{background:#f4e3e5;color:var(--gg-maroon)}
.ticket-price strong{color:var(--gg-maroon)}
.ticket-price strong.stamped::before{border-color:var(--gg-maroon)}


.worries{background:#fff;color:var(--gg-ink);border:1px solid #d9dee2;box-shadow:0 18px 40px rgba(30,40,50,.06)}
.worry-list li{background:var(--gg-paper);border-color:#d9dee2;color:var(--gg-ink)}
.worry-list span{background:var(--gg-maroon);color:#fff;font-family:"Playfair Display",serif}


.story{background:linear-gradient(180deg,var(--gg-paper-2),#d7dee3);color:var(--gg-ink);border:1px solid #d3dade}
.story-head p{color:var(--gg-maroon);font:700 italic 22px "Playfair Display",serif;letter-spacing:0}
.story-head h2{color:var(--gg-ink)}
.storybook::before{box-shadow:0 26px 50px rgba(30,40,50,.28)}
.story-btn{border-color:rgba(110,26,34,.45);color:var(--gg-maroon)}
.story-btn:hover{background:rgba(110,26,34,.08)}
.story-dots i{background:rgba(110,26,34,.2)}
.story-dots i.on{background:var(--gg-maroon)}
.story-facts{border-top-color:rgba(110,26,34,.25)}
.story-facts dt{color:var(--gg-maroon)}
.story-facts dt small{color:#555}
.story-facts dd{color:#555}
.cover{background:radial-gradient(ellipse at 50% 35%,#7a2830 0%,#4a1016 80%)}
.year{color:var(--gg-ink)}


.plan-steps li,.firstday-track li{border:1px solid #d9dee2;box-shadow:none}
.plan-steps b,.firstday-track span{color:var(--gg-maroon);font-family:"Playfair Display",serif;font-style:italic;letter-spacing:0;font-size:16px}
.plan-steps li+li::before{background:var(--gg-maroon)}
.plan-steps h3,.firstday-track b{font-family:"Shippori Mincho B1",serif}
.after-free{border-color:var(--gg-maroon);background:#fff}
.after-free-title b{background:var(--gg-maroon)}
.after-free li{background:var(--gg-paper)}
.bring-list{background:#fff;border:1px solid #d9dee2}
.bring-list span{background:var(--gg-paper)}


.area-tabs{background:#dde3e7}
.area-tab.is-active{background:var(--gg-maroon);color:#fff}
.store-card{background:#fff;color:var(--gg-ink);border-color:#d9dee2}
.store-card>img{filter:grayscale(1) contrast(1.05)}
.store-card a{border-color:#c9d0d5;color:#333}
.store-card h3{font-family:"Shippori Mincho B1",serif}


.faq-list details{border-color:#d3dade}
.faq-list summary::after{color:var(--gg-maroon)}


.final-cta{background:#fff;color:var(--gg-ink);border:1px solid #d9dee2}
.final-mark{color:var(--gg-maroon);font:800 italic clamp(60px,8vw,120px)/.9 "Playfair Display",serif;letter-spacing:-.02em}
.final-content>p:not(.section-label,.form-guide){color:#555}
.final-offer{border-color:#d9dee2}
.final-offer strong b,.final-prices strong{color:var(--gg-maroon)}
.phone-link{color:var(--gg-ink)}
.phone-link b{color:var(--gg-maroon)}


footer{background:#fff;color:var(--gg-ink);border-top:2px solid var(--gg-maroon)}
footer small{color:#666}

@media(max-width:767px){
  .hero-photo::after{background:linear-gradient(0deg,var(--gg-paper) 0%,rgba(238,241,243,.15) 45%,rgba(238,241,243,.35) 100%)}
  .hero h1,.hero-lead{text-shadow:0 0 12px #fff,0 0 4px #fff,0 0 2px #fff}
  .worries{border-radius:0;border-left:0;border-right:0}
  .story{border-radius:0;border-left:0;border-right:0}
  .trial-ticket{border-bottom:0}
  .eyebrow{font-size:12px;line-height:1.4}
}



.read-progress{position:fixed;z-index:99;top:76px;left:0;right:0;height:3px;background:transparent;pointer-events:none}
.read-progress i{display:block;height:100%;width:100%;transform-origin:left;transform:scaleX(var(--read,0));background:var(--gg-maroon)}


.next-hook{display:flex;flex-direction:column;align-items:center;gap:6px;margin:44px auto 0;color:var(--gg-maroon);font:800 16px/1.6 "Shippori Mincho B1",serif;text-align:center;text-decoration:none}
.next-hook i{font-style:normal;font-size:20px;animation:hook-bob 1.6s ease-in-out infinite}
@keyframes hook-bob{50%{transform:translateY(6px)}}


.tap-hint{margin:-14px 0 22px;color:#666;font-size:13px}
.tap-hint::before{content:"👆 "}
.worry-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.worry-btn{display:flex;align-items:center;gap:12px;padding:18px;border:1px solid #d9dee2;border-radius:16px;background:var(--gg-paper);color:var(--gg-ink);font:800 15px/1.5 "Noto Sans JP",sans-serif;text-align:left;cursor:pointer;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}
.worry-btn span{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--gg-maroon);color:#fff;font:700 18px "Playfair Display",serif;transition:transform .3s}
.worry-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,40,50,.08)}
.worry-btn.is-on{border-color:var(--gg-maroon);background:#fff;box-shadow:0 0 0 2px var(--gg-maroon) inset}
.worry-btn.is-on span{transform:rotate(360deg)}
.worries:not(.is-answered) .worry-btn{animation:pick-pulse 2.4s ease-in-out infinite}
.worries:not(.is-answered) .worry-btn:nth-child(2){animation-delay:.3s}
.worries:not(.is-answered) .worry-btn:nth-child(3){animation-delay:.6s}
@keyframes pick-pulse{0%,70%,100%{box-shadow:0 0 0 0 rgba(110,26,34,0)}35%{box-shadow:0 0 0 6px rgba(110,26,34,.12)}}
.worry-answers{margin-top:16px}
.worry-ans{display:flex;align-items:flex-start;gap:16px;padding:22px 24px;border-radius:16px;background:#fff;border:1px solid #d9dee2;text-align:left;animation:ans-in .45s cubic-bezier(.2,.7,.2,1)}
.worry-ans b{flex:none;color:var(--gg-maroon);font:800 22px/1.4 "Shippori Mincho B1",serif}
.worry-ans p{margin:0;font-size:15px;line-height:1.9;font-weight:600}
@keyframes ans-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.worries .next-hook{margin-top:26px}


.journey2-head{text-align:center;max-width:720px;margin:0 auto 40px}
.journey2 h2{margin:12px 0 14px;font-size:clamp(28px,4vw,46px);line-height:1.35}
.journey2-head>p:last-child{margin:0;color:var(--muted)}
.jr{position:relative;max-width:760px;margin:0 auto;padding:0 0 0 64px;list-style:none}
.jr::before,.jr::after{content:"";position:absolute;left:22px;top:10px;width:3px;border-radius:3px}
.jr::before{bottom:10px;background:#d3dade}
.jr::after{height:calc((100% - 20px) * var(--jr,0));background:var(--gg-maroon);transition:height .15s linear}
.jr li{position:relative;margin-bottom:16px;padding:22px 24px;border:1px solid #d9dee2;border-radius:18px;background:#fff}
.jr li::before{content:"";position:absolute;left:-49px;top:28px;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid #c3ccd2;transition:border-color .3s,background .3s,transform .3s}
.jr li.is-passed::before{border-color:var(--gg-maroon);background:var(--gg-maroon);transform:scale(1.15)}
.jr-no{display:inline-block;margin-bottom:4px;color:var(--gg-maroon);font:700 italic 17px "Playfair Display",serif}
.jr h3{margin:0 0 6px;font:800 20px/1.5 "Shippori Mincho B1",serif}
.jr p{margin:0;color:#555;font-size:14px;line-height:1.8}
.jr .bring-list{margin-top:12px;padding:12px 14px}
.jr .bring-list span{font-size:11px}
.jr-goal{border:2px solid var(--gg-maroon)!important;background:#fff8f8!important}
.journey2 .program-note{max-width:760px;margin:12px auto 0}
.journey2 .mid-cta{max-width:620px;margin:32px auto 0}

@media(max-width:767px){
  .read-progress{top:62px}
  .worries h2{font-size:21px;letter-spacing:0}
  .worry-picker{grid-template-columns:1fr;gap:8px}
  .worry-btn{padding:14px;font-size:14px}
  .worry-ans{flex-direction:column;gap:4px;padding:16px 18px}
  .worry-ans p{font-size:14px}
  .tap-hint{margin:-8px 0 16px}
  .journey2{padding-top:56px;padding-bottom:48px}
  .journey2 h2{font-size:26px}
  .jr{padding-left:40px}
  .jr::before,.jr::after{left:12px}
  .jr li{padding:16px 16px}
  .jr li::before{left:-35px;top:22px;width:13px;height:13px}
  .jr h3{font-size:17px}
  .jr p{font-size:13px}
  .next-hook{font-size:15px;margin-top:32px}
}
@media(prefers-reduced-motion:reduce){.next-hook i,.worries .worry-btn{animation:none!important}}


.guide-note{padding:24px;margin:26px 0;border:1px solid #cbd0d4;border-left:4px solid var(--gg-maroon,#702a36);border-radius:12px;background:#fff}.guide-note h3{margin-top:0}.guide-note small{display:block;margin-top:14px;color:#555}.guide-note a{display:inline-block;margin-top:12px}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid #8a3042;outline-offset:4px}.story-controls{flex-wrap:wrap}.program-note{max-width:850px;margin-left:auto;margin-right:auto}.ticket-top{flex-wrap:wrap}.intro-photo{animation:none!important}.js .intro{pointer-events:auto}html:not(.js) .intro{display:none}html:not(.js) .reveal{opacity:1;transform:none}html:not(.js) .store-panel[hidden]{display:block}html:not(.js) .store-panel{display:block}html:not(.js) .worry-ans[hidden]{display:block}html:not(.js) .storybook{height:auto;transform:none}html:not(.js) .leaf{position:static;transform:none!important}html:not(.js) .face{position:static;transform:none!important;min-height:320px}html:not(.js) .story-controls{display:none}@media(max-width:767px){.guide-note{padding:20px}.ticket-price strong small{font-size:12px}.brand span{max-width:180px;font-size:11px}.trial-ticket .eligibility{font-size:13px}}

.history-type{display:grid;align-content:center;gap:28px;padding:36px;height:100%;text-align:center;background:#e8edf0;color:#2b2318}.history-type small{font:600 15px serif;letter-spacing:.18em;color:#6e1a22}.history-type strong{font:800 32px/1.7 serif}.chapter-hook{margin-top:22px!important;color:#6e1a22!important;font-size:14px!important}.intro-type{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#e8edf0}.intro-type strong{font:800 110px/1 serif;color:#6e1a22}.intro-type span{font:700 14px serif;letter-spacing:.12em}.intro-photo::after{background:none!important}.intro-story{top:65%;font-size:26px}.intro-type{inset:8% 8% 45% auto;width:38%;border:0;box-shadow:none;transform:none}@media(max-width:767px){.intro-type{left:20px;right:20px;top:24px;width:auto;height:160px;inset:24px 20px auto;transform:none}.intro-story{top:210px;font-size:18px}.intro-story em{font-size:24px}.year{font-size:38px}.history-type strong{font-size:28px}.chapter-hook{font-size:15px!important}}
