:root {
  --so-900: #0d3b42;
  --so-800: #0e4f59;
  --so-700: #0f6472;
  --so-600: #107a8b;
  --so-500: #12939f;
  --so-400: #1ab3be;
  --so-200: #b2eef3;
  --so-100: #d6f6f9;
  --so-50: #edfcfd;
  --shadow-sm: 0 2px 12px rgba(10,42,46,.07);
  --shadow-md: 0 8px 32px rgba(10,42,46,.13);
  --shadow-lg: 0 20px 60px rgba(10,42,46,.2);
}
    *,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{font-family:var(--font-body);background:var(--so-50);color:#0a2a30}
    a{text-decoration:none;color:inherit}
    img{display:block;max-width:100%}
    button{font-family:var(--font-body)}
    .icon{display:inline-block;flex-shrink:0;vertical-align:middle}

    /* HERO */
    .cv-hero{background:linear-gradient(120deg,#1a6b3a 0%,#1a8c72 35%,#12939f 65%,#0fb8c9 85%,#14d4e0 100%);padding:0 var(--sp-12);min-height:480px;display:flex;align-items:center;position:relative;overflow:hidden;border-radius:0 0 40px 40px}
    .cv-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,rgba(255,255,255,.07) 0%,transparent 60%);pointer-events:none}
    .cv-hero-deco1{position:absolute;top:-80px;left:-80px;width:340px;height:340px;border-radius:50%;border:60px solid rgba(255,255,255,.05);pointer-events:none}
    .cv-hero-deco2{position:absolute;bottom:-60px;right:28%;width:220px;height:220px;border-radius:50%;border:40px solid rgba(255,255,255,.04);pointer-events:none}
    .cv-hero-inner{max-width:1260px;margin:0 auto;width:100%;display:grid;grid-template-columns:1fr 420px;gap:var(--sp-10);align-items:center;position:relative;z-index:2;padding:var(--sp-16) 0}
    .cv-hero-badge{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--gold);color:var(--so-900);font-family:var(--font-display);font-size:var(--fs-xs);font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;padding:var(--sp-2) var(--sp-4);border-radius:100px;margin-bottom:var(--sp-5);width:fit-content}
    .cv-hero-badge-free{background:var(--so-900);color:var(--gold);border-radius:100px;padding:2px var(--sp-2);font-size:var(--fs-2xs);letter-spacing:var(--ls-wide);margin-left:2px}
    .cv-hero h1{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:700;color:var(--white);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-4)}
    .cv-hero h1 strong{color:var(--gold)}
    .cv-hero-desc{font-size:var(--fs-lg);color:rgba(255,255,255,.85);line-height:var(--lh-relaxed);margin-bottom:var(--sp-6);max-width:480px}
    .cv-chips{list-style:none;display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-8)}
    .cv-chip{display:inline-flex;align-items:center;gap:var(--sp-2);background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.3);backdrop-filter:blur(4px);color:var(--white);font-size:var(--fs-sm);font-weight:500;padding:var(--sp-2) var(--sp-4);border-radius:100px}
    .cv-hero-actions{display:flex;gap:var(--sp-4);flex-wrap:wrap}
    .cv-btn-white{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--white);color:var(--so-800);font-weight:600;font-size:var(--fs-md);padding:var(--sp-4) var(--sp-8);border-radius:12px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px rgba(0,0,0,.15);border:none;cursor:pointer}
    .cv-btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.22)}
    .cv-btn-outline{display:inline-flex;align-items:center;gap:var(--sp-2);border:2px solid rgba(255,255,255,.5);color:var(--white);font-weight:500;font-size:var(--fs-md);padding:var(--sp-4) var(--sp-8);border-radius:12px;background:rgba(255,255,255,.1);backdrop-filter:blur(4px);transition:background .2s,border-color .2s}
    .cv-btn-outline:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.75)}

    /* hero preview mock card */
    .cv-hero-preview{background:rgba(255,255,255,.97);border-radius:20px;padding:var(--sp-6);box-shadow:0 20px 60px rgba(0,0,0,.25);width:100%;max-width:340px;margin:0 auto}
    .cv-hero-preview-label{font-size:var(--fs-2xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--gray-500);margin-bottom:var(--sp-4)}
    .cv-hero-preview-row{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4)}
    .cv-mini-gauge{--pct:82;width:74px;height:74px;border-radius:50%;background:conic-gradient(var(--so-500) calc(var(--pct)*1%), var(--so-100) 0);display:flex;align-items:center;justify-content:center;flex-shrink:0}
    .cv-mini-gauge-inner{width:58px;height:58px;border-radius:50%;background:var(--white);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--so-800)}
    .cv-hero-preview-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-base);color:var(--so-900);margin-bottom:3px}
    .cv-hero-preview-sub{font-size:var(--fs-xs);color:var(--gray-500)}
    .cv-mini-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-2xs);font-weight:500;color:var(--gray-500)}
    .cv-mini-row>span{width:56px;flex-shrink:0}
    .cv-mini-row .cv-mini-bar{flex:1;margin:0}
    .cv-mini-bar{height:6px;border-radius:4px;background:var(--so-100);overflow:hidden;margin-bottom:var(--sp-2)}
    .cv-mini-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--so-500),var(--gold));border-radius:4px}

    .cv-hero-visual{position:relative;padding-bottom:var(--sp-16)}
    .cv-hero-preview{animation:cvFloat 6s ease-in-out infinite}
    .cv-hero-float{position:absolute;right:-10px;bottom:0;width:270px;background:var(--white);border-radius:16px;padding:var(--sp-4) var(--sp-4);box-shadow:0 16px 40px rgba(0,0,0,.22);font-size:var(--fs-xs);line-height:var(--lh-normal);animation:cvFloat 6s ease-in-out -3s infinite}
    .cv-hero-float-before{color:var(--gray-500);text-decoration:line-through;text-decoration-color:rgba(214,69,69,.6);margin-bottom:var(--sp-2)}
    .cv-hero-float-after{color:var(--so-900);font-weight:500;padding-left:var(--sp-2);border-left:3px solid var(--gold)}
    @keyframes cvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
    @media(prefers-reduced-motion:reduce){.cv-hero-preview,.cv-hero-float{animation:none}}

    @media(max-width:900px){
      .cv-hero{padding:0 var(--sp-6);border-radius:0 0 24px 24px}
      .cv-hero-visual{display:none}
      .cv-hero-inner{grid-template-columns:1fr;padding:var(--sp-12) 0 var(--sp-14)}
      .cv-hero-actions{flex-direction:column;align-items:stretch;gap:var(--sp-3)}
      .cv-btn-white,.cv-btn-outline{width:100%;justify-content:center}
    }

    /* SECTION HEAD (shared pattern) */
    .section-head{text-align:center;margin-bottom:var(--sp-12)}
    .section-head h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:700;color:var(--so-900);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-3)}
    .section-head h2 span{color:var(--so-500)}
    .section-head p{font-size:var(--fs-base);color:var(--gray-500);max-width:560px;margin:0 auto;line-height:var(--lh-relaxed)}

    /* HOW IT WORKS */
    .cv-steps-section{padding:0 var(--sp-12);margin-top:-32px;position:relative;z-index:3}
    .cv-steps{list-style:none;max-width:1060px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
    .cv-step{display:flex;gap:var(--sp-4);align-items:flex-start;background:var(--white);border-radius:18px;padding:var(--sp-5);box-shadow:var(--shadow-md);border:1.5px solid rgba(18,147,159,.1)}
    .cv-step-num{flex-shrink:0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-2xl);line-height:var(--lh-none);letter-spacing:var(--ls-tight);color:var(--so-400);padding-top:2px}
    .cv-step-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:var(--so-900);margin-bottom:3px}
    .cv-step-desc{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal)}
    @media(max-width:900px){.cv-steps-section{padding:0 var(--sp-6)}.cv-steps{grid-template-columns:1fr;gap:var(--sp-2)}}

    /* UPLOAD SECTION */
    .cv-upload-section{padding:var(--sp-24) var(--sp-12) var(--sp-24);background:var(--so-50);scroll-margin-top:68px}
    .cv-upload-inner{max-width:1060px;margin:0 auto}
    .cv-upload-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-6);align-items:start}
    @media(max-width:900px){.cv-upload-grid{grid-template-columns:1fr}}

    .cv-aside{background:linear-gradient(160deg,var(--so-800),var(--so-600));color:var(--white);border-radius:24px;padding:var(--sp-6) var(--sp-6);box-shadow:var(--shadow-md)}
    .cv-aside-title{font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp-4)}
    .cv-aside-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4)}
    .cv-aside-list li{display:flex;gap:var(--sp-3);align-items:flex-start}
    .cv-aside-icon{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12);color:var(--gold);display:flex;align-items:center;justify-content:center}
    .cv-aside-list strong{display:block;font-family:var(--font-display);font-size:var(--fs-sm);margin-bottom:2px}
    .cv-aside-list p{font-size:var(--fs-xs);line-height:var(--lh-normal);color:rgba(255,255,255,.75)}

    .cv-role{margin-top:var(--sp-6)}
    .cv-role-label{display:block;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:var(--so-900);margin-bottom:var(--sp-2)}
    .cv-role-label span{font-family:var(--font-body);font-weight:500;color:var(--gray-500);font-size:var(--fs-xs)}
    .cv-role-input{width:100%;border:1.5px solid var(--gray-200);border-radius:12px;padding:var(--sp-3) var(--sp-4);font-family:var(--font-body);font-size:var(--fs-md);color:#0a2a30;outline:none;transition:border-color .2s,box-shadow .2s}
    .cv-role-input:focus{border-color:var(--so-500);box-shadow:0 0 0 3px rgba(18,147,159,.1)}
    .cv-role-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-2)}
    .cv-role-chip{font-size:var(--fs-xs);font-weight:500;color:var(--so-700);background:var(--so-50);border:1.5px solid var(--so-100);border-radius:100px;padding:var(--sp-2) var(--sp-3);cursor:pointer;transition:.2s}
    .cv-role-chip:hover{border-color:var(--so-400)}
    .cv-role-chip.active{background:var(--so-700);border-color:var(--so-700);color:var(--white)}

    .cv-submit-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1.5px dashed var(--gray-200);flex-wrap:wrap}
    .cv-privacy-note .icon{margin-top:2px;color:var(--so-600)}
    .cv-privacy-note{display:flex;gap:var(--sp-2);align-items:flex-start;flex:1;min-width:220px;font-size:var(--fs-xs);color:var(--gray-500);line-height:var(--lh-normal)}
    .cv-btn-lg{padding:var(--sp-4) var(--sp-8);font-size:var(--fs-base)}
    @media(max-width:600px){.cv-btn-lg{width:100%;justify-content:center}}
    .cv-card{background:var(--white);border-radius:24px;box-shadow:var(--shadow-sm);border:1.5px solid rgba(18,147,159,.12);padding:var(--sp-8)}

    .cv-tabs{display:inline-flex;gap:var(--sp-1);background:var(--so-50);border:1.5px solid var(--so-100);border-radius:100px;padding:var(--sp-1);margin-bottom:var(--sp-6)}
    .cv-tab{font-size:var(--fs-md);font-weight:500;color:var(--gray-500);background:transparent;border:none;padding:var(--sp-2) var(--sp-4);border-radius:100px;cursor:pointer;display:flex;align-items:center;gap:var(--sp-2);transition:.2s}
    .cv-tab.active{background:var(--so-800);color:#fff}
    .cv-tab{white-space:nowrap}
    @media(max-width:480px){.cv-tabs{display:flex}.cv-tab{flex:1;justify-content:center;padding:var(--sp-2) var(--sp-2)}}

    .upload-area{display:block;border:2px dashed var(--gray-200);border-radius:14px;padding:var(--sp-10) var(--sp-5);text-align:center;cursor:pointer;transition:border-color .2s,background .2s}
    .upload-area:hover,.upload-area.drag{border-color:var(--so-500);background:var(--so-50)}
    .upload-area.has-file{padding:var(--sp-6) var(--sp-5);border-color:var(--so-400)}
    .upload-area.has-file .upload-icon{display:none}
    .upload-area .upload-icon{width:52px;height:52px;border-radius:16px;background:var(--so-50);border:1.5px solid var(--so-100);color:var(--so-600);display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3);transition:transform .2s}
    .upload-area:hover .upload-icon{transform:translateY(-3px)}
    .upload-area p{font-size:var(--fs-md);color:var(--gray-500);line-height:var(--lh-normal)}
    .upload-area p strong{color:var(--so-700)}
    .upload-area .upload-hint{font-size:var(--fs-xs);color:var(--gray-500);margin-top:var(--sp-1)}
    .cv-filechip{display:none;align-items:center;gap:var(--sp-2);background:var(--so-50);border:1.5px solid var(--so-100);border-radius:10px;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);color:var(--so-800);margin-top:var(--sp-4)}
    .cv-filechip.show{display:flex}
    .cv-filechip-icon{display:flex;color:var(--so-600)}
    .cv-filechip-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
    .cv-filechip-remove{display:flex;border:none;background:transparent;color:var(--gray-500);cursor:pointer;font-size:var(--fs-md);padding:2px var(--sp-2);border-radius:6px}
    .cv-filechip-remove:hover{background:var(--so-100);color:var(--so-900)}

    .cv-paste{width:100%;min-height:220px;border:1.5px solid var(--gray-200);border-radius:14px;padding:var(--sp-4);font-family:var(--font-body);font-size:var(--fs-md);line-height:var(--lh-relaxed);color:#0a2a30;resize:vertical;outline:none;transition:border-color .2s,box-shadow .2s}
    .cv-paste:focus{border-color:var(--so-500);box-shadow:0 0 0 3px rgba(18,147,159,.1)}

    .cv-btn-primary{background:var(--so-800);color:var(--white);border:none;border-radius:12px;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:background .2s,transform .2s;display:inline-flex;align-items:center;gap:var(--sp-2)}
    a.cv-btn-white,a.cv-btn-primary{justify-content:center}
    .cv-btn-primary:hover{background:var(--so-700);transform:translateY(-1px)}
    .cv-btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}
    .cv-btn-ghost{background:transparent;color:var(--so-700);border:1.5px solid var(--so-500);border-radius:12px;padding:var(--sp-3) var(--sp-6);font-size:var(--fs-md);font-weight:500;cursor:pointer;transition:background .2s,color .2s;display:inline-flex;align-items:center;gap:var(--sp-2)}
    .cv-btn-ghost:hover{background:var(--so-500);color:var(--white)}

    /* LOADING */
    .cv-loading{text-align:center;padding:var(--sp-6) var(--sp-2)}
    .cv-loading-doc{position:relative;width:76px;height:96px;margin:0 auto var(--sp-6);background:var(--white);border:2px solid var(--so-100);border-radius:10px;padding:var(--sp-4) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2);overflow:hidden;box-shadow:var(--shadow-sm)}
    .cv-loading-doc span{height:6px;border-radius:3px;background:var(--so-100)}
    .cv-loading-doc span:nth-child(1){width:60%;background:var(--so-200)}
    .cv-loading-doc span:nth-child(3){width:80%}
    .cv-loading-scan{position:absolute;left:0;right:0;height:26px;background:linear-gradient(180deg,transparent,rgba(26,179,190,.35),transparent);animation:cvScan 1.6s ease-in-out infinite}
    @keyframes cvScan{0%{top:-26px}100%{top:100%}}
    .cv-loading-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);color:var(--so-900);margin-bottom:var(--sp-2)}
    .cv-loading-sub{font-size:var(--fs-sm);color:var(--gray-500);margin-bottom:var(--sp-6)}
    .cv-loading-steps{list-style:none;display:inline-flex;flex-direction:column;gap:var(--sp-2);text-align:left}
    .cv-loading-steps li{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);color:var(--gray-400);transition:color .3s}
    .cv-loading-steps li::before{content:'';width:18px;height:18px;border-radius:50%;border:2px solid var(--gray-200);flex-shrink:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs)}
    .cv-loading-steps li.active{color:var(--so-900);font-weight:500}
    .cv-loading-steps li.active::before{border-color:var(--so-100);border-top-color:var(--so-500);animation:cvSpin .8s linear infinite}
    .cv-loading-steps li.done{color:var(--so-700)}
    .cv-loading-steps li.done::before{content:'✓';background:var(--so-500);border-color:var(--so-500);color:var(--white)}
    @keyframes cvSpin{to{transform:rotate(360deg)}}

    /* ERROR */
    .cv-error{text-align:center;padding:var(--sp-8) var(--sp-2)}
    .cv-error-icon{width:56px;height:56px;border-radius:50%;background:#fde6e6;color:#d64545;display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--sp-4)}
    .cv-error p{font-size:var(--fs-md);color:var(--gray-500);margin-bottom:var(--sp-5);line-height:var(--lh-normal)}

    /* RESULTS */
    .cv-results-section{padding:var(--sp-20) var(--sp-12) var(--sp-24);background:var(--so-50)}
    .cv-results-inner{max-width:920px;margin:0 auto;scroll-margin-top:68px}
    .cv-results-section{scroll-margin-top:68px}
    .cv-block{margin-top:var(--sp-10)}
    .cv-block-sub{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal);margin:-8px 0 var(--sp-4)}

    /* section heading */
    .cv-sec-head{display:flex;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4)}
    .cv-sec-icon{flex-shrink:0;width:36px;height:36px;border-radius:11px;background:var(--so-100);color:var(--so-700);display:flex;align-items:center;justify-content:center}
    .cv-sec-icon.is-green{background:#e3f6eb;color:#1f9d55}
    .cv-sec-icon.is-amber{background:var(--gold-soft);color:#c77c00}
    .cv-sec-head h3{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);color:var(--so-900);letter-spacing:var(--ls-tight);line-height:36px}
    .cv-sec-head div h3{line-height:var(--lh-snug);padding-top:2px}
    .cv-sec-head p{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal);margin-top:3px}

    /* score band colors */
    .band-great{--band:#1f9d55;--band-soft:#e3f6eb}
    .band-good{--band:var(--so-500);--band-soft:var(--so-100)}
    .band-fair{--band:#e08a00;--band-soft:#fff1d6}
    .band-low{--band:#d64545;--band-soft:#fde6e6}

    .cv-score-card{display:flex;align-items:center;gap:var(--sp-8);flex-wrap:wrap}
    @property --pct{syntax:'<number>';inherits:true;initial-value:0}
    .cv-gauge{--pct:0;width:150px;height:150px;border-radius:50%;background:conic-gradient(var(--band,var(--so-500)) calc(var(--pct)*1%), var(--band-soft,var(--so-100)) 0);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:--pct 1s cubic-bezier(.2,.8,.2,1)}
    .cv-score-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}
    .cv-score-band{font-size:var(--fs-xs);font-family: var(--font-display); font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;padding:var(--sp-1) var(--sp-3);border-radius:100px;background:var(--band-soft);color:var(--band)}
    .cv-meta-chip .icon{color:var(--so-600)}
    .cv-meta-chip{display:inline-flex;align-items:center;gap:var(--sp-2);max-width:260px;background:var(--so-50);border:1.5px solid var(--so-100);border-radius:100px;padding:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);color:var(--gray-500)}
    .cv-meta-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .cv-gauge-inner{width:120px;height:120px;border-radius:50%;background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center}
    .cv-gauge-num{font-family:var(--font-display);font-weight:700;font-size:var(--fs-5xl);color:var(--so-900);line-height:var(--lh-none)}
    .cv-gauge-of{font-size:var(--fs-2xs);color:var(--gray-500);font-weight:500}
    .cv-score-text{flex:1;min-width:240px}
    .cv-score-headline{font-family:var(--font-display);font-weight:700;font-size:var(--fs-2xl);color:var(--so-900);line-height:var(--lh-snug);margin-bottom:var(--sp-2)}
    .cv-summary{font-size:var(--fs-md);color:var(--gray-700);line-height:var(--lh-relaxed)}

    .cv-cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-4)}
    @media(max-width:680px){.cv-cat-grid{grid-template-columns:1fr}}
    .cv-cat-item{background:var(--white);border:1.5px solid rgba(18,147,159,.12);border-radius:18px;padding:var(--sp-5);box-shadow:var(--shadow-sm)}
    .cv-cat-top{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}
    .cv-cat-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--so-600),var(--so-400));display:flex;align-items:center;justify-content:center;color:var(--white);flex-shrink:0}
    .cv-cat-name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:var(--so-900);flex:1}
    .cv-cat-score{font-family:var(--font-display);font-weight:700;font-size:var(--fs-sm);color:var(--band);background:var(--band-soft);padding:3px var(--sp-2);border-radius:100px}
    .cv-cat-track{height:7px;border-radius:4px;background:var(--so-50);overflow:hidden;margin-bottom:var(--sp-2)}
    .cv-cat-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--so-500),var(--gold));border-radius:4px;transition:width 1s cubic-bezier(.2,.8,.2,1)}
    .cv-cat-note{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal)}

    .cv-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8)}
    @media(max-width:680px){.cv-two-col{grid-template-columns:1fr}}
    .cv-col-title{font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp-4)}
    .cv-strength-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}
    .cv-strength-item{display:flex;gap:var(--sp-3);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--gray-700);background:var(--white);border:1.5px solid rgba(31,157,85,.18);border-radius:14px;padding:var(--sp-4) var(--sp-4)}
    .cv-strength-item span.ico{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#e3f6eb;color:#1f9d55;display:flex;align-items:center;justify-content:center}
    .cv-improve-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}
    .cv-improve-item{background:var(--gold-soft);border:1.5px solid var(--gold);border-radius:14px;padding:var(--sp-4) var(--sp-4)}
    .cv-improve-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-sm);color:var(--so-900);margin-bottom:var(--sp-1);display:flex;align-items:center;gap:var(--sp-2)}
    .cv-improve-detail{font-size:var(--fs-sm);color:var(--gray-700);line-height:var(--lh-normal)}

    .cv-detail-sub{font-size:var(--fs-sm);color:var(--gray-500);line-height:var(--lh-normal);margin-bottom:var(--sp-4)}
    .cv-detail-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-4);counter-reset:cv-detail}
    .cv-detail-item{display:flex;gap:var(--sp-4);background:var(--white);border:1.5px solid rgba(18,147,159,.14);border-radius:14px;padding:var(--sp-4) var(--sp-4)}
    .cv-detail-num{counter-increment:cv-detail;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--so-800);color:var(--white);font-family:var(--font-display);font-weight:700;font-size:var(--fs-xs);display:flex;align-items:center;justify-content:center}
    .cv-detail-num::before{content:counter(cv-detail)}
    .cv-detail-body{flex:1;min-width:0}
    .cv-detail-observation{font-size:var(--fs-md);color:var(--so-900);font-weight:500;line-height:var(--lh-normal);margin-bottom:var(--sp-2)}
    .cv-detail-recommendation{font-size:var(--fs-sm);color:var(--gray-700);line-height:var(--lh-normal)}
    .cv-detail-recommendation strong{color:var(--so-700);font-weight:600}

    /* before / after */
    .cv-rewrite-list{display:flex;flex-direction:column;gap:var(--sp-4)}
    .cv-rewrite{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--sp-4);align-items:stretch}
    .cv-rewrite-before,.cv-rewrite-after{position:relative;border-radius:16px;padding:var(--sp-4) var(--sp-4);font-size:var(--fs-md);line-height:var(--lh-normal)}
    .cv-rewrite-before{background:var(--white);border:1.5px solid var(--gray-200);color:var(--gray-500)}
    .cv-rewrite-after{background:var(--white);border:1.5px solid var(--so-400);color:var(--so-900);font-weight:500;box-shadow:0 6px 20px rgba(18,147,159,.12);padding-bottom:var(--sp-12)}
    .cv-rewrite-tag{display:inline-block;font-size:var(--fs-2xs);font-family: var(--font-display); font-weight:700;letter-spacing:var(--ls-caps);text-transform:uppercase;margin-bottom:var(--sp-2)}
    .cv-rewrite-before .cv-rewrite-tag{color:#d64545}
    .cv-rewrite-after .cv-rewrite-tag{color:var(--so-600)}
    .cv-rewrite-arrow{display:flex;align-items:center;justify-content:center;color:var(--gold)}
    .cv-copy-btn{display:inline-flex;align-items:center;gap:var(--sp-1);position:absolute;right:12px;bottom:12px;font-size:var(--fs-xs);font-weight:600;color:var(--so-700);background:var(--so-50);border:1.5px solid var(--so-100);border-radius:8px;padding:var(--sp-1) var(--sp-3);cursor:pointer}
    .cv-copy-btn:hover{background:var(--so-100)}
    .cv-copy-btn.is-copied,.cv-btn-ghost.is-copied{background:#e3f6eb;border-color:#1f9d55;color:#1f9d55}
    @media(max-width:680px){.cv-rewrite{grid-template-columns:1fr}.cv-rewrite-arrow{justify-content:center;transform:rotate(90deg)}}

    /* skill -> program */
    .cv-skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4)}
    .cv-skill-card{display:flex;flex-direction:column;gap:var(--sp-2);background:linear-gradient(150deg,var(--so-800),var(--so-600));color:var(--white);border-radius:18px;padding:var(--sp-5);transition:transform .2s,box-shadow .2s}
    .cv-skill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
    .cv-skill-name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg)}
    .cv-skill-reason{font-size:var(--fs-sm);line-height:var(--lh-normal);color:rgba(255,255,255,.82);flex:1}
    .cv-skill-link{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--gold)}

    .cv-results-actions{display:flex;justify-content:center;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-12)}
    .cv-disclaimer{text-align:center;font-size:var(--fs-xs);color:var(--gray-500);margin-top:var(--sp-4)}

    /* FAQ */
    .cv-faq-section{padding:var(--sp-5) var(--sp-12) var(--sp-20);background:var(--so-50)}
    .cv-faq-inner{max-width:760px;margin:0 auto}
    .cv-faq{display:flex;flex-direction:column;gap:var(--sp-3)}
    .cv-faq details{background:var(--white);border:1.5px solid rgba(18,147,159,.12);border-radius:16px;padding:0 var(--sp-5);box-shadow:var(--shadow-sm)}
    .cv-faq summary{list-style:none;cursor:pointer;padding:var(--sp-4) 0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:var(--so-900);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3)}
    .cv-faq summary::-webkit-details-marker{display:none}
    .cv-faq summary::after{content:'+';font-size:var(--fs-2xl);color:var(--so-500);transition:transform .2s}
    .cv-faq details[open] summary::after{transform:rotate(45deg)}
    .cv-faq details p{font-size:var(--fs-md);color:var(--gray-700);line-height:var(--lh-relaxed);padding-bottom:var(--sp-4)}
    @media(max-width:760px){.cv-faq-section{padding:var(--sp-2) var(--sp-6) var(--sp-14)}}

    /* CTA */
    .cv-cta{padding:0 var(--sp-12) var(--sp-20);background:var(--so-50)}
    .cv-cta-inner{max-width:1260px;margin:0 auto;background:linear-gradient(135deg,var(--so-50) 0%,#d6f6f9 100%);border-radius:28px;padding:var(--sp-12) var(--sp-12);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-8);flex-wrap:wrap;position:relative;overflow:hidden}
    .cv-cta-inner::before{content:'';position:absolute;top:-80px;right:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(18,147,159,.1),transparent 70%)}
    .cv-cta-text{position:relative;z-index:2;max-width:560px}
    .cv-cta-text h2{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:700;color:var(--so-900);letter-spacing:var(--ls-tight);margin-bottom:var(--sp-2);line-height:var(--lh-snug)}
    .cv-cta-text h2 span{color:var(--so-500)}
    .cv-cta-text p{font-size:var(--fs-md);color:var(--gray-700);line-height:var(--lh-relaxed)}
    .cv-cta-actions{position:relative;z-index:2;flex-shrink:0}
    @media(max-width:760px){.cv-cta{padding:0 var(--sp-6) var(--sp-14)}.cv-cta-inner{padding:var(--sp-8) var(--sp-6)}}

    /* REVEAL */
    .reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease, transform .55s ease}
    .reveal.revealed{opacity:1;transform:translateY(0)}

    /* RESPONSIVE */
    @media(max-width:1024px){
      .cv-upload-section{padding:var(--sp-16) var(--sp-6) var(--sp-20)}
      .cv-card{padding:var(--sp-6) var(--sp-5)}
      .cv-results-section{padding:var(--sp-16) var(--sp-6) var(--sp-20)}
    }
    @media(max-width:768px){
      .cv-score-card{justify-content:center;text-align:center}
      .cv-cta-inner{flex-direction:column;text-align:center}
    }

    /* QUOTA & GATE */
    .cv-submit-info{flex:1;min-width:220px;display:flex;flex-direction:column;gap:var(--sp-2)}
    .cv-quota{display:inline-flex;align-items:center;gap:var(--sp-2);width:fit-content;font-size:var(--fs-xs);font-weight:600;color:var(--so-800);background:var(--so-50);border:1.5px solid var(--so-100);border-radius:100px;padding:var(--sp-1) var(--sp-3)}
    .cv-quota .icon{color:var(--gold)}
    .cv-quota.is-empty{color:#b23a3a;background:#fde6e6;border-color:#f6c6c6}
    .cv-quota.is-empty .icon{color:#d64545}
    .cv-inline-link{color:var(--so-700);font-weight:600;text-decoration:underline;text-underline-offset:2px}

    /* NEXT STEP: interview */
    .cv-next-card{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);flex-wrap:wrap;margin-top:var(--sp-8);background:linear-gradient(135deg,var(--so-800),var(--so-600));color:var(--white);border-radius:22px;padding:var(--sp-6) var(--sp-6);box-shadow:var(--shadow-md)}
    .cv-next-card>div{flex:1;min-width:240px}
    .cv-next-eyebrow{font-size:var(--fs-2xs);font-weight:600;letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--gold);margin-bottom:var(--sp-2)}
    .cv-next-title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);margin-bottom:var(--sp-2)}
    .cv-next-desc{font-size:var(--fs-sm);line-height:var(--lh-normal);color:rgba(255,255,255,.82)}
    .cv-next-card .cv-btn-primary{background:var(--white);color:var(--so-800)}
    .cv-next-card .cv-btn-primary:hover{background:var(--so-50)}
    @media(max-width:600px){.cv-next-card .cv-btn-primary{width:100%}}

    /* HISTORY */
    .cv-history-section{padding:0 var(--sp-12) var(--sp-20);background:var(--so-50);scroll-margin-top:68px}
    .cv-history-inner{max-width:920px;margin:0 auto}
    .cv-flash{background:#e3f6eb;border:1.5px solid rgba(31,157,85,.25);color:#1f7a45;border-radius:12px;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-sm);margin-bottom:var(--sp-4)}
    .cv-history-list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}
    .cv-history-item{display:flex;align-items:center;gap:var(--sp-2);background:var(--white);border:1.5px solid rgba(18,147,159,.12);border-radius:16px;padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-2);box-shadow:var(--shadow-sm);transition:border-color .2s}
    .cv-history-item:hover,.cv-history-item.is-current{border-color:var(--so-400)}
    .cv-history-link{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-2);border-radius:12px}
    .cv-history-score{flex-shrink:0;width:46px;height:46px;border-radius:14px;background:var(--band-soft);color:var(--band);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg)}
    .cv-history-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
    .cv-history-headline{font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);color:var(--so-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .cv-history-meta{font-size:var(--fs-xs);color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .cv-history-delete{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;background:transparent;color:var(--gray-400);border-radius:10px;cursor:pointer;transition:.2s}
    .cv-history-delete:hover{background:#fde6e6;color:#d64545}
    @media(max-width:760px){.cv-history-section{padding:0 var(--sp-6) var(--sp-14)}}
