/* CraneShift brand v2 "Ink and mint" (docs/brand.md). Mint means "done by AI Mike and verified": used sparingly. */
:root {
  --bg: #EEF4F2; --surface: #FFFFFF; --line: #DCE5E2;
  --ink: #0F1B2D; --text-2: #4A5A6E; --text-3: #5F6E80;
  --mint: #3DDC97; --mint-bg: #D3F5E5; --mint-tx: #0E6B49;
  --coral-tx: #A3381C;
  --btn-bg: #0F1B2D; --btn-fg: #FFFFFF; --focus: #138A5E;
  /* dark surfaces */
  --d-bg: #0F1B2D; --d-panel: #132238; --d-line: #24354F; --d-tx: #EEF4F2; --d-tx2: #A9B6C4; --d-tx3: #8E9CAE; --d-mint: #7FF0BE;
  --f-brand: Manrope, Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-ui: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --r: 16px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.55 var(--f-ui); }
a { color: var(--mint-tx); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.wrap { max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* header */
.top { padding: 22px 0; }
.top .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font: 700 20px var(--f-brand); letter-spacing: -0.01em; }
.dark .brand { color: var(--d-tx); }
.nav-cta { color: var(--d-tx); text-decoration: none; font-weight: 600; font-size: 15px; border: 1px solid var(--d-line); border-radius: 999px; padding: 8px 16px; }
.nav-cta:hover { border-color: var(--d-tx3); }

/* dark sections */
.dark { background: var(--d-bg); color: var(--d-tx); }
.dark a { color: var(--d-mint); }
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 520px at 85% 0%, rgba(61, 220, 151, 0.11), transparent 62%),
    radial-gradient(760px 520px at 0% 100%, rgba(110, 140, 190, 0.14), transparent 60%),
    var(--d-bg);
}
.hero::after { /* fine grid */
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .35;
  background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 48px 48px; mask-image: radial-gradient(ellipse at 60% 30%, #000 30%, transparent 75%);
}
.hero-crane { position: absolute; left: -90px; bottom: -120px; width: 520px; height: 520px; color: rgba(238, 244, 242, 0.045); pointer-events: none; }
.hero-stack { position: relative; z-index: 1; padding: 48px 20px 88px; }
.hero-copy { text-align: center; max-width: 860px; margin: 0 auto; }
.hero-copy .lead, .hero-copy .fine { margin-left: auto; margin-right: auto; }
.hero-copy .signup { margin: 0 auto; justify-content: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font: 600 13px var(--f-ui); color: var(--mint-tx); background: var(--mint-bg); border-radius: 999px; padding: 6px 12px; margin: 0 0 24px; }
.dark .eyebrow { color: var(--d-mint); background: rgba(61, 220, 151, 0.10); border: 1px solid rgba(61, 220, 151, 0.25); }
.eyebrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 0 rgba(61, 220, 151, .6); animation: pulse 2.4s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(61,220,151,.55); } 70% { box-shadow: 0 0 0 8px rgba(61,220,151,0); } 100% { box-shadow: 0 0 0 0 rgba(61,220,151,0); } }
h1 { font: 800 clamp(40px, 6.4vw, 72px)/1.02 var(--f-brand); letter-spacing: -0.035em; margin: 0 0 22px; }
.hero h1 { max-width: 15ch; margin-left: auto; margin-right: auto; }
.hero h1 .accent { background: linear-gradient(90deg, #EEF4F2 0%, #7FF0BE 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lead { font-size: clamp(18px, 2.1vw, 21px); color: var(--text-2); max-width: 36em; margin: 0 0 32px; }
.dark .lead { color: var(--d-tx2); }
.lead .hl { color: var(--d-tx); font-weight: 700; text-decoration: underline; text-decoration-color: var(--mint); text-decoration-thickness: 2px; text-underline-offset: 6px; }

/* sign-up form */
.signup { display: flex; gap: 10px; flex-wrap: wrap; max-width: 540px; }
.signup input[type=email] { flex: 1 1 250px; min-width: 0; font: 16px var(--f-ui); padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); }
.dark .signup input[type=email] { background: rgba(255,255,255,.06); border-color: var(--d-line); color: var(--d-tx); }
.dark .signup input[type=email]::placeholder { color: var(--d-tx3); }
.signup button { font: 700 16px var(--f-ui); padding: 15px 24px; border: 0; border-radius: 12px; background: var(--btn-bg); color: var(--btn-fg); cursor: pointer; transition: transform .15s ease; }
.dark .signup button { background: var(--d-tx); color: var(--ink); }
.signup button:hover { transform: translateY(-1px); }
.signup button[disabled] { opacity: .6; cursor: progress; }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fine { font-size: 14px; color: var(--text-3); margin: 14px 0 0; max-width: 540px; }
.dark .fine { color: var(--d-tx3); }
.dark .fine a { color: var(--d-tx3); text-decoration-color: rgba(142,156,174,.5); }
.dark .fine a:hover { color: var(--d-tx2); }
.msg { margin: 14px 0 0; font-weight: 600; min-height: 1.5em; }
.msg.ok { color: var(--mint-tx); }
.msg.err { color: var(--coral-tx); }
.dark .msg.ok { color: var(--d-mint); }
.dark .msg.err { color: #FFB29E; }
.done .signup { display: none; }

/* hero demo: an app window where the onboarding story plays scene by scene (illustration) */
.meet { padding: 88px 0 96px; text-align: center; border-top: 1px solid var(--d-line);
  background: radial-gradient(900px 480px at 50% 0%, rgba(61,220,151,.08), transparent 65%), #0B1422; }
.meet h2 { margin: 0 auto 12px; max-width: none; }
.meet .lead { margin: 0 auto; }
.demo { margin: 44px auto 0; max-width: 920px; }
.window { background: #FFFFFF; color: var(--ink); border-radius: 16px; overflow: hidden; text-align: left; box-shadow: 0 40px 100px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08); }
.titlebar { display: flex; align-items: center; gap: 14px; padding: 11px 16px; background: #F2F5F7; border-bottom: 1px solid #E1E7EB; font-size: 13px; color: var(--text-2); }
.lights { display: inline-flex; gap: 6px; }
.lights i { width: 11px; height: 11px; border-radius: 50%; background: #D5DCE2; }
.app-name { font-weight: 700; color: var(--ink); }
.org { margin-left: auto; color: var(--text-3); }
.scenes { position: relative; height: 430px; }
.scene { position: absolute; inset: 0; padding: 22px 26px; opacity: 0; visibility: hidden; transition: opacity .45s ease, visibility .45s; overflow: hidden; }
.scene.active { opacity: 1; visibility: visible; }
.demo:not(.js) .scene:first-child { opacity: 1; visibility: visible; }

/* step-in states */
.demo.js [data-at] { opacity: 0; transform: translateY(8px); transition: opacity .45s ease, transform .45s ease; }
.demo.js [data-at].in { opacity: 1; transform: none; }
.demo.js .out { display: none !important; }

/* avatars */
.pfp { width: 38px; height: 38px; border-radius: 50%; display: inline-grid; place-items: center; background: #E7ECF5; color: #33425A; font: 700 13px var(--f-ui); flex: none; }
.pfp.alt { background: #F3E7EF; color: #6B2D57; }
.pfp.sm { width: 30px; height: 30px; font-size: 11px; }
.mike { width: 38px; height: 38px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--ink); color: #EEF4F2; flex: none; box-shadow: 0 0 0 3px rgba(61,220,151,.28); }
.mike svg { width: 70%; height: 70%; }
.mike.sm { width: 30px; height: 30px; }
.mike.xs { width: 20px; height: 20px; box-shadow: none; margin-right: 6px; vertical-align: middle; }
.ai { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .04em; color: var(--mint-tx); background: var(--mint-bg); border-radius: 4px; padding: 1px 5px; margin-left: 2px; }
.who { display: block; font-size: 12px; color: var(--text-3); margin-bottom: 4px; }

/* chat (Teams) */
.chat-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #E8EDF0; margin-bottom: 16px; }
.chat-head b { display: block; font-size: 15px; }
.chat-head small { color: var(--text-3); font-size: 12.5px; }
.chat { display: grid; gap: 14px; }
.msg { display: flex; gap: 10px; align-items: flex-start; max-width: 82%; }
.msg p { margin: 0; font-size: 15px; line-height: 1.45; padding: 11px 14px; border-radius: 14px; }
.msg.them p { background: #F0F3F6; border-top-left-radius: 4px; }
.msg.me { margin-left: auto; flex-direction: row-reverse; }
.msg.me > div { text-align: left; }
.msg.me p { background: #E8F7F0; border-top-right-radius: 4px; }
.msg .file { display: inline-block; margin-top: 8px; font-size: 13px; background: #fff; border: 1px solid #DCE5E2; border-radius: 10px; padding: 7px 10px; }
.typing { display: flex; gap: 10px; align-items: center; margin-left: auto; flex-direction: row-reverse; }
.typing .dots { display: inline-flex; gap: 4px; background: #E8F7F0; padding: 12px 14px; border-radius: 14px; }
.typing .dots i { width: 7px; height: 7px; border-radius: 50%; background: #7C9A8E; animation: blink 1.2s infinite; }
.typing .dots i:nth-child(2) { animation-delay: .2s; } .typing .dots i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%, 80%, 100% { opacity: .25; } 40% { opacity: 1; } }

/* ticket (PSA) */
.t-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid #E8EDF0; }
.t-head b { font-size: 17px; }
.tid { font: 700 13px ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-3); }
.pill { margin-left: auto; font-size: 12.5px; font-weight: 700; color: #33425A; background: #E6EBF1; border-radius: 999px; padding: 4px 10px; }
.fields { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; padding: 14px 0; border-bottom: 1px solid #E8EDF0; font-size: 14px; font-weight: 600; }
.fields small { display: block; font-size: 11.5px; font-weight: 600; color: var(--text-3); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 3px; }
.assignee { color: var(--mint-tx); }
.plan-title { margin: 14px 0 8px; font: 700 12px var(--f-ui); color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }
.plan { margin: 0; padding-left: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 28px; font-size: 14.5px; }

/* approval card */
.approval { border: 1px solid #DCE2EA; border-radius: 14px; padding: 16px 18px; max-width: 520px; box-shadow: 0 8px 24px rgba(15,27,45,.06); }
.ap-head { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.ap-head b { font-size: 15px; }
.approval p { margin: 6px 0; font-size: 14.5px; }
.approval ul { margin: 4px 0 12px; padding-left: 20px; font-size: 14.5px; font-weight: 600; }
.ap-buttons { display: flex; gap: 10px; }
.btn-ap, .btn-rej { font-size: 14px; font-weight: 700; border-radius: 9px; padding: 8px 16px; border: 1px solid #DCE2EA; }
.demo.js .btn-ap[data-at] { opacity: 1; transform: none; background: #fff; }
.btn-ap { background: var(--ink); color: #fff; border-color: var(--ink); }
.demo.js .btn-ap[data-at] { color: var(--ink); border-color: #DCE2EA; transition: background .3s, color .3s, transform .15s; }
.demo.js .btn-ap[data-at].in { background: var(--ink); color: #fff; border-color: var(--ink); transform: scale(.96); }
.status { margin: 14px 0 0; font-size: 14.5px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.status.ok, .status .check { color: var(--mint-tx); }

/* checklist rows */
.rows { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.rows li { display: grid; grid-template-columns: 22px 96px 1fr; gap: 10px; align-items: center; font-size: 14.5px; padding: 8px 12px; border-radius: 10px; background: #F6F8FA; }
.rows.verify li { grid-template-columns: 22px 1fr; }
.rows li::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 2px solid #C7D0D8; border-top-color: #5F6E80; animation: spin .8s linear infinite; justify-self: center; }
.rows li.done { background: #EAF7F1; }
.rows li.done::before { content: "✓"; border: 0; animation: none; width: 20px; height: 20px; background: var(--mint); color: var(--ink); font: 800 12px/20px var(--f-ui); text-align: center; }
.demo:not(.js) .rows li::before { content: "✓"; border: 0; animation: none; }
.sys { font-size: 11.5px; font-weight: 700; color: #33425A; background: #E6EBF1; border-radius: 6px; padding: 3px 7px; text-align: center; white-space: nowrap; }
.spin { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #C7D0D8; border-top-color: #5F6E80; animation: spin .8s linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }

/* device and verification heads */
.device, .verify-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.device b, .verify-head b { display: block; font-size: 16px; }
.device small, .verify-head small { color: var(--text-3); font-size: 13px; }
.laptop { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; background: #E6EBF1; color: #33425A; }

/* closed banner */
.closed { margin-top: 18px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border-radius: 12px; background: #EAF7F1; border: 1px solid rgba(61,220,151,.5); }
.closed b { color: var(--mint-tx); font-size: 17px; }
.closed small { color: var(--text-2); font-size: 13.5px; margin-left: auto; }

/* caption, controls, systems */
.caption { margin: 22px auto 0; min-height: 1.6em; font-size: 18px; font-weight: 600; color: var(--d-tx); text-align: center; max-width: 40em; }
.controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 14px; }
.pause { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--d-line); background: transparent; color: var(--d-tx2); font-size: 12px; cursor: pointer; }
.steps-dots { display: inline-flex; gap: 8px; }
.steps-dots button { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 0; background: var(--d-line); cursor: pointer; transition: width .3s, background .3s; }
.steps-dots button[aria-current="step"] { width: 28px; border-radius: 6px; background: var(--mint); }
.systems { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 22px auto 0; max-width: 760px; }
.systems span { font-size: 12.5px; font-weight: 600; color: var(--d-tx3); border: 1px solid var(--d-line); border-radius: 999px; padding: 5px 11px; transition: color .3s, border-color .3s, background .3s; }
.systems span.on { color: var(--d-mint); border-color: rgba(61,220,151,.45); background: rgba(61,220,151,.08); }
.demo figcaption { margin-top: 16px; font-size: 12.5px; color: var(--d-tx3); text-align: center; }

/* problems */
.problems { padding: 88px 0; }
.kicker { font: 700 13px var(--f-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--mint-tx); margin: 0 0 12px; }
h2 { font: 800 clamp(30px, 4vw, 46px)/1.08 var(--f-brand); letter-spacing: -0.03em; margin: 0 0 36px; max-width: 20ch; }
/* problem rows: neutral colours, coral and red accents for pain; mint only at the bridge to the solution */
.problems { background: #F5F6F8; border-top: 1px solid #E6E9EE; }
.problems .kicker { color: var(--coral-tx); }
.prows { display: grid; gap: 80px; margin-top: 56px; }
.prow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.prow:nth-child(even) .pvis { order: 2; }
.ptext { max-width: 34em; }
.pnum { display: inline-block; font: 800 14px var(--f-ui); color: var(--coral-tx); background: #FFE6DE; border-radius: 8px; padding: 4px 9px; margin-bottom: 14px; }
.ptext h3 { font: 800 clamp(22px, 2.6vw, 30px)/1.2 var(--f-brand); letter-spacing: -0.02em; margin: 0 0 14px; text-wrap: balance; }
.ptext p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--text-2); }
.pvis { position: relative; }
.pvis::before { content: ""; position: absolute; inset: 18px -14px -14px 18px; border-radius: 22px; background: #E6E9EE; z-index: 0; }
.vcard { position: relative; z-index: 1; background: #fff; border: 1px solid #E3E7EC; border-radius: 18px; padding: 28px; box-shadow: 0 24px 60px rgba(15,27,45,.08); }
.v-title { margin: 0 0 22px; font-size: 14px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; }

/* 1. a technician's day */
.daybar { display: flex; height: 64px; border-radius: 12px; overflow: hidden; font-size: 14px; font-weight: 700; }
.daybar span { display: flex; align-items: center; padding: 0 16px; white-space: nowrap; }
.d-routine { flex: 0 0 85%; background: #A7B1BC; color: #fff; }
.d-proj { flex: 1; background: var(--ink); color: #fff; justify-content: center; padding: 0 6px !important; font-size: 12px; }
.dayscale { display: flex; justify-content: space-between; margin-top: 10px; font: 600 12px ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--text-3); }

/* 2. waiting for a reply */
.waits { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.waits li { display: flex; align-items: center; gap: 16px; padding: 16px; border-radius: 12px; background: #F5F6F8; }
.sk { flex: 1; height: 10px; border-radius: 6px; background: #DDE2E8; }
.w { font-size: 14px; padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.w.ok { background: #E6EBF1; color: #33425A; }
.w.warn { background: #FDF0D5; color: #8A5A00; }
.w.bad { background: #FDE2E3; color: #A11D22; }

/* 3. the automation plateau */
.vcard svg { display: block; width: 100%; height: auto; font-family: var(--f-ui); }
.target { stroke: var(--ink); stroke-width: 1.5; stroke-dasharray: 6 6; }
.target-label { font-size: 13px; font-weight: 700; fill: var(--ink); text-anchor: end; }
.area { fill: rgba(167,177,188,.22); }
.line { fill: none; stroke: #8E9CAE; stroke-width: 4; stroke-linecap: round; }
.gap { font-size: 13px; font-weight: 700; fill: var(--coral-tx); text-anchor: end; }
.gap-line { stroke: var(--coral); stroke-width: 2; stroke-dasharray: 3 4; }

/* 4. the risk */
.dialog { display: flex; gap: 16px; padding: 22px; border: 2px solid #F3A6A8; border-radius: 14px; background: #FFF6F6; }
.warn-ico { flex: none; width: 44px; height: 44px; border-radius: 50%; background: #E5484D; color: #fff; display: grid; place-items: center; font: 800 22px var(--f-ui); }
.dialog b { display: block; font-size: 22px; line-height: 1.3; font-family: var(--f-brand); letter-spacing: -0.01em; }
.d-buttons { display: flex; gap: 10px; margin-top: 16px; }
.d-run, .d-cancel { font-size: 14px; font-weight: 700; border-radius: 9px; padding: 9px 18px; }
.d-run { background: #E5484D; color: #fff; } .d-cancel { border: 1px solid #DCE2EA; color: var(--text-2); background: #fff; }

/* bridge to the solution */
.bridge { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 80px auto 0; font: 800 clamp(20px, 2.4vw, 26px)/1.3 var(--f-brand); letter-spacing: -0.01em; text-align: center; }
.bridge-ico { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--mint); color: var(--ink); display: grid; place-items: center; font-size: 18px; }

/* closing CTA */
.cta { padding: 96px 0; background: radial-gradient(800px 400px at 50% 0%, rgba(61,220,151,.10), transparent 65%), var(--d-bg); }
.cta .wrap { text-align: center; }
.cta h2 { margin: 0 auto 16px; max-width: 24ch; }
h1, h2 { text-wrap: balance; }
.cta p.lead { margin: 0 auto 32px; }
.cta .signup { margin: 0 auto; justify-content: center; }
.cta .msg { text-align: center; }

/* footer */
footer { border-top: 1px solid var(--line); padding: 24px 0 40px; color: var(--text-3); font-size: 14px; }
footer.dark { border-top-color: var(--d-line); color: var(--d-tx3); }
footer .wrap { display: flex; gap: 18px; flex-wrap: wrap; justify-content: space-between; }
footer a { color: var(--text-2); }
footer.dark a { color: var(--d-tx2); }

/* survey page: dark intro, sticky section progress, one white card per section */
.sv-intro { position: relative; z-index: 1; text-align: center; max-width: 900px; padding: 36px 20px 88px; }
.sv-hero h1 { font-size: clamp(36px, 5.6vw, 64px); max-width: 16ch; }
.sv-hero .lead { margin: 0 auto 28px; font-size: clamp(17px, 1.9vw, 19px); }
.sv-meta { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; }
.sv-meta li { font-size: 13.5px; font-weight: 600; color: var(--d-tx2); border: 1px solid var(--d-line); border-radius: 999px; padding: 6px 12px; }

.sv-progress { position: sticky; top: 0; z-index: 20; background: rgba(238, 244, 242, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.sv-progress .wrap { max-width: 900px; }
.sv-progress ol { list-style: none; display: flex; gap: 4px; margin: 0; padding: 10px 0 8px; overflow-x: auto; }
.sv-progress a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; color: var(--text-3); text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; }
.sv-progress a span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11.5px; font-weight: 700; background: #DCE5E2; color: var(--text-2); }
.sv-progress a:hover { color: var(--ink); }
.sv-progress a[aria-current] { color: var(--ink); background: var(--surface); }
.sv-progress a[aria-current] span { background: var(--ink); color: #fff; }
.sv-bar { height: 3px; background: #DCE5E2; border-radius: 3px; overflow: hidden; margin-bottom: -1px; }
.sv-bar i { display: block; height: 100%; width: 0; background: var(--ink); transition: width .3s ease; }

.sv-main { max-width: 900px; padding-top: 32px; padding-bottom: 72px; }
.sv-sec { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 32px 36px; margin: 0 0 20px; box-shadow: 0 18px 50px rgba(15, 27, 45, .06); scroll-margin-top: 80px; }
.sv-head { display: flex; gap: 16px; align-items: center; margin: 0 0 28px; }
.sv-num { flex: none; width: 44px; height: 44px; border-radius: 13px; background: var(--ink); color: #fff; display: grid; place-items: center; font: 800 19px var(--f-brand); }
.sv-head h2 { font-size: clamp(24px, 3vw, 30px); margin: 0 0 2px; max-width: none; }
.sv-head p { margin: 0; color: var(--text-3); }
.sv-q { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.sv-q legend, .sv-field > span { display: block; float: left; width: 100%; font-weight: 700; margin: 0 0 10px; padding: 0; }
.sv-field > span { float: none; }
.hint { font-weight: 400; color: var(--text-3); font-size: 14px; margin-left: 6px; }
.sv-grid { display: grid; gap: 18px; margin: 0 0 28px; }
.sv-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sv-field { display: block; }
.sv-sec > .sv-field { margin: 0 0 22px; }
.sv-field input, .sv-field textarea, .sv-other { display: block; width: 100%; font: 16px var(--f-ui); padding: 12px 14px; border: 1px solid #CFDAD6; border-radius: 12px; background: #F7FAF9; color: var(--ink); transition: border-color .15s, background .15s; }
.sv-field input:focus, .sv-field textarea:focus, .sv-other:focus { background: #fff; border-color: var(--ink); }
.sv-field textarea { resize: vertical; min-height: 92px; }
.sv-other { clear: both; margin-top: 10px; max-width: 360px; }
.sv-err { display: block; clear: both; margin: 8px 0 0; font-style: normal; font-size: 13.5px; font-weight: 600; color: var(--coral-tx); }
.invalid input:not([type=radio]), .invalid textarea { border-color: #E88E74; background: #FFF6F3; }
.invalid .sv-cards label { border-color: #E88E74; }

/* MSP or corporate IT */
.sv-cards { clear: both; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sv-cards input, .opts input { position: absolute; opacity: 0; pointer-events: none; }
.sv-cards label { position: relative; display: grid; grid-template-columns: 46px 1fr; column-gap: 14px; align-items: center; padding: 18px 20px; border: 1.5px solid #CFDAD6; border-radius: 16px; background: #F7FAF9; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s; }
.sv-cards svg { grid-row: 1 / span 2; width: 46px; height: 46px; padding: 11px; border-radius: 13px; background: #E4ECE9; fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: background .15s, stroke .15s; }
.sv-cards b { font: 800 18px/1.25 var(--f-brand); letter-spacing: -0.01em; }
.sv-cards small { color: var(--text-3); font-size: 14px; }
.sv-cards label:hover { border-color: #AFC0BA; background: #fff; }
.sv-cards input:checked + label { border-color: var(--ink); background: #fff; box-shadow: 0 0 0 3px rgba(15, 27, 45, .08); }
.sv-cards input:checked + label svg { background: var(--ink); stroke: #fff; }
.sv-cards input:checked + label::after { content: "✓"; position: absolute; top: 12px; right: 14px; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: #fff; font: 800 12px/22px var(--f-ui); text-align: center; }
.sv-cards input:focus-visible + label, .opts input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 2px; }

/* option chips; checkboxes show + and ✓ */
.opts { clear: both; display: flex; flex-wrap: wrap; gap: 8px; }
.opts label { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #CFDAD6; background: #F7FAF9; border-radius: 999px; padding: 8px 14px; cursor: pointer; font-size: 15px; line-height: 1.3; user-select: none; transition: background .15s, border-color .15s, color .15s; }
.opts label:hover { border-color: #AFC0BA; background: #fff; }
.opts input[type=checkbox] + label::before { content: "+"; font-weight: 700; color: var(--text-3); width: 10px; text-align: center; }
.opts input:checked + label { background: var(--ink); border-color: var(--ink); color: #fff; }
.opts input[type=checkbox]:checked + label::before { content: "✓"; color: #fff; }
.opts input[value="None"] + label, .opts input[value="Nothing yet"] + label { border-style: dashed; }

/* tools: one row per category */
.sv-tool { border: 0; margin: 0; padding: 18px 0; border-top: 1px solid #E6EDEA; min-width: 0; }
.sv-tool:first-child { border-top: 0; padding-top: 0; }
.sv-tool legend { float: left; width: 190px; padding: 8px 16px 0 0; font-weight: 700; }
.sv-tool .opts, .sv-tool .sv-other { clear: none; margin-left: 190px; }

/* problems: a three-step scale per problem */
.sv-rates { display: grid; gap: 12px; margin: 0 0 30px; }
.sv-rate { border: 1px solid #E1E9E6; border-radius: 16px; padding: 18px 20px; margin: 0; min-width: 0; background: #FAFCFB; }
.sv-rate legend { float: left; width: 100%; padding: 0; margin: 0 0 12px; font-weight: 700; font-size: 16.5px; line-height: 1.4; }
.opts.seg { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid #CFDAD6; border-radius: 12px; overflow: hidden; background: #fff; }
.opts.seg label { justify-content: center; text-align: center; border: 0; border-left: 1px solid #CFDAD6; border-radius: 0; background: #fff; padding: 11px 8px; font-size: 14.5px; font-weight: 600; color: var(--text-2); }
.opts.seg label:first-of-type { border-left: 0; }
.opts.seg label:hover { background: #F2F6F4; }
.opts.seg input:checked + label { background: var(--ink); color: #fff; }
.opts.seg input[value^="Resonates"]:checked + label { background: var(--coral-tx); }
.opts.seg input[value^="Not"]:checked + label { background: var(--text-3); }

/* next steps */
.sv-offer { border: 1px solid #E1E9E6; border-radius: 16px; padding: 22px 24px; background: #FAFCFB; margin-bottom: 16px; }
.sv-offer legend { font: 800 20px/1.3 var(--f-brand); letter-spacing: -0.01em; margin-bottom: 8px; }
.sv-desc { clear: both; margin: 0 0 16px; color: var(--text-2); font-size: 15.5px; max-width: 46em; }

.sv-send { text-align: center; padding: 12px 0 0; }
.submit { font: 700 17px var(--f-ui); padding: 16px 40px; border: 0; border-radius: 14px; background: var(--btn-bg); color: var(--btn-fg); cursor: pointer; box-shadow: 0 12px 30px rgba(15, 27, 45, .18); transition: transform .15s ease; }
.submit:hover { transform: translateY(-1px); }
.submit[disabled] { opacity: .6; cursor: progress; }
.sv-send .msg { justify-content: center; max-width: none; }
.sv-send .fine { margin: 10px auto 0; }
.thanks { text-align: center; padding: 56px 24px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; outline: none; }
.thanks-ico { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ink); color: #fff; font: 800 26px var(--f-ui); margin-bottom: 16px; }
.thanks h2 { margin: 0 auto 10px; }
.thanks p { color: var(--text-2); font-size: 17px; }
.ct-main { max-width: 760px; }
.ct-main .thanks { margin-top: 0; }

/* cookie banner (consent.js): both choices look the same */
.cc { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 50; max-width: 780px; margin: 0 auto; display: flex; align-items: center; gap: 18px; padding: 16px 18px; border-radius: 16px; background: var(--surface); color: var(--ink); border: 1px solid var(--line); box-shadow: 0 20px 60px rgba(15, 27, 45, .28); font-size: 14.5px; }
.cc p { margin: 0; flex: 1; color: var(--text-2); line-height: 1.5; }
.cc a { color: var(--ink); }
.cc-btns { display: flex; gap: 8px; flex: none; }
.cc-btns button { font: 700 14.5px var(--f-ui); min-width: 96px; padding: 10px 18px; border-radius: 10px; border: 1px solid var(--ink); background: var(--ink); color: #fff; cursor: pointer; }
.cc-open { font: inherit; color: inherit; background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; }
footer .cc-open { color: var(--text-2); }
footer.dark .cc-open { color: var(--d-tx2); }

/* privacy page */
.doc { padding: 24px 0 64px; max-width: 760px; }
.doc h1 { font-size: clamp(30px, 4vw, 40px); }
.doc h2 { font-size: 22px; margin: 32px 0 10px; max-width: none; }
.doc p, .doc li { color: var(--text-2); }

@media (max-width: 900px) {
  .hero-stack { padding: 28px 20px 72px; }
}
@media (max-width: 720px) {
  .prow { grid-template-columns: 1fr; gap: 28px; }
  .prow:nth-child(even) .pvis { order: 0; }
  .prows { gap: 56px; margin-top: 40px; }
  .pvis::before { inset: 12px -8px -8px 12px; }
  .vcard { padding: 20px; }
  .dialog b { font-size: 19px; }
  .d-routine { flex-basis: 74%; }
  .d-proj { font-size: 11px; }
  .bridge { margin-top: 56px; }
  .signup button { flex: 1 1 100%; }
  .sv-intro { padding: 20px 20px 64px; }
  .sv-sec { padding: 24px 20px; border-radius: 18px; }
  .sv-head { gap: 12px; margin-bottom: 22px; }
  .sv-num { width: 38px; height: 38px; font-size: 17px; }
  .sv-cards, .sv-pair { grid-template-columns: 1fr; }
  .sv-tool legend { float: none; width: 100%; padding: 0 0 10px; }
  .sv-tool .opts, .sv-tool .sv-other { margin-left: 0; }
  .opts.seg { grid-template-columns: 1fr; }
  .opts.seg label { border-left: 0; border-top: 1px solid #CFDAD6; }
  .opts.seg label:first-of-type { border-top: 0; }
  .sv-progress a:not([aria-current]) { font-size: 0; gap: 0; padding: 6px; }
  .sv-offer { padding: 18px; }
  .cc { flex-direction: column; align-items: stretch; gap: 12px; }
  .cc-btns button { flex: 1; }
  .problems, .cta { padding: 64px 0; }
  .hero-crane { width: 360px; height: 360px; }
  .demo { margin-top: 32px; }
  .meet { padding: 64px 0 72px; }
  .scenes { height: 560px; }
  .scene { padding: 16px; }
  .fields { grid-template-columns: 1fr 1fr; }
  .plan { grid-template-columns: 1fr; }
  .rows li { grid-template-columns: 20px 1fr; font-size: 13.5px; }
  .rows li .sys { display: none; }
  .msg { max-width: 94%; }
  .msg p { font-size: 14px; }
  .caption { font-size: 16px; }
  .org { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
