/* Captain's Log · companion to rachelnevers.ca
   Brand palette and type from rachelnevers.ca (styles.css): cobalt, chalk, onyx, slate, seaglass, coral, aqua, legacy blue; Fraunces + Inter. */
:root{
  --cobalt:#050e3d; --chalk:#ffffff; --onyx:#1d1d1d; --slate:#615b56; --seaglass:#bfdddb;
  --coral:#ff557e; --aqua:#00fbf0; --legacy-blue:#05c3f9;
  --moonlight:#f4efe3; --gold:#f5c451;
  --deep:#030827;
  --font-display:"Fraunces","Cormorant Garamond",Georgia,serif;
  --font-body:"Inter","Helvetica Neue",Arial,sans-serif;
  --maxw:1180px; --radius:14px; --radius-lg:24px;
  --shadow-md:0 8px 24px rgba(5,14,61,.08),0 2px 6px rgba(5,14,61,.05);
  --shadow-lg:0 20px 50px rgba(5,14,61,.16),0 8px 20px rgba(5,14,61,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px;overflow-x:clip}
body{margin:0;font-family:var(--font-body);color:var(--onyx);background:var(--chalk);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--legacy-blue);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;line-height:1.12;margin:0 0 .5em;text-wrap:balance}
h1{font-size:clamp(2.5rem,6.4vw,4.8rem);font-weight:400}
h2{font-size:clamp(1.9rem,4vw,2.9rem)}
h3{font-size:1.22rem;line-height:1.28}
p{margin:0 0 1em;text-wrap:pretty}
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
section{position:relative;padding:96px 0}
@media (max-width:720px){section{padding:64px 0}}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:8px;background:var(--chalk);color:var(--cobalt);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
.eyebrow{display:inline-block;font-size:.76rem;text-transform:uppercase;letter-spacing:.2em;font-weight:600;color:var(--slate);margin-bottom:.9rem}
.eyebrow.on-dark{color:var(--seaglass)}
.section-lede{max-width:640px;color:var(--slate);font-size:1.05rem}
.section-lede.on-dark{color:rgba(255,255,255,.78)}

