:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#183f36;background:#f5f4eb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bd8e31;outline-offset:4px}header{max-width:940px;margin:auto;padding:26px 24px;display:flex;align-items:center;justify-content:space-between}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;font-weight:750;font-size:21px}.brand-icon{display:grid;place-items:center;background:#1e5146;color:#f6e5b0;border-radius:11px;width:37px;height:37px;font-size:32px}.header-note{font-size:11px;color:#74877d}main{max-width:520px;margin:auto;padding:0 24px 165px}.hero{position:relative;text-align:center;padding:30px 0 0;overflow:hidden}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650}.eyebrow span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#bc9251;margin-right:7px;vertical-align:middle}h1{font-size:49px;letter-spacing:-2px;line-height:1.23;margin:24px 0 17px;font-weight:780}h1 span{color:#ad864b}.intro{font-size:14px;line-height:1.9;color:#6f8075;margin:0}.landscape{height:156px;position:relative;overflow:hidden;margin:2px -24px 0;isolation:isolate}.sun{width:54px;height:54px;background:#e8c680;border-radius:50%;position:absolute;left:24%;top:29px}.hill{position:absolute;width:90%;height:115px;transform:rotate(-8deg);border-radius:50% 70% 0 0;top:69px;left:-23%;background:#b4c4a6}.hill.front{background:#779780;left:48%;top:76px;transform:rotate(10deg)}.water{position:absolute;bottom:0;height:48px;width:100%;background:#d9e2ce;transform:skewY(-2deg)}.ripple{position:absolute;border:1px solid #8ca895;border-radius:50%;height:9px;width:100px;bottom:19px;left:48%}.ripple.two{width:56px;left:52%;bottom:23px}.float{position:absolute;height:28px;width:4px;background:linear-gradient(#b76c42 45%,#faf8e9 45%);bottom:28px;left:58%;border-radius:3px;transform:rotate(8deg)}.landscape-label{position:absolute;font-size:7px;letter-spacing:3px;bottom:16px;left:24px;color:#4f7260}.gift{position:relative;background:#fffdf7;border:1px solid #e6e4d4;padding:25px 27px 16px;border-radius:20px;box-shadow:0 14px 42px #314a2f09;margin-top:-3px}.gift-top{display:flex;align-items:center;justify-content:space-between}.pill{font-size:11px;color:#8b6839;background:#f3ead5;padding:6px 10px;border-radius:20px}.gift-note{font-size:10px;color:#92917f}.gift h2{display:flex;justify-content:center;gap:12px;align-items:center;margin:12px 0 3px}.gift h2 strong{font-size:96px;letter-spacing:-6px;font-weight:500;line-height:1.12}.gift h2>span{font-size:25px;line-height:1.25}.gift h2 small{font-size:11px;letter-spacing:1px;color:#9b927b;font-weight:400}.gift-description{text-align:center;color:#7c7e6c;font-size:12px;line-height:1.8}.ticket-divider{border-top:1px dashed #d9dbc9;margin:23px -27px 20px}.gift label{font-size:10px;color:#8a8e7b;letter-spacing:2px}.code-row{display:flex;align-items:center;gap:8px;margin-top:7px}.code-row input{font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:2px;font-size:25px;font-weight:650;width:100%;min-width:0;border:0;background:transparent;color:#204c3e;padding:7px 0}.code-row button{flex-shrink:0;border:1px solid #d8dfcf;color:#29513f;background:transparent;border-radius:8px;padding:9px 10px;font-size:11px}#status{font-size:10px;line-height:1.6;color:#838c7b;margin:8px 0 0;min-height:16px}#status.error{color:#a24636}.features{display:flex;justify-content:space-between;text-align:center;padding:29px 5px 26px;border-bottom:1px solid #e0e2d5}.features>div{flex:1}.features span{display:block;font-size:26px;color:#567b61;margin-bottom:9px}.features strong{font-size:13px}.features p{font-size:10px;color:#879082;margin:7px 0}.steps{padding-top:25px}.steps .eyebrow{color:#9b987e;font-size:9px}h2{font-size:22px}.steps h2{margin:12px 0 24px}.steps ol{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:15px;margin:0 0 23px}.steps li>span{font-family:Georgia,serif;color:#ad9b76;font-size:21px;line-height:1.25}.steps li strong{font-size:13px;font-weight:600}.steps li p{font-size:11px;color:#808b7c;line-height:1.65;margin:5px 0 0}.rules{padding:18px;border:1px solid #e1e2d5;border-radius:12px;color:#85907f}.rules h2{font-size:11px;color:#65795e;margin:0 0 8px}.rules p{font-size:10px;line-height:1.9;margin:8px 0 0}footer{text-align:center;color:#8b9485;font-size:10px;padding-top:22px;line-height:1.7}footer a{text-decoration:none}.copyright{font-size:9px;margin-top:15px}.download-bar{position:fixed;bottom:0;left:0;right:0;z-index:5;background:#f5f4ebf5;border-top:1px solid #e1e2d5;padding:13px 24px max(13px,env(safe-area-inset-bottom));backdrop-filter:blur(10px);text-align:center}.download-bar button{display:block;max-width:472px;width:100%;margin:auto;background:#204e40;color:#fffef0;border:0;border-radius:12px;padding:16px;font-size:15px;letter-spacing:1px;font-weight:600}.download-bar p{font-size:10px;margin:8px 0 0;color:#7c8a74}.download-bar a{font-size:10px;display:inline-block;margin-top:6px}.download-bar a[hidden]{display:none}dialog{border:0;border-radius:20px;width:min(90%,380px);padding:28px;background:#fffcf2;color:#234b3f;box-shadow:0 20px 90px #0003}dialog::backdrop{background:#112b22aa}dialog p{font-size:14px;line-height:1.8;color:#6a7d6d}dialog h2{font-size:23px}#close-help{position:absolute;right:15px;top:10px;border:0;background:none;font-size:27px;color:#6a7d6d}.help-arrow{font-size:40px;display:block;text-align:right;margin-right:22px;color:#b4985c}#got-it{background:#204e40;color:white;width:100%;border:0;padding:13px;border-radius:9px}.no-script{position:fixed;top:0;background:#fff4dc;padding:20px;width:100%;z-index:10}@media(min-width:760px){header{padding-top:35px}.hero{padding-top:18px}h1{font-size:55px}.landscape{height:167px}.gift{padding-left:35px;padding-right:35px}.ticket-divider{margin-left:-35px;margin-right:-35px}}@media(max-width:359px){main{padding-left:18px;padding-right:18px}h1{font-size:43px}.gift{padding-left:19px;padding-right:19px}.ticket-divider{margin-left:-19px;margin-right:-19px}.code-row input{font-size:22px;letter-spacing:1px}.header-note{font-size:9px}}

