:root { --bg:#F4F3EF; --key:#FFFFFF; --ink:#000000; --sub:#5C5C5C; --felt:#A3172E; --edge:#D6D4CE; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Hiragino Sans","Yu Gothic UI","Meiryo",system-ui,sans-serif; line-height:1.8; }
.wrap { max-width:720px; margin:0 auto; padding:40px 16px 64px; }
header { display:flex; align-items:center; gap:16px; margin-bottom:24px; }
header img { width:72px; height:72px; border-radius:16px; box-shadow:0 2px 8px rgba(0,0,0,.12); }
header h1 { font-size:24px; margin:0; line-height:1.3; }
header p { margin:2px 0 0; color:var(--sub); font-size:14px; }
.keys { height:10px; margin:0 0 28px; background:repeating-linear-gradient(90deg,#fff 0 22px,var(--edge) 22px 23px); border-top:3px solid var(--ink); }
nav { font-size:14px; margin-bottom:24px; }
nav a { margin-right:16px; }
a { color:var(--felt); }
h2 { font-size:19px; margin:36px 0 8px; padding-bottom:4px; border-bottom:1px solid var(--edge); }
h3 { font-size:16px; margin:20px 0 4px; }
.card { background:var(--key); border:1px solid var(--edge); border-radius:12px; padding:16px 20px; margin:12px 0; }
.mail { font-size:18px; font-weight:700; }
footer { margin-top:48px; font-size:13px; color:var(--sub); }
