@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&family=Zen+Maru+Gothic:wght@500;700;900&display=swap');
:root{--blue:#1458cf;--ink:#133d78;--sky:#edf6ff;--yellow:#faffbd;--white:#fff;--line:#b9cce4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:var(--sky);font-family:'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #f29538;outline-offset:6px}::selection{background:var(--yellow);color:var(--blue)}.header{display:flex;align-items:center;justify-content:space-between;padding:28px 5%;background:var(--sky)}.brand{font-weight:900;font-size:27px;letter-spacing:.06em;display:flex;align-items:center;gap:14px}.brand span{font-size:10px;font-weight:500;letter-spacing:.1em}.header-place{font-size:12px;letter-spacing:.1em}.header-link{font-size:13px;font-weight:700;border-bottom:1px solid;padding:7px 0}.header-link span{margin-left:28px}.hero{position:relative;overflow:hidden;min-height:790px;padding:40px 8% 210px}.hero-meta{display:flex;gap:26px;font-size:13px;letter-spacing:.08em}.hero-meta span:first-child{font-weight:800}h1{font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:clamp(70px,9.9vw,150px);line-height:1.23;letter-spacing:-.055em;margin:42px 0 30px;position:relative;z-index:2}h1 span{padding-left:9%}.hero-bottom{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;max-width:900px}.hero-bottom p{font-size:17px;line-height:2;font-weight:500;letter-spacing:.06em}.round-link{width:64px;height:64px;border:1px solid var(--blue);border-radius:50%;display:grid;place-items:center;font-size:24px;transition:background .2s}.round-link:hover{background:var(--yellow)}.hero-sea{position:absolute;bottom:-2px;left:0;width:100%;height:240px}.back{fill:#b8d9f7}.front{fill:var(--blue)}.swell{animation:flow 18s ease-in-out infinite alternate}.front{animation-duration:24s;animation-direction:alternate-reverse}.sea-note{position:absolute;bottom:22px;right:8%;color:white;font-size:11px;letter-spacing:.18em;z-index:1}@keyframes flow{from{transform:translateX(-100px)}to{transform:translateX(70px)}}.section{padding:110px max(8%,calc((100vw - 1200px)/2));}.eyebrow{font-size:12px;letter-spacing:.13em;margin:0 0 35px;font-weight:700}h2{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(32px,4vw,56px);line-height:1.65;font-weight:900;letter-spacing:-.035em;margin:0}p{line-height:2.15}.intro{background:var(--blue);color:white;padding-top:90px;padding-bottom:60px}.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.intro-copy p{font-size:15px;margin:0 0 26px}.manifesto{display:flex;gap:40px;border-top:1px solid #ffffff45;margin-top:55px;padding-top:32px;font-size:14px;letter-spacing:.06em}.maybe{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:35px 7%;background:white}.section-heading{grid-column:1/-1}.section-heading .eyebrow{margin-bottom:14px}.day-scene{align-self:start;position:relative;margin-top:10px}.day-scene svg{width:100%;display:block;aspect-ratio:1.4;object-fit:cover;border-radius:50% 50% 4px 4px}.scene-caption{display:block;text-align:center;font-size:11px;margin-top:17px;letter-spacing:.12em}.maybes{align-self:center}.maybes p{margin:0 0 15px;font-size:clamp(20px,2.2vw,30px);font-weight:700;letter-spacing:.02em}.maybes p span{font-size:13px;margin-right:20px;font-weight:400}.maybes .maybe-last{font-family:'Zen Maru Gothic',sans-serif;font-size:22px;margin-top:30px;transform:rotate(-3deg);display:inline-block;background:var(--yellow);padding:3px 12px}.small-note{grid-column:1/-1;text-align:center;font-size:14px;margin:12px 0 0}.drift-button{grid-column:1/-1;justify-self:center;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:50px;padding:16px 28px;cursor:pointer;font-size:13px;transition:background .2s}.drift-button:hover{background:var(--sky)}.drift-button span{margin-left:20px;font-size:22px}.drift-result{grid-column:1/-1;text-align:center;margin:-20px 0 0;font-size:13px;min-height:28px}.participation{background:var(--sky)}.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin:50px 0}.ways article{border-top:1px solid var(--line);padding-top:24px}.way-mark{font-family:serif;font-size:48px;color:var(--blue);height:68px;display:block}.ways h3{font-size:20px;margin:24px 0 15px;letter-spacing:-.03em}.ways p{font-size:13px;margin:0}.participation-end{font-size:16px;margin:45px 0 0}.money{background:var(--yellow);position:relative}.money h2{font-size:clamp(42px,5.6vw,78px);line-height:1.45}.money-big{font-size:24px;font-weight:700;margin:38px 0 20px;line-height:1.8}.money>p:not(.eyebrow):not(.money-big){font-size:14px}.cost-note{display:flex;gap:36px;align-items:baseline;border-top:1px solid #133d7830;padding-top:20px;margin-top:45px}.cost-note>span{font-size:12px;white-space:nowrap}.cost-note p{margin:0;font-size:15px}.cost-note strong{font-weight:700}.details{background:white}.details .eyebrow{margin-bottom:15px}.details h2{font-size:clamp(28px,3.4vw,45px)}dl{margin:48px 0 0}dl>div{display:grid;grid-template-columns:150px 1fr;border-top:1px solid var(--line);padding:25px 0}dl>div:last-child{border-bottom:1px solid var(--line)}dt{font-size:13px;padding-top:5px}dd{margin:0;font-size:20px;font-weight:500;line-height:1.8}dd small{font-size:12px;font-weight:400;display:block;line-height:1.9;margin-top:6px;max-width:650px}.join{text-align:center;background:var(--blue);color:white;overflow:hidden;padding-bottom:0}.join-date{font-size:26px;letter-spacing:.08em;font-weight:800}.join-date small{font-size:10px;font-weight:400;margin-left:12px}.join h2{font-size:clamp(50px,7vw,100px);margin:23px 0 25px;line-height:1.5}.join>p{font-size:14px}.join-button{display:inline-flex;gap:60px;justify-content:space-between;align-items:center;border-radius:60px;background:var(--yellow);color:var(--ink);padding:24px 36px;margin:26px 0 5px;font-size:17px;font-weight:700;transition:transform .2s,background .2s}.join-button:hover{transform:translateY(-4px);background:white}.join-button span{font-size:24px}.join .join-footnote{font-size:11px;opacity:.85;line-height:1.9}.join-line{margin:100px -20% 0;font-family:'Zen Maru Gothic',sans-serif;font-weight:900;font-size:clamp(30px,5.9vw,88px);letter-spacing:.04em;white-space:nowrap;opacity:.22;transform:translateY(18%)}footer{padding:35px 5%;display:flex;justify-content:space-between;gap:20px;align-items:center;background:var(--sky)}footer .brand{font-size:22px}footer p,footer>a:last-child{font-size:11px}footer .brand span{display:none}@media(min-width:1500px){.hero{padding-left:max(8%,calc((100vw - 1200px)/2));min-height:870px}h1{font-size:150px}}@media(max-width:760px){.header{padding:22px 6%}.brand{font-size:22px;gap:8px}.brand span{font-size:8px}.header-place{display:none}.header-link{font-size:11px}.header-link span{margin-left:15px}.hero{min-height:680px;padding:35px 6% 180px}.hero-meta{font-size:10px;gap:15px}h1{font-size:clamp(56px,13vw,98px);margin:65px 0 35px;line-height:1.4}h1 span{padding-left:0}.hero-bottom p{font-size:14px}.round-link{width:48px;height:48px;font-size:20px}.hero-sea{height:170px}.sea-note{font-size:10px}.section{padding:75px 7%}.eyebrow{font-size:10px;margin-bottom:25px}.intro-grid{grid-template-columns:1fr;gap:35px}.intro-copy p{font-size:14px}.manifesto{gap:15px;flex-wrap:wrap;font-size:11px;margin-top:35px;padding-top:25px}.maybe{grid-template-columns:1fr;gap:28px}.section-heading{grid-column:auto}.day-scene{margin:5px 0 12px}.day-scene svg{aspect-ratio:1.65}.maybes{padding-left:4%}.maybes p{font-size:24px}.maybes p span{font-size:12px}.maybes .maybe-last{font-size:20px}.small-note{grid-column:auto;text-align:left;font-size:12px}.drift-button,.drift-result{grid-column:auto}.drift-result{font-size:12px;margin-top:-15px}.ways{grid-template-columns:1fr;gap:28px;margin-top:35px}.ways article{position:relative;padding:24px 0 0 65px;min-height:100px}.way-mark{position:absolute;left:0;top:14px;font-size:42px}.ways h3{margin:0 0 10px;font-size:19px}.ways p{font-size:13px}.participation-end{font-size:14px}.money h2{font-size:44px}.money-big{font-size:21px}.cost-note{gap:18px;display:block}.cost-note>span{display:block;margin-bottom:10px}.cost-note p{font-size:14px}dl>div{grid-template-columns:65px 1fr;gap:12px;padding:22px 0}dt{font-size:11px}dd{font-size:17px}dd small{font-size:11px}.join{padding-bottom:0}.join>p{font-size:12px}.join-button{gap:35px;font-size:15px;padding:20px 26px}.join-line{margin-top:65px;font-size:32px}.join .join-footnote{font-size:10px}footer{padding:28px 6%;flex-wrap:wrap}footer p{display:none}footer .brand{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* 海の便り：冒頭の小さな写真と、詳細へつなぐ海の眺め。 */
.sea-postcards{position:absolute;z-index:3;top:28px;right:3%;width:390px;height:440px}
.sea-postcard{position:absolute;width:192px;margin:0;padding:8px 8px 0;background:var(--white);box-shadow:0 8px 24px #133d7814}
.sea-postcard--one{top:0;left:0;transform:rotate(-10deg)}
.sea-postcard--two{top:125px;right:0;transform:rotate(9deg)}
.sea-postcard--three{top:260px;left:25px;transform:rotate(-4deg)}
.sea-postcard.sea-postcard--one img{object-position:50% 45%}
.sea-postcard.sea-postcard--two img{object-position:50% 70%}
.sea-postcard.sea-postcard--three img{object-position:50% 50%}
.sea-postcard img{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;object-position:50% 70%}
.sea-postcard figcaption{padding:10px 0 12px;text-align:center;font-size:9px;letter-spacing:.06em;line-height:1.7}
.sea-panorama{margin:0;background:var(--white);scroll-margin-top:0}
.sea-panorama>img{display:block;width:100%;height:clamp(240px,28vw,450px);object-fit:cover;object-position:50% 72%;background:var(--sky)}
.sea-panorama figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:18px 8% 0;font-size:10px;letter-spacing:.08em;line-height:1.8}
.sea-panorama a{letter-spacing:.02em;text-underline-offset:4px}
.sea-panorama a:hover{text-decoration:underline}
@media(max-width:1240px){
  .sea-postcards{position:relative;top:auto;right:auto;width:390px;height:425px;margin:35px 12px 30px auto}
  .sea-postcard{width:186px}
  .sea-postcard--three{top:250px;left:20px}
}
@media(max-width:760px){
  .hero{padding-bottom:185px}
  .sea-postcards{width:min(340px,100%);height:410px;margin-top:35px;margin-right:5px}
  .sea-postcard{width:min(174px,54%)}
  .sea-postcard--two{top:125px}
  .sea-postcard--three{top:245px;left:10px}
  .sea-postcard figcaption{font-size:8px;padding:10px 0 12px}
  .sea-panorama>img{height:250px;object-position:48% 72%}
  .sea-panorama figcaption{padding:15px 7% 0;flex-direction:column;gap:3px;font-size:9px}
}

/* ページを歩くように、昼の海から夕景へ。 */
.seaside-memories{display:flex;justify-content:center;align-items:flex-start;gap:clamp(45px,9vw,140px);margin:85px 0 75px;padding:0 12px}
.memory-photo{width:clamp(180px,25vw,280px);margin:0;padding:10px 10px 0;background:var(--white);box-shadow:0 6px 22px #133d7810}
.memory-photo img{display:block;width:100%;height:auto;aspect-ratio:1.12;object-fit:cover}
.memory-photo figcaption{padding:15px 0 17px;text-align:center;font-size:11px;letter-spacing:.08em;line-height:1.7}
.memory-photo--waves{transform:rotate(-5deg)}
.memory-photo--waves img{object-position:50% 65%}
.memory-photo--rocks{margin-top:55px;transform:rotate(6deg)}
.memory-photo--rocks img{object-position:50% 70%}
.sea-panorama>img{object-position:50% 67%}
.closing-postcard{width:230px;margin:50px auto 0;padding:9px 9px 0;background:var(--white);color:var(--ink);transform:rotate(-5deg);box-shadow:0 8px 25px #09234b24}
.closing-postcard img{display:block;width:100%;height:auto;aspect-ratio:1.4;object-fit:cover;object-position:50% 65%}
.closing-postcard figcaption{padding:12px 0 15px;font-size:11px;letter-spacing:.1em;line-height:1.7}
@media(max-width:760px){
  .seaside-memories{gap:24px;margin:55px 0 50px;padding:0 5px}
  .memory-photo{width:calc((100% - 24px)/2);padding:6px 6px 0}
  .memory-photo--rocks{margin-top:45px}
  .memory-photo img{aspect-ratio:.8}
  .memory-photo figcaption{padding:10px 0 12px;font-size:9px;letter-spacing:.02em}
  .sea-panorama>img{object-position:65% 67%}
  .closing-postcard{width:195px;margin-top:40px}
}
