/* tokens/fonts.css */
/* Manrope — the only typeface. Files extracted from the Holly Brand and Messaging Pack. */
@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/Manrope-400.woff2") format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url("/fonts/Manrope-600.woff2") format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/Manrope-700.woff2") format("woff2")}
@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url("/fonts/Manrope-800.woff2") format("woff2")}

/* tokens/colors.css */
:root{
  /* --- Ink ramp --- */
  --holly-ink:#1B2340;
  --holly-ink-soft:#3A4468;
  --holly-muted:#5B6689;

  /* --- Brand --- */
  --holly-primary:#556EF6;
  --holly-accent-from:#6F86FF;
  --holly-link-hover:#3F55D8;
  --holly-sky:#48B3FD;
  --holly-cyan:#B1EFFD;
  --holly-navy:#021026;
  --holly-bg:#EEF1F6;
  --holly-bg-deep:#E7ECF5;

  /* The bridge colour. Direction B: sky blue carries the logo into the interface. */
  --holly-bridge:var(--holly-sky);

  /* --- Gold: AI-written content ONLY. Never a brand or UI colour. --- */
  --holly-gold:#E0A83B;
  --holly-gold-text:#A9791F;

  /* --- Logo artwork, sampled. Print / packaging only. --- */
  --holly-logo-ink:#021026;
  --holly-logo-yellow-bright:#FEF908;
  --holly-logo-yellow-mid:#FCE400;
  --holly-logo-amber-deep:#FCB400;
  --holly-logo-sky:#48B3FD;
  --holly-logo-cyan:#B1EFFD;

  /* --- Status. Shared across device, screen and chart. Never change these. --- */
  --holly-green:#16A34A;   /* calm */
  --holly-amber:#F59E0B;   /* lively, a nudge not a failure */
  --holly-red:#EF4444;     /* loud, attention needed */
  --holly-emerald:#10B981; /* improvement, success */

  /* --- Light ring, device LED values --- */
  --holly-led-green:#00FF00;
  --holly-led-amber-low:#50FF00;
  --holly-led-amber-high:#B46400;
  --holly-led-red:#FF0000;
  --holly-led-invacuation:#FF7800;
  --holly-led-healthcheck:#323232;
  --holly-led-ramp:linear-gradient(90deg,#00FF00,#1EFF00,#50FF00,#B46400,#FF0000); /* @kind color */

  /* --- Temperature bands, DfE guidance --- */
  --holly-temp-cold:#0369A1;
  --holly-temp-cool:#0284C7;
  --holly-temp-comfortable:#166534;
  --holly-temp-warm:#92400E;
  --holly-temp-hot:#991B1B;

  /* --- Semantic aliases --- */
  --holly-text:var(--holly-ink);
  --holly-text-secondary:var(--holly-ink-soft);
  --holly-text-muted:var(--holly-muted);
  --holly-text-on-dark:#E8ECF4;
  --holly-text-on-primary:#FFFFFF;
  --holly-link:var(--holly-primary);
  --holly-accent:var(--holly-bridge);
  --holly-hairline:rgba(28,40,92,.10);
  --holly-hairline-soft:rgba(28,40,92,.07);
}

/* tokens/typography.css */
:root{
  --holly-font:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  --holly-font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;

  --holly-weight-prose:400;
  --holly-weight-body:600;
  --holly-weight-strong:700;
  --holly-weight-display:800;

  --holly-tracking-display:-.02em;
  --holly-tracking-label:.07em;
  --holly-tracking-label-tight:.06em;

  --holly-size-display:clamp(1.75rem,4.2vw,2.85rem);
  --holly-size-h2:1.5rem;
  --holly-size-h3:1rem;
  --holly-size-body:1rem;
  --holly-size-body-sm:.86rem;
  --holly-size-caption:.8rem;
  --holly-size-label:.62rem;
  --holly-size-label-lg:.66rem;

  --holly-leading-display:1.14;
  --holly-leading-body:1.55;
  --holly-leading-tight:1.18;

  /* semantic */
  --holly-type-display:var(--holly-weight-display) var(--holly-size-display)/var(--holly-leading-display) var(--holly-font);
  --holly-type-body:var(--holly-weight-body) var(--holly-size-body)/var(--holly-leading-body) var(--holly-font);
  --holly-type-prose:var(--holly-weight-prose) var(--holly-size-body)/var(--holly-leading-body) var(--holly-font);
}

/* tokens/spacing.css */
:root{
  --holly-space-1:.25rem;
  --holly-space-2:.35rem;
  --holly-space-3:.5rem;
  --holly-space-4:.7rem;
  --holly-space-5:1rem;
  --holly-space-6:1.2rem;
  --holly-space-7:1.6rem;
  --holly-space-8:2.2rem;
  --holly-space-9:2.6rem;
  --holly-space-10:3.4rem;

  --holly-pad-panel:1.9rem 2.1rem;
  --holly-pad-card:1.2rem 1.35rem;
  --holly-pad-subpanel:.9rem 1rem;

  --holly-gap-tight:.35rem;
  --holly-gap:.7rem;
  --holly-gap-loose:1rem;

  --holly-measure:60ch;
  --holly-measure-lede:56ch;
  --holly-shell-max:1240px;
  --holly-rail:236px;
}

/* tokens/shape.css */
:root{
  --holly-radius-panel:1.4rem;
  --holly-radius-card:1.2rem;
  --holly-radius-subpanel:1rem;
  --holly-radius-input:.75rem;
  --holly-radius-chip:.55rem;
  --holly-radius-pill:999px;

  /* Shadows are long, soft, tinted indigo. Never neutral grey. */
  --holly-shadow-panel:0 22px 44px -28px rgba(28,40,92,.35);
  --holly-shadow-card:0 14px 30px -24px rgba(28,40,92,.30);
  --holly-shadow-raised:0 18px 34px -26px rgba(28,40,92,.40);
  --holly-shadow-button:0 10px 22px -14px rgba(85,110,246,.55);

  /* The glass lip: a bright inner top edge plus a translucent white containment ring.
     This replaces borders entirely. Nothing in Holly uses a conventional border. */
  --holly-lip:inset 0 1px 0 rgba(255,255,255,.85),inset 0 0 0 1px rgba(255,255,255,.50); /* @kind shadow */
  --holly-lip-soft:inset 0 1px 0 rgba(255,255,255,.80),inset 0 0 0 1px rgba(255,255,255,.50); /* @kind shadow */
  --holly-lip-ring:inset 0 0 0 1px rgba(255,255,255,.60); /* @kind shadow */

  --holly-lift:var(--holly-lip),var(--holly-shadow-panel);
  --holly-lift-card:var(--holly-lip-soft),var(--holly-shadow-card);

  --holly-focus:inset 0 0 0 1px rgba(85,110,246,.85),0 0 0 4px rgba(85,110,246,.16); /* @kind shadow */

  --holly-blur-panel:blur(20px) saturate(150%); /* @kind other */
  --holly-blur-card:blur(14px) saturate(140%); /* @kind other */
}

/* tokens/surfaces.css */
:root{
  --holly-panel-fill:linear-gradient(160deg,rgba(255,255,255,.72),rgba(255,255,255,.50));
  --holly-card-fill:linear-gradient(160deg,rgba(255,255,255,.66),rgba(255,255,255,.44));
  --holly-subpanel-fill:rgba(255,255,255,.45);
  --holly-input-fill:rgba(255,255,255,.55);
  --holly-primary-fill:linear-gradient(142deg,#6f86ff,#556ef6);
  --holly-dark-fill:#1B2340;

  /* The aurora wash: four stacked radials over a flat base. The single most
     recognisable thing about the interface. Always background-attachment:fixed. */
  --holly-aurora:
    radial-gradient(1100px 720px at 88% -8%, rgba(120,200,255,.50), transparent 70%),
    radial-gradient(900px 640px at -6% 10%, rgba(180,170,255,.42), transparent 70%),
    radial-gradient(820px 620px at 60% 108%, rgba(150,240,210,.34), transparent 70%),
    linear-gradient(160deg,#eef1f6,#e7ecf5); /* @kind color */
}

/* tokens/motion.css */
:root{
  --holly-duration:.15s; /* @kind other */
  --holly-duration-slow:.6s; /* @kind other */
  --holly-duration-ring:2.4s; /* @kind other */
  --holly-ease:ease; /* @kind other */
  --holly-transition:all var(--holly-duration) var(--holly-ease); /* @kind other */
  --holly-hover-lift:translateY(-1px); /* @kind other */
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* tokens/base.css */
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--holly-font);
  font-weight:var(--holly-weight-body);
  font-size:16px;
  line-height:var(--holly-leading-body);
  color:var(--holly-ink);
  background:var(--holly-bg);
  background-image:var(--holly-aurora);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-weight:var(--holly-weight-display);letter-spacing:var(--holly-tracking-display);margin:0}
p{margin:0 0 .9em;text-wrap:pretty}
a{color:var(--holly-link);text-decoration:none;border-bottom:1px solid rgba(85,110,246,.3)}
a:hover{color:var(--holly-link-hover)}
:focus-visible{outline:none;box-shadow:var(--holly-focus);border-radius:.5rem}
.holly-tnum,[data-tnum]{font-variant-numeric:tabular-nums}


/* site build additions */
html,body{overflow-x:clip}
:focus-visible{outline:3px solid #3F55D8;outline-offset:3px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{[data-print-hide]{display:none!important}body{background:#fff!important}}

/* hover/focus from style-hover */
.hv1:focus-visible{left:1rem!important;top:.6rem!important}
.hv1:focus{left:1rem!important;top:.6rem!important}
.hv2:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv3:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv4:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv5:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv6:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv7:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv8:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv9:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv10:hover{color:#fff!important;background:rgba(255,255,255,.16)!important}
.hv11:hover{color:#FCE400!important;transform:translateY(-1px)!important}
.hv12:hover{color:#3F55D8!important;transform:translateY(-1px)!important}
.hv13:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv14:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv15:hover{color:#FCE400!important}
.hv16:hover{color:#FCE400!important}
.hv17:hover{color:#FCE400!important}
.hv18:hover{color:#FCE400!important}
.hv19:hover{color:#FCE400!important}
.hv20:hover{color:#FCE400!important}
.hv21:hover{color:#FCE400!important}
.hv22:focus-visible{left:1rem!important;top:.6rem!important}
.hv22:focus{left:1rem!important;top:.6rem!important}
.hv23:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv24:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv25:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv26:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv27:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv28:hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(177,239,253,.55),inset 0 1px 0 rgba(255,255,255,.3),0 22px 46px -22px rgba(72,179,253,.95)!important}
.hv29:hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(177,239,253,.55),inset 0 1px 0 rgba(255,255,255,.3),0 22px 46px -22px rgba(72,179,253,.95)!important}
.hv30:hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(177,239,253,.55),inset 0 1px 0 rgba(255,255,255,.3),0 22px 46px -22px rgba(72,179,253,.95)!important}
.hv31:hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(177,239,253,.55),inset 0 1px 0 rgba(255,255,255,.3),0 22px 46px -22px rgba(72,179,253,.95)!important}
.hv32:hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(177,239,253,.55),inset 0 1px 0 rgba(255,255,255,.3),0 22px 46px -22px rgba(72,179,253,.95)!important}
.hv33:hover{color:#fff!important;background:rgba(255,255,255,.16)!important}
.hv34:hover{transform:translateY(-2px)!important;color:var(--holly-ink)!important}
.hv35:hover{transform:translateY(-2px)!important;color:var(--holly-ink)!important}
.hv36:hover{color:#FCE400!important}
.hv37:hover{color:#FCE400!important}
.hv38:hover{color:#FCE400!important}
.hv39:hover{color:#FCE400!important}
.hv40:hover{color:#FCE400!important}
.hv41:hover{color:#FCE400!important}
.hv42:hover{color:#FCE400!important}
.hv43:focus-visible{left:1rem!important;top:.6rem!important}
.hv43:focus{left:1rem!important;top:.6rem!important}
.hv44:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv45:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv46:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv47:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv48:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv49:hover{color:#FCE400!important;transform:translateY(-1px)!important}
.hv50:hover{color:#fff!important}
.hv51:hover{color:#FCE400!important}
.hv52:hover{color:#FCE400!important}
.hv53:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv54:hover{color:#FCE400!important}
.hv55:hover{color:#FCE400!important}
.hv56:hover{color:#FCE400!important}
.hv57:hover{color:#FCE400!important}
.hv58:hover{color:#FCE400!important}
.hv59:hover{color:#FCE400!important}
.hv60:hover{color:#FCE400!important}
.hv61:focus-visible{left:1rem!important;top:.6rem!important}
.hv61:focus{left:1rem!important;top:.6rem!important}
.hv62:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv63:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv64:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv65:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv66:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv67:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv68:hover{color:#FCE400!important}
.hv69:hover{color:#FCE400!important}
.hv70:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv71:hover{color:#FCE400!important}
.hv72:hover{color:#FCE400!important}
.hv73:hover{color:#FCE400!important}
.hv74:hover{color:#FCE400!important}
.hv75:hover{color:#FCE400!important}
.hv76:hover{color:#FCE400!important}
.hv77:hover{color:#FCE400!important}
.hv78:focus-visible{left:1rem!important;top:.6rem!important}
.hv78:focus{left:1rem!important;top:.6rem!important}
.hv79:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv80:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv81:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv82:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv83:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv84:hover{color:#FCE400!important}
.hv85:hover{color:#FCE400!important}
.hv86:hover{color:#021026!important;transform:translateY(-1px)!important}
.hv87:hover{color:#FCE400!important}
.hv88:hover{color:#FCE400!important}
.hv89:hover{color:#FCE400!important}
.hv90:hover{color:#FCE400!important}
.hv91:hover{color:#FCE400!important}
.hv92:hover{color:#FCE400!important}
.hv93:hover{color:#FCE400!important}
.hv94:focus-visible{left:1rem!important;top:.6rem!important}
.hv94:focus{left:1rem!important;top:.6rem!important}
.hv95:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv96:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv97:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv98:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv99:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv100:hover{transform:translateY(-1px)!important}
.hv101:hover{transform:translateY(-1px)!important}
.hv102:hover{transform:translateY(-1px)!important}
.hv103:hover{transform:translateY(-1px)!important}
.hv104:hover{transform:translateY(-1px)!important}
.hv105:hover{transform:translateY(-1px)!important}
.hv106:hover{transform:translateY(-1px)!important}
.hv107:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}
.hv108:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}
.hv109:hover{color:#3F55D8!important}
.hv110:hover{color:#FCE400!important}
.hv111:hover{color:#FCE400!important}
.hv112:hover{color:#FCE400!important}
.hv113:hover{color:#FCE400!important}
.hv114:hover{color:#FCE400!important}
.hv115:hover{color:#FCE400!important}
.hv116:hover{color:#FCE400!important}
.hv117:focus-visible{left:1rem!important;top:.6rem!important}
.hv117:focus{left:1rem!important;top:.6rem!important}
.hv118:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv119:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv120:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv121:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv122:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv123:hover{color:#3F55D8!important}
.hv124:hover{color:#3F55D8!important}
.hv125:hover{color:#3F55D8!important}
.hv126:hover{color:#3F55D8!important}
.hv127:hover{color:#3F55D8!important}
.hv128:hover{color:#3F55D8!important}
.hv129:hover{color:#3F55D8!important}
.hv130:hover{color:#3F55D8!important}
.hv131:hover{color:#3F55D8!important}
.hv132:hover{color:#FCE400!important}
.hv133:hover{color:#FCE400!important}
.hv134:hover{color:#FCE400!important}
.hv135:hover{color:#FCE400!important}
.hv136:hover{color:#FCE400!important}
.hv137:hover{color:#FCE400!important}
.hv138:hover{color:#FCE400!important}
.hv139:hover{color:#FCE400!important}
.hv140:hover{color:#FCE400!important}
.hv141:focus-visible{left:1rem!important;top:.6rem!important}
.hv141:focus{left:1rem!important;top:.6rem!important}
.hv142:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv143:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv144:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv145:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv146:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv147:hover{color:#3F55D8!important}
.hv148:hover{color:#3F55D8!important}
.hv149:hover{color:#3F55D8!important}
.hv150:hover{color:#3F55D8!important}
.hv151:hover{color:#3F55D8!important}
.hv152:hover{color:#3F55D8!important}
.hv153:hover{color:#3F55D8!important}
.hv154:hover{color:#3F55D8!important}
.hv155:hover{color:#3F55D8!important}
.hv156:hover{color:#3F55D8!important}
.hv157:hover{color:#3F55D8!important}
.hv158:hover{color:#3F55D8!important}
.hv159:hover{color:#3F55D8!important}
.hv160:hover{color:#3F55D8!important}
.hv161:hover{color:#3F55D8!important}
.hv162:hover{color:#3F55D8!important}
.hv163:hover{color:#FCE400!important}
.hv164:hover{color:#FCE400!important}
.hv165:hover{color:#FCE400!important}
.hv166:hover{color:#FCE400!important}
.hv167:hover{color:#FCE400!important}
.hv168:hover{color:#FCE400!important}
.hv169:hover{color:#FCE400!important}
.hv170:hover{color:#FCE400!important}
.hv171:hover{color:#FCE400!important}
.hv172:hover{color:#FCE400!important}
.hv173:focus-visible{left:1rem!important;top:.6rem!important}
.hv173:focus{left:1rem!important;top:.6rem!important}
.hv174:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv175:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv176:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv177:hover{color:var(--holly-ink)!important;background:rgba(28,40,92,.06)!important}
.hv178:hover{color:#fff!important;background:#1B2340!important;transform:translateY(-1px)!important}
.hv179:hover{color:#fff!important;transform:translateY(-1px)!important}
.hv180:hover{color:var(--holly-ink)!important;background:rgba(255,255,255,.85)!important;transform:translateY(-1px)!important}
.hv181:hover{color:#FCE400!important}
.hv182:hover{color:#FCE400!important}
.hv183:hover{color:#FCE400!important}
.hv184:hover{color:#FCE400!important}
.hv185:hover{color:#FCE400!important}
.hv186:hover{color:#FCE400!important}
.hv187:hover{color:#FCE400!important}
