:root{
  --lacquer:#140d12;
  --spindle:#1c1418;
  --vow:#26181e;
  --bone:#f4ece0;
  --plait:#e4d6c4;
  --dusk:#9a8d82;
  --gilt:#c4a06a;
  --oxblood:#b54a38;
  --knot:#6b3a32;
  --gate:#3d2a28;
  --space:8px;
  --measure:66ch;
  --court:"Courtface",Georgia,serif;
  --plaitface:"Plaitface",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:auto;background:var(--lacquer);color:var(--bone)}
html,body{margin:0;min-height:100%}
body{
  font-family:var(--plaitface);
  font-weight:400;
  font-size:16px;
  line-height:1.55;
  background:var(--lacquer);
  color:var(--bone);
  -webkit-font-smoothing:antialiased;
}
img,video,canvas{display:block;max-width:100%}
a{color:var(--bone);text-underline-offset:3px}
a:hover{color:var(--gilt)}
:focus-visible{outline:2px solid var(--gilt);outline-offset:3px}
.vow-skip{
  position:absolute;left:-999px;top:0;
}
.vow-skip:focus{left:var(--space);top:var(--space);z-index:40;background:var(--lacquer);padding:12px 16px}
.vow-mast{
  display:flex;align-items:center;gap:16px;
  padding:16px 24px;
  position:relative;
  z-index:5;
}
.vow-word{
  font-family:var(--court);
  font-weight:600;
  font-size:22px;
  letter-spacing:-0.03em;
  text-decoration:none;
  color:var(--bone);
  line-height:1;
  display:inline-flex;align-items:center;
  min-height:44px;
}
.vow-routes{
  display:flex;flex-wrap:wrap;gap:8px 16px;
  font-size:13px;font-weight:500;
  letter-spacing:0.04em;
}
.vow-routes a{text-decoration:none;color:var(--plait);min-height:44px;display:inline-flex;align-items:center}
.vow-routes a[aria-current="page"]{color:var(--gilt)}
.vow-slots{margin-left:auto;display:flex;gap:12px;min-height:0}
[data-slot="ca"]:empty,
[data-contract-foundry-social="x"]:empty{display:none}
.vow-slots:not(:has(:not(:empty))){display:none}
.vow-burger{
  display:none;margin-left:auto;
  min-width:44px;min-height:44px;
  background:transparent;border:1px solid var(--gate);color:var(--bone);
}
.vow-film{
  position:relative;
  min-height:100dvh;
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  align-items:stretch;
}
.vow-bg,.vow-poster,.vow-gl{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.vow-gl{pointer-events:none}
.vow-poster{display:none}
.vow-claim,.vow-plate{
  position:relative;z-index:2;
  padding:48px 32px 64px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.vow-claim{
  max-width:28rem;
  justify-content:center;
  align-self:center;
  margin:32px;
  background:var(--lacquer);
  border:1px solid var(--gate);
}
.vow-kicker{
  font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--gilt);margin:0 0 12px;font-weight:500;
}
.vow-claim h1{
  font-family:var(--court);
  font-weight:500;
  font-size:clamp(40px,6vw,72px);
  letter-spacing:-0.035em;
  line-height:1.04;
  margin:0 0 16px;
  text-wrap:balance;
}
.vow-dek{margin:0;color:var(--plait);max-width:42ch}
.vow-plate{
  background:color-mix(in oklab, var(--lacquer) 72%, transparent);
  border-left:1px solid color-mix(in oklab, var(--gilt) 28%, transparent);
  justify-content:center;
}
.vow-toy{
  background:var(--spindle);
  border:1px solid var(--gate);
  padding:24px;
}
.vow-toy h2{
  font-family:var(--court);font-weight:500;font-size:28px;
  letter-spacing:-0.02em;line-height:1.1;margin:0 0 8px;
}
.vow-toy p{margin:0 0 16px;color:var(--plait)}
.vow-readout{
  min-height:4.5rem;
  padding:16px;
  background:var(--vow);
  border:1px solid var(--gate);
  font-variant-numeric:tabular-nums;
  margin-bottom:16px;
}
.vow-acts{display:flex;flex-wrap:wrap;gap:8px}
.vow-acts button{
  min-height:44px;min-width:44px;
  padding:10px 16px;
  font-family:var(--plaitface);font-weight:500;font-size:13px;
  border:1px solid var(--gate);background:var(--vow);color:var(--bone);
  cursor:pointer;
}
.vow-acts button:hover{border-color:var(--gilt)}
.vow-acts button.is-bind{
  background:var(--oxblood);border-color:var(--oxblood);color:var(--bone);
}
.vow-acts button:disabled{opacity:.45;cursor:not-allowed}
.vow-figs{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;margin-top:24px;
}
.vow-figs b{
  display:block;font-size:28px;font-weight:500;
  font-variant-numeric:tabular-nums;letter-spacing:-0.03em;
  font-family:var(--court);
}
.vow-figs span{display:block;margin-top:4px;color:var(--dusk);font-size:12px;letter-spacing:0.06em}
.vow-sheet{
  padding:64px 24px;
  max-width:920px;margin:0 auto;
}
.vow-sheet h2{
  font-family:var(--court);font-weight:500;font-size:32px;
  letter-spacing:-0.02em;line-height:1.12;margin:0 0 16px;
}
.vow-sheet p,.vow-prose p{max-width:var(--measure)}
.vow-acts-copy{display:grid;gap:24px;margin:32px 0}
.vow-acts-copy h3{
  font-family:var(--court);font-weight:500;font-size:22px;margin:0 0 8px;
}
.vow-q details{
  border-top:1px solid var(--gate);padding:16px 0;
}
.vow-q summary{
  cursor:pointer;font-weight:500;min-height:44px;display:flex;align-items:center;
}
.vow-door{
  margin:48px 0 0;
  padding:32px;
  background:var(--spindle);
  border:1px solid var(--gate);
}
.vow-door a{
  display:inline-flex;align-items:center;min-height:44px;
  padding:10px 18px;margin-top:12px;
  background:var(--oxblood);color:var(--bone);text-decoration:none;font-weight:500;
}
.vow-colophon{
  padding:24px;
  border-top:1px solid var(--gate);
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;
  color:var(--dusk);font-size:14px;
}
.vow-colophon p{margin:0;max-width:none}
.vow-prose{
  padding:48px 24px 80px;
  max-width:760px;margin:0 auto;
}
.vow-prose h1{
  font-family:var(--court);font-weight:500;
  font-size:clamp(32px,5vw,52px);
  letter-spacing:-0.03em;line-height:1.08;margin:0 0 16px;
}
.vow-prose h2{
  font-family:var(--court);font-weight:500;font-size:28px;
  letter-spacing:-0.02em;margin:40px 0 12px;
}
.vow-prose h3{font-size:16px;font-weight:500;margin:24px 0 8px}
.vow-seq{display:flex;gap:16px;margin:32px 0;font-size:14px}
.vow-desk{padding:32px 24px 80px;max-width:1100px;margin:0 auto}
.vow-desk h1{
  font-family:var(--court);font-weight:500;font-size:40px;
  letter-spacing:-0.03em;margin:0 0 12px;
}
.vow-scroll{overflow-x:auto;margin:24px 0;border:1px solid var(--gate)}
table.vow-grid{
  width:100%;border-collapse:collapse;min-width:640px;
  font-size:14px;
}
table.vow-grid th,table.vow-grid td{
  text-align:left;padding:12px 16px;border-bottom:1px solid var(--gate);
  vertical-align:top;
}
table.vow-grid th{
  font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--dusk);font-weight:500;
}
table.vow-grid td.num,table.vow-grid th.num{
  font-variant-numeric:tabular-nums;text-align:right;
}
.vow-frame{margin-top:40px}
.vow-wallet{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:16px 0 32px;
}
.vow-wallet button{
  min-height:44px;padding:10px 16px;
  background:var(--oxblood);border:0;color:var(--bone);
  font-family:var(--plaitface);font-weight:500;cursor:pointer;
}
.vow-gone{
  min-height:100dvh;display:grid;place-items:end start;
  background:var(--lacquer) center/cover no-repeat;
  padding:48px 24px;
}
.vow-gone h1{font-family:var(--court);font-weight:500;font-size:40px;margin:0 0 12px}
@media (max-width:860px){
  .vow-film{grid-template-columns:1fr;min-height:0}
  .vow-bg,.vow-poster{position:relative;height:56vw;min-height:220px;max-height:360px}
  .vow-gl{display:none}
  .vow-claim,.vow-plate{padding:24px 16px 32px}
  .vow-figs{grid-template-columns:1fr}
  .vow-burger{display:none}
  .vow-routes{display:flex;position:static;flex-wrap:wrap;padding:0}
  .vow-mast{flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){
  .vow-bg{display:none}
  .vow-poster{display:block}
  .vow-gl{display:none}
}
@media print{
  .vow-mast,.vow-skip,.vow-colophon,.vow-burger{display:none !important}
}
