:root{
    --ink:#24342f;
    --muted:#6d7b75;
    --jade:#315f55;
    --jade-2:#4c7b70;
    --paper:#f7f3ea;
    --paper-2:#efe8db;
    --line:#d9d1c4;
    --red:#a54a3e;
    --white:#fff;
    --shadow:0 18px 45px rgba(39,52,47,.1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    background:#fbf9f4;
    color:var(--ink);
    font-family:"Noto Serif SC","Songti SC",serif;
    line-height:1.75;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

/* Header */
.site-header{
    height:78px;
    display:flex;
    align-items:center;
    gap:28px;
    padding:0 5vw;
    background:rgba(251,249,244,.96);
    border-bottom:1px solid rgba(217,209,196,.7);
    position:sticky;
    top:0;
    z-index:50;
    backdrop-filter:blur(14px);
}
.brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:max-content;
}
.brand strong{
    display:block;
    font-size:20px;
    letter-spacing:.08em;
}
.brand small{
    display:block;
    color:var(--muted);
    font-size:11px;
}
.seal,.avatar-seal{
    display:grid;
    place-items:center;
    background:var(--red);
    color:#fff;
    border-radius:8px;
    width:42px;
    height:42px;
    font-weight:700;
    box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);
}
.main-nav{
    display:flex;
    gap:24px;
    margin:auto;
}
.main-nav a{
    padding:26px 0 22px;
    color:#56615d;
    border-bottom:3px solid transparent;
}
.main-nav a:hover,.main-nav a.active{
    color:var(--jade);
    border-color:var(--jade);
}
.header-actions{
    display:flex;
    align-items:center;
    gap:10px;
}
.icon-button,.login-button,.nav-toggle{
    border:0;
    background:transparent;
    cursor:pointer;
}
.icon-button{font-size:25px}
.login-button,.primary-button{
    background:var(--jade);
    color:#fff;
    border-radius:999px;
    padding:10px 18px;
}
.nav-toggle{
    display:none;
    font-size:24px;
}

/* Hero */
.hero{
    min-height:590px;
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#edf3ef 0,#f6f3ea 75%);
    display:grid;
    place-items:center;
    text-align:center;
}
.hero:after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:160px;
    background:linear-gradient(transparent,#f9f7f1);
}
.hero-inner{
    position:relative;
    z-index:3;
    max-width:760px;
    padding:70px 20px;
}
.hero-kicker,.eyebrow{
    color:var(--red);
    letter-spacing:.24em;
    font-size:13px;
}
.hero h1,.page-hero h1{
    font-size:clamp(42px,6vw,74px);
    line-height:1.25;
    margin:18px 0;
    letter-spacing:.08em;
}
.hero-description,.data-stats{color:var(--muted)}
.search-box{
    display:flex;
    max-width:650px;
    margin:30px auto 14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:999px;
    padding:7px;
    box-shadow:var(--shadow);
}
.search-box input{
    flex:1;
    border:0;
    outline:0;
    padding:10px 20px;
    background:transparent;
}
.search-box button{
    border:0;
    border-radius:999px;
    background:var(--jade);
    color:#fff;
    padding:8px 22px;
    cursor:pointer;
}
.hot-searches{
    display:flex;
    gap:10px;
    justify-content:center;
    flex-wrap:wrap;
    color:var(--muted);
    font-size:13px;
}
.hot-searches a{
    padding:2px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.7);
}
.hero-sun{
    position:absolute;
    width:150px;
    height:150px;
    border-radius:50%;
    background:rgba(184,91,64,.13);
    right:18%;
    top:90px;
}
.mountain{
    position:absolute;
    bottom:70px;
    width:70%;
    height:260px;
    background:linear-gradient(150deg,transparent 45%,rgba(63,91,80,.14) 46% 58%,transparent 59%);
    filter:blur(.2px);
}
.mountain-one{left:-15%}
.mountain-two{right:-12%;transform:scale(.8)}
.mountain-three{left:20%;bottom:20px;opacity:.7}
.birds{position:absolute;top:140px;left:18%;color:#75847d}
.plum-branch{
    position:absolute;
    right:5%;
    top:170px;
    color:#a85a50;
    font-size:28px;
    transform:rotate(-18deg);
}

/* Quick entry */
.quick-entry{
    max-width:1180px;
    margin:-38px auto 0;
    position:relative;
    z-index:5;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:var(--shadow);
    overflow:hidden;
}
.entry-item{
    padding:24px 16px;
    text-align:center;
    border-right:1px solid #eee9df;
}
.entry-item:last-child{border:0}
.entry-item span,.entry-item strong,.entry-item small{display:block}
.entry-icon{font-size:28px;color:var(--jade)}
.entry-item small{color:var(--muted);font-size:12px}

/* Shared sections */
.content-section,.poet-section,.about-section{
    max-width:1180px;
    margin:90px auto;
    padding:0 22px;
}
.section-heading{
    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-bottom:28px;
}
.section-heading h2{font-size:34px;margin:4px 0}
.section-heading>a,.text-link{color:var(--jade)}

/* Cards */
.poem-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}
.poem-card,.list-poem,.side-card,.author-card-large,.topic-grid>a,.book-grid>a,.sentence-grid article,.auth-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 8px 25px rgba(38,53,47,.05);
}
.poem-card{
    padding:26px;
    min-height:270px;
    display:flex;
    flex-direction:column;
}
.poem-card h3{font-size:25px;margin:12px 0 2px}
.card-meta{display:flex;gap:8px}
.card-meta span,.tag-row a,.chip-row a{
    font-size:12px;
    background:var(--paper-2);
    color:var(--jade);
    padding:4px 10px;
    border-radius:999px;
}
.author-line{color:var(--muted);font-size:14px}
.poem-preview{margin:12px 0 20px}
.text-link{margin-top:auto}

