
@font-face { font-family:'Poppins'; src:url('/assets/fonts/poppins-400.woff') format('woff'); font-weight:400; font-display:swap }
@font-face { font-family:'Poppins'; src:url('/assets/fonts/poppins-600.woff') format('woff'); font-weight:600; font-display:swap }
@font-face { font-family:'Poppins'; src:url('/assets/fonts/poppins-700.woff') format('woff'); font-weight:700; font-display:swap }
@font-face { font-family:'Kana'; src:url('/assets/fonts/kana-400.woff') format('woff'); font-weight:400; font-display:swap }
@font-face { font-family:'Kana'; src:url('/assets/fonts/kana-700.woff') format('woff'); font-weight:700; font-display:swap }
:root { --ink:#1d2b53; --red:#e0382f; --gold:#f2b705; --grid:#c9cfdd; --mist:#eef1f8; --muted:#5d6782; --paper:#fff }
* { box-sizing:border-box }
html { -webkit-text-size-adjust:100% }
body { margin:0; font-family:Poppins, Kana, system-ui, sans-serif; color:var(--ink); background:var(--paper); line-height:1.6; font-size:17px }
.jp { font-family:Kana, 'Noto Sans JP', sans-serif }
a { color:var(--ink) }
a:focus-visible, button:focus-visible, input:focus-visible { outline:3px solid var(--gold); outline-offset:3px }
.wrap { max-width:1080px; margin:0 auto; padding:0 24px }
header.top { border-bottom:1px solid var(--mist) }
header.top .wrap { display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px }
.brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:19px; text-decoration:none }
nav a { text-decoration:none; font-weight:600; font-size:15px; margin-left:22px; padding:6px 0; border-bottom:2px solid transparent }
nav a:hover, nav a[aria-current] { border-color:var(--red) }
h1, h2, h3 { line-height:1.15; margin:0 0 .5em }
h1 { font-size:clamp(34px,5vw,54px); font-weight:700; letter-spacing:-.5px }
h2 { font-size:clamp(26px,3.2vw,34px); font-weight:700 }
h3 { font-size:20px; font-weight:600 }
p { margin:0 0 1em; max-width:62ch }
.lead { font-size:19px; color:var(--muted) }
.btn { display:inline-block; font:600 16px Poppins, sans-serif; padding:13px 22px; border-radius:10px; text-decoration:none; border:2px solid var(--ink); cursor:pointer; background:var(--paper); color:var(--ink) }
.btn.primary { background:var(--ink); color:#fff }
.btn.primary:hover { background:#2a3b6d }
.btn:hover { background:var(--mist) }
.btns { display:flex; flex-wrap:wrap; gap:12px; margin-top:8px }
.note { font-size:14px; color:var(--muted); margin-top:14px }
footer { margin-top:96px; background:var(--ink); color:#dfe4f1; font-size:14px }
footer .wrap { padding-top:36px; padding-bottom:36px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px }
footer a { color:#fff }
footer p { margin:0 0 .4em }
@media (max-width:640px) { nav a { margin-left:14px; font-size:14px } .brand span { display:none } body { font-size:16px } }

.lang { margin-left:22px; font-weight:600; font-size:14px; text-decoration:none; border:2px solid var(--ink); border-radius:8px; padding:4px 10px }
.lang:hover { background:var(--mist) }
.cells a.cell { text-decoration:none; color:inherit }
.cells a.cell:hover h3 { text-decoration:underline }
.status { font-size:13px !important; font-weight:600; color:var(--red) !important }
.crumb { font-size:14px; margin:28px 0 0 } .crumb a { color:var(--muted) }
.inside { padding:48px 0 0 } .thumbs { display:flex; gap:24px; flex-wrap:wrap; margin-top:18px }
.thumbs img { width:min(300px,100%); height:auto; border:1px solid var(--mist); box-shadow:0 12px 30px -18px rgba(29,43,83,.5) }
.hub { min-height:100vh; display:flex; align-items:center }
.hub .wrap { display:grid; grid-template-columns:auto 1fr; gap:48px; align-items:center }
.choices { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:28px; max-width:620px }
.choice { display:block; border:2px solid var(--ink); border-radius:14px; padding:20px 22px; text-decoration:none }
.choice:hover { background:var(--mist) }
.choice b { display:block; font-size:20px } .choice span { color:var(--muted); font-size:15px }
@media (max-width:760px) { .hub .wrap { grid-template-columns:1fr; gap:20px } .choices { grid-template-columns:1fr } .lang { margin-left:12px } }
