body{font-family:"Poppins","DM Sans",sans-serif}
.event-tab{margin-left:auto;margin-right:26px;padding:9px 15px;border:2px solid var(--ink);border-radius:999px;background:#8dcfd1;color:var(--ink);font-size:12px;font-weight:800;letter-spacing:.08em;text-decoration:none;box-shadow:2px 3px 0 var(--ink)}
.event-tab:hover{transform:translate(1px,1px);box-shadow:1px 2px 0 var(--ink)}
.hero h1 em{font-family:"Poppins","DM Sans",sans-serif;letter-spacing:-.025em}
.token img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.token svg{display:none}
.step-card{overflow:hidden}
.step-card.keep{background:#ffd9d7}
.step-card.pass{background:#8dcfd1}
.step-reveal{position:relative;inset:auto;display:flex;max-height:0;min-height:0;align-items:center;margin-top:auto;padding:0 18px;border-radius:18px;overflow:hidden;font-size:17px;font-weight:800;opacity:0;transform:none;transition:max-height .3s ease,padding .3s ease,margin .3s ease,opacity .2s ease}
.receive .step-reveal{background:#8dcfd1;color:var(--ink)}
.keep .step-reveal{background:#fff;color:var(--ink)}
.pass .step-reveal{background:var(--pink);color:var(--ink)}
.steps .step-card>p{padding-bottom:28px}
.step-card:hover .step-reveal,.step-card:focus .step-reveal,.step-card:focus-visible .step-reveal{max-height:120px;min-height:0;margin:22px -32px -32px;padding:22px 26px;opacity:1;transform:none}
.step-card.is-open .step-reveal{max-height:120px;min-height:0;margin:22px -32px -32px;padding:22px 26px;opacity:1;transform:none}
.asterisk{position:absolute;right:20px;bottom:14px;font-size:11px;font-weight:700;opacity:.72}
.pass:hover .asterisk,.pass:focus .asterisk{opacity:0}
button{font-family:"Poppins","DM Sans",sans-serif}
.copy{background:#8dcfd1}
.shuffle span{transform:rotate(var(--spin,0deg));transition:transform .4s ease}
.shuffle:hover span{transform:rotate(var(--spin,0deg))}
.message-card{position:relative;padding-bottom:52px}
.card-url{position:absolute;left:25px;bottom:15px;color:var(--ink);font-size:10px;font-weight:600;letter-spacing:.03em;opacity:.16}
.customize{margin:14px 0 2px;padding:8px 0;color:var(--orange-dark);text-decoration:underline;text-underline-offset:4px}
.custom-fields{display:grid;gap:8px;margin:15px 0 3px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--blush)}
.custom-fields label{font-size:12px;font-weight:700}.custom-fields label span{font-weight:400}
.custom-fields textarea,.custom-fields input{width:100%;padding:11px 12px;border:2px solid var(--ink);border-radius:12px;background:#fff;color:var(--ink);font:500 15px/1.5 "Poppins",sans-serif}
.custom-fields textarea{resize:vertical}
dialog{width:min(620px,calc(100% - 32px));padding:42px;border:3px solid var(--ink);border-radius:28px;background:#fff;color:var(--ink);box-shadow:10px 12px 0 var(--ink)}
dialog::backdrop{background:rgba(86,41,35,.72);backdrop-filter:blur(4px)}
dialog h2{margin:0 45px 25px 0;font:700 clamp(32px,5vw,48px)/1.05 "Fraunces",serif}
.modal-close{position:absolute;top:18px;right:20px;width:40px;height:40px;border:2px solid var(--ink);border-radius:50%;background:var(--pink);font-size:25px;line-height:1}
.modal-preview{padding:28px;border:2px solid var(--ink);border-radius:22px;background:var(--blush)}
.modal-preview p{margin:0 0 20px;font:700 26px/1.25 "Fraunces",serif}
.modal-preview small{display:block;color:var(--orange-dark);font-size:11px;font-weight:700;text-align:right}
.share-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.share-option{display:flex;min-height:145px;flex-direction:column;gap:8px;padding:17px;border:2px solid var(--ink);border-radius:18px;background:#fff;color:var(--ink);text-align:left;text-decoration:none}
.share-option:first-child{background:var(--pink)}.share-option:nth-child(2){background:#8dcfd1}
.share-option b{font-size:15px}.share-option span{font-size:12px;font-weight:400;line-height:1.35}
.share-option:hover{transform:translateY(-3px);box-shadow:3px 4px 0 var(--ink)}
.modal-status{min-height:20px;margin:12px 0 -12px;color:var(--orange-dark);font-size:12px;font-weight:700}
.heart-pop,.love-note>span,.heart-icon{color:var(--orange)!important}
.postcard-word{display:inline;font-family:"Poppins","DM Sans",sans-serif;font-weight:800;letter-spacing:-.045em}
.teal-word{color:#3d6c83;-webkit-text-stroke:4px #b9dbe0;paint-order:stroke fill;text-shadow:none}
.orange-word{color:var(--orange-dark);-webkit-text-stroke:4px var(--pink);paint-order:stroke fill;text-shadow:none}
.hero h1 .postcard-word{font-size:.82em}
.belief .postcard-word{color:var(--orange);-webkit-text-stroke-color:var(--pink)}
.pass-one .teal-word{color:#8dcfd1;-webkit-text-stroke-color:#d8f3f4}
.why .teal-word{color:#8dcfd1;-webkit-text-stroke-color:#fff}
dialog h2 .postcard-word{font-size:.82em}
.direct-send{margin-top:20px;padding:18px;border:2px solid var(--pink);border-radius:18px;background:#fff}
.direct-send label{display:block;margin-bottom:9px;font-size:14px;font-weight:800}.direct-send-row{display:grid;grid-template-columns:1fr auto;gap:8px}.direct-send input{min-width:0;padding:12px 14px;border:2px solid var(--ink);border-radius:12px;color:var(--ink);font:500 15px "Poppins",sans-serif}.direct-send button{padding:12px 16px;border:2px solid var(--ink);border-radius:12px;background:#8dcfd1;color:var(--ink);font-size:13px;font-weight:800;cursor:pointer}.direct-send p{margin:9px 0 0;color:var(--muted);font-size:12px}.kind-footer{font-weight:800;letter-spacing:.06em}.kind-footer span{color:var(--orange);font-size:1.25em}
.hero-copy{text-align:center}
.hero h1{display:flex;flex-direction:column;align-items:center;line-height:.86}
.headline-row{display:block;white-space:nowrap}
.headline-row+.headline-row{margin-top:.12em}
.hero h1 .teal-word{color:#8dcfd1;-webkit-text-stroke:5px #b9dbe0}
.yes-word{color:var(--ink)}
.hero h1 .you-word{color:var(--orange-dark);-webkit-text-stroke:5px var(--pink);font-size:.82em}
.lede{margin-right:auto;margin-left:auto}
.hero-actions{justify-content:center}
.hero-copy>.signature{justify-content:center}
.section-heading{max-width:1050px;margin-right:auto;margin-left:auto;text-align:center}
.section-heading h2{line-height:.9}
.instruction-line{display:block}
.instruction-line+.instruction-line{margin-top:.08em}
.section-heading .orange-word{color:var(--orange-dark);-webkit-text-stroke:5px var(--pink)}
.follow{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:center;padding:110px max(32px,calc((100vw - 1176px)/2));background:var(--blue);color:var(--ink)}
.follow h2{max-width:700px;margin:0;font:700 clamp(42px,5.4vw,72px)/.94 "Fraunces",serif;letter-spacing:-.045em}
.follow-copy>p{max-width:620px;margin:28px 0 0;font-size:19px}
.follow-card{padding:34px;border:3px solid var(--ink);border-radius:28px;background:#fff;text-align:center}
.follow-card>span{display:block;color:var(--orange);font-size:36px;line-height:1}
.follow-card h3{margin:15px 0 10px;font:700 30px/1 "Fraunces",serif}
.follow-card p{margin:0 auto 24px;color:var(--muted);font-size:16px}
.follow-button{margin:0 auto;border-color:var(--ink);background:var(--orange);color:#fff;box-shadow:none;opacity:1;cursor:default}
.follow-button:hover{transform:none;box-shadow:none}
.follow-card small{display:block;margin-top:13px;color:var(--muted);font-size:12px}
.register-hug{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;padding:110px max(32px,calc((100vw - 1176px)/2));border-block:3px solid var(--ink);background:var(--pink)}
.register-copy h2{margin:0;font:700 clamp(48px,6vw,78px)/.94 "Fraunces",serif;letter-spacing:-.045em}.register-copy>p:not(.pssst){max-width:560px;margin:24px 0;font-size:19px}.pssst{margin:0 0 14px;color:var(--orange-dark);font-size:13px;font-weight:800;letter-spacing:.12em}.profile-link{font-weight:800;text-underline-offset:5px}
.register-form{display:grid;gap:15px;padding:34px;border:3px solid var(--ink);border-radius:28px;background:#fff}.register-form label{display:grid;gap:7px;font-size:14px;font-weight:800}.register-form label span{font-weight:500}.register-form input,.register-form textarea{width:100%;padding:13px 14px;border:2px solid var(--ink);border-radius:14px;background:#fff;color:var(--ink);font:500 15px/1.45 "Poppins",sans-serif}.register-form textarea{resize:vertical}.register-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.register-button{justify-self:start;border-color:var(--ink);background:var(--teal,#8dcfd1);color:var(--ink);cursor:pointer}.register-button span{margin-left:7px;color:var(--orange)}.register-status{min-height:22px;margin:0;color:var(--orange-dark);font-size:13px;font-weight:800}.register-status a{color:inherit}.register-form>small{color:var(--muted);font-size:12px}
.simple-register{align-self:center}.simple-register .register-button{margin-top:4px}
.unbound-register{background:#fff}
.profile-page{background:var(--blush)}.profile-main{min-height:72vh;padding:70px max(32px,calc((100vw - 1176px)/2)) 110px}.profile-intro{max-width:900px;margin:0 auto 55px;text-align:center}.profile-intro h1{margin:0;font:700 clamp(70px,10vw,120px)/.88 "Fraunces",serif;letter-spacing:-.055em}.profile-intro>p:not(.pssst){max-width:720px;margin:28px auto;font-size:19px}.hug-count{display:inline-flex;align-items:center;gap:12px;padding:12px 18px;border:2px solid var(--ink);border-radius:999px;background:#fff}.hug-count strong{color:var(--orange);font-size:26px}.hug-count span{font-size:13px;font-weight:800}.saved-hugs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.saved-hug{position:relative;display:flex;min-height:310px;flex-direction:column;padding:28px;border:3px solid var(--ink);border-radius:26px;background:#fff}.saved-hug:nth-child(3n+2){background:var(--pink)}.saved-hug:nth-child(3n+3){background:var(--blue)}.saved-heart{color:var(--orange);font-size:32px}.saved-hug blockquote{min-height:0;margin:22px 0;font:700 28px/1.08 "Fraunces",serif}.saved-hug p{margin:auto 0 8px;font-size:14px;font-weight:700}.saved-hug small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}.remove-hug{align-self:flex-start;margin-top:18px;padding:0;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:4px}.profile-empty{max-width:600px;margin:0 auto;padding:55px 30px;border:3px solid var(--ink);border-radius:30px;background:#fff;text-align:center}.profile-empty[hidden]{display:none}.profile-empty>span{color:var(--orange);font-size:44px}.profile-empty h2{margin:12px 0;font:700 42px/1 "Fraunces",serif}.profile-empty p{margin:0 0 25px;color:var(--muted)}
@media(max-width:900px){.follow{grid-template-columns:1fr;gap:40px}}
@media(max-width:560px){
  html,body{max-width:100%;overflow-x:hidden}
  .site-header{padding-right:26px;padding-left:26px}
  .event-tab{margin-right:0;padding:8px 12px}
  .hero,.belief,.found,.how,.pass-one,.wall,.follow,.why{padding-right:28px!important;padding-left:28px!important}
  .hero h1{font-size:clamp(42px,13.5vw,64px);line-height:.88}
  .hero h1 .teal-word,.hero h1 .you-word,.section-heading .orange-word{-webkit-text-stroke-width:3px}
  .section-heading h2{font-size:clamp(34px,10.2vw,44px);line-height:.94}
  .instruction-line:nth-child(2){font-size:.88em}
  .follow{grid-template-columns:1fr;gap:36px;text-align:center}
  .follow h2{font-size:42px}
  .register-hug{grid-template-columns:1fr;gap:36px;padding-top:82px;padding-bottom:82px}
  .register-copy{text-align:center}.register-pair{grid-template-columns:1fr}.register-form{padding:26px 22px}.register-button{justify-self:stretch}
  .profile-main{padding:55px 28px 85px}.saved-hugs{grid-template-columns:1fr}.profile-intro h1{font-size:72px}
  .step-card{width:100%;min-height:0;padding:28px}
  .step-reveal{max-height:0;margin-top:0;padding:0 16px;opacity:0}
  .steps .step-card>p{padding-bottom:34px}
  .step-card.is-open .step-reveal{max-height:150px;margin:22px -28px -28px;padding:22px 26px;opacity:1}
  .step-card:hover:not(.is-open) .step-reveal,.step-card:focus:not(.is-open) .step-reveal{max-height:0;margin:0;padding:0 16px;opacity:0}
  .asterisk{right:18px;bottom:9px}
  .pass.is-open .asterisk{opacity:0}
  .message-card{width:100%;padding:28px 24px 48px;transform:none}
  .pocket-note{right:8px;max-width:calc(100% - 16px)}
  .photo-label{right:10px}
  .share-actions{grid-template-columns:1fr}
  .direct-send-row{grid-template-columns:1fr}.direct-send button{width:100%}
  .share-option{min-height:0}
  dialog{max-height:calc(100dvh - 28px);padding:30px 22px;overflow-y:auto}
}
