/* atlas.css: the Strangeland Atlas's look, laid over the invite's structure.
   Lifted from hub-atlas-gathering instances/strangeland/skin.css ("the first Strangeland",
   Oct 4): the photograph under a dark wash (the one gradient), glass plates, bold Helvetica for
   the one display moment, mono in small tracked caps for labels with a hairline to the edge
   (uppercase micro type needs the tracking, a deliberate exception), pills whose dot carries
   meaning, the commit as a gold pill with a dark dot, ( Strangeland ) as the wordmark.
   Only the surface changes; brief.css keeps every shape and app.js every motion. */
:root{
  --black:#211f1d; --paper:#f5f3ee; --bone:rgba(245,243,238,.78); --ash:rgba(245,243,238,.58);
  --steel:rgba(245,243,238,.2); --iron:rgba(245,243,238,.28);
  --gold:#d9bd4e; --go:#d9bd4e; --nogo:#e0836a; --sage:#8fb098;
  --dim:rgba(245,243,238,.58); --hair:rgba(245,243,238,.12);
  --glass:rgba(24,22,20,.58); --glass-line:rgba(245,243,238,.2); --radius:16px; --tile:14px;
}
html{background:#211f1d}
body{background:transparent;font-size:16px;line-height:1.5}
body::before{content:"";position:fixed;inset:0;z-index:-2;background:url("https://images.unsplash.com/photo-1470071459604-3b5ec3a7fe05?q=70&w=1600&auto=format&fit=crop") center 18%/cover no-repeat;opacity:.5}
body::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(33,31,29,.55) 0%,rgba(33,31,29,.82) 46%,rgba(33,31,29,.94) 88%);pointer-events:none}
.ground{display:none}
.page{z-index:0}

/* ---- the small words: mono, tracked caps, quiet ---- */
.eyebrow,.to dt,.facts dt,.stages li,.cal-dow span,.ph .no,.homefoot,.status,.terms,.weeks .mono{
  font-family:var(--mono)!important;text-transform:uppercase;letter-spacing:.13em!important;font-weight:400!important;font-size:11px}
.eyebrow{color:var(--dim)}
.eyebrow.gold{color:var(--gold)}
.terms{font-size:12px;color:var(--paper);text-wrap:balance}

/* ---- the masthead: ( Strangeland ) left, pills right ---- */
.bar{height:64px}
.brand{font-family:var(--sans,"Helvetica Neue",Helvetica,Arial,sans-serif);font-weight:700;font-size:17px;letter-spacing:.01em;color:var(--paper);white-space:nowrap}
.pills{display:flex;align-items:center;gap:8px}
.sf,.status{display:inline-flex!important;align-items:center;gap:8px;min-height:32px;padding:0 13px!important;border:1px solid var(--glass-line);border-radius:999px;
  font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--paper);background:rgba(24,22,20,.4);
  transition:border-radius .15s ease-out,border-color .15s ease-out}
.sf::before{content:"";width:6px;height:6px;border-radius:50%;border:1px solid currentColor}
.sf[aria-expanded="true"]::before{background:currentColor}
.sf i{display:none}
.sf:active{border-radius:4px}
.status{color:var(--dim)}

/* ---- the seal: a gold disc with a dark dot, where the reticle was ---- */
.mark .ring{fill:var(--gold);stroke:none}
.mark line{display:none}
.mark .dot{fill:#211f1d}
.mark{width:48px;height:48px}

/* ---- display: bold Helvetica, tight ---- */
.stage h1,.ph h2,.legend h2,.done h2,.answer h2,.about h2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;font-weight:700!important;letter-spacing:-.02em}
.stage h1{font-size:clamp(38px,5.4vw,76px);line-height:.98}

