@font-face{font-family:GardenSerif;src:local('Georgia')}
:root{color-scheme:light;--green:#75866b;--ink:#283e30;--cream:#f4eee1;--terra:#a85037;--pink:#e1a699}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--green);color:var(--cream);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:6px}button{border:0}button:disabled{cursor:wait}button,a{touch-action:manipulation}#experience{position:relative;width:100%;height:100%;height:100svh;overflow:hidden}#scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(47,67,46,.2),transparent 42%,transparent 65%,rgba(47,67,46,.27))}.reveal{opacity:0;animation:reveal 1.4s 1.2s forwards}@keyframes reveal{to{opacity:1}}.masthead{position:absolute;top:max(22px,env(safe-area-inset-top));left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;z-index:3}.monogram{position:relative;display:flex;align-items:center;gap:1px;color:var(--cream);text-decoration:none;font:italic 36px Georgia,serif;letter-spacing:-4px;padding-right:9px}.monogram span{font-size:24px;margin:7px 0 0 3px}.monogram i{position:absolute;width:36px;bottom:-6px;left:8px;height:5px;border-bottom:1px solid var(--cream);border-radius:50%;transform:rotate(-8deg)}.masthead-note{font-size:11px;letter-spacing:.2em;margin-left:80px}.text-button{background:none;font-size:12px;border-bottom:1px solid #f4eee14d;padding:8px 0;display:flex;align-items:center;gap:12px}.text-button span{font-size:17px}.intro{position:absolute;top:15%;left:0;right:0;text-align:center;pointer-events:none;transition:opacity .75s,transform .75s}.eyebrow{font-size:11px;letter-spacing:.23em;font-weight:400;margin:0 0 18px}h1{font:normal clamp(42px,4.9vw,78px)/1.04 Georgia,serif;letter-spacing:-.05em;margin:0}h1 em{font-weight:normal;color:#f1d7c4} .intro-copy{font-size:14px;font-weight:400;line-height:1.6;margin:21px 0}.driving .intro{opacity:0!important;transform:translateY(-14px)}.place-label{position:absolute;left:5%;top:50%;writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;letter-spacing:.21em;display:flex;align-items:center;gap:16px}.small-line{height:38px;width:1px;background:#f4eee160}.dashboard{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(460px,86%);z-index:4;transition:opacity .5s}.route{display:flex;align-items:center;gap:17px;font-size:9px;letter-spacing:.13em;margin:0 0 26px}.route>span{white-space:nowrap;opacity:.8}.route-track{position:relative;height:1px;background:#f4eee13d;flex:1}#route-fill{width:0;height:1px;background:var(--cream)}#route-car{position:absolute;left:0;top:-9px;font-size:19px;transform:translateX(-50%);line-height:18px}.drive-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.pedal{height:93px;width:100px;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;user-select:none;-webkit-user-select:none;touch-action:none;transition:transform .15s,background .15s,box-shadow .15s}.pedal>span:last-child{font-size:12px;letter-spacing:.02em}.brake{background:#f4eee116;border:1px solid #f4eee14a;box-shadow:0 4px 0 #344b3a21}.gas{background:var(--cream);color:var(--ink);box-shadow:0 5px 0 #dfd9c3,0 9px 22px #273e3020}.pedal.active{transform:translateY(4px);box-shadow:0 1px 0 #344b3a20}.gas.active{background:#f1d7c4}.brake.active{background:#f4eee138}.pedal:disabled{opacity:.5}.pedal-icon{display:flex;justify-content:center;gap:4px;border:1.4px solid currentColor;border-radius:5px;padding:5px}.pedal-icon i{width:2px;height:12px;border-radius:2px;background:currentColor;opacity:.6}.gas-icon{transform:rotate(-12deg);height:32px;width:24px}.gas-icon i{height:18px;width:1px}.brake-icon{width:33px;height:23px}.brake-icon i{height:10px}.drive-hint{text-align:center;flex:1}.hint-flower{font:30px Georgia,serif;color:#e7b09d}.drive-hint p{font-size:12px;line-height:1.55;margin:7px auto 5px;max-width:160px}.keyboard-hint{font-size:10px;opacity:.6}.journey-note{position:absolute;top:14%;left:20%;right:20%;text-align:center;font:italic 23px Georgia,serif;pointer-events:none;opacity:0;transition:opacity 1s}.journey-note.visible{opacity:1}.arrival{position:absolute;inset:0;z-index:8;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 18px;background:#33493255;backdrop-filter:blur(5px);opacity:0;transition:opacity 1s}.arrival[hidden],.fallback[hidden]{display:none}.arrival.visible{opacity:1}.arrival-card{position:relative;background:var(--cream);color:var(--ink);width:min(420px,100%);padding:32px 34px 22px;text-align:center;border-radius:180px 180px 8px 8px;box-shadow:0 24px 80px #263b3030}.arrival-flower{font:36px Georgia,serif;color:var(--terra);display:block;margin:0 0 15px}.arrival .eyebrow{font-size:10px;letter-spacing:.19em;margin-bottom:18px}.arrival h2{font:normal 38px Georgia,serif;letter-spacing:-.045em;margin:0 0 21px}.arrival h2 em{font-size:29px;color:var(--terra)}.date{font:normal 42px Georgia,serif;letter-spacing:-.04em}.date span{padding:0 6px;color:var(--terra)}.arrival-copy{font-size:14px;line-height:1.7;margin:18px 0 22px}.venue{display:flex;align-items:center;text-align:left;gap:17px;padding:17px 0;border-top:1px solid #283e3022;border-bottom:1px solid #283e3022}.venue img{width:92px;height:78px;object-fit:cover;border-radius:40px 40px 2px 2px}.venue .eyebrow{font-size:8px;letter-spacing:.1em}.venue p{font:23px Georgia,serif;margin:8px 0 3px}.venue>div>span:last-child{font-size:12px;opacity:.75}.calendar-button{margin:22px 0 0;display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--terra);border-radius:3px;color:var(--cream);text-decoration:none;font-size:13px}.calendar-button span{font-size:20px}.invitation-note{font-size:10px;color:#52614d;margin:15px 0 0}.replay{font-size:12px;color:var(--cream);background:none;border-bottom:1px solid #f4eee180;padding:8px 0;margin-top:14px}.arrived .dashboard,.arrived .intro,.arrived .journey-note,.arrived .place-label{opacity:0!important;pointer-events:none}.arrived .masthead{display:none}.fallback,.no-script{position:absolute;inset:0;background:var(--green);z-index:20;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px}.fallback button{background:var(--cream);color:var(--ink);border-radius:5px;padding:18px;margin-top:16px}.no-script p{line-height:1.6}
@media(max-width:600px){.masthead{top:max(23px,env(safe-area-inset-top));left:24px;right:24px}.masthead-note{display:none}.intro{top:16%}h1{font-size:43px}.intro-copy{font-size:12px;margin-top:17px}.eyebrow{font-size:10px;margin-bottom:17px}.place-label{display:none}.dashboard{width:calc(100% - 48px);bottom:max(26px,env(safe-area-inset-bottom))}.pedal{width:89px;height:91px;border-radius:17px}.route{font-size:8px;gap:13px;margin-bottom:25px}.keyboard-hint{display:none}.drive-hint p{font-size:11px;max-width:120px}.journey-note{top:17%;left:12%;right:12%;font-size:22px}.arrival-card{padding:28px 27px 22px}.arrival h2{font-size:36px}.date{font-size:39px}}
@media(max-height:700px){.intro{top:14%}h1{font-size:37px}.intro-copy{margin-top:12px}.dashboard{bottom:18px}.pedal{height:78px}.route{margin-bottom:18px}.arrival{justify-content:flex-start;padding-top:18px}.arrival-card{padding-top:22px}.arrival-flower{font-size:28px;margin-bottom:10px}.arrival h2{margin-bottom:14px}.arrival-copy{margin:12px 0}.calendar-button{margin-top:15px}.arrival .eyebrow{margin-bottom:12px}}
@media(max-height:500px) and (min-width:650px){.intro{top:20%;left:6%;right:auto;text-align:left}.intro h1{font-size:32px}.intro-copy{font-size:11px}.dashboard{left:auto;right:5%;transform:none;width:320px}.masthead{top:15px}.place-label{display:none}.arrival{padding:16px}.arrival-card{border-radius:50px 50px 8px 8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1}.vignette{background:#344b3a18}}
.pedal>span:last-child{font-size:14px}.drive-hint p{font-size:12px}.intro-copy{font-size:14px}.text-button{font-size:14px}
.masthead,.route,.drive-controls{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .65s ease,visibility .65s}
.ready-to-drive .drive-controls,.has-driven .masthead,.has-driven .route{opacity:1;visibility:visible;pointer-events:auto}
.celebration{position:absolute;inset:0;overflow:hidden;z-index:10;pointer-events:none;contain:strict}
.celebration-petal{position:absolute;top:0;left:0;border-radius:75% 15% 65% 20%;will-change:transform,opacity;box-shadow:0 1px 2px #35402b20}
.celebration-petal:nth-child(5n){border-radius:1px;width:4px!important}
.arrival{transition:opacity .45s ease}
@media(prefers-reduced-motion:reduce){.masthead,.route,.drive-controls{transition:none}}