/* Quote */
.quote-section{
    margin:90px 0;
    padding:70px 10vw;
    background:var(--jade);
    color:#fff;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.quote-section blockquote{font-size:34px;margin:12px 0}
.quote-section p{opacity:.75}
.quote-section button{
    border:1px solid rgba(255,255,255,.55);
    color:#fff;
    background:transparent;
    border-radius:999px;
    padding:10px 20px;
}

/* Poets */
.poet-list{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.poet-card{
    display:flex;
    gap:14px;
    align-items:center;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:18px;
}
.poet-card h3,.poet-card p{margin:0}
.poet-card small{color:var(--muted)}
.avatar-seal{border-radius:50%;background:var(--jade)}

/* About */
.about-section{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
}
.about-copy h2{font-size:38px}
.outline-button{
    display:inline-block;
    border:1px solid var(--jade);
    color:var(--jade);
    border-radius:999px;
    padding:10px 18px;
}
.about-features{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.about-features div{
    padding:25px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
}
.about-features span,.about-features strong,.about-features small{display:block}
.about-features span{font-size:26px;color:var(--red)}
.about-features small{color:var(--muted)}

/* Footer */
.site-footer{
    background:#24342f;
    color:#fff;
    padding:42px 5vw;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.footer-links{display:flex;gap:18px;font-size:13px;opacity:.8}

/* Generic pages */
.page-hero{
    background:linear-gradient(180deg,#eaf1ed,#f7f3ea);
    text-align:center;
    padding:90px 20px;
}
.page-hero.compact h1{font-size:48px;margin:8px}
.page-hero p{color:var(--muted)}
.page-shell{
    max-width:1180px;
    margin:60px auto;
    display:grid;
    grid-template-columns:260px 1fr;
    gap:32px;
    padding:0 22px;
}
.filter-panel{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:22px;
    height:max-content;
    position:sticky;
    top:100px;
}
.filter-panel label{display:block;margin:15px 0;color:var(--muted)}
.filter-panel input,.filter-panel select{
    width:100%;
    padding:10px;
    border:1px solid var(--line);
    border-radius:10px;
    margin-top:5px;
    background:#fff;
}
.filter-panel .primary-button{border:0;width:100%}
.muted-link{display:block;text-align:center;color:var(--muted);margin-top:12px}
.list-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.vertical-list{display:grid;gap:14px}
.list-poem{padding:22px}
.list-poem h3{font-size:24px;margin:0}
.tag-row{display:flex;gap:8px;flex-wrap:wrap}

/* Pagination */
.pagination{
    display:flex;
    justify-content:center;
    gap:10px;
    margin:30px;
    flex-wrap:wrap;
}
.pagination a,.pagination span{
    padding:8px 14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:8px;
}
.pagination span.active{
    background:var(--jade);
    color:#fff;
    border-color:var(--jade);
}
.chip-row a.active{
    background:var(--jade);
    color:#fff;
}

/* Detail */
.detail-shell{
    max-width:1180px;
    margin:55px auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:32px;
    padding:0 22px;
}
.poem-detail{
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:45px;
}
.breadcrumbs{font-size:13px;color:var(--muted);display:flex;gap:8px}
.poem-detail header{text-align:center;margin:40px 0}
.poem-detail header h1{font-size:45px;margin:8px}
.reader-tools{
    display:flex;
    gap:8px;
    justify-content:center;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:12px;
}
.reader-tools button{
    border:0;
    background:var(--paper);
    padding:7px 12px;
    border-radius:8px;
}
.poem-body{
    font-size:24px;
    line-height:2.2;
    text-align:center;
    padding:40px 0;
}
.detail-section{border-top:1px solid var(--line);margin-top:30px;padding-top:24px}
.placeholder-box{background:var(--paper);padding:22px;border-radius:12px;color:var(--muted)}
.side-card{padding:20px;margin-bottom:18px}
.author-mini{display:flex;gap:12px;align-items:center}
.author-mini small{display:block;color:var(--muted)}
.side-link{display:block;padding:10px 0;border-bottom:1px dashed var(--line)}
.poem-navigation{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
    margin-top:40px;
    padding-top:28px;
    border-top:1px solid var(--line);
}
.poem-navigation>div:last-child{text-align:right}
.poem-navigation small{display:block;margin-bottom:6px;color:var(--muted)}
.poem-navigation a{color:var(--jade);font-size:17px}
.poem-navigation a:hover{text-decoration:underline}

/* Authors */
.chip-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.author-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.author-card-large{padding:22px;display:flex;gap:16px}
.avatar-seal.large{width:58px;height:58px}
.avatar-seal.xl{width:100px;height:100px;font-size:42px}
.author-card-large h2{margin:0}
.author-card-large p,.author-card-large small{color:var(--muted)}
.author-profile,.book-hero{
    max-width:980px;
    margin:65px auto;
    padding:50px;
    display:flex;
    gap:30px;
    align-items:center;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
}
.author-profile h1,.book-hero h1{font-size:48px;margin:4px}
.profile-stats{display:flex;gap:30px}
.profile-stats strong{display:block;font-size:22px}

/* Topics, books, timeline */
.topic-grid,.book-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}
.topic-grid>a,.book-grid>a{padding:28px}
.topic-grid>a>span{font-size:30px;color:var(--red)}
.timeline{display:grid;gap:14px}
.timeline a{
    display:flex;
    gap:25px;
    align-items:center;
    padding:22px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
}
.timeline>a>span{color:var(--red);font-size:28px}
.book-cover{
    width:70px;
    height:100px;
    background:var(--jade);
    color:#fff;
    display:grid;
    place-items:center;
    border-radius:4px 12px 12px 4px;
    box-shadow:8px 10px 20px rgba(35,52,47,.2);
}
.book-cover.large{width:110px;height:160px}
.book-grid>a{display:flex;align-items:center;gap:18px}
.chapter-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}
.chapter-list a{
    display:flex;
    gap:15px;
    padding:16px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
}
.chapter-list small{display:block;color:var(--muted)}

/* Sentences/search/articles/auth */
.sentence-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}
.sentence-grid article{padding:24px}
.sentence-grid blockquote{font-size:21px;margin:0 0 16px}
.sentence-grid button{
    border:0;
    background:var(--paper);
    padding:7px 12px;
    border-radius:8px;
}
.search-page{padding-bottom:70px}
.search-box.wide{max-width:760px}
.article-page{max-width:850px;margin:60px auto;padding:0 22px}
.article-page h2{margin-top:40px}
.auth-page{min-height:70vh;display:grid;place-items:center;padding:60px 20px}
.auth-card{width:min(430px,100%);padding:35px;text-align:center}
.auth-card label{display:block;text-align:left;margin:18px 0}
.auth-card input{
    width:100%;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    margin-top:6px;
}
.auth-card .primary-button{border:0;width:100%}
.empty-state{padding:60px;text-align:center;color:var(--muted)}
.subheading{margin-top:38px}
.toast{
    position:fixed;
    left:50%;
    bottom:30px;
    transform:translate(-50%,20px);
    background:#24342f;
    color:#fff;
    padding:10px 18px;
    border-radius:999px;
    opacity:0;
    pointer-events:none;
    transition:.25s;
    z-index:100;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Buttons */
.primary-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:0;
    cursor:pointer;
    transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.primary-button:hover{
    background:var(--jade-2);
    transform:translateY(-1px);
    box-shadow:0 8px 20px rgba(49,95,85,.18);
}
.outline-button{
    transition:background .2s ease,color .2s ease,transform .2s ease;
}
.outline-button:hover{
    color:var(--white);
    background:var(--jade);
    transform:translateY(-1px);
}

/* Homepage naming section */
.naming-section{
    width:calc(100% - 44px);
    max-width:1180px;
    margin:90px auto;
    padding:54px;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
    gap:56px;
    align-items:center;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 88% 12%,rgba(165,74,62,.13),transparent 28%),
        linear-gradient(135deg,#f2eadc 0%,#edf3ef 100%);
    border:1px solid var(--line);
    border-radius:28px;
    box-shadow:var(--shadow);
}
.naming-section::before{
    content:"名";
    position:absolute;
    right:15px;
    bottom:-88px;
    color:rgba(49,95,85,.055);
    font-size:280px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}
.naming-copy,.naming-form{position:relative;z-index:2}
.naming-copy h2{
    margin:8px 0 18px;
    font-size:clamp(32px,4vw,43px);
    line-height:1.45;
    letter-spacing:.04em;
}
.naming-copy>p{
    max-width:620px;
    margin:0;
    color:var(--muted);
    font-size:16px;
    line-height:2;
}
.naming-examples{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin-top:30px;
}
.name-example{
    padding:22px;
    background:rgba(255,255,255,.84);
    border:1px solid rgba(217,209,196,.95);
    border-radius:16px;
    box-shadow:0 8px 24px rgba(39,52,47,.05);
}
.name-example strong{
    display:block;
    color:var(--jade);
    font-size:25px;
    letter-spacing:.1em;
}
.name-example small{
    display:block;
    margin-top:7px;
    color:var(--red);
    line-height:1.8;
}
.name-example p{
    margin:8px 0 0;
    color:var(--muted);
    font-size:14px;
}
.naming-form{
    padding:32px;
    background:rgba(255,255,255,.97);
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:0 18px 42px rgba(39,52,47,.11);
}
.naming-form h3{
    margin:0 0 18px;
    font-size:27px;
    text-align:center;
}
.naming-form label{
    display:block;
    margin:16px 0;
    color:var(--muted);
    font-size:14px;
}
.naming-form input,.naming-form select,.naming-form textarea{
    width:100%;
    margin-top:7px;
    padding:12px 14px;
    color:var(--ink);
    background:var(--white);
    border:1px solid var(--line);
    border-radius:11px;
    outline:none;
    transition:.2s ease;
}
.naming-form input:focus,.naming-form select:focus,.naming-form textarea:focus{
    border-color:var(--jade);
    box-shadow:0 0 0 3px rgba(49,95,85,.1);
}
.naming-form textarea{min-height:90px;resize:vertical}
.naming-form .primary-button{
    width:100%;
    min-height:48px;
    margin-top:8px;
    border:0;
    cursor:pointer;
    font-weight:600;
}
.naming-form>small{
    display:block;
    margin-top:13px;
    color:var(--muted);
    text-align:center;
    font-size:12px;
}

/* Naming pages */
.naming-page{
    max-width:1180px;
    margin:60px auto 90px;
    padding:0 22px;
}
.naming-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:32px;
    align-items:start;
}
.naming-main-card,.naming-side-card{
    padding:34px;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:20px;
    box-shadow:0 10px 30px rgba(39,52,47,.055);
}
.naming-main-card h2,.naming-side-card h3{margin-top:0}
.naming-side-card{position:sticky;top:100px}
.naming-tips{display:grid;gap:14px;margin-top:20px}
.naming-tip{padding:15px;background:var(--paper);border-radius:12px}
.naming-tip strong{display:block;margin-bottom:4px;color:var(--jade)}
.naming-tip p{margin:0;color:var(--muted);font-size:13px}
.naming-form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

/* Naming results */
.naming-result-header{
    max-width:1180px;
    margin:45px auto 0;
    padding:0 22px;
}
.naming-result-header h1{margin:6px 0;font-size:42px}
.naming-result-header p{color:var(--muted)}
.name-result-grid{
    max-width:1180px;
    margin:32px auto 90px;
    padding:0 22px;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}
.name-result-card{
    position:relative;
    overflow:hidden;
    padding:30px;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 10px 30px rgba(39,52,47,.055);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.name-result-card:hover{
    transform:translateY(-3px);
    border-color:rgba(49,95,85,.45);
    box-shadow:0 18px 38px rgba(39,52,47,.10);
}
.name-result-card::after{
    content:"诗";
    position:absolute;
    right:-15px;
    top:-32px;
    color:rgba(49,95,85,.045);
    font-size:135px;
    font-weight:700;
    pointer-events:none;
}
.name-result-top{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-start;
    position:relative;
    z-index:2;
}
.name-result-name{
    margin:0;
    color:var(--jade);
    font-size:34px;
    letter-spacing:.12em;
}
.name-score{
    min-width:58px;
    height:58px;
    display:grid;
    place-items:center;
    color:var(--white);
    background:var(--red);
    border-radius:50%;
    font-weight:700;
}
.name-result-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:15px 0;
}
.name-result-tags span{
    padding:4px 10px;
    color:var(--jade);
    background:var(--paper-2);
    border-radius:999px;
    font-size:12px;
}
.name-source{
    padding:17px 19px;
    margin:18px 0;
    background:var(--paper);
    border-left:3px solid var(--red);
    border-radius:0 12px 12px 0;
}
.name-source blockquote{
    margin:0;
    color:var(--ink);
    font-size:18px;
    line-height:1.9;
}
.name-source p{
    margin:8px 0 0;
    color:var(--muted);
    font-size:13px;
}
.name-meaning{color:var(--muted)}
.name-result-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:20px;
}
.name-result-actions a,.name-result-actions button{
    padding:8px 15px;
    color:var(--jade);
    background:transparent;
    border:1px solid var(--jade);
    border-radius:999px;
    cursor:pointer;
}
.name-result-actions a:hover,.name-result-actions button:hover{
    color:var(--white);
    background:var(--jade);
}

/* Tablet */
@media(max-width:980px){
    .main-nav{
        display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        background:#fff;
        padding:16px 5vw;
        flex-wrap:wrap;
        border-bottom:1px solid var(--line);
    }
    .main-nav.open{display:flex}
    .nav-toggle{display:block;margin-left:auto}
    .header-actions{display:none}
    .quick-entry{
        grid-template-columns:repeat(3,1fr);
        margin:20px;
    }
    .poem-grid,.poet-list,.author-grid,.sentence-grid{
        grid-template-columns:repeat(2,1fr);
    }
    .topic-grid,.book-grid{grid-template-columns:repeat(2,1fr)}
    .about-section,.page-shell,.detail-shell{grid-template-columns:1fr}
    .filter-panel{position:static}
    .detail-sidebar{display:grid;grid-template-columns:1fr 1fr}
    .site-footer{flex-direction:column;text-align:center}
    .footer-links{flex-wrap:wrap;justify-content:center}

    .naming-section{
        grid-template-columns:1fr;
        padding:42px;
        gap:36px;
    }
    .naming-layout{grid-template-columns:1fr}
    .naming-side-card{position:static}
    .name-result-grid{grid-template-columns:1fr}
}

/* Mobile */
@media(max-width:620px){
    .site-header{padding:0 16px}
    .brand small{display:none}
    .hero{min-height:520px}
    .hero h1{font-size:42px}
    .quick-entry{grid-template-columns:repeat(2,1fr)}
    .poem-grid,.poet-list,.author-grid,.sentence-grid,.topic-grid,.book-grid,.chapter-list{
        grid-template-columns:1fr;
    }
    .quote-section{
        padding:45px 22px;
        align-items:flex-start;
        gap:20px;
    }
    .quote-section blockquote{font-size:26px}
    .about-section{gap:28px}
    .about-features{grid-template-columns:1fr 1fr}
    .page-hero.compact h1{font-size:38px}
    .poem-detail{padding:24px}
    .poem-body{font-size:20px}
    .detail-sidebar{grid-template-columns:1fr}
    .author-profile,.book-hero{
        margin:25px 15px;
        padding:28px;
        align-items:flex-start;
    }
    .avatar-seal.xl{width:72px;height:72px;font-size:30px}
    .author-profile h1,.book-hero h1{font-size:36px}
    .profile-stats{flex-direction:column;gap:8px}
    .poem-navigation{grid-template-columns:1fr}
    .poem-navigation>div:last-child{text-align:left}

    .naming-section{
        width:calc(100% - 30px);
        margin:48px auto;
        padding:28px 20px;
        gap:28px;
        border-radius:20px;
    }
    .naming-section::before{
        right:-25px;
        bottom:-30px;
        font-size:165px;
    }
    .naming-copy h2{font-size:29px}
    .naming-examples,.naming-form-row{grid-template-columns:1fr}
    .naming-form{padding:24px 20px}
    .naming-page,.naming-result-header,.name-result-grid{
        padding-left:15px;
        padding-right:15px;
    }
    .naming-main-card,.naming-side-card,.name-result-card{padding:22px}
    .naming-result-header h1{font-size:32px}
    .name-result-name{font-size:28px}
}

/* =========================================================
   诗词详情页 AI 内容区域优化
   ========================================================= */

.poem-detail{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(49,95,85,.045),
            transparent 340px
        ),
        var(--white);
}

