:root{
  --ink:#07111f;
  --surface:#0e1b2d;
  --paper:#f8fafc;
  --text-on-ink:#eaf2ff;
  --muted-on-ink:#b6c4d8;
  --paper-ink:#10233f;
  --accent:#55a8ff;
  --indigo:#766cff;
  --focus:#9bcbff;
  --danger:#ff8f87;
  --success:#72d6ae;
  --line:rgba(182,196,216,.24);
  --line-strong:rgba(182,196,216,.48);
  --button-bg:#55a8ff;
  --button-fg:#07111f;
  --sans:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Hiragino Sans GB","Noto Sans CJK SC","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  /* Keep display copy CJK sans-serif too: the public UI should not silently
     fall back to a Songti/serif face on platforms without Microsoft YaHei. */
  --editorial:var(--sans);

  /* Type scale: a small, deliberate set of steps shared by every
     component instead of one-off sizes, so headings/body/labels keep
     a consistent rhythm across the whole site. Each tier is used by
     multiple, semantically similar elements (see below). */
  --fs-caption:.75rem;
  --fs-small:.875rem;
  --fs-body:1rem;
  --fs-body-lg:1.0625rem;
  --fs-h4:1.125rem;
  --fs-h3:clamp(1.25rem,1.6vw,1.5rem);
  --fs-h2:clamp(1.5rem,2.2vw,2rem);
  --fs-h1:clamp(1.75rem,2.8vw,2.625rem);
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --lh-tight:1.15;
  --lh-snug:1.4;
  --lh-body:1.7;
}

*{box-sizing:border-box}
html{background:var(--ink);color:var(--text-on-ink);font-family:var(--sans);font-size:16px;scroll-behavior:smooth}
body{margin:0;min-width:320px;font-size:var(--fs-body);line-height:var(--lh-body);background:var(--ink)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
a{color:inherit}
img{display:block;max-width:100%}
[hidden]{display:none!important}

:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.skip-link{position:fixed;z-index:20;top:.75rem;left:.75rem;transform:translateY(-160%);border-radius:.35rem;background:var(--paper);color:var(--paper-ink);padding:.65rem .9rem;font-weight:var(--fw-semibold);text-decoration:none;box-shadow:0 .5rem 2rem rgba(0,0,0,.35)}
.skip-link:focus{transform:translateY(0)}

.shell{width:min(100%,1240px);margin:0 auto;padding:0 2rem}
.site-header{position:sticky;z-index:10;top:0;border-bottom:1px solid var(--line);background:rgba(7,17,31,.96);backdrop-filter:blur(14px)}
.masthead{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:1.25rem}
.brand{display:inline-flex;align-items:center;gap:.65rem;border-radius:.45rem;text-decoration:none}
.brand-logo{width:40px;height:40px;object-fit:contain}
.brand-name-zh{font-family:var(--editorial);font-size:1.25rem;font-weight:var(--fw-bold);color:var(--text-on-ink);letter-spacing:.01em}
.brand-name-zh-accent{color:var(--accent)}
.header-actions,.site-nav{display:flex;align-items:center}
.header-actions{gap:1rem}
.site-nav{gap:.7rem}
.nav-cta{min-height:42px;border:1px solid var(--line-strong);border-radius:.35rem;padding:.55rem .85rem;font-weight:var(--fw-semibold);background:var(--accent);color:var(--button-fg);text-decoration:none}
.language-switch{display:inline-flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text-on-ink);font-size:1.2rem;line-height:1;padding:0}
.language-switch:hover,.language-switch:focus-visible{border-color:var(--line);background:rgba(255,255,255,.1)}

.hero-stage{position:relative;isolation:isolate;width:min(100%,1240px);margin:0 auto;padding:clamp(3rem,7vw,6.5rem) 2rem 4.5rem;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(2rem,4vw,4.5rem);align-items:center}
.hero-stage::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background-image:radial-gradient(circle at 76% 20%,rgba(118,108,255,.2),transparent 38%),radial-gradient(circle at 54% 5%,rgba(85,168,255,.12),transparent 32%),linear-gradient(rgba(155,203,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(155,203,255,.045) 1px,transparent 1px);background-size:auto,auto,32px 32px,32px 32px}
.hero-copy{grid-column:span 5;max-width:38rem}
.value-badge{display:inline-block;margin:0 0 1.6rem;border-left:3px solid var(--accent);padding:.3rem 0 .3rem .8rem;color:var(--muted-on-ink);font-size:var(--fs-caption);font-weight:var(--fw-medium)}
.hero-eyebrow{margin:0 0 .6rem;color:var(--accent);font-size:var(--fs-small);font-weight:var(--fw-semibold)}
.hero-copy h1{margin:0;max-width:16em;font-size:var(--fs-h1);font-weight:var(--fw-semibold);letter-spacing:0;line-height:var(--lh-tight)}
.hero-lead{max-width:34rem;margin:1.1rem 0 0;color:var(--muted-on-ink);font-size:var(--fs-body-lg);line-height:var(--lh-snug)}
.hero-promises{display:grid;gap:.7rem;margin:2rem 0 0;padding:0;list-style:none;color:var(--text-on-ink);font-size:var(--fs-small)}
.hero-promises li{position:relative;padding-left:1.4rem}
.hero-promises li::before{content:"";position:absolute;top:.68em;left:0;width:.62rem;height:2px;background:var(--accent)}

