.genealogy-gate{--gate-ink:#302c25;--gate-muted:#867c6c;--gate-red:#8e3531;--gate-line:#d9cbb1;color:var(--gate-ink);background-color:#f1ebde;background-image:radial-gradient(ellipse at 0 0,#d9cbb066,transparent 50%),repeating-linear-gradient(0deg,transparent,transparent 5px,#97806006 6px);padding:64px 24px;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;min-height:calc(100vh - 140px)}
.gate-frame{max-width:1120px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;border:1px solid var(--gate-line);box-shadow:0 24px 70px #4e3b2012;background:#fffdf8;position:relative}
.gate-story{position:relative;overflow:hidden;padding:52px 46px;display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(150deg,#eae1ce,#f4ecdd);border-right:1px solid var(--gate-line)}
.gate-story::before,.gate-story::after{content:"";position:absolute;width:100px;height:100px;border:1px solid #b49a6766;transform:rotate(45deg);pointer-events:none}.gate-story::before{top:-62px;left:-50px;box-shadow:0 0 0 9px #b49a6712,0 0 0 18px #b49a6712}.gate-story::after{bottom:-62px;right:-50px;box-shadow:0 0 0 9px #b49a6712,0 0 0 18px #b49a6712}
.gate-overline{font-size:12px;letter-spacing:.32em;color:#8d7755;border-left:2px solid #a08a60;padding-left:12px}
.gate-seal{border:2px solid var(--gate-red);outline:1px solid #8e353166;outline-offset:3px;color:var(--gate-red);font-size:18px;line-height:1.2;padding:6px;letter-spacing:.14em;transform:rotate(-5deg);margin-top:52px}
.gate-story h1{font-size:42px;line-height:1.65;letter-spacing:.12em;font-weight:500;margin:30px 0 18px}.gate-story h1 span{color:var(--gate-red)}
.gate-subtitle{font-size:17px;letter-spacing:.4em;border-top:1px solid #c2af8a;padding-top:20px;margin-bottom:22px}.gate-description{font-size:13px;line-height:2.2;color:#86775f;max-width:330px}
.gate-tree{width:100%;color:#ad9468;opacity:.55;margin-top:24px;min-height:120px}.gate-footnote{display:flex;align-items:center;gap:13px;font-size:11px;color:#948267;letter-spacing:.12em;margin-top:auto;padding-top:36px}.gate-footnote i{width:3px;height:3px;background:#a58c62;transform:rotate(45deg)}
.gate-panel{padding:34px 48px 24px;min-width:0}.gate-panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#ad9b80;font:10px/1.5 system-ui,sans-serif;letter-spacing:.15em}.gate-panel a{color:var(--gate-red);text-decoration:none}.gate-panel a:hover{text-decoration:underline}.gate-panel-top a{font-size:12px;letter-spacing:0;color:#8c7d66}
.gate-heading{margin:38px 0 26px}.gate-chapter{font-size:11px;letter-spacing:.28em;color:#a99069}.gate-heading h2{font-size:30px;letter-spacing:.16em;margin:10px 0 12px}.gate-heading p{font-size:13px;line-height:1.9;color:var(--gate-muted);margin:0}
.gate-form label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13px;margin:0 0 9px}.gate-form label>span{font-size:11px;color:#9a8b74}.gate-form input:not([type=checkbox]),.gate-form textarea{box-sizing:border-box;display:block;width:100%;border:1px solid #ded4c2;background:#fcfaf4;border-radius:3px;padding:12px 13px;color:var(--gate-ink);font:14px/1.5 system-ui,sans-serif;outline:none;margin-bottom:22px}.gate-form input:focus,.gate-form textarea:focus{border-color:#a58b5c;box-shadow:0 0 0 3px #a58b5c15}.gate-form input::placeholder,.gate-form textarea::placeholder{color:#b0a591;font-size:12px}.gate-form textarea{resize:vertical;min-height:100px}
.gate-submit{display:flex;justify-content:center;align-items:center;position:relative;width:100%;border:1px solid #78302d;background:var(--gate-red);color:#fff8e9;padding:14px 30px;font-family:inherit;font-size:15px;line-height:1.5;cursor:pointer;border-radius:3px;box-shadow:0 5px 14px #8e353117}.gate-submit:hover{background:#752c29}.gate-submit>span{position:absolute;right:22px;color:#dfb6a4}.gate-help{text-align:center;font-size:12px;color:var(--gate-muted);margin:22px 0}.gate-help a{margin-left:7px}
.gate-process{border-top:1px solid #e5ddcf;margin-top:36px;padding-top:22px}.gate-process b{font-size:12px;font-weight:500;letter-spacing:.15em;color:#8f7956}.gate-process p{font-size:12px;color:#a29581;line-height:1.9;margin-top:10px}.gate-signature{text-align:center;font-size:10px;letter-spacing:.3em;color:#bbaf99;margin:30px 0 0}
.gate-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.gate-fields>div{min-width:0}.gate-field-wide{grid-column:1/-1}.gate-form .gate-consent{align-items:flex-start;justify-content:flex-start;margin:0 0 22px;line-height:1.9}.gate-consent input{margin-top:5px;accent-color:var(--gate-red);flex-shrink:0}.gate-consent span{font-size:11px!important;color:#8b806e!important}
.gate-steps{display:flex;justify-content:space-between;padding:0 0 24px;margin-top:-6px;color:#9d8b70;font-size:11px;gap:10px}.gate-steps b{font-weight:400;color:var(--gate-red);margin-right:7px}
.gate-errors,.gate-notice{font:12px/1.8 system-ui,sans-serif;padding:12px 15px;border-radius:3px;margin-bottom:22px}.gate-errors{background:#fff1ed;border:1px solid #e6bcb0;color:#963f32}.gate-errors ul{padding-left:18px;margin:5px 0 0}.gate-notice{background:#eef3e8;border:1px solid #cbd6be;color:#4c6541}
.genealogy-gate :focus-visible{outline:2px solid var(--gate-red);outline-offset:3px}
@media(max-width:900px){.gate-story{padding:42px 28px}.gate-story h1{font-size:32px}.gate-panel{padding:30px}.gate-description{font-size:12px}.gate-footnote{gap:8px;font-size:10px}.gate-form label{flex-wrap:wrap}}
@media(max-width:680px){.genealogy-gate{padding:24px 14px}.gate-frame{grid-template-columns:1fr}.gate-story{padding:25px;border-right:0;border-bottom:1px solid var(--gate-line)}.gate-story h1{font-size:28px;line-height:1.5;margin:20px 0 10px}.gate-story h1 span{margin-left:0}.gate-seal{position:absolute;right:28px;top:16px;margin:0;font-size:13px}.gate-overline{padding-right:60px}.gate-description,.gate-tree,.gate-footnote{display:none}.gate-subtitle{border:0;padding:0;font-size:12px;margin:0}.gate-panel{padding:25px}.gate-heading{margin:28px 0 24px}.gate-heading h2{font-size:26px}.gate-fields{grid-template-columns:1fr}.gate-field-wide{grid-column:auto}.gate-form input:not([type=checkbox]),.gate-form textarea{font-size:16px}}