.poem-detail::before{
    content:"诗";
    position:absolute;
    right:-35px;
    top:285px;
    color:rgba(49,95,85,.025);
    font-size:260px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}

.poem-detail > *{
    position:relative;
    z-index:2;
}

/* 正文标题区域 */
.poem-detail header{
    position:relative;
    margin:34px 0 30px;
    padding:34px 20px 30px;
    background:
        radial-gradient(
            circle at 50% 0,
            rgba(165,74,62,.08),
            transparent 62%
        );
    border-radius:18px;
}

.poem-detail header::after{
    content:"";
    display:block;
    width:48px;
    height:2px;
    margin:24px auto 0;
    background:var(--red);
    opacity:.7;
}

.poem-detail header h1{
    color:var(--ink);
    letter-spacing:.12em;
}

.poem-detail header p{
    margin-bottom:0;
    color:var(--muted);
}

.poem-detail header p a{
    color:var(--jade);
    font-weight:600;
}

.poem-body p{
    margin:4px 0;
}

/* 阅读工具栏 */
.reader-tools{
    position:sticky;
    top:88px;
    z-index:15;
    flex-wrap:wrap;
    background:rgba(255,255,255,.92);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 22px rgba(39,52,47,.055);
    backdrop-filter:blur(12px);
}

.reader-tools button{
    color:var(--muted);
    cursor:pointer;
    transition:
        color .2s ease,
        background .2s ease,
        transform .2s ease;
}

