:root{--ink:#293342;--muted:#687383;--paper:#f7f2ea;--rose:#eab5ac;--sun:#f3ca72;--line:rgba(41,51,66,.14);--serif:"Playfair Display",Georgia,serif;--sans:Manrope,Arial,sans-serif;--mono:"DM Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.5}.grain{pointer-events:none;inset:0;position:fixed;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");z-index:20}.shell{max-width:1120px;margin:auto;padding:0 32px 70px}.topbar{height:86px;display:flex;justify-content:space-between;align-items:center}.brand{color:var(--ink);text-decoration:none;font:500 12px var(--mono);letter-spacing:.1em}.brand-mark{font-size:18px;color:#da8f87;margin-right:7px}.text-button{font:600 12px var(--sans);border:0;border-bottom:1px solid var(--ink);padding:3px 0;background:transparent;cursor:pointer;color:var(--ink)}.hero{padding:94px 0 80px;border-bottom:1px solid var(--line);background:radial-gradient(circle at 69% 16%,#f5d99b80 0,transparent 28%),radial-gradient(circle at 83% 40%,#e8aaa25b 0,transparent 22%)}.eyebrow{margin:0 0 17px;color:#a86a66;font:500 10px var(--mono);letter-spacing:.13em}.hero h1,.finale h2,dialog h2{font:600 clamp(48px,8vw,94px)/.96 var(--serif);letter-spacing:-.055em;margin:0}.hero em,.finale em,dialog em{color:#b86e6e;font-weight:600}.hero-copy{max-width:432px;margin:28px 0 45px;color:var(--muted);font-size:14px}.countdown{display:flex;gap:clamp(16px,4vw,44px)}.countdown div{display:grid;gap:0}.countdown strong{font:500 clamp(28px,4vw,45px)/1 var(--mono);letter-spacing:-.07em}.countdown span,.timezone,#chapter-label{font:500 9px var(--mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.timezone{margin:18px 0 35px}.signal-card{display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);background:#fffcf6aa;font:400 11px var(--mono);color:#56606b}.pulse{width:8px;height:8px;border-radius:50%;background:#e9a09a;box-shadow:0 0 0 5px #e9a09a44;animation:pulse 2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 9px transparent}}.today-section,.archive-section{padding:72px 0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:21px}.teaser-card{min-height:360px;background:#293342;color:#fff;position:relative;overflow:hidden;display:grid;align-items:end;padding:34px;border-radius:2px}.teaser-card::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#202937d9 5%,#20293744 70%,#20293722)}.teaser-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.76}.teaser-content{position:relative;z-index:1;max-width:470px}.teaser-day{font:500 11px var(--mono);letter-spacing:.1em;color:#ffd57d}.teaser-card h2{font:600 clamp(31px,5vw,54px)/1.02 var(--serif);letter-spacing:-.04em;margin:10px 0}.teaser-card p{font-size:14px;margin:0;color:#ffffffd9}.archive-section{border-top:1px solid var(--line)}.archive-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day-tile{aspect-ratio:1;position:relative;border:1px solid var(--line);background:#fbf8f2;padding:9px;color:var(--muted);text-align:left;cursor:pointer;font:500 10px var(--mono);transition:.2s}.day-tile.open{border-color:#d99b91;color:var(--ink);background:#fff9ef}.day-tile.open:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3c435d22}.day-tile.current{background:#eeb9af;color:#fff;border-color:#eeb9af}.day-tile.locked{cursor:not-allowed}.day-tile .icon{position:absolute;right:8px;bottom:6px;font:18px var(--serif)}.finale{position:fixed;inset:0;background:linear-gradient(130deg,#f4c9a2,#e7a5a2 50%,#a4c4c5);z-index:30;overflow:auto;padding:50px 24px}.finale-inner{max-width:650px;margin:8vh auto;text-align:center}.finale h2{font-size:clamp(55px,10vw,104px)}.finale-inner>p:not(.eyebrow){max-width:490px;margin:26px auto;color:#4a4a58}.finale-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.primary-button,.outline-button{border:0;padding:13px 18px;font:700 12px var(--sans);cursor:pointer}.primary-button{background:var(--ink);color:#fff}.outline-button{background:transparent;border:1px solid var(--ink);color:var(--ink)}.qr-placeholder{margin:54px auto 0;width:145px;height:145px;border:1px dashed #614c52;display:grid;place-content:center;font:10px var(--mono);letter-spacing:.08em}.qr-placeholder span{font:54px var(--serif);line-height:.7}.qr-placeholder p{margin:12px 0 0}.confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#fff 2px,transparent 2.5px),radial-gradient(#c46d77 2px,transparent 2.5px),radial-gradient(#efc04f 2px,transparent 2.5px);background-size:81px 107px,123px 91px,103px 131px;background-position:4px 9px,42px 64px,73px 23px;opacity:.75}dialog{border:0;box-shadow:0 20px 80px #15202c44;color:var(--ink);max-width:min(650px,calc(100% - 32px));padding:0;background:#faf6ef}dialog::backdrop{background:#202937a8}.close{position:absolute;right:15px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer;z-index:2}.letter-paper{padding:55px clamp(25px,7vw,70px);font:18px/1.72 var(--serif);background:linear-gradient(90deg,#ebe1d2,#fffaf0 8%,#fffaf0 92%,#ebe1d2)}.letter-paper p:first-of-type{margin-top:0}.letter-date{font:10px var(--mono)!important;letter-spacing:.1em;color:var(--muted)}.signature{font-style:italic;font-size:21px}.guest-dialog,.wishes-dialog{width:min(600px,calc(100% - 32px));padding:46px}.guest-dialog h2,.wishes-dialog h2{font-size:50px;margin-bottom:12px}.dialog-copy{color:var(--muted);font-size:14px;margin:0 0 28px}form{display:grid;gap:17px}label{display:grid;gap:7px;font-size:12px;font-weight:700}input,textarea{font:14px var(--sans);padding:12px;border:1px solid var(--line);background:#fffdf9;resize:vertical}textarea{min-height:130px}.wish-card{border-top:1px solid var(--line);padding:17px 0}.wish-card strong{font-size:13px}.wish-card p{margin:7px 0 0;font:17px/1.5 var(--serif)}@media(max-width:600px){.shell{padding:0 20px 42px}.topbar{height:66px}.hero{padding:65px 0}.archive-grid{grid-template-columns:repeat(5,1fr)}.teaser-card{min-height:420px;padding:23px}.guest-dialog,.wishes-dialog{padding:34px 25px}.countdown{gap:14px}.countdown strong{font-size:27px}.countdown span{font-size:8px}}
