  :root{--paper:#f3ecd8;--ink:#26211a;--muted:#6f6655;--rule:#2b251c;--accent:#8a2b2b;--field:#f7f2e3}
  *{box-sizing:border-box;margin:0;padding:0}
  body{background:#2a261e;font-family:"Old Standard TT",serif;color:var(--ink);min-height:100vh;
    padding:24px 14px 60px;display:flex;justify-content:center}
  a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(138,43,43,.4)}
  a:hover{color:var(--ink);border-bottom-color:var(--ink)}
  input,select,textarea{font-family:"Old Standard TT",serif}
  input::placeholder,textarea::placeholder{color:#9b9078;font-style:italic}
  @keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

  .paper{width:100%;max-width:900px;background:var(--paper);position:relative;padding:30px 34px 34px;
    box-shadow:0 18px 50px rgba(0,0,0,.45);
    background-image:radial-gradient(circle at 20% 10%,rgba(120,100,60,.10),transparent 40%),
                     radial-gradient(circle at 85% 80%,rgba(120,100,60,.10),transparent 40%)}
  .paper::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px rgba(80,60,30,.18)}

  .masthead{text-align:center;padding:12px 0 2px}
  .masthead h1{font-family:"UnifrakturMaguntia",cursive;font-weight:400;font-size:clamp(44px,9.5vw,88px);line-height:.95}
  .dateline{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
    border-top:3px double var(--rule);border-bottom:3px double var(--rule);margin-top:8px;padding:7px 2px;
    font-size:12px;letter-spacing:.08em;text-transform:uppercase}
  .dateline .mid{font-weight:700;letter-spacing:.18em}
  .dateline a{font-weight:700;letter-spacing:.14em}

  .lead{text-align:center;padding:22px 8px 16px}
  .names{font-family:"Pinyon Script",cursive;font-size:clamp(46px,10vw,84px);line-height:.95;margin-bottom:6px}
  .names span{color:var(--accent)}
  .lead h2{font-family:"Playfair Display",serif;font-weight:900;text-transform:uppercase;
    font-size:clamp(48px,3.6vw,30px);line-height:1.1;margin:8px 0 10px}
  .subhead{font-style:italic;font-size:clamp(15px,2.6vw,18px);color:#4a4234;margin:0 auto 14px;max-width:52ch;text-wrap:pretty}


  .hero img{width:100%;display:block;filter:grayscale(1) contrast(1.05);border:1px solid var(--rule);
    aspect-ratio:16/9;object-fit:cover;object-position:center 67%}
  .cap{font-size:10.5px;font-style:italic;color:var(--muted);text-align:center;margin-top:4px}

  .cols{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:18px;border-top:1px solid var(--rule);padding-top:16px}
  .cols > div{padding:0 18px}
  .cols > div:first-child{padding-left:0;border-right:1px solid var(--rule)}
  .cols > div:nth-child(2){border-right:1px solid var(--rule)}
  .cols > div:last-child{padding-right:0}
  .cols h3{font-family:"Playfair Display",serif;font-weight:900;font-size:17px;text-transform:uppercase;margin-bottom:4px}
  .cols .sub{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
  .cols p{font-size:13px;line-height:1.5}

  .locked{position:relative}
  .locked .blur{filter:blur(3.5px);opacity:.55;user-select:none;font-size:13px;line-height:1.5}
  .locked .blur p{margin-bottom:9px}
  .locked .seal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
  .locked .seal span{border:2px double var(--accent);color:var(--accent);font-size:10px;font-weight:700;
    letter-spacing:.18em;text-transform:uppercase;padding:6px 10px;background:rgba(243,236,216,.86);
    text-align:center;line-height:1.5}
  .locked.tilt-l .seal span{transform:rotate(-3deg)}
  .locked.tilt-r .seal span{transform:rotate(2deg)}

  .countdown{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:14px;padding:10px 0;text-align:center}
  .countdown .lbl{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
  .countdown .row{display:flex;justify-content:center;gap:14px}
  .countdown b{display:block;font-family:"Playfair Display",serif;font-weight:900;font-size:30px;line-height:1}
  .countdown small{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
  .countdown .to{font-size:10.5px;font-style:italic;color:var(--muted);margin-top:7px}

  .weather{border:1px solid var(--rule);padding:10px 12px;text-align:center;background:rgba(120,100,60,.05);margin-top:14px}
  .weather .h{font-size:10px;letter-spacing:.24em;text-transform:uppercase;font-weight:700;
    border-bottom:1px solid var(--rule);padding-bottom:5px;margin-bottom:7px}
  .weather .main{display:flex;align-items:center;justify-content:center;gap:10px}
  .weather .icon{font-size:24px;line-height:1;filter:grayscale(1)}
  .weather .temp{font-family:"Playfair Display",serif;font-weight:900;font-size:22px}
  .weather .odds{font-size:11.5px;font-style:italic;color:var(--muted);margin-top:6px}

  .stayimg img{width:100%;display:block;filter:grayscale(1) contrast(1.05);border:1px solid var(--rule);
    aspect-ratio:4/3;object-fit:cover}

  .notice{border:1px solid var(--rule);margin-top:20px;padding:12px 16px;background:rgba(120,100,60,.05);
    display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
  .notice .t{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:700;white-space:nowrap}
  .notice p{font-size:14px;line-height:1.5;font-style:italic;color:#4a4234;flex:1;min-width:260px;text-wrap:pretty}

  .cut{display:flex;align-items:center;gap:14px;margin-top:26px}
  .cut i{flex:1;border-top:1px dashed var(--rule)}
  .cut span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

  .coupon{border:2px dashed var(--rule);padding:20px 22px 22px;margin-top:14px;background:rgba(236,226,200,.6)}
  .coupon-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;
    border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:14px}
  .coupon-head h3{font-family:"Playfair Display",serif;font-weight:900;font-size:clamp(20px,3.4vw,26px);text-transform:uppercase}
  .coupon-head .due{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}
  form{display:grid;gap:18px}
  .step{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
  .step-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
  .step-row .why{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:700}
  .guests{display:grid;gap:8px}
  .guest{display:flex;gap:8px;align-items:center}
  .guest .n{font-family:"Playfair Display",serif;font-weight:700;font-size:14px;width:18px;color:var(--muted)}
  input[type=text],textarea{background:var(--field);border:1px solid var(--rule);padding:10px 12px;
    font-size:15px;color:var(--ink);width:100%;min-height:44px}
  textarea{resize:vertical;min-height:72px}
  .guest .rm{min-width:44px;min-height:44px;background:none;border:1px solid rgba(43,37,28,.35);
    color:var(--muted);font-size:16px;cursor:pointer}
  .hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
  .choices{display:flex;gap:10px;flex-wrap:wrap}
  .choice{flex:1;min-width:120px;min-height:48px;border:1px solid var(--rule);background:transparent;color:var(--ink);
    font-family:"Old Standard TT",serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
  .choice[aria-pressed=true]{background:var(--ink);color:var(--paper)}
  .hint{font-size:13px;font-style:italic;color:var(--muted);margin-top:8px}
  .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  label.f{display:grid;gap:6px}
  label.f > span{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  .submit-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
    border-top:1px solid rgba(43,37,28,.35);padding-top:14px}
  .submit-row .note{font-size:11.5px;font-style:italic;color:var(--muted);max-width:44ch}
  .submit-row .note.err{color:var(--accent);font-style:normal;font-weight:700}
  .send{background:var(--ink);color:var(--paper);border:none;padding:14px 26px;min-height:48px;
    font-family:"Old Standard TT",serif;font-size:13px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
  .send:hover{opacity:.85}
  .thanks{text-align:center;padding:26px 10px;animation:fadeUp .5s ease}
  .thanks .big{font-family:"Pinyon Script",cursive;font-size:40px;color:var(--accent);line-height:1.1}
  .thanks p{font-size:14px;margin-top:8px;font-style:italic;color:#4a4234}
  .thanks button{margin-top:16px;background:none;border:none;border-bottom:1px solid var(--accent);
    color:var(--accent);font-family:"Old Standard TT",serif;font-size:12px;letter-spacing:.14em;
    text-transform:uppercase;cursor:pointer;padding-bottom:2px}

  .wordsearch{margin-top:22px;padding-top:18px;border-top:1px solid rgba(43,37,28,.35)}
  .ws-title{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
  .ws-hint{font-size:11.5px;font-style:italic;color:var(--muted);margin-bottom:12px}
  .ws-grid{display:inline-grid;grid-template-columns:repeat(10,30px);grid-template-rows:repeat(10,30px);
    gap:2px;background:var(--rule);padding:2px;border:1px solid var(--rule);touch-action:none}
  .ws-cell{display:flex;align-items:center;justify-content:center;background:var(--field);
    font-family:"Playfair Display",serif;font-weight:700;font-size:13px;color:var(--ink);
    cursor:pointer;user-select:none}
  .ws-cell.sel{background:var(--accent);color:var(--paper)}
  .ws-cell.found{background:var(--ink);color:var(--paper)}
  .ws-words{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:14px;
    font-size:12px;letter-spacing:.08em;text-transform:uppercase}
  .ws-words span.found{text-decoration:line-through;color:var(--muted)}
  .ws-done{margin-top:14px;font-style:italic;color:var(--accent)}

  @media (max-width:680px){
    body{padding:14px 10px 40px}
    .paper{padding:22px 18px 24px}
    .cols{grid-template-columns:1fr}
    .cols > div{padding:16px 0;border-right:none!important;border-top:1px solid var(--rule)}
    .cols > div:first-child{border-top:none;padding-top:0}
    .pair{grid-template-columns:1fr}
    .coupon{padding:16px 14px 18px}
    .ws-grid{grid-template-columns:repeat(10,26px);grid-template-rows:repeat(10,26px)}
  }
