/* DiskBolt site, Plum Ink (dark). Layout follows the Lovable one-pager (2 Nov 2026).
   Source of truth: tools/site.src.css. build.py copies it to site/assets/site.css and appends utility classes.
   Fonts: self-hosted Bricolage Grotesque (display) + Instrument Sans (text), OFL, assets/fonts/ (see FONTS-LICENCES.md). No external requests.
   Sunshine only in the selectors allow-listed by verify.py check 5 (SUN_ALLOW). */
@font-face{font-family:"Bricolage Grotesque";src:url(fonts/bricolage-grotesque-latin-var.woff2?v=4fd48b2c) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans-latin-var.woff2?v=6219bc4b) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --plum:#2A1238;--cream:#FFF6EC;--sun:#FFC93C;--coral:#FF7A4D;--pink:#FF3D81;--pink-deep:#C2185B;--pink-soft:#FF7AA8;
  --bg:#1A1320;--surface:#2C2336;--surface2:#221A29;--text:#FFF6EC;--text2:#C3B4C9;--text3:#9A8A9F;--line:#352B3D;
  --link:#FF7AA8;--btn-bg:#FFF6EC;--btn-fg:#2A1238;--focus:#0A84FF;--chip:rgba(255,246,236,.08);--note-bg:#2C2336;
  --sans:"Instrument Sans",-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;
  --display:"Bricolage Grotesque",-apple-system,BlinkMacSystemFont,"SF Pro Display",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --wrap:1152px;color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 1rem/1.6 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--link);text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