/* ---- buttons: pills. The commit is gold with a dark dot. ---- */
.btn{border-radius:999px!important;min-height:44px;padding:0 22px!important;font-weight:500!important;font-size:15px!important;transition:border-radius .15s ease-out,border-color .15s,background .15s}
.btn:active{border-radius:6px!important}
.btn.primary,.btn.confirm,.btn.pay.open{background:var(--gold)!important;color:#211f1d!important;border:0!important}
.btn.primary::before{content:"";width:7px;height:7px;border-radius:50%;background:#211f1d;flex:none}
.btn.primary:hover{background:#e3c95e!important}
.btn.ghost{border:1px solid var(--glass-line)!important;color:var(--paper);background:rgba(24,22,20,.45)}
.btn.ghost::before{content:"";width:6px;height:6px;border-radius:50%;border:1px solid currentColor;flex:none}
.btn.ghost:has(.ar)::before{display:none}
.btn.confirm .fill{display:none}
.btn.confirm .led{border-color:#211f1d!important;background:#211f1d}
.btn.pay{border:1px solid var(--glass-line)!important;color:var(--dim)}

/* ---- memo head: a glass plate ---- */
.head{background:var(--glass);border:1px solid var(--glass-line)!important;border-radius:var(--radius);padding:16px 20px;margin-bottom:14px;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.to dt{font-size:10px;color:var(--dim)}
.to dd{font-size:15px}
.foot{border-top:1px solid var(--hair)}

/* ---- the paragraphs: each on its own glass plate ---- */
.para .rule{display:none}
.paras.grid{column-gap:12px!important;row-gap:12px;padding-bottom:12px}
.grid .para{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--tile);padding:18px 20px 16px!important;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.grid .lead{padding:20px 22px!important}
.ph .no{color:var(--gold);font-size:11px}
.pbi p,.weeks li{color:var(--bone)}
.weeks li{border-top:1px solid var(--hair)}
.weeks .mono{font-size:10.5px;color:var(--gold)}
.facts{border-top:1px solid var(--hair)}
.facts dt{font-size:10px;color:var(--dim)}
.facts dd{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em}
.more{font-family:var(--mono)!important;text-transform:uppercase;letter-spacing:.12em;font-size:11px!important;font-weight:400!important;color:var(--gold)!important;border-bottom:0!important}
.more:hover{color:#e3c95e!important}
.paras.dim .para:not(.focus){opacity:.62}

.paras.list{gap:8px;border-bottom:0}
.list .para{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--tile);padding:0 16px;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.list .ph{grid-template-columns:26px minmax(0,1fr) 22px}
.list .ph .eyebrow{display:none}
.list .ph h2{grid-column:2}
.list .para.on .chev{border-color:var(--gold)}

/* ---- questions ---- */
.qlist .q b{font-weight:500}
.answer{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--radius);padding:24px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}

/* ---- the confirm flow ---- */
.stages li::before{background:var(--hair)}
.stages li.ok::before{background:var(--sage)}
.stages .bar2{box-shadow:none}
.cal,.msg textarea{background:var(--glass)!important;border:1px solid var(--glass-line)!important;border-radius:var(--tile)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.day.open i{background:var(--gold)}
.day.on,.chip.on{background:var(--gold);color:#211f1d;border-color:var(--gold)}
.chip,.own input{border-radius:999px;border-color:var(--glass-line)}
.person input{border-bottom-color:var(--glass-line)}
.done .stamp{color:var(--gold)}
.about{background:rgba(26,24,22,.94)!important;border:1px solid var(--glass-line)!important;border-radius:var(--radius)!important}

@media (prefers-reduced-motion:reduce){.btn,.sf{transition:none}}

/* phone: the memo head shrinks to the subject, rows keep their height and the list scrolls */
@media (max-width:699px){
  .head{padding:10px 14px;margin-bottom:10px;gap:14px}
  .to > div:first-child{display:none}
  .to dd{font-size:14px}
  .mark{width:34px;height:34px}
  .paras.list{overflow-y:auto;gap:6px;touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none}
  .list .para{flex:0 0 auto;max-height:none}
  .list .ph{padding:13px 0}
  .list .ph h2{font-size:16px}
  .facts dd{font-size:14px}
  .btn{white-space:nowrap;padding:0 16px!important;font-size:14px!important}
  .brand{font-size:15px}
  .sf,.status{padding:0 10px!important;font-size:9.5px!important}
}

/* ---- cleaner (Mike, 10-05: "not a fan of the boxes vibe"): no plates. Sections sit on the
   photograph, divided by hairlines; the type, pills and gold carry it. ---- */
.head,.grid .para,.grid .lead,.list .para,.answer,.cal,.msg textarea{
  background:none!important;border:0!important;border-radius:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}
.head{border-bottom:1px solid var(--hair)!important;padding:4px 0 18px!important;margin-bottom:6px}
.paras.grid{column-gap:48px!important;row-gap:0}
.grid .para{padding:18px 0 16px!important;border-top:1px solid var(--hair)!important}
.grid .lead{padding:20px 0!important;border-top:0!important}
.paras.list{gap:0}
.list .para{padding:0!important;border-top:1px solid var(--hair)!important}
.list .para:first-child{border-top:0!important}
.list .para:last-child{border-bottom:1px solid var(--hair)!important}
.answer{padding:4px 0 0 32px!important;border-left:1px solid var(--hair)!important}
.cal{padding:4px 0!important}
.msg textarea{border-bottom:1px solid var(--glass-line)!important;padding:10px 0!important}
.paras.dim .para:not(.focus){opacity:.7}
@media (max-width:699px){.head{padding:2px 0 12px!important}.answer{padding:0!important;border-left:0!important}}

/* desktop: read at 100% zoom (Mike, 10-05: "text is way too small") */
@media (min-width:1000px){
  .eyebrow,.to dt,.facts dt,.stages li,.cal-dow span,.ph .no,.status,.weeks .mono{font-size:12.5px}
  .to dd{font-size:18px}.to dd.mono{font-size:16px}
  .ph h2{font-size:clamp(22px,1.9vw,28px)!important}
  .grid .lead .ph h2,.list .lead.on .ph h2{font-size:clamp(32px,3vw,44px)!important}
  .list .ph h2{font-size:clamp(20px,1.7vw,26px)!important}
  .pbi p,.grid .lead .pbi p{font-size:19px!important;line-height:1.55}
  .weeks li{font-size:18px}
  .facts dd{font-size:19px}
  .more{font-size:13px!important}
  .qlist .q b{font-size:19px}
  .answer p{font-size:20px!important}
  .answer h2{font-size:clamp(34px,3.2vw,50px)!important}
  .sig{font-size:15px}.sig b{font-size:17px}
  .btn{font-size:16px!important;min-height:48px}
  .terms{font-size:15px}
  .homefoot{font-size:12.5px}
  .legend h2{font-size:clamp(32px,3vw,44px)!important}
  .person input,.msg textarea{font-size:19px}
  .review b{font-size:19px}
  .startnote{font-size:19px}
  .done p{font-size:19px}
  .ahead li{font-size:17px}
  .ydl dd{font-size:17px}
  .about p{font-size:17px}
}
.startnote{margin:0;color:var(--paper);font-size:17px;line-height:1.5;max-width:28em}
.legend .tz{display:none}
/* span the window at 1920 and up (the 1320 cap left dead margins on Mike's screen) */
:root{--max:max(1320px,90vw)}
.para .more{min-height:32px}
.pbi p,.answer p{text-wrap:pretty}

/* desktop: the plan reads like the questions page, an index on the left and the open section on the right */
.pbh{display:none}
.paras.list.split{display:grid;grid-template-columns:minmax(260px,24%) minmax(0,1fr);grid-template-rows:repeat(7,auto) minmax(0,1fr);column-gap:clamp(48px,6vw,128px);align-content:stretch;border-bottom:0;gap:0 clamp(48px,6vw,128px)}
.split .para{display:contents}
.split .ph{grid-column:1;grid-template-columns:34px minmax(0,1fr)!important;align-items:baseline!important;padding:16px 0!important;border-top:1px solid var(--hair);cursor:pointer}
.split .para:first-child .ph{border-top:0}
.split .para:last-child .ph{border-bottom:1px solid var(--hair)}
.split .ph .eyebrow{display:block!important;grid-column:2;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;text-transform:none!important;letter-spacing:-.01em!important;font-size:clamp(17px,1.3vw,21px)!important;font-weight:600!important;color:var(--ash)!important;transition:color .2s}
.split .ph:hover .eyebrow{color:var(--bone)!important}
.split .para.on .ph .eyebrow{color:var(--paper)!important}
.split .ph .no{color:var(--dim)}
.split .para.on .ph .no{color:var(--gold)}
.split .ph h2,.split .ph .chev,.split .ph .peek{display:none!important}
.split .pb{grid-column:2;grid-row:1/-1;display:none;height:auto!important;overflow-y:auto;min-height:0;scrollbar-width:none}
.split .para.on .pb{display:block}
.split .pbi{padding:6px 0 24px!important;gap:22px}
.split .pbh{display:flex;flex-direction:column;gap:14px}
.split .pbh h3{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:800;font-size:clamp(34px,3.1vw,56px);line-height:1.04;letter-spacing:-.025em;color:var(--paper);margin:0;text-wrap:balance}
.split .pbi p{font-size:clamp(18px,1.35vw,22px)!important;line-height:1.55;max-width:44em}
.split .facts{grid-template-columns:repeat(3,auto)!important;gap:22px 64px;padding-top:24px}
.split .facts dd{font-size:clamp(18px,1.4vw,22px);white-space:normal}
.split .weeks li{grid-template-columns:150px minmax(0,1fr);font-size:clamp(17px,1.25vw,20px);padding:12px 0}
.split .weeks .mono{font-size:12.5px}
/* phone and tablet: a plain plus that turns to a minus */
.list .ph .chev{position:relative;width:16px;height:16px;border:0!important;transform:none!important;align-self:center}
.list .para.on .chev{transform:none!important}
.list .ph .chev::before,.list .ph .chev::after{content:"";position:absolute;left:1px;right:1px;top:50%;height:1.5px;margin-top:-.75px;border-radius:1px;background:var(--ash);transition:transform .35s cubic-bezier(.77,0,.175,1),background .2s}
.list .ph .chev::after{transform:rotate(90deg)}
.list .para.on .chev::after{transform:rotate(0deg)}
.list .para.on .chev::before,.list .para.on .chev::after{background:var(--gold)}
/* lists inside answers need a wider label column */
.answer .weeks li{grid-template-columns:132px minmax(0,1fr)}
@media (max-width:700px){.answer .weeks li,.split .weeks li{grid-template-columns:96px minmax(0,1fr)}}
/* hover the name in the footer for the email */
.signame{position:relative;display:inline-flex;cursor:default;outline:0}
.signame .tip{position:absolute;left:0;bottom:calc(100% + 10px);white-space:nowrap;font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;color:var(--paper)!important;background:rgba(24,22,20,.94);border:1px solid var(--glass-line);border-radius:8px;padding:9px 13px;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s,transform .18s;z-index:5}
.signame .tip::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.signame:hover .tip,.signame:focus-within .tip{opacity:1;transform:none;pointer-events:auto}
.split .para{opacity:1!important}
.answer .weeks{max-width:min(100%,78em)}
.about .recent{grid-template-columns:96px minmax(0,1fr)}
@media (max-width:520px){.about .recent{grid-template-columns:minmax(0,1fr);gap:6px}}
.signame .tip{text-decoration:none!important}
