@font-face{font-family:"Barlow Condensed";font-weight:700;font-display:swap;src:url(/front-page/barlow-condensed-700.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:400;font-display:swap;src:url(/front-page/dm-sans-400.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:500;font-display:swap;src:url(/front-page/dm-sans-500.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-weight:600;font-display:swap;src:url(/front-page/dm-sans-600.woff2) format("woff2")}
:root{--pine:#0e3030;--cream:#fff0d3;--gold:#e8bd75;--red:#a92328;color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-height:100%;background:var(--pine)}
body{margin:0;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:24px 20px 64px;background:radial-gradient(ellipse 70% 55% at 50% 45%,#174a45 0%,#0e3030 70%);color:var(--cream);font:400 16px/1.5 "DM Sans",system-ui,sans-serif;text-align:center}
body:has(dialog[open]){overflow:hidden}
button,input{font:inherit}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid #fff5da;outline-offset:4px}
main{display:flex;flex-direction:column;align-items:center}
main img{display:block;width:min(86vw,300px);height:auto;filter:drop-shadow(0 10px 28px #0007)}
.soon{margin:22px 0 0;padding-left:.32em;font-size:13px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:#fff0d3b8}
.notify{position:relative;margin-top:30px;min-height:56px;isolation:isolate}
.plaque{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:2px solid #d6ab6e;border-radius:999px;padding:6px 20px 6px 6px;min-height:52px;background:var(--red);color:var(--cream);font-weight:600;font-size:16px;text-decoration:none;box-shadow:0 8px 20px #0003;line-height:1.3;transition:background .15s}
.plaque:hover{background:#bd3035}
.plaque i{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--cream);color:var(--red);font-style:normal}
.plaque i svg{width:20px;height:20px}.plaque i svg.key{width:26px;height:11px}
.plaque:disabled{opacity:.85;cursor:progress}
.notify .plaque{position:relative;z-index:1}
.sparkles{position:absolute;left:50%;top:28px;width:0;height:0;pointer-events:none;z-index:0}
.sp{position:absolute;width:var(--s);height:var(--s);margin:calc(var(--s)/-2);border-radius:50%;opacity:0;background:radial-gradient(circle,#fffaf0 0%,#fbe3b0 35%,#e8bd758c 60%,transparent 72%);filter:drop-shadow(0 0 4px #ffd696d9);animation:float var(--d) cubic-bezier(.22,.61,.36,1) forwards}
.sp.star{border-radius:0;background:none;filter:drop-shadow(0 0 5px #ffdca0f2)}.sp svg{display:block;width:100%;height:100%}
@keyframes float{0%{opacity:0;transform:translate(var(--x0),var(--y0)) scale(.3)}18%{opacity:1}45%{opacity:.75;transform:translate(calc(var(--x0) + var(--dx)*.45 + var(--sw)),calc(var(--y0) + var(--dy)*.45)) scale(1) rotate(45deg)}70%{opacity:.95}100%{opacity:0;transform:translate(calc(var(--x0) + var(--dx)),calc(var(--y0) + var(--dy))) scale(.55) rotate(90deg)}}
.plaque.glint{overflow:hidden}.plaque.glint::after{content:"";position:absolute;inset:-2px;background:linear-gradient(105deg,transparent 35%,#fff0d361 50%,transparent 65%);transform:translateX(-120%);animation:glint 1.1s ease-out forwards;pointer-events:none}
@keyframes glint{to{transform:translateX(120%)}}
.notify{max-width:100%}main{width:100%;min-width:0}
.confirmation-card{width:min(480px,calc(100vw - 40px));padding:22px 18px;border:1px solid #e8bd7580;border-radius:22px;background:linear-gradient(#17453f,#0e3030);box-shadow:0 12px 32px #0003;font-size:14px}
.confirmation-card h3{display:flex;justify-content:center;align-items:center;gap:8px;margin:0 0 14px;font-size:17px;line-height:1.4;font-weight:600}
.confirmation-card h3 i{display:grid;place-items:center;flex:0 0 26px;height:26px;border-radius:50%;background:var(--gold);color:var(--pine)}.confirmation-card h3 svg{width:17px}
.confirmation-card p{margin:8px 0}.confirmation-card .fine{margin-top:16px}
.confirmation-actions{display:block;margin-top:4px}.confirmation-actions button{display:inline-block;padding:8px 0;border:0;background:none;color:var(--cream);text-decoration:underline;text-underline-offset:3px;font-size:inherit;font-weight:600}
.confirmation-actions button:disabled{color:#fff0d399;text-decoration:none;cursor:default}.confirmation-actions span{padding:0 4px}
.confirmation-error{font-size:13px;color:#ffb3a3;margin:12px 0}
.email-echo{display:block;width:100%;margin:10px 0 14px!important;color:var(--gold);font-size:clamp(14px,4.6vw,18px);font-weight:600;text-align:center;overflow-wrap:normal;word-break:normal;line-height:1.5}
.email-echo span{display:inline-block;white-space:nowrap;overflow-wrap:normal;word-break:normal}
body:has(.confirmation-card){padding-bottom:24px}body:has(.confirmation-card) .legal{position:static;margin-top:30px}
.legal{position:fixed;left:0;right:0;bottom:max(14px,env(safe-area-inset-bottom));margin:0;font-size:11.5px;letter-spacing:.02em;color:#fff0d36b}
.legal a{display:inline-flex;align-items:center;min-height:44px;padding:10px 2px;margin:-10px 0;color:#fff0d39e;text-decoration:underline;text-decoration-color:#fff0d34d;text-underline-offset:3px}.legal a:hover{color:var(--cream)}
dialog{padding:0;border:0;background:transparent;color:var(--cream);width:calc(100% - 36px);max-width:420px}
dialog::backdrop{background:#082323d9;backdrop-filter:blur(4px)}
dialog:focus,dialog:focus-visible{outline:none}
.door-card{position:relative;text-align:center;background:linear-gradient(#14403c,var(--pine));border:2px solid var(--gold);border-radius:22px;padding:50px 30px 22px;box-shadow:0 26px 60px #000a,inset 0 0 0 6px var(--pine),inset 0 0 0 7px #e8bd7540}
dialog[open] .door-card{animation:pop .22s ease-out}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.98)}}
.medallion{position:absolute;left:50%;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f6dca4,#c99a4d);color:#173731;box-shadow:0 8px 20px #0008,inset 0 0 0 3px #fff3d6aa}
.medallion svg{width:36px;height:36px}#gate-dialog .medallion svg{width:42px;height:18px}
.close{position:absolute;right:8px;top:8px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--cream);font-size:28px;line-height:1}
.eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}
h2{margin:10px 0 12px;font:700 50px/.94 "Barlow Condensed",Impact,sans-serif;text-transform:uppercase;letter-spacing:-.015em}
.lead,#door-description{margin:0 0 6px;font-size:15px;color:#fff0d3d9;text-wrap:pretty}
.question{font:italic 24px/1.3 Georgia,serif;margin:16px 0;color:var(--gold)}
label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}
#answer{display:block;text-align:center;width:150px;height:56px;border:2px solid var(--gold);border-radius:12px;margin:8px auto 18px;color:#173731;background:#fffaf0;font:700 30px "Barlow Condensed",sans-serif}
.field{margin:18px 0 16px;text-align:left}.field label{margin:0 0 8px 4px}
#email{display:block;width:100%;height:56px;padding:0 16px;border:2px solid var(--gold);border-radius:12px;background:#fffaf0;color:#173731;font-size:17px;font-weight:500}
#email::placeholder{color:#17373180;font-weight:400}#email[aria-invalid=true]{border-color:#d4553f;box-shadow:0 0 0 3px #d4553f40}
.msg{display:flex;gap:8px;align-items:flex-start;margin:8px 4px 0;font-size:14px;line-height:1.4}.msg svg{flex:0 0 18px;width:18px;height:18px;margin-top:1px}.msg.error{color:#ffb3a3;font-weight:500}.msg.hint{color:var(--cream)}.msg.hint button{padding:0;border:0;background:none;color:var(--gold);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.alert{display:flex;justify-content:center;gap:10px;align-items:center;text-align:left;margin:0 0 16px;padding:12px 14px;border-radius:12px;background:#d63a2f;color:#fff;font-size:15px;font-weight:600;line-height:1.3;box-shadow:0 6px 16px #d63a2f54,inset 0 0 0 1px #ffffff2e}.alert svg{flex:0 0 22px;width:22px}
form .plaque,.done-button{width:100%}.spin{width:18px;height:18px;border:2.5px solid #a9232840;border-top-color:var(--red);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.fine{margin:14px 0 0;font-size:12.5px;color:#fff0d3a6;line-height:1.45}.fine a{color:#fff0d3d9;text-underline-offset:2px}.success-note{margin:14px 0 18px}
.back{background:transparent;border:0;color:var(--cream);text-decoration:underline;text-underline-offset:3px;margin-top:10px;padding:10px;font-size:14px;font-weight:500}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.keyboard-open #signup-content>.eyebrow,.keyboard-open #signup-description{display:none}.keyboard-open .field{margin:8px 0}.keyboard-open #email{height:44px}.keyboard-open .fine{margin-top:8px}
@media(min-width:768px){main img{width:min(86vw,460px)}}
@media(max-width:719px){.door-card{padding:48px 22px 20px}h2{font-size:44px}}
@media(prefers-reduced-motion:reduce){.sparkles,.plaque.glint::after{display:none}dialog[open] .door-card,.spin{animation:none}}

.notice{position:relative;width:min(88vw,340px);margin:14px auto 0;padding:30px 22px 18px;text-align:center;background:linear-gradient(#14403c,var(--pine));border:2px solid var(--gold);border-radius:18px;box-shadow:0 18px 40px #0008,inset 0 0 0 5px var(--pine),inset 0 0 0 6px #e8bd7540}
.notice-icon{position:absolute;top:-22px;left:50%;transform:translateX(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#f6dca4,#c99a4d);color:#173731;box-shadow:0 6px 16px #0008,inset 0 0 0 2px #fff3d6aa}
.notice-icon svg{width:24px;height:24px}
.notice-eyebrow{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}
.notice-title{margin:0 0 8px;font:700 24px/1.02 "Barlow Condensed",Impact,sans-serif;text-transform:uppercase;letter-spacing:-.005em;color:var(--cream);text-wrap:balance}
.notice-sub{margin:0;font-size:14px;line-height:1.45;color:#fff0d3c7;text-wrap:pretty}

.pfs-r{font-size:.55em;vertical-align:super;line-height:0}.msg.error button{padding:0;border:0;background:none;color:var(--cream);font-weight:700;text-decoration:underline;word-break:break-all}
@media(max-width:360px){.plaque{font-size:15px;padding-right:14px;gap:8px}}
