/* Horizon design system — shared components (identical on Personal and Decor). Loaded after the site stylesheet. */
body{background:var(--bg);color:var(--text);font:400 clamp(1rem,.95rem + .2vw,1.1rem)/1.6 var(--font-body)}
h1,h2,h3,.display{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);line-height:var(--lh-display)}
.display em,h1 em,h2 em{font-family:var(--font-accent);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--rose)}
.eyebrow{display:inline-flex;gap:.7rem;align-items:center;font-size:var(--fs-eyebrow);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--rose)}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:currentColor}
.lead{color:var(--muted);font-size:var(--fs-lead);max-width:60ch}
.hero h1,.phero h1,.contact h2,.cta h2,.statement-quote{font-size:var(--fs-h1)}
.rhero h1{font-size:var(--fs-h1-xl)}
.sec-head h2,.h2,.about h2{font-size:var(--fs-h2)}
.hero h1,.phero h1{max-width:20ch}
.sec{padding-block:var(--sec-y)}.sec-alt{background:var(--bg-2)}
.sec-head{gap:2rem 4rem;margin-bottom:clamp(2.2rem,4vw,4rem)}
.phero{padding:9rem 0 3rem}.phero h1{margin-top:1.2rem}
.crumbs{font-size:.82rem;color:var(--faint)}.crumbs a:hover{color:var(--rose)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.95rem 1.6rem;border-radius:var(--r-pill);font:600 .95rem/1.2 var(--font-body);border:1px solid transparent;transition:background var(--t-fast) var(--ease),color var(--t-fast),border-color var(--t-fast),transform var(--t-fast) var(--ease)}
.btn-primary{background:var(--magenta);color:#fff}
.btn-primary:hover{background:var(--rose);color:var(--bg);transform:translateY(-2px)}
.btn-ghost{border-color:var(--line-ui);color:var(--text)}
.btn-ghost:hover{border-color:var(--rose);color:var(--rose)}
.btn:active{transform:translateY(0) scale(.98)}
.btn:focus-visible,.menu-btn:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.btn-sm{padding:.65rem 1.15rem;font-size:.85rem}.btn-block{width:100%}
.tlink{color:var(--rose);font-weight:600;display:inline-flex;gap:.5rem;padding:.5rem 0;border-bottom:1px solid transparent;transition:border-color var(--t-fast)}.tlink:hover{border-color:var(--rose)}

/* header, logo, menu button */
.hdr.is-scrolled{background:rgba(18,7,13,.82);backdrop-filter:blur(14px);border-color:var(--line-soft)}
.hdr-in{height:4.5rem}
.brand{display:flex;align-items:center;gap:.75rem}
.brand img{width:34px;height:34px;flex:none}
.brand b{display:block;font-family:var(--font-accent);font-weight:400;font-size:1.45rem;letter-spacing:-.01em;line-height:1;color:var(--text);transition:color var(--t-fast)}
.brand:hover b{color:var(--rose)}
.brand small{display:block;font:500 .62rem/1.2 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:.2rem}
.menu-btn{display:inline-flex;align-items:center;gap:.7rem;padding:.55rem .55rem .55rem 1.1rem;border:1px solid var(--line-ui);border-radius:var(--r-pill);font:600 .85rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;transition:border-color var(--t-fast)}
.menu-btn:hover{border-color:var(--rose)}
.menu-btn .bars{width:2.2rem;height:2.2rem;border-radius:50%;background:var(--magenta);display:grid;place-content:center;gap:5px}
.menu-btn .bars i{background:#fff}

/* overlay menu */
.ovl{background:var(--grad-bg)}
.ovl-links li{border-bottom:1px solid rgba(246,236,223,.1)}
.ovl-links a{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);font-size:clamp(2rem,1.1rem + 3.4vw,4.2rem);line-height:1.05;padding:.55rem 0}
.ovl-links a:hover,.ovl-links a[aria-current="page"]{color:var(--rose);padding-left:.8rem;font-style:normal}
.ovl-links a span{font:500 .78rem/1 var(--font-body);letter-spacing:.15em;color:var(--rose);min-width:1.8rem}
.ovl-side h4,.ftr h4{font:600 .72rem/1 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:.8rem}
.ovl-side p,.ovl-side a{color:var(--text)}.ovl-side a:hover{color:var(--rose)}
.ovl-cross{display:block;border:1px solid var(--line-ui);border-radius:var(--r-md);padding:1.1rem 1.3rem;transition:border-color var(--t-fast),background var(--t-fast)}
.ovl-cross:hover{border-color:var(--rose);background:rgba(242,121,158,.06)}
.ovl-cross b{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);font-size:1.5rem;display:block;margin:.2rem 0}
.ovl-cross small{color:var(--muted);display:block}
.ovl-cross small:first-child{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rose)}

