: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;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--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,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:#f4efe6e6;border-bottom:1px solid #57463429}.header-inner{align-items:center;min-height:72px;display:flex}.wordmark{letter-spacing:-.015em;font-family:Georgia,Times New Roman,serif;font-size:19px;font-weight:700}.hero{padding:74px 0 72px;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(170px,22vw,318px);line-height:1;position:absolute;top:18px;left:max(-28px,50% - 710px)}.hero-intro{text-align:center;max-width:850px;margin:0 auto 34px;position:relative}.eyebrow{color:var(--accent);letter-spacing:.13em;text-transform:uppercase;margin:0 0 14px;font-size:13px;font-weight:800}h1,h2,h3{text-wrap:balance;font-family:Georgia,Times New Roman,serif}h1{letter-spacing:-.044em;max-width:800px;margin:0 auto 20px;font-size:clamp(40px,5.4vw,72px);line-height:1.02}.subhead{max-width:680px;color:var(--muted);text-wrap:pretty;margin:0 auto;font-size:clamp(17px,1.7vw,21px);line-height:1.55}.scope-note{color:#544c43;align-items:flex-start;gap:9px;width:fit-content;max-width:100%;margin:18px auto 0;font-size:14px;display:flex}.scope-note: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%,830px);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:30px}.form-kicker{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:20px}.form-kicker h2{letter-spacing:-.02em;margin:0;font-size:23px}.empty-prompt{color:var(--ink);letter-spacing:-.02em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:700}.field{margin-top:24px}.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:24px 0 0;padding:0}.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:112px;padding:16px 17px;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:7px 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:26px}.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:16px}.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:16px;padding:12px 14px;font-weight:750}.results{background:#fffdf870;border-top:1px solid #57463426;padding:72px 0 84px}.section-head{grid-template-columns:minmax(0,1fr) minmax(260px,470px);align-items:end;gap:40px;margin-bottom:30px;display:grid}.section-head h2{letter-spacing:-.035em;margin:0;font-size:clamp(31px,3.5vw,47px);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{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-1);flex-direction:column;padding:22px;display:flex}.option-label{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;font-size:12px;font-weight:900}.hanzi{letter-spacing:.06em;color:#211d19;-webkit-user-select:text;user-select:text;margin:0;font-family:Noto Serif CJK SC,Songti SC,STSong,SimSun,serif;font-size:clamp(50px,5vw,68px);line-height:1.12}.card-rule{background:var(--accent);width:40px;height:2px;margin:18px 0}.data-row{border-top:1px solid #e4dbce;padding:14px 0}.data-row:first-of-type{border-top:0}.data-label{color:#746a5e;letter-spacing:.09em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:900}.data-value{overflow-wrap:anywhere;margin:0;line-height:1.55}.pinyin{-webkit-user-select:text;user-select:text;font-family:Georgia,Times New Roman,serif;font-size:20px;line-height:1.55}.copy-row{margin-top:auto;padding-top:18px}.copy-btn{border:1.5px solid var(--ink);border-radius:var(--r-sm);width:100%;min-height:46px;color:var(--ink);cursor:pointer;background:0 0;font-weight:850}.copy-btn:hover{background:var(--ink);color:#fff}.copy-feedback{min-height:42px;color:var(--success);margin:10px 0 0;font-size:13px;font-weight:750}.copy-feedback.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:var(--muted);max-width:760px;margin:0;font-size:14px}.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{color:#d8cfc4;background:#171613;padding:30px 0}.footer-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.footer-inner p{margin:0;font-size:13px}.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){.section-head,.how-layout,.faq-layout{grid-template-columns:1fr;gap:26px}.result-grid{grid-template-columns:1fr}.how-layout,.faq-layout{gap:34px}.result-card{padding:24px}.hanzi{font-size:60px}}@media (max-width:620px){.shell{width:min(calc(100% - 28px), var(--content))}.header-inner{min-height:60px}.hero{padding:48px 0 52px}.hero-intro{text-align:left;margin-bottom:24px}h1{margin-inline:0;font-size:clamp(37px,11.2vw,48px)}.subhead{margin-inline:0;font-size:17px}.scope-note{margin-left:0}.generator{border-radius:20px;padding:6px}.generator-inner{border-radius:15px;padding:20px}.mode-grid{grid-template-columns:1fr}.mode-option label{min-height:96px}.results,.message-wrap{padding:52px 0 62px}.section-head{gap:14px;margin-bottom:24px}.result-card{padding:20px}.results-footer{flex-direction:column;align-items:stretch}.results-footer .btn{width:100%}.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}.footer-inner{flex-direction:column;align-items:flex-start}}@media (min-width:621px) and (max-width:900px){.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-card:last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 8px)}}@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}}
