/* Collectshare page system: the components the app (/log) and the pages around it share.
   Link order on every page: /tokens.css, /site.css, /header.css, then any page-only rules.
   Everything here came out of the app (log/index.html) or the manifesto/legal pages; nothing is landing-only. */
*{box-sizing:border-box;margin:0}
/* Ground: the app's two soft glows over --bg. --sy is the app's scroll parallax (0 elsewhere). */
html{background:radial-gradient(900px 600px at 15% -10%,var(--g1) 0,transparent 60%),radial-gradient(800px 600px at 100% 10%,var(--g2) 0,transparent 55%),var(--bg);background-attachment:fixed;background-position:0 calc(var(--sy,0)*-.05px),0 calc(var(--sy,0)*-.025px),0 0}
body{min-height:100vh;padding:0 clamp(12px,4vw,24px) 90px;color:var(--ink);font:.95rem/1.6 var(--font-sans);-webkit-font-smoothing:antialiased}
@media(min-width:900px){body{font-size:1rem}}
/* Focus ring, everywhere */
a:focus-visible{outline:2px solid rgba(var(--inkA),.55);outline-offset:2px}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Glass surface (entries, composer, toast) */
.glass{background:var(--glass);-webkit-backdrop-filter:blur(30px) saturate(105%);backdrop-filter:blur(30px) saturate(105%);
border:0;box-shadow:0 1px 0 rgba(255,255,255,var(--hl)) inset,0 10px 34px -22px rgba(40,56,84,.28);border-radius:var(--rc)}

/* Reveal on scroll: one rise, skipped under reduced motion */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.1,1)}.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* First screen: the app's empty state type (one-liner, blue second line, short note). .lead is the same type outside the log. */
.empty h1,.lead h1{font:600 clamp(1.25rem,5.4vw,1.75rem)/1.2 var(--font-sans);letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.empty h1 span,.lead h1 span{display:block;color:var(--blue)}
.empty p,.lead p{max-width:30ch;text-wrap:balance}
.lead{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.4vh,20px);padding:clamp(40px,9vh,96px) 16px clamp(36px,7vh,72px);text-align:center;color:var(--mute)}

/* Call to action: the claim dialog's signal button (.jcard .sig / .acard .sig) as a link. One per view. */
.cta{display:inline-grid;place-items:center;height:48px;padding:0 24px;border-radius:var(--r);background:var(--sig);color:var(--onsig);font:500 .812rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.cta:hover{opacity:.9}

/* Day label and entry card (the log's list) */
.day{margin:26px 4px 10px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.e{padding:18px 20px;margin-bottom:12px}
.e p{white-space:pre-wrap;word-wrap:break-word;font-size:1.04em;letter-spacing:-.005em}
.list{list-style:none;padding:0}
a.e{display:block;color:inherit;text-decoration:none}
.e .meta{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-family:var(--font-mono);font-size:.75rem;color:var(--mute)}
@media(min-width:900px){.e{padding:22px 26px}}
@media(min-width:1200px){.e{padding:24px 30px}}
@media(max-width:380px){.e{padding:14px 16px}}

/* Paper: the manifesto and legal sheet. It fills the app's column (.wrap), so its edges line up with the log's entries. */
.paper{position:relative;margin:clamp(14px,4vh,40px) auto 0;padding:clamp(1.75rem,6vw,3.25rem) clamp(1.25rem,6vw,3.5rem) clamp(1.875rem,5vw,2.875rem);background:var(--paper);-webkit-backdrop-filter:blur(30px) saturate(105%);backdrop-filter:blur(30px) saturate(105%);border-radius:var(--rc);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 10px 34px -22px rgba(40,56,84,.28)}
@media(prefers-color-scheme:dark){.paper{box-shadow:0 1px 0 rgba(255,255,255,.07) inset,0 10px 34px -22px rgba(0,0,0,.6)}}
.paper p{position:relative;font:400 clamp(.84rem,2vw,.9rem)/1.8 var(--font-mono);color:rgba(var(--inkA),.86);text-wrap:pretty}
.paper p+p{margin-top:1.1em}
.sign{position:relative;margin-top:clamp(1.5rem,4vw,2.25rem)}
.sign .hand{display:block;font-family:var(--hand);font-size:clamp(1.875rem,5vw,2.375rem);line-height:1;color:var(--lgc);transform:rotate(-2deg);transform-origin:left bottom}
.sign .rule{width:min(200px,60%);height:1px;margin-top:4px;background:rgba(var(--inkA),.28)}
.sign .date{margin-top:8px;font:.75rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.paper .ind{margin-top:clamp(1.5rem,4vw,2rem);font:.75rem/1.6 var(--font-mono);color:var(--mute)}

/* Footer: the legal pages' link row */
.ft{display:flex;flex-wrap:wrap;justify-content:center;row-gap:8px;margin:28px 0 0;text-align:center;font:.688rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.ft a{margin:0 6px;color:inherit;text-decoration:none;white-space:nowrap}.ft a:hover,.ft a[aria-current=page]{color:var(--ink)}
