:root{--blue:#21566a;--ink:#243e48;--sand:#f5f1e9;--line:#dbe3e4;--muted:#526870}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#fff;font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-size:18px;line-height:1.9}a{color:var(--blue);text-underline-offset:5px}a:hover{opacity:.8}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #d39235;outline-offset:5px}.skip{position:absolute;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:0}.wrap{width:min(1120px,calc(100% - 64px));margin:auto}header{background:white;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:100px;gap:24px}.brand{color:var(--ink);text-decoration:none;font-family:'Yu Mincho',serif;font-weight:700;line-height:1.5;font-size:22px}.brand small{display:block;font-family:inherit;font-size:14px;letter-spacing:.08em}nav{display:flex;gap:23px;align-items:center}nav a{font-size:15px;text-decoration:none;white-space:nowrap}nav a[aria-current]{border-bottom:2px solid var(--blue)}.menu-toggle{display:none}.hero{position:relative;height:650px;max-height:78vh;min-height:520px;background:#507d8d;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,38,51,.57),transparent 80%)}.hero-copy{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;color:white;padding-bottom:25px}.hero-copy .eyebrow{color:white;font-size:19px;letter-spacing:.15em}.hero h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:64px;line-height:1.4;margin:8px 0 22px;letter-spacing:.12em;font-weight:500}.hero .catch{font-size:28px;margin:0 0 14px;letter-spacing:.04em}.hero .dialect{font-family:'Yu Mincho',serif;font-size:20px;margin:0}.credit{position:absolute;right:20px;bottom:12px;color:white;font-size:13px;z-index:2;text-shadow:0 1px 5px #000}.credit a{color:inherit}.event-ribbon{background:var(--sand);padding:24px 0}.ribbon-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}.ribbon-info{display:flex;align-items:center;gap:35px}.ribbon-info span{font-size:15px;display:block}.ribbon-info strong{font-size:21px;font-weight:500}.line-status{display:inline-block;border:1px solid var(--blue);padding:10px 25px;border-radius:3px;font-size:17px;text-decoration:none;color:var(--blue);background:white}.line-status small{margin-left:12px;font-size:14px}section{padding:86px 0}h1,h2,h3{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500;line-height:1.55}h2{font-size:36px;margin:0 0 25px}h3{font-size:25px;margin:0 0 16px}.eyebrow{font-size:14px;letter-spacing:.16em;color:var(--blue);margin:0 0 12px}.intro{max-width:760px;margin:auto;text-align:center}.intro p{margin:22px 0}.text-link{display:inline-block;margin-top:14px}.split{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.sand{background:var(--sand)}.portrait-photo{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:2px}.caption{font-size:14px;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card{border-top:2px solid var(--blue);padding:25px 0}.card .num{font-size:14px;letter-spacing:.13em;color:var(--muted)}.card p{font-size:17px}.news-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px}.news-item{display:block;padding:24px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}.news-item strong{font-weight:500;font-size:21px}.news-item p{font-size:16px;margin:7px 0 0;color:var(--muted)}.news-note{font-size:14px;color:var(--muted)}.line-panel{padding:45px;background:#eef4f5;display:flex;justify-content:space-between;align-items:center;gap:32px}.line-panel h2{font-size:28px;margin-bottom:10px}.line-panel p{margin:0;font-size:17px}.page-heading{padding:70px 0 55px;background:var(--sand)}.page-heading h1{font-size:44px;margin:8px 0 20px}.page-heading p{max-width:760px;margin-bottom:0}.content{max-width:800px}.content section{padding:0;margin:0 0 65px}.content>section:first-child{margin-top:70px}.content p{margin:0 0 25px}.quote{font-family:'Yu Mincho',serif;font-size:30px;color:var(--blue);border-left:2px solid var(--blue);padding:16px 0 16px 28px;margin:35px 0}.facts{margin:25px 0}.facts div{display:grid;grid-template-columns:150px 1fr;padding:20px 0;border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0}.quiet-box{padding:32px;background:var(--sand)}.quiet-box h3{margin-top:0}.examples{display:grid;gap:18px;margin:28px 0}.example{background:var(--sand);padding:22px 28px;font-family:'Yu Mincho',serif;font-size:21px}.gallery-empty{text-align:center;border:1px solid var(--line);padding:70px 32px;background:var(--sand)}.gallery-empty h2{font-size:29px}.gallery-tags{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:16px;margin-top:28px}.gallery-tags span{background:white;padding:6px 15px}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}.gallery-grid img{width:100%;height:280px;object-fit:cover}.gallery-grid figure{margin:0}.gallery-grid figcaption{font-size:17px}.contact-state{border:1px solid var(--line);padding:38px;margin:30px 0}.contact-state h2{font-size:28px}.privacy{font-size:17px}footer{padding:50px 0 25px;border-top:1px solid var(--line)}.footer-top{display:flex;justify-content:space-between;gap:30px}.footer-top p{font-size:15px;margin:10px 0}.footer-links{display:flex;gap:25px;align-items:flex-start;font-size:15px}.footer-bottom{border-top:1px solid var(--line);margin-top:30px;padding-top:22px;color:var(--muted);font-size:13px}.footer-bottom a{color:inherit}[hidden]{display:none!important}@media(max-width:1000px){nav{gap:13px}nav a{font-size:14px}.brand{font-size:19px}.wrap{width:calc(100% - 48px)}}@media(max-width:800px){body{font-size:18px}.wrap{width:calc(100% - 40px)}.header-inner{min-height:82px}.brand{font-size:19px}.brand small{font-size:12px}.menu-toggle{display:flex;flex-direction:column;align-items:center;border:0;background:transparent;padding:8px;color:var(--blue);font-size:12px;gap:5px}.menu-toggle .bars{width:25px;height:18px;border-top:2px solid;border-bottom:2px solid;position:relative}.bars:after{content:'';position:absolute;top:6px;left:0;width:25px;border-top:2px solid}nav{display:none;position:absolute;top:82px;left:0;right:0;background:white;z-index:5;padding:15px 25px 28px;box-shadow:0 12px 16px #183f4c18}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:12px 0;font-size:18px}.hero{height:620px;max-height:none;min-height:0}.hero>img{object-position:58% center}.hero:after{background:linear-gradient(0deg,rgba(10,38,51,.66),transparent 85%)}.hero-copy{justify-content:flex-end;padding-bottom:95px}.hero-copy .eyebrow{font-size:16px;letter-spacing:.03em}.hero h1{font-size:45px;letter-spacing:.08em;margin-bottom:24px}.hero .catch{font-size:23px;max-width:280px;line-height:1.7}.hero .dialect{font-size:16px}.credit{font-size:12px;right:15px;bottom:10px}.ribbon-inner{flex-direction:column;align-items:stretch}.ribbon-info{gap:20px;justify-content:space-between}.ribbon-info strong{font-size:19px}.ribbon-info span{font-size:14px}.line-status{text-align:center}section{padding:60px 0}h2{font-size:29px}.intro{text-align:left}.split{grid-template-columns:1fr;gap:32px}.cards{grid-template-columns:1fr;gap:10px}.card{padding:20px 0}.card p{font-size:18px}.line-panel{padding:30px 23px;flex-direction:column;align-items:stretch}.page-heading{padding:45px 0}.page-heading h1{font-size:33px}.content>section:first-child{margin-top:50px}.content section{margin-bottom:50px}.facts div{grid-template-columns:1fr;gap:5px}.quote{font-size:25px;padding-left:20px}.quiet-box{padding:26px}.gallery-empty{padding:45px 22px}.gallery-grid{grid-template-columns:1fr}.contact-state{padding:27px}.footer-top{flex-direction:column}.footer-links{flex-wrap:wrap}.news-heading{flex-direction:column;gap:0}.news-heading h2{margin-bottom:8px}}@media(prefers-reduced-motion:no-preference){a,button{transition:opacity .2s}}

/* Bright, friendly reunion theme; content and DOM structure preserved. */
:root{--blue:#087ca3;--ink:#193e50;--sand:#fff6e8;--line:#d5e9ee;--muted:#486673;--coral:#ef795d}
body{font-family:'Hiragino Maru Gothic ProN','Yu Gothic',Meiryo,sans-serif;line-height:1.85}
h1,h2,h3,.brand,.hero h1,.hero .dialect,.quote,.example{font-family:'Hiragino Maru Gothic ProN','Yu Gothic',Meiryo,sans-serif;font-weight:700}
.brand{color:var(--blue);font-size:25px;letter-spacing:.02em}.brand small{font-weight:600;font-size:14px;color:var(--ink)}
.header-inner{min-height:96px}nav{gap:17px}nav a{font-weight:700}nav a[aria-current]{border:0;background:#e4f6fb;color:#056384;padding:8px 13px;border-radius:30px}
.hero{margin:0 18px;border-radius:26px;height:650px}.hero:after{background:linear-gradient(90deg,rgba(0,42,62,.55),rgba(0,42,62,.06) 80%)}
.hero h1{font-size:72px;letter-spacing:.045em;font-weight:800;text-shadow:0 3px 14px #003d5533}.hero-copy .eyebrow{letter-spacing:.08em;font-weight:700}.hero .catch{font-size:30px;font-weight:700;line-height:1.65}.hero .dialect{font-size:19px;font-weight:500}.credit{right:25px;bottom:20px}
.event-ribbon{background:white;padding:28px 0}.ribbon-inner{background:var(--sand);border-radius:20px;padding:24px 32px}.ribbon-info strong{font-weight:700;color:var(--blue)}
.line-status{border:0;border-radius:50px;background:#087ca3;color:white;padding:13px 26px;font-weight:700;box-shadow:0 4px 0 #056384}.line-status small{background:#fff;color:#075e7c;padding:3px 9px;border-radius:20px;font-weight:700}
h2{letter-spacing:.02em}.eyebrow{letter-spacing:.08em;font-weight:700}.intro h2{font-size:40px;color:var(--blue)}
.text-link{background:var(--blue);color:white;padding:12px 25px;border-radius:50px;text-decoration:none;font-weight:700;box-shadow:0 4px 0 #056384}
.sand{background:#eff9fc}.portrait-photo{border-radius:24px;box-shadow:10px 10px 0 #d2ecf3}.caption{margin-top:24px}
.cards{gap:22px}.cards .card{border:1px solid #dcecf1;border-top:0;border-radius:22px;background:#f0f9fc;padding:30px}.cards .card:nth-child(2){background:#fff5e5;border-color:#f7e8ca}.cards .card:nth-child(3){background:#fff0eb;border-color:#f9dfd4}.card .num{font-weight:700;color:var(--blue);letter-spacing:.04em}.card h3{font-size:24px}.card a{font-weight:700;font-size:17px}.card p{font-size:18px}
.news-item{border:0;border-radius:16px;background:white;padding:23px 28px;margin-top:14px}.news-item strong{font-weight:700;color:var(--blue)}.news-note{font-size:15px}.line-panel{background:#e5f6fc;border-radius:24px;border:1px solid #cbeaf4}.line-panel h2{color:var(--blue)}
.page-heading{background:#eff9fc;border-radius:0 0 36px 36px}.page-heading h1{color:var(--blue);font-weight:800}.page-heading .eyebrow{color:var(--muted)}
.quiet-box,.contact-state,.gallery-empty{border-radius:22px}.quiet-box{background:var(--sand)}.quote{border-left:5px solid var(--coral);background:#fff6e8;border-radius:0 20px 20px 0;padding:24px 30px;line-height:1.8}.example{border-radius:18px;background:#eaf7fb;font-size:21px}.example:nth-child(2){background:#fff5e5}.example:nth-child(3){background:#fff0eb}.gallery-empty{background:#f0f9fc;border:2px dashed #9fcfdc}.gallery-tags span{border-radius:30px;color:var(--blue);font-weight:700}.contact-state{background:#f0f9fc}.facts div{padding:22px 0}dt{font-weight:700}.gallery-grid img{border-radius:18px}footer{background:#f7fbfc;border:0;border-radius:30px 30px 0 0}.text-editor{border-radius:14px!important}
@media(max-width:1000px){.brand{font-size:22px}nav{gap:10px}nav a{font-size:14px}nav a[aria-current]{padding:7px 9px}}
@media(max-width:800px){.header-inner{min-height:88px}.brand{font-size:23px}.brand small{font-size:12px}.hero{margin:0 10px;border-radius:20px;height:600px}.hero-copy{width:calc(100% - 40px);padding-bottom:88px}.hero h1{font-size:48px;letter-spacing:.02em}.hero .catch{font-size:24px}.hero .dialect{font-size:16px}.hero:after{background:linear-gradient(0deg,rgba(0,35,55,.7),transparent 90%)}.credit{right:16px;bottom:14px;font-size:12px}.event-ribbon{padding:20px 0}.ribbon-inner{padding:22px 20px;border-radius:20px}.ribbon-info{gap:14px}.ribbon-info strong{font-size:18px}.intro h2{font-size:30px}.cards{gap:18px}.cards .card{padding:26px}.portrait-photo{box-shadow:6px 6px 0 #d2ecf3}.news-item{padding:22px}.page-heading h1{font-size:32px}.line-panel{padding:29px 24px}.quote{font-size:25px;padding:22px 25px}.example{font-size:20px}nav{top:88px}nav a{font-size:18px}nav a[aria-current]{padding:12px;border-radius:12px}}
/* Casual accents and colorful, readable hero typography. */
.hero-copy .eyebrow{color:#fff1ab;letter-spacing:.06em;text-shadow:0 2px 6px #123a50}
.hero h1{color:#ffed9b;text-shadow:0 3px 0 #17465c,0 5px 18px #123a5066;letter-spacing:.025em}
.hero .catch{color:#ffe0db;text-shadow:0 2px 7px #123a50;line-height:1.7}
.hero .dialect{color:#d6faff;font-weight:700;text-shadow:0 2px 6px #123a50}
.intro h2{color:#087ca3}.cards .card:nth-child(2) h3{color:#946012}.cards .card:nth-child(3) h3{color:#a84a38}
.cards .card:nth-child(2) .num{color:#946012}.cards .card:nth-child(3) .num{color:#a84a38}
.news-item:nth-of-type(2) strong{color:#a84a38}.news-item:nth-of-type(3) strong{color:#946012}
.page-heading h1{color:#087ca3}.example:nth-child(2){color:#805611}.example:nth-child(3){color:#984432}
@media(max-width:800px){.hero h1{font-size:48px}.hero .catch{font-size:24px}}
/* A cheerful, informal invitation with handwritten-style headings. */
:root{--blue:#007fa8;--sand:#fff4cf;--ink:#203e4c;--coral:#fb876d}
h1,h2,h3,.brand,.hero h1,.hero .dialect,.quote,.example{font-family:'UD Digi Kyokasho NP-B','UD Digi Kyokasho N-B','Hiragino Maru Gothic ProN',Meiryo,sans-serif;font-weight:700}
.brand{font-size:28px}.brand small{font-family:'Yu Gothic',Meiryo,sans-serif;font-size:14px}
.hero-copy .eyebrow{align-self:flex-start;background:#fff7dc;color:#075e80;border-radius:30px;padding:7px 18px;font-weight:700;text-shadow:none;letter-spacing:.025em}
.hero h1{font-size:80px;color:#fff075;letter-spacing:.025em;text-shadow:0 3px 12px #123a5077;margin:16px 0 23px;transform:rotate(-2deg);transform-origin:left center}
.hero .catch{align-self:flex-start;background:#ffdf63;color:#244858;border-radius:18px;padding:10px 22px;box-shadow:5px 5px 0 #fd927c;font-family:'UD Digi Kyokasho NP-B','UD Digi Kyokasho N-B',Meiryo,sans-serif;font-size:32px;line-height:1.5;text-shadow:none;margin:0 0 26px;font-weight:700}
.hero .dialect{color:white;font-size:22px;letter-spacing:.025em;text-shadow:0 2px 8px #003951}
.hero:after{background:linear-gradient(90deg,rgba(0,42,62,.39),transparent 85%)}
.eyebrow{color:#007398;font-weight:800}.intro h2{font-size:43px;color:#007b9d;line-height:1.6}.intro .eyebrow{color:#a23b25;background:#ffdf75;display:inline-block;padding:4px 16px;border-radius:30px}
.text-link{background:#ffe16f;color:#294454;box-shadow:4px 4px 0 #ff9e84;border-radius:15px}.sand{background:#e8f8ff}
.ribbon-inner{background:#fff2c5}.ribbon-info strong{color:#007493;font-weight:800}.line-status{background:#007da1;box-shadow:4px 4px 0 #78d6e6;border-radius:18px}
.cards .card{background:#e0f6ff;border:0;box-shadow:0 5px 0 #b1e4f1}.cards .card:nth-child(2){background:#fff0b5;box-shadow:0 5px 0 #f4d77b}.cards .card:nth-child(3){background:#ffe2d6;box-shadow:0 5px 0 #f8b8a2}.card h3{font-size:28px}.card .num{display:inline-block;background:#fff9;padding:3px 10px;border-radius:20px;letter-spacing:0}
.news-item{border-left:6px solid #35bad4;box-shadow:0 3px 0 #cdeaf3}.news-item:nth-of-type(2){border-left-color:#fc9f83}.news-item:nth-of-type(3){border-left-color:#edc343}.news-item strong{font-weight:800}
.line-panel{background:#dff5ff;border:0;box-shadow:7px 7px 0 #bce8f2}.page-heading{background:#e4f7ff}.page-heading h1{font-size:48px}.quiet-box{background:#fff1bf}.quote{background:#fff0bf;border-color:#fc9178}.gallery-tags span:nth-child(2n){background:#ffe1d5;color:#963f2b}.gallery-empty{background:#e6f7ff}.example:nth-child(2){background:#fff0b5}.example:nth-child(3){background:#ffe2d6}
@media(max-width:1000px){.brand{font-size:25px}}
@media(max-width:800px){.brand{font-size:26px}.brand small{font-size:12px}.hero h1{font-size:52px;letter-spacing:0;margin:15px 0 24px}.hero-copy .eyebrow{font-size:15px;padding:6px 12px}.hero .catch{font-size:25px;padding:12px 17px;max-width:none;border-radius:15px}.hero .dialect{font-size:18px;max-width:320px;line-height:1.65}.hero-copy{padding-bottom:82px}.hero:after{background:linear-gradient(0deg,rgba(0,35,55,.6),transparent 90%)}.intro h2{font-size:32px}.card h3{font-size:28px}.page-heading h1{font-size:35px}.line-panel{box-shadow:4px 4px 0 #bce8f2}}
