/* Homepage — plain, editorial layout. Palette matches the app screenshots. */
body.home{font-size:17px;line-height:1.65;}

.home header{background:rgba(15,15,26,.9);}
.home .logo{font-size:1.6rem;}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px;}
.wrap.wide{max-width:1180px;}
.wrap.narrow{max-width:720px;}
.wrap.split{display:grid;grid-template-columns:5fr 6fr;gap:72px;align-items:start;}
@media (max-width:860px){.wrap.split{grid-template-columns:1fr;gap:36px;}}
.home h1,.home h2,.home h3{font-family:'Instrument Serif',Georgia,serif;font-weight:400;color:#fff;overflow-wrap:break-word;}
.home h1{font-size:clamp(2.4rem,6.4vw,4.6rem);line-height:1.04;letter-spacing:-.02em;max-width:15em;margin:0 0 28px;}
.home h2{font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.1;letter-spacing:-.01em;margin:0 0 20px;}
.home h2.big{font-size:clamp(2.4rem,6vw,4rem);}
.home p{color:var(--text-muted);}
.kicker{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2)!important;margin-bottom:22px;}
.home .intro{padding:110px 0 0;}
.lead{font-size:1.2rem;max-width:36em;color:var(--text)!important;opacity:.82;margin-bottom:34px;}
.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-bottom:18px;}
.link{color:var(--accent-2);font-weight:500;border-bottom:1px solid transparent;}
.link:hover{border-color:var(--accent-2);}
.small{font-size:.88rem;}
.shot{display:block;width:100%;height:auto;margin-top:72px;border:1px solid var(--border);border-radius:8px;}
.home .block{padding:110px 0;}
.home .block.alt{background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.chat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:28px;}
.who{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2)!important;margin:0 0 6px;}
.chat .msg{color:var(--text)!important;margin:0 0 22px;}
.diff{border:1px solid var(--border);border-radius:6px;overflow:hidden;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;}
.diff-file{background:var(--panel-2);padding:8px 14px;color:var(--text-muted);border-bottom:1px solid var(--border);}
.diff pre{padding:12px 14px;overflow-x:auto;line-height:1.55;}
.diff pre{white-space:normal;}
.diff pre span{display:block;white-space:pre;}
.diff .add{background:rgba(52,168,83,.15);color:#8fd9a0;}
.diff .del{background:rgba(220,70,70,.15);color:#f0a0a0;}
.diff .ctx{color:var(--text-muted);}
.rows{margin-top:48px;border-top:1px solid var(--border);}
.row{display:grid;grid-template-columns:5fr 6fr;gap:72px;padding:30px 0;border-bottom:1px solid var(--border);}
.row h3{font-size:1.6rem;margin:0;}
.row p{margin:0;}
@media (max-width:860px){.row{grid-template-columns:1fr;gap:8px;}}
.shots{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:40px;}
@media (max-width:700px){.shots{grid-template-columns:1fr;}}
.shots img{display:block;width:100%;height:auto;border:1px solid var(--border);border-radius:8px;}
figcaption{margin-top:10px;font-size:.88rem;color:var(--text-muted);}
.prose{font-size:1.25rem;color:var(--text)!important;opacity:.85;}
.price{font-family:'Instrument Serif',Georgia,serif;font-size:5rem;line-height:1;color:#fff!important;margin:8px 0 6px;}
.plain{list-style:none;margin-bottom:20px;}
.plain li{padding:12px 0;border-bottom:1px solid var(--border);color:var(--text);}
.plain+.small{margin-bottom:22px;}
.home .btn{border-radius:6px;animation:none;box-shadow:none;}
.home .btn-primary{color:#fff;}
.home .contact-form{max-width:none;}
.home footer{padding:36px 24px;}

/* ---- Secondary pages: flatten legacy components to match the homepage ---- */
.home .scroll-progress{display:none;}
.home .hero{padding:96px 0 56px;text-align:left;}
.home .hero-inner{max-width:1040px;}
.home .hero h1{margin-left:0;}
.home .hero p.lead,.home .lead{margin-left:0;margin-right:0;}
.home .hero-actions{justify-content:flex-start;}
.home .hero-note{color:var(--text-muted);font-size:.88rem;margin:6px 0 0;}
.home .eyebrow{background:none;border:0;padding:0;border-radius:0;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);}
.home h1 .grad{background:none;-webkit-text-fill-color:currentColor;color:var(--accent-2);font-style:italic;animation:none;}
.home .section-head{text-align:left;max-width:640px;margin:0 0 40px;}
.home .section-head h2{font-size:clamp(1.9rem,4vw,2.7rem);}
.home main > section{padding:80px 0;}
.home main > section.hero{padding:96px 0 56px;}
.home .features,.home .security{background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
/* cards -> ruled rows */
.home .feature-grid{display:block;border-top:1px solid var(--border);}
.home .feature-card{display:grid;grid-template-columns:5fr 6fr;gap:72px;background:none;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:28px 0;text-align:left;transform:none;box-shadow:none;}
.home .feature-card:hover{transform:none;border-color:var(--border);box-shadow:none;}
.home .feature-card .fico{display:none;}
.home .feature-card h3{font-size:1.6rem;margin:0;color:#fff;font-weight:400;}
.home .feature-card p{margin:0;font-size:1rem;}
@media (max-width:860px){.home .feature-card{grid-template-columns:1fr;gap:8px;}}
/* check lists -> plain lists */
.home .sec-list,.home .price-features{list-style:none;display:block;text-align:left;margin:0 0 24px;}
.home .sec-list li,.home .price-features li{display:block;padding:12px 0;border-bottom:1px solid var(--border);color:var(--text);font-size:1rem;}
.home .check{display:none;}
.home .security-panel{background:none;border:0;border-left:2px solid var(--accent);border-radius:0;padding:4px 0 4px 24px;text-align:left;}
.home .security-panel p{font-size:1.2rem;line-height:1.6;}
.home .security-panel strong{color:#fff;}
/* pricing card -> plain block */
.home .pricing-card{max-width:560px;margin:0;background:none;border:0;border-top:1px solid var(--border);border-radius:0;padding:28px 0 0;text-align:left;transform:none;}
.home .pricing-badge{display:inline-block;background:none;border:1px solid var(--accent);color:var(--accent-2);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:999px;margin-bottom:16px;}
.home .price-amount{font-family:'Instrument Serif',Georgia,serif;font-weight:400;}
.home .pricing-card h2{font-size:3.4rem;margin:0 0 6px;}
.home .price-note{margin:6px 0 20px;font-size:.9rem;}
.home .pricing-card .btn{width:auto!important;}
/* cta/contact box */
.home .cta-box{background:none;border:0;border-top:1px solid var(--border);border-radius:0;padding:40px 0 0;text-align:left;}
.home .cta-box h2{font-size:clamp(1.9rem,4vw,2.7rem);}
/* legal pages */
.home .legal-page{padding:80px 0 96px;}
.home .legal-card{background:none;border:0;border-radius:0;padding:0;max-width:720px;margin:0;}
.home .legal-card h1{font-size:clamp(2.4rem,5vw,3.6rem);color:#fff;margin-bottom:28px;}
.home .legal-card h2{color:#fff;font-size:1.7rem;margin:40px 0 10px;padding-top:24px;border-top:1px solid var(--border);}
.home .legal-card p,.home .legal-card li{font-size:1rem;}
.home .legal-meta{background:none;border:0;border-left:2px solid var(--accent);border-radius:0;padding:4px 0 4px 18px;}
.home .legal-page .container{max-width:1040px;}
.home .support-form input,.home .support-form textarea{border-radius:6px;}
/* portal (account/admin) */
.home .portal-card{max-width:560px;margin:32px 0 0;background:var(--panel);border-radius:8px;}
.home .portal-card input,.home .portal-card textarea,.home .comment-item,.home .download-row{border-radius:6px;}
.home .admin-badge{border-radius:4px;}
.home .lead{color:var(--text)!important;opacity:.82;}
@media (max-width:480px){.home .hero{padding:56px 0 40px;}.home main > section{padding:56px 0;}}
.home .container{max-width:1040px;}
.home nav{max-width:1040px;}
.home button.btn{border:0;cursor:pointer;font-family:inherit;}
.home button.btn-ghost{border:1px solid var(--border);}
.home .reveal{opacity:1;transform:none;transition:none;}
.home .contact-form select{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:12px 14px;color:var(--text);font-family:inherit;font-size:.92rem;}
.home .contact-form select:focus{outline:none;border-color:var(--accent);}
.home .contact-form input,.home .contact-form textarea{border-radius:6px;}
.home .consent{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--text-muted);}
.home .consent input{margin-top:3px;accent-color:var(--accent);flex-shrink:0;}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;}
.form-status{min-height:1.3em;font-size:.88rem;color:var(--accent-2);margin:0;}
.form-status.error{color:#f0a0a0;}
/* Mobile: grid children must be allowed to shrink, or the diff/pre forces the page wider than the viewport */
.home .wrap.split{grid-template-columns:minmax(0,5fr) minmax(0,6fr);}
@media (max-width:860px){.home .wrap.split{grid-template-columns:minmax(0,1fr);}}
.home .wrap.split > *,.home .row > *,.home .chat,.home .diff{min-width:0;max-width:100%;}
.home .diff pre{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.home .chat{padding:22px;}
@media (max-width:480px){.home .chat{padding:16px;}.home .diff{font-size:.75rem;}.home .wrap{padding:0 18px;}}

/* ---- Mobile polish ---- */
@media (max-width:720px){
  .home nav{flex-wrap:nowrap;justify-content:space-between;padding:10px 18px;}
  .home .nav-right{width:auto;gap:8px;}
  .home .logo{font-size:1.45rem;}
  .home .nav-cta{padding:7px 12px;font-size:.78rem;}
  .home .intro{padding:44px 0 0;}
  .home h1{font-size:clamp(2.1rem,9.5vw,2.8rem);margin-bottom:20px;}
  .home .lead{font-size:1.05rem;margin-bottom:26px;}
  .home .block{padding:60px 0;}
  .home h2{font-size:1.9rem;}
  .home h2.big{font-size:2.3rem;}
  .home .prose{font-size:1.1rem;}
  .home .price{font-size:4rem;}
  .home .row{padding:22px 0;}
  .home .row h3{font-size:1.4rem;}
  .home .shot{margin-top:40px;}
  .home .legal-page{padding:44px 0 64px;}
  .home .block .buy-license-btn,.home .contact-form .btn{width:100%;justify-content:center;}
}

/* Never trap touch scrolling: no nested scroll containers around screenshots, and clip (not hide) horizontal overflow so the page itself stays the scroller on iOS */
.home .diff pre{overflow-x:visible;white-space:pre-wrap;word-break:break-all;}
.home .diff pre span{white-space:pre-wrap;}
html:has(body.home){overflow-x:visible;}
body.home{overflow-x:clip;}
.home .shot,.home .shots img{display:block;width:100%;height:auto;}
.home figure a,.home .wrap.wide a{display:block;}

/* Mobile: hide the hero window shot (unreadable at 390px; the example below shows the same thing as real text) and crop the app shots to their centre */
@media (max-width:720px){
  .home .intro .wrap.wide{display:none;}
  .home .shots img{aspect-ratio:4/3;object-fit:cover;object-position:50% 50%;}
  .home .intro{padding-bottom:8px;}
  .home .shots{gap:24px;}
}

.home button.nav-cta{border:0;cursor:pointer;font-family:inherit;}
.home .nav-cta[disabled]{opacity:.7;cursor:default;}