code,.mono{font-family:var(--mono);font-size:.92em}
.wrap{max-width:calc(var(--wrap) + 48px);margin:0 auto;padding:0 24px}
.nb{white-space:nowrap}
.center{text-align:center;justify-content:center;margin-left:auto;margin-right:auto}
.skip{position:absolute;left:12px;top:-60px;background:var(--btn-bg);color:var(--btn-fg);padding:12px 16px;border-radius:8px;z-index:10}
.skip:focus{top:12px}
.review-flag{background:var(--surface2);color:var(--text2);font-size:.78rem;text-align:center;padding:8px 16px;line-height:1.4;border-bottom:1px solid var(--line)}
/* header */
.site-header{border-bottom:1px solid var(--line);background:rgba(26,19,32,.85)}
.site-header .wrap{display:flex;align-items:center;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;min-height:44px;margin-right:auto;color:var(--text);text-decoration:none}
.brand img{width:32px;height:32px;flex:none}
.wordmark{font-family:var(--display);font-weight:700;font-size:1.125rem;line-height:1.75rem;letter-spacing:0}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:2px;align-items:center}
.nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--link);text-decoration:none;font-size:.9rem;border-radius:999px}
.nav a:hover{background:var(--chip)}
.nav a[aria-current=page]{color:var(--text);font-weight:600}
.head-cta{min-height:44px;padding:0 18px;font-size:.9rem}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;font-size:.9rem;color:var(--text)}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:"";width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:-4px 0 0 10px}
.menu[open] summary::after{transform:rotate(-135deg);margin-top:4px}
.menu nav{position:absolute;right:0;top:calc(100% + 8px);z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:8px;min-width:200px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
.menu ul{list-style:none;margin:0;padding:0}
.menu a{display:flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;color:var(--text);text-decoration:none}
.menu a[aria-current=page]{background:var(--chip);font-weight:600}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 24px;border-radius:12px;background:var(--btn-bg);color:var(--btn-fg);font-weight:600;font-size:1rem;line-height:1.5rem;text-decoration:none;border:0}
.btn:hover{opacity:.92}
.btn .ic{width:16px;height:16px}
/* Lovable pill: Cream fill, Plum label, 14/28 padding, soft Bolt Pink glow under it (never a pink or Sunshine fill) */
.btn-pill{border-radius:999px;min-height:52px;padding:14px 28px;gap:8px;box-shadow:0 20px 60px -15px rgba(255,61,129,.35);transition:transform .15s ease}
.btn-pill:hover{opacity:1;transform:translateY(-2px)}
@media (prefers-reduced-motion:reduce){.btn-pill{transition:none}.btn-pill:hover{transform:none}}
.site-header .btn-pill{min-height:40px;padding:8px 16px;font-size:.875rem;line-height:1.25rem;box-shadow:none}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.price{font-size:.9rem;color:var(--text2)}
.price strong{color:var(--text);font-weight:700}
.honesty{font-size:.85rem;color:var(--text2);margin:14px 0 0;max-width:52ch}
.wire-note{font-size:.8rem;color:var(--text2);margin:6px 0 0}
/* type */
h1,h2,h3{font-family:var(--display);text-wrap:balance}
h1{font-size:clamp(2.6rem,6.6vw,6rem);line-height:.95;letter-spacing:-.03em;margin:0 0 24px;font-weight:800}
h2{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.05;letter-spacing:-.03em;margin:0 0 16px;font-weight:700}
h3{font-size:1.25rem;line-height:1.3;margin:0 0 8px;font-weight:600;letter-spacing:-.03em}
.h-xl{font-size:clamp(2.2rem,4.4vw,3.75rem);font-weight:800;line-height:1.04}
.h-lg{font-size:clamp(2rem,3.4vw,3rem);line-height:1.06}
.h-md{font-size:clamp(1.75rem,2.6vw,2.25rem)}
p{margin:0 0 16px}
.muted{color:var(--text2)}
.lede{font-size:1.25rem;line-height:1.5;color:var(--text2);margin:0 0 32px;max-width:42ch}
.section-intro{max-width:60ch;color:var(--text2);font-size:1.125rem}
.kicker{font-size:.875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--link);margin:0 0 10px}
.eyebrow{font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text2);margin:0 0 16px}
.more{margin-top:28px}
.more a{font-weight:600}
/* sections */
section{padding:80px 0}
.sec{padding:112px 0}
.pt0{padding-top:0}
.glow{background-image:radial-gradient(65% 55% at 50% 0%,rgba(255,61,129,.15) 0%,rgba(0,0,0,0) 70%)}
/* hero */
.hero{padding:96px 0 72px;text-align:center;overflow:hidden}
.hero .lede{margin-left:auto;margin-right:auto}
.pill{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:500;color:var(--text2);background:rgba(44,35,54,.6);border:1px solid var(--line);border-radius:999px;padding:6px 16px;margin:0 0 24px}
.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--coral)}
.hero .honesty{margin-top:16px}
.hero-stage{position:relative;max-width:896px;margin:64px auto 0;padding:0 0 40px}
.hero-stage figcaption{font-size:.78rem;color:var(--text2);margin-top:36px}
/* window frame around real captures */
.win{background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.45),0 0 0 1px var(--line)}
.win-bar{display:flex;gap:6px;padding:12px 16px;background:var(--surface2)}
.win-bar span{width:12px;height:12px;border-radius:50%;background:var(--coral)}
.win-bar span:nth-child(2){background:var(--pink)}
.win-bar span:nth-child(3){background:var(--text3)}
.win img{width:100%}
.hero-stage .win-dialog{position:absolute;width:42%;right:-12px;bottom:-24px}
/* tiles strip */
.tiles{padding:0;background:rgba(44,35,54,.4);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tiles ul{list-style:none;margin:0;padding:28px 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.tiles li{display:flex;gap:16px;align-items:flex-start}
.tiles .ic{color:var(--link);flex:none;margin-top:4px}
.tiles .t{font-weight:600;margin:0}
.tiles .s{font-size:.875rem;color:var(--text2);margin:0}
/* trust cards */
.cards{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:32px}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}
.ic-box{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:rgba(255,122,168,.12);color:var(--link)}
.card .n{font-family:var(--mono);font-size:.85rem;color:var(--text2)}
.card h3{font-size:1.4rem}
.card p{margin:0}
/* numbered steps */
.numbered{list-style:none;padding:0;margin:32px 0 0}
.numbered li{display:flex;gap:16px;margin-bottom:24px}
.numbered .badge{flex:none;width:32px;height:32px;border-radius:50%;background:var(--cream);color:var(--plum);font:700 .9rem/32px var(--sans);text-align:center}
.numbered .t{font-weight:650;margin:0}
.numbered p{margin:0}
/* plum band (Full Disk Access) */
.plum-band{background:linear-gradient(160deg,#2A1238 0%,#1A1320 70%);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:96px 0}
.plum-band .kicker{color:var(--cream)}
.plum-band .muted{color:#D9CBE0}
.ticks{list-style:none;padding:0;margin:20px 0 0}
.ticks li{display:flex;gap:10px;align-items:center;font-size:.92rem;margin-bottom:8px}
.ticks .ic{color:var(--link);flex:none}
/* accordion (details/summary, no JS) */
.narrow .wrap{max-width:768px}
.accordion{background:var(--surface);border:1px solid var(--line);border-radius:26px;margin-top:40px;overflow:hidden}
.accordion details+details{border-top:1px solid var(--line)}
.accordion summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 24px;min-height:44px;font-weight:600}
.accordion summary::-webkit-details-marker{display:none}
.accordion .plus{flex:none;position:relative;width:14px;height:14px}
.accordion .plus::before,.accordion .plus::after{content:"";position:absolute;left:0;top:6px;width:14px;height:2px;background:var(--link);border-radius:1px}
.accordion .plus::after{transform:rotate(90deg)}
.accordion details[open] .plus::after{display:none}
.accordion details p{padding:0 24px 22px;margin:0}
/* final CTA */
.final{border:1px solid var(--line);border-radius:40px;padding:80px 32px;text-align:center}
.final .muted{max-width:56ch;margin:0 auto 32px}
/* two col */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.split.top{align-items:start}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:12px 0 12px 30px;border-bottom:1px solid var(--line);position:relative}
.checklist li::before{content:"";position:absolute;left:4px;top:21px;width:10px;height:10px;border-radius:50%;background:var(--link)}
/* feature rows */
.feature{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;padding:56px 0;border-top:1px solid var(--line)}
.feature:nth-of-type(even) .feature-text{order:2}
.feature img{border-radius:18px;box-shadow:0 24px 48px rgba(0,0,0,.4),0 0 0 1px var(--line)}
.tag{display:inline-block;font-size:.78rem;font-weight:600;padding:4px 12px;border-radius:999px;background:var(--chip);border:1px solid var(--line);color:var(--text2);margin-bottom:12px}
.planned-list{columns:2;gap:40px;padding-left:20px}
.planned-list li{margin-bottom:10px;break-inside:avoid}
/* pricing */
.price-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:40px;max-width:560px;background-image:radial-gradient(80% 60% at 50% 0%,rgba(255,61,129,.12) 0%,rgba(0,0,0,0) 70%)}
.price-big{font-family:var(--display);font-size:3rem;font-weight:800;letter-spacing:-.03em;line-height:1;margin:8px 0 6px}
.price-card .btn{border-radius:999px}
/* faq page */
.faq{max-width:780px}
.faq h2{font-size:1.3rem;margin:40px 0 10px;letter-spacing:-.01em}
.faq article{border-top:1px solid var(--line)}
.faq p{color:var(--text2)}
.toc{columns:2;gap:32px;padding-left:20px}
.toc li{margin-bottom:8px}
/* callout */
.callout{background:var(--note-bg);border:1px solid var(--line);border-radius:20px;padding:20px 24px;margin:24px 0}
.callout p:last-child{margin:0}
.draft{border-color:var(--link)}
.unknown{font-family:var(--mono);font-size:.9em;background:var(--chip);padding:1px 6px;border-radius:4px}
.dialog-solo img{width:100%;max-width:min(380px,100%);margin:0 auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.45))}
.reveal img{border-radius:18px;box-shadow:0 24px 48px rgba(0,0,0,.4),0 0 0 1px var(--line)}
/* page head */
.page-head{padding:64px 0 24px;background-image:radial-gradient(60% 80% at 50% 0%,rgba(255,61,129,.12) 0%,rgba(0,0,0,0) 70%)}
.page-head h1{font-size:clamp(2.2rem,4.4vw,3.6rem)}
.crumbs{font-size:.88rem;color:var(--text2);margin-bottom:12px}
.crumbs ol{list-style:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs li{display:flex;align-items:center}
.crumbs li+li::before{content:"/";margin-right:8px}
.crumbs a{display:inline-flex;min-height:44px;align-items:center}
/* footer */
.site-footer{border-top:1px solid var(--line);padding:28px 0;font-size:.875rem;color:var(--text2)}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px}
.site-footer p{margin:0;display:flex;align-items:center;gap:10px}
.site-footer strong{color:var(--text)}
.site-footer .foot-icon{width:24px;height:24px;flex:none}
.site-footer ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0 4px}
.site-footer li a{display:inline-flex;min-height:44px;align-items:center;padding:0 8px;text-decoration:none}
.site-footer li a:hover{text-decoration:underline}
/* motion: CSS only, gated */
@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){
  .hero-stage .win-dialog{animation:rise linear both;animation-timeline:view();animation-range:entry 0% cover 50%}
}}
@keyframes rise{from{transform:translateY(18%)}to{transform:none}}
/* responsive */
@media (max-width:980px){
  .split,.feature{grid-template-columns:1fr;gap:32px}
  .feature:nth-of-type(even) .feature-text{order:0}
  .tiles ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav{display:none}
  .menu{display:block}
}
@media (max-width:720px){
  .wrap{padding:0 20px}
  section{padding:56px 0}
  .sec{padding:72px 0}
  .pt0{padding-top:0}
  .plum-band{padding:64px 0}
  .hero{padding:56px 0 40px}
  .lede{font-size:1.08rem}
  .site-header .wrap{gap:8px}
  .wordmark{font-size:1.0625rem}
  .site-header .btn-pill{padding:8px 14px;font-size:.85rem}
  .menu summary{padding:0 12px}
  .hero .cta-row{flex-direction:column}
  .hero-stage{margin-top:40px;padding-bottom:0}
  .hero-stage .win-dialog{display:none}
  .hero-stage figcaption{margin-top:16px}
  .win{border-radius:16px}
  .win-bar{padding:9px 12px}.win-bar span{width:9px;height:9px}
  .tiles ul{gap:20px 12px;padding:24px 0}
  .tiles li{gap:10px}
  .cards{grid-template-columns:1fr;gap:14px}
  .card{padding:24px}
  .accordion summary{padding:18px 20px}
  .accordion details p{padding:0 20px 18px}
  .final{padding:48px 20px;border-radius:28px}
  .toc,.planned-list{columns:1}
  .price-card{padding:28px 22px}
  .site-footer .wrap{flex-direction:column;align-items:flex-start}
}
@media (max-width:400px){.tiles ul{grid-template-columns:1fr}}
@media print{.review-flag{display:none}}
/* QA round 1 */
.hero .lede{max-width:672px}
.hero .honesty{margin:16px auto 0;text-align:center}
.hero-stage figcaption{margin-top:64px}
@media (max-width:720px){.hero-stage figcaption{margin-top:16px}}
/* Richer gradient (2 Nov 2026): Hot Coral -> Bolt Pink only, full opacity, no Sunshine, no pastel stops */
.grad{color:var(--coral);background-image:linear-gradient(135deg,var(--sun) 0%,var(--coral) 50%,var(--pink) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.final{background-color:#1A1320;background-image:radial-gradient(70% 60% at 50% 0%,rgba(255,61,129,.10) 0%,rgba(0,0,0,0) 70%),linear-gradient(160deg,#2A1238 0%,#1A1320 75%)}
/* Sunshine Tier A, approved by the owner 2 Nov 2026 10:41: Full Disk Access band only (B4 gradient lives in .grad above). Keep in sync with SUN_ALLOW in verify.py */
.plum-band h2{color:var(--sun)}
.plum-band .ticks .ic{color:var(--sun)}
/* Sunshine Tier B1-B6, approved 2 Nov 2026 10:41 */
.plum-band .kicker{color:var(--sun)}                       /* B1 FDA eyebrow */
.pill .dot{background:var(--sun)}                          /* B2 hero pill dot */
.win-bar span:nth-child(1){background:var(--sun)}          /* B3 window dots: sun, coral, pink */
.win-bar span:nth-child(2){background:var(--coral)}
.win-bar span:nth-child(3){background:var(--pink)}
.numbered .badge{background:linear-gradient(135deg,var(--sun) 0%,var(--coral) 50%,var(--pink) 100%);color:var(--plum)}  /* B5 step badges, Plum numerals */
.sec .split .kicker{color:var(--cream)}                    /* B6 Uninstaller eyebrow Cream (no Sunshine) */
/* BEGIN generated utility classes (from former style="" attributes; tools/build.py) */
.u-1{border-top:1px solid var(--line) !important}
.u-2{padding-top:16px !important}
.u-3{margin:0 !important}
.u-4{margin-top:24px !important}
.u-5{margin-top:40px !important}
.u-6{padding-top:0 !important}
.u-7{max-width:820px !important}
.u-8{padding-bottom:72px !important}
.u-9{max-width:820px !important;padding-bottom:72px !important}
/* END generated utility classes */
