*{box-sizing:border-box}
body{margin:0;background:#fff;color:#0b1b34;font-family:"DM Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;line-height:1.72;-webkit-font-smoothing:antialiased}
a{color:#2563eb}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
header.nav{border-bottom:1px solid #e8eef7;background:#fff;position:sticky;top:0;z-index:10}
header.nav .wrap{display:flex;align-items:center;gap:12px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;color:#0b1b34;text-decoration:none}
.mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#0d9488);display:grid;place-items:center;flex:none}
header.nav nav{margin-left:auto;display:flex;gap:18px;align-items:center;font-size:15px;font-weight:600}
header.nav nav a{color:#41506b;text-decoration:none}
header.nav nav a:hover{color:#2563eb}
.hero{padding:clamp(36px,6vw,64px) 0 clamp(26px,4vw,40px);background:radial-gradient(820px 380px at 8% -10%,#dbe7ff 0,rgba(219,231,255,0) 62%),radial-gradient(700px 340px at 94% 0,#d4f5ee 0,rgba(212,245,238,0) 64%),linear-gradient(180deg,#f7faff 0,#fff 100%);border-bottom:1px solid #eef3fa}
.crumb{font-size:13.5px;color:#64748b;margin:0 0 14px}
.crumb a{color:#64748b;text-decoration:none}
.kicker{display:inline-block;background:#eef4ff;border:1px solid #d8e4fa;border-radius:999px;padding:5px 13px;font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#2563eb;margin:0 0 15px}
h1{font-size:clamp(28px,4.6vw,43px);line-height:1.11;letter-spacing:-.03em;margin:0 0 16px;font-weight:800}
.standfirst{font-size:18px;color:#41506b;margin:0}
.meta{margin:18px 0 0;font-size:14px;color:#64748b}
article{padding:clamp(34px,5vw,54px) 0}
article h2{font-size:clamp(22px,3vw,29px);line-height:1.2;letter-spacing:-.02em;margin:44px 0 16px;font-weight:800}
article h3{font-size:19px;margin:30px 0 10px;font-weight:700;letter-spacing:-.01em}
article p{margin:0 0 17px;font-size:16.5px;color:#31405a}
article ul,article ol{margin:0 0 18px;padding-left:22px;color:#31405a;font-size:16.5px}
article li{margin-bottom:9px}
article strong{color:#0b1b34}
blockquote{margin:24px 0;padding:16px 20px;background:#f7faff;border-left:3px solid #2563eb;border-radius:0 10px 10px 0}
blockquote p{margin:0;font-size:16px;color:#3d4d68}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e6ecf6;border-radius:14px;margin:0 0 22px}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px;background:#fff}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid #eef3fa;vertical-align:top}
thead th{background:#f7faff;font-weight:700;font-size:13.5px;color:#334155}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
.callout{background:linear-gradient(180deg,#f7faff,#fff);border:1px solid #dbe6f7;border-radius:16px;padding:24px;margin:30px 0}
.callout h3{margin:0 0 8px}
.callout p{margin:0 0 16px;font-size:15.5px}
.btn{display:inline-block;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:13px 24px;border-radius:11px;box-shadow:0 8px 22px rgba(37,99,235,.28)}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:#fff;color:#2563eb;border:1px solid #cfdcf2;box-shadow:none}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.pc{display:block;background:#fff;border:1px solid #e6ecf6;border-radius:16px;padding:22px;text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(11,27,52,.04);transition:transform .18s,box-shadow .18s,border-color .18s}
.pc:hover{transform:translateY(-3px);border-color:#cfdcf2;box-shadow:0 14px 32px rgba(11,27,52,.1)}
.pc h3{margin:0 0 8px;font-size:17.5px;font-weight:700;letter-spacing:-.015em;line-height:1.32}
.pc p{margin:0;font-size:14.5px;color:#51607a;line-height:1.6}
.pc .k{font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#0d9488;margin:0 0 9px}
.rel{border-top:1px solid #eef3fa;padding:38px 0}
footer{padding:34px 0;color:#64748b;font-size:14.5px;border-top:1px solid #eef3fa}
footer a{color:#41506b;text-decoration:none}

figure.shot{margin:26px 0 0;padding:0}
figure.shot picture,figure.shot img{display:block;width:100%;height:auto;border:1px solid #dbe3ef;border-radius:12px;box-shadow:0 10px 30px rgba(11,27,52,.10);background:#fff}
figure.shot figcaption{margin-top:10px;font-size:13.5px;color:#64748b;line-height:1.5}
.shotgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:26px}
.shotgrid figure.shot{margin:0}
.shotgrid.narrow{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
