:root{--bg:#0b0b0d;--surface:#171719;--surface-2:#202023;--text:#f3f1ef;--muted:#b8b5b4;--silver:#c0c4cc;--accent:#dc2626;--accent-dark:#8f1717;--line:#39383b;--ease:cubic-bezier(.16,1,.3,1);--shadow:0 18px 44px -16px #000;--radius:20px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif;overflow-wrap:anywhere;hyphens:auto}
img{display:block;width:100%;height:auto;object-fit:cover;border-radius:var(--radius)}
a{color:var(--silver);text-underline-offset:4px}
a:hover{color:#fff}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.12;overflow-wrap:anywhere;hyphens:auto}
h1{font-size:clamp(2.7rem,6vw,5.6rem);letter-spacing:-.045em;margin:.35em 0}
h2{font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.025em;margin:0 0 .55em}
h3{font-size:1.55rem;margin:.2em 0 .55em}
p{max-width:70ch;color:#d1cecc}
.container{width:min(1200px,calc(100% - 40px));margin-inline:auto}
.reading{max-width:72ch;margin-inline:auto}
.site-header{width:min(1280px,calc(100% - 32px));margin:18px auto 0;padding:12px 18px;background:#171719ed;border:1px solid #ffffff19;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:5;box-shadow:0 10px 32px #0007}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;letter-spacing:.01em}
.brand-mark{width:30px;height:30px;border:2px solid var(--accent);display:grid;place-items:center;color:#fff;font:700 16px Georgia,serif;transform:rotate(-4deg);border-radius:4px}
.primary-nav{display:flex;align-items:center;gap:clamp(12px,2vw,28px)}
.primary-nav a{font-size:.88rem;text-decoration:none;color:#dedbd9}
.primary-nav a:hover,.primary-nav a[aria-current=page]{color:#fff;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:7px}
.menu-toggle{display:none;background:none;color:#fff;border:1px solid #ffffff5c;border-radius:0;font-size:1.7rem;line-height:1;padding:4px 10px;cursor:pointer}
.hero{padding:clamp(48px,8vw,104px) 0 74px}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:clamp(32px,6vw,80px)}
.eyebrow,.step-label{color:var(--silver);text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;font-weight:800}
.hero p{font-size:1.12rem}
.hero-image-wrap{position:relative}
.hero-image-wrap:after{content:"";position:absolute;inset:12px -12px -12px 12px;border:1px solid var(--accent);border-radius:var(--radius);z-index:-1}
.hero-image{aspect-ratio:4/3;box-shadow:var(--shadow);filter:contrast(1.08) saturate(.72)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 19px;border:1px solid var(--silver);border-radius:0;background:transparent;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:800;cursor:pointer;transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s}
.button:hover{transform:translateY(-3px);background:var(--accent);border-color:var(--accent);color:#fff}
.button.primary{border-color:var(--accent);background:var(--accent)}
.button.primary:hover{background:var(--accent-dark)}
.section{padding:76px 0}
.section-intro{max-width:70ch;margin-bottom:32px}
.crimson-band{background:var(--accent);padding:64px 0}
.crimson-band p,.crimson-band .eyebrow{color:#fff}
.crimson-band .button{border-color:#fff}
.timeline{position:relative;display:grid;gap:24px;margin-top:36px}
.timeline:before{content:"";position:absolute;left:26px;top:28px;bottom:28px;width:1px;background:linear-gradient(var(--accent),#ffffff18)}
.stage{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);gap:22px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.stage-number{position:relative;z-index:1;width:52px;height:52px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--accent);border-radius:50%;color:#fff;font-family:Georgia,serif;font-size:1.25rem}
.stage p{margin:.4em 0 0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px}
.card{background:var(--surface);border:1px solid #ffffff1c;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .3s}
.card:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow),0 0 24px -10px var(--accent);border-color:#dc262680}
.card-image{position:relative}
.card-image img{aspect-ratio:4/3;border-radius:0;filter:contrast(1.1) saturate(.7)}
.badge{position:absolute;left:16px;bottom:-12px;background:var(--accent);color:white;padding:5px 11px;text-transform:uppercase;letter-spacing:.12em;font-size:.67rem;font-weight:800}
.card-content{padding:25px 20px 22px}
.card-content p{font-size:.94rem}
.card-link{font-weight:800;text-decoration:none}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,4vw,36px)}
.pattern-list{padding-left:1.25em}
.pattern-list li{padding:.35em 0;color:#d7d4d2}
.pattern-list strong{color:#fff}
.checklist{display:grid;gap:12px;list-style:none;padding:0}
.checklist li{padding:14px 16px;border-left:2px solid var(--accent);background:var(--surface-2);color:#e4e1df}
.callout{border:1px solid var(--accent);padding:20px 22px;background:#dc262614;border-radius:var(--radius)}
.callout strong{color:#fff}
.faq-list details{padding:18px 0;border-bottom:1px solid var(--line)}
.faq-list summary{font-family:Georgia,serif;font-size:1.25rem;cursor:pointer}
.faq-list details p{margin-bottom:0}
.form-grid{display:grid;gap:14px}
label{display:grid;gap:7px;color:#e7e3e1;font-weight:650}
input,textarea,select{width:100%;padding:12px 14px;background:#101012;border:1px solid #555257;border-radius:8px;color:#fff;font:inherit}
textarea{min-height:130px;resize:vertical}
.notice{color:var(--muted);font-size:.88rem}
.site-footer{padding:40px 0 28px;border-top:1px solid var(--line);background:#101012}
.footer-inner{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between}
.footer-brand{display:grid;gap:4px}
.footer-links{display:flex;flex-wrap:wrap;gap:17px}
.footer-links a{font-size:.9rem}
.disclaimer{max-width:54ch;color:var(--muted);font-size:.85rem}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-visible{opacity:1;transform:translateY(0)}
.page-hero{padding:72px 0 48px;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.6rem,5.5vw,4.5rem)}
.page-hero .reading{margin-left:0}
.worksheet{display:grid;gap:16px}
.worksheet label{font-size:.9rem}
.legal-copy h2{font-size:1.8rem;margin-top:1.5em}
hr{border:0;border-top:1px solid var(--line);margin:28px 0}
@media(max-width:767px){
 .site-header{width:calc(100% - 24px);margin:12px auto 0;padding:10px 12px}
 .menu-toggle{display:block;margin-left:auto}
 .primary-nav{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;padding:12px;background:#19191cf5;border:1px solid #ffffff24;border-radius:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0}
 .primary-nav.is-open{display:flex}
 .primary-nav a{padding:12px 10px;border-bottom:1px solid #ffffff12}
 .primary-nav a:last-child{border-bottom:0}
 .hero-grid,.two-col{grid-template-columns:1fr}
 .hero{padding:52px 0 55px}
 .hero-image-wrap{margin:0 10px 8px 0}
 .section{padding:56px 0}
 .crimson-band{padding:48px 0}
 .stage{padding:19px 16px;gap:14px}
}
@media(max-width:480px){
 .container{width:calc(100% - 28px)}
 .brand{font-size:.91rem}
 h1{font-size:2.7rem}
 .cards{grid-template-columns:1fr}
 .footer-inner{align-items:flex-start;flex-direction:column}
 .actions .button{width:100%}
}
@media(min-width:481px) and (max-width:768px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:769px) and (max-width:1024px){.primary-nav{gap:13px}.primary-nav a{font-size:.8rem}}
@media(min-width:1025px){.container{width:min(1200px,calc(100% - 56px))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}