:root {
  --paper: #f8f3e8;
  --paper-deep: #efe7d7;
  --ink: #202337;
  --muted: #6c6870;
  --line: rgba(32,35,55,.14);
  --plum: #6f5a83;
  --plum-dark: #514064;
  --plum-soft: #e7deea;
  --gold: #bb8e51;
  --sage: #b9c6b7;
  --white: #fffdf8;
  --shadow: 0 22px 70px rgba(50,39,34,.11);
  --radius: 22px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Iowan Old Style, Palatino Linotype, Book Antiqua, Georgia, serif;
}
:root[data-theme="dark"] { --paper:#171725; --paper-deep:#202035; --ink:#f4eee4; --muted:#b7b1b1; --line:rgba(244,238,228,.16); --plum:#b79ac8; --plum-dark:#dcc5e7; --plum-soft:#302b3d; --gold:#dfb06e; --sage:#536356; --white:#25243a; --shadow:0 22px 70px rgba(0,0,0,.23); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.65; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.16; background-image:radial-gradient(rgba(111,90,131,.18) .6px, transparent .7px); background-size:14px 14px; mix-blend-mode:multiply; z-index:-1; }
a { color:var(--plum-dark); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--plum); }
button, input, textarea { font:inherit; }
button { cursor:pointer; }
.skip-link { position:absolute; left:12px; top:-60px; background:var(--ink); color:var(--paper); padding:8px 12px; border-radius:6px; z-index:20; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { position:sticky; top:0; z-index:10; background:color-mix(in srgb, var(--paper) 90%, transparent); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.header-inner { max-width:1160px; margin:auto; padding:15px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark { display:inline-flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-family:var(--serif); font-size:1.16rem; letter-spacing:.01em; white-space:nowrap; }
.wordmark em { color:var(--plum); font-style:italic; }
.mark { position:relative; width:28px; height:28px; display:inline-block; border:1.5px solid var(--plum); border-radius:50%; overflow:visible; }
.mark i { display:block; position:absolute; width:25px; height:25px; left:5px; top:-3px; background:var(--paper); border-radius:50%; }
.mark b { position:absolute; width:4px; height:4px; border-radius:50%; background:var(--gold); right:-7px; top:3px; box-shadow:7px 8px 0 -1px var(--gold); }
.site-nav { display:flex; align-items:center; gap:22px; }
.site-nav a { color:var(--muted); text-decoration:none; font-size:.88rem; }
.site-nav a:hover { color:var(--ink); }
.site-nav .button { color:#fff; }
.menu-button { display:none; border:1px solid var(--line); background:transparent; color:var(--ink); padding:8px 11px; border-radius:999px; }
.theme-button { border:0; background:transparent; color:var(--plum); font-size:1.2rem; padding:2px 5px; }
main { min-height:65vh; }
.wrap { width:min(1120px, calc(100% - 48px)); margin:0 auto; }
.narrow { max-width:760px; }
.center { text-align:center; }
.page { padding:78px 0 110px; animation:pageIn .45s ease both; }
@keyframes pageIn { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
.eyebrow { color:var(--plum); font-size:.73rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; margin:0 0 14px; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:-.03em; }
h1 { font-size:clamp(2.7rem, 6vw, 5.65rem); max-width:900px; margin:0 0 22px; }
h2 { font-size:clamp(1.8rem,3vw,2.55rem); margin:0 0 18px; }
h3 { font-size:1.38rem; margin:0 0 8px; }
.lead { color:var(--muted); font-size:clamp(1.05rem, 1.4vw, 1.28rem); max-width:640px; line-height:1.65; }
.hero { position:relative; overflow:hidden; min-height:610px; padding:118px max(28px, calc((100vw - 1120px)/2)) 100px; display:flex; flex-direction:column; justify-content:center; background:linear-gradient(122deg, var(--paper) 0%, var(--paper-deep) 64%, color-mix(in srgb, var(--plum-soft) 60%, var(--paper)) 100%); border-bottom:1px solid var(--line); }
.hero::after { content:""; width:430px; height:430px; position:absolute; right:3%; top:14%; border:1px solid color-mix(in srgb, var(--plum) 40%, transparent); border-radius:50%; box-shadow:0 0 0 24px color-mix(in srgb, var(--plum) 6%, transparent), 0 0 0 78px color-mix(in srgb, var(--plum) 4%, transparent); opacity:.65; }
.hero::before { content:"✦"; position:absolute; right:20%; top:18%; color:var(--gold); font-size:1.7rem; z-index:1; }
.hero h1, .hero .lead, .hero .button-row { position:relative; z-index:2; }
.hero h1 { max-width:780px; }
.hero .lead { max-width:600px; }
.manifestation-scene { position:absolute; z-index:1; width:430px; height:430px; right:4%; top:13%; perspective:900px; transform-style:preserve-3d; pointer-events:none; }
.scene-orbit { position:absolute; inset:18px; border:1px solid color-mix(in srgb, var(--plum) 34%, transparent); border-radius:50%; transform-style:preserve-3d; }
.scene-orbit-one { transform:rotateX(68deg) rotateZ(-22deg); box-shadow:0 0 30px color-mix(in srgb, var(--plum) 14%, transparent); }
.scene-orbit-two { inset:48px; transform:rotateY(68deg) rotateZ(18deg); border-color:color-mix(in srgb, var(--gold) 42%, transparent); }
.scene-orb { position:absolute; width:142px; height:142px; left:144px; top:140px; border-radius:50%; display:grid; place-items:center; color:#fff8df; font-size:2.2rem; background:radial-gradient(circle at 30% 24%, #fff8df 0 3%, #e8b974 5%, #9d6ca4 30%, #5c426f 63%, #282239 100%); box-shadow:inset -18px -20px 30px rgba(18,12,33,.4), inset 14px 12px 24px rgba(255,255,255,.3), 0 18px 40px rgba(66,42,84,.28); transform:translateZ(80px); animation:orbFloat 6s ease-in-out infinite; }
.scene-orb::after { content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.35); border-radius:50%; transform:rotate(32deg) skewX(-12deg); }
.scene-crystal { position:absolute; width:62px; height:105px; right:58px; top:58px; transform:rotate(18deg) rotateY(-20deg) translateZ(95px); transform-style:preserve-3d; animation:crystalFloat 7s ease-in-out -1.4s infinite; }
.scene-crystal::before, .scene-crystal::after, .scene-crystal i, .scene-crystal b { content:""; position:absolute; inset:0; clip-path:polygon(50% 0, 100% 22%, 82% 100%, 18% 100%, 0 22%); }
.scene-crystal::before { background:linear-gradient(130deg, #fff1b5, #d79a69 42%, #704c85 80%); transform:translateZ(12px); }
.scene-crystal::after { background:linear-gradient(230deg, #7d568d, #c98f67 70%); transform:rotateY(70deg) translateX(-11px); transform-origin:left; opacity:.85; }
.scene-crystal i { background:linear-gradient(90deg, transparent 38%, rgba(255,255,255,.72) 50%, transparent 61%); transform:translateZ(16px); }
.scene-crystal b { width:18px; height:18px; left:52px; top:-22px; background:var(--gold); clip-path:polygon(50% 0,100% 100%,0 100%); transform:translateZ(30px); }
.scene-star { position:absolute; color:var(--gold); text-shadow:0 0 14px color-mix(in srgb, var(--gold) 60%, transparent); }
.scene-star-one { right:78px; top:24px; font-size:1.4rem; animation:starPulse 3.5s ease-in-out infinite; }
.scene-star-two { left:35px; bottom:90px; font-size:1.8rem; animation:starPulse 4.4s ease-in-out -1.2s infinite; }
.scene-star-three { right:26px; bottom:128px; font-size:2.5rem; animation:starPulse 3.8s ease-in-out -2s infinite; }
@keyframes orbFloat { 0%,100% { transform:translate3d(0,0,80px) rotate(0deg); } 50% { transform:translate3d(0,-13px,105px) rotate(8deg); } }
@keyframes crystalFloat { 0%,100% { transform:rotate(18deg) rotateY(-20deg) translate3d(0,0,95px); } 50% { transform:rotate(26deg) rotateY(12deg) translate3d(-8px,-16px,115px); } }
@keyframes starPulse { 0%,100% { opacity:.45; transform:scale(.8); } 50% { opacity:1; transform:scale(1.15); } }
.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 19px; border:1px solid var(--plum); border-radius:999px; background:var(--plum); color:#fff; font-weight:700; font-size:.9rem; letter-spacing:.01em; text-decoration:none; box-shadow:0 7px 18px rgba(111,90,131,.18); transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { color:#fff; background:var(--plum-dark); transform:translateY(-2px); box-shadow:0 10px 22px rgba(111,90,131,.24); }
.button.ghost { background:transparent; color:var(--plum-dark); box-shadow:none; }
.button.ghost:hover { background:var(--plum-soft); color:var(--plum-dark); }
.button-small { min-height:36px; padding:7px 13px; font-size:.78rem; }
.ad-slot { min-height:82px; border:1px dashed color-mix(in srgb, var(--muted) 30%, transparent); border-radius:12px; display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:.74rem; letter-spacing:.05em; text-transform:uppercase; }
.content-section { padding:82px 0 0; }
.section-head { display:flex; justify-content:space-between; gap:24px; align-items:end; margin-bottom:25px; }
.section-head p { color:var(--muted); max-width:430px; margin:0; }
.feature-card { display:grid; grid-template-columns:1.1fr .9fr; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); margin-bottom:74px; }
.feature-visual { min-height:290px; padding:34px; background:linear-gradient(140deg, var(--plum) 0%, #b89b98 100%); position:relative; display:flex; align-items:end; color:#fff; }
.feature-visual::before { content:""; position:absolute; width:190px; height:190px; border:1px solid rgba(255,255,255,.65); border-radius:50%; top:34px; right:40px; box-shadow:0 0 0 22px rgba(255,255,255,.08), 0 0 0 50px rgba(255,255,255,.07); }
.feature-visual::after { content:"✦"; position:absolute; right:119px; top:78px; font-size:1.4rem; }
.feature-visual span { position:relative; z-index:1; font-size:.74rem; text-transform:uppercase; letter-spacing:.15em; opacity:.9; }
.feature-body { padding:37px; display:flex; flex-direction:column; justify-content:center; }
.kicker { color:var(--plum); text-transform:uppercase; letter-spacing:.12em; font-weight:800; font-size:.72rem; }
.feature-body h3 { font-size:2rem; margin:13px 0 10px; }
.feature-body p { color:var(--muted); margin:0 0 22px; }
.text-link { font-weight:700; font-size:.9rem; }
.card-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.card { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:28px; }
.card p { color:var(--muted); margin:0; }
.pillar { min-height:215px; position:relative; overflow:hidden; }
.pillar::after { content:""; width:88px; height:88px; position:absolute; right:-15px; bottom:-22px; border:1px solid color-mix(in srgb, var(--plum) 25%, transparent); border-radius:50%; }
.pillar .symbol { color:var(--gold); font-size:1.7rem; display:block; margin-bottom:20px; }
.newsletter { padding:54px 62px; margin:86px 0; border-radius:var(--radius); background:var(--plum-soft); border:1px solid color-mix(in srgb, var(--plum) 20%, transparent); display:flex; justify-content:space-between; align-items:center; gap:30px; }
.newsletter h2 { font-size:2.1rem; max-width:490px; margin-bottom:9px; }
.newsletter p { color:var(--muted); margin:0; }
.signup { min-width:360px; }
.form-row { display:flex; gap:8px; }
.input, input, textarea, select { width:100%; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:10px; padding:12px 13px; outline:none; }
.input:focus, input:focus, textarea:focus, select:focus, button:focus-visible, a:focus-visible { border-color:var(--plum); box-shadow:0 0 0 3px color-mix(in srgb, var(--plum) 22%, transparent); outline:none; }
.form-note { font-size:.77rem; color:var(--muted); margin-top:9px; }
.quotes { margin-bottom:75px; }
blockquote { margin:0; font-family:var(--serif); font-size:1.18rem; line-height:1.45; }
blockquote cite { display:block; color:var(--muted); font-family:var(--sans); font-size:.76rem; font-style:normal; margin-top:16px; }
.steps { counter-reset:steps; padding:0; list-style:none; display:grid; gap:12px; margin:36px 0; }
.steps li { counter-increment:steps; display:grid; grid-template-columns:42px 1fr; gap:15px; align-items:start; border-top:1px solid var(--line); padding:18px 0; }
.steps li::before { content:counter(steps, decimal-leading-zero); color:var(--plum); font-size:.82rem; font-weight:800; letter-spacing:.08em; }
.simple-list { padding-left:1.15rem; }
.simple-list li { margin:9px 0; }
.article-list { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.article-feature { display:grid; grid-template-columns:1.15fr .85fr; min-height:270px; margin:28px 0 38px; overflow:hidden; border:1px solid color-mix(in srgb, var(--plum) 34%, var(--line)); border-radius:var(--radius); background:linear-gradient(120deg, var(--plum-soft), var(--white)); box-shadow:var(--shadow); }
.article-feature-copy { padding:34px 38px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.article-feature h2 { max-width:600px; margin:0 0 12px; }
.article-feature p:not(.eyebrow):not(.article-meta) { color:var(--muted); max-width:600px; margin:0 0 16px; }
.article-feature .article-meta { color:var(--muted); font-size:.8rem; margin:0 0 20px; }
.article-feature img { width:100%; height:100%; min-height:270px; object-fit:cover; }
.article-card { display:flex; flex-direction:column; min-height:300px; }
.article-card .kicker { margin-bottom:17px; }
.article-card h3 { margin-bottom:12px; }
.article-card p { flex:1; }
.article-card .meta { color:var(--muted); font-size:.75rem; margin-top:20px; }
.search-bar { display:flex; gap:12px; align-items:center; margin:25px 0 32px; }
.search-bar input { max-width:420px; }
.filters { display:flex; flex-wrap:wrap; gap:7px; }
.filter { border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--muted); padding:8px 12px; font-size:.78rem; }
.filter.active, .filter:hover { background:var(--plum-soft); border-color:var(--plum); color:var(--plum-dark); }
.empty { color:var(--muted); border:1px dashed var(--line); padding:30px; border-radius:14px; }
.article-page { max-width:800px; }
.article-page .article-meta { color:var(--muted); font-size:.82rem; margin:18px 0 38px; }
.article-hero-image { display:block; width:100%; max-height:420px; object-fit:cover; border-radius:18px; margin:0 0 34px; border:1px solid var(--line); }
.article-page .article-lead { color:var(--muted); font-size:1.28rem; line-height:1.65; border-left:3px solid var(--gold); padding-left:20px; margin-bottom:38px; }
.article-page p { font-size:1.07rem; }
.article-page h2 { margin-top:48px; font-size:clamp(1.55rem,2.6vw,2.15rem); }
.article-page h3 { margin-top:30px; font-size:1.2rem; }
.article-list-items { padding-left:1.35rem; margin:18px 0 28px; }
.article-list-items li { margin:9px 0; font-size:1.04rem; }
.article-quote { margin:25px 0; padding:22px 24px; border-left:3px solid var(--plum); background:var(--plum-soft); border-radius:0 14px 14px 0; font-family:var(--serif); font-size:1.12rem; line-height:1.6; }
.article-cta { margin:32px 0; }
.article-source { color:var(--muted); font-size:.86rem !important; }
.article-page .article-divider { border:0; border-top:1px solid var(--line); margin:46px 0; }
.tools-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:25px 0 19px; border-bottom:1px solid var(--line); padding-bottom:13px; }
.tab { border:0; background:transparent; color:var(--muted); padding:9px 13px; border-radius:999px; font-size:.86rem; }
.tab.active, .tab:hover { background:var(--plum-soft); color:var(--plum-dark); }
.tool-panel { background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:34px; box-shadow:var(--shadow); }
.tool-panel[hidden] { display:none; }
.tool-panel h2 { margin-bottom:8px; }
.tool-panel > p { color:var(--muted); max-width:680px; }
.progress-track { height:10px; background:var(--paper-deep); border-radius:99px; overflow:hidden; margin:26px 0 10px; }
.progress-bar { height:100%; width:0; background:linear-gradient(90deg,var(--plum),var(--gold)); border-radius:inherit; transition:width .3s ease; }
.progress-copy { color:var(--muted); font-size:.85rem; }
.day-list { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; list-style:none; padding:0; margin:24px 0; }
.day-list label { display:flex; gap:8px; align-items:start; padding:10px; border:1px solid var(--line); border-radius:10px; font-size:.8rem; color:var(--muted); cursor:pointer; }
.day-list label:has(input:checked) { background:var(--plum-soft); color:var(--ink); border-color:var(--plum); }
.day-list input { width:auto; margin-top:4px; accent-color:var(--plum); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin:24px 0; }
.field { display:flex; flex-direction:column; gap:7px; font-size:.84rem; font-weight:700; }
.field.full { grid-column:1 / -1; }
.field span { color:var(--ink); }
.field small { font-weight:400; color:var(--muted); }
.output { margin-top:20px; padding:20px; border-radius:14px; background:var(--plum-soft); border-left:3px solid var(--plum); }
.output strong { font-family:var(--serif); font-size:1.22rem; font-weight:500; }
.timer { text-align:center; padding:30px 0 12px; }
.clock { font-family:var(--serif); color:var(--plum-dark); font-size:clamp(4.5rem, 12vw, 8rem); letter-spacing:-.07em; line-height:1; margin:25px 0 10px; }
.timer-step { min-height:46px; color:var(--muted); }
.sheet { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin:25px 0; }
.prompt-card { min-height:155px; padding:21px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(150deg,var(--white),var(--paper-deep)); }
.prompt-card h3 { font-size:1.12rem; }
.prompt-card p { color:var(--muted); font-size:.92rem; }
.form-stack { display:grid; gap:14px; max-width:650px; margin-top:25px; }
.form-stack label { display:grid; gap:6px; font-size:.85rem; font-weight:700; }
.form-stack textarea { resize:vertical; }
.check-list { list-style:none; padding:0; margin:28px 0; display:grid; gap:11px; text-align:left; }
.check-list li::before { content:"✦"; color:var(--gold); margin-right:10px; }
.site-footer { border-top:1px solid var(--line); padding:48px 28px 28px; max-width:1160px; margin:auto; }
.footer-ad { margin-bottom:45px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:35px; padding-bottom:38px; }
.footer-grid > div > a:not(.wordmark) { display:block; width:max-content; color:var(--muted); text-decoration:none; font-size:.88rem; margin:4px 0; }
.footer-mark { margin-bottom:16px; }
.footer-note, .disclosure, .copyright { color:var(--muted); font-size:.77rem; max-width:420px; }
.disclosure { border-top:1px solid var(--line); padding-top:20px; max-width:none; }
.copyright { margin:19px 0 0; }
@media (max-width:800px) {
  .header-inner { padding:13px 20px; }
  .menu-button { display:inline-flex; align-items:center; gap:9px; }
  .site-nav { position:absolute; display:none; left:16px; right:16px; top:68px; padding:15px; background:var(--white); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); flex-direction:column; align-items:stretch; gap:2px; }
  .site-nav.open { display:flex; }
  .site-nav a { padding:9px 8px; }
  .site-nav .button { justify-content:center; margin-top:7px; }
  .theme-button { position:absolute; right:27px; top:25px; }
  .hero { min-height:590px; padding:92px 24px 80px; }
  .hero::after { right:-210px; top:25%; }
  .manifestation-scene { width:310px; height:310px; right:-106px; top:28%; opacity:.72; }
  .scene-orb { width:104px; height:104px; left:103px; top:103px; }
  .scene-crystal { right:32px; top:38px; transform:scale(.75) rotate(18deg) rotateY(-20deg) translateZ(95px); }
  .scene-star-one { right:42px; }
  .scene-star-two { left:18px; bottom:60px; }
  .wrap { width:min(100% - 36px, 720px); }
  .page { padding:58px 0 80px; }
  .feature-card, .newsletter { grid-template-columns:1fr; display:grid; }
  .feature-visual { min-height:210px; }
  .article-feature { grid-template-columns:1fr; }
  .article-feature img { min-height:210px; max-height:260px; grid-row:1; }
  .article-feature-copy { padding:28px 24px; }
  .newsletter { padding:34px 27px; }
  .signup { min-width:0; }
  .card-grid, .article-list { grid-template-columns:1fr; }
  .section-head { display:block; }
  .section-head p { margin-top:8px; }
  .search-bar { display:block; }
  .filters { margin-top:12px; }
  .day-list { grid-template-columns:repeat(2,1fr); }
  .field-grid, .sheet { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > div:first-child { grid-column:1 / -1; }
}
@media (max-width:480px) {
  h1 { font-size:2.65rem; }
  .hero h1 { font-size:3.15rem; }
  .form-row { display:grid; }
  .day-list { grid-template-columns:1fr; }
  .tool-panel { padding:24px 18px; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > div:first-child { grid-column:auto; }
}
@media print {
  .site-header, .site-footer, .tools-tabs, .button, .ad-slot, .eyebrow { display:none !important; }
  .page { padding:0; }
  .tool-panel { border:0; box-shadow:none; padding:0; }
  body { background:white; color:black; }
  .prompt-card { break-inside:avoid; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
