:root{
  --cv-bg:#f6f8f5;
  --cv-paper:#ffffff;
  --cv-ink:#14231c;
  --cv-soft:#56645d;
  --cv-muted:#758079;
  --cv-line:rgba(20,35,28,.10);
  --cv-green:#2f6a4d;
  --cv-green-soft:#e7f0ea;
  --cv-blue:#dcebf2;
  --cv-gold:#ead9b9;
  --cv-shadow:0 22px 70px rgba(26,51,39,.08);
  --cv-shadow-up:0 34px 90px rgba(26,51,39,.13);
  --cv-radius:28px;
  --cv-ease:cubic-bezier(.22,.61,.36,1);
}
body.lenses-next{background:var(--cv-bg);color:var(--cv-ink);overflow-x:hidden}
.lenses-next .seer-nav{background:rgba(249,251,248,.86);backdrop-filter:saturate(150%) blur(20px);-webkit-backdrop-filter:saturate(150%) blur(20px)}

.cv-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(130px,18vw,220px) 28px clamp(80px,11vw,140px);
  background:
    radial-gradient(circle at 78% 18%,rgba(132,181,207,.16),transparent 28rem),
    radial-gradient(circle at 18% 78%,rgba(152,188,163,.16),transparent 30rem),
    linear-gradient(180deg,#fff,#f5f8f5);
  border-bottom:1px solid var(--cv-line);
}
.cv-hero::after{
  content:"";
  position:absolute;
  width:34rem;height:34rem;
  right:-14rem;bottom:-18rem;
  border:1px solid rgba(47,106,77,.08);
  border-radius:50%;
  box-shadow:0 0 0 80px rgba(47,106,77,.02),0 0 0 160px rgba(47,106,77,.014);
}
.cv-wrap{width:min(1380px,calc(100% - 48px));margin-inline:auto}
.cv-hero-inner{position:relative;z-index:1;max-width:1050px}
.cv-kicker{margin:0 0 16px;font-size:11px;font-weight:760;letter-spacing:.17em;text-transform:uppercase;color:#5c7667}
.cv-hero h1{margin:0;max-width:12ch;font:500 clamp(58px,9vw,116px)/.91 Georgia,serif;letter-spacing:-.06em}
.cv-hero h1 em{font-weight:400;color:#376d53}
.cv-hero .lede{max-width:760px;margin:28px 0 0;font-size:clamp(19px,2.25vw,27px);line-height:1.5;color:var(--cv-soft)}
.cv-rules{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.cv-rules span{padding:8px 12px;border:1px solid var(--cv-line);border-radius:999px;background:rgba(255,255,255,.72);font-size:12px;color:#516157}
.cv-hero-action{display:inline-flex;margin-top:34px;align-items:center;gap:10px;color:var(--cv-green);font-weight:700;text-decoration:none}
.cv-hero-action::after{content:"↓";font-size:18px}

.cv-intro{padding:58px 28px 28px;background:#fff}
.cv-intro-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;align-items:end}
.cv-intro h2{margin:0;font:500 clamp(35px,5vw,60px)/1.02 Georgia,serif;letter-spacing:-.045em}
.cv-intro p{margin:0;max-width:650px;color:var(--cv-soft);font-size:18px;line-height:1.65}

.cv-lab{padding:24px 28px 100px;background:#fff}
.lab-shell{display:grid;grid-template-columns:310px minmax(0,1fr);gap:24px;align-items:start}
.control-rail{
  position:sticky;top:86px;
  padding:20px;
  border:1px solid var(--cv-line);
  border-radius:28px;
  background:rgba(249,251,248,.84);
  box-shadow:var(--cv-shadow);
  backdrop-filter:saturate(145%) blur(22px);
  -webkit-backdrop-filter:saturate(145%) blur(22px);
}
.control-section + .control-section{margin-top:24px;padding-top:22px;border-top:1px solid var(--cv-line)}
.control-label{margin:0 0 10px;font-size:10px;font-weight:760;letter-spacing:.13em;text-transform:uppercase;color:#718078}
.topic-list,.lens-list{display:grid;gap:7px}
.control-button{
  width:100%;
  border:1px solid transparent;
  border-radius:15px;
  padding:10px 11px;
  background:transparent;
  color:var(--cv-ink);
  text-align:left;
  font:inherit;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,transform .25s var(--cv-ease);
}
.control-button:hover{background:#f1f5f2}
.control-button.is-active{background:#fff;border-color:var(--cv-line);box-shadow:0 7px 22px rgba(26,51,39,.06)}
.topic-button strong{display:block;font-size:13px;line-height:1.3}
.topic-button small{display:block;margin-top:3px;color:var(--cv-muted);font-size:11px;line-height:1.4}
.lens-button{display:flex;align-items:center;gap:9px}
.lens-dot{width:9px;height:9px;border-radius:50%;background:var(--lens-accent,#557b68);box-shadow:0 0 0 5px color-mix(in srgb,var(--lens-accent,#557b68) 12%,transparent)}
.lens-button span:nth-child(2){min-width:0;flex:1;font-size:13px;line-height:1.25}
.lens-button .check{font-size:12px;color:#6d7a73}
.lens-button.is-active .check::before{content:"✓";color:var(--cv-green);font-weight:800}
.lens-hint{margin:9px 0 0;font-size:11px;color:var(--cv-muted)}
.view-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;background:#edf2ee;border-radius:15px}
.view-button{border:0;border-radius:11px;padding:8px 6px;background:transparent;font-size:11px;color:#5d6c64;cursor:pointer}
.view-button.is-active{background:#fff;color:var(--cv-ink);box-shadow:0 3px 12px rgba(20,35,28,.06)}
.control-actions{display:flex;gap:8px;margin-top:16px}
.control-actions button{flex:1;border:1px solid var(--cv-line);border-radius:12px;padding:9px;background:#fff;color:#40564a;font-size:11px;cursor:pointer}

.lab-stage{min-width:0}
.question-panel{
  padding:clamp(24px,4vw,42px);
  border:1px solid var(--cv-line);
  border-radius:32px;
  background:
    radial-gradient(circle at 92% 12%,rgba(117,170,198,.12),transparent 22rem),
    #fbfcfa;
  box-shadow:var(--cv-shadow);
}
.question-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center}
.question-step{font-size:10px;font-weight:760;letter-spacing:.13em;text-transform:uppercase;color:#718078}
.stack-pills{display:flex;flex-wrap:wrap;gap:6px}
.stack-pill{padding:5px 8px;border-radius:999px;background:#edf4ef;color:#42614f;font-size:10px}
.question-panel h2{max-width:850px;margin:18px 0 0;font:500 clamp(34px,5vw,62px)/1.02 Georgia,serif;letter-spacing:-.045em}
.question-panel p{max-width:820px;margin:18px 0 0;color:var(--cv-soft);font-size:18px;line-height:1.62}

.view-panel{margin-top:18px}
.view-panel[hidden]{display:none!important}

/* Map */
.knowledge-map{
  position:relative;
  min-height:610px;
  overflow:hidden;
  border:1px solid var(--cv-line);
  border-radius:32px;
  background:
    radial-gradient(circle at 50% 50%,rgba(226,239,230,.76),transparent 28%),
    radial-gradient(circle at 84% 16%,rgba(219,235,243,.55),transparent 28%),
    #fbfcfa;
  box-shadow:var(--cv-shadow);
}
.map-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.map-lines line{stroke:rgba(56,103,79,.20);stroke-width:1.4;stroke-dasharray:4 6;animation:cv-dash 18s linear infinite}
@keyframes cv-dash{to{stroke-dashoffset:-100}}
.question-node,.lens-node{
  position:absolute;
  transform:translate(-50%,-50%);
  border:1px solid var(--cv-line);
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 14px 45px rgba(28,52,40,.09);
}
.question-node{
  left:50%;top:50%;
  width:min(310px,34%);
  min-height:190px;
  display:grid;place-items:center;
  padding:24px;
  border-radius:50%;
  text-align:center;
}
.question-node small{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#728077}
.question-node strong{display:block;margin-top:9px;font:500 clamp(20px,2.3vw,30px)/1.14 Georgia,serif;letter-spacing:-.03em}
.lens-node{
  width:190px;
  min-height:88px;
  padding:14px;
  border-radius:22px;
  text-align:left;
  cursor:pointer;
  transition:transform .35s var(--cv-ease),box-shadow .35s var(--cv-ease),border-color .35s ease;
}
.lens-node:hover,.lens-node.is-focused{transform:translate(-50%,-50%) scale(1.035);box-shadow:var(--cv-shadow-up);border-color:color-mix(in srgb,var(--lens-accent) 30%,var(--cv-line))}
.lens-node .node-type{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:#7a867f}
.lens-node strong{display:block;margin-top:5px;font-size:13px;line-height:1.25}
.lens-node p{margin:6px 0 0;color:#627168;font-size:10px;line-height:1.35}
.map-detail{
  position:absolute;left:24px;right:24px;bottom:22px;
  display:grid;grid-template-columns:.8fr 1.2fr;gap:22px;
  padding:18px 20px;
  border:1px solid var(--cv-line);
  border-radius:22px;
  background:rgba(255,255,255,.91);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 12px 42px rgba(28,52,40,.08);
}
.map-detail h3{margin:0;font:500 25px/1.1 Georgia,serif;letter-spacing:-.025em}
.map-detail p{margin:0;color:var(--cv-soft);font-size:13px;line-height:1.5}
.map-detail .detail-label{display:block;margin-bottom:5px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#7c8881}

/* Compare */
.compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lens-card{
  position:relative;
  overflow:hidden;
  padding:24px;
  border:1px solid var(--cv-line);
  border-radius:28px;
  background:#fff;
  box-shadow:var(--cv-shadow);
}
.lens-card::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--lens-accent)}
.lens-card .lens-type{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:#78847d}
.lens-card h3{margin:10px 0 0;font:500 28px/1.05 Georgia,serif;letter-spacing:-.035em}
.lens-card .lens-question{margin:22px 0 0;padding:16px;border-radius:17px;background:#f4f7f4;font:500 18px/1.4 Georgia,serif}
.lens-card dl{margin:22px 0 0}
.lens-card dt{margin-top:14px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#77847c}
.lens-card dd{margin:5px 0 0;color:var(--cv-soft);font-size:13px;line-height:1.55}
.lens-card a{display:inline-block;margin-top:20px;color:#315f49;font-size:12px}

/* Matrix */
.matrix-shell{overflow:auto;border:1px solid var(--cv-line);border-radius:28px;background:#fff;box-shadow:var(--cv-shadow)}
.matrix{width:100%;min-width:760px;border-collapse:collapse}
.matrix th,.matrix td{padding:17px 18px;border-bottom:1px solid var(--cv-line);vertical-align:top;text-align:left}
.matrix th{position:sticky;top:0;background:#f8faf8;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:#748078}
.matrix td{color:var(--cv-soft);font-size:13px;line-height:1.55}
.matrix td:first-child{min-width:150px;color:var(--cv-ink);font-weight:700}
.matrix tr:last-child td{border-bottom:0}

/* Synthesis */
.synthesis{margin-top:18px;padding:28px;border:1px solid var(--cv-line);border-radius:30px;background:linear-gradient(145deg,#f8fbf9,#eef4f0);box-shadow:var(--cv-shadow)}
.synthesis-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:30px;align-items:end}
.synthesis h2{margin:0;font:500 36px/1.05 Georgia,serif;letter-spacing:-.035em}
.synthesis-head p{margin:0;color:var(--cv-soft);font-size:14px;line-height:1.6}
.synthesis-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.synthesis-card{padding:18px;border:1px solid rgba(20,35,28,.08);border-radius:20px;background:rgba(255,255,255,.76)}
.synthesis-card span{font-size:9px;text-transform:uppercase;letter-spacing:.11em;color:#738078}
.synthesis-card strong{display:block;margin-top:7px;font:500 18px/1.35 Georgia,serif}
.synthesis-card p{margin:8px 0 0;color:#607067;font-size:12px;line-height:1.5}
.focus-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.focus-tag{padding:5px 8px;border-radius:999px;background:#edf3ef;color:#496050;font-size:10px}

/* Reflection */
.reflection-section{padding:90px 28px;background:linear-gradient(180deg,#f7f9f6,#fff)}
.reflection-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:end}
.reflection-head h2{margin:0;font:500 clamp(38px,5vw,60px)/1.03 Georgia,serif;letter-spacing:-.045em}
.reflection-head p{margin:0;max-width:640px;color:var(--cv-soft);font-size:17px;line-height:1.65}
.reflection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}
.reflection-card{padding:18px;border:1px solid var(--cv-line);border-radius:22px;background:#fff;box-shadow:0 10px 34px rgba(28,52,40,.05)}
.reflection-card label{display:block;margin-bottom:9px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#748078}
.reflection-card textarea{width:100%;min-height:130px;resize:vertical;border:0;outline:0;background:transparent;color:var(--cv-ink);font:400 15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.reflection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.reflection-actions button{border:1px solid var(--cv-line);border-radius:999px;padding:9px 13px;background:#fff;color:#40564a;font-size:11px;cursor:pointer}
.reflection-status{margin:10px 0 0;color:#77837c;font-size:11px}

/* Sources */
.source-section{padding:64px 28px 100px;background:#fff}
.source-library{border:1px solid var(--cv-line);border-radius:28px;background:#fbfcfa;overflow:hidden}
.source-library summary{padding:20px 22px;cursor:pointer;font-weight:700;color:#365440}
.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--cv-line)}
.source-item{padding:20px 22px;border-right:1px solid var(--cv-line);border-bottom:1px solid var(--cv-line)}
.source-item:nth-child(2n){border-right:0}
.source-item a{color:#274f3b;font-weight:700}
.source-item small{display:block;margin-top:4px;color:#758179}
.source-item p{margin:10px 0 0;color:var(--cv-soft);font-size:13px;line-height:1.55}
.edge-note{margin-top:20px;padding:20px 22px;border-radius:22px;background:#f1f5f2;color:#55655b;font-size:13px;line-height:1.6}
.edge-note strong{color:#294b39}

@media(max-width:1120px){
  .lab-shell{grid-template-columns:260px minmax(0,1fr)}
  .lens-node{width:165px}
}
@media(max-width:900px){
  .cv-wrap{width:min(100% - 32px,1380px)}
  .cv-intro-grid,.synthesis-head,.reflection-head{grid-template-columns:1fr;gap:14px}
  .lab-shell{grid-template-columns:1fr}
  .control-rail{position:relative;top:auto}
  .topic-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lens-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .control-section + .control-section{margin-top:18px;padding-top:18px}
  .knowledge-map{min-height:680px}
  .question-node{width:250px;min-height:160px}
  .lens-node{width:155px}
  .compare-grid,.reflection-grid{grid-template-columns:1fr}
  .synthesis-grid{grid-template-columns:1fr}
  .source-grid{grid-template-columns:1fr}
  .source-item{border-right:0}
}
@media(max-width:640px){
  .cv-hero{padding:115px 18px 72px}
  .cv-hero h1{font-size:58px}
  .cv-intro,.cv-lab,.reflection-section,.source-section{padding-left:16px;padding-right:16px}
  .topic-list,.lens-list{grid-template-columns:1fr}
  .control-rail{border-radius:22px}
  .knowledge-map{min-height:760px}
  .question-node{top:43%;width:210px;min-height:150px}
  .lens-node{width:142px;padding:12px}
  .map-detail{left:12px;right:12px;bottom:12px;grid-template-columns:1fr;gap:10px}
}
@media(prefers-reduced-motion:reduce){
  .map-lines line{animation:none}
  .lens-node,.control-button{transition:none!important}
}
