@font-face{font-family:Inika;src:url("fonts/Inika-Regular.ttf")}@font-face{font-family:Inika;src:url("fonts/Inika-Bold.ttf");font-weight:700}@font-face{font-family:Hanalei;src:url("fonts/HanaleiFill-Regular.ttf")}*{box-sizing:border-box}body{margin:0;background:#063940;color:#fff9e9;font-family:Inika,serif}.gift,.surface{min-height:100svh}.surface{position:relative;overflow:hidden}.surface[hidden]{display:none!important}.tiny{margin:0;color:#ffe2a8;font-size:.76rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.button{min-height:46px;padding:11px 17px;border:1px solid #ffe2a8;background:transparent;color:#fff9e9;cursor:pointer;font:700 1rem Inika,serif}.button:focus-visible,.map-pin:focus-visible,.map-exit:focus-visible,.stop-chip:focus-visible{outline:3px solid #ff755f;outline-offset:3px}.button-sun{background:#ffe2a8;color:#143d43;border-color:#ffe2a8}.button-coral{background:#f16957;border-color:#f16957;color:#fff9e9}.button-quiet{border-color:rgba(255,226,168,.7)}.envelope,.personal-card,.complete{display:grid;place-items:center;background:radial-gradient(circle at 72% 22%,#168690 0,#073d45 42%,#042c33 100%)}.envelope-card,.personal-card article,.complete article{position:relative;z-index:2;width:min(500px,calc(100% - 40px));padding:clamp(34px,7vw,76px);background:#fff9e9;color:#16454a;box-shadow:0 30px 75px rgba(0,0,0,.28);transform:rotate(-1.2deg)}.envelope-card h1,.personal-card h2,.complete h2{margin:18px 0;font-weight:400;letter-spacing:-.045em;line-height:.94;font-size:clamp(3.2rem,8vw,6rem)}.card-name{margin:0 0 30px;color:#a64a3a}.blooms{position:absolute;z-index:1;width:clamp(160px,29vw,330px);filter:drop-shadow(0 20px 15px rgba(0,0,0,.18));pointer-events:none}.blooms-sealed{right:-4vw;bottom:-5vw;transform:rotate(-14deg)}.blooms-card{left:-8vw;top:-7vw;transform:rotate(25deg)}.blooms-complete{right:-7vw;bottom:-8vw;transform:rotate(-8deg)}.personal-card article>p:not(.tiny),.complete article>p:not(.tiny){font-size:clamp(1.2rem,2.2vw,1.55rem);line-height:1.45}.personal-card .button{margin-top:26px}.world-head{position:absolute;z-index:4;top:22px;left:30px;display:grid}.world-head strong{font:clamp(2.8rem,5vw,4.4rem)/.75 Hanalei,serif;color:#ffe2a8}.world-head span{margin-left:7px;font-size:.7rem;letter-spacing:.11em;text-transform:uppercase}.map-surface{display:grid;place-items:center;background:radial-gradient(circle at 83% 10%,#249da7 0,#0a5660 35%,#063940 78%)}.map-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(320px,520px);align-items:center;gap:clamp(32px,8vw,120px);width:min(1170px,calc(100% - 48px));padding:92px 0 48px}.map-copy h2{margin:14px 0 22px;font-size:clamp(3rem,6vw,6rem);font-weight:400;line-height:.92;letter-spacing:-.05em}.map-copy>p:not(.tiny){max-width:460px;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.45}.map-plot{position:relative;width:min(100%,56dvh,520px);aspect-ratio:1/1.22;filter:drop-shadow(0 28px 45px rgba(0,0,0,.24))}.map-plot svg{position:absolute;inset:0;width:100%;height:100%}.ocean{fill:#1797af}.land{fill:#71a864}.ridge{fill:none;stroke:#467d52;stroke-width:.6}.coast{fill:none;stroke:#fff2bd;stroke-width:.7}.route{fill:none;stroke:#f16957;stroke-width:1.1;stroke-linecap:round;stroke-dasharray:1.5 2}.ocean-word,.north{fill:rgba(255,249,233,.72);font:3.2px Inika}.north{font-size:3px}.map-pins{position:absolute;inset:0}.map-pin{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:44px;min-height:44px;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,-50%);color:#fff9e9;font:700 .82rem Inika}.map-pin b{display:grid;place-items:center;width:44px;height:44px;border:2px solid #fff9e9;border-radius:50%;background:#f16957;box-shadow:0 4px 11px rgba(0,0,0,.25)}.map-pin.is-visited b{background:#ffe2a8;color:#143d43}.map-pin[aria-current="step"] b{outline:3px solid #fff9e9;outline-offset:3px}.map-pin span{position:absolute;left:var(--label-x,26px);top:var(--label-y,-6px);width:max-content;max-width:145px;padding:4px 7px;background:rgba(4,47,54,.82);border-radius:4px;text-align:left;font-size:.75rem;line-height:1.1}.map-car{position:absolute;left:calc(var(--car-x)*1%);top:calc(var(--car-y)*1%);z-index:3;transform:translate(-50%,-50%) rotate(-10deg);font-size:1.55rem;transition:left .8s cubic-bezier(.22,1,.36,1),top .8s cubic-bezier(.22,1,.36,1)}.travel-surface{display:grid;place-items:center;background:linear-gradient(140deg,#0a5660,#063940)}.travel-copy{position:relative;z-index:2;text-align:center}.travel-copy p:last-child{font-size:clamp(2.4rem,6vw,5.2rem);margin:.5rem 0}.travel-map{position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,226,168,.07),transparent 30%),url("manini-beach.png") center/cover;opacity:.34}.scene{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);background:#063940}.scene-media,.scene-media img,.scene-media video{position:absolute;inset:0;width:100%;height:100%}.scene-media{position:relative;grid-column:1;overflow:hidden;background:#0a5660}.scene-media img,.scene-media video{object-fit:cover}.scene-media video{opacity:0}.scene-media.is-playing video{opacity:1}.scene-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,31,35,.08),rgba(3,31,35,.1) 40%,rgba(3,31,35,.74))}.scene-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#fff9e9;font-size:1.25rem;background:linear-gradient(140deg,#0d7180,#043840)}.scene-media img:not([src]),.scene-media img.is-broken{opacity:0}.scene-copy{position:relative;z-index:2;grid-column:2;align-self:stretch;display:flex;flex-direction:column;justify-content:end;padding:clamp(34px,5vw,78px);background:linear-gradient(135deg,rgba(6,56,61,.9),rgba(5,35,41,.98));box-shadow:-30px 0 60px rgba(0,0,0,.17)}.scene-copy h2{margin:15px 0;font-size:clamp(2.7rem,5vw,5.4rem);font-weight:400;line-height:.93;letter-spacing:-.05em}.scene-lede{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.45}.scene-small{color:#c8d9cd;line-height:1.4}.scene-note{padding-top:16px;border-top:1px solid rgba(255,226,168,.55);color:#ffe2a8;font-size:.88rem}.scene-love{font:clamp(2.2rem,4vw,3.5rem)/1 Hanalei;color:#ffe2a8}.scene-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.map-exit{position:absolute;z-index:5;top:20px;right:20px;min-height:44px;padding:8px 14px;border:1px solid rgba(255,249,233,.75);border-radius:99px;background:rgba(4,42,48,.78);color:#fff9e9;cursor:pointer;font:700 .95rem Inika}.scene-detail{position:absolute;z-index:4;top:8%;left:6%;width:clamp(120px,18vw,240px);padding:7px;background:#fff9e9;box-shadow:0 20px 40px rgba(0,0,0,.28);transform:rotate(-3deg)}.complete{padding:50px 0}.complete-stops{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:25px}.stop-chip{min-height:44px;padding:8px;border:1px solid #27666b;background:#e6f0e2;color:#16454a;cursor:pointer;text-align:left;font:700 .86rem Inika}.complete-actions{margin-top:18px}.no-js{padding:32px;background:#fff9e9;color:#16454a}@media(max-width:760px){.map-layout{display:flex;flex-direction:column-reverse;width:min(100% - 32px,560px);padding:86px 0 32px;gap:22px}.map-plot{width:min(100%,420px)}.map-copy h2{font-size:clamp(3rem,15vw,4.8rem)}.map-pin span{display:none}.scene{display:block;min-height:100svh}.scene-media{position:absolute;inset:0;height:54%;width:100%}.scene-media:after{background:linear-gradient(0deg,#063940,rgba(3,31,35,.05))}.scene-copy{position:relative;min-height:58svh;margin-top:42svh;padding:34px 22px 30px;background:linear-gradient(180deg,rgba(6,56,61,.08),#063940 28%);box-shadow:none}.scene-detail{top:22px;left:18px;width:130px}.map-exit{top:14px;right:14px}.complete-stops{grid-template-columns:1fr}.blooms{width:190px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
.travel-car{position:absolute;left:var(--travel-x,50%);top:var(--travel-y,50%);z-index:2;font-size:2.5rem;transition:left .8s cubic-bezier(.22,1,.36,1),top .8s cubic-bezier(.22,1,.36,1)}.blooms-map{right:-62px;top:77px;width:185px;opacity:.72;transform:rotate(32deg)}@media(max-width:760px){.blooms-map{right:-82px;top:50px;width:165px}}
