/* Soft-launch inner pages — homepage design system (tokens, bar, nav, footer, type, CTAs) */
:root{
  --ground:#13171A; --ink:#FFFFFF; --ink-2:#A6AAAD; --ink-3:#6E7275;
  --brass:#0172FC; --btn:#0172FC; --btn-ink:#FFFFFF; --btn-hover:#3B8DFF; --cyan:#0172FC; --warn:#FF5A36; --rule:rgba(1,114,252,.32);
  --good:#6B9B7A;
  --panel:rgba(19,23,26,.72); --panel-soft:rgba(19,23,26,.55); --panel-strong:rgba(28,33,38,.88);
  --shadow-ink:8,12,16; --elev:#1C2126; --line:rgba(255,255,255,.12);
  --display:"Jost","Futura","Trebuchet MS",sans-serif;
  --body:"Jost","Futura","Trebuchet MS",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  /* GLOBAL Soft-launch radii — change here once; all child pages inherit */
  --radius-btn:12px;
  --radius-soft:14px;
  --radius:var(--radius-btn);
  color-scheme:dark;
  box-sizing:border-box;
}
html[data-theme="day"]{
  --ground:#F6FAFD; --ink:#010120; --ink-2:#5D6C7B; --ink-3:#758696;
  --brass:#0F6FFF; --btn:#0F6FFF; --btn-ink:#FFFFFF; --btn-hover:#0B5CDB;
  --cyan:#0F6FFF; --warn:#FC4C02; --good:#1F7A4D; --rule:rgba(15,111,255,.28);
  --panel:rgba(246,250,253,.92); --panel-soft:#FFFFFF; --panel-strong:#E5F3FF;
  --shadow-ink:1,1,32; --elev:#FFFFFF; --line:rgba(1,1,32,.12);
  color-scheme:light;
}
html[data-theme="night"]{
  --ground:#13171A; --ink:#FFFFFF; --ink-2:#A6AAAD; --ink-3:#6E7275;
  --brass:#0172FC; --btn:#0172FC; --btn-ink:#FFFFFF; --btn-hover:#3B8DFF;
  --cyan:#0172FC; --warn:#FF5A36; --good:#6B9B7A; --rule:rgba(1,114,252,.32);
  --panel:rgba(19,23,26,.72); --panel-soft:rgba(19,23,26,.55); --panel-strong:rgba(28,33,38,.88);
  --shadow-ink:8,12,16; --elev:#1C2126; --line:rgba(255,255,255,.12);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 4.5rem);background:var(--ground)}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}

.bar{position:fixed;top:0;left:0;right:0;z-index:4;display:flex;justify-content:space-between;align-items:center;
  padding:calc(env(safe-area-inset-top,0px) + 16px) 6vw 12px;
  background:linear-gradient(to bottom,rgba(var(--shadow-ink),.92) 55%,rgba(var(--shadow-ink),0));
  pointer-events:none}
html[data-theme="day"] .bar{
  background:linear-gradient(to bottom,rgba(246,250,253,.94) 55%,rgba(246,250,253,0))}
.mark{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:.02em;color:var(--ink);text-decoration:none;pointer-events:auto}
.mark small{font-weight:400;font-size:15px;color:var(--ink-2);margin-left:.6em;letter-spacing:.01em}
/* Brand amber — must win over inherited ink on marks, footers, headings */
.iq,
.mark .iq,
h1 .iq,
h2 .iq,
h3 .iq,
.col-title .iq,
strong .iq{
  color:var(--brass) !important;
  font-weight:inherit
}
.bar-tools{display:flex;align-items:center;gap:14px;pointer-events:auto;position:relative}
.bar-nav{display:flex;align-items:center;gap:1rem;margin:0;padding:0;list-style:none}
.bar-nav a{font-family:var(--display);font-size:1.05rem;font-weight:500;color:var(--ink-2);text-decoration:none}
.bar-nav a:hover,.bar-nav a[aria-current="page"]{color:var(--ink)}
.bar-nav a[aria-current="page"]{color:var(--brass)}
.nav-toggle{
  all:unset;cursor:pointer;display:none;box-sizing:border-box;align-items:center;justify-content:center;
  width:2.35rem;height:2.35rem;border-radius:var(--radius-btn,12px);border:1.5px solid var(--line);
  background:color-mix(in srgb,var(--elev) 88%,transparent);color:var(--ink);pointer-events:auto;
  transition:background .15s,border-color .15s,transform .12s
}
.nav-toggle:hover{border-color:var(--brass);color:var(--brass)}
.nav-toggle:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.nav-toggle:active{transform:translateY(1px)}
.nav-toggle svg{display:block;width:18px;height:18px}
.nav-toggle .nav-toggle__close{display:none}
html.nav-open .nav-toggle .nav-toggle__open{display:none}
html.nav-open .nav-toggle .nav-toggle__close{display:block}
/* Sit under .bar (z-index 4) so the open menu stays sharp — never blur the nav itself */
.nav-backdrop{
  display:none;position:fixed;inset:0;z-index:3;
  background:color-mix(in srgb,var(--ground) 28%,transparent);
  backdrop-filter:blur(8px) saturate(1.05);-webkit-backdrop-filter:blur(8px) saturate(1.05);pointer-events:auto
}
html.nav-open .nav-backdrop{display:block}
html.nav-open .bar{z-index:30}
.theme-toggle{display:inline-flex;padding:0.18rem;border-radius:999px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--elev),color-mix(in srgb,var(--elev) 88%,var(--ink)));
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 28%,transparent),0 2px 0 color-mix(in srgb,var(--ink) 10%,transparent)}
.theme-toggle button{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  width:2.05rem;height:2.05rem;border-radius:999px;color:var(--ink-3);transition:background .15s,color .15s,transform .12s}
.theme-toggle button svg{display:block;width:16px;height:16px}
.theme-toggle button.active{color:var(--ink);background:color-mix(in srgb,var(--brass) 22%,transparent);
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 35%,transparent)}
.theme-toggle button:hover{color:var(--ink)}
.theme-toggle button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.theme-toggle button:active{transform:translateY(1px)}
html[data-theme="day"] .theme-toggle button.active{background:color-mix(in srgb,var(--brass) 18%,#fff)}

main{position:relative;z-index:2;padding-top:calc(env(safe-area-inset-top,0px) + 5.2rem)}
.page{
  padding:0 6vw 4.5rem;
  display:flex;flex-direction:column;align-items:center;
  text-align:center
}
.page-block{max-width:36rem;width:100%;margin:0 auto 3.4rem}
.page-block--wide{max-width:min(42rem,92vw)}
.page-block--xl{max-width:min(56rem,100%)}
.page-block--xl > p,.page-block--xl > .lede,.page-block--xl > .fine{max-width:none}
.kicker{margin:0 0 .45em;font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
h1,h2{font-family:var(--display);font-weight:500;margin:0 0 .4em;letter-spacing:-.005em;line-height:.98;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.2vw,4.4rem)}
h2{font-size:clamp(2rem,3.6vw,3rem)}
p{margin:0 auto 1em;color:var(--ink-2);max-width:34em}
.lede{font-size:1.12rem;color:var(--ink)}
.cta-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.1rem;justify-content:center}
.cta,.cta-btn,.btn,button.cta,button.cta-btn,.btn-primary,.btn-ghost,.btn-sm,.sticky-cta,a.btn,button.btn{
  display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;box-sizing:border-box;
  min-height:46px;padding:0 1.3em;border:1.5px solid var(--btn);border-radius:var(--radius-btn);
  background:var(--btn);color:var(--btn-ink);text-decoration:none;font-family:var(--display);font-size:1.1rem;font-weight:500;letter-spacing:.01em;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;cursor:pointer;
  text-shadow:0 0 18px rgba(246,250,253,.95),0 0 6px rgba(246,250,253,.85);
  box-shadow:0 0 18px color-mix(in srgb,var(--btn) 42%,transparent),0 0 6px color-mix(in srgb,var(--btn) 24%,transparent),0 1px 0 color-mix(in srgb,#fff 16%,transparent)}
/* Full-width CTAs in forms / sticky side panels keep soft corners */
.side .cta-btn,.shell-form .cta-btn,.cta-row .cta-btn[style*="width"],button.cta-btn[style*="width:100%"]{
  width:100%;max-width:100%
}
.cta:hover,.cta-btn:hover,.btn:hover,button.cta:hover,.btn-primary:hover,.sticky-cta:hover{
  background:var(--btn-hover);border-color:var(--btn-hover);color:var(--btn-ink);
  transform:translateY(-2px);box-shadow:0 0 26px color-mix(in srgb,var(--btn) 55%,transparent),0 8px 18px rgba(var(--shadow-ink),.18)}
.cta:active,.cta-btn:active,.btn:active,.sticky-cta:active{transform:translateY(0);box-shadow:0 0 12px color-mix(in srgb,var(--btn) 36%,transparent)}
.cta:focus-visible,.cta-btn:focus-visible,.btn:focus-visible,.sticky-cta:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.cta.ghost,.cta-btn.ghost,.btn-ghost{background:transparent;border-color:var(--btn);color:var(--ink);text-shadow:none;box-shadow:0 0 14px color-mix(in srgb,var(--btn) 28%,transparent)}
.cta.ghost:hover,.cta-btn.ghost:hover,.btn-ghost:hover{background:var(--btn);border-color:var(--btn);color:var(--btn-ink);text-shadow:0 0 18px rgba(246,250,253,.95),0 0 6px rgba(246,250,253,.85);box-shadow:0 0 22px color-mix(in srgb,var(--btn) 48%,transparent)}
.cta-btn:disabled,.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-sm{min-height:36px;padding:0 .85em;font-size:.9rem}
.fine{margin:1.2em auto 0;font-size:.82rem;color:var(--ink-3);max-width:30em}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1.1rem;margin:1em auto 0;max-width:32rem;padding:0;list-style:none;text-align:left;width:100%}
.pair li{margin:0;padding:.55em 0 0;border-top:1px solid var(--rule);font-size:.92rem;color:var(--ink-2);line-height:1.35}
.pair b{display:block;font-family:var(--display);font-size:1.05rem;font-weight:500;color:var(--ink);margin-bottom:.15em}
.page a:not(.cta):not(.mark):not(.cta-btn){color:var(--cyan)}
.band{margin:0 -6vw;padding:2.4rem 6vw;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  background:color-mix(in srgb,var(--elev) 55%,transparent)}

.site-footer{padding:3.2rem 6vw calc(env(safe-area-inset-bottom,0px) + 2.4rem);border-top:1px solid var(--rule)}
.site-footer .copy{max-width:min(36rem,92vw)}
.site-footer h2{font-size:clamp(2rem,3.4vw,2.8rem);margin-bottom:.2em}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1.4rem 2rem;margin-top:1rem}
.foot-grid p{margin:0 0 .45em;font-size:.92rem;max-width:none}
.foot-grid a{color:var(--cyan);text-decoration:none}
.foot-grid a:hover{text-decoration:underline}
.foot-grid .col-title{font-family:var(--display);font-size:1.05rem;color:var(--ink);margin-bottom:.55em}
.foot-legal{margin-top:1.25rem;padding-top:.9rem;border-top:1px solid var(--rule);font-size:.78rem;color:var(--ink-3);line-height:1.45;max-width:40em}

/* Content primitives for Soft-launch pages */
.page h3{font-family:var(--display);font-weight:500;font-size:clamp(1.35rem,2.4vw,1.75rem);margin:0 0 .55em;letter-spacing:-.005em;color:var(--ink)}
.card{border:1px solid var(--rule);border-radius:var(--radius-soft);background:var(--panel-strong);padding:1.15rem 1.25rem 1.35rem;margin:0 auto 1rem;max-width:100%;text-align:left;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--cyan) 35%,var(--rule));box-shadow:0 10px 24px rgba(var(--shadow-ink),.18)}
.card-list{margin:.55rem 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.65rem}
.card-list li{margin:0;padding:.55rem 0 0;border-top:1px solid var(--rule);color:var(--ink-2);font-size:.98rem;line-height:1.45;max-width:none}
.card-list li:first-child{border-top:0;padding-top:0}
.card-list strong{color:var(--ink);font-weight:600}
.card-list--ticks{gap:.85rem;text-align:left}
.card-list--ticks li,
.card-list--ticks li:first-child{
  position:relative;border-top:0;padding:.12rem 0 .12rem 2rem
}
.card-list--ticks li::before{
  content:"";position:absolute;left:0;top:.18rem;width:1.2rem;height:1.2rem;border-radius:50%;
  background:color-mix(in srgb,var(--brass) 14%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brass) 55%,transparent)
}
.card-list--ticks li::after{
  content:"";position:absolute;left:.34rem;top:.46rem;width:.48rem;height:.26rem;
  border-left:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg)
}
.plac-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1.1rem;margin:1rem auto 0;padding:0;list-style:none;width:100%;text-align:left}
.plac-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.plac{
  margin:0;padding:1rem 1.05rem;border:1px solid var(--rule);border-radius:var(--radius-soft);
  background:var(--panel-strong);text-align:left;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
  animation:ganiqPlacIn .55s cubic-bezier(.22,.7,.25,1) both}
