  :root{
    --pitch-dark:#e9eee7;
    --pitch-mid:#f7f3e8;
    --pitch-deep:#dce7dd;
    --pitch-line:rgba(24,72,52,.16);
    --paper:#f3ebd4;
    --paper-2:#e9dcb8;
    --ink:#1f1810;
    --ink-soft:#5a4e3c;
    --gold:#d4a84b;
    --gold-soft:#e8cd93;
    --gold-dim:rgba(212,168,75,.22);
    --red:#9e2b2e;
    --red-soft:#e4bdbb;
    --green-ok:#3d6b4a;
    --shadow:0 24px 48px rgba(29,50,39,.22);
    --shadow-soft:0 10px 24px rgba(29,50,39,.18);
    --display:'Oswald',"Arial Narrow",sans-serif;
    --body:'Lora',Georgia,"Times New Roman",serif;
    --mono:'IBM Plex Mono',"Courier New",monospace;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    min-height:100vh;
    font-family:var(--body);
    color:#173d2d;
    background:
      radial-gradient(ellipse 90% 55% at 12% -8%, rgba(255,255,255,.9), transparent 52%),
      radial-gradient(ellipse 70% 40% at 95% 5%, rgba(212,168,75,.13), transparent 45%),
      radial-gradient(ellipse 80% 50% at 50% 110%, rgba(32,91,62,.10), transparent 55%),
      linear-gradient(165deg, var(--pitch-deep) 0%, var(--pitch-dark) 38%, var(--pitch-mid) 72%, #0a241c 100%);
    line-height:1.6;
    position:relative;
  }
  body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    background-image:
      linear-gradient(rgba(232,205,147,.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(232,205,147,.03) 1px, transparent 1px);
    background-size:48px 48px;
    mask-image:radial-gradient(ellipse 85% 70% at 50% 40%, black 20%, transparent 75%);
    opacity:.28;
    z-index:0;
  }
  .wrap{
    position:relative;
    z-index:1;
    max-width:1120px;
    margin:0 auto;
    padding:32px 24px 82px;
  }

  /* topo */
  .brand{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    padding:4px 2px 22px;
    border-bottom:1px solid var(--pitch-line);
    margin-bottom:12px;
  }
  .global-signature-line{margin:0 2px 34px;text-align:right;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.025em;color:#355547}
  .global-signature{display:inline;margin:0;padding:0;border:0;background:transparent;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}
  .global-signature:hover{color:#173d2d}
  .global-signature:focus-visible{outline:2px solid rgba(122,87,33,.62);outline-offset:5px;border-radius:3px}
  .brand-name{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#7a5721;
  }
  .brand-title{
    font-family:var(--display);
    font-size:clamp(24px,3.6vw,34px);
    font-weight:700;
    letter-spacing:.02em;
    color:#123b29;
    margin-top:4px;
    text-shadow:0 2px 0 rgba(255,255,255,.75);
  }
  .brand-sub{
    font-family:var(--mono);
    font-size:11px;
    color:#597064;
    margin-top:5px;
  }

  /* passos */
  .steps{
    display:flex;
    gap:0;
    list-style:none;
    margin:0;
    padding:0;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.07em;
    text-transform:uppercase;
    flex-wrap:wrap;
  }
  .steps li{
    color:#829087;
    padding:6px 14px 6px 0;
    position:relative;
    transition:color .25s ease;
  }
  .steps li.done{color:#8b682d}
  .steps li.current{
    color:#173d2d;
    font-weight:600;
  }
  .steps li:not(:last-child)::after{
    content:"›";
    margin-left:12px;
    color:#9ca79f;
  }

  /* telas */
  .screen{display:none;animation:fadeUp .55s cubic-bezier(.22,1,.36,1) both}
  .screen.active{display:block;padding:12px 0 30px}
  @keyframes fadeUp{
    from{opacity:0;transform:translateY(14px)}
    to{opacity:1;transform:translateY(0)}
  }
  @media (prefers-reduced-motion:reduce){.screen{animation:none}}

  .kicker{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:#91671e;
    margin-bottom:12px;
  }
  h1.case-title{
    font-family:var(--display);
    font-size:clamp(30px,5.2vw,48px);
    font-weight:700;
    margin:0 0 16px;
    color:#123b29;
    letter-spacing:.01em;
    line-height:1.12;
    text-shadow:0 2px 0 rgba(255,255,255,.75);
  }
  h2.section-title{
    font-family:var(--display);
    font-size:clamp(21px,3.1vw,28px);
    font-weight:600;
    margin:0 0 14px;
    color:#173d2d;
    letter-spacing:.01em;
  }
  p.lede{
    font-size:clamp(16px,2.1vw,18.5px);
    color:#304b3e;
    max-width:62ch;
    margin:0 0 12px;
  }
  p.lede + p.lede{margin-top:14px}

  .identity-quote{
    font-family:var(--body);
    font-style:italic;
    font-size:clamp(16.5px,2.3vw,20px);
    color:#76521a;
    border-left:3px solid var(--gold);
    padding:4px 0 4px 20px;
    margin:28px 0;
    max-width:56ch;
    background:linear-gradient(90deg, rgba(212,168,75,.18), transparent 85%);
  }
  .identity-quote cite{
    display:block;
    margin-top:10px;
    font-style:normal;
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:.09em;
    color:#61756a;
  }

  .btn{
    font-family:var(--display);
    font-weight:600;
    letter-spacing:.03em;
    font-size:15px;
    border:0;
    cursor:pointer;
    padding:15px 28px;
    border-radius:10px;
    border:1px solid #785918;
    background:linear-gradient(180deg, #f5d987 0%, #d6a73d 55%, #b88423 100%);
    color:#241903;
    box-shadow:
      inset 0 2px 0 rgba(255,255,255,.65),
      inset 0 -3px 0 rgba(98,65,8,.22),
      0 5px 0 #715214,
      0 10px 22px rgba(36,60,47,.22);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
  }
  .btn:hover{
    transform:translateY(-2px);
    filter:brightness(1.06);
    box-shadow:inset 0 2px 0 rgba(255,255,255,.7),inset 0 -3px 0 rgba(98,65,8,.18),0 7px 0 #715214,0 15px 28px rgba(36,60,47,.25);
  }
  .btn:active{transform:translateY(4px);filter:brightness(.97);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(98,65,8,.2),0 1px 0 #715214,0 5px 10px rgba(36,60,47,.18)}
  .btn.attention{animation:decisionPulse 1.4s ease-in-out 2}
  @keyframes decisionPulse{50%{transform:translateY(-3px) scale(1.025);filter:brightness(1.1);box-shadow:inset 0 2px 0 rgba(255,255,255,.75),inset 0 -3px 0 rgba(98,65,8,.18),0 8px 0 #715214,0 18px 30px rgba(181,128,32,.36)}}
  .btn.ghost{
    background:linear-gradient(180deg,#ffffff 0%,#e8eee9 62%,#ccd8cf 100%);
    color:#234735;
    border:1px solid #81978a;
    box-shadow:inset 0 2px 0 rgba(255,255,255,.9),inset 0 -3px 0 rgba(39,72,53,.12),0 5px 0 #6e8577,0 10px 20px rgba(36,60,47,.16);
    filter:none;
  }
  .btn.ghost:hover{
    background:linear-gradient(180deg,#fff 0%,#eef3ef 62%,#d6e0d8 100%);
    border-color:#607d6c;
    box-shadow:inset 0 2px 0 #fff,inset 0 -3px 0 rgba(39,72,53,.1),0 7px 0 #6e8577,0 14px 24px rgba(36,60,47,.19);
  }
  .btn:disabled{opacity:.32;cursor:not-allowed;transform:none;filter:none}
  .btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

  /* seleção temática */
  .theme-intro{max-width:68ch;margin-bottom:26px}
  .theme-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    max-width:850px;
    margin-top:28px;
  }
  .theme-btn{
    min-height:118px;
    text-align:left;
    padding:22px 24px;
    border-radius:14px;
    border:1px solid #315f48;
    border-left:7px solid #bd8828;
    color:#163b2b;
    cursor:pointer;
    background:linear-gradient(145deg,#ffffff 0%,#f5f8f3 48%,#dce9df 100%);
    box-shadow:inset 0 2px 0 #fff,inset 0 -4px 0 rgba(25,74,48,.14),-7px 5px 0 #668575,-18px 15px 30px rgba(32,66,48,.19);
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
    position:relative;
    overflow:hidden;
  }
  .theme-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.68),transparent 34%,transparent 70%,rgba(17,58,38,.08));pointer-events:none}
  .theme-btn::before{content:"";position:absolute;right:-48px;bottom:-58px;width:126px;height:126px;border-radius:50%;border:1px solid rgba(190,137,40,.34);background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.95) 0%,rgba(247,230,188,.44) 32%,rgba(214,170,79,.18) 61%,rgba(214,170,79,.04) 72%);box-shadow:0 0 24px rgba(212,168,75,.24),inset 0 0 24px rgba(255,255,255,.8);z-index:0;pointer-events:none}
  .theme-btn:hover{transform:translateY(-4px);filter:brightness(1.02);box-shadow:inset 0 2px 0 #fff,inset 0 -4px 0 rgba(25,74,48,.12),-10px 7px 0 #587766,-24px 19px 38px rgba(32,66,48,.23)}
  .theme-btn:active{transform:translateY(5px);box-shadow:inset 0 2px 0 #fff,inset 0 -2px 0 rgba(25,74,48,.15),0 2px 0 #587766,0 8px 14px rgba(32,66,48,.16)}
  .theme-name{display:block;font-family:var(--display);font-size:24px;font-weight:600;letter-spacing:.02em;position:relative;z-index:1}
  .theme-desc{display:block;margin-top:7px;font-family:var(--body);font-size:14.5px;font-weight:500;color:#354f41;line-height:1.45;position:relative;z-index:1}
  @media(max-width:620px){.theme-grid{grid-template-columns:1fr}.theme-btn{min-height:100px}}

  /* nível de investigação */
  .level-context{display:inline-flex;align-items:center;gap:8px;margin:2px 0 20px;padding:7px 12px;border:1px solid rgba(122,87,33,.28);border-radius:999px;background:rgba(255,254,250,.68);font-family:var(--mono);font-size:10.5px;font-weight:600;color:#72521c}
  .level-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:900px;margin-top:24px}
  .level-btn{min-height:235px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:24px;border:1px solid #315f48;border-left:7px solid #bd8828;border-radius:14px;color:#163b2b;cursor:pointer;background:linear-gradient(145deg,#fff 0%,#f5f8f3 48%,#dce9df 100%);box-shadow:inset 0 2px 0 #fff,inset 0 -4px 0 rgba(25,74,48,.14),-7px 5px 0 #668575,-18px 15px 30px rgba(32,66,48,.19);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;position:relative;overflow:hidden}
  .level-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(125deg,rgba(255,255,255,.68),transparent 34%,transparent 70%,rgba(17,58,38,.08));pointer-events:none}
  .level-btn:hover{transform:translateY(-4px);filter:brightness(1.02);box-shadow:inset 0 2px 0 #fff,inset 0 -4px 0 rgba(25,74,48,.12),-10px 7px 0 #587766,-24px 19px 38px rgba(32,66,48,.23)}
  .level-badge,.level-name,.level-copy,.level-emphasis{position:relative;z-index:1}
  .level-badge{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#78591f}
  .level-name{margin-top:9px;font-family:var(--display);font-size:25px;font-weight:600;line-height:1.15}
  .level-copy{margin-top:12px;font-family:var(--body);font-size:14.5px;font-weight:500;line-height:1.55;color:#354f41}
  .level-emphasis{margin-top:auto;padding-top:14px;font-family:var(--mono);font-size:11px;font-weight:600;color:#7a5215}
  @media(max-width:700px){.level-grid{grid-template-columns:1fr}.level-btn{min-height:205px}}

  /* cast */
  .cast{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:20px;
    margin:28px 0 8px;
  }
  .cast-card{
    background:linear-gradient(155deg, #fffdf6, #e7eee7);
    border:1px solid rgba(45,92,67,.25);
    border-left:7px solid #bd8828;
    border-radius:10px;
    padding:16px 17px;
    box-shadow:-6px 4px 0 #9baca0,-16px 13px 26px rgba(38,67,50,.16),inset 0 1px 0 #fff;
    transform:perspective(800px) rotateX(1deg);
    transition:border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
    position:relative;
    overflow:hidden;
  }
  .cast-card::before,.clue::before,.decision-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.11),transparent 30%,transparent 70%,rgba(0,0,0,.2));opacity:.7}
  .cast-card::after,.clue::after,.decision-card::after,.axis::after,.comparison-card::after,.cost-card::after,.tension-card::after{content:"";position:absolute;right:-48px;bottom:-58px;width:126px;height:126px;border-radius:50%;border:1px solid rgba(190,137,40,.34);background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.95) 0%,rgba(247,230,188,.44) 32%,rgba(214,170,79,.18) 61%,rgba(214,170,79,.04) 72%);box-shadow:0 0 24px rgba(212,168,75,.24),inset 0 0 24px rgba(255,255,255,.8);z-index:0;pointer-events:none}
  .cast-card > *,.clue > *,.decision-card > *,.axis > *,.comparison-card > *,.cost-card > *,.tension-card > *{position:relative;z-index:1}
  .cast-card:hover{
    border-color:rgba(45,92,67,.48);
    background:linear-gradient(155deg, #ffffff, #dae7dd);
    transform:perspective(800px) translateY(-4px) rotateX(2deg);
    box-shadow:-9px 6px 0 #869b8e,-22px 18px 34px rgba(38,67,50,.22),inset 0 1px 0 #fff;
  }
  .cast-role{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#7e5d20;
    opacity:.75;
  }
  .cast-name{
    font-family:var(--display);
    font-size:18px;
    font-weight:600;
    margin-top:5px;
    letter-spacing:.02em;
  }
  .cast-desc{
    font-size:13.5px;
    color:#354f41;
    font-weight:500;
    margin-top:7px;
    line-height:1.45;
  }

  /* investigação */
  .investig-layout{
    display:grid;
    grid-template-columns:1.12fr .88fr;
    gap:24px;
    align-items:start;
    margin-top:24px;
  }
  @media (max-width:900px){.investig-layout{grid-template-columns:1fr}}

  .clue-list{display:flex;flex-direction:column;gap:18px}
  .source-panel{min-width:0}
  .source-heading{margin:0 0 5px;font-family:var(--display);font-size:20px;font-weight:600;color:#173d2d}
  .source-guidance{margin:0 0 14px;color:#4f6659;font-size:13.5px;line-height:1.5}
  .investigation-meter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 12px;border:1px solid rgba(122,87,33,.24);border-radius:9px;background:rgba(255,254,250,.72);font-family:var(--mono);font-size:10.5px;color:#72521c}
  .investigation-meter b{color:#173d2d}
  .limit-notice{margin:16px 0 0;padding:13px 15px;border:1px solid rgba(158,43,46,.28);border-left:5px solid var(--red);border-radius:8px;background:linear-gradient(135deg,#fffaf0,#f4e7cc);color:#523b20;font-size:13px;line-height:1.5;box-shadow:0 8px 18px rgba(56,44,25,.1)}
  .limit-notice strong{display:block;margin-bottom:2px;color:#7a2729;font-family:var(--display);font-size:15px}
  .limit-notice[hidden]{display:none}
  .clue{
    text-align:left;
    width:100%;
    background:linear-gradient(155deg,#fffdf7,#e5ede7);
    border:1px solid rgba(45,92,67,.25);
    border-left:7px solid #bd8828;
    border-radius:10px;
    padding:17px 19px;
    color:#173d2d;
    cursor:pointer;
    transition:border-color .2s ease, background .2s ease, transform .18s ease, box-shadow .18s ease;
    font-family:var(--body);
    box-shadow:-6px 4px 0 #94a79a,-15px 12px 22px rgba(38,67,50,.14),inset 0 1px 0 #fff;
    position:relative;
    overflow:hidden;
  }
  .clue:hover{
    border-color:rgba(212,168,75,.45);
    background:linear-gradient(155deg,#ffffff,#dce9df);
    transform:translateY(-3px);
    box-shadow:-9px 6px 0 #849a8c,-21px 17px 28px rgba(38,67,50,.2),inset 0 1px 0 #fff;
  }
  .clue.unlocked{
    border-color:rgba(61,107,74,.55);
    background:linear-gradient(155deg,#f9fff9,#d9eadc);
    transform:translateY(3px);
    box-shadow:-3px 2px 0 #76907f,-8px 7px 15px rgba(38,67,50,.14),inset 0 2px 4px rgba(35,77,52,.08);
  }
  .clue.locked{cursor:pointer;filter:saturate(.45);background:linear-gradient(155deg,#eef0ec,#cfd5d0);border-color:#849088;color:#536058}
  .clue.locked:hover{transform:none;filter:saturate(.52);box-shadow:-6px 4px 0 #8e9991,-15px 12px 22px rgba(38,67,50,.14),inset 0 1px 0 #fff}
  .clue.locking{animation:lockButton .52s cubic-bezier(.22,1,.36,1) both}
  @keyframes lockButton{0%{transform:translateY(0) scale(1)}45%{transform:translateY(3px) scale(.97)}72%{transform:translateY(-2px) scale(1.015)}100%{transform:translateY(0) scale(1)}}
  .clue-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .clue-style{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#78591f;
  }
  .clue-check{
    font-family:var(--mono);
    font-size:10.5px;
    color:#7aab84;
    opacity:0;
    transition:.25s opacity;
  }
  .clue.unlocked .clue-check{opacity:1}
  .clue-title{
    font-family:var(--display);
    font-size:17px;
    font-weight:600;
    margin-top:7px;
    letter-spacing:.01em;
  }
  .clue-feedback{display:none;margin-top:10px;padding-top:9px;border-top:1px solid var(--pitch-line);font-family:var(--mono);font-size:10.5px;line-height:1.45;color:#3d6b4a}
  .clue.unlocked .clue-feedback{display:block}
  .clue-locked-copy{display:none;margin-top:9px;font-family:var(--mono);font-size:10px;font-weight:600;color:#6b3435}
  .clue.locked .clue-locked-copy{display:block}
  .lock-overlay{position:absolute!important;z-index:4!important;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;pointer-events:none;background:linear-gradient(135deg,rgba(236,239,235,.24),rgba(54,68,60,.16));backdrop-filter:blur(.7px)}
  .lock-overlay-label{padding:3px 8px;border-radius:999px;background:rgba(255,254,250,.9);color:#6b3435;font-family:var(--mono);font-size:9.5px;font-weight:600;box-shadow:0 2px 7px rgba(31,44,36,.18)}
  .lock-icon{width:48px;height:56px;filter:drop-shadow(0 7px 6px rgba(23,36,29,.38));animation:lockDrop .5s cubic-bezier(.2,1.5,.45,1) both;transform-origin:center}
  @keyframes lockDrop{from{opacity:0;transform:translateY(-22px) scale(.7) rotate(-8deg)}to{opacity:1;transform:translateY(-2px) scale(1) rotate(0)}}
  .lock-icon .lock-shackle{fill:none;stroke-width:5;stroke-linecap:round}
  .lock-icon .lock-body{stroke:#6f4a0e;stroke-width:1.2}
  .lock-icon .lock-shine{fill:rgba(255,255,255,.55)}
  .lock-icon .lock-hole{fill:#49330f}
  .lock-icon.is-open .lock-shackle{transform-origin:15px 28px;animation:unlockShackle .75s cubic-bezier(.2,1.3,.35,1) both}
  @keyframes unlockShackle{from{transform:translate(0,0) rotate(0)}to{transform:translate(8px,-4px) rotate(24deg)}}
  .lock-overlay.inline-lock{position:static!important;display:inline-grid;float:left;inset:auto;width:38px;margin:-4px 9px 2px -4px;background:none;backdrop-filter:none}
  .lock-overlay.inline-lock .lock-icon{width:31px;height:37px;filter:drop-shadow(0 4px 3px rgba(23,36,29,.3))}

  /* caderno */
  .notebook{
    background:#fffefa;
    color:var(--ink);
    border:1px solid #e2ded3;
    border-radius:4px;
    padding:24px 22px 20px;
    box-shadow:
      inset 0 1px 0 #fff,
      inset 0 0 34px rgba(86,74,49,.025),
      0 5px 0 rgba(77,91,82,.18),
      0 22px 42px rgba(29,50,39,.20);
    position:relative;
    overflow:hidden;
    background-image:
      repeating-linear-gradient(
        180deg,
        transparent,
        transparent 27px,
        rgba(76,104,137,.105) 27px,
        rgba(76,104,137,.105) 28px
      );
  }
  .notebook::before{
    content:"";
    position:absolute;
    left:0;top:0;bottom:0;
    width:5px;
    background:repeating-linear-gradient(
      180deg,
      var(--red) 0 9px,
      transparent 9px 18px
    );
    opacity:.5;
  }
  .notebook::after{
    content:"";
    position:absolute;
    right:-30px;top:-30px;
    width:90px;height:90px;
    background:radial-gradient(circle, rgba(158,43,46,.025), transparent 70%);
    pointer-events:none;
  }
  .notebook-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding-left:14px;
  }
  @media (max-width:480px){
    .notebook{padding:20px 16px 18px}
    .notebook-head{gap:18px;flex-direction:column}
    .stamp{align-self:flex-end;margin-top:-8px;font-size:12px}
    .btn-row .btn{width:100%}
  }
  .notebook-title{
    font-family:var(--display);
    font-size:20px;
    font-weight:600;
    color:var(--ink);
    letter-spacing:.01em;
  }
  .notebook-sub{
    font-family:var(--mono);
    font-size:10.5px;
    color:var(--ink-soft);
    margin-top:4px;
  }
  .stamp{
    font-family:var(--mono);
    font-size:13px;
    font-weight:600;
    letter-spacing:.12em;
    border:3px double var(--red);
    color:var(--red);
    padding:7px 15px 6px;
    border-radius:4px 3px 5px 2px;
    transform:rotate(-6deg) skewX(-1deg);
    white-space:nowrap;
    opacity:.9;
    position:relative;
    text-shadow:1px 0 rgba(158,43,46,.2),-1px 1px rgba(158,43,46,.12);
    box-shadow:inset 0 0 0 1px rgba(158,43,46,.18),0 1px 0 rgba(158,43,46,.16);
    filter:contrast(1.08);
  }
  .stamp::after{
    content:"";
    position:absolute;
    inset:-3px;
    pointer-events:none;
    border-radius:inherit;
    background:repeating-linear-gradient(102deg,transparent 0 5px,rgba(243,235,212,.34) 5px 6px,transparent 6px 11px);
    mix-blend-mode:screen;
    opacity:.52;
  }
  .stamp.closed{
    border-color:var(--green-ok);
    color:var(--green-ok);
  }
  .notebook-body{
    padding-left:14px;
    margin-top:16px;
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .nb-section-label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .nb-entries{margin-top:6px;display:flex;flex-direction:column;gap:7px}
  .nb-entry{
    font-size:13.8px;
    color:var(--ink);
    padding-left:14px;
    position:relative;
    line-height:1.45;
    animation:fadeUp .35s ease both;
  }
  .nb-entry::before{
    content:"—";
    position:absolute;
    left:0;
    color:var(--ink-soft);
  }
  .nb-empty{
    font-size:13px;
    color:var(--ink-soft);
    font-style:italic;
  }
  .nb-entry.revealed-after{padding:11px 13px 11px 29px;border:1px solid rgba(189,136,40,.3);border-radius:7px;background:rgba(247,230,188,.23)}
  .nb-entry.revealed-after::before{content:"↳";left:11px;color:#9a6819}
  .nb-origin{display:block;margin-bottom:4px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#7a5721}
  .nb-locked-entry{min-height:58px;display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px dashed rgba(86,100,91,.42);border-radius:7px;background:rgba(224,228,224,.56);color:#69746d;font-family:var(--mono);font-size:10.5px;position:relative;overflow:visible}
  .nb-locked-entry .lock-icon{width:33px;height:39px;flex:0 0 auto}
  .nb-locked-entry .lock-overlay{position:static!important;display:block;background:none;backdrop-filter:none;inset:auto}

  .final-investigation[hidden]{display:none}
  .final-investigation .notebook{margin-top:14px}
  .final-reflection{margin:20px 0 0;padding:16px 18px;border-left:4px solid var(--gold);border-radius:0 9px 9px 0;background:linear-gradient(90deg,rgba(212,168,75,.18),rgba(255,254,250,.72));color:#513c21;font-size:15px;line-height:1.6}
  .final-reflection strong{display:block;margin-bottom:4px;color:#76521a;font-family:var(--display);font-size:17px}

  /* decisão */
  .decision-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
    gap:22px;
    margin-top:24px;
  }
  .decision-card{
    text-align:left;
    background:linear-gradient(155deg,#fffdf7,#e2ebe4);
    border:1px solid rgba(45,92,67,.27);
    border-left:7px solid #bd8828;
    border-radius:11px;
    padding:22px 20px;
    color:#173d2d;
    cursor:pointer;
    transition:.22s ease;
    font-family:var(--body);
    box-shadow:-7px 5px 0 #8fa397,-18px 15px 28px rgba(38,67,50,.16),inset 0 1px 0 #fff;
    position:relative;
    overflow:hidden;
  }
  .decision-card:hover{
    border-color:rgba(212,168,75,.5);
    transform:translateY(-5px) scale(1.01);
    box-shadow:-10px 7px 0 #7f9688,-24px 20px 38px rgba(38,67,50,.22),inset 0 1px 0 #fff;
    background:linear-gradient(155deg,#ffffff,#d7e7dc);
  }
  .decision-letter{
    font-family:var(--mono);
    font-size:10.5px;
    color:#7b591a;
    letter-spacing:.12em;
  }
  .decision-title{
    font-family:var(--display);
    font-size:19px;
    font-weight:600;
    margin:8px 0 10px;
    letter-spacing:.015em;
  }
  .decision-desc{
    font-size:14.2px;
    color:#52665b;
    line-height:1.5;
  }

  /* consequência */
  .consequence-box{
    background:linear-gradient(135deg,#fffdf7,#e8eee9);
    border-left:3px solid var(--gold);
    border-radius:0 8px 8px 0;
    padding:22px 24px;
    margin-top:20px;
    max-width:68ch;
    font-size:16.5px;
    line-height:1.6;
    color:#304b3e;
    box-shadow:0 8px 22px rgba(38,67,50,.13);
  }

  /* tensão ética */
  .tension-card{max-width:820px;margin-top:32px;padding:30px 30px 28px;border:1px solid rgba(45,92,67,.28);border-left:7px solid #bd8828;border-radius:14px;background:linear-gradient(145deg,#fff,#f2f6f2 52%,#e0eae2);box-shadow:inset 0 2px 0 #fff,inset 0 -4px 0 rgba(25,74,48,.1),-8px 6px 0 #80988b,-21px 18px 34px rgba(32,66,48,.18);position:relative;overflow:hidden}
  .tension-poles{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:end;margin-bottom:18px}
  .tension-pole{font-family:var(--display);font-size:20px;font-weight:600;color:#123b29}
  .tension-pole:last-child{text-align:right}
  .tension-center{font-family:var(--mono);font-size:10px;color:#66796d;text-transform:uppercase;letter-spacing:.08em}
  .tension-range{width:100%;height:34px;cursor:pointer;appearance:none;-webkit-appearance:none;background:transparent}
  .tension-range::-webkit-slider-runnable-track{height:12px;border-radius:999px;background:linear-gradient(90deg,#b7872d 0%,#e2d4aa 50%,#2e7653 100%);box-shadow:inset 0 2px 3px rgba(22,55,38,.24),0 1px 0 #fff}
  .tension-range::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-9px;border-radius:50%;border:2px solid #fff;background:linear-gradient(145deg,#3f8b63,#14543a);box-shadow:inset 3px 3px 5px rgba(255,255,255,.35),inset -4px -4px 6px rgba(4,40,24,.3),0 3px 0 #0d3b29,0 7px 14px rgba(27,60,43,.3)}
  .tension-range::-moz-range-track{height:12px;border-radius:999px;background:linear-gradient(90deg,#b7872d 0%,#e2d4aa 50%,#2e7653 100%);box-shadow:inset 0 2px 3px rgba(22,55,38,.24)}
  .tension-range::-moz-range-thumb{width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:linear-gradient(145deg,#3f8b63,#14543a);box-shadow:inset 3px 3px 5px rgba(255,255,255,.35),0 3px 0 #0d3b29,0 7px 14px rgba(27,60,43,.3)}
  .tension-scale{display:flex;justify-content:space-between;margin-top:8px;font-family:var(--mono);font-size:10px;color:#52685b}
  .tension-choice{text-align:center;margin-top:18px;font-family:var(--mono);font-size:12px;font-weight:600;color:#173d2d;text-transform:uppercase;letter-spacing:.05em}
  .comparison{display:none;max-width:820px;margin-top:34px;grid-template-columns:1fr 1fr;gap:24px}
  .comparison.visible{display:grid}
  .comparison-card{padding:22px 23px;border-radius:11px;background:#fffefa;border:1px solid #b7c6bc;border-left:7px solid #bd8828;box-shadow:-6px 4px 0 #98aa9e,-16px 13px 22px rgba(38,67,50,.13);position:relative;overflow:hidden}
  .comparison-label{font-family:var(--mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#72521c}
  .comparison-value{margin-top:7px;font-family:var(--display);font-size:18px;font-weight:600;color:#173d2d}
  .comparison-note{margin-top:8px;font-size:13.5px;font-weight:500;color:#40584b;line-height:1.5}
  @media(max-width:620px){.tension-card{padding:21px 17px}.tension-poles{gap:8px}.tension-pole{font-size:17px}.comparison.visible{grid-template-columns:1fr}}

  /* leitura ética */
  .final-reading-stack{display:grid;gap:25px;margin-top:28px}
  .reading-section{
    position:relative;
    overflow:hidden;
    padding:25px 26px 27px;
    border:1px solid rgba(45,92,67,.25);
    border-left:7px solid #bd8828;
    border-radius:12px;
    background:linear-gradient(155deg,#fffdf7,#e3ebe5);
    box-shadow:-7px 5px 0 #95a79b,-18px 14px 28px rgba(38,67,50,.14),inset 0 1px 0 #fff;
  }
  .reading-section::after{
    content:"";
    position:absolute;
    right:-58px;
    bottom:-68px;
    width:145px;
    height:145px;
    border-radius:50%;
    border:1px solid rgba(190,137,40,.22);
    background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.72) 0%,rgba(247,230,188,.24) 34%,rgba(214,170,79,.1) 62%,rgba(214,170,79,.02) 74%);
    box-shadow:0 0 28px rgba(212,168,75,.14),inset 0 0 24px rgba(255,255,255,.5);
    pointer-events:none;
  }
  .reading-section > *{position:relative;z-index:1}
  .reading-section-heading{margin:0 0 18px;font-family:var(--display);font-size:21px;font-weight:600;color:#173d2d;letter-spacing:.01em}
  .reading-overview .reading-section-heading{font-size:27px;margin-bottom:10px}
  .reading-overview .lede{margin:0;max-width:72ch}

  #axesContainer{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
  #axesContainer .axis:nth-child(-n+3){grid-column:span 2}
  #axesContainer .axis:nth-child(n+4){grid-column:span 3}
  @media (max-width:760px){
    #axesContainer{grid-template-columns:repeat(2,minmax(0,1fr))}
    #axesContainer .axis:nth-child(n){grid-column:span 1}
    #axesContainer .axis:last-child{grid-column:1/-1}
  }
  @media (max-width:560px){
    .final-reading-stack{gap:20px}
    .reading-section{padding:21px 18px 23px}
    #axesContainer{grid-template-columns:1fr}
    #axesContainer .axis:nth-child(n),#axesContainer .axis:last-child{grid-column:1}
  }
  .axis{
    margin:0;
    min-height:146px;
    padding:17px 16px;
    border-radius:10px;
    background:linear-gradient(155deg,#fffdf7,#e3ebe5);
    border:1px solid rgba(45,92,67,.25);
    border-left:7px solid #bd8828;
    box-shadow:-6px 4px 0 #95a79b,-16px 13px 26px rgba(38,67,50,.14),inset 0 1px 0 #fff;
    position:relative;
    overflow:hidden;
  }
  .axis::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(128deg,rgba(255,255,255,.1),transparent 34%,transparent 70%,rgba(0,0,0,.16))}
  .axis-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    font-family:var(--display);
    font-size:15.5px;
    font-weight:600;
    letter-spacing:.01em;
  }
  .axis-desc{
    font-size:13px;
    color:#3f574b;
    font-weight:500;
    margin-top:3px;
    max-width:50ch;
  }
  .axis-track{display:flex;gap:5px;margin-top:13px}
  .axis-seg{
    flex:1;
    height:10px;
    border-radius:999px;
    background:#ced9d1;
  }
  .axis-seg.on{
    background:linear-gradient(180deg, #e0b85a, var(--gold));
    box-shadow:0 0 12px rgba(212,168,75,.34),inset 0 1px 0 rgba(255,255,255,.25);
  }
  .axis-seg.selected{transform:scaleY(1.45);box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(41,76,57,.34)}
  .axis-seg.negative{background:linear-gradient(180deg,#d98e88,#a9433f)}
  .axis-seg.neutral{background:linear-gradient(180deg,#d6cba9,#a99b72)}
  .axis-seg.positive{background:linear-gradient(180deg,#75b18a,#397453)}
  .axis-reading{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:center;
    margin-top:12px;
    font-family:var(--mono);
    font-size:10.5px;
    color:#496054;
  }
  .axis-quality{font-weight:600;color:#684b16;text-transform:uppercase;letter-spacing:.04em}
  .scale-legend{font-family:var(--mono);font-size:10.5px;color:#63756b;margin:0 0 15px;line-height:1.55}

  .badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
  .badge{
    font-family:var(--mono);
    font-size:11.5px;
    letter-spacing:.07em;
    text-transform:uppercase;
    border:1px solid #446b57;
    color:#102f22;
    padding:8px 15px;
    border-radius:9px;
    background:linear-gradient(180deg,#ffffff 0%,#f1f6f2 58%,#dce8df 100%);
    box-shadow:inset 0 2px 0 #fff,inset 0 -2px 0 rgba(33,76,53,.12),-4px 3px 0 #698577,-10px 8px 16px rgba(38,67,50,.16);
    font-weight:600;
    position:relative;
    overflow:hidden;
  }
  .badge::before{content:none}

  .cost-card{
    background:linear-gradient(165deg, #f7f0dc, var(--paper));
    color:var(--ink);
    border-radius:6px;
    border-left:7px solid #bd8828;
    padding:20px 22px;
    margin-top:8px;
    box-shadow:-6px 4px 0 #c8b991,-16px 13px 26px rgba(38,67,50,.14);
    position:relative;
    overflow:hidden;
  }
  .cost-label{
    font-family:var(--mono);
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--red);
  }
  .cost-text{
    font-size:14.5px;
    margin-top:8px;
    line-height:1.5;
  }

  .choice-summary{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:24px;align-items:stretch}
  .summary-facts{display:grid;gap:12px}
  .summary-item{padding:14px 16px;border-radius:8px;background:rgba(255,254,250,.76);border:1px solid rgba(45,92,67,.18);border-left:4px solid #6b8b79}
  .summary-label{font-family:var(--mono);font-size:9.8px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:#72521c}
  .summary-value{margin-top:6px;font-family:var(--display);font-size:17px;font-weight:600;color:#173d2d;line-height:1.35}
  .choice-summary .cost-card{margin:0;min-height:100%;display:flex;flex-direction:column;justify-content:center}
  @media(max-width:760px){.choice-summary{grid-template-columns:1fr}}

  .reading-process .comparison{max-width:none;margin-top:0}

  .echo-box{
    padding:21px 23px 24px;
  }
  .echo-heading{
    position:relative;
    display:flex;
    width:100%;
    align-items:center;
    justify-content:center;
    min-height:54px;
    padding:15px 58px;
    border:1px solid #785918;
    border-radius:10px;
    background:linear-gradient(180deg,#f5d987 0%,#d6a73d 55%,#b88423 100%);
    color:#241903;
    box-shadow:inset 0 2px 0 rgba(255,255,255,.65),inset 0 -3px 0 rgba(98,65,8,.22),0 5px 0 #715214,0 10px 22px rgba(36,60,47,.22);
    text-align:center;
    cursor:pointer;
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
  }
  .echo-heading:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:inset 0 2px 0 rgba(255,255,255,.7),inset 0 -3px 0 rgba(98,65,8,.18),0 7px 0 #715214,0 15px 28px rgba(36,60,47,.25)}
  .echo-heading:active{transform:translateY(4px);filter:brightness(.97);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(98,65,8,.2),0 1px 0 #715214,0 5px 10px rgba(36,60,47,.18)}
  .echo-heading .reading-section-heading{width:100%;margin:0;color:#241903;text-align:center}
  .echo-symbol{position:absolute;right:23px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:22px;font-weight:600;color:#241903;line-height:1}
  .echo-text{
    margin-top:18px;
    color:#304b3e;
    font-style:italic;
    font-size:16px;
    line-height:1.6;
    padding:16px 18px;
    background:#fffdf7;
    border-radius:6px;
    border-left:2px solid rgba(212,168,75,.4);
  }

  .footnote{
    margin-top:48px;
    padding-top:18px;
    border-top:1px solid var(--pitch-line);
    font-family:var(--mono);
    font-size:10.5px;
    color:#67796e;
    max-width:68ch;
    line-height:1.55;
  }
  .signature{margin-top:34px;padding-top:18px;border-top:1px solid var(--pitch-line);font-family:var(--mono);font-size:11px;font-weight:600;color:#345345;text-align:right;letter-spacing:.03em}
  .interpretar{
    margin-top:0;
    max-width:none;
    background:linear-gradient(155deg,#fffdf7,#e3ebe5);
    border:1px solid rgba(45,92,67,.25);
    border-left:7px solid #bd8828;
    border-radius:10px;
    box-shadow:-6px 4px 0 #95a79b,-16px 13px 26px rgba(38,67,50,.14),inset 0 1px 0 #fff;
    color:#263f33;
    overflow:hidden;
  }
  .interpretar summary{
    cursor:pointer;
    list-style:none;
    padding:17px 20px;
    font-family:var(--display);
    font-size:18px;
    font-weight:600;
    color:#173d2d;
  }
  .interpretar summary::-webkit-details-marker{display:none}
  .interpretar summary::after{content:"＋";float:right;color:#7a5721}
  .interpretar[open] summary::after{content:"−"}
  .interpretar-body{padding:0 20px 20px;border-top:1px solid rgba(45,92,67,.16);font-size:14.5px;line-height:1.58}
  .interpretar-body ul{padding-left:20px;margin:14px 0 0}
  .interpretar-body li{margin:7px 0}
  .next-actions .btn-row{margin-top:0}
  .next-actions .btn{min-width:210px}
  .final-reading-stack + .footnote{margin-top:45px}

  /* área reservada ao professor */
  .professor-modal[hidden]{display:none}
  .professor-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:22px;background:rgba(18,48,34,.54);backdrop-filter:blur(7px)}
  .professor-dialog{position:relative;width:min(100%,570px);max-height:calc(100vh - 44px);overflow:auto;padding:29px 30px 31px;border:1px solid rgba(45,92,67,.34);border-left:7px solid #bd8828;border-radius:13px;background:linear-gradient(155deg,#fffdf7,#e3ebe5);box-shadow:-8px 6px 0 #789081,-24px 22px 48px rgba(18,43,29,.34),inset 0 2px 0 #fff;color:#263f33}
  .professor-dialog::after{content:"";position:absolute;right:-58px;bottom:-70px;width:154px;height:154px;border-radius:50%;border:1px solid rgba(190,137,40,.3);background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.92) 0%,rgba(247,230,188,.4) 34%,rgba(214,170,79,.15) 62%,rgba(214,170,79,.03) 74%);box-shadow:0 0 28px rgba(212,168,75,.2),inset 0 0 24px rgba(255,255,255,.65);pointer-events:none}
  .professor-dialog > *{position:relative;z-index:1}
  .professor-close{position:absolute;top:14px;right:16px;z-index:2;width:36px;height:36px;padding:0;border:1px solid #81978a;border-radius:9px;background:linear-gradient(180deg,#fff 0%,#e8eee9 62%,#ccd8cf 100%);color:#234735;font-family:var(--mono);font-size:20px;font-weight:600;cursor:pointer;box-shadow:inset 0 2px 0 rgba(255,255,255,.9),inset 0 -2px 0 rgba(39,72,53,.12),0 3px 0 #6e8577}
  .professor-title{margin:5px 46px 8px 0;font-family:var(--display);font-size:26px;font-weight:600;color:#173d2d}
  .professor-copy{margin:0 0 20px;font-size:14.5px;line-height:1.55;color:#40584b}
  .professor-field{display:grid;gap:8px;margin-top:18px}
  .professor-label{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#72521c}
  .professor-password{width:100%;box-sizing:border-box;padding:13px 15px;border:1px solid #81978a;border-radius:9px;background:#fffefa;color:#173d2d;font-family:var(--mono);font-size:17px;letter-spacing:.14em;box-shadow:inset 0 2px 5px rgba(34,66,49,.12),0 2px 0 #fff}
  .professor-password:focus{outline:2px solid rgba(189,136,40,.5);outline-offset:2px}
  .professor-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
  .professor-status{min-height:22px;margin:14px 0 0;font-size:13px;font-weight:600;line-height:1.45;color:#52685b}
  .professor-status.error{color:#983c38}
  .professor-local-note{margin:18px 0 0;padding:12px 14px;border-left:4px solid #bd8828;border-radius:0 7px 7px 0;background:rgba(255,254,250,.72);font-size:13px;line-height:1.5;color:#40584b}
  #professorTools[hidden],#professorAuth[hidden]{display:none}
  @media(max-width:560px){.professor-modal{padding:15px}.professor-dialog{padding:25px 19px 27px}.professor-actions .btn,.professor-actions label.btn{width:100%;box-sizing:border-box;text-align:center}}