.reader-tools button:hover{
    color:var(--white);
    background:var(--jade);
    transform:translateY(-1px);
}

/* AI 总进度卡片 */
.ai-generation-panel{
    display:grid;
    grid-template-columns:70px minmax(0,1fr);
    gap:20px;
    align-items:center;
    margin:34px 0 10px;
    padding:24px 26px;
    overflow:hidden;
    position:relative;
    background:
        radial-gradient(
            circle at 100% 0,
            rgba(165,74,62,.12),
            transparent 38%
        ),
        linear-gradient(
            135deg,
            rgba(239,232,219,.82),
            rgba(237,243,239,.96)
        );
    border:1px solid var(--line);
    border-radius:18px;
    box-shadow:0 12px 30px rgba(39,52,47,.07);
}

.ai-generation-panel::after{
    content:"AI";
    position:absolute;
    right:18px;
    bottom:-28px;
    color:rgba(49,95,85,.04);
    font-size:95px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}

.ai-generation-panel[hidden]{
    display:none !important;
}

.ai-generation-panel.is-complete{
    border-color:rgba(49,95,85,.35);
}

.ai-generation-panel.is-error{
    background:
        linear-gradient(
            135deg,
            rgba(165,74,62,.08),
            rgba(255,255,255,.95)
        );
    border-color:rgba(165,74,62,.28);
}

