:root{--paper:#f3eee0;--paper-2:#eae3cf;--ink:#17140e;--ink-soft:#4a4535;--muted:#9c9276;--tomato:#ff4b33;--gold:#ffb020;--blue:#2e5cff;--line:rgba(23,20,14,.12)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-tap-highlight-color:transparent}body{background:var(--paper);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px;color:var(--ink);font-family:Archivo,sans-serif;min-height:100vh;display:flex;justify-content:center}.page{width:100%;max-width:1400px;padding:40px clamp(32px,4vw,72px) 60px}.reveal{opacity:0;transform:translateY(10px);animation:rise .7s cubic-bezier(.16,1,.3,1) forwards}.reveal.d1{animation-delay:0s}.reveal.d2{animation-delay:.08s}.reveal.d3{animation-delay:.18s}.reveal.d4{animation-delay:.3s}.reveal.d5{animation-delay:.44s}@keyframes rise{to{opacity:1;transform:translateY(0)}}.headline-block{margin-top:40px}.headline{font-weight:900;font-size:clamp(40px,8vw,150px);line-height:.92;letter-spacing:-.03em}.event-name{margin-top:16px;font-weight:800;font-size:clamp(30px,6vw,110px);max-width:1200px;line-height:1.04;letter-spacing:-.02em}.event-sub{margin-top:8px;font-size:clamp(15px,1.4vw,24px);color:var(--ink-soft);max-width:800px;line-height:1.55}.timer-zone{margin-top:40px;min-height:clamp(90px,15vw,250px);display:flex;align-items:center}.timer{display:grid;grid-template-columns:repeat(4,auto);grid-gap:8px clamp(34px,4vw,80px);gap:8px clamp(34px,4vw,80px)}.unit-value{font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:clamp(64px,13vw,220px);line-height:.95;letter-spacing:-.02em;display:inline-block}.unit-value.tick{animation:tick .4s cubic-bezier(.34,1.56,.64,1)}@keyframes tick{0%{transform:translateY(-10%) skewY(-2deg);opacity:.5}to{transform:translateY(0) skewY(0);opacity:1}}.unit-label{margin-top:8px;font-size:clamp(11px,.9vw,18px);font-weight:700;color:var(--muted);letter-spacing:.02em}.waiting-word{font-weight:900;font-size:clamp(64px,13vw,220px);line-height:.95;letter-spacing:-.02em;color:var(--tomato)}.waiting-word span{display:inline-block;opacity:0;transform:translateY(20px) scale(.85);animation:letterPop 1s cubic-bezier(.22,1,.36,1) forwards}@keyframes letterPop{to{opacity:1;transform:translateY(0) scale(1)}}.phrase{font-weight:800;font-size:clamp(28px,4.6vw,64px);line-height:1.12;letter-spacing:-.01em;max-width:1100px;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}.phrase.visible{opacity:1;transform:translateY(0)}.confetti-layer{position:fixed;inset:0;pointer-events:none;z-index:5}.confetti-piece{position:absolute;top:-5vh;opacity:0;animation-name:confettiFall;animation-timing-function:cubic-bezier(.35,0,.65,1);animation-fill-mode:forwards}@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.45}80%{opacity:.45}to{transform:translateY(115vh) rotate(var(--spin));opacity:0}}.companion-row{margin-top:32px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;row-gap:8px}.companion{width:clamp(72px,5vw,140px);height:clamp(72px,5vw,140px);flex-shrink:0;cursor:default}.companion .body-shape{fill:var(--tomato)}.companion .pupil{fill:var(--ink);transition:transform .08s linear}.companion .blink{animation:blink 5.5s ease-in-out infinite;transform-origin:center}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}.companion.bob{animation:bob 3.2s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-4px) rotate(-2deg)}}@keyframes shakeMild{0%,to{transform:rotate(0deg)}50%{transform:rotate(-2.5deg)}}@keyframes shakeMed{0%,to{transform:rotate(0deg)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes shakeStrong{0%,to{transform:rotate(0deg) translateX(0)}20%{transform:rotate(-6deg) translateX(-2px)}60%{transform:rotate(6deg) translateX(2px)}}@keyframes happyBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.companion.shake-mild{animation:shakeMild 1.6s ease-in-out infinite}.companion.shake-med{animation:shakeMed 1s ease-in-out infinite}.companion.shake-strong{animation:shakeStrong .55s ease-in-out infinite}.companion.bounce-happy{animation:happyBounce 1.4s ease-in-out infinite}.companion.bounce-happy .body-shape{fill:var(--gold)}.mood-bubble{position:relative;background:var(--ink);color:var(--paper);font-weight:700;font-size:clamp(14px,1.1vw,22px);padding:10px 16px;border-radius:3px 16px 16px 16px;transition:transform .2s ease;max-width:100%}.meta{margin-top:32px}.meta-date{font-size:clamp(15px,1.3vw,26px);font-weight:700;color:var(--ink)}.meta-location{margin-top:4px;font-size:clamp(13px,1vw,20px);font-weight:600;color:var(--muted)}.meta-tz{margin-top:8px;font-size:clamp(12.5px,.9vw,18px);color:var(--ink-soft);max-width:560px;line-height:1.5}.divider{margin:40px 0 24px;border:none;border-top:2px solid var(--ink);width:46px}.about{margin-top:40px;max-width:800px}.about-label{font-size:clamp(11px,.8vw,16px);font-weight:700;color:var(--tomato);margin-bottom:8px}.about p{font-size:clamp(14.5px,1.1vw,20px);line-height:1.7;color:var(--ink-soft)}.about p+p{margin-top:8px}.wait-block{margin-top:0;max-width:480px}.wait-heading{font-weight:900;font-size:clamp(28px,5vw,90px);line-height:.98;letter-spacing:-.02em}.wait-count{margin-top:8px;display:inline-block;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:clamp(56px,10vw,170px);line-height:.92;color:var(--tomato)}.wait-count.tick{animation:waitBump .45s cubic-bezier(.34,1.56,.64,1)}@keyframes waitBump{0%{transform:scale(.7) translateY(6px);opacity:.4}60%{transform:scale(1.08) translateY(-2px);opacity:1}to{transform:scale(1) translateY(0)}}.wait-sub{margin-top:8px;font-size:clamp(14.5px,1.2vw,22px);color:var(--ink-soft);min-height:20px}.wait-button{margin-top:8px;display:inline-block;background:var(--ink);color:var(--paper);font-family:Archivo,sans-serif;font-weight:700;font-size:clamp(14px,1vw,20px);padding:12px 22px;border-radius:100px;border:none;cursor:pointer;transition:transform .15s ease,opacity .15s ease,background .15s ease}.wait-button:hover:not(:disabled){transform:translateY(-2px)}.wait-button:active:not(:disabled){transform:translateY(0) scale(.97)}.wait-button.joined{background:transparent;color:var(--ink-soft);border:1.5px solid var(--line);cursor:default}.wait-button:disabled{cursor:default}.footer{margin-top:40px;font-size:clamp(12px,.8vw,16px);color:var(--muted);font-style:italic}@media (max-width:520px){.timer{grid-template-columns:repeat(2,auto);row-gap:24px;column-gap:40px}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.companion .blink,.companion.bob,.companion.bounce-happy,.companion.shake-med,.companion.shake-mild,.companion.shake-strong,.reveal,.unit-value.tick,.wait-count.tick{animation:none}.waiting-word span{animation:none;opacity:1;transform:none}.confetti-piece{animation:none;opacity:0}.phrase{transition:none;opacity:1;transform:none}}