  :root{
    --deep:#3f4a40; --deep2:#4c5a4e;
    --ink:#2c302c; --ink-soft:#6d6860; --ink-faint:#98a09a;
    --paper:#dae2db; --paper2:#ccd6ce; --card:#ffffff; --rule:#dfe4df;
    --sky:#cad8da; --sky-deep:#7f9aab; --accent:#5c7263;
    --good:#5f8256; --good-bg:#e7ecdc;
    --amber:#a17c3f; --amber-bg:#f1e8d3;
    --rose:#a5654d; --rose-bg:#f1e1d7;
    --shadow:0 1px 2px rgba(70,58,44,.04),0 10px 28px rgba(70,58,44,.05);
    --shadow-lg:0 6px 18px rgba(70,58,44,.06),0 26px 60px rgba(70,58,44,.09);
    --serif:'Fraunces',Georgia,'Times New Roman',serif;
    --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
  body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}
  .wrap{max-width:1400px;margin:0 auto;padding:0 28px 70px}

  /* HERO */
  .hero{background:linear-gradient(168deg,#eef2ee 0%,#f6f8f5 62%);border:1px solid var(--rule);border-radius:24px;padding:34px 38px;margin-top:24px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
  .hero::after{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;background:radial-gradient(circle,rgba(120,150,140,.16),transparent 68%);pointer-events:none}
  .hin{position:relative;z-index:1}
  .hero .top{display:flex;align-items:center;gap:18px}
  .hero img{height:70px;width:auto;display:block}
  .hero .eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:600}
  .hero h1{font-family:var(--serif);font-size:31px;font-weight:500;letter-spacing:-.01em;margin-top:4px;line-height:1.12;color:var(--ink)}
  .hero .lede{color:var(--ink-soft);font-size:15px;margin-top:14px;max-width:680px;line-height:1.62}
  .hero .lede b{color:var(--ink);font-weight:600}

  .journey{margin-top:30px}
  .journey .jlabel{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:16px}
  .steps{display:flex;position:relative}
  .steps::before{content:"";position:absolute;left:17px;right:17px;top:14px;height:2px;background:#d3dad3}
  .prog{position:absolute;left:17px;top:14px;height:2px;background:var(--good);border-radius:2px}
  .step{flex:1;text-align:center;position:relative;z-index:1}
  .step .dot{width:30px;height:30px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border:2px solid #d3cab8;background:var(--paper);color:var(--ink-faint);transition:.3s}
  .step.done .dot{background:var(--good);border-color:var(--good);color:#fff}
  .step.now .dot{background:var(--card);border-color:var(--deep);color:var(--deep);box-shadow:0 0 0 6px rgba(95,130,86,.16);transform:scale(1.1)}
  .step .lab{font-size:10.5px;color:var(--ink-faint);margin-top:10px;line-height:1.3;padding:0 3px}
  .step.done .lab{color:var(--ink-soft)}
  .step.now .lab{color:var(--ink);font-weight:600}
  .step .lab b{display:block;font-size:11px;font-weight:600}

  /* TABS */
  .tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 26px}
  .tab{background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:16px 16px 15px;cursor:pointer;text-align:left;transition:.2s;box-shadow:var(--shadow);color:var(--accent)}
  .tab:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
  .tab svg{width:22px;height:22px;stroke:var(--accent);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block}
  .tab .tt{font-family:var(--serif);font-weight:500;font-size:15px;margin-top:11px;color:var(--ink);letter-spacing:-.01em}
  .tab .ts{font-size:11px;color:var(--ink-faint);margin-top:2px}
  .tab.active{background:var(--deep);border-color:var(--deep);color:#fff}
  .tab.active svg{stroke:#cfe0c6}
  .tab.active .tt{color:#fff}
  .tab.active .ts{color:#b7c8ae}

  .panel{display:none;animation:fade .4s ease}
  .panel.show{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

  .card{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:26px 30px;margin-bottom:18px;box-shadow:var(--shadow)}
  .kicker{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:6px}
  h2.big{font-family:var(--serif);font-size:23px;font-weight:500;letter-spacing:-.01em;margin-bottom:12px;color:var(--ink);line-height:1.15}
  .intro{color:var(--ink-soft);font-size:15px;line-height:1.65}
  .intro b{color:var(--ink);font-weight:600}

  .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
  .stat{background:var(--card);border:1px solid var(--rule);border-radius:18px;padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}
  .stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--good)}
  .stat:nth-child(2)::before{background:var(--sky-deep)}
  .stat:nth-child(3)::before{background:var(--amber)}
  .stat .l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}
  .stat .v{font-family:var(--serif);font-size:26px;font-weight:500;margin-top:6px;color:var(--deep);letter-spacing:-.01em;line-height:1.05}
  .stat .n{font-size:12.5px;color:var(--ink-soft);margin-top:7px;line-height:1.5}

  .pillar{display:flex;gap:17px;padding:16px 0;border-bottom:1px solid var(--rule)}
  .pillar:last-child{border-bottom:none;padding-bottom:2px}
  .pillar:first-child{padding-top:2px}
  .pillar .pn{flex:0 0 38px;height:38px;border-radius:12px;background:var(--good-bg);color:var(--good);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:17px}
  .pillar .pt{font-weight:600;font-size:15.5px;color:var(--ink)}
  .pillar .pd{font-size:13.5px;color:var(--ink-soft);margin-top:2px;line-height:1.55}
  .pillar .pd b{color:var(--ink)}

  .sub{border:1px solid var(--rule);border-radius:18px;margin-bottom:13px;overflow:hidden;box-shadow:var(--shadow);transition:.2s;background:var(--card)}
  .sub.open{box-shadow:var(--shadow-lg)}
  .sub .head{display:flex;align-items:center;gap:16px;padding:18px 24px;cursor:pointer;transition:.15s}
  .sub .head:hover{background:#f3f6f3}
  .sub .rankbadge{flex:0 0 34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:16px;color:#fff}
  .sub .nm{font-family:var(--serif);font-weight:500;font-size:18px;flex:1;color:var(--ink);letter-spacing:-.01em}
  .sub .nm .tag{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-faint);font-weight:400;margin-top:2px}
  .sub .mini{display:flex;gap:20px;align-items:center}
  .sub .mini .mm{text-align:right}
  .sub .mini .mm .mv{font-weight:600;font-size:14.5px;color:var(--ink)}
  .sub .mini .mm .ml{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-top:1px}
  .sub .chev{flex:0 0 20px;color:var(--ink-faint);transition:.25s;font-size:13px}
  .sub.open .chev{transform:rotate(90deg)}
  .sub .body{max-height:0;overflow:hidden;transition:max-height .4s ease;background:#f5f8f5}
  .sub.open .body{max-height:820px}
  .sub .bodyin{padding:6px 24px 22px}
  .meters{display:flex;gap:26px;margin:8px 0 16px;flex-wrap:wrap}
  .meter{flex:1;min-width:180px}
  .meter .mlab{display:flex;justify-content:space-between;font-size:11.5px;font-weight:600;margin-bottom:6px;color:var(--ink)}
  .meter .mlab span:last-child{color:var(--ink-faint);font-weight:500}
  .bar{height:8px;border-radius:6px;background:#e2e7e2;overflow:hidden}
  .bar i{display:block;height:100%;border-radius:6px}
  .sub .blk{margin-bottom:12px}
  .sub .blk:last-child{margin-bottom:0}
  .sub .blk .lab{font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:3px}
  .sub .blk p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
  .sub .blk p b{color:var(--ink)}

  .chip{display:inline-block;font-size:10.5px;font-weight:600;padding:3px 11px;border-radius:20px;white-space:nowrap;letter-spacing:.01em}
  .chip.g{background:var(--good-bg);color:#4a6741}
  .chip.m{background:var(--amber-bg);color:#836232}
  .chip.s{background:var(--rose-bg);color:#8a4f3a}

  .legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px;font-size:12px;color:var(--ink-soft)}
  .legend span{display:inline-flex;align-items:center;gap:6px}
  .dotc{width:9px;height:9px;border-radius:50%}

  table{width:100%;border-collapse:collapse;font-size:13.5px}
  th{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:600;padding:6px 10px 9px 0;border-bottom:1.5px solid var(--rule)}
  th:first-child{text-align:left}
  td{text-align:right;padding:11px 10px;border-bottom:1px solid #eef2ee;color:var(--ink-soft);font-variant-numeric:tabular-nums}
  td:first-child{text-align:left;color:var(--ink);font-weight:600}
  tr:last-child td{border-bottom:none}
  .up{color:var(--good);font-weight:600}
  .flat{color:var(--amber);font-weight:600}

  .mixrow{margin-bottom:15px}
  .mixrow:last-child{margin-bottom:0}
  .mixrow .mh{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:6px}
  .mixrow .mh b{font-weight:600;font-family:var(--serif);font-size:15px}
  .mixrow .mh span{color:var(--ink-faint);font-size:12px}
  .mixbar{display:flex;height:24px;border-radius:8px;overflow:hidden;background:#e2e7e2}
  .mixbar i{height:100%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden}
  .mixbar .h{background:#5c7263}.mixbar .t{background:#8faab8}.mixbar .a{background:#d8c8a4;color:#5c4f38}
  .mixlegend{display:flex;gap:20px;margin:6px 0 18px;font-size:12px;color:var(--ink-soft)}
  .mixlegend span{display:inline-flex;align-items:center;gap:6px}
  .sw{width:12px;height:12px;border-radius:4px}

  .ratio{border:1px solid var(--rule);border-radius:14px;overflow:hidden;margin-top:6px}
  .rrow{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid #eef2ee}
  .rrow:last-child{border-bottom:none}
  .rrow .rn{flex:1;font-weight:600;font-size:14px;color:var(--ink)}
  .rrow .rn small{display:block;font-weight:400;color:var(--ink-faint);font-size:11.5px}
  .rrow .inp{display:flex;align-items:center;gap:8px}
  .rrow input{width:64px;border:1.5px solid #ccd4cc;background:#f3f6f3;border-radius:9px;padding:7px 8px;font-size:15px;font-weight:600;color:var(--accent);text-align:center;font-family:inherit}
  .rrow input:focus{outline:none;border-color:var(--sky-deep);background:#f3f6f1}
  .rrow .lk{font-size:11px;color:var(--sky-deep);text-decoration:none;font-weight:600;white-space:nowrap}
  .rrow .lk:hover{text-decoration:underline}
  .rrow .out{flex:0 0 120px;text-align:right}
  .rrow .out .ov{font-family:var(--serif);font-weight:500;font-size:17px;color:var(--deep)}
  .rrow .out .ol{font-size:9.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint)}
  .rrow .rbar{flex:0 0 80px}

  .road{position:relative;padding-left:8px}
  .rstep{display:flex;gap:18px;padding-bottom:22px;position:relative}
  .rstep:last-child{padding-bottom:0}
  .rstep::before{content:"";position:absolute;left:17px;top:34px;bottom:-6px;width:2px;background:var(--rule)}
  .rstep:last-child::before{display:none}
  .rstep .rnn{flex:0 0 36px;height:36px;border-radius:50%;background:var(--good-bg);color:var(--good);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:15px;z-index:1}
  .rstep .rt{font-weight:600;font-size:15.5px;color:var(--ink)}
  .rstep .rd{font-size:13.5px;color:var(--ink-soft);margin-top:2px;line-height:1.55}
  .rstep .rd b{color:var(--ink)}

  .foot{text-align:center;font-size:11.5px;color:var(--ink-faint);line-height:1.7;margin-top:24px;padding:0 20px}
  .foot b{color:var(--ink-soft)}

  /* shortlist */
  .slhead{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:8px}
  .toggle{display:inline-flex;background:var(--paper2);border:1px solid var(--rule);border-radius:11px;padding:3px}
  .toggle button{border:none;background:none;padding:7px 17px;font-size:12px;font-weight:600;border-radius:8px;color:var(--ink-soft);cursor:pointer;transition:.15s;font-family:inherit}
  .toggle button.on{background:var(--deep);color:#fff;box-shadow:var(--shadow)}
  .slwrap{border:1px solid var(--rule);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);background:var(--card)}
  .sltable{width:100%;border-collapse:collapse;font-size:13px}
  .sltable thead th{background:#eef2ee;text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;padding:14px 14px;border-bottom:1px solid var(--rule)}
  .sltable td{padding:16px 14px;border-bottom:1px solid #eef2ee;vertical-align:top;text-align:left}
  .sltable tr:last-child td{border-bottom:none}
  .sltable .prow:hover{background:#f3f6f3}
  .exp{width:26px;height:26px;border-radius:8px;border:1px solid var(--rule);background:var(--card);color:var(--ink-faint);font-size:16px;font-weight:600;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
  .exp:hover{border-color:var(--accent);color:var(--accent);background:#eef2ee}
  .pcell{display:flex;gap:13px;align-items:flex-start;min-width:230px}
  .thumb{flex:0 0 50px;height:50px;border-radius:12px;background:linear-gradient(140deg,#d7e0da,#aec3c6);display:flex;align-items:center;justify-content:center;font-size:18px}
  .pcell .pn{font-family:var(--serif);font-weight:500;font-size:15px;line-height:1.2;color:var(--ink)}
  .pcell .pl{font-size:11.5px;color:var(--sky-deep);font-weight:500;margin-top:3px}
  .snapchip{margin-top:7px;display:inline-flex;align-items:center;gap:5px;font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:#e8efe9;border:1px solid #d5ded6;border-radius:20px;padding:3px 10px;cursor:pointer}
  .snapchip:hover{background:#e5ebdb}
  .cval{font-weight:600;font-size:13.5px;color:var(--ink)}
  .csub{font-size:9.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px}
  .twoline .a{font-weight:600;font-size:13.5px;color:var(--ink)}
  .twoline .b{font-weight:600;font-size:13.5px;color:var(--good);margin-top:6px}
  .twoline .lab{font-size:9px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;margin-top:1px}
  .repbtn{border:1px solid var(--deep);background:var(--card);color:var(--deep);font-weight:600;font-size:12px;padding:8px 14px;border-radius:10px;cursor:pointer;white-space:nowrap;font-family:inherit;transition:.15s}
  .repbtn:hover{background:var(--deep);color:#fff}
  .detail td{background:#f1f5f1;padding:0!important;border-bottom:1px solid #eef2ee}
  .detailin{padding:20px 24px;animation:fade .3s ease}
  .dgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:26px}
  .dnum table{width:100%;border-collapse:collapse;font-size:12.5px}
  .dnum th{text-align:right;font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:5px 10px 7px 0;border-bottom:1px solid var(--rule)}
  .dnum th:first-child{text-align:left}
  .dnum td{text-align:right;padding:8px 10px 8px 0;border-bottom:1px solid #eef2ee;color:var(--ink-soft)}
  .dnum td:first-child{text-align:left;font-weight:600;color:var(--ink)}
  .dnum .rm{color:var(--good);font-weight:600}
  .dsec{margin-bottom:15px}
  .dsec .dl{font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}
  .dsec p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
  .dsec p b{color:var(--ink)}
  .dsec ul{list-style:none;margin-top:4px}
  .dsec li{font-size:13px;color:var(--ink-soft);padding-left:16px;position:relative;margin-bottom:5px;line-height:1.5}
  .dsec li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--good)}
  .snaprow td{background:#e9efe9;padding:0!important}
  .snapin{padding:16px 24px;display:flex;gap:28px;flex-wrap:wrap;align-items:center;animation:fade .3s ease}
  .snapin .si{font-size:12.5px}
  .snapin .si b{display:block;font-family:var(--serif);font-size:16px;font-weight:500;color:var(--deep)}
  .snapin .si span{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint)}
  .snapin .snote{flex:1;min-width:240px;font-size:12.5px;color:var(--ink-soft);line-height:1.55}
  .inactbar{display:flex;align-items:center;gap:14px;margin:20px 0 0;padding:17px 22px;background:var(--card);border:1px solid var(--rule);border-radius:16px;box-shadow:var(--shadow);cursor:pointer}
  .inactbar:hover{background:#f3f6f3}
  .inactbar .ic{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:-.01em;color:var(--ink)}
  .inactbar .cnt{background:var(--paper2);color:var(--ink-soft);font-weight:600;font-size:12px;border-radius:20px;padding:2px 11px}
  .inactbar .im{color:var(--ink-faint);font-size:12.5px;flex:1}
  .inactbar .iv{color:var(--sky-deep);font-weight:600;font-size:12.5px}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .pcard{border:1px solid var(--rule);border-radius:18px;background:var(--card);box-shadow:var(--shadow);overflow:hidden;border-top:4px solid var(--rule)}
  .pcard.g{border-top-color:var(--good)}.pcard.m{border-top-color:var(--amber)}.pcard.s{border-top-color:var(--rose)}
  .pcard .cbody{padding:19px 21px}
  .pcard .cnh{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
  .pcard .cn{font-family:var(--serif);font-weight:500;font-size:17px;color:var(--ink)}
  .pcard .cloc{font-size:12px;color:var(--sky-deep);font-weight:500;margin-top:2px}
  .pcard .cmet{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:14px 0}
  .pcard .cm .cmv{font-weight:600;font-size:13.5px;color:var(--ink)}
  .pcard .cm .cml{font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);margin-top:1px}
  .pcard .cyield{display:flex;gap:12px;background:#eef2ee;border-radius:12px;padding:12px 14px;margin-bottom:13px}
  .pcard .cyield .cy{flex:1}
  .pcard .cyield .cy .yv{font-family:var(--serif);font-weight:500;font-size:16px;color:var(--ink)}
  .pcard .cyield .cy.r .yv{color:var(--good)}
  .pcard .cyield .cy .yl{font-size:9px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-faint);margin-top:2px}

  @media(max-width:900px){.cards{grid-template-columns:1fr}.tabs{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.dgrid{grid-template-columns:1fr}.sltable thead{display:none}.step .lab{font-size:8.5px}.sub .mini .mm:nth-child(2){display:none}.rrow .rbar{display:none}}

  .modal{display:none;position:fixed;inset:0;z-index:200}
  .modal.open{display:block}
  .mback{position:absolute;inset:0;background:rgba(26,32,26,.5)}
  .mdialog{position:relative;max-width:1060px;margin:5vh auto;background:var(--card);border:1px solid var(--rule);border-radius:22px;box-shadow:0 30px 90px rgba(20,30,20,.42);max-height:90vh;overflow:hidden}
  .mscroll{max-height:90vh;overflow:auto;padding:30px 34px 34px}
  .mscroll::-webkit-scrollbar{width:12px}
  .mscroll::-webkit-scrollbar-thumb{background:#c3cdc4;border-radius:10px;border:3px solid var(--card)}
  .mscroll::-webkit-scrollbar-track{background:transparent}
  .mclose{position:absolute;top:16px;right:18px;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:var(--card);color:var(--ink-soft);font-size:19px;line-height:1;cursor:pointer}
  .mclose:hover{background:var(--paper2)}
  .mhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px;padding-right:34px}
  .mname{font-family:var(--serif);font-size:25px;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1.1}
  .mloc{font-size:13.5px;color:var(--sky-deep);font-weight:500;margin-top:4px}
  .mstats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:18px 20px;margin-bottom:22px}
  .mstats .ms .msv{font-family:var(--serif);font-weight:500;font-size:17px;color:var(--deep);line-height:1.15}
  .mstats .ms .msl{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-top:3px}
  .msec{margin-bottom:20px}
  .msec:last-child{margin-bottom:0}
  .msec .ml{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
  .msec p{font-size:14.5px;color:var(--ink-soft);line-height:1.65}
  .msec p b{color:var(--ink)}
  .msec ul{list-style:none}
  .msec li{font-size:14px;color:var(--ink-soft);padding-left:18px;position:relative;margin-bottom:7px;line-height:1.55}
  .msec li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--good)}
  .mfoot{font-size:11.5px;color:var(--ink-faint);margin-top:9px}
  .msnap{display:flex;gap:26px;flex-wrap:wrap;align-items:center}
  .msnap .si b{display:block;font-family:var(--serif);font-size:17px;font-weight:500;color:var(--deep)}
  .msnap .si span{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}
  .msnap .snote{flex:1;min-width:240px;font-size:12.5px;color:var(--ink-soft);line-height:1.55}
  @media(max-width:640px){.mstats{grid-template-columns:1fr 1fr}.mdialog{margin:0;border-radius:0;min-height:100vh;padding:24px 20px}}

  .sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px;margin:8px 0 16px}
  .sgrid .st{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:12px 13px}
  .st .sv{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--deep);line-height:1.1}
  .st .sl{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);margin-top:4px}
  .drow{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:16px;align-items:start}
  .dlab{font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
  .suphead{display:flex;align-items:baseline;gap:8px}
  .supval{font-family:var(--serif);font-size:24px;font-weight:500;color:var(--deep)}
  .suplab{font-size:11px;color:var(--ink-faint)}
  .mixmini{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--ink-soft);margin-top:8px}
  .mixmini span{display:inline-flex;align-items:center;gap:5px}
  .sub .blk p{line-height:1.62}
  .sub.open .body{max-height:1500px}
  @media(max-width:640px){.sgrid{grid-template-columns:repeat(3,1fr)}.drow{grid-template-columns:1fr;gap:16px}}

  .maprow{display:grid;grid-template-columns:360px 1fr;gap:26px;margin-bottom:16px;align-items:start}
  .mapbox{background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:10px 10px 12px}
  .mapbox svg{width:100%;height:auto;display:block;border-radius:12px}
  .maplegend{display:flex;gap:13px;flex-wrap:wrap;font-size:10.5px;color:var(--ink-soft);margin:9px 4px 0}
  .maplegend span{display:inline-flex;align-items:center;gap:5px}
  .mapcap{font-size:9.5px;color:var(--ink-faint);margin:5px 4px 0}
  .dcolstack{display:flex;flex-direction:column;gap:20px}
  .sub.open .body{max-height:2100px}
  @media(max-width:760px){.maprow{grid-template-columns:1fr}.sgrid{grid-template-columns:repeat(3,1fr)}}

  .maplegend{display:flex;gap:14px;flex-wrap:wrap;font-size:10.5px;color:var(--ink-soft);margin:10px 2px 16px;align-items:center}
  .maplegend span{display:inline-flex;align-items:center;gap:5px}
  .mapcap{margin-left:auto;color:var(--ink-faint);font-size:9.5px}
  .sub.open .body{max-height:2400px}

  .calc{margin-top:2px}
  .calcgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
  .cgroup{background:var(--paper);border:1px solid var(--rule);border-radius:13px;padding:13px 15px}
  .cgt{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);font-weight:700;margin-bottom:9px}
  .cf{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
  .cf:last-child{margin-bottom:0}
  .cfl{font-size:12.5px;color:var(--ink-soft)}
  .cfi{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:var(--ink-faint);white-space:nowrap}
  .ci{width:86px;border:1px solid #ccd4cc;background:#fff;border-radius:8px;padding:5px 8px;font-size:13px;font-weight:600;color:var(--deep);text-align:right;font-family:inherit}
  .ci:focus{outline:none;border-color:var(--sky-deep);background:#f3f6f3}
  .cheadline{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
  .chl{background:var(--card);border:1px solid var(--rule);border-radius:13px;padding:13px 15px}
  .chv{font-family:var(--serif);font-size:21px;font-weight:500;color:var(--deep);line-height:1.05}
  .chv.pos{color:var(--good)}.chv.neg{color:var(--rose)}
  .chd{font-size:9.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);margin-top:4px}
  .cpl{width:100%;border-collapse:collapse;font-size:13px}
  .cpl td{padding:8px 6px;border-bottom:1px solid #eef2ee;color:var(--ink-soft)}
  .cpl td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
  .cpl td.neg{color:var(--rose)}
  .cpl tr.cb td{font-weight:700;color:var(--ink);border-top:1.5px solid var(--rule);border-bottom:none;padding-top:9px}
  .cpl tr.cb td.pos{color:var(--good)}.cpl tr.cb td.neg{color:var(--rose)}
  .cnote{font-size:11.5px;color:var(--ink-faint);margin-top:11px;line-height:1.55}
  @media(max-width:760px){.calcgrid{grid-template-columns:1fr}.cheadline{grid-template-columns:1fr 1fr}}

  .slscroll{overflow-x:auto}
  .sltable{min-width:1180px}
  .bbc{display:block;font-size:10.5px;color:var(--ink-faint);margin-top:3px;letter-spacing:.01em}
  .rf{display:flex;gap:5px}
  .rfi{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid}
  .rfi svg{width:14px;height:14px;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .rfi.ok{background:var(--good-bg);border-color:#cadbcb}.rfi.ok svg{stroke:var(--good)}
  .rfi.bad{background:var(--rose-bg);border-color:#e6cdc4}.rfi.bad svg{stroke:var(--rose)}
  .rfi.unk{background:#eef1ee;border-color:var(--rule)}.rfi.unk svg{stroke:var(--ink-faint)}
  .rpanel{display:grid;grid-template-columns:1fr 1fr;gap:11px}
  .rp{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--rule);border-radius:12px;padding:11px 13px;background:var(--paper)}
  .rp.bad{background:var(--rose-bg);border-color:#e6cdc4}
  .rp.ok{background:var(--good-bg);border-color:#cadbcb}
  .rpt{font-size:13px;font-weight:600;color:var(--ink)}
  .rpt b{font-weight:700}
  .rp.bad .rpt b{color:var(--rose)}.rp.ok .rpt b{color:var(--good)}
  .rpd{font-size:11.5px;color:var(--ink-soft);margin-top:2px;line-height:1.45}
  @media(max-width:760px){.rpanel{grid-template-columns:1fr}}

  .gal{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .gi{border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:var(--paper);cursor:zoom-in;margin:0;transition:.18s}
  .gi:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
  .gi img{width:100%;height:250px;object-fit:contain;object-position:center;display:block;background:#fff;padding:4px}
  .gi figcaption{font-size:11px;color:var(--ink-soft);padding:8px 11px;background:var(--card);border-top:1px solid var(--rule)}
  .galcap{font-size:10.5px;color:var(--ink-faint);margin-top:7px}
  #lightbox{display:none;position:fixed;inset:0;z-index:400;background:rgba(28,34,28,.9);cursor:zoom-out;padding:26px}
  #lightbox.open{display:flex;align-items:center;justify-content:center}
  #lightbox img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.5)}
  @media(max-width:700px){.gal{grid-template-columns:1fr}.gi img{height:200px}}
  .rsrc{font-size:11px;color:var(--ink-faint);margin-top:11px;line-height:1.5}

  .finout{margin-top:11px;border-top:1px solid var(--rule);padding-top:9px}
  .fr{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12.5px;color:var(--ink-soft);padding:3px 0}
  .fr b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
  .fr.hi{margin-top:5px;padding:7px 9px;background:var(--card);border:1px solid var(--rule);border-radius:9px}
  .fr.hi span{font-weight:600;color:var(--ink)}
  .fr.hi b{font-family:var(--serif);font-size:16px;font-weight:500;color:var(--deep)}
  .fr.sub{font-size:11.5px;color:var(--ink-faint)}
  .fr.sub b{color:var(--ink-soft);font-weight:600}
  .chsub{font-size:11px;color:var(--ink-soft);margin-top:3px;font-weight:600}
  .pmth{display:block;font-size:10.5px;color:var(--ink-faint);font-weight:400;margin-top:1px}

  .cgroup.wide{grid-column:1/-1}
  .upgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px 18px}
  .segt{display:inline-flex;background:var(--paper2);border-radius:9px;padding:2px}
  .segt button{border:none;background:none;padding:5px 10px;font-size:11px;font-weight:600;border-radius:7px;color:var(--ink-soft);cursor:pointer;font-family:inherit;white-space:nowrap}
  .segt button.on{background:var(--deep);color:#fff}
  .sub2{color:var(--ink-faint);font-weight:500;font-size:12px}
  .upfront{margin-top:20px;border-top:1.5px solid var(--rule);padding-top:16px}
  .uft{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
  .ufbar{margin-top:12px}
  .ufb{height:9px;border-radius:6px;background:#e2e7e2;overflow:hidden}
  .ufb i{display:block;height:100%;border-radius:6px}
  .ufb i.ok{background:var(--good)}.ufb i.mid{background:var(--amber)}.ufb i.over{background:var(--rose)}
  .ufm{font-size:12px;margin-top:7px;line-height:1.5}
  .ufm.ok{color:var(--good)}.ufm.mid{color:var(--ink-soft)}.ufm.over{color:var(--rose);font-weight:600}
  @media(max-width:760px){.upgrid{grid-template-columns:1fr 1fr}}

  .rkb{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--deep)}
  .inspbar{background:var(--good-bg);border:1px solid #cadbcb;border-radius:10px;padding:9px 14px;font-size:13px;color:#3f5f43;margin-bottom:18px}
  .inspbar b{color:#2f4a33}

  .poigrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 22px;margin-top:4px}
  .poic .poih{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--accent);margin-bottom:5px}
  .poic ul{list-style:none}
  .poic li{font-size:12.5px;color:var(--ink-soft);padding-left:13px;position:relative;margin-bottom:4px;line-height:1.45}
  .poic li::before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:var(--sky-deep)}
  .poic li b{color:var(--ink)}
  .scorebox{background:var(--card);border:1px solid var(--rule);border-radius:13px;padding:14px 16px;margin-bottom:16px}
  .sbh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
  .sbh span:first-child{font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--accent)}
  .sbo{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--deep)}
  .sbo small{font-size:11px;color:var(--ink-faint);font-family:var(--sans)}
  .sbg{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}
  .sbi.hi{background:var(--good-bg);border:1px solid #cadbcb}
  .sbi.hi b{color:var(--good)}
  .sbi{text-align:center;background:var(--paper);border-radius:9px;padding:8px 6px}
  .sbi b{display:block;font-family:var(--serif);font-size:17px;font-weight:500;color:var(--deep)}
  .sbi span{font-size:9.5px;color:var(--ink-faint);line-height:1.3;display:block;margin-top:2px}
  .sbn{font-size:11px;color:var(--ink-faint);margin-top:9px;line-height:1.5}
  @media(max-width:820px){.poigrid{grid-template-columns:1fr 1fr}.sbg{grid-template-columns:repeat(3,1fr)}}
  /* ============ MOBILE LAYER (desktop untouched) ============ */
  @media(max-width:760px){
    .wrap{padding:0 14px 48px}
    .hero{padding:22px 18px;margin-top:14px;border-radius:20px}
    .hero .top{gap:14px}
    .hero img{height:52px}
    .hero h1{font-size:26px}
    .hero .eyebrow{font-size:10px;letter-spacing:.18em}
    .hero .lede{font-size:14.5px;margin-top:12px}

    /* journey steps: 3-up grid instead of a cramped single line */
    .journey{margin-top:22px}
    .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px 6px}
    .steps::before,.prog{display:none}
    .step .lab{font-size:10px}
    .step .lab b{font-size:10.5px}

    /* tabs */
    .tabs{grid-template-columns:1fr;gap:10px;margin:20px 0}
    .tab{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:0 13px;padding:13px 15px}
    .tab svg{grid-row:span 2;width:20px;height:20px}
    .tab .tt{margin-top:0}

    .card{padding:20px 16px;border-radius:16px}
    h2.big{font-size:20px}
    .intro{font-size:14.5px}
    .stat{padding:18px 18px}

    /* section header + view toggle */
    .slhead{flex-direction:column;align-items:flex-start;gap:10px}
    .toggle{width:100%}
    .toggle button{flex:1}

    /* shortlist table -> stacked cards */
    .slwrap{border-radius:16px}
    .slscroll{overflow-x:visible}
    .sltable{min-width:0}
    .sltable,.sltable tbody,.sltable tr,.sltable td{display:block;width:100%}
    .sltable .prow{position:relative;padding:16px 16px 14px;border-bottom:1px solid #eef2ee}
    .sltable .prow td{border:none;padding:5px 0;text-align:left}
    .sltable .prow td:nth-child(3),
    .sltable .prow td:nth-child(4),
    .sltable .prow td:nth-child(5),
    .sltable .prow td:nth-child(6),
    .sltable .prow td:nth-child(7),
    .sltable .prow td:nth-child(8),
    .sltable .prow td:nth-child(9){display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;align-items:start;border-top:1px solid #f1f4f1}
    .sltable .prow td:nth-child(3)::before{content:"Land"}
    .sltable .prow td:nth-child(4)::before{content:"Price"}
    .sltable .prow td:nth-child(5)::before{content:"Rent"}
    .sltable .prow td:nth-child(6)::before{content:"Yield"}
    .sltable .prow td:nth-child(7)::before{content:"Fit"}
    .sltable .prow td:nth-child(8)::before{content:"Method"}
    .sltable .prow td:nth-child(9)::before{content:"Agent"}
    .sltable .prow td:nth-child(n+3):nth-child(-n+9) > *{grid-column:2}
    .sltable .prow td::before{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding-top:3px}
    .sltable .prow td:first-child{position:absolute;top:14px;right:14px;width:auto;padding:0}
    .sltable .prow td:nth-child(2){padding-right:38px;padding-bottom:8px}
    .sltable .prow td:last-child{border-top:1px solid #f1f4f1;padding-top:12px}
    .sltable .prow td:last-child .repbtn{width:100%;padding:11px 14px}
    .pcell{min-width:0}
    .twoline .b{margin-top:4px}
    .rf{flex-wrap:wrap}
    .detailin{padding:16px 14px}
    .snapin{padding:14px 16px;gap:18px}
    .dnum{overflow-x:auto;-webkit-overflow-scrolling:touch}

    /* calculator rows */
    .rrow{flex-wrap:wrap;gap:10px 12px;padding:13px 14px}
    .rrow .rn{flex:1 1 100%}
    .rrow .out{flex:1 1 auto;text-align:right}
    .rrow input{width:76px;font-size:16px}
    .cheadline{gap:12px}
    .inactbar{flex-wrap:wrap;gap:10px;padding:14px 16px}
    .inactbar .im{flex:1 1 100%;order:3}

    /* subject/suburb rows */
    .sub .head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:15px 16px;gap:10px 12px}
    .sub .nm{font-size:16px}
    .sub .mini{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:flex-start}
    .sub .mini .mm{text-align:left}
    .sub .mini .mm:nth-child(2){display:block}
    .sub .rankbadge{width:34px;grid-column:1;grid-row:1}
    .sub .nm{grid-column:2;grid-row:1}
    .sub .chev{grid-column:3;grid-row:1;text-align:right}
    .sub .bodyin{padding:6px 16px 18px}
    .meters{gap:14px}
    .meter{min-width:100%}
    .poigrid{grid-template-columns:1fr;gap:12px}

    /* modal */
    .mscroll{padding:22px 18px 28px}
    .mname{font-size:21px}

    .foot{padding:0 6px}
    table{font-size:12.5px}
  }

  @media(max-width:420px){
    .hero h1{font-size:23px}
    .hero .top{align-items:flex-start}
    .sgrid{grid-template-columns:repeat(2,1fr)}
    .sbg{grid-template-columns:repeat(2,1fr)}
    .upgrid{grid-template-columns:1fr}
    .mstats{grid-template-columns:1fr 1fr}
    .steps{grid-template-columns:repeat(2,1fr)}
  }
