:root{--paper:#f5ecd7;--paper-light:#fffaf0;--ink:#2d2a4a;--ink-soft:#5d5a78;--tomato:#e8553a;--marigold:#f2a634;--sea:#3f7fbf;--sage:#a9cf9b;--yes:#2f8a57;--maybe:#c98712;--no:#c2452d;--shadow:4px 4px 0 var(--ink);--radius:14px;--font-display:"Fraunces", Georgia, serif;--font-hand:"Caveat", "Comic Sans MS", cursive;--font-body:"Figtree", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 1px 1px,#2d2a4a17 1px,#0000 0),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .18 0 0 0 0 .16 0 0 0 0 .29 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:22px 22px,200px 200px;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;margin:0;line-height:1.1}button,input,select,textarea{font:inherit;color:inherit}.handwritten{font-family:var(--font-hand);font-size:1.35em;line-height:1.1}.muted{color:var(--ink-soft)}.error{color:var(--no);font-size:.875rem;font-weight:500}.button{border:2px solid var(--ink);background:var(--tomato);color:var(--paper-light);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;align-items:center;gap:.5em;padding:.7em 1.25em;font-weight:600;transition:transform .12s,box-shadow .12s;display:inline-flex}.button:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-1px,-1px)}.button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(3px,3px)}.button:disabled{opacity:.6;cursor:progress}.button.secondary{background:var(--paper-light);color:var(--ink)}.link-button{color:var(--sea);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-weight:600;text-decoration:underline}.link-button.danger{color:var(--no)}:focus-visible{outline:3px solid var(--sea);outline-offset:2px}.wordmark{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:clamp(2rem,4vw,3rem);font-weight:800;text-decoration:none}.wordmark span{color:var(--tomato);font-family:var(--font-hand);letter-spacing:0;margin-left:.04em;font-weight:700}.home{height:100dvh;position:relative;overflow:hidden}.globe-stage{position:absolute;inset:0}.globe-stage canvas{animation:1.1s cubic-bezier(.2,.9,.3,1.2) both globe-in}@keyframes globe-in{0%{opacity:0;transform:scale(.85)rotate(-6deg)}}.globe-canvas{touch-action:none}.masthead{pointer-events:none;max-width:24rem;animation:.7s ease-out .2s both rise;position:absolute;top:clamp(16px,4vw,40px);left:clamp(16px,4vw,40px)}.tagline{color:var(--ink-soft);margin:.5rem 0 0;font-size:1.05rem}.add-button{font-size:1.05rem;animation:.7s ease-out .4s both rise;position:absolute;top:clamp(16px,4vw,40px);right:clamp(16px,4vw,40px);transform:rotate(2deg)}.add-button:hover{transform:rotate(0)translate(-1px,-1px)}.legend{pointer-events:none;animation:.7s ease-out .6s both rise;position:absolute;bottom:clamp(16px,4vw,40px);left:clamp(16px,4vw,40px)}.legend .count{transform-origin:0;margin:0 0 .5rem;font-size:1.7rem;transform:rotate(-2deg)}.legend ul{flex-wrap:wrap;gap:.4rem 1rem;margin:0;padding:0;font-size:.9rem;font-weight:500;list-style:none;display:flex}.legend li{align-items:center;gap:.4rem;display:flex}.dot{border:2px solid var(--ink);border-radius:50%;width:.8rem;height:.8rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.pin-label{background:var(--paper-light);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);white-space:nowrap;pointer-events:none;text-align:center;border-radius:10px;padding:.35rem .7rem;display:grid;transform:translateY(-50%)}.pin-label strong{font-family:var(--font-display);font-size:.95rem}.pin-label span{font-family:var(--font-hand);color:var(--ink-soft);font-size:1.1rem;line-height:1}.postcard{background:var(--paper-light);border:2px solid var(--ink);width:min(420px,100vw - 32px);max-height:calc(100dvh - 140px);box-shadow:6px 6px 0 var(--ink);border-radius:6px;padding:2rem 1.75rem 1.75rem;animation:.38s cubic-bezier(.2,.9,.3,1.3) both card-in;position:absolute;top:50%;right:clamp(16px,4vw,48px);overflow-y:auto;transform:translateY(-50%)rotate(1.2deg)}@keyframes card-in{0%{opacity:0;transform:translateY(-40%)rotate(6deg)scale(.92)}}.tape{background:#f2a6348c;border-left:2px dashed #ffffff80;border-right:2px dashed #ffffff80;width:110px;height:26px;position:absolute;top:-2px;left:50%;translate:-50%;rotate:-3deg}.close{cursor:pointer;z-index:2;background:0 0;border:2px solid #0000;border-radius:50%;width:2.25rem;height:2.25rem;font-size:1.6rem;line-height:1;position:absolute;top:.6rem;right:.7rem}.close:hover{border-color:var(--ink)}.entry{gap:1.1rem;display:grid;position:relative}.entry-header h2{padding-right:6.5rem;font-size:2rem}.entry-header p{color:var(--ink-soft);margin:.2rem 0 0}.stamp{width:6.2rem;font-family:var(--font-display);text-align:center;text-transform:uppercase;letter-spacing:.06em;opacity:.88;mix-blend-mode:multiply;z-index:1;border:3px double;border-radius:6px;padding:.4rem .3rem;font-size:.72rem;font-weight:800;line-height:1.15;position:absolute;top:.2rem;right:.3rem;transform:rotate(9deg);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.7'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.7'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.stamp-yes{color:var(--yes)}.stamp-maybe{color:var(--maybe)}.stamp-no{color:var(--no)}.polaroid{background:#fff;border:1px solid #2d2a4a33;margin:0;padding:10px 10px 34px;transform:rotate(-2deg);box-shadow:0 6px 16px #2d2a4a2e}.polaroid img{object-fit:cover;background:var(--paper);width:100%;max-height:280px;display:block}.facts{border-block:2px dashed #2d2a4a40;grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin:0;padding:1rem 0;display:grid}.facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:.72rem;font-weight:600}.facts dd{font-family:var(--font-display);margin:.1rem 0 0;font-size:1.1rem;font-weight:600}.facts dd small{font-family:var(--font-body);color:var(--ink-soft);font-size:.8rem;font-weight:500;display:block}.stickers{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.stickers li{border:2px solid var(--ink);border-radius:999px;padding:.2rem .7rem;font-size:.85rem;font-weight:600}.stickers li:nth-child(4n+1){background:#fde2b3;rotate:-2deg}.stickers li:nth-child(4n+2){background:#d4ecd0;rotate:1.5deg}.stickers li:nth-child(4n+3){background:#e3d9f5;rotate:-1deg}.stickers li:nth-child(4n+4){background:#cfe8f0;rotate:2deg}.story{border-left:3px solid var(--marigold);white-space:pre-line;margin:0;padding-left:1rem}.links{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;list-style:none;display:flex}.links a{color:var(--sea);font-weight:600}.sheet-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#2d2a4a59;place-items:start center;padding:clamp(0px,4vw,48px) 16px;animation:.2s ease-out both fade;display:grid;position:fixed;inset:0;overflow-y:auto}@keyframes fade{0%{opacity:0}}.sheet{background:var(--paper-light);border:2px solid var(--ink);border-radius:var(--radius);width:min(680px,100%);box-shadow:8px 8px 0 var(--ink);padding:clamp(1.5rem,4vw,2.5rem);animation:.38s cubic-bezier(.2,.9,.3,1.2) both card-in;position:relative}.submit-form{gap:2rem;display:grid}.submit-form>header h2{margin-top:.2rem;font-size:clamp(1.7rem,4vw,2.3rem)}.submit-form>header p{margin:.6rem 0 0}.eyebrow{color:var(--tomato);margin:0}.form-section{gap:1rem;display:grid}.form-section h3{border-bottom:2px dashed #2d2a4a40;padding-bottom:.35rem;font-size:1.25rem}.row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.field{border:0;align-content:start;gap:.35rem;min-width:0;margin:0;padding:0;display:grid}.field legend{margin-bottom:.35rem}.field .label,.field legend{padding:0;font-size:.95rem;font-weight:600}.field .hint{color:var(--ink-soft);font-size:.82rem}input:not([type=checkbox],[type=radio],[type=file]),select,textarea{border:2px solid var(--ink);background:#fff;border-radius:10px;width:100%;padding:.65rem .8rem;transition:box-shadow .12s}input:not([type=checkbox],[type=radio],[type=file]):focus,select:focus,textarea:focus{box-shadow:3px 3px 0 var(--sea);outline:none}[aria-invalid=true],.has-error input,.has-error select,.has-error textarea{border-color:var(--no)!important}textarea{resize:vertical;min-height:8rem}.joined{display:flex}.joined>:first-child{border-radius:10px 0 0 10px}.joined>:last-child{border-left-width:0;border-radius:0 10px 10px 0}.joined select{flex:none;width:auto}.stack{gap:.5rem;display:grid}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:2px solid var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:999px;padding:.4rem .9rem;font-size:.9rem;font-weight:600;transition:background .12s,transform .12s;position:relative}.chip:hover{transform:rotate(-2deg)}.chip:has(input:checked){background:var(--marigold);box-shadow:2px 2px 0 var(--ink)}.chip:has(input:focus-visible){outline:3px solid var(--sea);outline-offset:2px}.chip input,.stamp-choice input,.photo-drop input{opacity:0;width:1px;height:1px;position:absolute}.stamps{flex-wrap:wrap;gap:1rem;display:flex}.stamp-choice{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;opacity:.45;cursor:pointer;border:3px double;border-radius:8px;padding:.6rem 1.2rem;font-size:1.1rem;font-weight:800;transition:opacity .15s,transform .2s cubic-bezier(.3,1.6,.5,1);position:relative}.stamp-choice:hover{opacity:.75}.stamp-choice:has(input:checked){opacity:1;transform:rotate(-6deg)scale(1.08)}.stamp-choice:has(input:focus-visible){outline:3px solid var(--sea);outline-offset:3px}.photo-drop{aspect-ratio:4/3;border:2px dashed var(--ink);cursor:pointer;color:var(--ink-soft);background:#fff;border-radius:6px;place-items:center;padding:8px 8px 24px;font-weight:600;display:grid;position:relative;overflow:hidden}.photo-drop:has(input:focus-visible){outline:3px solid var(--sea);outline-offset:2px}.photo-drop img{object-fit:cover;width:100%;height:100%}.submit-footer{justify-items:start;gap:1rem;padding-top:.5rem;display:grid}.submit-footer .button{font-size:1.1rem}.turnstile{min-height:65px}.combobox{position:relative}.combobox-list{z-index:5;border:2px solid var(--ink);box-shadow:var(--shadow);background:#fff;border-radius:10px;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0}.combobox-list li{cursor:pointer;color:var(--ink-soft);border-radius:6px;padding:.5rem .65rem;font-size:.92rem}.combobox-list li strong{color:var(--ink)}.combobox-list li[aria-selected=true]{background:#fde2b3}.sent{text-align:center;justify-items:center;gap:1rem;padding:1.5rem 0;display:grid}.sent p{max-width:28rem;margin:0}.sent-stamp{border:3px double var(--tomato);width:5rem;height:5rem;color:var(--tomato);border-radius:50%;place-items:center;font-size:2.2rem;animation:.5s cubic-bezier(.3,1.8,.5,1) both stamp;display:grid;transform:rotate(-10deg)}@keyframes stamp{0%{opacity:0;transform:rotate(-30deg)scale(2)}}.admin{max-width:760px;margin:0 auto;padding:32px 16px 80px}.admin-header{gap:.75rem;margin-bottom:2rem;display:grid}.admin-header .wordmark{font-size:1.5rem}.admin-header h1{font-size:2.4rem}.tabs{gap:.5rem;display:flex}.tabs button{border:2px solid var(--ink);text-transform:capitalize;cursor:pointer;background:#fff;border-radius:999px;padding:.4rem 1rem;font-weight:600}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper-light)}.admin-list{gap:2rem;display:grid}.admin-item{background:var(--paper-light);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:6px;gap:1.25rem;padding:1.75rem;display:grid}.admin-meta{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.85rem;display:flex}.admin-actions{border-top:2px dashed #2d2a4a40;flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:1rem;display:flex}.admin .polaroid{max-width:320px}.empty{font-size:1.8rem}@media (width<=720px){.masthead{top:calc(16px + env(safe-area-inset-top))}.tagline{display:none}.add-button{top:auto;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));justify-content:center;transform:rotate(-1deg)}.legend{bottom:calc(88px + env(safe-area-inset-bottom))}.legend ul{display:none}.legend .count{font-size:1.4rem}.postcard{top:auto;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:10;max-height:62dvh;transform:rotate(.6deg)}.sheet-backdrop{padding:0}.sheet{min-height:100dvh;box-shadow:none;border:0;border-radius:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.admin-meta a{color:var(--sea);font-weight:600}
