:root {
  color-scheme: dark;
  --black-void: #050505;
  --black-obsidian: #1a1a1a;
  --white-pure: #ffffff;
  --grey-200: #e0e0e0;
  --text-muted: #858585;
  --grey-700: #333333;
  --amber-light: #d4a853;
  --amber-glow-08: rgba(212,168,83,.08);
  --amber-glow-30: rgba(212,168,83,.3);
  --border-hairline: #292929;
  --font-sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-mono: "SF Mono", Menlo, Consolas, monospace;
  --page-width: 900px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--black-void); color: var(--grey-200); font: 16px/1.65 var(--font-sans); }
a { color: var(--amber-light); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--amber-light); outline-offset: 4px; }
.skip-link { position: absolute; left: -9999px; top: 0; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; padding: .75rem; background: #000; }
.site-header { border-bottom: 1px solid var(--border-hairline); }
.site-nav { max-width: var(--page-width); margin: auto; padding: 14px 20px; display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.site-nav a { color: var(--grey-200); text-decoration: none; font: 12px var(--font-mono); letter-spacing: .06em; }
.site-nav a:hover { color: var(--amber-light); }
.site-brand { font-size: 16px !important; letter-spacing: .18em !important; color: var(--white-pure) !important; margin-right: auto; }
.page { max-width: var(--page-width); margin: 0 auto; padding: 38px 20px 52px; }
.hero { padding: 20px 0 30px; margin-bottom: 26px; border-bottom: 1px solid var(--border-hairline); }
.sigil { display: block; width: 76px; height: 76px; margin: 0 0 20px; }
.eyebrow, .kicker { margin: 0 0 10px; font: 11px var(--font-mono); letter-spacing: .15em; text-transform: uppercase; color: var(--amber-light); }
h1 { margin: 0; color: var(--white-pure); font-size: clamp(2.5rem, 7vw, 4.3rem); font-weight: 300; letter-spacing: -.035em; line-height: 1.08; text-shadow: 0 0 20px var(--amber-glow-30); }
h1 span { color: var(--amber-light); }
h2 { margin: 0 0 12px; color: var(--white-pure); font-size: clamp(1.45rem, 4vw, 2rem); font-weight: 300; letter-spacing: -.015em; line-height: 1.25; }
h3 { margin: 0 0 8px; color: var(--white-pure); font-size: 1rem; font-weight: 400; }
.lead { max-width: 70ch; margin: 18px 0; font-size: clamp(1.05rem, 2.4vw, 1.25rem); line-height: 1.7; }
.muted { color: var(--text-muted); }
.status { display: grid; grid-template-columns: 10px 1fr; gap: 12px; max-width: 780px; margin: 26px 0; padding: 18px; border: 1px solid #8c6d42; border-left: 4px solid var(--amber-light); background: var(--amber-glow-08); }
.status-mark { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--amber-light); }
.status strong { display: block; font: 700 11px var(--font-mono); letter-spacing: .1em; color: var(--amber-light); }
.status p { margin: 8px 0 0; }
.section { margin: 38px 0; padding: 26px; border: 1px solid var(--border-hairline); background: linear-gradient(180deg, rgba(212,168,83,.035), transparent); }
.grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 18px 0; }
.card { padding: 18px; border: 1px solid var(--border-hairline); background: var(--black-obsidian); }
.card p { margin: 0; color: var(--text-muted); font-size: 14px; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 6px; }
.actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border: 1px solid var(--amber-light); color: var(--grey-200); font: 12px var(--font-mono); text-decoration: none; }
.actions a:hover { background: var(--amber-glow-08); color: var(--amber-light); }
ul { padding-left: 22px; }
li { margin: 8px 0; }
footer { border-top: 1px solid var(--border-hairline); padding: 22px 20px 30px; color: var(--text-muted); font: 11px/1.7 var(--font-mono); }
.footer-inner { max-width: var(--page-width); margin: auto; }
@media(max-width:620px) { .page { padding: 26px 16px 38px; } .section { padding: 18px; } .grid { grid-template-columns: 1fr; } .site-nav { padding-inline: 16px; gap: 12px 16px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }


/* Weaver: scoped Loptr Lab adaptation. Source of truth: public/style.css. */
html.weaver {
 --surface:#050505; --surface-container:#151515; --surface-raised:#1a1a1a;
 --on-surface:#e0e0e0; --on-surface-variant:#ababab; --outline:#333333;
 --primary:#d4a853; --font-body:"Helvetica Neue",Helvetica,Arial,sans-serif;
 --space-1:.4rem; --space-2:.8rem; --space-3:1.2rem; --space-4:1.6rem;
 --space-5:2.4rem; --space-6:3.2rem;
 font-size:125%; scroll-behavior:smooth; color-scheme:dark;
}
.weaver body {margin:0;background:var(--surface);color:var(--on-surface);font:1rem/1.65 var(--font-body);}
.weaver a {color:var(--primary);text-underline-offset:.2em;}
.weaver :is(a,button):focus-visible {outline:3px solid var(--primary);outline-offset:4px;}
.weaver .shell {width:min(1140px,calc(100% - 2.4rem));margin-inline:auto;overflow-wrap:anywhere;}
.weaver header {position:relative;padding-inline-end:6rem;min-height:0;padding:var(--space-6) 0 var(--space-5);}
.weaver .hero {max-width:48rem;text-align:left;padding:0;margin:0;border:0;}
.weaver :is(.eyebrow,.label) {color:var(--primary);font:600 1rem/1.5 var(--font-body);letter-spacing:normal;text-transform:none;}
.weaver .hero h1 {margin:var(--space-3) 0;font:500 clamp(2.5rem,6vw,4rem)/1.1 var(--font-body);letter-spacing:normal;color:var(--on-surface);text-shadow:none;}
.weaver .subtitle {max-width:60ch;margin:var(--space-3) 0 var(--space-4);font-size:1.2rem;line-height:1.5;color:var(--on-surface);}
.weaver :is(.door,.link-button,button) {appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:.6rem 1rem;border:1px solid var(--outline);border-radius:.6rem;background:var(--surface-container);color:var(--on-surface);font:600 1rem/1.5 var(--font-body);letter-spacing:normal;text-transform:none;text-decoration:none;cursor:pointer;white-space:normal;}
.weaver .door {border-color:var(--primary);margin:0 var(--space-2) var(--space-2) 0;}
.weaver .door + .door {border-color:var(--outline);}
.weaver :is(.door,.link-button,button):hover {background:var(--surface-raised);border-color:var(--primary);}
.weaver :is(.door,.link-button,button):active {box-shadow:inset 0 0 0 1px var(--primary);}
.weaver .meta {margin-top:var(--space-3);color:var(--on-surface-variant);font:1rem/1.6 var(--font-body);letter-spacing:normal;text-transform:none;}
.weaver main {padding-bottom:var(--space-4);}
.weaver section {border-top:1px solid var(--outline);padding:var(--space-5) 0;}
.weaver .section-head {max-width:72ch;margin-bottom:var(--space-3);}
.weaver section h2 {margin:var(--space-2) 0 var(--space-3);font:500 clamp(1.6rem,3vw,2rem)/1.25 var(--font-body);letter-spacing:normal;color:var(--on-surface);}
.weaver section h3 {margin:var(--space-2) 0;font:600 1.2rem/1.4 var(--font-body);color:var(--on-surface);}
.weaver p {font-size:1rem;line-height:1.65;margin:var(--space-2) 0 var(--space-3);}
.weaver :is(.section-head p,.card p) {color:var(--on-surface);max-width:72ch;}
.weaver .grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);}
.weaver .card {min-width:0;padding:var(--space-3);border:1px solid var(--outline);border-radius:.6rem;background:var(--surface-container);}
.weaver .chain {display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-top:var(--space-3);}
.weaver .node {padding:.5rem .6rem;border:1px solid var(--outline);background:var(--surface-container);color:var(--on-surface);font:1rem/1.5 var(--font-body);}
.weaver .arrow {color:var(--primary);}
.weaver .quote {max-width:65ch;margin:var(--space-4) 0;padding:.2rem 0 .2rem var(--space-3);border-left:2px solid var(--primary);font-size:1.2rem;color:var(--on-surface);}
.weaver .questions {counter-reset:q;list-style:none;padding:0;margin:var(--space-3) 0;}
.weaver .questions li {counter-increment:q;position:relative;padding:var(--space-2) 0 var(--space-2) 2.4rem;border-bottom:1px solid var(--outline);color:var(--on-surface);}
.weaver .questions li::before {content:counter(q,decimal-leading-zero);position:absolute;left:0;top:var(--space-2);color:var(--primary);font:1rem/1.5 var(--font-body);}
.weaver :is(.access,.notice) {margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--outline);border-radius:.6rem;background:var(--surface-container);color:var(--on-surface);}
.weaver .notice strong {color:var(--on-surface);}
.weaver .actions {display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3);}
.weaver .status {display:grid;gap:var(--space-1);margin-top:var(--space-3);}
.weaver .status-row {display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--outline);}
.weaver .status-row span:last-child {color:var(--primary);font:1rem/1.5 var(--font-body);letter-spacing:normal;text-transform:none;}
.weaver footer {padding:var(--space-4) 0 7rem;color:var(--on-surface-variant);font-size:1rem;}
.weaver footer nav {display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);}
.weaver footer nav a {display:inline-flex;align-items:center;min-height:48px;}
.weaver .pixie {position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:10;}
.weaver .pixie>button {border-color:var(--primary);box-shadow:0 4px 16px #0008;}
.weaver .pixie-panel {overflow-wrap:anywhere;display:none;width:min(26rem,calc(100vw - 2rem));max-height:calc(100dvh - 7rem);overflow:auto;margin-bottom:var(--space-2);padding:var(--space-3);border:1px solid var(--outline);border-radius:.6rem;background:var(--surface-container);box-shadow:0 4px 20px #0008;}
.weaver .pixie-panel.open {display:block;}
.weaver .pixie-panel strong {color:var(--primary);font:600 1rem/1.5 var(--font-body);}
.weaver .pixie-panel p {color:var(--on-surface);font-size:1rem;}
@media(max-width:839px) {
 .weaver .grid {grid-template-columns:minmax(0,1fr);}
 .weaver .status-row {flex-direction:column;align-items:flex-start;gap:var(--space-1);}
}
@media(max-width:599px) {
 .weaver .shell {width:calc(100% - 1.6rem);}
 .weaver header {padding:var(--space-5) 0;}
 .weaver .hero h1 {font-size:clamp(2.2rem,10vw,3rem);}
}
@media(prefers-reduced-motion:reduce) {html.weaver {scroll-behavior:auto;}}
/* Private invitation controls inherit the existing Weaver reading roles. */
.weaver :is(input,select,textarea) {width:100%;max-width:100%;min-width:0;padding:.6rem;border:1px solid var(--on-surface-variant);border-radius:.4rem;background:var(--surface);color:var(--on-surface);font:1rem/1.5 var(--font-body);}
.weaver :is(input,select,textarea):focus-visible {outline:3px solid var(--primary);outline-offset:4px;}
.weaver #invitation-content {min-width:0;display:grid;gap:var(--space-2);}
.weaver #invitation-content pre {white-space:pre-wrap;overflow-wrap:anywhere;font:1rem/1.65 var(--font-body);margin:0;}
.weaver .companion-icon {width:40px;height:40px;object-fit:contain;margin-right:.5rem;}
.weaver button:disabled {opacity:.65;cursor:wait;}
.weaver [hidden] {display:none;}

/* Owner-supplied Weaver mark; distinct from PIXIE's unchanged Companion icon. */
.weaver .weaver-sigil {position:absolute;inset-block-start:2.4rem;inset-inline-end:0;width:4.8rem;height:4.8rem;color:#d4a853;}
.weaver-sigil .ring,.weaver-sigil .thread {fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;}
.weaver-sigil .ring {opacity:.5;}
.weaver-sigil .inner {opacity:.65;}
.weaver-sigil .core {fill:currentColor;animation:weaver-breathe 7s ease-in-out infinite;}
@keyframes weaver-breathe {0%,100% {opacity:1;}50% {opacity:.5;}}
@media(max-width:700px) {
 .weaver header {padding-inline-end:0;}
 .weaver .weaver-sigil {position:static;display:block;margin:0 0 1.6rem auto;width:3.2rem;height:3.2rem;}
}
@media(prefers-reduced-motion:reduce) {.weaver-sigil .core {animation:none;opacity:1;}}