.ai-orbit{
    width:58px;
    height:58px;
    position:relative;
    display:grid;
    place-items:center;
    border:1px solid rgba(49,95,85,.22);
    border-radius:50%;
}

.ai-orbit::before{
    content:"文";
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    color:var(--white);
    background:var(--jade);
    border-radius:50%;
    font-size:17px;
    font-weight:700;
    box-shadow:0 7px 16px rgba(49,95,85,.22);
}

.ai-orbit span{
    position:absolute;
    width:8px;
    height:8px;
    background:var(--red);
    border-radius:50%;
    animation:aiOrbit 2.4s linear infinite;
}

.ai-orbit span:nth-child(2){
    animation-delay:-.8s;
}

.ai-orbit span:nth-child(3){
    animation-delay:-1.6s;
}

@keyframes aiOrbit{
    from{
        transform:rotate(0deg) translateX(28px) rotate(0deg);
    }
    to{
        transform:rotate(360deg) translateX(28px) rotate(-360deg);
    }
}

.ai-generation-copy{
    min-width:0;
    position:relative;
    z-index:2;
}

.ai-generation-copy strong{
    display:block;
    margin-bottom:4px;
    color:var(--ink);
    font-size:18px;
}

.ai-generation-copy p{
    margin:0 0 13px;
    color:var(--muted);
    font-size:14px;
}

.ai-progress-track{
    width:100%;
    height:7px;
    overflow:hidden;
    background:rgba(255,255,255,.85);
    border-radius:999px;
}

.ai-progress-track span{
    display:block;
    width:5%;
    height:100%;
    position:relative;
    background:
        linear-gradient(
            90deg,
            var(--jade),
            var(--jade-2)
        );
    border-radius:inherit;
    transition:width .45s ease;
}

.ai-progress-track span::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.45),
            transparent
        );
    animation:aiProgressLight 1.6s linear infinite;
}

@keyframes aiProgressLight{
    from{transform:translateX(-100%)}
    to{transform:translateX(100%)}
}

.ai-generation-copy small{
    display:block;
    margin-top:7px;
    color:var(--jade);
    font-size:12px;
    text-align:right;
}

/* AI 内容大区块 */
.ai-content-section{
    margin-top:38px;
    padding:0;
    border-top:0;
}

.ai-content-section > h2{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 19px;
    color:var(--ink);
    font-size:27px;
    letter-spacing:.08em;
}

.ai-content-section > h2::before{
    content:"";
    width:5px;
    height:26px;
    background:var(--red);
    border-radius:999px;
}

.ai-content-section > h2::after{
    content:"";
    flex:1;
    height:1px;
    margin-left:3px;
    background:
        linear-gradient(
            90deg,
            var(--line),
            transparent
        );
}

/* 创作背景 */
#backgroundContent{
    position:relative;
    padding:27px 29px 27px 32px;
    overflow:hidden;
    background:
        linear-gradient(
            135deg,
            rgba(247,243,234,.96),
            rgba(255,255,255,.96)
        );
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 8px 24px rgba(39,52,47,.045);
}

#backgroundContent::before{
    content:"背";
    position:absolute;
    right:-5px;
    bottom:-45px;
    color:rgba(49,95,85,.035);
    font-size:125px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}

#backgroundContent::after{
    content:"";
    position:absolute;
    left:0;
    top:22px;
    bottom:22px;
    width:4px;
    background:var(--jade);
    border-radius:0 999px 999px 0;
}

#backgroundContent > p{
    margin:0;
    position:relative;
    z-index:2;
    color:#4c5b56;
    font-size:17px;
    line-height:2.05;
    text-align:justify;
}

/* 逐句译文 */
.translation-list{
    display:grid;
    gap:16px;
    counter-reset:translation-number;
}

.translation-item{
    counter-increment:translation-number;
    position:relative;
    overflow:hidden;
    padding:23px 25px 22px 68px;
    background:
        linear-gradient(
            135deg,
            rgba(247,243,234,.74),
            rgba(255,255,255,.98)
        );
    border:1px solid var(--line);
    border-radius:16px;
    box-shadow:0 8px 22px rgba(39,52,47,.04);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.translation-item:hover{
    transform:translateY(-2px);
    border-color:rgba(49,95,85,.36);
    box-shadow:0 14px 30px rgba(39,52,47,.075);
}

.translation-item::before{
    content:counter(translation-number, decimal-leading-zero);
    position:absolute;
    left:20px;
    top:24px;
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    color:var(--jade);
    background:rgba(49,95,85,.09);
    border-radius:50%;
    font-family:Georgia,serif;
    font-size:12px;
    font-weight:700;
}

.translation-row{
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    gap:12px;
    align-items:start;
}

.translation-row + .translation-row{
    margin-top:13px;
    padding-top:13px;
    border-top:1px dashed rgba(217,209,196,.85);
}

.translation-label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:29px;
    padding:3px 8px;
    border-radius:7px;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}

.translation-original-row .translation-label{
    color:var(--jade);
    background:rgba(49,95,85,.09);
}

.translation-modern-row .translation-label{
    color:var(--red);
    background:rgba(165,74,62,.09);
}

.translation-original,
.translation-modern{
    margin:0;
    min-width:0;
}

.translation-original{
    color:var(--jade);
    font-size:18px;
    font-weight:600;
    line-height:1.9;
    letter-spacing:.035em;
}

.translation-modern{
    color:#805046;
    font-size:16px;
    line-height:1.95;
}

/* 字词注释 */
.annotation-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}

.annotation-item{
    position:relative;
    overflow:hidden;
    min-width:0;
    padding:21px 22px;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98),
            rgba(247,243,234,.76)
        );
    border:1px solid var(--line);
    border-radius:15px;
    box-shadow:0 7px 20px rgba(39,52,47,.04);
    transition:
        transform .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.annotation-item:hover{
    transform:translateY(-2px);
    border-color:rgba(165,74,62,.34);
    box-shadow:0 13px 28px rgba(39,52,47,.07);
}

