:root{--bg: oklch(.95 .028 82);--bg-deep: oklch(.91 .045 78);--surface: oklch(.985 .014 85 / .88);--surface-solid: oklch(.975 .018 85);--surface-border: oklch(.45 .06 55 / .4);--ink: oklch(.28 .04 55);--muted: oklch(.43 .045 55);--primary: oklch(.45 .07 135);--accent: oklch(.47 .09 60);--accent-deep: oklch(.38 .055 55);--paper: oklch(.985 .014 88);--paper-ink: oklch(.28 .04 55);--ink-soft: oklch(.36 .04 55);--ink-mute: oklch(.44 .04 55);--paper-tint: oklch(.99 .01 88);--paper-field: oklch(.99 .01 88 / .88);--gold: oklch(.6 .08 65);--gold-line: oklch(.6 .08 65 / .7);--gold-line-soft: oklch(.62 .07 65 / .45);--gold-line-strong: oklch(.5 .08 60 / .8);--choice-checked: oklch(.93 .045 78);--on-accent: oklch(.985 .012 88);--error-bg: oklch(.94 .04 25);--error-ink: oklch(.4 .14 25);--shadow-text: 0 1px 12px oklch(.97 .025 85 / .95), 0 0 3px oklch(.97 .025 85 / .9);--font-display: "Marcellus", "Georgia", serif;--font-script: "Pinyon Script", cursive;--font-body: "Mulish", system-ui, sans-serif;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--gutter: clamp(1.25rem, 6vw, 3rem);--z-canvas: 0;--z-overlay: 20;--z-hint: 10;--z-stage-ui: 25;--z-progress: 30;--z-loader: 50}*{margin:0;padding:0;box-sizing:border-box}html{scroll-snap-type:y mandatory;overscroll-behavior-y:none}html.is-locked,html.is-locked body{height:100%;overflow:hidden}html.is-modal{overflow:hidden}html.is-modal #scene{touch-action:none}body{min-height:100%;overflow-x:clip;font-family:var(--font-body);color:var(--ink);background-color:var(--bg-deep);background-image:linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);-webkit-font-smoothing:antialiased}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:var(--z-canvas);touch-action:pan-y}#loader{position:fixed;inset:0;z-index:var(--z-loader);display:grid;place-content:center;justify-items:center;gap:1.25rem;background:radial-gradient(ellipse at 50% 38%,oklch(.98 .03 88) 0%,var(--bg) 40%,var(--bg-deep) 100%);transition:opacity .6s var(--ease-out),visibility 0s linear .6s}#loader.is-done{opacity:0;visibility:hidden;pointer-events:none}.loader__monogram{width:72px;height:72px;border-radius:50%;border:1px solid var(--accent-deep);background:#fefaf0b3;display:grid;place-content:center;animation:loader-breathe 1.8s var(--ease-in-out) infinite}.loader__monogram:before{content:"D · G";font-family:var(--font-display);font-size:1.05rem;letter-spacing:.18em;color:var(--accent-deep)}.loader__text{font-size:.85rem;letter-spacing:.08em;color:var(--muted)}@keyframes loader-breathe{0%,to{transform:scale(1);box-shadow:0 0 #a1764b59}50%{transform:scale(1.06);box-shadow:0 0 32px 4px #a1764b47}}.hint{position:fixed;left:50%;bottom:max(2.25rem,env(safe-area-inset-bottom));transform:translate(-50%);z-index:var(--z-hint);text-align:center;pointer-events:none;opacity:0;transition:opacity .7s var(--ease-out);width:min(90vw,30rem)}.hint.is-visible{opacity:1}.hint__guest{font-family:var(--font-script);font-size:clamp(2.2rem,6vw,3rem);line-height:1.1;color:var(--accent-deep);text-shadow:var(--shadow-text);margin-bottom:.5rem}.hint__action{display:inline-flex;align-items:center;gap:.6rem;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--surface-solid);border:1px solid var(--surface-border);box-shadow:0 8px 22px -10px #5d402d66;border-radius:999px;padding:.65rem 1.2rem}.hint__pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:hint-pulse 1.6s var(--ease-out) infinite}@keyframes hint-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(2.6);opacity:0}to{transform:scale(2.6);opacity:0}}.journey{position:relative;pointer-events:none}.sec{height:100svh;scroll-snap-align:start;scroll-snap-stop:always}.stage{position:fixed;inset:0;z-index:var(--z-overlay);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .4s var(--ease-out),visibility 0s linear .4s}.stage.is-active{opacity:1;visibility:visible;transition-delay:0s}.scroll-cue{display:grid;justify-items:center;gap:.6rem;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);text-shadow:var(--shadow-text);opacity:0}html.is-open .scroll-cue{animation:cue-in .9s var(--ease-out) 1s both}.scroll-cue i{width:1px;height:2.4rem;background:linear-gradient(var(--accent-deep),transparent);transform-origin:top;animation:cue-line 1.8s var(--ease-in-out) infinite}@keyframes cue-in{to{opacity:1}}@keyframes cue-line{0%{transform:scaleY(0);opacity:1}60%{transform:scaleY(1);opacity:1}to{transform:scaleY(1);opacity:0}}.eyebrow{font-family:var(--font-script);font-size:clamp(2.4rem,8vw,3.6rem);line-height:1;color:var(--accent);text-shadow:var(--shadow-text);margin-bottom:.75rem}.title{font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,6vw,2.6rem);line-height:1.15;text-wrap:balance;margin-bottom:1rem}.panel{pointer-events:auto;position:relative;text-align:center;padding:clamp(1.5rem,5vw,2.5rem) clamp(1.25rem,4vw,2.5rem);background:var(--paper);color:var(--paper-ink);border-radius:14px;outline:1px solid var(--gold-line);outline-offset:-7px;text-shadow:none;box-shadow:0 24px 70px -18px #613f2766,0 4px 14px -6px #613f2738,inset 0 0 60px #f3e2c766}.eyebrow--paper{color:var(--accent-deep);text-shadow:none}.title--paper{color:var(--paper-ink);text-shadow:none}.panel__title{font-family:var(--font-display);font-weight:400;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:.75rem}.panel__strong{font-family:var(--font-display);font-size:1.25rem}.panel__text{margin-top:.3rem;font-size:.95rem;line-height:1.6;color:var(--ink-soft);text-wrap:pretty}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem;pointer-events:auto}.btn{display:inline-block;padding:.9rem 1.9rem;border-radius:999px;font-family:var(--font-body);font-weight:700;font-size:.95rem;letter-spacing:.04em;text-decoration:none;text-shadow:none;cursor:pointer;pointer-events:auto;transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out),background-color .18s ease}.btn--primary{background:var(--accent-deep);color:var(--on-accent);border:1px solid var(--accent-deep)}.btn--ghost{background:transparent;color:var(--paper-ink);border:1px solid var(--gold-line-strong)}@media(hover:hover)and (pointer:fine){.btn--primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px -8px #593a2580;background:#462c19}.btn--ghost:hover{transform:translateY(-2px);background:#a1764b29}}.btn:active{transform:translateY(0) scale(.97);transition-duration:.12s}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.btn--small{padding:.5rem 1rem;font-size:.8rem}.schedule{list-style:none;text-align:left}.schedule__row{display:grid;grid-template-columns:6.5rem 1fr;gap:.75rem;padding:.6rem 0;border-bottom:1px dashed var(--gold-line-soft)}.schedule__row:last-child{border-bottom:0}.schedule__time{font-family:var(--font-display);color:var(--accent-deep);font-variant-numeric:tabular-nums}.schedule__what strong{display:block;font-weight:600}.schedule__what small{display:block;font-size:.82rem;color:var(--ink-mute)}.notes{list-style:none;text-align:left}.notes li{position:relative;padding:.3rem 0 .3rem 1.2rem;font-size:.95rem;line-height:1.55;color:var(--ink-soft)}.notes li:before{content:"";position:absolute;left:.15rem;top:.85rem;width:6px;height:6px;border-radius:50%;background:var(--accent-deep)}.accounts{list-style:none;margin-top:.9rem;display:grid;gap:.6rem;text-align:left}.accounts__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border:1px solid var(--gold-line);border-radius:10px;background:var(--paper-tint)}.accounts__info{display:grid;gap:.1rem;min-width:0;overflow-wrap:anywhere}.accounts__info small{color:var(--ink-mute)}.form{display:grid;gap:1.1rem;margin-top:1.25rem;text-align:left}.form[hidden],.field[hidden],.done[hidden]{display:none}.field{display:grid;gap:.4rem}.field>span,.choice legend{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}.field input,.field textarea{width:100%;padding:.8rem .9rem;font:inherit;font-size:1rem;color:var(--paper-ink);background:var(--paper-field);border:1px solid var(--gold-line);border-radius:10px;resize:vertical}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.field textarea::placeholder{color:#735e50}.field__count{justify-self:end;font-size:.75rem;color:var(--ink-mute)}.choice{display:grid;gap:.5rem;border:0}.choice__opt{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border:1px solid var(--gold-line);border-radius:10px;background:var(--paper-tint);cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.choice__opt input{width:1.15rem;height:1.15rem;accent-color:var(--accent-deep)}.choice__opt:has(input:checked){border-color:var(--accent);background:var(--choice-checked)}.choice__opt:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.form .btn{justify-self:center;border:1px solid var(--accent-deep)}.form .btn:disabled{opacity:.65;cursor:progress}.form__error{padding:.6rem .8rem;border-radius:8px;background:var(--error-bg);color:var(--error-ink);font-size:.9rem}.form__error[hidden]{display:none}.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.done{margin-top:1.25rem}.done__title{font-family:var(--font-script);font-size:clamp(2.2rem,7vw,3rem);color:var(--accent-deep);line-height:1.1}@media(prefers-reduced-motion:reduce){html{scroll-snap-type:none}.loader__monogram,.hint__pulse,.scroll-cue i{animation:none}.btn,.stage{transition:none}}.home-btn{position:fixed;top:max(.75rem,env(safe-area-inset-top));right:max(.75rem,env(safe-area-inset-right));z-index:40;width:2.75rem;height:2.75rem;display:grid;place-items:center;color:var(--accent-deep);background:var(--surface-solid);border:1px solid var(--surface-border);box-shadow:0 6px 16px -8px #5d402d73;border-radius:50%;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out),visibility 0s linear .5s}html.is-open .home-btn{opacity:1;visibility:visible;transform:none;transition-delay:0s}.home-btn:active{transform:scale(.94)}.home-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(hover:hover)and (pointer:fine){.home-btn:hover{background:var(--bg-deep)}}@media(prefers-reduced-motion:reduce){.home-btn{transition:none}}
