:root{
  --pine:#173327;
  --moss:#3d6b52;
  --paper:#f3ede0;
  --paper-dark:#e8dfc8;
  --gold:#c9a227;
  --clay:#b5563a;
  --ink:#16201a;
}

*{ box-sizing:border-box; }

body{
  margin:0;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,0.04), transparent 40%),
    repeating-radial-gradient(circle at 50% 50%, transparent 0, transparent 38px, rgba(255,255,255,0.035) 39px, transparent 40px),
    var(--pine);
  font-family:'Inter', sans-serif;
  padding:24px;
}

.card{
  position:relative;
  width:420px;
  max-width:100%;
  background:var(--paper);
  border:2px solid var(--ink);
  border-radius:6px;
  padding:38px 34px 32px;
  transform:rotate(-0.6deg);
  box-shadow:
    0 1px 0 rgba(0,0,0,0.4),
    10px 14px 0 rgba(0,0,0,0.28);
  overflow:hidden;
}

.card::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px dashed rgba(22,32,26,0.35);
  border-radius:3px;
  pointer-events:none;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  letter-spacing:3px;
  font-weight:600;
  color:var(--moss);
  text-transform:uppercase;
  margin-bottom:18px;
}

.eyebrow::before{
  content:"";
  width:16px;
  height:1px;
  background:var(--moss);
}

h1{
  font-family:'Zilla Slab', serif;
  font-weight:700;
  font-size:34px;
  line-height:1.12;
  color:var(--ink);
  margin:0 0 14px;
}

h1 span{
  color:var(--clay);
  font-style:italic;
}

p.lead{
  font-size:15px;
  line-height:1.55;
  color:#3a3a32;
  margin:0 0 26px;
  max-width:34ch;
}

.trail{
  height:64px;
  margin:0 0 26px;
}

.trail path{
  fill:none;
  stroke:var(--moss);
  stroke-width:2;
  stroke-dasharray:4 7;
  stroke-linecap:round;
  stroke-dashoffset:400;
  animation:draw 2.2s ease-out forwards .3s;
}

@keyframes draw{ to{ stroke-dashoffset:0; } }

.details{
  display:flex;
  align-items:flex-start;
  gap:22px;
  margin-bottom:30px;
  font-size:13px;
  color:var(--ink);
}

.details div{
  display:flex;
  flex-direction:column;
  gap:3px;
  flex:1;
  min-width:0;
}

.details span.label{
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-size:10px;
  color:var(--moss);
  font-weight:600;
}

.details ul{
  list-style:none;
  margin:2px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.details ul li{
  position:relative;
  padding-left:12px;
  line-height:1.35;
}

.details ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--clay);
}

.actions{
  display:flex;
  align-items:center;
  gap:14px;
  position:relative;
  min-height:52px;
}

button{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:14px;
  cursor:pointer;
  border-radius:3px;
  border:2px solid var(--ink);
  padding:13px 22px;
  transition:transform .15s ease, background .15s ease;
}

#yes{
  background:var(--clay);
  color:var(--paper);
}
#yes:hover{ transform:translateY(-2px); }
#yes:active{ transform:translateY(0); }

#no{
  background:transparent;
  color:var(--ink);
  position:relative;
}

#no.dodging{
  position:absolute;
}

.footnote{
  margin-top:22px;
  font-size:11px;
  color:#6b6b5c;
  letter-spacing:.3px;
}

/* confirmation state */
.confirm{
  display:none;
  text-align:center;
  padding:10px 0 4px;
}

.confirm.show{ display:block; animation:fadeUp .5s ease; }

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(8px); }
  to{ opacity:1; transform:translateY(0); }
}

.compass{
  width:54px;
  height:54px;
  margin:0 auto 16px;
}

.compass .needle{
  transform-origin:50% 50%;
  animation:spin 1.4s cubic-bezier(.2,.8,.2,1) forwards;
}

@keyframes spin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(760deg); }
}

.confirm h2{
  font-family:'Zilla Slab', serif;
  font-size:24px;
  color:var(--ink);
  margin:0 0 8px;
}

.confirm p{
  font-size:14px;
  color:#3a3a32;
  margin:0;
}

.hidden{ display:none !important; }