:root{--cream:#FBF6EE;--card:#FFFDF9;--line:#E8DCCF;--ink:#3B3148;--soft:#5E5270;--gold:#B8893E;--goldtext:#7E5F28;--blush:#F7E4DF;--err:#8E3A3A}
@media (prefers-color-scheme:dark){:root{color-scheme:light}}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'Lora',Georgia,serif;font-size:16px;line-height:1.6}
.app{max-width:430px;margin:0 auto;min-height:100vh;position:relative;background:var(--cream)}
.app::after{content:"";position:absolute;left:0;right:0;bottom:0;height:240px;z-index:0;pointer-events:none;background:radial-gradient(ellipse 130% 100% at 50% 100%,rgba(237,188,156,.55) 0%,rgba(247,228,223,.3) 45%,rgba(251,246,238,0) 75%)}
section{position:relative;z-index:1;padding-bottom:48px}
.night{position:relative;background:radial-gradient(ellipse at 50% 30%,#4A3D5C 0%,#3B3148 55%,#2E2639 100%);padding:52px 24px 64px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;overflow:hidden}
.night:before{content:"";position:absolute;inset:0;background-image:radial-gradient(2px 2px at 28px 40px,#E6C67E,transparent),radial-gradient(3px 3px at 70px 118px,#E6C67E,transparent),radial-gradient(2px 2px at 300px 36px,#E6C67E,transparent),radial-gradient(3px 3px at 346px 96px,#E6C67E,transparent),radial-gradient(2px 2px at 258px 150px,#E6C67E,transparent),radial-gradient(2px 2px at 40px 210px,#E6C67E,transparent),radial-gradient(2px 2px at 352px 200px,#E6C67E,transparent);opacity:.75}
.night>*{position:relative}
.kicker{font-size:12px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:#D9B266}
h1,h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;margin:0}
.night h1{font-size:38px;line-height:42px;color:#FFFDF9}
h1 em,h2 em{font-style:italic;font-weight:400}
.sub{font-size:14px;color:#F7E4DF;margin:0}
.glyph{font-family:'Cormorant Garamond',serif;font-size:64px;line-height:1;color:#E6C67E;width:96px;height:96px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 0 0 10px rgba(230,198,126,.08),0 0 0 22px rgba(230,198,126,.04)}
.pull{padding:0 20px;margin-top:-24px;position:relative}
.arch{background:var(--card);border:1px solid var(--line);border-radius:160px 160px 10px 10px;padding:66px 24px 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.arch .lab{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--goldtext)}
.arch h2{font-size:32px;line-height:38px}
.arch p{margin:0;font-size:15px;color:var(--soft)}
[hidden]{display:none!important}
.body{padding:28px 24px 0;display:flex;flex-direction:column;gap:18px}
.body p{margin:0}
label{font-size:14px;font-weight:500}
.field{display:flex;flex-direction:column;gap:6px}
input[type=text],input[type=date],input[type=time],input[type=number],input:not([type]){min-height:48px;border:1px solid var(--line);border-radius:2px;background:var(--card);padding:10px 12px;font:inherit;color:var(--ink);width:100%}
input:disabled{opacity:.5}
input:focus-visible,button:focus-visible,summary:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.check{display:flex;align-items:flex-start;gap:12px;min-height:44px}
.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--gold);flex-shrink:0}
.check label{font-weight:400;font-size:15px}
.hint{font-size:13px;color:var(--soft);margin:0}
.error{background:#F9E8E8;border:1px solid #D8A4A4;color:var(--err);border-radius:10px;padding:12px 14px;font-size:14px}
.note{background:var(--blush);border-radius:10px;padding:14px 16px;font-size:14px;color:var(--ink)}
.medal{display:flex;flex-direction:column;align-items:center;gap:9px;background:none;border:0;cursor:pointer;padding:6px 0;font:inherit;color:var(--ink)}
.medal .ring{width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#4A3D5C,#2E2639);color:#E6C67E;font-family:'Cormorant Garamond',serif;font-size:36px;box-shadow:0 0 0 1px #B8893E,0 0 0 4px #FBF6EE,0 0 0 5px rgba(184,137,62,.5),0 10px 24px rgba(59,49,72,.22)}
.medal .t{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:20px}
.link{background:none;border:0;color:#6A4C7D;text-decoration:underline;font:inherit;font-size:14px;cursor:pointer;min-height:44px;padding:0 4px}
.rows{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:6px 18px}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.row:last-child{border:0}
.lbl{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--goldtext)}
.val{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:500;text-align:right}
.val small{display:block;font-family:'Lora',serif;font-size:13px;font-weight:400;color:var(--soft)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}
.card h2{font-size:24px;line-height:30px;margin-bottom:6px}
.sep{display:flex;align-items:center;gap:12px}.sep i{flex:1;height:1px;background:var(--gold)}.sep b{width:8px;height:8px;border-radius:50%;border:1px solid var(--gold)}
.center{text-align:center}
.foot{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
@media (prefers-reduced-motion:no-preference){section{animation:in .35s ease}@keyframes in{from{opacity:0}to{opacity:1}}}

textarea{width:100%;border:1px solid var(--line);border-radius:2px;background:var(--card);padding:10px 12px;font:inherit;color:var(--ink);resize:vertical;min-height:140px}
textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
input[type=email],input[type=password]{min-height:48px;border:1px solid var(--line);border-radius:2px;background:var(--card);padding:10px 12px;font:inherit;color:var(--ink);width:100%}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;letter-spacing:.04em;word-break:break-all;margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;justify-content:center;gap:0;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{flex:1;max-width:215px;min-height:52px;background:none;border:0;font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;font-style:italic;color:var(--soft);cursor:pointer}
.tabs button[aria-current=page]{color:var(--ink);font-weight:500;box-shadow:inset 0 -2px 0 var(--gold)}
.tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
section{padding-bottom:96px}
.entry{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.entry .when{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--goldtext)}
.entry .q{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:18px;margin:6px 0}
.entry .txt{white-space:pre-wrap;margin:0}
.center .medal{margin-left:auto;margin-right:auto}

.combo{position:relative}
#placeList{position:absolute;left:0;right:0;top:100%;z-index:6;margin:2px 0 0;padding:0;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:2px;box-shadow:0 10px 24px rgba(59,49,72,.14);max-height:320px;overflow:auto}
#placeList li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:12px;min-height:44px;cursor:pointer;border-bottom:1px solid var(--line)}
#placeList li:last-child{border:0}
#placeList li small{font-size:12px;color:var(--soft);white-space:nowrap}
#placeList li[aria-selected=true],#placeList li:hover{background:var(--blush)}
.hint a{color:var(--goldtext);text-decoration:underline;text-underline-offset:2px}
.glist{display:flex;flex-direction:column;margin-top:8px}
.gentry{display:grid;grid-template-columns:1fr auto;grid-template-areas:"t tag" "s tag";gap:2px 12px;align-items:center;text-align:left;background:none;border:0;border-top:1px solid var(--line);padding:14px 0;font:inherit;color:var(--ink);cursor:pointer;min-height:48px}
.gentry:first-child{border-top:0}
.gentry .gtitle{grid-area:t;font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;line-height:26px}
.gentry .gsub{grid-area:s;font-size:13px;color:var(--soft)}
.gentry .gtag{grid-area:tag;font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--goldtext);border:1px solid var(--gold);border-radius:999px;padding:4px 9px;white-space:nowrap}
.card h2+.glist{margin-top:10px}
#ge-body p{margin:0 0 14px}#ge-body p.closing{font-style:italic;font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;margin-top:6px}
.tabs button{max-width:160px}

.writing{color:var(--soft);font-style:italic}
h3.sub{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:18px;margin:14px 0 4px;color:var(--goldtext)}
p.prompt{font-style:italic}
.pair{padding:14px 0;border-top:1px solid var(--line)}.pair:first-child{border-top:0}
.pair .pt{font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;line-height:26px}
.pair .po{font-size:12px;color:var(--soft);letter-spacing:.08em;text-transform:uppercase;margin:2px 0 8px}
.pair p{margin:0 0 10px}.pair p.closing{font-style:italic;font-family:'Cormorant Garamond',Georgia,serif;font-size:19px}
.tabs button{max-width:120px}

.prompts{margin:0 0 12px}.prompts summary{cursor:pointer;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:18px;color:var(--goldtext);list-style:none;padding:6px 0}.prompts summary::-webkit-details-marker{display:none}.prompts summary::after{content:' ▾';font-style:normal;font-size:13px}
.prompts[open] summary::after{content:' ▴'}
.rosewrap{display:flex;justify-content:center;margin:6px 0 10px}.rosewrap img{width:120px;height:120px}

.rosefig{position:relative;width:120px;height:120px}
#lv-petals i{position:absolute;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;left:55px;top:55px;transform-origin:5px 5px}
#lv-petals i:nth-child(1){transform:rotate(0deg) translateY(-46px)}#lv-petals i:nth-child(2){transform:rotate(72deg) translateY(-46px)}#lv-petals i:nth-child(3){transform:rotate(144deg) translateY(-46px)}#lv-petals i:nth-child(4){transform:rotate(216deg) translateY(-46px)}#lv-petals i:nth-child(5){transform:rotate(288deg) translateY(-46px)}
#lv-petals i.on{background:var(--goldlight,#E6C67E);box-shadow:0 0 0 3px rgba(230,198,126,.35)}

.evrow{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:start;padding:12px 0;border-top:1px solid var(--line);background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;font:inherit;color:var(--ink);width:100%;cursor:pointer}
.evrow:first-child{border-top:0}.evrow .d{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--goldtext);line-height:16px;padding-top:4px}
.evrow .t{font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;line-height:24px}.evrow .s{font-size:13px;color:var(--soft)}
.evrow.shared .t{font-size:17px;color:var(--soft)}
.month{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--goldtext);margin:18px 0 4px}
.month:first-child{margin-top:0}
.tabs button{max-width:96px;font-size:15px;white-space:nowrap}

.frame{position:relative;width:100%;aspect-ratio:16/9;background:#2E2639;border-radius:10px;overflow:hidden;margin:10px 0}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.frame .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#E6C67E;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:18px;padding:20px;text-align:center}
p.closing{font-style:italic;font-family:'Cormorant Garamond',Georgia,serif;font-size:20px;line-height:26px;margin:6px 0 12px}
#ev-personal p,#ev-shared p,#td-nowPiece p,#c-sigBody p,#lv-retPiece p,#lv-rosePiece p,#c-starPiece p{margin:0 0 12px}

.welcomeRose{display:flex;justify-content:center;margin:6px 0 10px}.welcomeRose img{width:140px;height:140px}
h1[tabindex]:focus,h1[tabindex]:focus-visible{outline:none}

/* the Rose, large and faint, behind every night header */
.night{position:relative;overflow:hidden}
.night::after{content:"";position:absolute;right:-80px;top:-70px;width:300px;height:300px;background:url(icons/rose-line.svg) center/contain no-repeat;opacity:.16;pointer-events:none}
.night>*{position:relative;z-index:1}
#v-welcome .night::after{display:none}
/* and behind the journal page, barely there */
#v-journal .body{position:relative}
#v-journal .body::before{content:"";position:absolute;left:-90px;bottom:-40px;width:300px;height:300px;background:url(icons/rose-line.svg) center/contain no-repeat;opacity:.07;pointer-events:none}

/* the Rose, traced the way Venus draws it */
.trace .tracepath{stroke-dasharray:1;stroke-dashoffset:0}
@media (prefers-reduced-motion:no-preference){.trace .tracepath{stroke-dasharray:var(--len,30000);stroke-dashoffset:var(--len,30000);animation:trace 6s cubic-bezier(.4,0,.2,1) forwards}}
@keyframes trace{to{stroke-dashoffset:0}}
.welcomeRose svg{display:block}
/* membership perks */
.perks{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:10px}
.perks li{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:8px;padding:12px 14px;border-top:1px solid var(--line);font-size:15px}
.perks li:first-child{border-top:0}
.perks .g{color:var(--goldtext);font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;text-align:center;letter-spacing:-2px}
.medal.rosebtn .ring{width:96px;height:96px;background:none;box-shadow:0 10px 24px rgba(59,49,72,.22);overflow:hidden}
.medal.rosebtn .ring img{width:96px;height:96px;display:block}

.arch h2.goldh{color:var(--goldtext);font-size:26px;line-height:32px;font-style:italic;font-weight:500}
.arch .intro{font-size:15px;margin-top:4px}
.arch .intro::before{content:"▶ ";font-size:11px;position:relative;top:-1px}

/* chart wheel */
.wheelWrap{width:min(100%,350px);aspect-ratio:1;margin:4px auto 18px;filter:drop-shadow(0 10px 24px rgba(59,49,72,.12))}
.wheel{display:block;font-family:"Segoe UI Symbol","Apple Symbols","Noto Sans Symbols","Noto Sans Symbols 2",sans-serif}
.wheel .ring{fill:none;stroke:var(--line);stroke-width:1}.wheel .ring.soft{stroke:#EFE6DA}.wheel .ring.gold{stroke:var(--gold);stroke-width:1.2}.wheel .ring.faint{stroke:rgba(184,137,62,.35);stroke-width:.6}
.wheel line{stroke:#D3C4B3;stroke-width:1.2}.wheel line.soft{stroke:#E2D5C6}.wheel line.tick{stroke:#C9B8A4;stroke-width:1}
.wheel line.cusp{stroke:#C9B8A4;stroke-width:1.2}.wheel line.cusp.angle{stroke:var(--gold);stroke-width:1.6}
.wheel line.ptick{stroke:var(--ink);stroke-width:1.6}.wheel line.ptick.venus{stroke:var(--gold);stroke-width:2}
.wheel text{fill:var(--ink);font-weight:600}.wheel text.sign{fill:var(--ink)}.wheel text.house,.wheel text.angleLbl{fill:var(--goldtext);font-family:Lora,serif;letter-spacing:.08em}
.wheel .venusHalo{fill:#F7DED6;stroke:var(--gold);stroke-width:1.6}.wheel text.planet.light{fill:var(--ink)}.wheel text.planet.venus{fill:#9C6F27;font-weight:700}.wheel text.retro{fill:var(--soft)}
/* the faded continuation of a members' reading */
p.fade{color:var(--soft);margin-bottom:0;-webkit-mask-image:linear-gradient(#000 10%,transparent 95%);mask-image:linear-gradient(#000 10%,transparent 95%);user-select:none}

/* the membership invitation: sunrise, soft edges, the medallion */
.note.invite{position:relative;background:linear-gradient(135deg,#F9E3DB 0%,#F6D7C6 42%,#F4E6C9 100%);border:1px solid rgba(184,137,62,.4);border-radius:18px;padding:18px 18px 18px 92px;min-height:88px;display:flex;flex-direction:column;justify-content:center;font-size:15px;line-height:22px;box-shadow:0 10px 24px rgba(59,49,72,.10)}
.note.invite::before{content:"";position:absolute;left:18px;top:50%;width:58px;height:58px;margin-top:-29px;border-radius:50%;background:url(icons/rose.svg) center/contain no-repeat;box-shadow:0 6px 16px rgba(59,49,72,.25)}
.note.invite .link{display:inline;width:auto;color:var(--goldtext);font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:19px;text-decoration:none;border-bottom:1px solid var(--gold);padding:0;margin:0}
.note.invite:has(.medal){padding-left:18px}.note.invite:has(.medal)::before{display:none}
.note.invite .center{margin-top:8px!important;justify-content:flex-start}
/* membership perks: larger, gold */
.perks{background:linear-gradient(180deg,#FFFDF9,#FBF3EA);border-color:rgba(184,137,62,.45);border-radius:16px}
.perks li{grid-template-columns:52px 1fr;padding:14px 16px;border-top-color:rgba(184,137,62,.25)}
.perks .g{color:var(--gold);font-size:30px;line-height:32px;letter-spacing:-3px;text-shadow:0 1px 0 #fff}
/* the gold bar */
.tabs button{color:rgba(46,38,57,.62);font-weight:500}
.tabs button[aria-current=page]{color:#2E2639;font-weight:600;box-shadow:inset 0 -2px 0 var(--gold)}
.perks .g img{width:34px;height:34px;display:block;margin:0 auto}
