html, body { margin: 0; min-height: 100%; }
body { background: #0d0b07; color: #f3ecd9; font-family: var(--ds-font-text); -webkit-font-smoothing: antialiased; }
.wrap { max-width: 640px; margin: 0 auto; padding: 28px 18px 40px; }
img { max-width: 100%; }

:root {
  --ds-font-display: 'EB Garamond', Georgia, 'Times New Roman', serif;
  --ds-font-text: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --ds-page: #0d0b07;
  --ds-ink: #f3ecd9;
  --ds-ink-2: #cfc4a6;
  --ds-hairline: #33290f;
  --ds-white: #171208;
  --ds-teal: #f2c94c;
  --hoh-gold-deep: #8a6508;
  --hoh-gold: #a97e10;
  --hoh-gold-bright: #f2c94c;
  --hoh-black: #0d0b07;
  --hoh-panel: #171208;
  --hoh-line: #4a3c15;
}

/* shared brand atoms */
.hoh-eyebrow { color: var(--hoh-gold-bright) !important; text-transform: uppercase; letter-spacing: 0.16em; font-size: 11px !important; line-height: 16px !important; font-weight: 600; margin: 0 0 8px !important; }
.hoh-small { font-size: 12px !important; line-height: 18px !important; color: #b9ad90 !important; }
a { color: var(--hoh-gold-bright); }
.file-fact { color: var(--hoh-gold-bright) !important; }

/* brand bar */
.hoh-brand { display: flex; align-items: center; gap: 10px; justify-content: center; margin: 2px 0 18px; color: var(--hoh-gold-bright); }
.hoh-crown { display: block; }
.hoh-wordmark { font-family: var(--ds-font-display); font-size: 15px; letter-spacing: 0.34em; text-transform: uppercase; color: var(--hoh-gold-bright); padding-left: 0.34em; }

/* entrance + transition motion */
@keyframes hohRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes hohSlide { from { opacity: 0; transform: translateX(26px); } to { opacity: 1; transform: none; } }
@keyframes hohShine { 0% { background-position: -180% 0; } 100% { background-position: 180% 0; } }
.hoh-reveal { animation: hohRise 0.55s cubic-bezier(0.22, 0.8, 0.32, 1) both; }
.hoh-qanim { animation: hohSlide 0.3s cubic-bezier(0.22, 0.8, 0.32, 1) both; }

/* hero */
.hoh-hero {
  background: radial-gradient(120% 90% at 50% 0%, #241b08 0%, var(--hoh-black) 58%);
  border: 1px solid var(--ds-hairline); border-radius: 24px;
  padding: 30px 22px 26px; text-align: center; color: #f3ecd9;
  box-shadow: 0 12px 32px rgb(16 13 8 / 0.22);
  animation: hohRise 0.5s cubic-bezier(0.22, 0.8, 0.32, 1) both;
}
.hoh-hero img { width: 196px; height: auto; border-radius: 16px; border: 1px solid var(--ds-hairline); display: block; margin: 0 auto 20px; }
.hoh-title {
  font-family: var(--ds-font-display); font-weight: 400; font-size: 36px; line-height: 40px; letter-spacing: -0.02em;
  margin: 0 0 10px;
  background: linear-gradient(100deg, #a97e10 0%, #f2c94c 22%, #fff3c4 50%, #f2c94c 78%, #a97e10 100%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: hohShine 7s linear infinite;
}
.hoh-sub { font-size: 14px; line-height: 24px; color: #efe7d2; margin: 0 auto 18px; max-width: 460px; }
.hoh-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 20px; }
.hoh-chip { border: 1px solid var(--hoh-line); border-radius: 999px; padding: 5px 12px; font-size: 12px; line-height: 16px; color: #cfc4a6; }
.hoh-cta {
  display: inline-block; min-height: 48px; padding: 13px 30px; border: none; border-radius: 6px;
  background: linear-gradient(135deg, #f5c443, #d99f12); color: #191204;
  font-family: var(--ds-font-text); font-weight: 700; font-size: 16px; letter-spacing: 0.05em; text-transform: uppercase;
  cursor: pointer; transition: transform 0.15s ease, filter 0.15s ease;
  box-shadow: 0 6px 20px rgb(217 159 18 / 0.28);
}
.hoh-cta:hover { filter: brightness(1.07); transform: translateY(-1px); }
.hoh-cta:active { transform: translateY(0); }
.hoh-hero .hoh-small { margin: 14px 0 0 !important; }

/* feature cards */
.hoh-feats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hoh-feat {
  background: linear-gradient(165deg, #1a150c 0%, var(--hoh-black) 75%);
  border: 1px solid var(--ds-hairline); border-top: 2px solid var(--hoh-gold);
  border-radius: 14px; padding: 16px 16px 14px; color: var(--hoh-gold-bright);
}
.hoh-feat-title { font-family: var(--ds-font-display); font-weight: 400; font-size: 17px; line-height: 22px; color: var(--hoh-gold-bright) !important; margin: 10px 0 4px !important; }
.hoh-feat-detail { font-size: 12.5px !important; line-height: 19px !important; color: #cfc4a6 !important; margin: 0 !important; }

/* question flow */
.hoh-topbar { display: flex; justify-content: space-between; align-items: baseline; margin: 0 2px 10px; }
.hoh-qnum { color: var(--hoh-gold-bright); text-transform: uppercase; letter-spacing: 0.14em; font-size: 11px; font-weight: 700; }
.hoh-qarea { color: #8d8168; font-size: 12px; }
.hoh-progress { height: 6px; background: var(--ds-hairline); border-radius: 3px; overflow: hidden; margin: 0 0 16px; }
.hoh-progress > div { height: 100%; background: linear-gradient(90deg, var(--hoh-gold), var(--hoh-gold-bright)); border-radius: 3px; transition: width 0.3s ease; }
.hoh-qcard {
  background: linear-gradient(165deg, #1a150c 0%, var(--hoh-black) 70%);
  border: 1px solid var(--ds-hairline); border-radius: 20px; padding: 24px 20px;
  box-shadow: 0 12px 32px rgb(16 13 8 / 0.22);
}
.hoh-qtext { font-family: var(--ds-font-display); font-weight: 400; font-size: 22px; line-height: 30px; color: #f3ecd9; margin: 0 0 18px; }
.hoh-opt {
  display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
  background: #171208; border: 1px solid var(--hoh-line); border-radius: 12px;
  padding: 12px 14px; margin-bottom: 10px; cursor: pointer;
  color: #f3ecd9; font-family: var(--ds-font-text); font-size: 14px; line-height: 20px;
  transition: border-color 0.15s ease, transform 0.12s ease, background 0.15s ease;
}
.hoh-opt:hover { border-color: var(--hoh-gold); transform: translateX(2px); }
.hoh-opt .n {
  width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--hoh-line); flex: none;
  display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--hoh-gold-bright);
}
.hoh-opt.sel { background: linear-gradient(135deg, #f5c443, #d99f12); color: #191204; border-color: transparent; font-weight: 700; }
.hoh-opt.sel .n { border-color: rgb(25 18 4 / 0.4); color: #191204; }
.hoh-qnav { display: flex; justify-content: space-between; align-items: center; margin-top: 4px; }
.hoh-back { background: none; border: none; color: #8d8168; font-size: 13px; cursor: pointer; padding: 10px 4px; font-family: var(--ds-font-text); }
.hoh-back:hover { color: #cfc4a6; }
.hoh-qprogress-note { color: #6f6550; font-size: 12px; padding-right: 4px; }

/* panels */
.hoh-panel {
  background: linear-gradient(165deg, #1a150c 0%, var(--hoh-black) 70%);
  border: 1px solid var(--ds-hairline); border-radius: 20px;
  padding: 24px 22px; color: #f3ecd9; margin: 6px 0 18px;
  box-shadow: 0 12px 32px rgb(16 13 8 / 0.22);
}
.hoh-panel p { color: #efe7d2; font-size: 14px; line-height: 24px; margin: 8px 0; }
.hoh-panel a { color: var(--hoh-gold-bright); }
.hoh-bandname { font-family: var(--ds-font-display); font-weight: 400; font-size: 26px; line-height: 32px; color: var(--hoh-gold-bright) !important; margin: 16px 0 4px !important; text-align: center; }
.hoh-verdict { text-align: center; }
.hoh-verdict p:not(.hoh-eyebrow):not(.hoh-bandname) { text-align: left; }
.hoh-archname { font-family: var(--ds-font-display); font-weight: 400; font-size: 30px; line-height: 36px; color: var(--hoh-gold-bright) !important; margin: 2px 0 0 !important; }
.hoh-block { margin-top: 14px; }
.hoh-block .hoh-label, .hoh-protocol .hoh-label { color: var(--hoh-gold-bright) !important; text-transform: uppercase; letter-spacing: 0.12em; font-size: 11px !important; line-height: 16px !important; font-weight: 700; margin: 0 0 4px !important; }
.hoh-block p { margin: 0; }

/* score ring */
.hoh-ringwrap { position: relative; width: 150px; height: 150px; margin: 8px auto 0; }
.hoh-ring-track { fill: none; stroke: var(--ds-hairline); stroke-width: 10; }
.hoh-ring-fill { fill: none; stroke: url(#hohGoldGrad); stroke-width: 10; stroke-linecap: round; transition: stroke-dashoffset 0.1s linear; }
.hoh-ring-num { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.hoh-ring-big { font-family: var(--ds-font-display); font-size: 52px; line-height: 1; color: var(--hoh-gold-bright); }
.hoh-ring-of { font-size: 13px; color: #b9ad90; margin-top: 4px; }

/* radar + bars */
.hoh-radar-wrap { display: flex; justify-content: center; margin: 6px 0 14px; }
.hoh-radar { width: 100%; max-width: 320px; height: auto; }
.hoh-radar-ring { fill: none; stroke: var(--ds-hairline); stroke-width: 1; }
.hoh-radar-axis { stroke: var(--ds-hairline); stroke-width: 1; }
.hoh-radar-value { fill: rgb(242 201 76 / 0.18); stroke: var(--hoh-gold-bright); stroke-width: 2; stroke-linejoin: round; }
.hoh-radar-dot { fill: var(--hoh-gold-bright); }
.hoh-radar-label { fill: #cfc4a6; font-size: 12px; font-family: var(--ds-font-text); text-anchor: middle; }
.hoh-bars { margin: 2px 0 12px; }
.hoh-bar-row { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.hoh-bar-name { width: 76px; flex: none; font-size: 12.5px; color: #cfc4a6; }
.hoh-bar-track { flex: 1; height: 8px; background: var(--ds-hairline); border-radius: 4px; overflow: hidden; }
.hoh-bar-fill { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--hoh-gold), var(--hoh-gold-bright)); transition: width 0.9s cubic-bezier(0.22, 0.8, 0.32, 1); }
.hoh-bar-fill.weak { background: linear-gradient(90deg, #cfc4a6, #f3ecd9); }
.hoh-bar-num { width: 52px; flex: none; text-align: right; font-size: 13px; font-weight: 700; color: var(--hoh-gold-bright); }
.hoh-bar-num small { font-weight: 400; color: #8d8168; }
.hoh-reads { border-top: 1px solid var(--ds-hairline); padding-top: 10px; margin-top: 4px; }
.hoh-read { font-size: 13px !important; line-height: 21px !important; color: #cfc4a6 !important; margin: 6px 0 !important; }
.hoh-read strong { color: var(--hoh-gold-bright); font-weight: 600; }

/* archetype reveal */
.hoh-arch-head { display: flex; align-items: center; gap: 16px; margin-bottom: 6px; }
.hoh-arch-head .hoh-emblem { flex: none; }
.hoh-emblem { color: var(--hoh-gold-bright); }
.hoh-arch .hoh-eyebrow { margin-bottom: 2px !important; }
.hoh-protocol { margin-top: 16px; border-top: 1px solid var(--ds-hairline); padding-top: 14px; }
.hoh-pstep { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgb(51 41 15 / 0.5); }
.hoh-pstep:last-child { border-bottom: none; }
.hoh-pdays { flex: none; width: 70px; color: var(--hoh-gold-bright); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; padding-top: 1px; }
.hoh-paction { font-size: 13.5px; line-height: 21px; color: #efe7d2; }

/* join panel */
.hoh-join { text-align: center; }
.hoh-join-btn {
  min-height: 48px; border: none; border-radius: 8px; padding: 13px 24px; margin: 14px 0 8px;
  background: linear-gradient(135deg, #f5c443, #d99f12); color: #191204 !important;
  font-weight: 700; font-size: 15px; font-family: var(--ds-font-text);
  text-decoration: none; display: inline-flex; align-items: center; cursor: pointer;
  transition: transform 0.15s ease, filter 0.15s ease;
  box-shadow: 0 6px 20px rgb(217 159 18 / 0.28);
}
.hoh-join-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }

/* type library */
.hoh-lib {
  border: 1px solid var(--ds-hairline); border-top: 3px solid var(--hoh-gold);
  border-radius: 14px; padding: 18px 18px 12px; margin: 0 0 14px; background: #171208;
}
.hoh-lib-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.hoh-lib-eyebrow { color: var(--hoh-gold-deep) !important; text-transform: uppercase; letter-spacing: 0.14em; font-size: 10.5px !important; font-weight: 700; margin: 0 0 2px !important; }
.hoh-lib h3 { font-family: var(--ds-font-display); font-weight: 400; font-size: 21px; line-height: 26px; color: var(--hoh-gold-bright); margin: 0; }
.hoh-lib p { font-size: 14px; line-height: 24px; color: #efe7d2; margin: 0 0 8px; }
.hoh-lib .hoh-label { color: var(--hoh-gold-deep) !important; text-transform: uppercase; letter-spacing: 0.1em; font-size: 10.5px !important; font-weight: 700; margin: 10px 0 2px !important; }
.hoh-lib .hoh-label + p { margin: 0 0 6px; color: #cfc4a6; }

.quiz-reset { margin: 14px 0 4px; }

@media (max-width: 480px) {
  .hoh-title { font-size: 29px; line-height: 35px; }
  .hoh-qtext { font-size: 19px; line-height: 27px; }
  .hoh-panel { padding: 18px 16px; }
  .hoh-hero { padding: 22px 16px 20px; }
  .hoh-join-btn { justify-content: center; width: 100%; box-sizing: border-box; }
  .hoh-feats { grid-template-columns: 1fr; }
  .hoh-bar-name { width: 66px; font-size: 12px; }
  .hoh-pdays { width: 62px; }
}

@media (prefers-reduced-motion: reduce) {
  .hoh-reveal, .hoh-qanim, .hoh-hero { animation: none; }
  .hoh-title { animation: none; background: none; color: var(--hoh-gold-bright); }
  .hoh-bar-fill, .hoh-progress > div, .hoh-ring-fill { transition: none; }
}

/* page chrome + DS-equivalents */
.g-label { color: var(--hoh-gold-bright); text-transform: uppercase; letter-spacing: 0.14em; font-size: 11px; font-weight: 700; margin: 34px 0 6px; }
.g-heading { font-family: var(--ds-font-display); font-weight: 400; font-size: 28px; line-height: 34px; color: #f3ecd9; margin: 0 0 16px; }
.g-intro { font-size: 14px; line-height: 24px; color: #efe7d2; margin: 0 0 16px; }
.numlist { margin: 0; padding: 0; list-style: none; counter-reset: n; }
.numlist li { counter-increment: n; display: flex; gap: 14px; padding: 13px 0; border-bottom: 1px solid var(--ds-hairline); font-size: 14px; line-height: 22px; color: #efe7d2; }
.numlist li:last-child { border-bottom: none; }
.numlist li::before { content: counter(n) "."; color: var(--hoh-gold-bright); font-weight: 600; flex: none; width: 20px; }
.rows { margin: 0; }
.row { padding: 12px 0; border-bottom: 1px solid var(--ds-hairline); }
.row:last-child { border-bottom: none; }
.row-name { font-size: 14px; font-weight: 700; color: #f3ecd9; margin: 0 0 2px; }
.row-detail { font-size: 14px; line-height: 22px; color: #cfc4a6; margin: 0; }
.callout { border-left: 3px solid var(--hoh-gold); background: #171208; border-radius: 0 12px 12px 0; padding: 14px 16px; margin: 18px 0; }
.callout-title { font-size: 14px; font-weight: 700; color: #f3ecd9; margin: 0 0 4px; }
.callout-body { font-size: 14px; line-height: 22px; color: #cfc4a6; margin: 0; }
.caption { font-size: 12px; line-height: 18px; color: #b9ad90; margin: 10px 0 0; }
.closing { font-size: 12.5px; line-height: 20px; color: #b9ad90; margin: 34px 0 0; text-align: center; }
.btn-secondary { display: inline-block; min-height: 44px; padding: 11px 22px; border: 1px solid var(--hoh-line); border-radius: 8px; background: none; color: var(--hoh-gold-bright); font-family: var(--ds-font-text); font-weight: 600; font-size: 14px; cursor: pointer; }
.btn-secondary:hover { border-color: var(--hoh-gold); }
/* Kit embed on brand */
.hoh-join .formkit-form { background: transparent !important; }
.hoh-join .formkit-fields { display: flex; flex-direction: column; gap: 10px; }
.hoh-join .formkit-field input[type="email"] { width: 100%; box-sizing: border-box; min-height: 48px; border-radius: 8px; border: 1px solid var(--hoh-line); background: #0d0b07; color: #f3ecd9; padding: 12px 14px; font-size: 15px; font-family: var(--ds-font-text); }
.hoh-join .formkit-field input[type="email"]:focus { outline: none; border-color: var(--hoh-gold-bright); }
.hoh-join .formkit-submit, .hoh-join .formkit-submit button, .hoh-join button.formkit-submit { min-height: 48px; width: 100%; border: none; border-radius: 8px; background: linear-gradient(135deg, #f5c443, #d99f12) !important; color: #191204 !important; font-weight: 700; font-size: 15px; font-family: var(--ds-font-text); cursor: pointer; padding: 13px 24px; }
.hoh-join .formkit-submit:hover, .hoh-join button.formkit-submit:hover { filter: brightness(1.06); }
.hoh-join .formkit-guarantee, .hoh-join .formkit-powered-by-convertkit-container { display: none !important; }
.hoh-join .formkit-alert { font-size: 13px; margin-top: 8px; }
.hoh-join .formkit-alert-success { color: var(--hoh-gold-bright); }
.hoh-join .formkit-alert-error { color: #e8a0a0; }
@media (max-width: 480px) { .g-heading { font-size: 25px; line-height: 31px; } .wrap { padding: 20px 14px 32px; } }
