:root{color-scheme:light dark;--background:#fff;--foreground:#171717;--placeholder:#eeeeec;--gift-top:calc(max(20px,env(safe-area-inset-top)) + 144px)}
*{box-sizing:border-box;margin:0;padding:0}
html,body,main{width:100%;height:100%;overflow:hidden}
body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;cursor:pointer}
button:focus-visible,a:focus-visible{outline:2px solid var(--foreground);outline-offset:4px}
[hidden]{display:none!important}
.year-panel{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;height:var(--svh,100dvh);overflow:hidden}
.gallery-root{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;contain:layout paint size}
.floating-item{position:absolute;left:0;top:0;padding:0;border:0;border-radius:12px;overflow:hidden;background:transparent;box-shadow:0 6px 18px rgba(0,0,0,.18);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:opacity 220ms cubic-bezier(.23,1,.32,1),box-shadow .2s;opacity:0;visibility:hidden}
.floating-item.loaded{opacity:1;visibility:visible}
.floating-item:active,.floating-item.is-dragging{cursor:grabbing;box-shadow:0 10px 24px rgba(0,0,0,.28)}
.floating-item:focus-visible{outline-offset:5px}
.floating-image{width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;display:block}
.float-content{display:block;width:100%;height:100%;border-radius:inherit;overflow:hidden}
.floating-item.loaded{animation:bob 6s ease-in-out infinite;animation-delay:var(--bob-delay,0s)}
.floating-item.is-dragging{animation-play-state:paused}
.viewer-open .floating-item.loaded{animation-play-state:paused}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.year-toggle{position:fixed;z-index:10000;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:flex;flex-direction:column;align-items:flex-end;white-space:nowrap}
.year-toggle button,.year-toggle a{display:flex;align-items:center;justify-content:flex-end;padding:12px 0 12px 12px;min-height:44px;border:0;border-radius:0;background:transparent;color:var(--foreground);font-size:13px;font-weight:400;line-height:20px;text-align:right;text-decoration:none;opacity:.55;transition:opacity .15s}
.year-toggle button:hover,.year-toggle a:hover,.year-toggle button[aria-pressed=true],.year-toggle a[aria-current=page]{opacity:1}
.year-toggle button[aria-pressed=true],.year-toggle a[aria-current=page]{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.year-toggle button:focus-visible,.year-toggle a:focus-visible{outline-offset:3px}
dialog{position:fixed;inset:0;margin:auto;width:max-content;max-width:95vw;max-height:calc(var(--svh,100dvh) - 32px);padding:0;border:0;overflow:auto;overscroll-behavior:contain;background:transparent;color:#fff}
dialog::backdrop{background:rgba(0,0,0,.9)}
dialog.lightbox-animated[open]::backdrop{opacity:1;transition:opacity 200ms cubic-bezier(.23,1,.32,1)}
@starting-style{dialog.lightbox-animated[open]::backdrop{opacity:0}}
.lightbox-frame{position:relative;margin-inline:auto;border-radius:12px;overflow:hidden;width:max-content;max-width:95vw;touch-action:pan-y;user-select:none;-webkit-user-select:none}
#lightbox-image{display:block;max-width:95vw;max-height:calc(var(--svh,100dvh)*.8);width:min(95vw,calc(var(--svh,100dvh)*.8*var(--photo-aspect,1)));height:auto;object-fit:contain;border-radius:12px;-webkit-user-drag:none;cursor:pointer}
#lightbox-filename{position:absolute;bottom:8px;left:8px;max-width:calc(100% - 92px);padding:7px 10px;border-radius:8px;background:rgba(0,0,0,.45);color:#d6d6d6;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#lightbox-caption{max-width:95vw;padding:8px 12px 0;color:#eee;text-align:center;font-size:14px;line-height:1.35;overflow-wrap:anywhere}
.lightbox-close,.lightbox-save{position:absolute;appearance:none;-webkit-appearance:none;background:transparent;color:#fff;border:0;border-radius:0;text-decoration:none;box-shadow:none;outline:none}
.lightbox-close{right:4px;top:4px;width:44px;height:44px;background:transparent;border-radius:0;font-size:0;color:#fff}
.lightbox-close::before,.lightbox-close::after{content:"";position:absolute;top:50%;left:50%;width:16px;height:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.lightbox-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.lightbox-save{right:8px;bottom:0;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;padding:12px 4px;font-size:14px;line-height:18px;cursor:pointer;text-shadow:0 1px 3px rgba(0,0,0,.55)}
.lightbox-close:focus,.lightbox-save:focus{outline:none;box-shadow:none}
.lightbox-close:focus-visible{color:#ffe7a3}
.lightbox-save:focus-visible{text-decoration:underline;text-underline-offset:4px}
.gift-panel{top:var(--gift-top);height:calc(var(--svh,100dvh) - var(--gift-top));display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;padding:20px max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.gift-surface{flex:none;width:min(760px,100%);margin-block:auto;text-align:center;outline:none}
.gift-list{display:grid;gap:14px;width:fit-content;max-width:100%;margin:0 auto}
.gift-option{display:flex;align-items:baseline;gap:24px;min-height:56px;padding:10px 0;border:0;background:none;color:var(--foreground);font-size:clamp(24px,4.5vw,36px);font-weight:400;line-height:1.2;text-align:left}
@media(hover:hover) and (pointer:fine){.gift-option:hover span:last-child{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}}
.gift-number{flex:none;font-size:11px;line-height:20px;opacity:.6}
.gift-figure{margin:0 auto;min-width:0}
.gift-figure img{display:block;width:auto;height:auto;max-width:100%;max-height:clamp(120px,calc(var(--svh,100dvh)*.5),480px);object-fit:contain;margin:0 auto}
.gift-figure figcaption{margin-top:16px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.gift-detail{display:block;margin-top:4px;font-size:12px;opacity:.65}
.gift-source{display:inline-block;text-underline-offset:4px}
.gift-actions{display:flex;flex-wrap:wrap;justify-content:center;column-gap:32px;margin-top:16px}
.text-action{min-height:44px;padding:12px 4px;border:0;background:none;color:var(--foreground);font-size:13px;line-height:20px}
@media(hover:hover) and (pointer:fine){.text-action:hover{text-decoration:underline;text-underline-offset:4px}}
.gift-question{margin-top:28px;font-size:20px;line-height:1.35;font-weight:400}
.gift-step-browse .gift-question{margin:0 0 24px}
.gift-selected{display:flex;justify-content:center;align-items:flex-end;gap:24px}
.gift-selected .gift-figure{flex:0 1 260px;margin:0;max-width:calc(50% - 12px)}
.gift-selected .gift-figure:only-child{max-width:100%}
.gift-selected img{width:100%;height:clamp(100px,calc(var(--svh,100dvh)*.3),260px)}
@media(max-width:420px){.gift-option{gap:16px}.gift-selected{gap:16px}.gift-selected .gift-figure{max-width:calc(50% - 8px)}}
@media(max-height:500px){.gift-panel{padding-top:4px}.gift-figure img{max-height:160px}.gift-question{margin-top:18px}.gift-selected img{height:100px}.gift-figure figcaption{margin-top:8px}#lightbox-filename{position:static;display:block;max-width:100%;text-align:center;background:none;padding:7px 4px}.lightbox-save{top:52px;bottom:auto}}
@media(prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed;--placeholder:#202020}}
@media(prefers-reduced-motion:reduce){.float-content,.floating-item.loaded{animation:none!important}.floating-item.loaded{opacity:1;visibility:visible}.year-toggle button,.year-toggle a{transition:none}}


@media(min-height:600px){.gift-step-browse{position:relative;top:-24px}}
.gift-step-detail .gift-figure[data-gift=dyson] img{width:110%;max-width:110%;max-height:clamp(132px,calc(var(--svh,100dvh)*.55),528px);margin-left:-5%}
@media(max-height:500px){.gift-step-detail .gift-figure[data-gift=dyson] img{max-height:176px}}
