/* The Open Door — night direction. One family (Caudex), one accent (dry rose). */
:root{
  --night:#232733; --card:#262b38; --panel:#2b303f; --hairline:#3c4254; --line:#565d70;
  --parchment:#e8e2d4; --rose:#c99a86; --rose-lit:#dbb2a0;
  --dusk:#9b95a4;        /* text: passes AA on night, card, and panel */
  --dusk-ink:#8b8496;    /* non-text only: borders, muted marks */
  --body:#b8b2a4;
}
body{margin:0;background:var(--night);font-family:'Caudex',serif;color:var(--parchment);}
a{color:var(--rose);}a:hover{color:var(--rose-lit);}
h1,h2{font-weight:400;margin:0;}
:focus-visible{outline:2px solid var(--rose);outline-offset:2px;}
input::placeholder{color:var(--dusk);font-style:italic;}
input{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:12px 14px;font-family:'Caudex',serif;font-size:16px;color:var(--parchment);width:100%;box-sizing:border-box;}
input[aria-invalid="true"]{border-color:var(--rose);}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:11px;letter-spacing:0.14em;color:var(--dusk);}
.wrap{max-width:760px;margin:0 auto;padding:56px 32px 72px;position:relative;}
.row{display:grid;grid-template-columns:104px 1fr;gap:0 30px;}
.margin-col{display:flex;flex-direction:column;gap:28px;align-items:flex-end;text-align:right;}
.note{font-style:italic;font-size:11.5px;line-height:1.55;color:var(--dusk);}
.label{font-size:11px;letter-spacing:0.18em;color:var(--rose);margin-bottom:14px;}
.caps{font-size:11px;letter-spacing:0.14em;color:var(--dusk);}
.card{background:var(--card);border:1px solid var(--hairline);border-radius:4px;}
.card.muted{border-style:dashed;border-color:var(--dusk-ink);background:transparent;}
.intent{flex:1;padding:12px;border-radius:2px;font-family:'Caudex',serif;font-size:11px;letter-spacing:0.12em;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--dusk);text-align:center;}
.intent[aria-pressed="true"]{background:var(--rose);color:var(--night);border-color:var(--rose);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.submit{background:var(--rose);border:none;border-radius:2px;padding:14px 20px;font-family:'Caudex',serif;font-size:11px;letter-spacing:0.14em;color:var(--night);cursor:pointer;white-space:nowrap;}
.submit:hover{background:var(--rose-lit);}
.submit[disabled]{opacity:.7;cursor:default;}
.masthead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rose);padding-bottom:14px;margin-bottom:52px;}
.masthead .word{font-size:19px;color:var(--parchment);text-decoration:none;}
.masthead a.word:hover{color:var(--rose);}
.asterism{text-align:center;font-size:14px;color:var(--rose);margin:44px 0;}
.welcome{font-style:italic;font-size:44px;line-height:1.1;margin:0 0 26px;color:var(--rose);}
.title{font-size:34px;line-height:1.15;margin:0 0 18px;color:var(--parchment);}
.body{font-size:16.5px;line-height:1.75;margin:0 0 16px;}
.small{font-size:15px;line-height:1.7;margin:0 0 10px;}
.sig{font-style:italic;font-size:15px;margin:0;color:var(--dusk);}
.door-card{padding:22px 26px;display:block;text-decoration:none;color:inherit;}
.door-card:hover{border-color:var(--line);color:inherit;}
.door-card:hover .stamp{color:var(--rose-lit);}
.leader-row{display:flex;align-items:baseline;gap:10px;}
.leader{flex:1;min-width:24px;border-bottom:1px dotted var(--line);}
.stamp{font-size:11px;letter-spacing:0.16em;color:var(--rose);white-space:nowrap;}
.doorlist{display:flex;flex-direction:column;gap:12px;}
.placeholder{color:var(--dusk);font-style:italic;}
.photo{background:var(--panel);border:1px dashed var(--line);border-radius:4px;padding:38px 20px;text-align:center;}
.carry{border-left:2px solid var(--rose);padding:4px 0 4px 18px;margin:0;}
.hint{font-size:13px;font-style:italic;margin:12px 0 0;color:var(--rose);}
.hint[hidden]{display:none;}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:4px;cursor:pointer;}
.consent[hidden]{display:none;}
.consent input{width:16px;height:16px;margin:2px 0 0;accent-color:var(--rose);flex-shrink:0;}
.consent span{font-size:12px;line-height:1.6;color:var(--dusk);}
.submit-row{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin-top:20px;}
.confirm{display:flex;flex-direction:column;align-items:flex-start;gap:14px;outline:none;}
.confirm[hidden]{display:none;}
.footer{border-top:1px solid var(--hairline);margin-top:44px;padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.footer .tag{font-size:10px;letter-spacing:0.2em;color:var(--dusk);}
.footer a{display:inline-block;padding:8px 0;text-decoration:none;}
#list{scroll-margin-top:24px;}
@media (max-width:760px){
  .row{grid-template-columns:1fr;}
  .margin-col{display:none;}
  .grid2{grid-template-columns:1fr;}
  .leader-row{flex-wrap:wrap;}
  .leader-row .leader{display:none;}
}
@media (max-width:640px){
  .wrap{padding:36px 20px 56px;}
  .welcome{font-size:38px;}
  .title{font-size:30px;}
  .intent-row{flex-direction:column;}
  .intent{font-size:12px;}
  .submit-row{flex-direction:column-reverse;align-items:stretch;}
  .submit{width:100%;}
}
