:root{--paper:#f4efe6;--paper-deep:#ebe2d5;--surface:#fffdf8;--ink:#1d1b18;--muted:#665f56;--line:#d8cdbd;--line-strong:#b8aa98;--accent:#9f3529;--accent-dark:#76251e;--accent-soft:#f5dfd9;--success:#27634e;--success-soft:#e3eee8;--danger:#a52c25;--danger-soft:#f8e5e1;--focus:#216fa3;--shadow-1:0 1px 0 #261e160f, 0 12px 34px #31231514;--shadow-2:0 2px 0 #261e1612, 0 22px 58px #3123151c;--r-sm:8px;--r-md:14px;--r-lg:22px;--content:1160px}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{background:linear-gradient(90deg, #9f352906 1px, transparent 1px) 0 0 / 48px 48px, linear-gradient(#9f352905 1px, transparent 1px) 0 0 / 48px 48px, var(--paper);min-width:320px;margin:0;font-family:Aptos,Segoe UI,Helvetica Neue,sans-serif;font-size:16px;line-height:1.55}button,input,select{font:inherit}button,label,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,[tabindex="-1"]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.shell{width:min(calc(100% - 40px), var(--content));margin-inline:auto}.site-header{background:#f4efe6eb;border-bottom:1px solid #57463429}.header-inner{justify-content:space-between;align-items:center;min-height:64px;display:flex}.wordmark{letter-spacing:-.015em;font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:700}.hero{padding:32px 0 56px;position:relative;overflow:clip}.hero:before{content:"名";color:#9f35290b;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Noto Serif CJK SC,Songti SC,STSong,serif;font-size:clamp(150px,19vw,260px);line-height:1;position:absolute;top:-6px;right:max(-40px,50% - 720px)}.hero-copy{text-align:center;max-width:720px;margin:0 auto 18px;position:relative}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:11.5px;font-weight:800}h1,h2,h3{text-wrap:balance;font-family:Georgia,Times New Roman,serif}h1{letter-spacing:-.035em;max-width:640px;margin:0 auto 8px;font-size:clamp(26px,3.4vw,36px);line-height:1.08}.hero-line{max-width:600px;color:var(--muted);text-wrap:pretty;margin:0 auto;font-size:clamp(14px,1.5vw,16px);line-height:1.5}.hero-scope{color:#544c43;align-items:flex-start;gap:9px;width:fit-content;max-width:min(100%,760px);margin:18px auto 0;font-size:13.5px;display:flex}.hero-scope:before{content:"";background:var(--accent);flex:0 0 16px;width:16px;height:1px;margin-top:.78em}.generator{border-radius:calc(var(--r-lg) + 5px);width:min(100%,760px);box-shadow:var(--shadow-2);background:#fffdf88c;border:1px solid #b8aa9880;margin:0 auto;padding:9px;position:relative}.generator-inner{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 30px 24px}.form-kicker{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:16px}.form-kicker h2{letter-spacing:-.02em;margin:0;font-size:21px}.empty-prompt{color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-weight:700}.field{margin-top:20px}.field:first-of-type{margin-top:0}.field-label,legend{color:#292621;margin-bottom:8px;font-weight:750;display:block}.text-input,.select-input{border:1.5px solid var(--line-strong);border-radius:var(--r-sm);width:100%;min-height:52px;color:var(--ink);background:#fffefa;padding:12px 14px;transition:border-color .16s,box-shadow .16s;box-shadow:inset 0 1px 2px #3023150a}.text-input:hover,.select-input:hover{border-color:#8c7c69}.text-input:focus,.select-input:focus{border-color:var(--focus);box-shadow:0 0 0 3px #216fa321}.text-input::placeholder{color:#8a8177}.help{color:var(--muted);margin:8px 0 0;font-size:13px}.error-text{color:var(--danger);margin:8px 0 0;font-size:14px;font-weight:700}.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px #a52c251a}fieldset{border:0;min-width:0;margin:20px 0 0;padding:0}.row-2col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.row-2col .field{margin-top:0}.segmented{background:var(--paper-deep);border:1px solid var(--line);border-radius:calc(var(--r-sm) + 4px);grid-template-columns:repeat(3,1fr);gap:6px;padding:4px;display:grid}.seg-option{min-width:0;position:relative}.seg-option input{opacity:0;position:absolute;inset:0}.seg-option label{border-radius:var(--r-sm);cursor:pointer;text-align:center;border:1.5px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:52px;padding:8px 6px;transition:background .15s,border-color .15s;display:flex}.seg-option label:hover{background:#fffdf8b3}.seg-option input:checked+label{background:var(--surface);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.seg-option input:focus-visible+label{outline:3px solid var(--focus);outline-offset:2px}.seg-title{font-size:14px;font-weight:800}.seg-note{color:var(--muted);font-size:11.5px;line-height:1.3}.seg-option input:checked+label .seg-note{color:#54412f}.mode-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mode-option{min-width:0;position:relative}.mode-option input{opacity:0;position:absolute;inset:0}.mode-option label{border:1.5px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:#fbf8f1;min-height:96px;padding:14px 16px;transition:transform .16s,border-color .16s,background .16s;display:block}.mode-option label:hover{border-color:#9e8e7c;transform:translateY(-1px)}.mode-option input:checked+label{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.mode-option input:focus-visible+label{outline:3px solid var(--focus);outline-offset:3px}.mode-title{align-items:center;gap:9px;font-weight:800;display:flex}.radio-dot{background:#fff;border:1.5px solid #7d7062;border-radius:50%;width:17px;height:17px;box-shadow:inset 0 0 0 4px #fff}.mode-option input:checked+label .radio-dot{background:var(--accent);border-color:var(--accent)}.mode-help{color:var(--muted);margin:6px 0 0 26px;font-size:13px;line-height:1.45;display:block}.mode-scope{color:var(--muted);margin:12px 0 0;font-size:13px}.form-actions{margin-top:22px}.btn{border-radius:var(--r-sm);cursor:pointer;border:0;min-height:48px;padding:12px 18px;font-weight:800;transition:transform .15s,background .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff;width:100%;box-shadow:0 5px 0 var(--accent-dark)}.btn-primary:hover{box-shadow:0 6px 0 var(--accent-dark);background:#a93b2e}.btn-primary:active{box-shadow:0 2px 0 var(--accent-dark);transform:translateY(3px)}.btn-primary:disabled{box-shadow:none;cursor:wait;background:#a69b8d;transform:none}.btn-secondary{border:1px solid var(--line-strong);color:var(--ink);background:0 0}.btn-secondary:hover{background:var(--paper)}.status-slot{min-height:26px;margin-top:14px}.status-line{color:#4f473e;align-items:center;gap:11px;margin:0;font-size:14px;font-weight:700;display:flex}.status-line.is-success{color:var(--success)}.status-mark{background:var(--accent);flex:none;width:9px;height:9px;animation:1.2s ease-in-out infinite breathe;transform:rotate(45deg)}@keyframes breathe{50%{opacity:.28;transform:rotate(45deg)scale(.72)}}.validation-summary{background:var(--danger-soft);border-radius:var(--r-sm);color:#78211d;border:1px solid #e0aea8;margin-top:14px;padding:12px 14px;font-weight:750}.results{background:#fffdf870;border-top:1px solid #57463426;padding:64px 0 80px}.section-head{text-align:center;max-width:760px;margin:0 auto 28px}.section-head h2{letter-spacing:-.035em;margin:0 0 10px;font-size:clamp(28px,3.4vw,42px);line-height:1.08}.section-head p{color:var(--muted);margin:0}.result-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.result-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:0;box-shadow:var(--shadow-1);flex-direction:column;padding:22px 22px 20px;display:flex}.option-label{color:#73695e;text-transform:uppercase;letter-spacing:.07em;margin:0 0 14px;font-family:inherit;font-size:12px;font-weight:800}.hanzi{letter-spacing:.04em;-webkit-user-select:text;user-select:text;margin:0 0 6px;font-family:Noto Serif CJK SC,Songti SC,STSong,SimSun,serif;font-size:54px;line-height:1.12}.hanzi .surname-char{color:var(--accent)}.pinyin{color:#2d2823;-webkit-user-select:text;user-select:text;margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:19px;line-height:1.55}.name-structure{border:1px dashed var(--line-strong);border-radius:var(--r-sm);color:var(--muted);overflow-wrap:anywhere;background:#fbf8f1;margin:0 0 14px;padding:9px 12px;font-size:12.5px;line-height:1.5}.name-structure b{color:#292621;font-weight:750}.name-structure .fallback-note{color:var(--accent-dark);margin-top:5px;font-weight:700;display:block}.kv{margin:0 0 12px}.kv dt{letter-spacing:.07em;text-transform:uppercase;color:#73695e;margin-bottom:2px;font-size:11.5px;font-weight:850}.kv dd{margin:0;font-size:14.5px}.fit-tag{background:var(--accent-soft);color:var(--accent-dark);letter-spacing:.05em;text-transform:uppercase;border-radius:999px;align-self:flex-start;margin:0 0 6px;padding:3px 10px;font-size:11.5px;font-weight:850;display:inline-block}.fit-text{color:var(--muted);margin:0 0 16px;font-size:13.5px}.result-card .copy-btn{width:100%;margin-top:auto}.copy-status{min-height:22px;margin:8px 0 0;font-size:13px;font-weight:700}.copy-status.is-success{color:var(--success)}.copy-status.error{color:var(--danger)}.results-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding-top:20px;display:flex}.results-scope{color:#544c43;max-width:760px;margin:0;font-size:13.5px}.message-wrap{background:#fffdf870;border-top:1px solid #57463426;padding:62px 0 84px}.message-panel{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:min(100%,760px);box-shadow:var(--shadow-1);margin:0 auto;padding:30px}.message-panel:before{content:"";background:var(--accent);width:42px;height:3px;margin-bottom:20px;display:block}.message-panel h2{margin:0 0 10px;font-size:30px}.message-panel p{color:var(--muted);margin:0}.message-actions{gap:10px;margin-top:24px;display:flex}.message-actions .btn-primary{width:auto;min-width:124px}.how{padding:86px 0}.how-layout{grid-template-columns:270px minmax(0,1fr);gap:76px;display:grid}.how h2,.faq h2{letter-spacing:-.035em;margin:0;font-size:clamp(31px,3.7vw,46px)}.how-list{counter-reset:steps;border-top:1px solid var(--line-strong)}.how-step{counter-increment:steps;border-bottom:1px solid var(--line);grid-template-columns:56px minmax(0,1fr);gap:18px;padding:25px 0;display:grid}.how-step:before{content:"0" counter(steps);color:var(--accent);font-family:Georgia,serif;font-weight:700}.how-step h3{margin:0 0 7px;font-size:21px}.how-step p{color:var(--muted);margin:0}.faq{color:#faf6ef;background:#211f1c;padding:82px 0 90px}.faq-layout{grid-template-columns:minmax(230px,.78fr) minmax(0,1.22fr);gap:80px;display:grid}.faq-intro{color:#cfc5b8;margin:18px 0 0}.faq details{border-top:1px solid #5d564d}.faq details:last-child{border-bottom:1px solid #5d564d}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:20px;min-height:66px;font-family:Georgia,serif;font-size:19px;font-weight:700;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:#db8f82;font-family:sans-serif;font-size:24px;font-weight:400}.faq details[open] summary:after{content:"−"}.faq details p{color:#d7cec2;margin:-2px 44px 22px 0}.site-footer{background:var(--paper-deep);border-top:1px solid #5746342e;padding:40px 0 44px}.footer-inner{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;display:grid}.footer-brand p{color:var(--muted);max-width:420px;margin:8px 0 0;font-size:13.5px}.footer-links{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 26px;padding-top:3px;display:flex}.footer-links a{color:#3d372f;border-bottom:1.5px solid #0000;padding-bottom:1px;font-size:14px;font-weight:700;text-decoration:none}.footer-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.footer-links .sep{color:var(--line-strong)}.footer-legal-line{color:#847a6d;border-top:1px solid #57463429;grid-column:1/-1;margin:18px 0 0;padding-top:16px;font-size:12.5px}.legal{padding:56px 0 72px}.legal-inner{max-width:760px}.legal h1{letter-spacing:-.03em;text-align:left;max-width:none;margin:0 0 8px;font-size:clamp(30px,3.6vw,44px);line-height:1.08}.legal-effective{border-bottom:1px solid var(--line);color:var(--muted);margin:0 0 28px;padding-bottom:20px;font-size:14px}.legal h2{letter-spacing:-.015em;margin:34px 0 10px;font-size:22px}.legal p{color:#3f3a33;margin:0 0 14px}.legal ul{color:#3f3a33;margin:0 0 14px;padding-left:22px}.legal li{margin-bottom:8px}.legal a{color:var(--accent-dark)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}[hidden]{display:none!important}@media (max-width:900px){.result-grid{grid-template-columns:1fr;max-width:560px;margin-inline:auto}.how-layout,.faq-layout{grid-template-columns:1fr;gap:34px}.footer-inner{grid-template-columns:1fr}.footer-links{justify-content:flex-start}}@media (max-width:640px){.shell{width:min(calc(100% - 28px), var(--content))}.hero{padding:18px 0 40px}.hero-copy{text-align:left;margin-bottom:14px}.eyebrow{display:none}h1{letter-spacing:-.025em;text-wrap:wrap;margin:0 0 6px;font-size:21px;line-height:1.12}.hero-line{margin-left:0;font-size:13px;line-height:1.4}.hero-line-more{display:none}.generator{border-radius:20px;padding:6px}.generator-inner{border-radius:15px;padding:20px 18px 18px}.row-2col{grid-template-columns:1fr;gap:0}.row-2col .field+.field{margin-top:20px}.mode-grid{grid-template-columns:1fr}.mode-option label{min-height:84px}.hero-scope{margin-left:0}.results{padding:48px 0 60px}.section-head{margin-bottom:24px}.result-card{padding:20px}.hanzi{font-size:60px}.results-footer{flex-direction:column;align-items:stretch}.results-footer .btn{width:100%}.message-wrap{padding:52px 0 62px}.message-panel{padding:24px 20px}.message-actions{flex-direction:column}.message-actions .btn{width:100%}.how{padding:64px 0}.how-step{grid-template-columns:40px minmax(0,1fr);gap:10px}.faq{padding:62px 0 70px}.legal{padding:40px 0 52px}.legal h2{font-size:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.status-mark{animation:none}}
