*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#07131a;color:#fff}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #fff;outline-offset:-6px}[hidden]{display:none!important}.screen{position:fixed;inset:0;width:100%;height:100%;height:100dvh;animation:arrive 1.2s ease both}.entrance{background:#153f62}.brand-backdrop{position:absolute;inset:-40px;background:url('/assets/present-brand.png') center/cover;filter:blur(25px) brightness(.6)}.enter{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;display:flex;align-items:center;justify-content:center}.enter img{width:100%;height:100%;object-fit:contain;position:relative;transition:filter 1s}.enter:hover img,.enter:focus-visible img{filter:brightness(1.07)}.tip{position:absolute;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .3s,transform .3s;font:12px/1.4 system-ui,sans-serif;letter-spacing:.08em;background:#07131ac9;padding:8px 13px;border-radius:20px;backdrop-filter:blur(10px)}button:hover>.tip,button:focus-visible>.tip{opacity:1;transform:translateY(0)}.entrance-tip{bottom:5%;left:50%;translate:-50% 0}.entry-glow{position:absolute;bottom:5%;left:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 20px 5px #f9d996;animation:glimmer 4s ease-in-out infinite}.enter:hover .entry-glow{opacity:0}.places{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3px;background:#061216}.place{position:relative;overflow:hidden;padding:0;border:0;background:#153228;isolation:isolate}.place img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.8s cubic-bezier(.2,.6,.2,1),filter 1s;filter:brightness(.9)}.place:hover img,.place:focus-visible img{transform:scale(1.045);filter:brightness(1.07)}.place-shade{position:absolute;inset:0;background:linear-gradient(transparent 45%,#03100e85);opacity:.25;transition:opacity .5s}.place:hover .place-shade,.place:focus-visible .place-shade{opacity:1}.place-label{position:absolute;left:7%;bottom:10%;opacity:0;transform:translateY(8px);transition:.45s;font:italic clamp(22px,2.5vw,40px)/1.2 Georgia,serif;text-shadow:0 2px 15px #0008;text-align:left;letter-spacing:.015em}.place-label span{display:block;margin-top:10px;font:10px/1.4 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.22em}.place:hover .place-label,.place:focus-visible .place-label{opacity:1;transform:none}.sanctuary{overflow:hidden}.sanctuary>img{height:100%;width:100%;object-fit:cover;animation:drift 45s ease-in-out infinite alternate}.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse,transparent 45%,#00101835)}.controls{position:fixed;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:5px;border:1px solid #ffffff20;border-radius:40px;background:#06151d35;backdrop-filter:blur(14px);z-index:5;transition:opacity 1s}.icon-button{width:42px;height:42px;position:relative;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:#fffc;transition:background .3s}.icon-button:hover,.icon-button:focus-visible,.icon-button[aria-pressed=true]{background:#ffffff20;color:white}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.icon-button .tip{bottom:54px;left:50%;translate:-50% 0}.idle .controls{opacity:.12}.idle .controls:hover,.idle .controls:focus-within{opacity:1}.breath{display:none;position:absolute;left:50%;top:50%;width:100px;height:100px;translate:-50% -50%;border:1px solid #ffffff75;border-radius:50%;box-shadow:0 0 45px #fff2,inset 0 0 35px #fff1;backdrop-filter:blur(1px);animation:breathe 10s ease-in-out infinite}.breathing .breath{display:block}@keyframes breathe{0%,100%{transform:scale(.65);opacity:.25}50%{transform:scale(1.4);opacity:.8}}@keyframes arrive{from{opacity:0}to{opacity:1}}@keyframes drift{from{transform:scale(1)}to{transform:scale(1.045)}}@keyframes glimmer{50%{box-shadow:0 0 26px 9px #f9d99688;opacity:.4}}@media(max-width:600px){.places{gap:2px}.place-label{left:9%;bottom:22%;font-size:24px}.place-label span{font-size:9px;letter-spacing:.12em}.enter img{width:100%;height:auto}.controls{bottom:max(16px,env(safe-area-inset-bottom))}.place img{object-position:center}.tip{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.breath{opacity:.5}}
