:root{
  --violet:#7851A9;--violet-dark:#3F2668;--violet-deep:#241B36;
  --cream:#FBF3E2;--cream-2:#F5E9D0;--yellow:#F5C518;
  --ink:#1E1830;--muted:#6E647F;--faint:#9B90AA;--hair:#E8DEEF;
  --spring:cubic-bezier(.34,1.56,.64,1)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--violet-dark);color:var(--ink);font-family:Inter,system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
.menu{height:32px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.14);color:#F3EBFF;font:10px "IBM Plex Mono",monospace;letter-spacing:.13em;text-transform:uppercase}
.menu a{text-decoration:none}
.guest-shell{max-width:1080px;margin:0 auto;padding:70px 26px 76px}
.guest-hero{color:#fff;max-width:760px;margin-bottom:44px;position:relative}
.eyebrow{margin:0 0 12px;font:10px "IBM Plex Mono",monospace;letter-spacing:.18em;color:#D8C6F2}
.guest-hero h1{font:500 clamp(54px,9vw,104px)/.82 Fraunces,Georgia,serif;letter-spacing:-.045em;margin:0;max-width:720px}
.intro{max-width:560px;margin:27px 0 18px;color:#E3D8F0;font-size:16px}
.back-link{display:inline-block;color:var(--yellow);font:11px "IBM Plex Mono",monospace;text-decoration:none;letter-spacing:.07em}
.back-link:hover{text-decoration:underline}
.postcard{background:#fff;border-radius:18px;box-shadow:0 28px 70px rgba(21,8,40,.34);overflow:hidden;transform:rotate(-.45deg);transition:transform .35s var(--spring)}
.postcard:hover{transform:rotate(0)}
.window-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--hair);font:11px "IBM Plex Mono",monospace;color:var(--faint)}
.dots{display:flex;gap:6px}.dots i{display:block;width:11px;height:11px;border-radius:50%}.dots i:nth-child(1){background:#FF5F57}.dots i:nth-child(2){background:#FEBC2E}.dots i:nth-child(3){background:#28C840}
.postcard-body{padding:38px 42px 42px;position:relative}
.stamp{position:absolute;right:36px;top:30px;width:98px;padding:10px 7px;border:2px dashed #A890C8;color:#7851A9;text-align:center;font:8px/1.6 "IBM Plex Mono",monospace;letter-spacing:.08em;transform:rotate(5deg)}
.post-kicker{margin:0 0 8px;color:#8B76A7;font:10px "IBM Plex Mono",monospace;letter-spacing:.16em}
.postcard h2,.message-section h2{font:500 clamp(34px,5vw,54px)/.96 Fraunces,Georgia,serif;letter-spacing:-.03em;margin:0}
form{margin-top:34px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;margin-bottom:18px;font-size:12px;font-weight:500;color:#493F5A}
label>span{float:right;color:var(--faint);font:9px "IBM Plex Mono",monospace;letter-spacing:.04em;font-weight:400}
input,textarea{display:block;width:100%;margin-top:7px;border:1px solid #DCD1E6;border-radius:10px;background:#FCFAFD;color:var(--ink);font:14px Inter,sans-serif;padding:12px 13px;outline:none;transition:border .2s,box-shadow .2s}
textarea{min-height:150px;resize:vertical;line-height:1.55}
input:focus,textarea:focus{border-color:#8B65BC;box-shadow:0 0 0 3px #F0E9FA}
.honey{position:absolute;left:-9999px}
.form-foot{display:flex;align-items:center;justify-content:space-between;gap:18px}
button{border:0;border-radius:10px;background:var(--yellow);color:#4E3900;padding:12px 18px;font:500 12px "IBM Plex Mono",monospace;cursor:pointer;box-shadow:0 5px 0 #C89E0E;transition:transform .2s var(--spring),box-shadow .2s}
button:hover{transform:translateY(-2px);box-shadow:0 7px 0 #C89E0E}
button:active{transform:translateY(3px);box-shadow:0 2px 0 #C89E0E}
button:disabled{opacity:.55;cursor:wait;transform:none}
.form-note,.form-status{font-size:11px;color:var(--faint);margin:13px 0 0}.form-status{min-height:20px;font-weight:500}.form-status.ok{color:#4D7C5B}.form-status.error{color:#A43E4A}
.message-section{margin-top:74px;color:#fff}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.section-heading .eyebrow{margin-bottom:5px}.message-section h2{font-size:clamp(34px,5vw,52px)}
.counter{font:11px "IBM Plex Mono",monospace;color:var(--yellow);letter-spacing:.1em}
.message-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.message-card{background:var(--cream);color:var(--ink);border-radius:13px;padding:23px 24px;box-shadow:0 14px 32px rgba(22,8,40,.22);min-height:145px;display:flex;flex-direction:column;justify-content:space-between}
.message-card:nth-child(3n+2){background:#F4ECFB}.message-card:nth-child(4n){background:#F7D45C}
.message-card blockquote{margin:0;font:500 19px/1.35 Fraunces,Georgia,serif}.message-meta{display:flex;justify-content:space-between;gap:10px;margin-top:22px;color:#756B83;font:9px "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase}
.loading-card{grid-column:1/-1;min-height:100px;align-items:center;justify-content:center;color:var(--muted)}
.private-note{margin:54px 0 0 auto;max-width:460px;padding:20px 23px;background:var(--yellow);color:#4E3900;display:flex;justify-content:space-between;gap:20px;align-items:center;transform:rotate(1.4deg);box-shadow:0 16px 34px rgba(20,6,44,.25)}
.private-note span{font:10px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase}.private-note a{font:500 18px Fraunces,Georgia,serif;text-decoration:none}.private-note a:hover{text-decoration:underline}
footer{max-width:1080px;margin:0 auto;padding:0 26px 50px;color:#C6B6D9;font-size:11px}
@media(max-width:700px){.guest-shell{padding:48px 16px 60px}.postcard{transform:none}.postcard-body{padding:28px 20px 30px}.stamp{position:static;margin:0 0 25px auto}.field-row{grid-template-columns:1fr}.form-foot{align-items:flex-start;flex-direction:column}.message-wall{grid-template-columns:1fr}.section-heading{align-items:start}.private-note{margin-left:0;flex-direction:column;align-items:flex-start}.menu span{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
