
:root{--night:#15142d;--night2:#242044;--violet:#62527f;--lilac:#a895c5;--rose:#d8798e;--wine:#93495f;--amber:#f0b26c;--cream:#f8e8df;--ink:#f6edf2;--muted:#c5b8c7;--line:rgba(245,225,235,.14);--shadow:0 28px 80px rgba(5,4,18,.34)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% 12%,rgba(240,178,108,.14),transparent 20%),radial-gradient(circle at 8% 45%,rgba(136,105,172,.18),transparent 27%),linear-gradient(180deg,#121128,#19162f 48%,#241c38 100%);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(112deg,transparent 0 46%,rgba(255,255,255,.018) 48%,transparent 51%),radial-gradient(circle at 15% 15%,rgba(216,121,142,.08),transparent 18%);z-index:-2}
.night-noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}
.stars{position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(circle,rgba(255,236,220,.65) 0 1px,transparent 1.5px);background-size:74px 74px;opacity:.16}
button,input{font:inherit}.shell{max-width:1200px;margin:auto;padding:0 24px 70px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px}.brand .dot{width:13px;height:13px;border-radius:50%;background:var(--amber);box-shadow:0 0 18px rgba(240,178,108,.62)}.brand b{display:block;font:700 13px Georgia,serif;letter-spacing:.19em}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.2em;margin-top:3px}.time{font:11px Georgia,serif;letter-spacing:.14em;color:#a99db1}.screen{display:none;animation:fade .32s ease}.screen.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.hero{min-height:650px;display:grid!important;grid-template-columns:1fr .88fr;gap:64px;align-items:center;padding:54px 0}.hero:not(.active){display:none!important}.eyebrow{font:700 10px Georgia,serif;letter-spacing:.24em;color:var(--amber)}.hero h1,.panel h2{font:500 clamp(46px,5.5vw,76px)/1.08 Georgia,"Songti SC",serif;margin:20px 0}.hero h1 em{font-style:normal;color:#e68b9b;text-shadow:0 0 24px rgba(216,121,142,.18)}.lead,.panel>p{font-size:16px;line-height:1.9;color:#c9bdca;max-width:650px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.chips span{padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.045);font-size:12px;color:#eadde5}
.glass{background:linear-gradient(135deg,rgba(255,255,255,.095),rgba(255,255,255,.045));border:1px solid rgba(255,237,245,.13);box-shadow:var(--shadow),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(18px)}.access{margin-top:30px;padding:20px;border-radius:22px}.access label{display:block;font-weight:700;margin-bottom:11px}.code-row{display:grid;grid-template-columns:48px 1fr auto;gap:9px}.code-row strong{display:grid;place-items:center;background:#352a52;border-radius:13px;color:#ffd5dc;font:700 23px Georgia}.code-row input{min-width:0;border:1px solid rgba(255,255,255,.15);background:rgba(9,8,24,.34);color:white;border-radius:13px;padding:0 14px;font-size:18px;letter-spacing:.17em;outline:0}.code-row input:focus{border-color:#d8798e;box-shadow:0 0 0 4px rgba(216,121,142,.12)}.access small{display:block;margin-top:10px;color:#aa9eaf;font-size:11px}.primary{border:0;border-radius:13px;padding:14px 19px;color:#fff;background:linear-gradient(135deg,#9d4f68,#d2768a 54%,#d99a6b);font-weight:700;cursor:pointer;box-shadow:0 10px 28px rgba(147,73,95,.24)}.ghost{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045);color:#eee3eb;border-radius:13px;padding:13px 18px;cursor:pointer}
.phone-scene{position:relative;height:530px}.moon{position:absolute;width:160px;right:-10px;top:-40px;filter:drop-shadow(0 0 28px rgba(240,178,108,.18))}.chat-window{position:absolute;inset:38px 38px 34px 0;border-radius:32px;padding:27px 23px;background:linear-gradient(160deg,rgba(48,41,72,.96),rgba(22,20,46,.96));border:1px solid rgba(233,213,230,.13);box-shadow:0 35px 85px rgba(5,4,18,.48),inset 0 1px rgba(255,255,255,.07);overflow:hidden}.chat-window:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 5%,rgba(240,178,108,.09),transparent 31%);pointer-events:none}.chat-head{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:20px}.chat-head i{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#9a7ab1,#d48991)}.chat-head span{font-weight:700}.chat-head small{margin-left:auto;color:#8fd0b6;font-size:10px}.bubble{position:relative;width:max-content;max-width:78%;padding:12px 15px;border-radius:18px;margin:11px 0;font-size:14px;z-index:2}.bubble.left{background:#373050;color:#f1e8ed;border-bottom-left-radius:5px}.bubble.right{margin-left:auto;background:linear-gradient(135deg,#a4526b,#cf7385);border-bottom-right-radius:5px}.bubble.small{font-size:12px;color:#cabdcc}.stamp{text-align:center;color:#82778b;font:10px Georgia;margin:4px}.typing{display:flex;gap:5px;width:55px;padding:13px;background:#373050;border-radius:18px}.typing b,.typing-big b{width:6px;height:6px;background:#bcaec3;border-radius:50%;animation:typing 1.1s infinite}.typing b:nth-child(2),.typing-big b:nth-child(2){animation-delay:.16s}.typing b:nth-child(3),.typing-big b:nth-child(3){animation-delay:.32s}@keyframes typing{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}.unsent{position:absolute;left:28px;right:28px;bottom:24px;padding:16px;border-top:1px dashed rgba(225,180,194,.26);color:#cabec9}.unsent span{font-size:10px;color:#d78595;letter-spacing:.12em}.unsent p{margin:7px 0 0;font:italic 16px Georgia,"Songti SC",serif;line-height:1.6}.envelope{position:absolute;width:128px;right:-5px;bottom:-12px;transform:rotate(9deg);filter:drop-shadow(0 18px 20px rgba(5,4,18,.35))}
.narrow{max-width:860px;margin:auto}.panel{margin-top:46px;padding:52px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(47,40,69,.82),rgba(25,22,48,.82));box-shadow:var(--shadow)}.panel h2{font-size:46px}.panel h2 strong{color:#e38a9a;font-weight:500}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:30px 0}.intro-grid article{padding:21px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.04)}.intro-grid span{font:500 28px Georgia;color:#c38a9a}.intro-grid b{display:block;margin:14px 0 7px}.intro-grid p{font-size:12px;line-height:1.7;color:#ad9fac;margin:0}.wide{width:100%}.under{display:block;text-align:center;color:#948797;margin-top:10px}
.test{padding:44px 0}.test-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.test-head h2{font:500 37px Georgia,"Songti SC",serif;margin:9px 0 4px}.test-head p{margin:0;color:#9e93a4}.qnum b{font:500 47px Georgia;color:#e48796}.qnum span{color:#918797}.progress{height:18px;position:relative;margin:24px 0 26px;border-radius:999px;background:rgba(255,255,255,.05);overflow:hidden}.progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#835278,#d7798d,#efa760);border-radius:inherit;transition:.25s}.progress img{position:absolute;inset:1px 0;width:100%;height:16px;object-fit:fill;opacity:.34}.question{padding:30px;border-radius:28px}.question>small{color:#d08b97;font:700 10px Georgia;letter-spacing:.18em}.question h3{font:500 26px/1.55 Georgia,"Songti SC",serif;margin:16px 0 24px}.opts{display:grid;gap:10px}.opt{width:100%;text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045);color:#eee4ea;border-radius:15px;padding:15px 17px;line-height:1.55;cursor:pointer;transition:.16s}.opt:hover{transform:translateX(3px);border-color:rgba(216,121,142,.45)}.opt.selected{background:linear-gradient(135deg,rgba(147,73,95,.42),rgba(103,76,133,.35));border-color:#d8798e}.nav{display:flex;gap:12px;justify-content:space-between;margin-top:17px}.nav button{flex:1}.link{display:block;margin:18px auto;border:0;background:none;color:#918697;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.done{text-align:center}.typing-big{display:flex;justify-content:center;gap:9px;margin:0 auto 22px}.typing-big b{width:10px;height:10px;background:#d78394}
.report{padding:45px 0}.report-cover{display:grid;grid-template-columns:1fr 230px;gap:25px;align-items:center;padding:38px;border-radius:32px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(58,46,77,.92),rgba(29,25,52,.94) 58%,rgba(91,55,70,.83));box-shadow:var(--shadow)}.type-mark{font:500 64px Georgia;color:#e88d9c;margin:12px 0 0}.report-cover h2{font:500 51px Georgia,"Songti SC",serif;margin:0 0 4px}.type-en{font:700 11px Georgia;letter-spacing:.21em;color:#e7ad84}.report-cover p{color:#c2b6c2;line-height:1.8}.temperature{text-align:center;border-left:1px solid var(--line);padding-left:24px}.temperature small{color:#a99cab}.temperature b{display:block;font:500 68px Georgia;color:#f0ab6b;margin:8px}.temperature span{font-size:11px;color:#918697;line-height:1.5}.tabs{display:flex;gap:8px;margin:22px 0}.tabs button{padding:11px 17px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:#c9bdc9;cursor:pointer}.tabs button.active{background:#e18394;color:#26182b;border-color:transparent;font-weight:700}.hidden{display:none!important}.report-body{display:grid;gap:16px}.card{padding:27px;border-radius:25px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(45,39,65,.82),rgba(26,23,49,.86));box-shadow:0 18px 48px rgba(5,4,18,.18)}.card h3{font:500 27px Georgia,"Songti SC",serif;margin:0 0 11px}.card p,.card li{color:#b9adba;line-height:1.82}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.summary{padding:19px;border-radius:17px;border:1px solid var(--line);background:rgba(255,255,255,.035)}.summary small{color:#d98998}.summary b{display:block;margin:7px 0;font:500 19px Georgia,"Songti SC",serif}.summary p{font-size:12px;margin:0}.dim-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dim{padding:16px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}.dim-head{display:flex;justify-content:space-between}.dim-head span{color:#e9959f}.bar{height:7px;background:rgba(255,255,255,.06);border-radius:99px;margin:9px 0}.bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#695283,#d6778b,#efa85f)}.dim p{font-size:11px;margin:0;color:#9e92a0}.lights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.light{padding:19px;border-radius:18px;border:1px solid var(--line)}.light.green{background:rgba(66,140,115,.12)}.light.yellow{background:rgba(218,164,91,.12)}.light.red{background:rgba(174,72,91,.13)}.light i{display:block;width:12px;height:12px;border-radius:50%;margin-bottom:11px}.green i{background:#76c9a7;box-shadow:0 0 13px #76c9a7}.yellow i{background:#efb867;box-shadow:0 0 13px #efb867}.red i{background:#db6c7d;box-shadow:0 0 13px #db6c7d}.stage-track{display:flex;align-items:center;gap:5px;overflow:auto;padding:10px 0}.stage-track span{white-space:nowrap;padding:9px 12px;border-radius:999px;border:1px solid var(--line);color:#9e92a0}.stage-track span.active{background:#d9778a;color:white;border-color:transparent;box-shadow:0 0 18px rgba(216,121,142,.25)}.stage-track i{font-style:normal;color:#796f7d}.safety{margin-top:16px;padding:22px;border:1px solid rgba(216,121,142,.25);border-radius:21px;background:rgba(147,73,95,.1)}.safety b{color:#f1a1ad}.safety p{color:#b7a9b6;line-height:1.75;font-size:12px}.actions{display:flex;gap:10px;margin:20px 0}.disclaimer{text-align:center;color:#837889;font-size:10px;line-height:1.65;max-width:850px;margin:25px auto}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:22px 0;color:#716778;font:10px Georgia;letter-spacing:.14em}
@media(max-width:850px){.hero{grid-template-columns:1fr;gap:25px}.phone-scene{height:455px;max-width:550px;width:100%;margin:auto}.summary-grid,.intro-grid{grid-template-columns:1fr}.report-cover{grid-template-columns:1fr}.temperature{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.dim-grid{grid-template-columns:1fr}}
@media(max-width:620px){.shell{padding:0 14px 48px}.topbar{height:68px}.time{display:none}.hero{min-height:0;padding:34px 0 25px}.hero h1{font-size:40px}.lead{font-size:14px}.code-row{grid-template-columns:44px 1fr}.code-row button{grid-column:1/-1}.phone-scene{height:390px}.chat-window{inset:30px 5px 25px 0;padding:21px 16px}.moon{width:115px;right:-6px;top:-30px}.envelope{width:95px;right:-4px}.panel{padding:31px 18px;margin-top:28px}.panel h2{font-size:35px}.test{padding:32px 0}.test-head h2{font-size:29px}.qnum b{font-size:38px}.question{padding:22px 15px}.question h3{font-size:22px}.report{padding:30px 0}.report-cover{padding:24px 17px}.report-cover h2{font-size:40px}.temperature b{font-size:56px}.card{padding:21px 15px}.lights{grid-template-columns:1fr}.actions{flex-direction:column}.actions button{width:100%}}
@media print{body{background:white;color:#222}.topbar,.tabs,.actions,footer,.night-noise,.stars{display:none!important}.shell{max-width:none;padding:0}.screen{display:none!important}#report{display:block!important}.report-body.hidden{display:grid!important}.report-cover,.card,.safety{box-shadow:none;break-inside:avoid;color:#222;background:white;border-color:#ddd}.card p,.card li,.report-cover p{color:#555}}

/* ==========================================================
   MOBILE V2 · 手机适配强化
   目标：杜绝横向溢出、标题孤字换行、聊天层叠遮挡
   ========================================================== */
html,body{max-width:100%;overflow-x:hidden}
.shell,.screen,.hero-copy,.phone-scene,.panel,.test,.report,.report-cover,.card,.question,.summary,.dim,.light{min-width:0;max-width:100%}
img,svg{max-width:100%}

/* 中文标题统一换行规则：不拆短词，不留单字孤行 */
.hero h1,.panel h2,.test-head h2,.question h3,.report-cover h2,.card h3,.summary b,.safety b{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:balance;
}

@media(max-width:620px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{width:100%;overflow-x:hidden}
  .shell{width:100%;padding-left:12px;padding-right:12px}

  /* 顶部品牌：缩小字距，避免品牌栏挤压 */
  .topbar{height:64px;padding:0 2px}
  .brand{gap:8px;min-width:0}
  .brand .dot{width:11px;height:11px;flex:0 0 auto}
  .brand b{font-size:12px;letter-spacing:.13em;white-space:nowrap}
  .brand small{font-size:9px;letter-spacing:.13em;white-space:nowrap}

  /* 首页大标题：固定为两行，第二行不再继续拆字 */
  .hero{padding:28px 0 20px;gap:20px}
  .hero h1{
    font-size:clamp(34px,10.3vw,43px);
    line-height:1.08;
    letter-spacing:-.035em;
    margin:16px 0 19px;
  }
  .hero h1 br{display:block}
  .hero h1 em{white-space:nowrap;display:inline-block;max-width:100%}
  .lead{font-size:13.5px;line-height:1.82;margin:0}
  .chips{gap:7px;margin:20px 0}
  .chips span{font-size:11px;padding:7px 10px;white-space:nowrap}

  /* 验证码卡片：减少宽度压力 */
  .access{padding:17px 15px;border-radius:19px;margin-top:24px}
  .access label{font-size:15px}
  .code-row{grid-template-columns:42px minmax(0,1fr);gap:8px}
  .code-row strong{font-size:21px}
  .code-row input{width:100%;font-size:17px;padding:11px 12px}
  .code-row button{grid-column:1/-1;width:100%;padding:13px}
  .access small{font-size:10.5px;line-height:1.55}

  /* 聊天氛围区：重新分配高度，避免“未发送”压在聊天气泡上 */
  .phone-scene{height:430px;width:100%;overflow:visible;margin-top:4px}
  .chat-window{inset:24px 0 24px 0;padding:18px 15px 112px;border-radius:25px;overflow:hidden}
  .chat-head{padding-bottom:12px;margin-bottom:13px}
  .chat-head i{width:30px;height:30px}
  .bubble{font-size:13px;padding:10px 13px;margin:8px 0;max-width:82%}
  .bubble.small{font-size:11.5px}
  .stamp{font-size:9px;margin:2px}
  .typing{padding:10px;width:48px}
  .unsent{left:15px;right:15px;bottom:14px;padding:12px 4px 0}
  .unsent p{font-size:13.5px;line-height:1.55;margin-top:5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .moon{width:90px;right:2px;top:-18px;opacity:.86}
  .envelope{width:82px;right:4px;bottom:-5px}

  /* 提示页/完成页：标题两行按语义平衡，不出现单个字 */
  .panel{width:100%;padding:27px 16px;margin-top:22px;border-radius:24px}
  .panel h2{
    font-size:clamp(28px,8vw,34px);
    line-height:1.28;
    letter-spacing:-.025em;
    margin:15px 0 17px;
  }
  .panel h2 strong{white-space:nowrap}
  .panel>p{font-size:13px;line-height:1.78}
  .intro-grid{gap:9px;margin:23px 0}
  .intro-grid article{padding:17px 15px}

  /* 答题页 */
  .test{width:100%;padding:28px 0}
  .test-head{gap:10px;align-items:flex-start}
  .test-head>div:first-child{min-width:0;flex:1}
  .test-head h2{font-size:clamp(24px,7vw,29px);white-space:nowrap;letter-spacing:-.025em}
  .test-head p{font-size:11.5px;line-height:1.55}
  .qnum{flex:0 0 auto;padding-top:14px}
  .qnum b{font-size:35px}
  .progress{margin:20px 0 22px}
  .question{width:100%;padding:20px 14px;border-radius:22px}
  .question h3{
    font-size:clamp(19px,5.8vw,22px);
    line-height:1.52;
    letter-spacing:-.015em;
    margin:13px 0 20px;
  }
  .question>small{font-size:9px;letter-spacing:.12em}
  .opt{font-size:13.5px;padding:13px 13px;line-height:1.48;border-radius:13px}
  .nav{gap:8px}.nav button{padding:12px 8px;font-size:13px;white-space:nowrap}

  /* 报告头：类型名称必须保持完整一行 */
  .report{width:100%;padding:26px 0}
  .report-cover{width:100%;padding:21px 15px;border-radius:25px;gap:17px}
  .type-mark{font-size:46px;margin-top:8px}
  .report-cover h2{
    font-size:clamp(31px,9.5vw,39px);
    line-height:1.08;
    letter-spacing:-.035em;
    white-space:nowrap;
    max-width:100%;
  }
  .type-en{font-size:10px;letter-spacing:.14em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .report-cover p{font-size:13px;line-height:1.72}
  .temperature{padding-top:17px}
  .temperature b{font-size:52px;margin:7px}
  .temperature span{display:block;max-width:210px;margin:auto}

  .tabs{gap:7px;margin:18px 0}.tabs button{padding:10px 15px;font-size:13px;white-space:nowrap}
  .report-body{gap:13px}

  /* 报告卡片标题：手机端一律优先一行，避免最后一个字单独换行 */
  .card{width:100%;padding:19px 14px;border-radius:21px}
  .card h3{
    font-size:clamp(19px,5.7vw,24px);
    line-height:1.25;
    letter-spacing:-.035em;
    white-space:nowrap;
    overflow:visible;
    margin-bottom:11px;
  }
  .card p,.card li{font-size:13px;line-height:1.74}
  .card ul,.card ol{padding-left:22px}
  .summary-grid{gap:9px}
  .summary{padding:16px 13px}
  .summary b{font-size:17px;line-height:1.35}
  .summary p{font-size:11.5px;line-height:1.65}
  .dim{padding:14px 12px}
  .dim-head b{font-size:13px;white-space:nowrap}
  .light{padding:16px 13px}.light b{font-size:14px;white-space:nowrap}.light p{font-size:12px;line-height:1.65}

  /* 阶段条允许横向滑动，但整个页面不跟着横向溢出 */
  .stage-track{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px;scrollbar-width:none}
  .stage-track::-webkit-scrollbar{display:none}
  .stage-track span{font-size:12px;padding:8px 10px}

  /* 安全提示和底部按钮 */
  .safety{padding:18px 14px;border-radius:19px}
  .safety b{display:block;font-size:15px;white-space:nowrap;letter-spacing:-.02em}
  .safety p{font-size:11.5px;line-height:1.7}
  .actions{gap:9px;margin:18px 0}.actions button{width:100%;min-height:50px}
  .disclaimer{font-size:9.5px;line-height:1.65;padding:0 6px}
  footer{gap:8px;padding:18px 0;font-size:8.5px;letter-spacing:.09em}
  footer span{white-space:nowrap}
}

/* 极窄屏再降一级字号，保证标题不产生孤字行 */
@media(max-width:360px){
  .shell{padding-left:10px;padding-right:10px}
  .hero h1{font-size:33px}
  .report-cover h2{font-size:30px}
  .card h3{font-size:18px}
  .panel h2{font-size:27px}
  .question h3{font-size:18.5px}
  .chips span{font-size:10.5px;padding:6px 8px}
  .phone-scene{height:415px}
}

/* ==========================================================
   MOBILE V3 · 测试题问题文字换行修复
   问题允许自然换成 2–3 行，但不超出卡片；
   使用平衡换行，尽量避免最后一行只剩单个汉字。
   ========================================================== */

/* 覆盖 V2 对 question h3 的 keep-all：题目必须允许中文正常换行 */
.question h3{
  width:100%;
  max-width:100%;
  min-width:0;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  line-break:strict;
  text-wrap:balance;
  hyphens:none;
}

/* 题目和选项永远不能撑破卡片 */
.question,
.question h3,
.opts,
.opt{
  min-width:0;
  max-width:100%;
}
.opt{
  white-space:normal;
  word-break:normal;
  overflow-wrap:anywhere;
  line-break:strict;
}

/* 手机题目字号稍微收小，优先形成舒服的 2–3 行 */
@media(max-width:620px){
  .question{
    padding:19px 15px 21px;
    overflow:hidden;
  }
  .question h3{
    font-size:clamp(18.5px,5.15vw,20.5px) !important;
    line-height:1.55 !important;
    letter-spacing:-.012em !important;
    margin:13px 0 19px !important;
    text-align:left;
    text-wrap:balance;
  }
  .question>small{
    display:block;
    max-width:100%;
    white-space:normal;
    line-height:1.45;
  }
  .opt{
    font-size:13px;
    line-height:1.52;
    padding:13px 12px;
  }
}

/* 更窄手机继续降一点，避免一句问题被挤成 4–5 行 */
@media(max-width:380px){
  .question h3{
    font-size:18.5px !important;
    line-height:1.52 !important;
  }
}
@media(max-width:340px){
  .question{
    padding-left:13px;
    padding-right:13px;
  }
  .question h3{
    font-size:17.5px !important;
  }
}

