:root{
    --night:#101a30; --night-deep:#070c18; --panel:#16213c;
    --candle:#f2b559; --glow:#ffd98a; --ivory:#f3ecdc;
    --stone:#8b95ab; --rose:#cf9a97;
    --line:rgba(243,236,220,.12); --line-warm:rgba(242,181,89,.28);
    --serif:"Cormorant Garamond",Georgia,serif;
    --sans:"Work Sans",system-ui,sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;}
  body{
    background:
      radial-gradient(120% 80% at 50% -10%, #1e2d52 0%, transparent 55%),
      radial-gradient(90% 70% at 50% 120%, #1a2647 0%, transparent 60%),
      var(--night);
    color:var(--ivory); font-family:var(--sans); font-weight:300;
    line-height:1.6; min-height:100vh; -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;}
  .vignette{position:fixed;inset:0;pointer-events:none;z-index:0;
    background:radial-gradient(130% 90% at 50% 42%, transparent 40%, rgba(7,12,24,.55) 100%);}
  .wrap{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:clamp(20px,4vw,44px);}

  /* Masthead */
  header.mast{display:flex;align-items:baseline;justify-content:space-between;gap:20px 28px;
    flex-wrap:wrap;padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid var(--line);}
  .brand{display:flex;align-items:baseline;gap:12px;text-decoration:none;}
  .brand .mark{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:.5px;color:var(--ivory);}
  .brand .mark em{color:var(--candle);font-style:normal;}
  .brand .sub{font-family:var(--sans);font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);}
  .topnav{display:flex;gap:22px;margin-left:auto;}
  .topnav a{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);text-decoration:none;transition:.2s;}
  .topnav a:hover,.topnav a.on{color:var(--candle);}
  .carry{font-size:.72rem;color:var(--stone);letter-spacing:.03em;display:flex;align-items:center;gap:9px;
    flex-basis:100%;justify-content:flex-end;}
  .carry b{color:var(--rose);font-weight:500;}
  .carry[hidden]{display:none;}

  /* ---------- Narthex (home) ---------- */
  .narthex{text-align:center;max-width:720px;margin:clamp(20px,6vw,70px) auto clamp(26px,5vw,54px);}
  .eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:20px;
    font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);}
  .eyebrow .hr{width:44px;height:1px;background:var(--line);}
  .narthex-title{font-family:var(--serif);font-weight:500;font-size:clamp(2.3rem,6vw,4rem);
    line-height:1.02;margin:.1em 0 .5em;color:var(--ivory);}
  .narthex-lead{font-size:1.08rem;color:#d9cfba;max-width:56ch;margin:0 auto;}

  .shrine-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
  .shrine-card{position:relative;display:flex;flex-direction:column;gap:6px;
    padding:26px 24px 22px;border:1px solid var(--line);border-radius:6px;text-decoration:none;
    background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);transition:.25s;overflow:hidden;}
  .shrine-card.open{cursor:pointer;}
  .shrine-card.open:hover{border-color:var(--line-warm);transform:translateY(-2px);
    box-shadow:0 14px 40px -20px rgba(242,181,89,.5);}
  .shrine-card.soon{opacity:.5;}
  .flame-lit,.flame-unlit{width:11px;height:11px;border-radius:50%;margin-bottom:8px;}
  .flame-lit{background:var(--glow);box-shadow:0 0 9px 2px rgba(242,181,89,.75),0 0 20px 6px rgba(242,181,89,.28);}
  .flame-unlit{background:var(--stone);opacity:.5;}
  .shrine-name{font-family:var(--serif);font-size:1.7rem;color:var(--ivory);line-height:1.05;}
  .shrine-card.open:hover .shrine-name{color:var(--candle);}
  .shrine-sub{font-family:var(--serif);font-style:italic;color:var(--stone);font-size:1.02rem;}
  .shrine-meta{margin-top:8px;font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}
  .shrine-go{margin-top:14px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--candle);}

  /* ---------- Pilgrimage overview ---------- */
  .crumb{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);margin-bottom:16px;}
  .crumb a{color:var(--stone);text-decoration:none;}
  .crumb a:hover{color:var(--candle);}
  .crumb .sep{margin:0 10px;opacity:.5;}
  .pilg-head{max-width:66ch;margin-bottom:40px;}
  .title{font-family:var(--serif);font-weight:500;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.02;margin:.1em 0 .05em;color:var(--ivory);}
  .place{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--stone);margin-bottom:1.4em;}
  .med p{font-size:1.06rem;max-width:60ch;margin:0 0 1.1em;color:#e7ddca;}
  .med .lead::first-letter{font-family:var(--serif);font-size:3.1rem;line-height:.8;float:left;padding:6px 12px 0 0;color:var(--candle);}

  /* Station image */
  .day-figure{margin:0 0 1.9em;}
  .day-figure img{width:100%;display:block;border-radius:6px;border:1px solid var(--line-warm);
    box-shadow:0 22px 55px -26px rgba(0,0,0,.85),0 0 0 1px rgba(7,12,24,.5);}
  .day-figure figcaption{margin-top:11px;font-family:var(--serif);font-style:italic;color:var(--stone);font-size:.98rem;}
  .day-figure.portrait{text-align:center;}
  .day-figure.portrait img{width:auto;margin:0 auto;}

  /* Live embed */
  .day-live{margin:0 0 1.9em;}
  .day-live .live-label{display:flex;align-items:center;gap:9px;font-size:.62rem;letter-spacing:.24em;
    text-transform:uppercase;color:var(--candle);margin-bottom:11px;}
  .day-live .live-label::before{content:"";width:8px;height:8px;border-radius:50%;background:#e5484d;
    box-shadow:0 0 8px 2px rgba(229,72,77,.7);animation:pulse 2s ease-in-out infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
  .day-live .frame{position:relative;width:100%;padding-top:56.25%;border-radius:6px;overflow:hidden;
    border:1px solid var(--line-warm);box-shadow:0 22px 55px -26px rgba(0,0,0,.85);}
  .day-live .frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
  .day-live figcaption{margin-top:11px;font-family:var(--serif);font-style:italic;color:var(--stone);font-size:.98rem;}
  .day-live figcaption a{color:var(--candle);text-decoration:none;border-bottom:1px dotted var(--line-warm);}

  .path{list-style:none;counter-reset:step;margin:0;padding:0;position:relative;}
  .path::before{content:"";position:absolute;left:15px;top:16px;bottom:16px;width:1px;
    background:linear-gradient(var(--line-warm),var(--line));}
  .path-step a{display:flex;gap:18px;align-items:flex-start;padding:14px 8px;text-decoration:none;border-radius:8px;transition:.2s;}
  .path-step a:hover{background:rgba(255,255,255,.03);}
  .path-dot{flex:0 0 auto;width:31px;height:31px;border-radius:50%;border:1px solid var(--line);
    background:var(--night-deep);display:grid;place-items:center;position:relative;z-index:1;margin-top:2px;}
  .path-dot::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--stone);opacity:.5;}
  .path-step.lit .path-dot{border-color:var(--line-warm);}
  .path-step.lit .path-dot::after{background:var(--glow);opacity:1;box-shadow:0 0 8px 2px rgba(242,181,89,.7);}
  .path-n{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);}
  .path-t{display:block;font-family:var(--serif);font-size:1.5rem;line-height:1.1;color:var(--ivory);}
  .path-p{display:block;font-family:var(--serif);font-style:italic;color:var(--stone);font-size:1rem;}

  /* ---------- Day view: spine + stage ---------- */
  .layout{display:grid;grid-template-columns:200px 1fr;gap:clamp(24px,4vw,54px);}
  .spine{position:relative;padding-top:6px;}
  .spine .rail{position:absolute;left:11px;top:14px;bottom:14px;width:1px;background:linear-gradient(var(--line-warm),var(--line));}
  .station{position:relative;display:flex;align-items:center;gap:13px;padding:10px 4px;
    text-decoration:none;border-radius:8px;transition:background .2s;}
  .station:hover{background:rgba(255,255,255,.03);}
  .station .dot{flex:0 0 auto;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;
    position:relative;z-index:1;border:1px solid var(--line);background:var(--night-deep);transition:.3s;}
  .station .dot::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--stone);opacity:.5;}
  .station.lit .dot{border-color:var(--line-warm);}
  .station.lit .dot::after{background:var(--glow);opacity:1;box-shadow:0 0 8px 2px rgba(242,181,89,.7);}
  .station.current .dot{border-color:var(--candle);box-shadow:0 0 0 4px rgba(242,181,89,.12);}
  .station.current .dot::after{background:var(--glow);box-shadow:0 0 10px 3px rgba(255,217,138,.9),0 0 22px 7px rgba(242,181,89,.35);}
  .station .n{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);}
  .station .t{font-family:var(--serif);font-size:1.02rem;color:var(--ivory);line-height:1.15;opacity:.62;transition:.2s;}
  .station.lit .t,.station.current .t{opacity:1;}
  .station.current .t{color:var(--candle);}

  .stage{position:relative;min-height:60vh;}
  .day-glow{position:absolute;top:-40px;left:50%;transform:translateX(-50%);width:min(560px,80%);height:340px;
    pointer-events:none;z-index:0;background:radial-gradient(50% 50% at 50% 0,rgba(242,181,89,.16),transparent 70%);filter:blur(6px);}
  .day-inner{position:relative;z-index:1;animation:rise .6s ease both;}
  @keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
  .eyebrow.left{justify-content:flex-start;margin-bottom:14px;}
  .eyebrow .num{color:var(--candle);}
  .eyebrow .movement{color:var(--rose);}
  .eyebrow .grow{flex:1;height:1px;background:var(--line);}

  /* Prayer card */
  .prayer{margin:2em 0;padding:26px 30px;border:1px solid var(--line-warm);border-radius:4px;
    background:linear-gradient(180deg,rgba(242,181,89,.05),rgba(255,255,255,.015));position:relative;}
  .prayer::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;background:linear-gradient(var(--candle),transparent);}
  .prayer .pk{font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--candle);margin-bottom:12px;}
  .prayer .pt{font-family:var(--serif);font-size:1.32rem;line-height:1.5;color:var(--ivory);}
  .prayer .pt .rubric{color:var(--rose);font-style:italic;}
  .prayer .attr{margin-top:14px;font-size:.72rem;color:var(--stone);letter-spacing:.04em;}

  /* Act */
  .act{margin-top:2.2em;padding-top:1.8em;border-top:1px solid var(--line);}
  .act .ak{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--stone);margin-bottom:10px;display:flex;gap:10px;align-items:center;}
  .act .ak::before{content:"\2726";color:var(--candle);font-size:.7rem;}
  .act h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:.1em 0 .5em;color:var(--ivory);}
  .act p.instr{color:#d9cfba;font-size:.98rem;max-width:56ch;margin:0 0 1.2em;}
  .field{width:100%;max-width:520px;background:var(--night-deep);border:1px solid var(--line);border-radius:4px;
    color:var(--ivory);font-family:var(--serif);font-size:1.15rem;padding:14px 16px;resize:vertical;transition:.2s;}
  .field::placeholder{color:#5f6a82;font-style:italic;}
  .field:focus{outline:none;border-color:var(--candle);box-shadow:0 0 0 3px rgba(242,181,89,.12);}
  .btn{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--night);
    background:var(--candle);border:none;border-radius:40px;padding:13px 26px;cursor:pointer;text-decoration:none;
    display:inline-block;transition:transform .15s,box-shadow .2s,background .2s;box-shadow:0 0 18px rgba(242,181,89,.28);}
  .btn:hover{transform:translateY(-1px);box-shadow:0 0 26px rgba(242,181,89,.45);}
  .btn:focus-visible{outline:2px solid var(--ivory);outline-offset:3px;}
  .btn.ghost{background:none;color:var(--ivory);border:1px solid var(--line-warm);box-shadow:none;}
  .btn.ghost:hover{color:var(--candle);box-shadow:none;}
  .btn[disabled]{opacity:.4;cursor:default;transform:none;box-shadow:none;}
  .btn-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:1.3em;}
  .done{color:var(--candle);font-family:var(--serif);font-style:italic;font-size:1.15rem;opacity:0;transition:.5s;display:flex;align-items:center;gap:8px;}
  .done.show{opacity:1;}

  .silence{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
  .breath{width:120px;height:120px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
    font-family:var(--serif);font-size:1.6rem;color:var(--glow);
    background:radial-gradient(circle at 50% 50%,rgba(242,181,89,.35),rgba(242,181,89,.04) 65%,transparent 72%);}
  .breath.running{animation:breathe 6s ease-in-out infinite;}
  @keyframes breathe{0%,100%{transform:scale(.9);opacity:.7;}50%{transform:scale(1.06);opacity:1;}}

  .prompts p{color:var(--rose);font-family:var(--serif);font-style:italic;font-size:1.15rem;margin:.2em 0;}
  .beads{display:flex;gap:9px;flex-wrap:wrap;max-width:520px;margin:.4em 0 1em;}
  .bead{width:20px;height:20px;border-radius:50%;border:1px solid var(--line);background:var(--night-deep);cursor:pointer;transition:.25s;padding:0;}
  .bead.big{width:26px;height:26px;border-color:var(--line-warm);}
  .bead.told{background:var(--glow);box-shadow:0 0 8px 2px rgba(242,181,89,.6);border-color:var(--candle);}
  .decade-say{font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--rose);min-height:1.5em;}

  .candle-stage{text-align:center;padding:12px 0 6px;position:relative;}
  .candle-wrap{position:relative;display:inline-block;}
  .candle-body{width:46px;height:120px;margin:0 auto;border-radius:5px 5px 3px 3px;position:relative;
    background:linear-gradient(180deg,#f3ecdc,#d9cbab);box-shadow:inset -6px 0 10px rgba(0,0,0,.18);}
  .flame{position:absolute;left:50%;top:-26px;transform:translateX(-50%);width:16px;height:30px;
    border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;opacity:0;transition:opacity .6s;
    background:radial-gradient(circle at 50% 70%,#fff6dd 0%,var(--glow) 35%,var(--candle) 70%,#e0762b 100%);
    box-shadow:0 0 22px 8px rgba(242,181,89,.55),0 0 44px 18px rgba(242,181,89,.25);}
  .flame.lit{opacity:1;animation:flicker 2.6s ease-in-out infinite;}
  @keyframes flicker{0%,100%{transform:translateX(-50%) scale(1) rotate(-1deg);}25%{transform:translateX(-52%) scale(1.05) rotate(1deg);}
    50%{transform:translateX(-49%) scale(.97) rotate(-1deg);}75%{transform:translateX(-51%) scale(1.03) rotate(1deg);}}
  .candle-intention{margin-top:1.4em;font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--rose);opacity:0;transition:.8s;}
  .candle-intention.show{opacity:1;}
  .enroll{margin-top:2em;font-size:.82rem;color:var(--stone);}
  .enroll a{color:var(--candle);text-decoration:none;border-bottom:1px dotted var(--line-warm);}

  .footnav{display:flex;align-items:center;justify-content:space-between;margin-top:3em;padding-top:1.6em;border-top:1px solid var(--line);gap:16px;}
  .footnav .of{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);}

  /* ---------- Candle wall ---------- */
  .wall-head{max-width:60ch;margin-bottom:30px;}
  .wall-form{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:12px;}
  .wall-form .field{max-width:none;flex:1 1 280px;}
  .wall-form .name{flex:0 1 200px;font-family:var(--sans);font-size:.95rem;}
  .wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:26px;}
  .lit-candle{position:relative;padding:30px 18px 18px;border:1px solid var(--line);border-radius:6px;
    background:linear-gradient(180deg,rgba(242,181,89,.05),transparent);text-align:center;}
  .lit-candle .fl{position:absolute;left:50%;top:12px;transform:translateX(-50%);width:9px;height:14px;
    border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
    background:radial-gradient(circle at 50% 70%,#fff6dd,var(--glow) 45%,var(--candle) 80%);
    box-shadow:0 0 10px 3px rgba(242,181,89,.6);animation:flicker 3s ease-in-out infinite;}
  .lit-candle .int{font-family:var(--serif);font-size:1.14rem;color:var(--ivory);line-height:1.3;margin-top:6px;}
  .lit-candle .by{margin-top:9px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);}
  .wall-empty{color:var(--stone);font-family:var(--serif);font-style:italic;font-size:1.2rem;margin-top:20px;}

  .site-foot{margin-top:60px;padding-top:22px;border-top:1px solid var(--line);
    font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);display:flex;gap:12px;align-items:center;}
  .site-foot a{color:var(--stone);text-decoration:none;}
  .site-foot a:hover{color:var(--candle);}

  @media (max-width:760px){
    .layout{grid-template-columns:1fr;gap:8px;}
    .spine{display:flex;overflow-x:auto;gap:4px;padding-bottom:10px;margin-bottom:8px;}
    .spine .rail{display:none;}
    .station{flex:0 0 auto;flex-direction:column;gap:6px;width:64px;text-align:center;}
    .station .t{display:none;}
    .topnav{margin-left:0;}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important;}
    .flame,.lit-candle .fl{opacity:1;}
  }
