:root{
  --paper:#F6F7F9; --ink:#1C2742; --sub:#4A5571; --blue:#2E56C7; --red:#C2352B; --rule:#D3D8E2; --field:#fff;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#141A2B; --ink:#E9ECF3; --sub:#AAB3C8; --blue:#8EA8F0; --red:#E2685F; --rule:#2E3750; --field:#1C2338;}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"BIZ UDPGothic","Hiragino Sans","Yu Gothic",sans-serif;font-size:19px;line-height:1.8}
main{max-width:640px;margin:0 auto;padding:40px 22px 64px}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

.hero{position:relative;padding:8px 0 32px;border-bottom:2px dashed var(--rule)}
.brand{font-size:15px;color:var(--sub);margin:0 0 28px}
.hero h1{font-size:clamp(34px,8.5vw,52px);line-height:1.3;margin:0 0 20px;letter-spacing:.02em;max-width:11em}
.lead{margin:0;color:var(--sub);max-width:28em}
.stamp{position:absolute;top:0;right:0;width:92px;height:92px;border:4px solid var(--red);border-radius:50%;
  color:var(--red);display:grid;place-items:center;font-size:46px;font-weight:700;transform:rotate(-12deg);opacity:.92}
@media (prefers-reduced-motion:no-preference){
  .stamp{animation:press .5s .3s both cubic-bezier(.2,.9,.3,1.3)}
  @keyframes press{from{transform:rotate(-12deg) scale(1.6);opacity:0}to{transform:rotate(-12deg) scale(1);opacity:.92}}
}
@media (max-width:520px){.stamp{width:68px;height:68px;font-size:34px;border-width:3px}.hero h1{padding-right:56px}}

.gets{margin:32px 0;padding:0;list-style:none}
.gets li{padding:14px 0;border-bottom:1px solid var(--rule)}
.gets b{display:block;font-size:20px}
.gets span{color:var(--sub);font-size:17px}

form.signup{margin-top:36px}
.stack{display:grid;gap:20px}
label{display:grid;gap:6px;font-weight:700}
label small{font-weight:400;color:var(--sub)}
input,select,textarea{font:inherit;font-weight:400;color:var(--ink);background:var(--field);
  border:2px solid var(--rule);border-radius:8px;padding:12px 14px;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none}
fieldset{border:none;padding:0;margin:0;display:grid;gap:8px}
legend{font-weight:700;margin-bottom:6px}
.choice{display:flex;align-items:center;gap:12px;font-weight:400;padding:10px 14px;border:2px solid var(--rule);border-radius:8px;background:var(--field)}
.choice input{width:24px;height:24px;margin:0;accent-color:var(--blue)}
.choice:has(input:checked){border-color:var(--blue)}
.row{display:flex;gap:10px;align-items:center;font-weight:400}
.row input{width:22px;height:22px}
button{font:inherit;font-weight:700;font-size:20px;color:#fff;background:var(--blue);border:none;border-radius:8px;
  padding:16px 20px;width:100%;cursor:pointer}
button:hover{filter:brightness(1.08)}
.note{font-size:15px;color:var(--sub);margin:12px 0 0}
.hp{position:absolute;left:-9999px}
footer{margin-top:56px;font-size:14px;color:var(--sub)}

/* 確認ページ・管理画面 */
.simple h1{font-size:28px;line-height:1.4}
.simple h2{font-size:21px;margin-top:40px;border-top:2px dashed var(--rule);padding-top:24px}
.big{font-size:34px;font-weight:700;margin:0}
.notice{background:var(--field);border-left:4px solid var(--blue);padding:12px 16px}
.scroll{overflow-x:auto}
table{border-collapse:collapse;font-size:15px;min-width:100%}
td,th{border-bottom:1px solid var(--rule);padding:8px 10px;text-align:left;white-space:nowrap}