/* Mobile-first refinements: keep the invitation closer to the first viewport. */
@media (max-width: 759px) {
  header { padding: 14px 20px; }
  main { padding-right: 20px; padding-left: 20px; padding-bottom: calc(190px + env(safe-area-inset-bottom)); }
  .hero { padding-top: 5px; }
  .hero .eyebrow { margin: 9px 0; }
  h1 { font-size: 38px; line-height: 1.18; margin: 13px 0 10px; }
  .intro { font-size: 14px; line-height: 1.65; }
  .landscape { height: 72px; margin-top: 0; }
  .sun { width: 32px; height: 32px; top: 7px; }
  .hill { top: 32px; }
  .hill.front { top: 40px; }
  .water { height: 25px; }
  .ripple.one { bottom: 8px; }
  .ripple.two { bottom: 12px; }
  .float { bottom: 17px; height: 23px; }
  .landscape-label { display: none; }
  .gift { padding: 18px 20px 16px; }
  .gift h2 { margin-top: 8px; }
  .gift h2 strong { font-size: 76px; }
  .gift-description { font-size: 14px; line-height: 1.65; margin: 10px 0; }
  .ticket-divider { margin: 16px -20px 14px; }
  .gift label, .gift-note, .gift h2 small, .pill { font-size: 12px; }
  .gift label { letter-spacing: 1px; }
  .code-row { gap: 8px; }
  .code-row input { font-size: 23px; letter-spacing: 1px; }
  .code-row button { min-height: 44px; padding: 10px; font-size: 13px; }
  #status { font-size: 12px; line-height: 1.6; }
  .features { padding: 24px 0; }
  .features strong, .steps li strong { font-size: 15px; }
  .features p, .steps li p, .rules p { font-size: 13px; line-height: 1.8; }
  .steps .eyebrow, .rules h2 { font-size: 12px; }
  .rules { color: #626f5c; }
  .steps li p, .features p { color: #687760; }
  .download-bar { padding-right: 20px; padding-left: 20px; }
  .download-bar button { min-height: 50px; }
  .download-bar p, .download-bar a { font-size: 12px; line-height: 1.5; }
  .download-bar a { padding: 8px; }
  footer { font-size: 12px; }
  .copyright { font-size: 11px; }
  #close-help { min-width: 44px; min-height: 44px; }
  dialog { max-height: calc(100dvh - 40px); overflow-y: auto; }
}
@media (max-width: 359px) {
  main { padding-left: 16px; padding-right: 16px; }
  .header-note { display: none; }
  h1 { font-size: 34px; }
  .gift { padding-left: 16px; padding-right: 16px; }
  .ticket-divider { margin-left: -16px; margin-right: -16px; }
  .code-row { flex-wrap: wrap; }
  .code-row input { flex: 1 1 100%; text-align: center; font-size: 27px; }
  .code-row button { width: 100%; }
}
@media (max-width: 759px) and (max-height: 700px) {
  .hero .intro, .landscape { display: none; }
  .hero { padding-bottom: 14px; }
}