/* Top bar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(5,14,61,.86);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid rgba(191,221,219,.14)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--chalk)}
.brand-mark{width:26px;height:26px;border-radius:50%;background:var(--moonlight);box-shadow:inset -8px 0 0 0 rgba(5,14,61,1),0 0 14px rgba(244,239,227,.55);transform:rotate(-20deg);flex:none}
.brand-text{font-family:var(--font-display);font-size:1.25rem;line-height:1.05}
.brand-sub{display:block;font-family:var(--font-body);font-size:.68rem;letter-spacing:.08em;color:var(--seaglass);margin-top:2px}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:rgba(255,255,255,.86);text-decoration:none;font-size:.92rem;font-weight:500}
.nav a:hover{color:var(--aqua)}
.nav-cta{background:var(--chalk);color:var(--cobalt)!important;padding:9px 18px;border-radius:999px}
.nav-cta:hover{background:var(--seaglass)}
@media (max-width:820px){.nav a:not(.nav-cta){display:none}}

/* Space backgrounds */
.space{background:radial-gradient(120% 90% at 80% 0%,#0b1a63 0%,var(--cobalt) 45%,var(--deep) 100%);color:var(--chalk);overflow:hidden}
.space-soft{background:linear-gradient(180deg,var(--deep) 0%,var(--cobalt) 100%);color:var(--chalk);overflow:hidden}
.stars{position:absolute;inset:0;pointer-events:none;background-repeat:repeat}
.stars.s1{background-image:
  radial-gradient(1.2px 1.2px at 20px 30px,#fff 50%,transparent 51%),
  radial-gradient(1px 1px at 120px 80px,rgba(255,255,255,.85) 50%,transparent 51%),
  radial-gradient(1.4px 1.4px at 200px 160px,#fff 50%,transparent 51%),
  radial-gradient(1px 1px at 60px 190px,rgba(191,221,219,.9) 50%,transparent 51%),
  radial-gradient(1px 1px at 260px 40px,rgba(255,255,255,.7) 50%,transparent 51%),
  radial-gradient(1.6px 1.6px at 170px 260px,rgba(0,251,240,.8) 50%,transparent 51%),
  radial-gradient(1px 1px at 280px 230px,#fff 50%,transparent 51%);
  background-size:300px 300px;opacity:.75}
.stars.s2{background-image:
  radial-gradient(1px 1px at 50px 100px,#fff 50%,transparent 51%),
  radial-gradient(1.8px 1.8px at 330px 60px,rgba(255,255,255,.95) 50%,transparent 51%),
  radial-gradient(1px 1px at 150px 300px,rgba(255,85,126,.8) 50%,transparent 51%),
  radial-gradient(1.2px 1.2px at 400px 380px,#fff 50%,transparent 51%),
  radial-gradient(1px 1px at 240px 420px,rgba(5,195,249,.9) 50%,transparent 51%);
  background-size:460px 460px;opacity:.6;animation:twinkle 6s ease-in-out infinite alternate}
.stars.faint{opacity:.35}
@keyframes twinkle{from{opacity:.25}to{opacity:.75}}
.nebula{position:absolute;inset:-10%;pointer-events:none;filter:blur(40px);opacity:.55;background:
  radial-gradient(35% 30% at 18% 78%,rgba(255,85,126,.38),transparent 70%),
  radial-gradient(40% 35% at 85% 25%,rgba(5,195,249,.30),transparent 70%),
  radial-gradient(30% 25% at 60% 90%,rgba(0,251,240,.16),transparent 70%)}
.nebula.small{inset:0;opacity:.7}
@media (prefers-reduced-motion:reduce){.stars.s2{animation:none}}

/* Moon */
.moon{position:absolute;z-index:-1;width:clamp(150px,17vw,230px);aspect-ratio:1;border-radius:50%;top:-64px;right:-96px;pointer-events:none;
  background:
   radial-gradient(circle at 34% 38%,rgba(190,180,160,.55) 0 7%,transparent 8%),
   radial-gradient(circle at 60% 62%,rgba(190,180,160,.45) 0 10%,transparent 11%),
   radial-gradient(circle at 68% 30%,rgba(190,180,160,.35) 0 5%,transparent 6%),
   radial-gradient(circle at 40% 70%,rgba(190,180,160,.3) 0 4%,transparent 5%),
   radial-gradient(circle at 35% 30%,#fffdf6,var(--moonlight) 55%,#d9d1bf 100%);
  box-shadow:0 0 40px 10px rgba(244,239,227,.28),0 0 120px 40px rgba(5,195,249,.12);opacity:.92}
@media (max-width:860px){.moon{top:-48px;right:-44px;width:140px;opacity:.9}}

/* Hero */
.hero{padding:88px 0 96px}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{color:var(--chalk)}
.hero h1 em{font-style:italic;color:var(--seaglass)}
.lede{font-size:1.15rem;color:rgba(255,255,255,.85);max-width:560px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 22px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 24px;border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none;transition:transform .15s ease,background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-light{background:var(--chalk);color:var(--cobalt)}
.btn-light:hover{background:var(--seaglass)}
.btn-ghost{border:1.5px solid rgba(255,255,255,.5);color:var(--chalk)}
.btn-ghost:hover{border-color:var(--aqua);color:var(--aqua)}
.btn-dark{background:var(--cobalt);color:var(--chalk)}
.btn-dark:hover{background:#0b1a63}
.btn-outline{border:1.5px solid var(--cobalt);color:var(--cobalt)}
.hero-proof{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.85);font-size:.95rem}
.stars-gold{color:var(--gold);letter-spacing:2px}
.stars-gold.lg{font-size:1.4rem}
.hero-photo{position:relative;z-index:0;justify-self:center;width:min(100%,380px)}
.porthole{border-radius:200px 200px 28px 28px;overflow:hidden;border:2px solid rgba(191,221,219,.45);box-shadow:0 0 0 10px rgba(191,221,219,.07),0 30px 80px rgba(0,0,0,.45)}
.porthole img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%}
.hero-badge{position:absolute;left:-18px;bottom:22px;background:rgba(5,14,61,.82);border:1px solid rgba(191,221,219,.3);border-radius:14px;padding:10px 14px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero-badge img{width:96px}
@media (max-width:860px){
  .hero{padding:56px 0 64px}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .hero-photo{width:min(86%,340px)}
  .hero-badge{left:-10px}
}

/* Moon-phase dividers */
.phases{display:flex;justify-content:center;align-items:center;gap:14px;padding:30px 0 0;background:var(--chalk)}
.ph{width:14px;height:14px;border-radius:50%;background:#e8e1cf;box-shadow:inset 0 0 0 1px rgba(5,14,61,.18)}
.ph.p1{background:var(--cobalt)}
.ph.p2{box-shadow:inset 9px 0 0 0 var(--cobalt)}
.ph.p3{background:linear-gradient(90deg,var(--cobalt) 50%,#e8e1cf 50%)}
.ph.p4{box-shadow:inset 3px 0 0 0 var(--cobalt)}
.ph.p5{width:18px;height:18px;background:var(--moonlight);box-shadow:0 0 0 1px rgba(5,14,61,.15),0 0 16px rgba(245,196,81,.55)}
.ph.r{transform:scaleX(-1)}
.phases + section{padding-top:56px}

/* Log entries */
.log h2{color:var(--chalk)}
.log .container{position:relative;z-index:1}
.log-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:34px 0 36px}
@media (max-width:980px){.log-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.log-grid{grid-template-columns:1fr}}
.log-card{position:relative;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(191,221,219,.2);border-radius:var(--radius-lg);padding:24px 24px 52px;transition:border-color .2s ease,transform .2s ease}
.log-card:hover{border-color:rgba(0,251,240,.6);transform:translateY(-2px)}
.log-card:focus-within{border-color:var(--aqua)}
.log-meta{white-space:nowrap;padding-right:26px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.7rem;letter-spacing:.02em;text-transform:uppercase;color:var(--aqua);margin-bottom:12px}
.log-card .log-cat{display:inline-block;font-size:.74rem;font-weight:600;color:var(--cobalt);background:var(--seaglass);border-radius:999px;padding:3px 10px;margin-bottom:12px}
.log-card h3 a{color:var(--chalk);text-decoration:none}
.log-card h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg)}
.log-card h3 a:focus-visible{outline:none}
.log-card p{color:rgba(255,255,255,.76);font-size:.95rem}
.log-read{position:absolute;left:24px;bottom:20px;font-weight:600;font-size:.9rem;color:var(--seaglass)}
.log-moon{position:absolute;right:20px;top:20px;width:16px;height:16px;border-radius:50%;background:var(--moonlight);box-shadow:inset -5px 0 0 0 #0e1a55,0 0 10px rgba(244,239,227,.35);transform:rotate(-20deg)}

/* Reviews */
.reviews{background:linear-gradient(180deg,var(--chalk) 0%,#f3f9f9 100%)}
.reviews h2{color:var(--onyx)}
.rating-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:6px 0 18px}
.rating-bar .big{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--cobalt)}
.rating-text{color:var(--slate);font-weight:500}
.rating-link{font-weight:600;color:var(--cobalt);text-decoration:underline;text-underline-offset:3px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px;align-items:start}
@media (max-width:980px){.review-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.review-grid{grid-template-columns:1fr}}
.review{margin:0;background:var(--chalk);border:1px solid rgba(5,14,61,.08);border-radius:var(--radius-lg);padding:22px 22px 20px;box-shadow:var(--shadow-md);position:relative}
.review::before{content:"";position:absolute;top:0;left:22px;right:22px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--coral),var(--legacy-blue),var(--aqua));opacity:.7}
.review-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.rstars{color:var(--gold);letter-spacing:2px;font-size:1.05rem}
.rstars .dim{color:#d9d4c8}
.src{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.review blockquote{margin:0}
.review blockquote p{font-size:.98rem;color:var(--onyx);margin:0 0 14px;overflow-wrap:anywhere}
.review figcaption{font-weight:600;color:var(--cobalt);font-size:.92rem}
.review figcaption::before{content:"— "}
.more-reviews{margin-top:34px}
.more-reviews summary{display:inline-flex;align-items:center;min-height:48px;padding:12px 24px;border-radius:999px;background:var(--cobalt);color:var(--chalk);font-weight:600;cursor:pointer;list-style:none}
.more-reviews summary::-webkit-details-marker{display:none}
.more-reviews summary::after{content:"＋";margin-left:10px}
.more-reviews[open] summary::after{content:"－"}
.fineprint{margin-top:22px;font-size:.82rem;color:var(--slate)}

/* Vlogs */
.vlogs{background:#f3f9f9}
.vlog-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center}
@media (max-width:860px){.vlog-wrap{grid-template-columns:1fr;gap:28px}}
.screen{position:relative;aspect-ratio:9/12;max-width:340px;width:100%;justify-self:center;border-radius:28px;overflow:hidden;background:radial-gradient(100% 80% at 70% 10%,#0b1a63,var(--cobalt) 55%,var(--deep));box-shadow:var(--shadow-lg);border:8px solid #0d1238}
@media (max-width:860px){.screen{aspect-ratio:16/10;max-width:100%}}
.screen .rec{position:absolute;top:14px;left:16px;font:600 .74rem/1 ui-monospace,Menlo,monospace;color:var(--coral);letter-spacing:.1em}
.screen .play{position:absolute;inset:0;margin:auto;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.5);color:var(--chalk);font-size:1.5rem;padding-left:4px}
.btn-outline:hover{background:var(--cobalt);color:var(--chalk)}

/* About */
.captain{background:var(--chalk)}
.captain-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}
@media (max-width:860px){.captain-grid{grid-template-columns:1fr;gap:28px}}
.captain-photo{position:relative;max-width:400px;justify-self:center;width:100%}
.captain-photo img{border-radius:28px;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;box-shadow:var(--shadow-lg)}
.captain-photo::after{content:"";position:absolute;width:64px;height:64px;border-radius:50%;right:-14px;top:-14px;background:var(--moonlight);box-shadow:inset -18px 0 0 0 var(--cobalt),0 0 24px rgba(245,196,81,.5);transform:rotate(-20deg)}
.captain p{color:#3a3633}
.sign{font-family:var(--font-display);font-style:italic;font-size:1.3rem;color:var(--cobalt)!important}

/* Contact */
.contact{text-align:center}
.contact-inner{position:relative;z-index:1}
.contact h2{color:var(--chalk)}
.contact .lede{margin:0 auto 30px}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:900px;margin:0 auto}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr}}
.contact-card{display:flex;flex-direction:column;gap:4px;padding:20px;border-radius:var(--radius-lg);background:rgba(255,255,255,.07);border:1px solid rgba(191,221,219,.25);text-decoration:none;color:var(--chalk);transition:border-color .2s}
.contact-card:hover{border-color:var(--aqua)}
.contact-card .k{font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--seaglass)}
.contact-card .v{font-weight:600;font-size:1.02rem;overflow-wrap:anywhere}
.address{margin-top:24px;color:rgba(255,255,255,.75)}

/* Footer */
.footer{background:var(--chalk);border-top:1px solid rgba(5,14,61,.08);padding:40px 0 36px;font-size:.9rem;color:var(--slate)}
.footer-inner{display:grid;gap:20px}
.footer-brand{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.footer-logo{width:110px}
.footer-name{font-weight:600;color:var(--onyx);margin-bottom:2px}
.footer p{margin:0 0 4px}
.footer a{color:var(--cobalt)}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.footer-links a{font-weight:600;text-decoration:none}
.legal{font-size:.78rem;color:var(--slate)}

/* SEO subtitles (Nov 7): small descriptive lines inside headings, styled like the eyebrow/lede scale */
.h1-sub,.h2-sub{display:block;font-family:var(--font-body,Inter,system-ui,sans-serif);font-weight:500;letter-spacing:0;line-height:1.35;margin-top:.55em}
.h1-sub{font-size:clamp(1rem,1.6vw,1.2rem);color:rgba(255,255,255,.8)}
.h2-sub{font-size:clamp(.95rem,1.4vw,1.05rem);color:var(--slate)}
.on-dark .h2-sub,.space .h2-sub,.space-soft .h2-sub,.log .h2-sub{color:rgba(255,255,255,.72)}
.log-more{margin:18px auto 0}
.section-lede a,.lede a,.captain p a{color:inherit;text-decoration:underline;text-underline-offset:3px}
