:root{color:#344039;background:#f7f3ec;font-family:Songti SC,STSong,"Noto Serif CJK SC",PingFang SC,serif;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #fffdf9;--cream: #f7f3ec;--ink: #344039;--muted: #788179;--line: #e9e3d9;--sage: #526d5d;--sage-soft: #e6eee6;--clay: #b77d61;--shadow: 0 18px 42px rgba(72, 61, 45, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--cream)}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #9cae9c;outline-offset:3px}h1,h2,p{margin:0}.app-shell{position:relative;min-height:100vh;padding:28px 18px 54px}.home-page,.results-page{width:min(100%,680px);margin:0 auto}.hero{padding:26px 6px 30px}.eyebrow{color:var(--sage);font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.14em}.hero h1,.results-heading h1{margin-top:13px;color:#2e3a33;font-size:clamp(2rem,8.5vw,3.2rem);font-weight:600;letter-spacing:-.055em;line-height:1.25}.hero-note{margin-top:17px;color:var(--muted);font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.9rem}.form-card{border:1px solid rgba(205,194,178,.55);border-radius:22px;background:var(--paper);box-shadow:var(--shadow);padding:5px 20px 22px}.field,.choice-field,.style-field{display:block;min-width:0;margin:0;border:0;border-bottom:1px solid var(--line);padding:20px 0}.field>span,.choice-field legend,.style-field legend{display:block;width:100%;margin:0 0 12px;color:#4b564f;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.91rem;font-weight:650}.field b{margin-left:5px;color:var(--clay);font-size:.7rem;font-weight:650}.field input{width:100%;min-height:46px;border:1px solid #e4ddd2;border-radius:11px;background:#fffefa;color:var(--ink);padding:0 13px;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:1rem}.field input::placeholder{color:#b4b8b0}.surname-field{padding-top:19px}.surname-field input{font-size:1.06rem}.field small{display:block;margin-top:8px;color:#ba6148;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.8rem}.choice-field>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.choice-field button,.style-options button{min-height:43px;border:1px solid #e5ded4;border-radius:11px;background:#fffefa;color:#687168;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.88rem}.choice-field button.is-selected,.style-options button.is-selected{border-color:#90a18f;background:var(--sage-soft);color:#3f5c4b;font-weight:700}.style-options{display:flex;flex-wrap:wrap;gap:8px}.style-options button{min-height:40px;padding:0 13px}.more-preferences{border-bottom:1px solid var(--line)}.more-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;background:transparent;color:#58665c;padding:20px 0;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.92rem}.more-toggle svg{transition:transform .2s ease}.more-toggle svg.is-open{transform:rotate(180deg)}.more-fields{display:grid;gap:0;padding-bottom:4px}.more-fields .field{padding-top:0;padding-bottom:17px;border:0}.birth-info-heading{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;color:#4b564f;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.91rem;font-weight:650}.birth-info-heading button{border:0;background:transparent;color:#788179;padding:5px 0 5px 12px;font:inherit;font-size:.84rem;font-weight:500}.generate-button{width:100%;min-height:55px;margin-top:22px;border:0;border-radius:14px;background:var(--sage);box-shadow:0 10px 18px #405b492b;color:#fffdf8;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.04em}.generate-button:active,.batch-button:active{transform:translateY(1px)}.results-page{padding-top:3px}.back-button{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#68746b;padding:6px 0;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.9rem}.results-heading{padding:29px 2px 22px}.results-heading h1{font-size:clamp(1.85rem,7.8vw,2.7rem)}.results-heading>p:last-child{margin-top:14px;color:var(--muted);font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.92rem}.batch-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;color:#8a928a;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.84rem}.batch-button{border:1px solid #d6dfd4;border-radius:999px;background:#f6faf5;color:#506c5b;padding:8px 14px;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.86rem;font-weight:650}.name-list{display:grid;gap:12px}.name-card{border:1px solid rgba(216,206,193,.75);border-radius:18px;background:var(--paper);box-shadow:0 10px 27px #483d2d0b;padding:16px 18px}.name-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.name-card h2{color:#344238;font-size:1.85rem;font-weight:600;letter-spacing:.08em;line-height:1.1}.pinyin{margin-top:5px;color:#939b91;font-family:Cormorant Garamond,Georgia,serif;font-size:1.05rem;letter-spacing:.05em}.heart-button{appearance:none;-webkit-appearance:none;display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:40px;height:40px;margin:0;border:1px solid #eee8df;border-radius:50%;background:#fffefa;color:#9fa69d;padding:0;line-height:0}.heart-button svg{display:block;flex:0 0 21px;width:21px;height:21px}.heart-button.is-favorited{border-color:#dfb9a7;background:#fff7f2;color:#bc7660}.name-impression{display:-webkit-box;overflow:hidden;margin-top:13px;color:#6b746c;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.9rem;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.tag-list span{border-radius:999px;background:#f2f5ef;color:#68806d;padding:5px 9px;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.73rem}.detail-link{width:100%;margin-top:12px;border:0;border-top:1px solid #efe9df;background:transparent;color:#a1a8a0;padding:11px 0 0;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.88rem;text-align:left}.detail-link:disabled{cursor:default}.results-note{margin:23px 5px 0;color:#9aa199;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.77rem;line-height:1.7}.favorites-link{position:absolute;top:25px;right:18px;display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#6e7f73;padding:5px 0;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.8rem}.detail-page,.favorites-page{width:min(100%,680px);margin:0 auto;padding-top:3px}.detail-hero{padding:27px 2px 25px}.detail-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-top:13px}.detail-name-row h1{color:#344238;font-size:clamp(2.25rem,10vw,3.4rem);font-weight:600;letter-spacing:.1em;line-height:1.05}.detail-hero .tag-list{margin-top:18px}.detail-section{border:1px solid rgba(216,206,193,.75);border-radius:18px;background:var(--paper);box-shadow:0 10px 27px #483d2d0a;margin-top:12px;padding:20px}.detail-section h2{color:#4e6254;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.93rem;font-weight:700}.detail-section>p,.detail-section article p{color:#69736b;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.92rem;line-height:1.75}.detail-section>h2+p{margin-top:13px}.detail-section p+p{margin-top:9px}.character-meanings{display:grid;gap:15px;margin-top:16px}.character-meanings article{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:start}.character-meanings article+article{border-top:1px solid #eee8df;padding-top:15px}.character-meanings strong{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#f1f5ef;color:#4f6b5a;font-size:1.15rem;font-weight:600}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.detail-actions button,.empty-favorites button{min-height:49px;border-radius:13px;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.92rem;font-weight:700}.favorite-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d9e1d7;background:#f7faf6;color:#56705f}.favorite-action.is-favorited{border-color:#dfb9a7;background:#fff7f2;color:#bc7660}.other-names-action{border:0;background:var(--sage);color:#fffdf8}.share-inline-action{display:inline-flex;align-items:center;gap:6px;margin:15px auto 0;border:0;background:transparent;color:#6e7f73;padding:4px 0;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.86rem}.favorites-heading{padding:29px 2px 22px}.favorites-heading h1{margin-top:13px;color:#2e3a33;font-size:clamp(1.9rem,8vw,2.8rem);font-weight:600;letter-spacing:-.045em;line-height:1.2}.favorites-heading>p:last-child{margin-top:13px;color:var(--muted);font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.92rem}.favorite-list{display:grid;gap:12px}.favorite-card{border:1px solid rgba(216,206,193,.75);border-radius:18px;background:var(--paper);box-shadow:0 10px 27px #483d2d0a;padding:18px}.favorite-card h2{color:#344238;font-size:1.65rem;font-weight:600;letter-spacing:.08em}.favorite-card-actions{display:flex;gap:17px;margin-top:14px;border-top:1px solid #efe9df;padding-top:12px}.favorite-card-actions button{border:0;background:transparent;color:#617b69;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.86rem}.favorite-card-actions button+button{color:#a07667}.empty-favorites{border:1px solid rgba(216,206,193,.75);border-radius:18px;background:var(--paper);box-shadow:var(--shadow);padding:38px 24px;text-align:center}.empty-favorites h2{color:#46564a;font-size:1.35rem;font-weight:600}.empty-favorites p{margin:12px auto 23px;max-width:230px;color:#818980;font-family:PingFang SC,Hiragino Sans GB,sans-serif;font-size:.9rem;line-height:1.7}.empty-favorites button{width:min(100%,220px);border:0;background:var(--sage);color:#fffdf8}@media(min-width:720px){.app-shell{padding:52px 32px 76px}.home-page{width:min(100%,760px)}.hero{padding:36px 8px 37px}.form-card{padding:7px 32px 31px}.results-page,.detail-page,.favorites-page{width:min(100%,760px)}.name-card{padding:23px 25px}.choice-field>div{max-width:430px}}