.annotation-item::after{
    content:"释";
    position:absolute;
    right:-8px;
    bottom:-30px;
    color:rgba(165,74,62,.035);
    font-size:90px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}

.annotation-heading{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:8px;
    position:relative;
    z-index:2;
}

.annotation-heading strong{
    color:var(--ink);
    font-size:18px;
    letter-spacing:.05em;
}

.annotation-heading span{
    color:var(--red);
    font-family:
        "Noto Serif SC",
        "Times New Roman",
        serif;
    font-size:14px;
    letter-spacing:.05em;
}

.annotation-item > p{
    margin:10px 0 0;
    position:relative;
    z-index:2;
    color:var(--muted);
    font-size:15px;
    line-height:1.9;
}

/* AI 分模块加载状态 */
.ai-module-loading{
    display:flex;
    align-items:center;
    gap:15px;
    min-height:92px;
    padding:21px 23px;
    color:var(--muted);
    background:
        linear-gradient(
            110deg,
            rgba(247,243,234,.9) 25%,
            rgba(255,255,255,.98) 37%,
            rgba(247,243,234,.9) 63%
        );
    background-size:400% 100%;
    border:1px solid var(--line);
    border-radius:15px;
    animation:aiSkeleton 2s ease infinite;
}

.ai-module-loading strong{
    display:block;
    color:var(--ink);
    font-size:16px;
}

.ai-module-loading p{
    margin:4px 0 0;
    font-size:13px;
}

.ai-loading-dot{
    flex:0 0 auto;
    width:13px;
    height:13px;
    background:var(--jade);
    border-radius:50%;
    box-shadow:
        0 0 0 0 rgba(49,95,85,.25);
    animation:aiLoadingDot 1.5s ease infinite;
}

@keyframes aiSkeleton{
    0%{background-position:100% 0}
    100%{background-position:0 0}
}

@keyframes aiLoadingDot{
    0%{
        transform:scale(.8);
        box-shadow:0 0 0 0 rgba(49,95,85,.3);
    }
    70%{
        transform:scale(1);
        box-shadow:0 0 0 10px rgba(49,95,85,0);
    }
    100%{
        transform:scale(.8);
        box-shadow:0 0 0 0 rgba(49,95,85,0);
    }
}

/* 详情页右侧 */
.detail-sidebar .side-card{
    overflow:hidden;
    position:relative;
    padding:23px;
}

.detail-sidebar .side-card::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:
        linear-gradient(
            90deg,
            var(--jade),
            var(--red)
        );
    opacity:.65;
}

.detail-sidebar .side-card h3{
    margin:0 0 17px;
    color:var(--ink);
    font-size:18px;
}

.detail-sidebar .side-card p{
    margin:9px 0;
    color:var(--muted);
    font-size:14px;
}

.detail-sidebar .side-card p strong{
    color:var(--ink);
}

.detail-sidebar .side-link{
    color:#53645e;
    transition:
        color .2s ease,
        padding-left .2s ease;
}

.detail-sidebar .side-link:hover{
    color:var(--jade);
    padding-left:5px;
}

/* 无内容提示 */
.ai-content-section .placeholder-box{
    margin:0;
    border:1px dashed var(--line);
}

/* 平板 */
@media(max-width:980px){
    .reader-tools{
        position:static;
    }

    .annotation-list{
        grid-template-columns:1fr 1fr;
    }
}

/* 手机 */
@media(max-width:620px){
    .poem-detail{
        padding:20px 17px;
        border-radius:15px;
    }

    .poem-detail::before{
        display:none;
    }

    .poem-detail header{
        padding:25px 10px 22px;
        margin:25px 0 22px;
    }

    .poem-detail header h1{
        margin-left:0;
        margin-right:0;
        font-size:34px;
    }

    .reader-tools{
        justify-content:flex-start;
        padding:10px;
        border-radius:12px;
    }

    .reader-tools button{
        flex:1;
        min-width:70px;
    }

    .poem-body{
        padding:30px 0;
        line-height:2.05;
    }

    .ai-generation-panel{
        grid-template-columns:1fr;
        gap:14px;
        padding:21px;
    }

    .ai-orbit{
        width:50px;
        height:50px;
    }

    .ai-content-section{
        margin-top:32px;
    }

    .ai-content-section > h2{
        gap:10px;
        font-size:23px;
    }

    #backgroundContent{
        padding:22px 20px 22px 24px;
    }

    #backgroundContent > p{
        font-size:16px;
        line-height:1.95;
    }

    .translation-item{
        padding:19px 17px 19px 54px;
    }

    .translation-item::before{
        left:14px;
        top:19px;
        width:28px;
        height:28px;
    }

    .translation-row{
        grid-template-columns:1fr;
        gap:7px;
    }

    .translation-label{
        justify-self:start;
    }

    .translation-original{
        font-size:17px;
    }

    .translation-modern{
        font-size:15px;
    }

    .annotation-list{
        grid-template-columns:1fr;
    }

    .annotation-item{
        padding:19px;
    }
}
/* =========================================================
   诗词正文拼音模式
   ========================================================= */

#togglePinyin.is-active{
    color:var(--white);
    background:var(--jade);
    box-shadow:0 6px 15px rgba(49,95,85,.18);
}

.poem-line{
    min-height:1.5em;
    transition:
        margin .2s ease,
        line-height .2s ease;
}

.poem-line.has-pinyin{
    margin:18px 0;
    line-height:2.9;
}

.poem-ruby{
    display:inline-flex;
    flex-direction:column-reverse;
    align-items:center;
    justify-content:flex-end;
    min-width:1.15em;
    margin:0 .025em;
    vertical-align:bottom;
    ruby-position:over;
}

.poem-ruby .ruby-word{
    display:block;
    color:var(--ink);
    line-height:1.25;
}

.poem-ruby rt{
    display:block;
    min-width:max-content;
    margin-bottom:5px;
    color:var(--red);
    font-family:
        "Noto Serif SC",
        "Times New Roman",
        serif;
    font-size:.45em;
    font-weight:400;
    line-height:1;
    letter-spacing:0;
    white-space:nowrap;
    text-align:center;
}