/* partners cross-link block */
.partner-block{margin-top:3rem}
.partner-block>.eyebrow{margin-bottom:1rem}
.xlink{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;border:1px solid var(--line);border-radius:var(--r-md);padding:1.4rem 1.8rem;max-width:none;margin:0;text-align:left;background:transparent;transition:border-color var(--t-fast),background var(--t-fast)}
.xlink:hover{border-color:var(--rose);background:rgba(242,121,158,.05)}
.xlink b{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);font-size:1.7rem;display:block;line-height:1.1}
.xlink small{color:var(--muted);display:block;margin-top:.3rem}
.xlink .arrow{color:var(--rose);font-size:1.4rem}

/* cards */
.ccard,.form-card,.side,.cc{border-radius:var(--r-md)}
.ccard{background:var(--surface);border:1px solid var(--line);padding:2rem}
.ccard small{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.ccard b{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);font-size:clamp(1.5rem,1.1rem + 1.5vw,2.4rem);line-height:1.1}
.ccard span{display:block;color:var(--muted);margin-top:.6rem;font-size:.92rem}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3.5vw,3rem)}

/* forms */
.field{margin-bottom:1.3rem}
.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.45rem}
.field input,.field textarea,.field select{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--line-field);border-radius:.7rem;padding:.9rem 1rem;font:inherit;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-color:var(--rose);box-shadow:0 0 0 3px rgba(242,121,158,.2)}
.field textarea{min-height:9rem;resize:vertical}
.field.err input,.field.err textarea,.field.err select{border-color:var(--danger)}
.field .msg{display:none;color:var(--danger);font-size:.82rem;margin-top:.35rem}.field.err .msg{display:block}
.consent{display:flex;gap:.8rem;align-items:flex-start;font-size:.88rem;color:var(--muted);margin-bottom:1.4rem}
.consent input{margin-top:.25rem;accent-color:var(--magenta);width:1.1rem;height:1.1rem}
.consent a{color:var(--rose);text-decoration:underline}
.form-state h3{font-family:var(--font-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);font-size:2.2rem;margin:1rem 0 .5rem}
.demo-flag{border-top:1px dashed var(--line-field)}
.prose h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem);margin:2.5rem 0 .8rem}
.prose p{color:var(--muted)}.prose a{color:var(--rose);text-decoration:underline}

/* footer */
.ftr{border-top:1px solid var(--line);padding:4rem 0 2rem;background:var(--bg-2)}
.ftr-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem}
.ftr h4{margin-bottom:1.1rem}
.ftr li+li{margin-top:.55rem}.ftr a:hover{color:var(--rose)}
.ftr p{color:var(--muted);font-size:.92rem;max-width:36ch;margin-top:1rem}
.ftr-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line-soft);color:var(--faint);font-size:.82rem}
@media(max-width:960px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ftr-grid{grid-template-columns:1fr;gap:2rem}}

/* reveal */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}
@media(max-width:640px){.hdr-r .btn{display:none}.brand small{display:none}}
.partner-block{text-align:left}.partner-block>.eyebrow{justify-content:flex-start}

/* running line — shared by both sites. Change font / size / speed in the variables below. */
:root{
  --ticker-font:var(--font-body);
  --ticker-weight:500;
  --ticker-size:clamp(.8125rem,.78rem + .1vw,.9375rem);   /* 13–15px; 13px on phones */
  --ticker-height:2.25rem;                                 /* 36px */
  --ticker-spacing:.08em;
  --ticker-gap:2.2rem;
  --ticker-duration:50s;
}
@media(max-width:700px){:root{--ticker-size:.8125rem;--ticker-height:2rem}}
.ticker{overflow:hidden;height:var(--ticker-height);display:flex;align-items:center;border-block:1px solid var(--line);background:var(--bg-2);color:var(--muted);position:relative;z-index:1}
.ticker:focus-visible{outline:2px solid var(--rose);outline-offset:-2px}
.ticker-track{display:flex;width:max-content;will-change:transform;animation:ticker var(--ticker-duration) linear infinite}
.ticker-set{display:flex;flex:none;align-items:center}
.ticker-set span{display:flex;align-items:center;white-space:nowrap;font:var(--ticker-weight) var(--ticker-size)/1 var(--ticker-font);letter-spacing:var(--ticker-spacing);text-transform:uppercase}
.ticker-set span::after{content:"";width:3px;height:3px;border-radius:50%;background:var(--rose);margin-inline:var(--ticker-gap);opacity:.8}
.ticker:hover .ticker-track,.ticker:focus .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
@keyframes ticker{to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none!important;transform:none}.ticker{overflow-x:auto}.ticker-set[aria-hidden="true"]{display:none}}
.cgrid{grid-template-columns:repeat(3,1fr)}@media(max-width:960px){.cgrid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.cgrid{grid-template-columns:1fr}}