/* Negative tracking reads well on Latin display type but crowds CJK
   glyphs, which are already full-width and evenly spaced -- so the
   tighter tracking below applies only under :lang(en), never as the
   shared default for the headings that also render in Chinese. */
:lang(en) .hero-copy h1,
:lang(en) .intake h2,:lang(en) .delivery-steps h2,:lang(en) .sample-delivery h2,:lang(en) .trust-faq h2,
:lang(en) .legal-intro h1,
:lang(en) .result-header h1{letter-spacing:-.02em}

#main{scroll-margin-top:5rem}
#workspace{scroll-margin-top:6rem}
.workspace{grid-column:span 7;display:grid;grid-template-columns:minmax(190px,.78fr) minmax(320px,1.22fr);gap:1.1rem;align-items:start;border:1px solid var(--line);border-radius:24px;background:var(--surface);padding:1.1rem;box-shadow:0 1.8rem 5rem rgba(0,0,0,.28)}
.resume-paper{min-height:31rem;border-radius:.35rem;background:var(--paper);color:var(--paper-ink);padding:2rem 1.55rem;box-shadow:0 1rem 2.8rem rgba(0,0,0,.28);opacity:1;transition:opacity .26s ease}
.resume-paper.is-fading{opacity:0}
.resume-paper-dots{display:flex;gap:.4rem;margin-top:1.5rem}
.resume-paper-dots>span{width:.4rem;height:.4rem;border-radius:50%;background:#c7d0dd}
.resume-paper-dots>span.active{background:var(--paper-ink)}
.resume-paper-kicker{margin:0 0 2.6rem;color:#4d6280;font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.resume-paper-name{margin:0;font-family:var(--editorial);font-size:1.5rem;font-weight:var(--fw-bold);letter-spacing:-.025em}
.resume-paper-role{margin:.2rem 0 0;color:#42597a;font-size:var(--fs-small)}
.resume-paper-rule{height:3px;margin:1rem 0 1.25rem;background:var(--paper-ink)}
.resume-paper-before-tag,.resume-paper-after-tag{margin:0;color:#4d6280;font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.resume-paper-after-tag{margin-top:1.15rem}
.resume-paper-before-text{margin:.4rem 0 0;color:#8592a8;font-size:var(--fs-small);line-height:var(--lh-body);text-decoration:line-through;text-decoration-color:#c7d0dd}
.resume-paper-after-text{margin:.4rem 0 0;font-family:var(--editorial);color:var(--paper-ink);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-bold)}

.intake{min-width:0;padding:.5rem .65rem .8rem}
.section-kicker{margin:0 0 .45rem;color:var(--accent);font-size:var(--fs-caption);font-weight:var(--fw-semibold)}
.intake h2,.delivery-steps h2,.sample-delivery h2,.trust-faq h2{margin:0;font-weight:var(--fw-semibold);letter-spacing:0;line-height:var(--lh-tight)}
.intake h2{font-size:var(--fs-h3)}
.field{display:block;min-width:0;margin:1.05rem 0;padding:0;border:0}
.field-label{display:flex;justify-content:space-between;gap:.75rem;margin:0 0 .45rem;color:var(--text-on-ink);font-size:var(--fs-small);font-weight:var(--fw-semibold)}
.field-note{color:var(--muted-on-ink);font-size:var(--fs-caption);font-weight:var(--fw-regular)}
.drop-target{display:block;position:relative;min-height:112px;border:1px dashed var(--line-strong);border-radius:.45rem;background:rgba(7,17,31,.45);padding:1.2rem;transition:border-color .16s ease,background-color .16s ease}
.drop-target:hover,.drop-target.dragover{border-color:var(--accent);background:rgba(85,168,255,.1)}
.drop-target:focus-within{outline:3px solid var(--focus);outline-offset:3px;border-color:var(--focus)}
.drop-target input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.file-title{display:block;font-weight:var(--fw-semibold)}
.file-detail{display:block;margin-top:.35rem;color:var(--muted-on-ink);font-size:var(--fs-small)}
.file-title,.file-detail,.form-status,.result-card,.terminal-message{overflow-wrap:anywhere}
.selection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}
.choice{min-width:0;min-height:60px;border:1px solid var(--line);border-radius:.35rem;background:rgba(7,17,31,.38);color:var(--text-on-ink);padding:.65rem;text-align:left}
.choice:hover{border-color:var(--line-strong)}
.choice[aria-pressed="true"]{border-color:var(--accent);background:rgba(85,168,255,.14);box-shadow:inset 0 -3px 0 var(--accent)}
.choice strong{display:block;font-size:var(--fs-small)}
.choice small{display:block;margin-top:.18rem;color:var(--muted-on-ink);font-size:var(--fs-caption)}
.textarea{width:100%;min-height:46px;border:1px solid var(--line-strong);border-radius:.35rem;background:#0a1626;color:var(--text-on-ink);padding:.7rem;resize:vertical}
textarea.textarea{min-height:105px}
.jd-disclosure{margin:1rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:.85rem 0}
.jd-disclosure summary{color:var(--muted-on-ink);font-weight:var(--fw-medium);cursor:pointer}
.submit{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:1.1rem;border:1px solid var(--button-bg);border-radius:.4rem;background:var(--button-bg);color:var(--button-fg);font-weight:var(--fw-bold)}
.submit:hover:not(:disabled){background:#79bbff}
.submit:disabled{border-color:#71849c;background:#71849c;color:#07111f;opacity:1}
.form-status{min-height:1.5rem;margin:.8rem 0 0;color:var(--muted-on-ink);font-size:var(--fs-small)}
.form-status.error{color:var(--danger)}
.preview-panel,.payment-panel{margin-top:1.1rem;border:1px solid var(--line);border-radius:.5rem;background:rgba(7,17,31,.52);padding:1rem}
.preview-panel h3,.payment-heading{margin:0;font-size:var(--fs-h4);font-weight:var(--fw-semibold)}
.preview-score{color:var(--accent);font-weight:var(--fw-bold)}
.preview-summary,.preview-suggestions,.payment-note{color:var(--muted-on-ink);font-size:var(--fs-small)}
.preview-suggestions{padding-left:1.15rem}
.payment-panel[hidden]{display:none}
.payment-note{margin:.25rem 0 .8rem}
.provider{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;margin:.5rem 0;border:1px solid var(--line);border-radius:.35rem;background:transparent;color:var(--text-on-ink);padding:.75rem;text-align:left}
.provider:hover{border-color:var(--accent)}
.provider strong,.provider small{display:block}
.provider small{color:var(--muted-on-ink);font-size:var(--fs-caption)}
.provider-pill{color:var(--accent);font-size:var(--fs-caption);font-weight:var(--fw-bold)}
.refresh-button{min-height:42px;border:1px solid var(--line-strong);border-radius:.35rem;background:transparent;color:var(--text-on-ink);padding:.55rem .8rem;font-weight:var(--fw-semibold)}
.refresh-button:hover{border-color:var(--accent);background:rgba(85,168,255,.1)}

.feedback-widget-trigger{position:fixed;z-index:15;right:1.1rem;bottom:1.1rem;min-height:44px;border:1px solid var(--line-strong);border-radius:999px;background:var(--accent);color:var(--button-fg);padding:.6rem 1.1rem;font-size:var(--fs-small);font-weight:var(--fw-semibold);box-shadow:0 .6rem 1.8rem rgba(0,0,0,.35)}
.feedback-widget-trigger:hover{background:#79bbff}
.feedback-widget-trigger[aria-expanded="true"]{background:var(--surface);color:var(--text-on-ink)}
.feedback-widget-panel{position:fixed;z-index:16;right:1.1rem;bottom:4.4rem;width:min(92vw,360px);max-height:min(80vh,560px);overflow-y:auto;border:1px solid var(--line);border-radius:.6rem;background:var(--surface);padding:1rem;box-shadow:0 1.2rem 3.2rem rgba(0,0,0,.4)}
.feedback-widget-panel[hidden]{display:none}
.feedback-widget-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.feedback-widget-head h2{margin:0;font-size:var(--fs-h4);font-weight:var(--fw-semibold)}
.feedback-widget-close{min-width:32px;min-height:32px;border:1px solid var(--line-strong);border-radius:.35rem;background:transparent;color:var(--text-on-ink);padding:0;font-size:var(--fs-h4);line-height:1}
.feedback-widget-close:hover{border-color:var(--accent);background:rgba(85,168,255,.1)}
.feedback-widget-hint{margin:.5rem 0 .8rem;color:var(--muted-on-ink);font-size:var(--fs-small)}
.feedback-widget-panel .field{margin:.65rem 0}
.feedback-widget-panel .submit{margin-top:.9rem}

.delivery-steps,.sample-delivery,.trust-faq{width:min(100%,1180px);margin:0 auto;padding:4.5rem 2rem}
.delivery-steps{border-top:1px solid var(--line)}
.delivery-steps h2,.sample-delivery h2,.trust-faq h2{max-width:19ch;font-size:var(--fs-h2)}
.delivery-steps ol{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.5rem 0 0;padding:0;list-style:none}
.delivery-steps li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;border-top:1px solid var(--line-strong);padding:1.15rem 0}
.delivery-steps li>span{color:var(--accent);font-size:var(--fs-h4);font-weight:var(--fw-bold)}
.delivery-steps h3{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold)}
.delivery-steps li p{margin:.25rem 0 0;color:var(--muted-on-ink);font-size:var(--fs-small)}
.sample-delivery{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:end}
.sample-delivery .section-kicker{grid-column:1/-1;margin-bottom:-2rem}
.sample-delivery>p:last-child{margin:0;color:var(--muted-on-ink)}
.trust-faq{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,6rem)}
.trust-copy p:not(.section-kicker){color:var(--muted-on-ink)}
.trust-copy a{color:var(--accent);font-weight:var(--fw-semibold)}
.faq details{border-top:1px solid var(--line);padding:1rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-weight:var(--fw-semibold);cursor:pointer}
.faq details p{margin:.65rem 0 0;color:var(--muted-on-ink)}

.result-shell{width:min(100%,900px);min-height:calc(100vh - 145px);margin:0 auto;padding:3.5rem 2rem 5rem}
.result-header{margin-bottom:1.25rem;border-bottom:1px solid var(--line);padding:0 0 1.25rem}
.result-header h1{margin:0;font-size:var(--fs-h2);font-weight:var(--fw-semibold);letter-spacing:0;line-height:var(--lh-tight)}
.result-header p{margin:.45rem 0 0;color:var(--muted-on-ink)}
.result-card{margin:1rem 0;border:1px solid #d6deea;border-radius:16px;background:var(--paper);color:var(--paper-ink);padding:clamp(1.25rem,3vw,2rem);box-shadow:0 1rem 2.8rem rgba(0,0,0,.18)}
.result-card h2{margin:0 0 .8rem;font-size:var(--fs-h4);font-weight:var(--fw-semibold)}
.result-card p{max-width:72ch}
.result-card pre{max-width:100%;margin:0;border-left:3px solid var(--accent);background:#edf3fa;color:var(--paper-ink);padding:1.15rem;font:inherit;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.result-card .field-label{color:var(--paper-ink)}
.result-card .textarea{border-color:#6e8099;background:#fff;color:var(--paper-ink)}
.result-card :focus-visible{outline:3px solid #123f73;outline-offset:2px;box-shadow:0 0 0 5px var(--paper),0 0 0 7px #123f73}
.result-card .muted{color:#4d6280}
.result-card .form-status{color:#4d6280}
.result-card .refresh-button{border-color:#6e8099;color:var(--paper-ink)}
.result-card .refresh-button:hover{border-color:#286fae;background:#e7f2ff}
.result-card .terminal-message,.result-card .error{color:#9a3036}
.order-meta{color:var(--muted-on-ink)}
.muted{color:var(--muted-on-ink)}
.ready{color:var(--success)}
.terminal-message,.error{color:var(--danger)}
.feedback-card{margin-top:2rem}
.result-back{margin:2rem 0 0}
.result-back a{color:var(--accent);font-weight:var(--fw-semibold)}

.legal-shell{width:min(100%,980px);margin:0 auto;padding:3.5rem 2rem 5rem}
.legal-intro{display:grid;grid-template-columns:5fr 7fr;gap:2rem;align-items:end;margin-bottom:2.2rem;border-bottom:1px solid var(--line);padding-bottom:2rem}
.legal-intro>*{min-width:0}
.legal-intro h1{margin:0;font-size:var(--fs-h2);font-weight:var(--fw-semibold);letter-spacing:0;line-height:var(--lh-tight)}
.legal-chrome-copy{margin:0;color:var(--muted-on-ink);max-width:42ch}
.legal-document{border-left:3px solid var(--accent);padding-left:clamp(1.25rem,4vw,3rem)}
.legal-language{max-width:75ch;padding:1rem 0 2rem}
.legal-language+.legal-language{margin-top:1rem;border-top:1px solid var(--line);padding-top:2.5rem}
.legal-language-label{margin:0 0 2rem;color:var(--accent);font-weight:var(--fw-semibold)}
.legal-section{scroll-margin-top:6rem}
.legal-section+.legal-section{margin-top:2rem}
.legal-section h2{margin:0 0 .6rem;font-size:var(--fs-h4);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}
.legal-section p{margin:0;color:var(--muted-on-ink);overflow-wrap:anywhere}
.legal-section a{color:var(--focus)}

.site-footer{border-top:1px solid var(--line);background:#050c16;color:var(--muted-on-ink)}
.footer-inner{width:min(100%,1240px);margin:0 auto;padding:1.4rem 2rem;display:flex;justify-content:space-between;gap:1rem;font-size:var(--fs-caption)}
.footer-inner a{color:var(--text-on-ink)}

@media(max-width:980px){
  .hero-copy,.workspace{grid-column:1/-1}
  .hero-copy{max-width:48rem}
  .hero-copy h1{max-width:13ch}
}

@media(max-width:760px){
  /* Re-anchor the heading scale for narrow screens in one place --
     every component that consumes --fs-h1/h2/h3 shrinks together,
     instead of each one carrying its own separate mobile override. */
  :root{
    --fs-h1:clamp(1.5rem,6vw,1.875rem);
    --fs-h2:clamp(1.3rem,5vw,1.625rem);
    --fs-h3:clamp(1.15rem,4.2vw,1.375rem);
  }
  .shell,.hero-stage,.delivery-steps,.sample-delivery,.trust-faq,.result-shell,.legal-shell{padding-left:.85rem;padding-right:.85rem}
  .masthead{min-height:64px;gap:.55rem}
  .brand-logo{width:34px;height:34px}
  .brand-name-zh{display:none}
  .header-actions{gap:0}
  .site-nav{gap:.35rem}
  .nav-cta{padding:.42rem .55rem;white-space:nowrap;min-height:48px}
  .language-switch{width:2.1rem;height:2.1rem;font-size:1.05rem}
  .hero-stage{grid-template-columns:minmax(0,1fr);padding-top:.65rem;padding-bottom:1.1rem;gap:.55rem}
  .value-badge{margin-bottom:.3rem;padding-top:.1rem;padding-bottom:.1rem;line-height:1.35}
  .hero-eyebrow{margin-bottom:.18rem}
  .hero-copy h1{max-width:15ch;line-height:1.1}
  .hero-lead{margin-top:.38rem;font-size:var(--fs-small);line-height:1.5}
  .hero-promises{display:none}
  .workspace{grid-template-columns:1fr;gap:.45rem;padding:.45rem}
  .resume-paper{min-height:0;transform:none;padding:.65rem .75rem;box-shadow:none}
  .resume-paper-kicker{display:none}
  .resume-paper-name{font-size:1.05rem;line-height:1.25}
  .resume-paper-role{margin-top:.08rem;font-size:var(--fs-caption)}
  .resume-paper-rule{height:2px;margin:.3rem 0}
  .resume-paper-before-tag,.resume-paper-before-text{display:none}
  .resume-paper-after-tag{margin-top:0}
  .resume-paper-after-text{display:-webkit-box;margin:.2rem 0 0;overflow:hidden;font-size:var(--fs-small);line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .intake{padding:.25rem .3rem .35rem}
  .section-kicker{margin-bottom:.15rem}
  .field{margin:.5rem 0}
  .field-label{margin-bottom:.25rem}
  .drop-target{min-height:72px;padding:.58rem .7rem}
  .selection{grid-template-columns:repeat(3,minmax(0,1fr))}
  .choice{min-height:54px;padding:.5rem}
  .delivery-steps ol,.sample-delivery,.trust-faq,.legal-intro{grid-template-columns:1fr}
  .delivery-steps,.sample-delivery,.trust-faq{padding-top:3.25rem;padding-bottom:3.25rem}
  .sample-delivery .section-kicker{grid-column:auto;margin-bottom:-1.5rem}
  .legal-document{border-left:0;padding-left:0}
  .result-card{padding:1.2rem}
  .footer-inner{padding:1.2rem 1.1rem;flex-direction:column}
  .feedback-widget-trigger{right:.7rem;bottom:.7rem;padding:.5rem .85rem;font-size:var(--fs-caption)}
  .feedback-widget-panel{right:.6rem;bottom:3.8rem;left:.6rem;width:auto}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
