:root { font-family: system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; color:#f9f4eb; background:#241b20; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; }
.entry-shell { min-height:100svh; display:grid; place-items:center; padding:38px 18px; background:radial-gradient(ellipse at 74% 13%,#71576075,transparent 48%),radial-gradient(ellipse at 15% 90%,#a67e5850,transparent 48%),linear-gradient(140deg,#21191e,#3b2c32 60%,#20191d); }
.entry-card { width:min(100%,560px); padding:clamp(28px,5vw,55px); border:1px solid #e9cda34d; border-radius:10px; background:#241d21d9; box-shadow:0 24px 80px #130d12a8; backdrop-filter:blur(20px); }
.brand { display:flex; align-items:baseline; gap:10px; width:fit-content; color:#f9e8cc; text-decoration:none; }
.brand span { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:31px; letter-spacing:.08em; }
.brand small { font-size:11px; font-weight:600; letter-spacing:.24em; }
.eyebrow { margin:37px 0 12px; color:#d8b98c; font-size:10px; font-weight:700; letter-spacing:.24em; }
h1 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(29px,5vw,38px); font-weight:500; line-height:1.4; }
.intro { margin:12px 0 32px; color:#dbd0ca; font-size:13px; line-height:1.9; }
form { display:grid; gap:18px; }
.field { display:grid; gap:8px; min-width:0; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
label { color:#f4eadd; font-size:13px; font-weight:600; }
label span:not(.check span) { margin-left:5px; color:#d5b385; font-size:10px; }
input:not([type=checkbox]), select { width:100%; height:46px; padding:0 13px; border:1px solid #cbb89e5e; border-radius:4px; outline:none; background:#fff8ee0e; color:#fffaf4; font:inherit; font-size:14px; }
select option { color:#241b20; }
input::placeholder { color:#b9aaa4; }
input:focus,select:focus { border-color:#e9cfaa; box-shadow:0 0 0 2px #e9cfaa30; }
.check { display:flex; align-items:center; gap:10px; margin-top:3px; cursor:pointer; }
.check input { width:17px; height:17px; accent-color:#dfbe8d; }
.check span { font-size:13px; }
.submit { display:flex; align-items:center; justify-content:center; gap:20px; width:100%; min-height:52px; margin-top:3px; border:0; border-radius:4px; background:#e9cfaa; color:#332727; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.submit:hover { background:#f6dfbc; }
.back { display:block; width:fit-content; margin:25px auto 0; color:#e6d7c4; font-size:13px; text-decoration:underline; text-underline-offset:4px; }
.footnote { margin:27px 0 0; color:#ac9d98; font-size:11px; text-align:center; }
.field-error,.form-error { color:#ffc4b8; font-size:12px; line-height:1.5; }
.field-error:empty,.form-error:empty { display:none; }
.form-error ul { margin:0; padding-left:18px; }
@media(max-width:430px) { .entry-shell { padding:18px 12px; } .entry-card { padding:26px 22px; } .field-row { gap:10px; } }