.plac-grid .plac:nth-child(1){animation-delay:.04s}
.plac-grid .plac:nth-child(2){animation-delay:.1s}
.plac-grid .plac:nth-child(3){animation-delay:.16s}
.plac-grid .plac:nth-child(4){animation-delay:.22s}
.plac-grid .plac:nth-child(5){animation-delay:.28s}
.plac-grid .plac:nth-child(6){animation-delay:.34s}
.plac-grid .plac:nth-child(n+7){animation-delay:.4s}
.plac:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--brass) 40%,var(--rule));
  box-shadow:0 12px 26px rgba(var(--shadow-ink),.2)}
.plac__title{display:block;font-family:var(--display);font-size:1.1rem;font-weight:500;color:var(--ink);margin-bottom:.35em}
.plac p,.plac__text{margin:0;color:var(--ink-2);font-size:.95rem;max-width:none}
@keyframes ganiqPlacIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
.builder-split > .panel,
.check-form-panel{
  animation:ganiqPlacIn .55s cubic-bezier(.22,.7,.25,1) both
}
.builder-split > .panel:nth-child(1){animation-delay:.08s}
.builder-split > .panel:nth-child(2){animation-delay:.22s}
.check-form-panel{animation-delay:.16s}
@keyframes ganiqBtnPulse{
  0%,100%{box-shadow:0 0 18px color-mix(in srgb,var(--btn) 42%,transparent),0 0 6px color-mix(in srgb,var(--btn) 24%,transparent),0 1px 0 color-mix(in srgb,#fff 16%,transparent)}
  50%{box-shadow:0 0 28px color-mix(in srgb,var(--btn) 62%,transparent),0 0 0 4px color-mix(in srgb,var(--brass) 22%,transparent)}
}
.cta-row .cta:first-child:not(.ghost),.cta-row .cta-btn:first-child:not(.ghost){
  animation:ganiqBtnPulse 2.8s ease-in-out 1.2s 2}
@media (prefers-reduced-motion:reduce){
  .plac,.card,.cta,.cta-btn,.btn,.sticky-cta,.builder-split > .panel,.check-form-panel{animation:none !important;transition:none !important}
  .plac:hover,.card:hover{transform:none;box-shadow:none}
  .cta:hover,.cta-btn:hover,.btn:hover,.sticky-cta:hover{transform:none}
}
.hint{margin:.55rem 0 0;font-size:.88rem;color:var(--ink-3);max-width:none}
.research-banner{margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--rule);border-radius:var(--radius-soft);background:color-mix(in srgb,var(--brass) 10%,transparent);color:var(--ink);font-size:.95rem}
.tag{display:inline-block;border-radius:3px;padding:.14rem .5rem;font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.04em;margin-right:.35rem}
.tag-exit{background:var(--warn);color:#0B0A0F}
.tag-reduce{background:var(--brass);color:#0B0A0F}
.tag-watch{border:1px solid var(--cyan);color:var(--cyan)}
.tag-hold{border:1px solid var(--ink-3);color:var(--ink-2)}
.mini-table{width:100%;border-collapse:collapse;font-size:.88rem}
.mini-table th,.mini-table td{padding:.45em .55em;border-top:1px solid var(--rule);text-align:left;vertical-align:top;color:var(--ink-2)}
.mini-table th{font-family:var(--display);font-size:.95rem;font-weight:500;color:var(--ink);border-top:0}
.mini-table .num{text-align:right;font-variant-numeric:tabular-nums}
.shell-form{display:grid;gap:.75rem;margin:1rem auto 0;max-width:28rem;width:100%;text-align:left}
.builder-head,.check-form-panel,.builder-split{
  width:100%;max-width:min(56rem,100%);margin-left:auto;margin-right:auto
}
/* Result report uses the full page width */
.result-split,#resultRoot,#resultBlock,
#resultBlock .summary-grid,#resultBlock .walk-results-toolbar{
  width:100%;max-width:none;margin-left:0;margin-right:0
}
body.page-result .page{align-items:stretch;text-align:left}
.builder-head{text-align:center}
.builder-split,.result-split,.check-form-panel,#resultBlock{text-align:left}
.site-footer .copy{margin-left:auto;margin-right:auto;text-align:center}
.foot-grid{text-align:left}

/* Signed-out section locks — use on large panels only, never on inline toolbars */
[data-auth-gate]{position:relative;isolation:isolate}
[data-auth-gate].is-locked > *:not(.auth-gate-lock){pointer-events:none;user-select:none;filter:blur(1.5px);opacity:.55}
[data-auth-gate].is-locked{min-height:8rem;overflow:hidden}
.auth-gate-lock{
  position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:.75rem;padding:1.25rem;text-align:center;border-radius:inherit;
  background:color-mix(in srgb,var(--elev) 88%,var(--ground));
  border:1px solid var(--rule);
  box-sizing:border-box
}
.auth-gate-lock[hidden]{display:none !important}
.auth-gate-lock p{margin:0;max-width:22em;color:var(--ink);font-size:1.02rem}
.auth-gate-lock .fine{margin:0;color:var(--ink-2)}
html.auth-signed-in [data-auth-gate].is-locked > *:not(.auth-gate-lock){pointer-events:auto;filter:none;opacity:1;user-select:auto}
.shell-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem;color:var(--ink-2)}
.shell-form input,.shell-form select,.shell-form textarea{
  min-height:44px;padding:.55rem .75rem;border:1.5px solid var(--rule);border-radius:var(--radius-btn);
  background:var(--panel-soft);color:var(--ink);font:inherit}
.shell-form textarea{min-height:88px;resize:vertical}
.shell-form input:focus,.shell-form select:focus,.shell-form textarea:focus{outline:2px solid var(--cyan);outline-offset:2px;border-color:var(--cyan)}
.founder-photo{margin:0;max-width:16rem}
.founder-photo img{display:block;width:100%;height:auto;border-radius:4px;border:1px solid var(--rule)}
.about-split{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:1.4rem;align-items:start;margin-top:1rem}
/* Phone + tablet: hamburger menu (inline links return above 1100px) */
@media (max-width:1100px){
  .mark small{display:none}
  .nav-toggle{display:inline-flex}
  .bar-nav{
    display:none;position:fixed;z-index:20;
    top:calc(env(safe-area-inset-top,0px) + 4.35rem);
    left:max(1rem,4vw);right:max(1rem,4vw);
    flex-direction:column;align-items:stretch;gap:0;
    margin:0;padding:.45rem;
    border:1px solid var(--rule);border-radius:var(--radius-soft,14px);
    background:var(--elev);box-shadow:0 18px 48px rgba(var(--shadow-ink),.28);
    pointer-events:auto
  }
  html.nav-open .bar-nav{display:flex}
  .bar-nav li{margin:0;border-bottom:1px solid var(--rule)}
  .bar-nav li:last-child{border-bottom:0}
  .bar-nav a{
    display:block;padding:.95rem 1rem;font-size:1.2rem;color:var(--ink);
    border-radius:calc(var(--radius-soft,14px) - 4px)
  }
  .bar-nav a:hover,.bar-nav a[aria-current="page"]{background:color-mix(in srgb,var(--brass) 12%,transparent);color:var(--ink)}
  .bar-nav a[aria-current="page"]{color:var(--brass)}
}
@media (max-width:820px){
  body{font-size:16px}
  .pair{grid-template-columns:1fr}
  .plac-grid,.plac-grid--3,.about-split{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .theme-toggle button{width:1.9rem;height:1.9rem}
}
