/* Marketing pages — editorial atlas. Application styles stay in styles.css. */
:root { --ed-paper:#f5f5f7; --ed-ink:#1d1d1f; --ed-muted:#6e6e73; --ed-line:rgba(0,0,0,.10); --ed-violet:#6d5bd0; --ed-lime:#4f8fd0; --ed-serif:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue","Inter",system-ui,sans-serif; --ed-mono:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","Inter",system-ui,sans-serif; }
body:not(.in-app) { background:var(--ed-paper); color:var(--ed-ink); }
body:not(.in-app) .topbar { background:rgba(245,243,236,.94); backdrop-filter:blur(16px); border-color:var(--ed-line); padding:1.1rem max(4vw,calc((100vw - 1320px)/2)); gap:2rem; }
body:not(.in-app) .brand { gap:.65rem; }
body:not(.in-app) .brand-mark { filter:none; color:var(--ed-ink); font-size:2.1rem; }
body:not(.in-app) .brand h1 { font-size:1.15rem; letter-spacing:-.04em; }
body:not(.in-app) .brand p,body:not(.in-app) .model-badge { display:none; }
body:not(.in-app) .topnav { gap:1.7rem; }
body:not(.in-app) .topnav a { font-size:.8rem; color:var(--ed-ink); }
body:not(.in-app) .topnav a[aria-current=page] { color:var(--ed-violet); }
body:not(.in-app) .topbar-cta { background:var(--ed-ink); border-radius:5px; font-size:.78rem; padding:.7rem 1rem; }
body:not(.in-app) .auth-area .btn { border:none; color:var(--ed-ink); font-size:.8rem; padding:.4rem; }
body:not(.in-app) .lang-switch { border-color:var(--ed-line); }
body:not(.in-app) .lang-switch button.active { background:var(--ed-ink); }
.marketing { --text:var(--ed-ink); --muted:var(--ed-muted); font-family:"Inter","Segoe UI",system-ui,sans-serif; }
.marketing *, .ed-footer * { box-sizing:border-box; }
.ed-container { width:min(1320px,92vw); margin:auto; }
.ed-kicker { font: .65rem/1.7 var(--ed-mono); letter-spacing:.12em; margin:0 0 1.5rem; text-transform:uppercase; }
.ed-kicker .status-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--ed-violet); margin-right:.7rem; }
.marketing h1,.marketing h2 { font-family:var(--ed-serif); font-weight:400; letter-spacing:-.055em; line-height:1.03; margin:0; }
.marketing h1 { font-size:clamp(3.1rem,5.5vw,5.3rem); }
.marketing h2 { font-size:clamp(2.7rem,4.4vw,4.2rem); }
.marketing h1 em,.marketing h2 em { font-weight:400; color:var(--ed-violet); }
.ed-lead { font-size:1.02rem; color:var(--ed-muted); line-height:1.8; max-width:32rem; }
.ed-hero { padding:4.2rem 0 3.8rem; }
.ed-hero-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:3.5rem; align-items:center; }
.ed-hero-copy { padding:1rem 0; }
.ed-hero-copy .ed-lead { margin:1.6rem 0 1.8rem; max-width:30rem; }
.ed-actions { display:flex; align-items:center; gap:1.6rem; flex-wrap:wrap; }
.ed-button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; background:var(--ed-ink); color:white; border:1px solid var(--ed-ink); border-radius:5px; padding:1rem 1.25rem; font-weight:600; font-size:.88rem; line-height:1.3; font-family:inherit; cursor:pointer; text-decoration:none; transition:background .2s,transform .2s,box-shadow .2s; }
.ed-button:hover { background:var(--ed-violet); border-color:var(--ed-violet); transform:translateY(-2px); box-shadow:0 6px 20px #6552bb20; }
.ed-button span { font-size:1.2rem; font-weight:400; }
.ed-button.light { background:var(--ed-lime); color:var(--ed-ink); border-color:var(--ed-lime); }
.ed-button.light:hover { background:#e7f7bf; }
.ed-text-link { display:inline-flex; gap:1rem; align-items:center; color:var(--ed-ink); text-decoration:none; border:none; border-bottom:1px solid var(--ed-line); padding:.5rem 0; background:none; font-weight:500; font-size:.82rem; line-height:1.4; font-family:inherit; cursor:pointer; }
.ed-text-link:hover { color:var(--ed-violet); border-color:var(--ed-violet); }
.ed-reassurance { font-size:.71rem; color:var(--ed-muted); margin:1rem 0 2.8rem; line-height:1.6; }
.ed-hero-foot { display:flex; align-items:center; gap:1.2rem; font: .6rem/1.6 var(--ed-mono); letter-spacing:.06em; color:var(--ed-muted); }
.ed-hero-foot-line { height:1px; width:80px; background:var(--ed-line); }
.atlas { background:#22262b; border-radius:7px; color:#eee; position:relative; padding:1.3rem 1.4rem .8rem; overflow:hidden; box-shadow:0 24px 50px #26282b18; }
.atlas-top { display:flex; justify-content:space-between; gap:1rem; font:.54rem/1.5 var(--ed-mono); letter-spacing:.06em; color:#c1c4c7; }
.atlas-live { color:var(--ed-lime); }
.atlas-live i { display:inline-block; width:5px; height:5px; margin-right:5px; border-radius:50%; background:var(--ed-lime); }
.atlas-svg { width:100%; display:block; margin:-1rem 0 -1.7rem; }
.atlas-orbit { fill:none; stroke:#c3c6cd; stroke-opacity:.18; stroke-width:1; stroke-dasharray:2 6; }
.atlas-axis { fill:none; stroke:#c3c6cd; stroke-opacity:.07; }
.atlas-thread { fill:none; stroke:#9292a2; stroke-opacity:.32; stroke-width:1; }
.atlas-thread.accent { stroke:#bdb1ff; stroke-opacity:.65; }
.atlas-event { fill:#8d91a0; stroke:#22262b; stroke-width:3; }
.atlas-event.key { fill:var(--ed-lime); stroke:#d9ef9920; stroke-width:9; paint-order:stroke; }
.atlas-event-label { text-anchor:middle; font:12px var(--ed-mono); fill:#c5c8d0; }
.atlas-person { fill:#31373e; stroke:#8c81bd; stroke-width:1.5; }
.atlas-person.p6 { fill:#a294e2; stroke:#d7cdfa; }
.atlas-person-label { text-anchor:middle; font:12px system-ui,sans-serif; fill:white; }
.atlas-coordinate { font:9px var(--ed-mono); fill:#858a91; letter-spacing:1px; }
.atlas-note { display:flex; gap:.8rem; padding:1rem; margin:0 .5rem; position:relative; background:#ffffff09; border:1px solid #ffffff12; border-radius:4px; }
.atlas-note-icon { color:var(--ed-lime); font-size:1.8rem; }
.atlas-note strong { font-size:.8rem; display:block; font-weight:500; }
.atlas-note span:not(.atlas-note-icon) { display:block; font-size:.67rem; color:#aaafb6; margin-top:.3rem; line-height:1.6; }
.atlas-caption { font: .53rem/1.5 var(--ed-mono); color:#92979d; text-align:center; margin:.8rem 0 .1rem; }
.ed-format-strip { border-block:1px solid var(--ed-line); padding:1.4rem 0; }
.ed-format-strip .ed-container { display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.ed-format-strip span { font:.55rem/1.6 var(--ed-mono); letter-spacing:.07em; color:var(--ed-muted); }
.ed-format-strip div div { display:flex; gap:1.4rem; align-items:center; font-family:var(--ed-serif); font-size:1.3rem; }
.ed-format-strip i { color:var(--ed-violet); font-style:normal; font-size:1rem; }
.plot-promo-section { overflow:hidden; background:linear-gradient(145deg,#ece9f4 0%,#f5f3ed 58%,#e8eee5 100%); border-bottom:1px solid var(--ed-line); }
.plot-promo-layout { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.plot-promo-copy .ed-lead { color:var(--ed-muted); font-size:.95rem; line-height:1.8; max-width:31rem; margin:1.5rem 0; }
.plot-promo-points { display:flex; flex-wrap:wrap; gap:.45rem; margin:0 0 1.8rem; }
.plot-promo-points span { border:1px solid #6552bb35; background:#fff8; color:var(--ed-violet); border-radius:999px; padding:.38rem .7rem; font:.56rem var(--ed-mono); letter-spacing:.04em; }
.plot-promo-window { background:#22262d; color:#f3f2ec; border:1px solid #ffffff18; border-radius:18px; padding:1rem; box-shadow:0 28px 70px #28243f26; transform:rotate(1deg); }
.plot-promo-bar { display:flex; justify-content:space-between; gap:1rem; padding:.15rem .2rem .9rem; color:#999da5; font:.48rem var(--ed-mono); letter-spacing:.08em; }
.plot-promo-bar b { color:#c6df7b; font-weight:500; }
.plot-promo-board { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; padding:1.2rem .7rem 1.7rem; background-image:radial-gradient(#ffffff18 1px,transparent 1px); background-size:18px 18px; border:1px solid #ffffff0d; }
.plot-promo-board::after { content:""; position:absolute; left:1rem; right:1rem; bottom:.7rem; height:1px; background:#ffffff22; }
.promo-card { min-width:0; min-height:155px; position:relative; padding:.8rem; background:#2d323a; border:1px solid #ffffff15; border-top:3px solid #7459d1; border-radius:3px 3px 9px 9px; box-shadow:0 8px 22px #0004; }
.promo-card.turn { border-top-color:#d46579; transform:translateY(-12px); }.promo-card.question { border-top-color:#d28b3c; }
.promo-card small { color:#a8abb2; font:.48rem var(--ed-mono); letter-spacing:.05em; }.promo-card h3 { font:1.05rem var(--ed-serif); margin:.65rem 0 .45rem; }.promo-card p { color:#aeb2b8; font-size:.64rem; line-height:1.55; margin:0; }
.promo-card div { position:absolute; left:.8rem; right:.8rem; bottom:.65rem; display:flex; align-items:center; }.promo-card i { width:20px; height:20px; display:grid; place-items:center; margin-right:-4px; border:2px solid #2d323a; border-radius:50%; background:#7767c5; color:white; font:normal 600 .5rem system-ui; }.promo-card div span { margin-left:auto; color:#969ba3; font:.48rem var(--ed-mono); }
.plot-promo-lanes { padding:.9rem .7rem .2rem; }.plot-promo-lanes > div { display:grid; grid-template-columns:55px 1fr; align-items:center; min-height:24px; border-bottom:1px solid #ffffff0b; }.plot-promo-lanes strong { color:#aeb2b8; font-size:.55rem; font-weight:500; }.plot-promo-lanes span { display:grid; grid-template-columns:repeat(3,1fr); position:relative; }.plot-promo-lanes span::before { content:""; position:absolute; left:0; right:0; top:50%; border-top:1px solid #ffffff20; }.plot-promo-lanes i { z-index:1; justify-self:center; width:7px; height:7px; border-radius:50%; background:#7767c5; box-shadow:0 0 0 3px #22262d; }.plot-promo-lanes i:not(.active) { opacity:.25; }
.plot-promo-window > p { text-align:center; color:#8f949c; font:.5rem var(--ed-mono); margin:.7rem 0 .1rem; }
.ed-section { padding:6.5rem 0; }
.ed-section-heading { display:grid; grid-template-columns:1.3fr 1fr; gap:0 3rem; align-items:end; margin-bottom:3rem; }
.ed-section-heading .ed-kicker { grid-column:1/-1; }
.ed-section-heading > p:last-child:not(.ed-kicker) { font-size:.93rem; color:var(--ed-muted); line-height:1.8; max-width:27rem; margin:0 0 .3rem; }
.product-window { background:#faf9f5; border:1px solid var(--ed-line); border-radius:7px; overflow:hidden; box-shadow:0 16px 45px #26282b06; }
.product-window-bar { display:flex; align-items:center; gap:.7rem; border-bottom:1px solid var(--ed-line); padding:1rem 1.4rem; }
.product-window-bar strong { font-size:.8rem; font-weight:500; }
.window-mark { font-size:1.4rem; color:var(--ed-violet); }
.demo-label { margin-left:auto; color:var(--ed-muted); font:.53rem/1.5 var(--ed-mono); letter-spacing:.06em; }
.product-demo-grid { display:grid; grid-template-columns:260px 1fr; min-height:420px; }
.demo-sidebar { border-right:1px solid var(--ed-line); padding:2rem 1.5rem; display:flex; flex-direction:column; }
.demo-sidebar .ed-kicker { font-size:.55rem; color:var(--ed-muted); }
.demo-sidebar h3 { font:400 1.65rem/1.15 var(--ed-serif); margin:0 0 2rem; letter-spacing:-.03em; }
.demo-tabs { display:flex; flex-direction:column; gap:.5rem; }
.demo-tabs button { display:flex; gap:1rem; align-items:center; border:1px solid transparent; border-radius:4px; padding:.8rem; background:none; font:500 .8rem system-ui; text-align:left; color:var(--ed-muted); cursor:pointer; }
.demo-tabs button span { font:.6rem var(--ed-mono); }
.demo-tabs button i { margin-left:auto; font-style:normal; }
.demo-tabs button.active { background:#ece8f5; color:var(--ed-violet); }
.demo-sidebar-note { font:.6rem/1.8 var(--ed-mono); color:var(--ed-muted); margin:auto 0 0; padding-top:2rem; }
.demo-content { padding:2rem 2.3rem; min-width:0; }
.demo-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; font:.55rem/1.5 var(--ed-mono); letter-spacing:.06em; color:var(--ed-muted); }
.demo-chip { background:#ece8f5; border-radius:3px; padding:.4rem .6rem; color:var(--ed-violet); font-size:.5rem; }
.demo-chip.warning { background:#f3e8dc; color:#6b4c2f; }
.demo-timeline { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; padding:3.4rem 0 2rem; }
.demo-track { position:absolute; top:6.7rem; left:0; right:0; height:1px; background:var(--ed-line); }
.demo-timeline article { position:relative; }
.demo-event-number { display:block; font:italic 1.5rem var(--ed-serif); color:var(--ed-muted); margin-bottom:1.1rem; }
.demo-timeline article i { display:block; border:3px solid #faf9f5; outline:1px solid #a1a295; width:10px; height:10px; background:#a1a295; border-radius:50%; margin-bottom:1.3rem; }
.demo-timeline article.key i { background:var(--ed-violet); outline-color:var(--ed-violet); }
.demo-timeline small { font:.5rem var(--ed-mono); color:var(--ed-muted); letter-spacing:.07em; }
.demo-timeline h4 { font:500 .9rem/1.4 system-ui; margin:.6rem 0; }
.demo-timeline article.key h4 { color:var(--ed-violet); }
.demo-timeline p { color:var(--ed-muted); font-size:.72rem; line-height:1.7; margin:0; }
.demo-bottom { border-top:1px solid var(--ed-line); padding-top:1.3rem; }
.demo-bottom strong { font-weight:500; font-size:.82rem; }
.demo-bottom p { color:var(--ed-muted); font-size:.73rem; line-height:1.6; margin:.4rem 0 0; }
.demo-profile { display:flex; align-items:center; gap:1rem; margin:2rem 0; }
.demo-avatar { background:var(--ed-violet); color:white; border-radius:50%; width:50px; height:50px; display:grid; place-items:center; font:1.7rem var(--ed-serif); }
.demo-profile h3 { font:1.7rem var(--ed-serif); margin:0; }
.demo-profile p { color:var(--ed-muted); font-size:.75rem; margin:.3rem 0 0; }
.demo-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem 2rem; margin-bottom:1.7rem; }
.demo-profile-grid small { font:.55rem var(--ed-mono); color:var(--ed-violet); }
.demo-profile-grid p { color:var(--ed-muted); font-size:.78rem; line-height:1.6; }
.demo-issue { background:#f1eae1; border-left:2px solid #b48c5c; padding:1.2rem 1.4rem; margin:1.5rem 0; }
.demo-issue > span { font:.52rem var(--ed-mono); color:#8c6535; }
.demo-issue h3 { font:1.5rem var(--ed-serif); margin:.6rem 0; }
.demo-issue p { font-size:.78rem; line-height:1.6; color:var(--ed-muted); }
.demo-issue div { display:flex; gap:.5rem; flex-wrap:wrap; }
.demo-issue div span { font-size:.6rem; padding:.3rem .5rem; background:#faf9f5; border-radius:3px; }
.demo-issue.secondary { background:none; padding-block:.5rem; }
.ed-dark { background:#24292e; color:#f3f2ec; }
.ed-dark .ed-kicker { color:var(--ed-lime); }
.ed-dark h2 em { color:#b7a9ea; }
.audience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:3.5rem; margin-top:3rem; }
.audience-grid article { border-top:1px solid #ffffff22; padding-top:1.7rem; }
.audience-symbol { display:block; color:var(--ed-lime); font-size:2.3rem; margin-bottom:2rem; }
.audience-grid .ed-kicker { font-size:.57rem; margin-bottom:1rem; }
.audience-grid h3 { font:400 2rem/1.15 var(--ed-serif); letter-spacing:-.03em; margin:0 0 1rem; }
.audience-grid article > p:not(.ed-kicker) { font-size:.85rem; color:#b8bfc4; line-height:1.8; }
.audience-detail { display:block; font:.5rem/1.7 var(--ed-mono); letter-spacing:.04em; color:#949fa7; margin-top:2rem; }
.ed-dark-foot { display:flex; justify-content:space-between; align-items:center; gap:2rem; border-top:1px solid #ffffff22; margin-top:3.5rem; padding-top:2rem; }
.ed-dark-foot p { font:italic 1.4rem var(--ed-serif); color:#c7cdd0; }
.process-layout,.privacy-layout,.faq-layout,.costs-layout,.calculator-layout { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:start; }
.process-layout .ed-lead { margin:1.5rem 0; max-width:27rem; }
.process-steps article { display:flex; gap:1.8rem; padding:1.8rem 0; border-top:1px solid var(--ed-line); }
.process-steps article > span { font:.7rem var(--ed-mono); color:var(--ed-violet); padding-top:.4rem; }
.process-steps h3 { font:1.5rem var(--ed-serif); letter-spacing:-.02em; margin:0 0 .7rem; }
.process-steps p { font-size:.84rem; color:var(--ed-muted); line-height:1.8; margin:0; }
.privacy-section { border-block:1px solid var(--ed-line); padding:4.5rem 0; background:#ecebe3; }
.privacy-layout { grid-template-columns:.7fr 1fr; align-items:center; max-width:1000px; }
.privacy-seal { width:210px; height:250px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; margin:auto; transform:rotate(-7deg); }
.privacy-seal span { font:.62rem var(--ed-mono); letter-spacing:.15em; color:#858a78; }
.privacy-seal svg { width:150px; fill:none; stroke:#8a9279; stroke-width:1.5; }
.privacy-layout h2 { font-size:3.2rem; }
.privacy-layout p:not(.ed-kicker) { font-size:.9rem; line-height:1.8; color:var(--ed-muted); max-width:31rem; }
.privacy-layout .privacy-detail { font-size:.75rem!important; }
.faq-layout { grid-template-columns:.85fr 1fr; }
.faq-layout h2 { margin-bottom:1.5rem; }
.ed-faq details { border-top:1px solid var(--ed-line); }
.ed-faq details:last-child { border-bottom:1px solid var(--ed-line); }
.ed-faq summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.3rem 0; font-size:.88rem; font-weight:500; cursor:pointer; }
.ed-faq summary::-webkit-details-marker { display:none; }
.ed-faq summary span { color:var(--ed-violet); font-size:1.3rem; transition:transform .2s; }
.ed-faq details[open] summary span { transform:rotate(45deg); }
.ed-faq details p { font-size:.82rem; color:var(--ed-muted); line-height:1.8; margin:0 2rem 1.3rem 0; }
.ed-final { position:relative; overflow:hidden; padding:6rem 0; background:#e7e2f0; text-align:center; }
.ed-final .ed-container { position:relative; z-index:1; }
.ed-final h2 { font-size:clamp(3rem,5.4vw,5rem); margin-bottom:2rem; }
.ed-final .ed-kicker { color:var(--ed-violet); }
.ed-final p:not(.ed-kicker) { font-size:.73rem; color:var(--ed-muted); margin:1.1rem 0; }
.ed-final a { color:var(--ed-violet); font-size:.75rem; text-underline-offset:4px; }
.final-orbit { position:absolute; width:1000px; height:1000px; border:1px solid #6552bb15; border-radius:50%; left:50%; top:50%; transform:translate(-50%,-50%); }
.final-orbit::before,.final-orbit::after { content:""; position:absolute; inset:100px; border:1px solid #6552bb12; border-radius:50%; }
.final-orbit::after { inset:200px; }
body:not(.in-app) .ed-footer { padding:3rem 0 1.5rem; background:var(--ed-paper); border-color:var(--ed-line); }
.ed-footer-top { display:flex; gap:3rem; align-items:start; }
.ed-footer-brand { font-size:1.25rem; font-weight:600; letter-spacing:-.04em; text-decoration:none; color:var(--ed-ink); white-space:nowrap; }
.ed-footer-brand span { font-weight:400; font-size:1.7rem; vertical-align:middle; margin-right:.3rem; }
.ed-footer-top p { font:1.1rem/1.5 var(--ed-serif); color:var(--ed-muted); margin:0; }
.ed-footer-top nav { margin-left:auto; display:flex; gap:1.7rem; flex-wrap:wrap; }
.ed-footer-top nav a { font-size:.75rem; color:var(--ed-ink); text-decoration:none; }
.ed-footer-top nav a:hover { color:var(--ed-violet); }
.ed-footer-bottom { display:flex; justify-content:space-between; gap:1rem; margin-top:3rem; padding-top:1.3rem; border-top:1px solid var(--ed-line); font:.5rem/1.7 var(--ed-mono); letter-spacing:.06em; color:var(--ed-muted); }
/* Pricing */
.pricing-hero { padding:4.5rem 0 2rem; text-align:center; }
.pricing-hero h1 { font-size:clamp(3.2rem,5.4vw,5.2rem); }
.pricing-hero > .ed-lead { margin:1.5rem auto 2.5rem; max-width:36rem; }
.pricing-free { display:flex; align-items:center; text-align:left; gap:1.4rem; padding:1.5rem 1.8rem; background:#e9eddf; border:1px solid #d9dfc8; border-radius:5px; max-width:970px; margin:auto; }
.ed-free-credits { padding-top:0; }
.home-free { margin-bottom:0; }
.free-symbol { font-size:2.4rem; color:#667541; }
.pricing-free strong { font-size:1rem; font-weight:500; }
.pricing-free p { color:var(--ed-muted); font-size:.77rem; margin:.4rem 0 0; }
.pricing-free .ed-button { margin-left:auto; font-size:.8rem; padding:.8rem 1rem; }
.pricing-packages-section { padding:2rem 0 3.5rem; }
.pricing-heading { display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.pricing-heading .ed-kicker { margin:0 0 1.2rem; }
.pricing-heading > span { font-size:.7rem; color:var(--ed-muted); margin-bottom:1.2rem; }
.public-packages { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.public-package { position:relative; background:#faf9f5; border:1px solid var(--ed-line); border-radius:5px; padding:2rem; display:flex; flex-direction:column; }
.public-package.featured { background:#292e34; color:#f4f3ed; border-color:#292e34; }
.package-label { font:.58rem var(--ed-mono); letter-spacing:.1em; color:var(--ed-muted); text-transform:uppercase; margin:0 0 1rem; }
.featured .package-label { color:var(--ed-lime); }
.package-feature-tag { position:absolute; top:0; right:1.3rem; transform:translateY(-50%); padding:.4rem .7rem; background:var(--ed-lime); color:#363d29; font:.52rem var(--ed-mono); border-radius:3px; }
.public-package h3 { font:400 2.6rem/1.1 var(--ed-serif); letter-spacing:-.04em; margin:0; }
.package-credit-unit { font-size:.75rem; color:var(--ed-muted); margin:.4rem 0 1.8rem; }
.featured .package-credit-unit { color:#aeb6bd; }
.package-price { font-size:2.4rem; font-weight:500; letter-spacing:-.05em; margin:0 0 1.3rem; }
.package-price small { font-size:.66rem; color:var(--ed-muted); letter-spacing:0; font-weight:400; }
.featured .package-price small { color:#aeb6bd; }
.package-example { font-size:.8rem; line-height:1.7; color:var(--ed-muted); padding-top:1.2rem; border-top:1px solid var(--ed-line); min-height:4.5rem; }
.featured .package-example { color:#c1c9cf; border-color:#ffffff22; }
.package-unit-price { font:.55rem/1.6 var(--ed-mono); color:var(--ed-muted); margin:.8rem 0 1.5rem; }
.featured .package-unit-price { color:#aeb6bd; }
.public-package .ed-button { width:100%; margin-top:auto; font-size:.8rem; }
.pricing-payment-note,.pricing-config-error { text-align:center; color:var(--ed-muted); font-size:.73rem; line-height:1.6; margin-top:1.5rem; }
.pricing-config-error { color:#9c3f5e; }
.costs-layout { border-top:1px solid var(--ed-line); padding-top:3rem; }
.costs-layout .ed-lead { margin-top:1.5rem; }
.pricing-small { font-size:.75rem; color:var(--ed-muted); line-height:1.8; max-width:26rem; }
.public-cost-row { border-bottom:1px solid var(--ed-line); padding:1.2rem 0; display:flex; justify-content:space-between; align-items:center; gap:1.5rem; }
.public-cost-row:first-child { border-top:1px solid var(--ed-line); }
.public-cost-row strong { font-size:.87rem; font-weight:500; }
.public-cost-row small { display:block; font-size:.7rem; color:var(--ed-muted); margin-top:.4rem; }
.public-cost-row > span { font:.68rem/1.6 var(--ed-mono); color:var(--ed-violet); text-align:right; }
.calculator-section { background:#ecebe3; }
.calculator-layout { align-items:center; }
.calculator-layout .ed-lead { margin-top:1.5rem; }
.credit-calculator { padding:2rem; background:#faf9f5; border:1px solid var(--ed-line); border-radius:6px; }
.credit-calculator > label:first-child { display:flex; justify-content:space-between; align-items:center; font-size:.8rem; font-weight:500; gap:1rem; }
.credit-calculator output { font:1.5rem var(--ed-serif); color:var(--ed-violet); }
.credit-calculator input[type=range] { width:100%; margin:1.5rem 0 .5rem; accent-color:var(--ed-violet); cursor:pointer; }
.calculator-range { display:flex; justify-content:space-between; font:.55rem var(--ed-mono); color:var(--ed-muted); }
.calculator-base { display:flex; justify-content:space-between; padding:1.5rem 0 1rem; font-size:.8rem; }
.calculator-base strong { color:var(--ed-violet); font-weight:500; }
.calculator-option { display:flex; align-items:center; gap:.7rem; padding:.6rem 0; font-size:.8rem; cursor:pointer; }
.calculator-option input { width:16px; height:16px; accent-color:var(--ed-violet); }
.calculator-total { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--ed-line); margin-top:1rem; padding-top:1.3rem; }
.calculator-total span { font:.6rem var(--ed-mono); letter-spacing:.07em; }
.calculator-total strong { font:400 3rem var(--ed-serif); color:var(--ed-violet); }
.calculator-package { font-size:.76rem; color:var(--ed-muted); line-height:1.7; }
.calculator-disclaimer { font-size:.65rem; line-height:1.7; color:var(--ed-muted); margin:1rem 0 0; }
.marketing section[id] { scroll-margin-top:105px; }
.marketing button:focus-visible,.marketing a:focus-visible,.marketing input:focus-visible,.marketing summary:focus-visible,.ed-footer a:focus-visible { outline:3px solid #8573d5; outline-offset:5px; }
@media(min-width:1000px) { .atlas-person.p6 { animation:atlas-pulse 5s ease-in-out infinite; } }
@keyframes atlas-pulse { 0%,100% { stroke-width:1.5; } 50% { stroke-width:9; stroke-opacity:.15; } }
@media(max-width:1100px) { .ed-hero-grid { gap:2rem; } .ed-actions { gap:1rem; } .ed-button { font-size:.8rem; } .ed-format-strip .ed-container { gap:1rem; } .ed-format-strip div div { gap:.7rem; font-size:1.15rem; } .process-layout,.faq-layout,.costs-layout,.calculator-layout { gap:3rem; } .demo-content { padding:1.7rem; } .audience-grid { gap:2rem; } .ed-footer-top { gap:2rem; } }
@media(max-width:900px) { body:not(.in-app) .topnav { display:flex; gap:1rem; } body:not(.in-app) .topbar { gap:1rem; } body:not(.in-app) .topnav a { font-size:.7rem; } body:not(.in-app) .topbar-right { gap:.6rem; } body:not(.in-app) .brand h1 { font-size:1rem; } .ed-hero-grid { grid-template-columns:1fr 1fr; } .marketing h1 { font-size:3.2rem; } .ed-hero-copy .ed-lead { font-size:.88rem; } .ed-hero-foot { display:none; } .ed-reassurance { margin-bottom:0; } .atlas-top { font-size:.43rem; } .atlas-live { display:none; } .atlas { padding:1rem .8rem; } .atlas-note { padding:.7rem; } .ed-format-strip .ed-container > span:first-child { display:none; } .product-demo-grid { grid-template-columns:210px 1fr; } .demo-sidebar { padding:1.5rem 1rem; } .demo-timeline { grid-template-columns:1fr 1fr; gap:2rem; padding-top:2rem; } .demo-track { display:none; } .demo-event-number { display:none; } .demo-timeline article i { margin-bottom:.6rem; } .audience-grid h3 { font-size:1.7rem; } .public-package { padding:1.6rem; } .ed-footer-top { flex-wrap:wrap; } .ed-footer-top nav { width:100%; margin-left:0; } }
@media(max-width:700px) { body:not(.in-app) .topbar { padding:.75rem 4vw; flex-wrap:wrap; gap:.5rem 1rem; } body:not(.in-app) .topnav { order:3; width:100%; justify-content:center; padding-top:.5rem; border-top:1px solid var(--ed-line); gap:1.5rem; } body:not(.in-app) .topnav a { font-size:.72rem; } body:not(.in-app) .topbar-right { margin-left:auto; } body:not(.in-app) .topbar-cta { display:none; } .ed-hero { padding:2.6rem 0 2.5rem; } .ed-hero-grid { grid-template-columns:1fr; gap:2.4rem; } .marketing h1 { font-size:clamp(3.25rem,10.5vw,4.5rem); } .ed-hero-copy { padding:0; } .ed-hero-copy .ed-lead { font-size:.95rem; } .ed-kicker { font-size:.58rem; margin-bottom:1.2rem; } .ed-actions { gap:1rem; } .ed-button { font-size:.82rem; } .ed-reassurance { font-size:.68rem; } .atlas { padding:1.2rem; max-width:540px; width:100%; margin:auto; } .atlas-top { font-size:.5rem; } .atlas-live { display:block; } .atlas-note { padding:1rem; } .ed-format-strip .ed-container { flex-direction:column; gap:.7rem; } .ed-format-strip { padding:1rem 0; } .ed-format-strip div div { font-size:1.15rem; gap:1.1rem; } .ed-section { padding:3.7rem 0; } .ed-section-heading { display:block; margin-bottom:2rem; } .marketing h2 { font-size:clamp(2.6rem,8vw,3.5rem); } .ed-section-heading > p:last-child:not(.ed-kicker) { margin-top:1.4rem; max-width:none; font-size:.88rem; } .product-window-bar { padding:.8rem; } .product-window-bar strong { font-size:.7rem; } .demo-label { font-size:.43rem; } .product-demo-grid { display:block; } .demo-sidebar { border-right:none; border-bottom:1px solid var(--ed-line); padding:1rem; } .demo-sidebar > .ed-kicker,.demo-sidebar h3,.demo-sidebar-note { display:none; } .demo-tabs { flex-direction:row; gap:.4rem; } .demo-tabs button { flex:1; justify-content:center; padding:.7rem .4rem; font-size:.7rem; gap:.4rem; } .demo-tabs button i { display:none; } .demo-content { padding:1.5rem 1rem; } .demo-panel-heading { font-size:.48rem; } .demo-chip { font-size:.42rem; } .demo-timeline { gap:1.5rem 1rem; } .demo-profile-grid { gap:.7rem 1rem; } .audience-grid { grid-template-columns:1fr; gap:2.5rem; } .audience-symbol { float:right; margin:0; font-size:2rem; } .audience-grid h3 { font-size:2rem; } .audience-detail { margin-top:1.2rem; } .ed-dark-foot { flex-direction:column; align-items:start; margin-top:2.5rem; padding-top:1.5rem; gap:.5rem; } .ed-dark-foot p { font-size:1.25rem; } .process-layout,.privacy-layout,.faq-layout,.costs-layout,.calculator-layout { grid-template-columns:1fr; gap:2rem; } .process-steps article { padding:1.4rem 0; gap:1.3rem; } .privacy-seal { display:none; } .privacy-layout h2 { font-size:2.7rem; } .privacy-layout { gap:0; } .ed-final { padding:3.8rem 0; } .ed-final h2 { font-size:3rem; } .ed-final .ed-kicker { font-size:.54rem; } .ed-footer-top { gap:1.5rem; } .ed-footer-top p { font-size:1rem; margin-left:auto; } .ed-footer-top nav { gap:1rem 1.5rem; } .ed-footer-bottom { flex-direction:column; margin-top:2rem; gap:.4rem; } .pricing-hero { padding:3rem 0 1rem; } .pricing-hero h1 { font-size:3rem; } .pricing-hero .ed-lead { font-size:.9rem; } .pricing-free { flex-wrap:wrap; padding:1.4rem; gap:1rem; } .free-symbol { display:none; } .pricing-free .ed-button { width:100%; margin:0; } .pricing-heading { align-items:start; } .pricing-heading .ed-kicker { font-size:.53rem; } .pricing-heading > span { font-size:.6rem; max-width:100px; text-align:right; } .public-packages { grid-template-columns:1fr; gap:1.5rem; } .public-package { padding:1.8rem; } .public-package h3 { font-size:2.8rem; } .package-credit-unit { margin-bottom:1rem; } .package-example { min-height:0; } .credit-calculator { padding:1.5rem; } .costs-layout { padding-top:1.8rem; } .public-cost-row { gap:1rem; } .public-cost-row > span { font-size:.61rem; } }
@media(prefers-reduced-motion:reduce) { .atlas-person.p6 { animation:none; } .marketing * { scroll-behavior:auto; transition:none; } }

.brand { color:inherit; text-decoration:none; }

/* Editorial desk: interactive narrative sequence and assessment dossier. */
.ed-hero-grid { grid-template-columns:.95fr 1.05fr; gap:3rem; }
.ed-hero-copy h1 { font-size:clamp(3.1rem,4.9vw,4.7rem); line-height:1.07; }
.ed-hero-copy .ed-lead { max-width:33rem; }
.story-atlas { padding:1.4rem 1.6rem; }
.story-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:2rem 0 1.7rem; }
.story-heading span { font:.55rem/1.7 var(--ed-mono); color:#a8afb7; letter-spacing:.07em; }
.story-heading h3 { font:400 1.75rem/1.15 var(--ed-serif); letter-spacing:-.025em; margin:.4rem 0 0; }
.story-pages { white-space:nowrap; }
.story-toolbar { display:flex; align-items:center; gap:.7rem; padding-block:.8rem; border-block:1px solid #ffffff20; font:.55rem var(--ed-mono); color:#bdc4cb; }
.story-toolbar > span { color:var(--ed-lime); margin-right:auto; letter-spacing:.1em; }
.story-toolbar select { max-width:145px; min-width:0; padding:.4rem .6rem; border:1px solid #ffffff25; border-radius:3px; background:#30363c; color:#f3f2ed; font:.65rem system-ui; cursor:pointer; }
.story-chart { width:100%; display:block; overflow:visible; margin:.4rem 0; }
.story-guide { stroke:#ffffff13; fill:none; }
.story-curve { stroke:#a99ad9; fill:none; stroke-width:2; }
.story-node { cursor:pointer; outline:none; }
.story-hit { fill:transparent; }
.story-point { fill:#353c43; stroke:#c1b5e6; stroke-width:2; transition:fill .2s,stroke-width .2s; }
.story-node.selected .story-point { fill:var(--ed-lime); stroke:var(--ed-lime); stroke-width:9; }
.story-counter { font:9px var(--ed-mono); fill:#f3f2ec; text-anchor:middle; pointer-events:none; }
.story-node.selected .story-counter { fill:#252c20; }
.story-label { font:10px var(--ed-mono); fill:#c9ced4; text-anchor:middle; pointer-events:none; }
.story-node.selected .story-label { fill:var(--ed-lime); }
.story-node:focus-visible .story-hit { stroke:var(--ed-violet); stroke-width:1.5; }
.story-node:hover .story-point { stroke-width:5; }
.story-node.muted,.story-lane.muted { opacity:.25; }
.story-node.muted { cursor:default; }
.story-lanes { display:grid; gap:.5rem; margin:0 0 1.4rem; }
.story-lane { display:flex; align-items:center; gap:.8rem; transition:opacity .2s; }
.story-lane > span { width:3.5rem; font:.6rem var(--ed-mono); color:#b6bfc6; }
.story-lane > div { display:grid; grid-template-columns:repeat(5,1fr); flex:1; gap:.5rem; }
.story-lane i { height:3px; background:#ffffff0a; border-radius:2px; }
.story-lane i.present { background:#a99ad960; }
.story-lane i.present.current { background:var(--ed-lime); }
.story-detail { min-height:190px; border:1px solid #ffffff20; border-radius:4px; padding:1rem 1.1rem; background:#ffffff05; }
.story-detail-top { display:flex; justify-content:space-between; gap:.5rem; font:.52rem/1.6 var(--ed-mono); color:#b6a8e6; letter-spacing:.04em; }
.story-detail h4 { font:400 1.5rem var(--ed-serif); margin:.5rem 0; }
.story-detail > p { font-size:.75rem; color:#bcc5cd; line-height:1.7; margin:0 0 .9rem; }
.story-evidence { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:.5rem; font:.49rem/1.6 var(--ed-mono); color:#aeb9c4; }
#storyFinding { padding:.25rem .4rem; background:#d9ef9912; color:var(--ed-lime); border-radius:2px; }
#storyFinding.issue { color:#edc194; background:#edc19412; }
.story-bottom { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:.9rem; }
.story-bottom > div { display:flex; gap:.4rem; }
.story-bottom button { border:1px solid #ffffff25; background:none; color:#e9ecee; border-radius:3px; cursor:pointer; padding:.45rem .8rem; min-height:36px; }
.story-bottom button:disabled { opacity:.3; cursor:default; }
.story-bottom .story-report-link { padding:.5rem 0; border:none; border-radius:0; color:var(--ed-lime); font:.68rem system-ui; text-align:right; }
.story-atlas .atlas-caption { font-size:.49rem; margin-top:1rem; }
.report-summary { margin:1.5rem 0; }
.report-summary > span,.report-grid small,.report-priorities small { font:.55rem/1.6 var(--ed-mono); color:var(--ed-violet); letter-spacing:.04em; }
.report-summary h3 { font:400 1.8rem/1.15 var(--ed-serif); margin:.5rem 0 .8rem; letter-spacing:-.03em; }
.report-summary p,.report-grid p { font-size:.8rem; line-height:1.7; color:var(--ed-muted); }
.report-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; border-block:1px solid var(--ed-line); padding:1.1rem 0; }
.report-grid strong { display:block; font-size:.8rem; font-weight:500; margin:.6rem 0; }
.report-grid p { margin:0; font-size:.73rem; }
.report-priorities { padding:1.2rem 0 .5rem; }
.report-priorities ol { padding-left:1.3rem; font-size:.78rem; line-height:1.9; color:var(--ed-muted); }
.tool-demo-link { color:var(--ed-lime); border:none; border-bottom:1px solid #d9ef9940; background:none; cursor:pointer; font:.75rem system-ui; padding:.5rem 0; margin-top:1rem; }
.ed-dark .ed-section-heading > p:last-child { color:#b8bfc4; }
@media(max-width:1100px) { .ed-hero-grid { gap:2rem; } .story-atlas { padding:1.2rem; } }
@media(max-width:900px) { .ed-hero-grid { grid-template-columns:1fr; max-width:720px; } .ed-hero-copy h1 { font-size:3.9rem; } .ed-hero-copy .ed-lead { max-width:38rem; } .story-heading h3 { font-size:1.7rem; } }
@media(max-width:700px) { .ed-hero-grid { gap:2rem; } .ed-hero-copy h1 { font-size:clamp(2.8rem,10vw,3.8rem); } .story-atlas { padding:1.1rem; } .story-heading { margin:1.3rem 0; } .story-heading h3 { font-size:1.4rem; } .story-heading .story-pages { display:none; } .story-toolbar { gap:.4rem; } .story-toolbar select { font-size:.65rem; } .story-chart { margin:.9rem 0; } .story-label { font-size:12px; } .story-point { r:12px; } .story-hit { r:30px; } .story-detail { min-height:240px; padding:.9rem; } .story-detail-top { font-size:.48rem; } .story-detail > p { font-size:.78rem; } .story-evidence { font-size:.49rem; } .story-bottom .story-report-link { font-size:.65rem; } .demo-tabs { flex-wrap:wrap; } .demo-tabs button { flex:1 1 40%; justify-content:start; padding:.7rem; } .report-summary h3 { font-size:1.65rem; } .report-grid { grid-template-columns:1fr; gap:1.2rem; } .pricing-hero h1 { font-size:2.7rem; } }
@media(prefers-reduced-motion:reduce) { .story-point,.story-lane { transition:none; } }
.ed-hero-grid { align-items:start; }
.ed-hero-copy { padding:2rem 0 0; }
.hero-tools { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1.8rem; }
.hero-tools button { border:1px solid var(--ed-line); border-radius:3px; background:#faf9f5; color:var(--ed-ink); font:.68rem/1.4 system-ui; padding:.45rem .65rem; cursor:pointer; }
.hero-tools button:hover { border-color:var(--ed-violet); color:var(--ed-violet); }
.demo-timeline { grid-template-columns:repeat(5,1fr); gap:1rem; }
@media(max-width:900px) { .demo-timeline { grid-template-columns:1fr 1fr; } .ed-hero-copy { padding:0; } }
@media(max-width:700px) { .hero-tools { gap:.4rem; margin-bottom:1.5rem; } .hero-tools button { font-size:.65rem; } }
.story-point { r:12px; }
.story-counter { font-size:11px; }
.story-label { font-size:11px; }
@media(max-width:700px) { .story-point { r:20px; } .story-hit { r:46px; } .story-counter { font-size:18px; } .story-label { font-size:18px; } }

/* ===== Unifica la home all'aspetto dell'app (tutto sans, palette app) ===== */
body:not(.in-app) {
  background:
    radial-gradient(1100px 560px at 82% -12%, rgba(79, 143, 208, 0.10), transparent),
    radial-gradient(900px 480px at 0% 0%, rgba(109, 91, 208, 0.09), transparent),
    var(--ed-paper);
}
body:not(.in-app) .topbar { background: rgba(244, 246, 251, 0.86); border-color: var(--ed-line); }
body:not(.in-app) .brand-mark { color: var(--ed-violet); }
body:not(.in-app) .topbar-cta { background: var(--ed-violet); border-color: var(--ed-violet); color: #fff; border-radius: 10px; }
body:not(.in-app) .lang-switch button.active { background: var(--ed-violet); }
.marketing h1, .marketing h2, .marketing h1 em, .marketing h2 em { font-family: var(--ed-serif); }

.ed-button { background: var(--ed-violet); border-color: var(--ed-violet); border-radius: 10px; box-shadow: 0 10px 30px rgba(60, 60, 110, 0.08); }
.ed-button:hover { background: #5b49bd; border-color: #5b49bd; transform: translateY(-1px); box-shadow: 0 12px 26px rgba(109, 91, 208, 0.22); }
.ed-button.light { background: #fff; color: var(--ed-violet); border-color: var(--ed-line); }
.ed-button.light:hover { background: #edeafb; }
.product-window { background: #fff; border-color: var(--ed-line); border-radius: 16px; box-shadow: 0 10px 30px rgba(60, 60, 110, 0.08); }
.demo-timeline article i { border-color: #fff; outline-color: var(--ed-muted); background: var(--ed-muted); }
.demo-issue div span { background: #f4f6fb; }

.ed-dark { background: linear-gradient(180deg, #edeafb, #f4f6fb); color: var(--ed-ink); }
.ed-dark .ed-kicker { color: var(--ed-violet); }
.ed-dark h2 em { color: var(--ed-violet); }
.ed-dark .ed-section-heading > p:last-child { color: var(--ed-muted); }
.ed-dark-foot { border-top-color: var(--ed-line); }
.ed-dark-foot p { color: var(--ed-muted); }
.audience-grid article { border-top-color: var(--ed-line); }
.audience-grid article > p:not(.ed-kicker) { color: var(--ed-muted); }
.audience-detail { color: var(--ed-muted); }

.atlas { background: linear-gradient(180deg, #ffffff, #f2f4fb); border: 1px solid var(--ed-line); border-radius: 16px; color: var(--ed-ink); box-shadow: 0 10px 30px rgba(60, 60, 110, 0.08); }
.atlas-top { color: var(--ed-muted); }
.atlas-live { color: var(--ed-violet); }
.atlas-live i { background: var(--ed-violet); }
.atlas-orbit { stroke: var(--ed-violet); stroke-opacity: 0.20; }
.atlas-axis { stroke: var(--ed-ink); stroke-opacity: 0.06; }
.atlas-thread { stroke: var(--ed-violet); stroke-opacity: 0.25; }
.atlas-thread.accent { stroke: var(--ed-violet); stroke-opacity: 0.60; }
.atlas-event { fill: #9299c8; stroke: #fff; }
.atlas-event.key { fill: var(--ed-violet); stroke: rgba(109, 91, 208, 0.18); }
.atlas-event-label { fill: var(--ed-muted); }
.atlas-person { fill: #e7e9f7; stroke: var(--ed-violet); }
.atlas-person.p6 { fill: var(--ed-violet); stroke: #d7cdfa; }
.atlas-person-label { fill: #fff; }
.atlas-coordinate { fill: var(--ed-muted); }
.atlas-note { background: #fff; border: 1px solid var(--ed-line); }
.atlas-note-icon { color: var(--ed-violet); }
.atlas-note span:not(.atlas-note-icon) { color: var(--ed-muted); }
.atlas-caption { color: var(--ed-muted); }

.public-package { background: #fff; border-color: var(--ed-line); border-radius: 16px; box-shadow: 0 10px 30px rgba(60, 60, 110, 0.08); }
.public-package.featured { background: #edeafb; color: var(--ed-ink); border-color: var(--ed-violet); }
.package-feature-tag { background: var(--ed-violet); color: #fff; }
.credit-calculator { background: #fff; border-color: var(--ed-line); border-radius: 16px; box-shadow: 0 10px 30px rgba(60, 60, 110, 0.08); }
#storyFinding { background: rgba(79, 143, 208, 0.12); color: var(--ed-violet); }
.tool-demo-link { color: var(--ed-violet); border-bottom-color: rgba(109, 91, 208, 0.4); }
.hero-tools button { background: #fff; border-color: var(--ed-line); border-radius: 10px; }

/* ===== Apple touch (home) ===== */
.marketing { font-family: var(--font, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif); }
.marketing h1, .marketing h2, .marketing h1 em, .marketing h2 em { font-weight: 600; letter-spacing: -.035em; }
body:not(.in-app) { background: var(--ed-paper); }
body:not(.in-app) .topbar {
  background: rgba(251, 251, 253, 0.72);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  backdrop-filter: saturate(180%) blur(20px);
  border-color: var(--ed-line);
}
.ed-button { border-radius: 12px; background: var(--ed-violet); border-color: var(--ed-violet); font-weight: 600; box-shadow: 0 6px 16px rgba(109, 91, 208, .25); }
.ed-button:hover { background: #6150c4; border-color: #6150c4; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(109, 91, 208, .28); }
.ed-button:active { transform: scale(.98); }
.ed-button.light { background: #fff; color: var(--ed-violet); border-color: var(--ed-line); box-shadow: 0 6px 16px rgba(0, 0, 0, .08); }
.ed-button.light:hover { background: #f0eefc; }
.product-window, .public-package, .credit-calculator, .atlas { border-radius: 20px; border-color: var(--ed-line); box-shadow: 0 6px 24px rgba(0, 0, 0, .06); }
.atlas { background: #fff; }
.public-package.featured { background: #f0eefc; border-color: var(--ed-violet); }
.ed-dark { background: linear-gradient(180deg, #f0eefc, #f5f5f7); }
.ed-kicker { letter-spacing: .14em; }
input:not([type="range"]):not([type="checkbox"]):not([type="radio"]), select, textarea { border-radius: 12px; }
input[type="range"], input[type="checkbox"], input[type="radio"] { accent-color: var(--ed-violet); }

/* Demo animata automaticamente */
.demo-panel:not([hidden]) { animation: demoFade .5s cubic-bezier(.2, .7, .3, 1); }
.demo-panel:not([hidden]) > * { animation: demoRise .55s cubic-bezier(.2, .7, .3, 1); }
@keyframes demoFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes demoRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .demo-panel:not([hidden]), .demo-panel:not([hidden]) > * { animation: none; }
}

/* Movimento continuo dell'immagine principale (atlas) */
.atlas-orbit { animation: atlasDash 14s linear infinite; }
.atlas-thread.accent { animation: atlasThread 9s linear infinite; }
.atlas-event.key { animation: atlasPulse 2.8s ease-in-out infinite; }
.atlas-live i { animation: atlasBlink 1.6s ease-in-out infinite; }
@keyframes atlasDash { to { stroke-dashoffset: -160; } }
@keyframes atlasThread { to { stroke-dashoffset: -40; } }
@keyframes atlasPulse { 0%, 100% { stroke-width: 7; } 50% { stroke-width: 13; } }
@keyframes atlasBlink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) {
  .atlas-orbit, .atlas-thread.accent, .atlas-event.key, .atlas-live i { animation: none; }
}

/* CTA del dossier */
.dossier-cta { margin: -0.5rem 0 2.5rem; }

/* --- Contrasto del telo narrativo su tema chiaro --- */
html:not([data-theme="dark"]) .story-heading span { color: var(--ed-muted); }
html:not([data-theme="dark"]) .story-toolbar { color: var(--ed-muted); border-color: var(--ed-line); }
html:not([data-theme="dark"]) .story-toolbar select { background:#fff; color:var(--ed-ink); border-color:var(--ed-line); }
html:not([data-theme="dark"]) .story-guide { stroke: rgba(0,0,0,.07); }
html:not([data-theme="dark"]) .story-label { fill: var(--ed-muted); }
html:not([data-theme="dark"]) .story-counter { fill: var(--ed-ink); }
html:not([data-theme="dark"]) .story-lane > span { color: var(--ed-muted); }
html:not([data-theme="dark"]) .story-lane i { background: rgba(0,0,0,.06); }
html:not([data-theme="dark"]) .story-lane i.present { background: rgba(109,91,208,.35); }
html:not([data-theme="dark"]) .story-detail { background:#f8f8fc; border-color: var(--ed-line); }
html:not([data-theme="dark"]) .story-detail-top { color: var(--ed-violet); }
html:not([data-theme="dark"]) .story-detail > p { color:#565b64; }
html:not([data-theme="dark"]) .story-evidence { color: var(--ed-muted); }
html:not([data-theme="dark"]) .story-bottom button { border-color: var(--ed-line); color: var(--ed-ink); }
html:not([data-theme="dark"]) #storyFinding.issue { color:#8a5a1f; background: rgba(138,90,31,.12); }

/* --- Dark theme: landing --- */
[data-theme="dark"] body:not(.in-app) { --ed-paper: #15171c; --ed-ink: #e8eaef; --ed-muted: #9aa1ad; --ed-line: rgba(255, 255, 255, 0.12); }
[data-theme="dark"] body:not(.in-app) .topbar { background: rgba(21, 23, 28, 0.92); border-color: var(--ed-line); }
[data-theme="dark"] .product-window,
[data-theme="dark"] .public-package,
[data-theme="dark"] .credit-calculator,
[data-theme="dark"] .atlas { background: #1e222a; border-color: var(--ed-line); color: var(--ed-ink); }
[data-theme="dark"] .ed-dark { background: linear-gradient(180deg, #1c2027, #15171c); }
[data-theme="dark"] .ed-dark .ed-kicker,
[data-theme="dark"] .ed-dark h2 em { color: #bdb1ff; }
[data-theme="dark"] .ed-button.light { background: #2b2740; color: var(--ed-ink); border-color: var(--ed-line); }
[data-theme="dark"] .demo-issue div span,
[data-theme="dark"] .hero-tools button { background: #262b34; color: var(--ed-ink); }
[data-theme="dark"] .atlas-event-label,
[data-theme="dark"] .atlas-caption,
[data-theme="dark"] .atlas-coordinate { fill: var(--ed-muted); }
[data-theme="dark"] .public-package.featured { background: #24283a; border-color: var(--ed-violet); }
[data-theme="dark"] .ed-text-link { color: var(--ed-ink); }
[data-theme="dark"] .atlas-note { background: #242833; border-color: var(--ed-line); }
[data-theme="dark"] .atlas-note span:not(.atlas-note-icon) { color: var(--ed-muted); }

@media(max-width:900px) {
  .plot-promo-layout { grid-template-columns:1fr; }
  .plot-promo-window { transform:none; }
}
@media(max-width:560px) {
  .plot-promo-board { grid-template-columns:1fr; }
  .promo-card { min-height:138px; }
  .promo-card.turn { transform:none; }
  .plot-promo-lanes { display:none; }
}
[data-theme="dark"] .plot-promo-section { background:linear-gradient(145deg,#201d2d,#191c22 58%,#1c2422); }