.poem-punctuation{
    display:inline-block;
    min-width:.55em;
    color:var(--ink);
}

@media(max-width:620px){
    .poem-line.has-pinyin{
        margin:14px 0;
        line-height:2.75;
    }

    .poem-ruby{
        min-width:1.12em;
        margin:0;
    }

    .poem-ruby rt{
        margin-bottom:4px;
        font-size:.48em;
    }
}
/* =========================================================
   诗词正文拼音显示
   ========================================================= */

#togglePinyin{
    min-width:88px;
}

#togglePinyin.is-active{
    color:var(--white);
    background:var(--jade);
    box-shadow:0 6px 16px rgba(49,95,85,.18);
}

#togglePinyin:disabled{
    cursor:not-allowed;
    opacity:.65;
}

.poem-line{
    margin:4px 0;
    min-height:1.5em;
    transition:
        margin .2s ease,
        line-height .2s ease;
}

.poem-line.has-pinyin{
    margin:18px 0;
    line-height:2.7;
}

.poem-ruby{
    display:inline-flex;
    flex-direction:column-reverse;
    align-items:center;
    justify-content:flex-end;
    min-width:1.12em;
    margin:0 .015em;
    vertical-align:bottom;
    ruby-position:over;
}

.poem-ruby .ruby-word{
    display:block;
    color:var(--ink);
    line-height:1.25;
}

.poem-ruby rt{
    display:block;
    min-width:max-content;
    margin-bottom:5px;
    color:var(--red);
    font-family:
        "Noto Serif SC",
        "Times New Roman",
        serif;
    font-size:.43em;
    font-weight:400;
    line-height:1;
    letter-spacing:0;
    white-space:nowrap;
    text-align:center;
}

.poem-character{
    display:inline-block;
    min-width:1em;
}

.poem-punctuation{
    display:inline-block;
    min-width:.55em;
    color:var(--ink);
}

@media(max-width:620px){
    #togglePinyin{
        min-width:76px;
    }

    .poem-line.has-pinyin{
        margin:15px 0;
        line-height:2.65;
    }

    .poem-ruby{
        min-width:1.1em;
        margin:0;
    }

    .poem-ruby rt{
        margin-bottom:4px;
        font-size:.46em;
    }
}
/* Homepage dictionary section */
.dictionary-section{
    width:calc(100% - 44px);
    max-width:1180px;
    margin:90px auto;
    padding:54px;
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);
    gap:54px;
    align-items:center;
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(165,74,62,.13),
            transparent 29%
        ),
        linear-gradient(
            135deg,
            #edf3ef 0%,
            #f4ede1 100%
        );
    border:1px solid var(--line);
    border-radius:28px;
    box-shadow:var(--shadow);
}

.dictionary-section::before{
    content:"典";
    position:absolute;
    left:-38px;
    bottom:-105px;
    color:rgba(49,95,85,.05);
    font-size:300px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
}

.dictionary-copy,
.dictionary-types{
    position:relative;
    z-index:2;
}

.dictionary-copy h2{
    margin:8px 0 18px;
    font-size:clamp(32px,4vw,44px);
    line-height:1.45;
    letter-spacing:.04em;
}

.dictionary-copy>p{
    max-width:610px;
    margin:0;
    color:var(--muted);
    font-size:16px;
    line-height:2;
}

.dictionary-search{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:28px;
    padding:7px;
    background:rgba(255,255,255,.96);
    border:1px solid var(--line);
    border-radius:999px;
    box-shadow:0 13px 32px rgba(39,52,47,.09);
}

.dictionary-search input{
    min-width:0;
    flex:1;
    padding:11px 18px;
    color:var(--ink);
    background:transparent;
    border:0;
    outline:none;
}

.dictionary-search button{
    flex:0 0 auto;
    min-width:108px;
    min-height:43px;
    padding:9px 20px;
}

.dictionary-hot{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    margin-top:15px;
    color:var(--muted);
    font-size:13px;
}

.dictionary-hot a{
    padding:3px 10px;
    color:var(--jade);
    background:rgba(255,255,255,.74);
    border-radius:999px;
    transition:
        background .2s ease,
        transform .2s ease;
}

.dictionary-hot a:hover{
    background:#fff;
    transform:translateY(-1px);
}

.dictionary-types{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}

.dictionary-types>a{
    min-height:160px;
    padding:24px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    background:rgba(255,255,255,.95);
    border:1px solid rgba(217,209,196,.96);
    border-radius:18px;
    box-shadow:0 9px 26px rgba(39,52,47,.055);
    transition:
        transform .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.dictionary-types>a:hover{
    transform:translateY(-3px);
    border-color:rgba(49,95,85,.48);
    box-shadow:0 18px 36px rgba(39,52,47,.1);
}

.dictionary-types span{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    margin-bottom:12px;
    color:#fff;
    background:var(--jade);
    border-radius:13px;
    box-shadow:
        inset 0 0 0 2px rgba(255,255,255,.16);
    font-size:21px;
    font-weight:700;
}

.dictionary-types strong{
    color:var(--ink);
    font-size:20px;
}

.dictionary-types small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:13px;
    line-height:1.65;
}

@media(max-width:980px){
    .dictionary-section{
        grid-template-columns:1fr;
        padding:42px;
        gap:36px;
    }
}

@media(max-width:620px){
    .dictionary-section{
        width:calc(100% - 30px);
        margin:48px auto;
        padding:28px 20px;
        gap:28px;
        border-radius:20px;
    }

    .dictionary-section::before{
        left:-25px;
        bottom:-40px;
        font-size:175px;
    }

    .dictionary-copy h2{
        font-size:29px;
    }

    .dictionary-search{
        flex-direction:column;
        align-items:stretch;
        padding:8px;
        border-radius:16px;
    }

    .dictionary-search input{
        min-height:46px;
        padding:10px 12px;
    }

    .dictionary-search button{
        width:100%;
        border-radius:11px;
    }

    .dictionary-types{
        grid-template-columns:1fr 1fr;
        gap:11px;
    }

    .dictionary-types>a{
        min-height:145px;
        padding:18px 15px;
    }

    .dictionary-types span{
        width:41px;
        height:41px;
        font-size:19px;
    }

    .dictionary-types strong{
        font-size:17px;
    }
}

