:root {
  --ink: #2f415e;
  --green: #2f415e;
  --green-2: #3b5276;
  --cream: #f1e4dc;
  --paper: #fbf8f6;
  --amber: #cb7c50;
  --amber-dark: #ad5f39;
  --line: rgba(47, 65, 94, 0.16);
  --white: #ffffff;
  --radius: 20px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "DM Sans", Arial, sans-serif; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.skip-link { position: fixed; left: 12px; top: -60px; z-index: 100; background: var(--white); padding: 12px 16px; border-radius: 8px; }
.skip-link:focus { top: 12px; }

.site-header { height: 86px; display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(24px, 5vw, 76px); position: absolute; top: 0; left: 0; right: 0; z-index: 20; }
.brand { display: inline-flex; align-items: center; gap: 10px; }
.brand-logo { width: 142px; height: 64px; object-fit: contain; display: block; }
.brand > span:last-child { display: flex; flex-direction: column; line-height: .8; }
.brand strong { font: 800 23px/1 "Libre Franklin", sans-serif; letter-spacing: -.8px; }
.brand small { font-size: 8px; letter-spacing: 4.5px; margin: 7px 0 0 2px; font-weight: 700; }
.brand-mark { width: 34px; height: 36px; display: flex; gap: 3px; align-items: flex-end; transform: skewY(-10deg); }
.brand-mark i { display: block; width: 15px; border: 2px solid var(--amber); border-radius: 2px 2px 8px 2px; }
.brand-mark i:first-child { height: 31px; }
.brand-mark i:last-child { height: 26px; transform: translateY(-3px) scaleX(-1); }
.site-header nav { display: flex; align-items: center; gap: 34px; font-size: 14px; font-weight: 600; }
.site-header nav > a:not(.nav-cta) { position: relative; }
.site-header nav > a:not(.nav-cta)::after { content: ""; position: absolute; height: 1px; left: 0; right: 100%; bottom: -5px; background: var(--green); transition: right .25s ease; }
.site-header nav > a:hover::after { right: 0; }
.nav-cta { background: var(--green); color: white; padding: 13px 18px; border-radius: 999px; }

.hero { min-height: 790px; padding: 160px clamp(24px, 7vw, 110px) 90px; display: grid; grid-template-columns: minmax(420px, 1fr) minmax(420px, .88fr); align-items: center; gap: 5vw; position: relative; background: radial-gradient(circle at 18% 5%, #fff 0, transparent 35%), var(--paper); overflow: hidden; }
.hero::after { content: ""; position: absolute; width: 280px; height: 280px; right: -140px; top: 290px; border: 1px solid rgba(22,60,50,.08); border-radius: 50%; box-shadow: 0 0 0 70px rgba(22,60,50,.025), 0 0 0 140px rgba(22,60,50,.018); }
.eyebrow { margin: 0 0 24px; text-transform: uppercase; letter-spacing: 2.2px; font-size: 11px; font-weight: 700; display: flex; align-items: center; gap: 10px; }
.eyebrow span { width: 26px; height: 2px; background: var(--amber); display: inline-block; }
.hero h1, .section-intro h2, .path-intro h2 { margin: 0; font: 800 clamp(54px, 6vw, 90px)/.96 "Libre Franklin", sans-serif; letter-spacing: -4.8px; }
h1 em, h2 em { color: var(--amber-dark); font-style: normal; }
.hero-lead { max-width: 590px; margin: 28px 0; font-size: 18px; line-height: 1.65; color: #60697a; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin: 34px 0 46px; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 22px; min-height: 52px; padding: 0 23px; border-radius: 8px; font-size: 14px; font-weight: 700; border: 0; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--green); color: white; }
.button-primary:hover { background: var(--green-2); }
.text-link { font-size: 14px; font-weight: 700; border-bottom: 1px solid var(--line); padding: 10px 0; }
.proof { display: flex; align-items: stretch; gap: 25px; }
.proof > div { display: flex; align-items: center; gap: 9px; padding-right: 25px; border-right: 1px solid var(--line); }
.proof > div:last-child { border: 0; }
.proof strong { font: 800 29px/1 "Libre Franklin", sans-serif; }
.proof sup { color: var(--amber-dark); font-size: 14px; }
.proof span { font-size: 10px; text-transform: uppercase; letter-spacing: .6px; line-height: 1.35; color: #6a746f; font-weight: 600; }

.hero-visual { height: 540px; position: relative; display: flex; align-items: center; justify-content: center; }
.halo { position: absolute; width: 450px; height: 450px; border-radius: 50%; background: #e4cabb; }
.halo::after { content: ""; position: absolute; width: 350px; height: 350px; top: 50px; left: 50px; border: 1px solid rgba(22,60,50,.12); border-radius: 50%; }
.book-cover { position: absolute; width: 236px; height: auto; object-fit: contain; border-radius: 3px 9px 9px 3px; box-shadow: -22px 31px 48px rgba(27,43,37,.24); }
.cover-back { transform: translate(-82px,-54px) rotate(-10deg); }
.cover-front { transform: translate(80px,42px) rotate(7deg); z-index: 2; }
.book { position: absolute; width: 236px; height: 366px; border-radius: 3px 9px 9px 3px; padding: 42px 28px; color: white; box-shadow: -22px 31px 48px rgba(27,43,37,.22); display: flex; flex-direction: column; overflow: hidden; }
.book::before { content: ""; position: absolute; inset: 0 auto 0 7px; width: 2px; background: rgba(255,255,255,.2); box-shadow: 4px 0 7px rgba(0,0,0,.13); }
.book-back { background: linear-gradient(155deg, #cb7c50, #75432f); transform: translate(-78px,-54px) rotate(-10deg); opacity: .94; }
.book-front { background: linear-gradient(155deg, #425a7d 0%, #243650 72%); transform: translate(76px,42px) rotate(7deg); }
.book-front::after { content: "P"; position: absolute; font: 800 210px/1 "Libre Franklin", sans-serif; color: rgba(255,255,255,.035); right: -35px; bottom: -10px; }
.book-kicker { font-size: 8px; letter-spacing: 1.8px; text-transform: uppercase; margin-bottom: 55px; }
.book strong { font: 800 21px/1.13 "Libre Franklin", sans-serif; letter-spacing: -.8px; position: relative; z-index: 1; }
.book strong b { color: #e4ad49; font: inherit; }
.book small { margin-top: 18px; font-size: 7px; line-height: 1.6; opacity: .8; position: relative; z-index: 1; }
.book-line { width: 42px; height: 2px; background: #e4ad49; margin-top: auto; }
.floating-note { position: absolute; z-index: 5; background: rgba(255,255,255,.92); border: 1px solid rgba(22,60,50,.1); box-shadow: 0 15px 35px rgba(31,43,38,.12); border-radius: 999px; padding: 10px 14px; font-size: 10px; font-weight: 700; letter-spacing: .3px; }
.floating-note::before { content: "✓"; color: var(--amber-dark); margin-right: 6px; }
.note-one { left: 6%; top: 18%; }
.note-two { right: 2%; bottom: 20%; }

.editorial { background: var(--green); color: white; padding: 110px clamp(24px, 7vw, 110px) 105px; position: relative; overflow: hidden; }
.editorial::before {
  content: "";
  position: absolute;
  right: -70px;
  top: 38px;
  width: clamp(340px, 46vw, 620px);
  height: clamp(180px, 27vw, 320px);
  background: url("logo-duo-header.png") center / contain no-repeat;
  filter: brightness(0) invert(1);
  opacity: .045;
  pointer-events: none;
}
.section-intro { max-width: 830px; position: relative; z-index: 1; }
.eyebrow.light { color: #d9e0dc; }
.section-intro h2 { font-size: clamp(46px, 5vw, 70px); letter-spacing: -3.8px; }
.section-intro h2 em { color: #d9b39c; }
.section-intro > p:last-child { max-width: 540px; margin-top: 24px; color: #b9cac4; font-size: 17px; line-height: 1.6; }
.process { display: grid; grid-template-columns: repeat(4, 1fr); margin: 64px 0 62px; border-top: 1px solid rgba(255,255,255,.17); }
.process-step { position: relative; padding: 28px 24px 0 0; display: grid; grid-template-columns: 38px 1fr; gap: 14px; }
.process-step::before { content: ""; position: absolute; width: 8px; height: 8px; background: var(--amber); border-radius: 50%; top: -5px; left: 0; box-shadow: 0 0 0 5px var(--green); }
.process-step > span { color: #e9b95e; font: 700 11px/1 "Libre Franklin", sans-serif; letter-spacing: 1px; }
.process-step h3 { margin: 0 0 10px; font-size: 15px; }
.process-step p { margin: 0; color: #9fb5ae; font-size: 12px; line-height: 1.55; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.service-card { padding: 30px; min-height: 310px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); background: rgba(255,255,255,.035); transition: transform .25s ease, border-color .25s ease; }
.service-card:hover { transform: translateY(-5px); border-color: rgba(233,185,94,.6); }
.service-card.featured { background: #f3e4dc; color: var(--ink); border: 0; }
.service-tag { color: #e9b95e; text-transform: uppercase; font-size: 9px; letter-spacing: 1.5px; font-weight: 700; }
.featured .service-tag { color: var(--amber-dark); }
.service-card h3 { margin: 25px 0 12px; font: 700 28px/1.1 "Libre Franklin", sans-serif; letter-spacing: -1.1px; }
.service-card p { margin: 0 0 22px; color: #abc0b9; font-size: 14px; line-height: 1.55; }
.service-card.featured p { color: #5c6863; }
.service-card ul { padding: 0; margin: 0; list-style: none; font-size: 12px; }
.service-card li { margin-top: 10px; }
.service-card li::before { content: "↗"; color: #e9b95e; margin-right: 8px; }
.featured li::before { color: var(--amber-dark); }

.shelf { margin-top: 90px; }
.shelf-heading { display: flex; align-items: end; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.16); padding-bottom: 18px; margin-bottom: 28px; }
.shelf-heading p { margin: 0; font: 700 23px/1.2 "Libre Franklin", sans-serif; }
.shelf-heading span { font-size: 10px; color: #a5b9b2; text-transform: uppercase; letter-spacing: 1px; }
.covers { min-height: 340px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(175px, 1fr); gap: 22px; align-items: start; overflow-x: auto; padding: 10px 6px 30px; scroll-snap-type: x mandatory; scrollbar-color: rgba(255,255,255,.34) transparent; }
.book-tile { margin: 0; scroll-snap-align: start; min-width: 0; }
.book-tile img { display: block; width: 100%; height: 285px; object-fit: contain; object-position: top center; border-radius: 0; box-shadow: 0 16px 24px rgba(0,0,0,.22); transform: none; }
.book-tile:hover img { transform: none; box-shadow: 0 16px 24px rgba(0,0,0,.22); }
.book-tile figcaption { margin-top: 14px; color: #d9b39c; font-size: 11px; font-weight: 700; line-height: 1.35; }
.mini-cover { min-height: 250px; padding: 24px 19px; border-radius: 2px 6px 6px 2px; display: flex; flex-direction: column; justify-content: center; box-shadow: 0 18px 25px rgba(0,0,0,.22); transition: transform .3s ease; position: relative; overflow: hidden; }
.mini-cover:hover { transform: translateY(-9px) rotateY(-2deg); }
.mini-cover::before { content: ""; position: absolute; top: 0; bottom: 0; left: 6px; width: 1px; background: rgba(255,255,255,.24); }
.mini-cover small { font-size: 7px; letter-spacing: 1.2px; margin-bottom: 30px; }
.mini-cover strong { font: 700 19px/1.1 "Libre Franklin", sans-serif; letter-spacing: -.7px; }
.mini-cover span { font-size: 9px; margin-top: 8px; }
.mini-cover i { font-style: italic; color: #e7ad55; }
.c1 { background: linear-gradient(150deg,#6f809f,#263954); transform: rotate(-1deg); }
.c1 strong { font-size: 37px; color: #f4bd52; }
.c2 { background: linear-gradient(160deg,#b9d5e0,#eef5f5); color: #23445a; min-height: 275px; }
.c2 i { color: #2f7595; }
.c3 { background: linear-gradient(160deg,#d3a7a3,#6c4745); }
.c3 i { color: #ffe1a7; }
.c4 { background: linear-gradient(160deg,#f5e5e6,#c98c9e); color: #683747; min-height: 272px; }
.c4 strong { font-family: Georgia, serif; }
.c5 { background: linear-gradient(155deg,#5b6f91,#263954); }
.c5 strong { font-size: 15px; color: #efc16b; }

.path { padding: 115px clamp(24px, 7vw, 110px); display: grid; grid-template-columns: .76fr 1.24fr; gap: 8vw; align-items: start; background: var(--cream); }
.path-intro { position: sticky; top: 50px; }
.path-intro h2 { font-size: clamp(47px, 5vw, 68px); letter-spacing: -3.6px; }
.path-intro > p:nth-of-type(2) { color: #68716d; line-height: 1.65; max-width: 470px; font-size: 16px; }
.path-intro blockquote { margin: 65px 0 0; padding: 0 0 0 20px; border-left: 2px solid var(--amber); color: #6d7671; font: italic 16px/1.55 Georgia, serif; max-width: 400px; }
.quiz { min-height: 570px; background: var(--white); border-radius: 24px; padding: clamp(25px, 4vw, 52px); box-shadow: 0 25px 70px rgba(29,53,45,.1); position: relative; }
.quiz-top { display: flex; align-items: center; gap: 18px; margin-bottom: 42px; }
#step-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: #6d7873; white-space: nowrap; }
.progress { height: 3px; background: #e7e7e2; flex: 1; border-radius: 9px; overflow: hidden; }
.progress i { display: block; width: 33.33%; height: 100%; background: var(--amber); transition: width .35s ease; }
.quiz-panel { display: none; animation: slideIn .35s ease both; }
.quiz-panel.active { display: block; }
.quiz-number { color: var(--amber-dark); font-size: 10px; font-weight: 700; letter-spacing: 1.5px; margin: 0 0 8px; }
.quiz h3 { margin: 0 0 30px; font: 700 clamp(28px, 3vw, 38px)/1.08 "Libre Franklin", sans-serif; letter-spacing: -1.5px; }
.choices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 11px; }
.choices.three { grid-template-columns: 1fr; }
.choices button { border: 1px solid #dde1df; background: white; text-align: left; border-radius: 12px; padding: 18px; min-height: 107px; cursor: pointer; display: grid; grid-template-columns: 30px 1fr; grid-template-rows: auto auto; column-gap: 10px; transition: border .2s ease, transform .2s ease, background .2s ease; color: var(--ink); }
.choices button:hover, .choices button:focus-visible { border-color: var(--amber); background: #fffcf6; transform: translateY(-2px); outline: none; }
.choices button > span { grid-row: 1 / 3; width: 28px; height: 28px; border-radius: 50%; background: #eef2ef; display: grid; place-items: center; color: var(--green); font-size: 13px; }
.choices button b { font-size: 13px; align-self: end; }
.choices button small { color: #78817d; font-size: 10px; margin-top: 5px; line-height: 1.35; }
.quiz-back { border: 0; padding: 0; background: none; color: #717b76; font-size: 11px; cursor: pointer; margin-top: 28px; }
.result > p:nth-of-type(2) { color: #63706a; line-height: 1.6; font-size: 15px; max-width: 590px; }
.result-summary { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 30px; }
.result-summary span { background: #f0f3f1; color: #43504b; font-size: 10px; font-weight: 600; padding: 8px 10px; border-radius: 999px; }
.result-actions { display: flex; align-items: center; gap: 24px; }
.restart { border: 0; background: none; font-size: 11px; text-decoration: underline; cursor: pointer; color: #64706b; }
.contact-section { padding: 105px clamp(24px, 7vw, 110px); display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; align-items: center; background: var(--paper); }
.contact-copy h2 { margin: 0; max-width: 650px; font: 800 clamp(44px, 5vw, 68px)/1 "Libre Franklin", sans-serif; letter-spacing: -3.5px; }
.contact-copy > p:last-of-type { max-width: 560px; color: #60697a; font-size: 17px; line-height: 1.65; }
.contact-links { margin-top: 34px; display: grid; gap: 10px; }
.contact-links a { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 560px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.contact-links strong { color: var(--amber-dark); font-size: 12px; text-transform: uppercase; letter-spacing: 1px; }
.contact-links span { color: var(--ink); font-size: 14px; font-weight: 600; text-align: right; }
.contact-form { padding: clamp(26px, 4vw, 46px); background: var(--green); color: white; border-radius: 24px; box-shadow: 0 24px 65px rgba(47,65,94,.2); }
.field { display: grid; gap: 8px; margin-bottom: 20px; }
.field label { font-size: 12px; font-weight: 700; }
.field input, .field select { width: 100%; min-height: 52px; border: 1px solid rgba(255,255,255,.22); border-radius: 9px; padding: 0 15px; background: rgba(255,255,255,.09); color: white; font: inherit; font-size: 15px; outline: none; }
.field input::placeholder { color: rgba(255,255,255,.58); }
.field input:focus, .field select:focus { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(203,124,80,.22); }
.field select option { color: var(--ink); background: white; }
.contact-submit { width: 100%; margin-top: 6px; background: var(--amber); color: white; }
.contact-submit:hover { background: var(--amber-dark); }
.form-note { margin: 13px 0 0; color: rgba(255,255,255,.65); font-size: 11px; text-align: center; }
footer { background: #243650; color: white; padding: 55px clamp(24px, 7vw, 110px) 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.footer-logo { width: 160px; height: 72px; padding: 6px 10px; background: white; border-radius: 10px; filter: drop-shadow(0 8px 18px rgba(0,0,0,.12)); }
.footer-brand > p { color: #a8bbb4; font: italic 15px Georgia, serif; margin: 18px 0 0; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.footer-contact span { color: #9eb2ab; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 7px; }
.footer-contact a { font-size: 15px; border-bottom: 1px solid rgba(255,255,255,.2); padding-bottom: 4px; }
.copyright { grid-column: 1 / -1; margin: 30px 0 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); color: #759087; font-size: 10px; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }
@keyframes slideIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }

@media (max-width: 1000px) {
  .site-header nav a:not(.nav-cta) { display: none; }
  .hero { grid-template-columns: 1fr; padding-top: 135px; }
  .hero-copy { max-width: 760px; }
  .hero-visual { height: 500px; }
  .process { grid-template-columns: repeat(2, 1fr); gap: 35px 15px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: auto; }
  .covers { grid-auto-columns: 190px; overflow-x: auto; padding: 10px 8px 30px; scroll-snap-type: x mandatory; }
  .book-tile img { height: 300px; }
  .mini-cover { scroll-snap-align: start; }
  .path { grid-template-columns: 1fr; }
  .contact-section { grid-template-columns: 1fr; }
  .path-intro { position: relative; top: 0; }
  .path-intro blockquote { margin-top: 30px; }
}

@media (max-width: 620px) {
  .site-header { height: 72px; padding: 0 18px; }
  .nav-cta { padding: 10px 13px; font-size: 11px; }
  .brand strong { font-size: 19px; }
  .brand small { font-size: 6px; letter-spacing: 3.7px; }
  .brand-mark { width: 27px; transform: scale(.85) skewY(-10deg); transform-origin: left center; margin-right: -2px; }
  .brand-logo { width: 112px; height: 52px; }
  .hero { min-height: 0; padding: 120px 22px 60px; gap: 20px; }
  .hero h1 { font-size: 51px; letter-spacing: -3.2px; }
  .hero-lead { font-size: 16px; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 8px; margin-bottom: 36px; }
  .text-link { text-align: center; }
  .proof { gap: 12px; justify-content: space-between; }
  .proof > div { flex-direction: column; align-items: flex-start; gap: 5px; padding-right: 10px; }
  .proof strong { font-size: 24px; }
  .proof span { font-size: 8px; }
  .hero-visual { height: 390px; transform: scale(.9); margin: -10px -30px; }
  .halo { width: 330px; height: 330px; }
  .halo::after { width: 270px; height: 270px; top: 30px; left: 30px; }
  .book { width: 185px; height: 290px; padding: 32px 23px; }
  .book-cover { width: 185px; }
  .cover-back { transform: translate(-58px,-36px) rotate(-9deg); }
  .cover-front { transform: translate(60px,32px) rotate(7deg); }
  .book-back { transform: translate(-53px,-35px) rotate(-9deg); }
  .book-front { transform: translate(55px,32px) rotate(7deg); }
  .book-kicker { margin-bottom: 38px; }
  .book strong { font-size: 16px; }
  .note-one { left: 1%; top: 14%; }
  .note-two { right: 0; bottom: 13%; }
  .editorial { padding: 78px 22px 70px; }
  .section-intro h2, .path-intro h2 { font-size: 43px; letter-spacing: -2.8px; }
  .process { grid-template-columns: 1fr; margin-top: 45px; border-top: 0; }
  .process-step { border-top: 1px solid rgba(255,255,255,.17); padding-top: 22px; }
  .process-step::before { top: -5px; }
  .service-card { padding: 25px; }
  .shelf { margin-top: 65px; }
  .shelf-heading { align-items: start; flex-direction: column; gap: 10px; }
  .shelf-heading p { font-size: 19px; }
  .path { padding: 75px 18px; gap: 35px; }
  .contact-section { padding: 75px 18px; gap: 38px; }
  .contact-copy h2 { font-size: 43px; letter-spacing: -2.6px; }
  .contact-links a { align-items: flex-start; flex-direction: column; gap: 4px; }
  .contact-links span { text-align: left; overflow-wrap: anywhere; }
  .quiz { padding: 26px 18px; min-height: 580px; border-radius: 18px; }
  .choices { grid-template-columns: 1fr; }
  .choices button { min-height: 86px; }
  .result-actions { align-items: stretch; flex-direction: column; gap: 15px; }
  footer { grid-template-columns: 1fr; gap: 40px; }
  .copyright { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