@media(max-width:400px){
    .dictionary-types{
        grid-template-columns:1fr;
    }
}

/* ===== Xinhua dictionary module ===== */
.xinhua-hero{padding:82px 20px;background:linear-gradient(180deg,#eaf1ed,#f7f3ea);text-align:center}
.xinhua-hero-inner{max-width:760px;margin:auto}
.xinhua-hero h1{margin:10px 0 8px;font-size:clamp(38px,6vw,62px);letter-spacing:.06em}
.xinhua-hero p{color:var(--muted)}
.xinhua-search{display:flex;gap:8px;max-width:680px;margin:26px auto 0;padding:7px;background:#fff;border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.xinhua-search input{flex:1;min-width:0;padding:10px 18px;border:0;outline:0;background:transparent}
.xinhua-search button{min-width:100px}
.xinhua-page{max-width:1180px;margin:46px auto 90px;padding:0 22px}
.xinhua-tabs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:34px}
.xinhua-tabs a{padding:9px 18px;background:#fff;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.xinhua-tabs a.active,.xinhua-tabs a:hover{color:#fff;background:var(--jade);border-color:var(--jade)}
.xinhua-result-summary{margin:0 0 28px;padding:16px 20px;background:var(--paper);border-radius:12px;color:var(--muted)}
.xinhua-result-summary strong{color:var(--jade)}
.xinhua-result-section{margin-top:44px}
.xinhua-section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.xinhua-section-heading>div{display:flex;align-items:center;gap:12px}
.xinhua-section-heading h2{margin:0;font-size:29px}
.xinhua-section-heading>a{color:var(--jade)}
.xinhua-section-seal{width:42px;height:42px;display:grid;place-items:center;color:#fff;background:var(--red);border-radius:11px;font-weight:700}
.xinhua-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.xinhua-result-grid.is-character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.xinhua-result-card{display:flex;min-height:160px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 8px 25px rgba(38,53,47,.05);transition:.2s ease}
.xinhua-result-card:hover{transform:translateY(-3px);border-color:rgba(49,95,85,.45);box-shadow:0 18px 35px rgba(38,53,47,.1)}
.xinhua-character-glyph{width:82px;min-width:82px;height:92px;display:grid;place-items:center;margin-right:18px;color:var(--jade);background:var(--paper);border:1px solid var(--line);border-radius:14px;font-size:48px;font-weight:600}
.xinhua-card-body{min-width:0}
.xinhua-card-body h3{margin:3px 0 8px;font-size:24px;line-height:1.45}
.xinhua-card-body p{margin:0;color:var(--muted)}
.xinhua-meta{font-size:14px!important;color:var(--jade)!important}
.xinhua-card-tag{display:inline-block;padding:3px 9px;color:var(--jade);background:var(--paper-2);border-radius:999px;font-size:12px}
.xinhua-answer{color:var(--red)!important;font-size:17px}
.xinhua-empty{padding:38px;text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:16px}
.xinhua-source-note{margin-top:50px;text-align:center;color:var(--muted);font-size:12px}
.xinhua-detail-shell{max-width:1180px;margin:55px auto 90px;padding:0 22px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:start}
.xinhua-detail-card{padding:42px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 10px 30px rgba(39,52,47,.055)}
.xinhua-character-header{display:flex;align-items:center;gap:28px;margin:34px 0 22px;padding:28px;background:linear-gradient(135deg,var(--paper),#eef4f0);border-radius:18px}
.xinhua-large-glyph{width:150px;height:150px;display:grid;place-items:center;flex:0 0 150px;color:var(--jade);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 28px rgba(39,52,47,.08);font-size:88px}
.xinhua-character-header h1,.xinhua-text-header h1{margin:6px 0;font-size:48px}
.xinhua-text-header{margin:34px 0 20px;text-align:center}
.xinhua-detail-pinyin{margin:0;color:var(--red);font-size:20px}
.xinhua-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.xinhua-facts span{padding:5px 11px;color:var(--jade);background:#fff;border:1px solid var(--line);border-radius:999px;font-size:13px}
.xinhua-detail-section{margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
.xinhua-detail-section h2{margin:0 0 16px;font-size:27px}
.xinhua-prose{white-space:normal;color:#394943;line-height:2;font-size:17px}
.xinhua-quote-box{padding:20px 22px;background:var(--paper);border-left:4px solid var(--red);border-radius:0 13px 13px 0;line-height:2}
.xinhua-answer-large{padding:28px;text-align:center;color:var(--red);background:var(--paper);border-radius:16px;font-size:28px;font-weight:600}
.xinhua-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.xinhua-detail-actions button{padding:10px 18px}
.xinhua-detail-sidebar{position:sticky;top:100px}
.xinhua-side-search{display:grid;gap:10px}
.xinhua-side-search input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;outline:0}
.xinhua-detail-sidebar .side-link small{display:block;margin-top:3px;color:var(--muted)}
@media(max-width:980px){.xinhua-result-grid.is-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.xinhua-detail-shell{grid-template-columns:1fr}.xinhua-detail-sidebar{position:static;display:grid;grid-template-columns:1fr 1fr;gap:18px}}
@media(max-width:620px){.xinhua-hero{padding:58px 16px}.xinhua-search{flex-direction:column;border-radius:16px}.xinhua-search button{width:100%;border-radius:11px}.xinhua-page,.xinhua-detail-shell{padding-left:15px;padding-right:15px}.xinhua-result-grid,.xinhua-result-grid.is-character-grid{grid-template-columns:1fr}.xinhua-result-card{padding:18px}.xinhua-character-glyph{width:68px;min-width:68px;height:78px;font-size:40px}.xinhua-detail-card{padding:24px}.xinhua-character-header{align-items:flex-start;padding:20px;gap:18px}.xinhua-large-glyph{width:94px;height:94px;flex-basis:94px;font-size:58px}.xinhua-character-header h1,.xinhua-text-header h1{font-size:36px}.xinhua-detail-sidebar{grid-template-columns:1fr}.xinhua-detail-actions{flex-direction:column}.xinhua-detail-actions a,.xinhua-detail-actions button{width:100%}}
