@property --hue{syntax:"<number>";inherits:true;initial-value:12}:root{--hue:12;--paper:oklch(.968 .02 var(--hue));--paper-deep:oklch(.935 .034 var(--hue));--paper-shade:oklch(.89 .045 var(--hue));--ink:oklch(.25 .035 var(--hue));--ink-soft:oklch(.47 .04 var(--hue));--ink-faint:oklch(.62 .04 var(--hue));--accent:oklch(.64 .14 var(--hue));--accent-deep:oklch(.5 .15 var(--hue));--print:#fefdfa;--glass:#ffffff80;--glass-soft:#ffffff73;--glass-strong:#ffffffd9;--glass-edge:#ffffffbf;--nav-bg:oklch(.99 .01 var(--hue) / .9);--pill:#ffffffe6;--grain-opacity:.32;--grain-blend:multiply;--night:oklch(.16 .02 var(--hue));--font-display:"Fraunces", Georgia, serif;--font-sans:"Instrument Sans", system-ui, sans-serif;--font-hand:"Caveat", cursive;--gutter:clamp(16px, 4vw, 56px);--radius:4px;--shadow-print:0 1px 1px oklch(.3 .04 var(--hue) / .08), 0 6px 14px -4px oklch(.3 .05 var(--hue) / .18), 0 18px 40px -18px oklch(.3 .06 var(--hue) / .35);--shadow-lift:0 2px 2px oklch(.3 .04 var(--hue) / .08), 0 16px 30px -8px oklch(.3 .05 var(--hue) / .25), 0 40px 70px -30px oklch(.3 .06 var(--hue) / .45);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);transition:--hue 1.4s var(--ease-out);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:lab(0% 0 0)){:root{--print:lab(99.4409% -.010848 1.52519);--glass:lab(100% 0 0/.5);--glass-soft:lab(100% 0 0/.45);--glass-strong:lab(100% 0 0/.85);--glass-edge:lab(100% 0 0/.75);--pill:lab(100% 0 0/.9)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;scrollbar-gutter:stable}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:clip}body{background:var(--paper);min-height:100svh;color:var(--ink);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.55;overflow-x:clip}body:before{content:"";z-index:100;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .42 0 0 0 0 .38 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px;border-radius:6px}::selection{background:oklch(.85 .09 var(--hue))}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.display{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;font-optical-sizing:auto;letter-spacing:-.02em;font-weight:380;line-height:.92}.hand{font-family:var(--font-hand);color:var(--accent-deep);letter-spacing:.005em;font-weight:500}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem;font-weight:600;font-stretch:90%}.print{--tilt:0deg;background:var(--print);width:100%;height:100%;box-shadow:var(--shadow-print);transform:rotate(var(--tilt));transition:transform .6s var(--ease-spring), box-shadow .6s var(--ease-out);cursor:zoom-in;-webkit-tap-highlight-color:transparent;border-radius:2px;padding:clamp(5px,.7vw,10px);display:block;position:relative}.print:hover,.print:focus-visible{box-shadow:var(--shadow-lift);z-index:2;transform:rotate(0)translateY(-6px)scale(1.015)}.print.has-caption{padding-bottom:clamp(30px,3.2vw,46px)}.print-caption{text-align:center;color:oklch(.4 .04 var(--hue));font-size:clamp(1rem,1.5vw,1.35rem);font-family:var(--font-hand);position:absolute;bottom:clamp(4px,.5vw,8px);left:0;right:0}.print.taped:before{content:"";background:oklch(.88 .06 var(--hue) / .72);width:34%;max-width:110px;height:24px;box-shadow:0 1px 2px oklch(.3 .04 var(--hue) / .1);z-index:1;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-3deg);-webkit-mask:linear-gradient(90deg,#0000 0 2px,#000 2px calc(100% - 2px),#0000 0);mask:linear-gradient(90deg,#0000 0 2px,#000 2px calc(100% - 2px),#0000 0)}.frame{background:linear-gradient(110deg, transparent 30%, #ffffff80 50%, transparent 70%) 0 0 / 250% 100%, var(--paper-deep);width:100%;height:100%;animation:1.8s linear infinite shimmer;position:relative;overflow:hidden}@supports (color:lab(0% 0 0)){.frame{background:linear-gradient(110deg, transparent 30%, lab(100% 0 0/.5) 50%, transparent 70%) 0 0 / 250% 100%, var(--paper-deep)}}.frame:has(.photo.is-loaded){background:var(--paper-deep);animation:none}@keyframes shimmer{to{background-position:-250% 0,0 0}}.photo{object-fit:cover;opacity:0;filter:blur(12px)saturate(1.2);width:100%;height:100%;transition:opacity .7s var(--ease-out), filter .9s var(--ease-out), transform 1.2s var(--ease-out);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform:scale(1.04)}.photo.is-loaded{opacity:1;filter:none;transform:none}.video-badge{background:oklch(.2 .02 var(--hue) / .55);-webkit-backdrop-filter:blur(10px);color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:999px;align-items:center;gap:6px;padding:5px 10px 5px 6px;font-size:.75rem;font-weight:600;display:inline-flex;position:absolute;inset:auto auto 10px 10px}.video-badge svg{width:18px;height:18px}.nav-dock{left:0;right:0;bottom:max(16px, env(safe-area-inset-bottom));z-index:50;pointer-events:none;justify-content:center;display:flex;position:fixed}.nav{background:var(--nav-bg);-webkit-backdrop-filter:blur(18px)saturate(1.6);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 10px 30px -10px oklch(.3 .05 var(--hue) / .35);pointer-events:auto;border-radius:999px;align-items:center;gap:2px;padding:5px;display:flex;position:relative}.nav a{height:42px;color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 16px;font-size:.88rem;font-weight:550;transition:color .3s;display:flex;position:relative}.nav a:hover,.nav a[aria-current=page],.nav a.is-going{color:var(--ink)}.nav a:active svg{scale:.85}.nav a.is-going svg{animation:.9s ease-in-out infinite nav-going}@keyframes nav-going{50%{opacity:.45}}.nav-pill{z-index:-1;background:var(--pill);box-shadow:0 1px 3px oklch(.3 .04 var(--hue) / .14);border-radius:999px;position:absolute;inset:0}.nav svg{flex:none;width:18px;height:18px}@media (max-width:900px){.nav a{padding:0 12px}.nav a:not([aria-current=page]) .nav-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.radial{display:none}@media (max-width:640px){.nav-dock .nav{display:none}.nav-dock{bottom:max(12px, env(safe-area-inset-bottom))}.radial{place-items:center;width:60px;height:60px;display:grid;position:relative}.radial-backdrop{z-index:-1;background:oklch(.15 .03 var(--hue) / .45);-webkit-backdrop-filter:blur(3px);pointer-events:auto;position:fixed;inset:0}.radial-toggle{background:var(--nav-bg);-webkit-backdrop-filter:blur(18px)saturate(1.6);width:60px;height:60px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .1), 0 12px 30px -10px oklch(.3 .05 var(--hue) / .5);color:var(--ink);font:inherit;cursor:pointer;pointer-events:auto;transition:scale .2s var(--ease-spring);border:0;border-radius:999px;align-content:center;place-items:center;gap:1px;padding:0;display:grid;position:relative}.radial-toggle:active{scale:.92}.radial-toggle svg{width:26px;height:26px}.radial-toggle-label{letter-spacing:.02em;font-size:.66rem;font-weight:700}.radial.is-open .radial-toggle{background:var(--ink);color:var(--paper)}.radial nav{position:absolute;inset:0}.radial-bubble{background:var(--nav-bg);-webkit-backdrop-filter:blur(18px)saturate(1.6);width:52px;height:52px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .12), 0 10px 24px -10px oklch(.25 .05 var(--hue) / .55);color:var(--ink);pointer-events:auto;border-radius:999px;place-items:center;display:grid;position:absolute;top:calc(50% - 26px);left:calc(50% - 26px)}.radial-bubble svg{width:24px;height:24px;transition:scale .15s}.radial-bubble:active svg{scale:.85}.radial-bubble.is-current{background:var(--ink);color:var(--paper)}.radial-bubble.is-sub{box-shadow:0 0 0 1.5px var(--accent-deep), 0 10px 24px -10px oklch(.25 .05 var(--hue) / .55)}.radial-bubble.is-going svg{animation:.9s ease-in-out infinite nav-going}.radial-label{white-space:nowrap;background:var(--nav-bg);width:max-content;max-width:104px;color:var(--ink);text-align:center;border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:650;line-height:1.2;position:absolute;top:calc(100% + 4px);left:50%;translate:-50%}}@media (max-width:400px){.nav a{padding:0}.nav a[aria-current=page] .nav-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.hero{min-height:calc(100svh - 90px);padding:clamp(24px, 5vh, 64px) var(--gutter) clamp(90px, 12vh, 140px);grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(24px,4vw,80px);display:grid;position:relative}.hero-kicker{color:var(--ink-soft);opacity:0;animation:rise 1s var(--ease-out) forwards;margin:0 0 -.1em .12em;font-size:clamp(1rem,1.5vw,1.4rem);font-style:italic;font-weight:350}.hero-title{color:var(--ink);margin:0 0 0 -.04em;font-size:clamp(4.8rem,12vw,11.5rem);font-style:italic;font-weight:330}.hero-title .letter{display:inline-block}.hero-born{transform-origin:0;margin:.4em 0 0;font-size:clamp(1.4rem,2vw,1.9rem);transform:rotate(-2deg)}.age-counter{flex-wrap:wrap;gap:clamp(18px,3vw,40px);margin-top:clamp(28px,5vh,56px);display:flex}.age-unit{flex-direction:column;display:flex}.age-unit .n{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 0;font-variant-numeric:tabular-nums lining-nums;font-size:clamp(2.2rem,3.6vw,3.4rem);font-weight:300;line-height:1}.age-unit .u{margin-top:6px}.hero-stats{color:var(--ink-soft);max-width:34ch;margin-top:clamp(28px,5vh,48px);font-size:.95rem}.hero-stats strong{color:var(--ink);font-weight:600}.stack{touch-action:none;height:min(76vh,740px);position:relative}.stack-item{cursor:grab;position:absolute;top:50%;left:50%}.stack-item:active{cursor:grabbing}.stack-item .print{cursor:inherit}.stack-hint{z-index:30;pointer-events:none;align-items:center;gap:6px;font-size:1.35rem;display:flex;position:absolute;bottom:-34px;right:4%;transform:rotate(-4deg)}.scroll-cue{align-items:center;gap:14px;margin-top:clamp(36px,7vh,72px);display:flex}.scroll-cue-line{background:linear-gradient(var(--ink-faint), transparent);width:1px;height:56px;position:relative;overflow:hidden}.scroll-cue-line:after{content:"";background:var(--ink);width:1px;height:40%;animation:cue 2.2s var(--ease-out) infinite;position:absolute;top:-40%;left:0}@keyframes cue{to{top:110%}}@media (max-width:860px){.hero{grid-template-columns:1fr;align-content:start;padding-top:24px}.stack{height:420px;margin-top:8px}.scroll-cue{display:none}}.section{padding:clamp(64px, 12vh, 140px) var(--gutter);position:relative}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:clamp(32px,6vh,64px);display:flex}.section-title{margin:0;font-size:clamp(3rem,8vw,7rem)}.section-title em{color:var(--accent-deep);font-style:italic}.section-note{font-size:1.6rem;transform:rotate(-2deg)}.memories{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:clamp(20px,3vw,40px);display:grid}.memory{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 20px 50px -30px oklch(.3 .06 var(--hue) / .3);border-radius:28px;flex-direction:column;gap:16px;padding:clamp(18px,2vw,24px);display:flex}.memory-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.memory-when{margin:6px 0 0;font-size:clamp(2rem,3.4vw,2.7rem)}.memory-age{text-align:right;font-size:1.5rem;line-height:1.1;transform:rotate(-3deg)}.memory-link{color:var(--ink-soft);transition:color .3s, gap .4s var(--ease-spring);align-self:flex-start;align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:inline-flex}.memory-link:hover{color:var(--ink);gap:12px}.memory-link svg{width:16px;height:16px}.memory-empty{border:1.5px dashed var(--paper-shade);color:var(--ink-soft);border-radius:28px;max-width:560px;padding:28px 32px}@media (max-width:640px){.memories.is-carousel{margin:0 calc(var(--gutter) * -1);padding:4px var(--gutter) 12px;scroll-snap-type:x mandatory;scroll-padding:0 var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain;grid-template-columns:none;grid-auto-columns:86%;grid-auto-flow:column;gap:14px;overflow-x:auto}.memories.is-carousel::-webkit-scrollbar{display:none}.memories.is-carousel .memory{scroll-snap-align:start}}.mosaic{aspect-ratio:4/3;isolation:isolate;border-radius:18px;gap:5px;display:grid;overflow:hidden}.mosaic-2{grid-template-columns:1fr 1fr}.mosaic-3{grid-template-rows:1fr 1fr;grid-template-columns:2fr 1fr}.mosaic-4{grid-template-rows:repeat(3,1fr);grid-template-columns:2fr 1fr}.mosaic-3 .mosaic-tile:first-child{grid-row:span 2}.mosaic-4 .mosaic-tile:first-child{grid-row:span 3}.mosaic-tile{cursor:zoom-in;min-width:0;min-height:0;position:relative;overflow:hidden}.mosaic-tile .frame{position:absolute;inset:0}.mosaic-tile .photo.is-loaded{transition:transform .8s var(--ease-out), opacity .7s var(--ease-out), filter .9s var(--ease-out)}.mosaic-tile:hover .photo.is-loaded{transform:scale(1.05)}.mosaic-tile .video-badge{padding:3px 8px 3px 4px;font-size:.7rem;inset:auto auto 8px 8px}.mosaic-tile .video-badge svg{width:14px;height:14px}.mosaic-more{background:oklch(.2 .03 var(--hue) / .45);-webkit-backdrop-filter:blur(2px);color:#fff;font-family:var(--font-display);place-items:center;font-size:clamp(1.4rem,2.4vw,2rem);font-weight:400;display:grid;position:absolute;inset:0}.fil{position:relative}.fil-toggle{background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:999px;padding:4px;display:inline-flex}.fil-toggle a{color:var(--ink-soft);border-radius:999px;padding:8px 16px;font-size:.85rem;font-weight:550}.fil-toggle a[aria-current=true]{background:var(--print);color:var(--ink);box-shadow:0 1px 3px oklch(.3 .04 var(--hue) / .15)}.thread{top:0;bottom:0;left:calc(var(--gutter) * -.5 - 4px);pointer-events:none;width:24px;position:absolute;overflow:visible}.thread path{fill:none;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;vector-effect:non-scaling-stroke}.thread .thread-ghost{stroke:var(--paper-shade)}.month{content-visibility:auto;contain-intrinsic-size:auto 900px;grid-template-columns:minmax(220px,1fr) minmax(0,3.2fr);gap:clamp(24px,4vw,72px);padding:clamp(48px,9vh,110px) 0;display:grid;position:relative}.month-aside{align-self:start;position:sticky;top:clamp(32px,12vh,120px)}.month-name{margin:0;font-size:clamp(2.8rem,4.6vw,5rem);font-style:italic;font-weight:340}.month-year{margin-top:10px;display:block}.month-age{transform-origin:0;margin-top:18px;font-size:clamp(1.7rem,2.4vw,2.2rem);display:block;transform:rotate(-3deg)}.month-count{color:var(--ink-soft);margin-top:22px;font-size:.88rem}.month-link{background:var(--ink);color:var(--paper);white-space:nowrap;transition:transform .4s var(--ease-spring), background .3s;border-radius:999px;align-items:center;gap:10px;margin-top:22px;padding:11px 18px;font-size:.85rem;font-weight:600;display:inline-flex}.month-link:hover{background:var(--accent-deep);transform:translate(4px)}.month-link svg{width:16px;height:16px}.collage{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(46px,5.2vw,84px);grid-auto-flow:dense;gap:clamp(14px,1.8vw,28px);display:grid}.collage>*{min-width:0}.year-mark{color:#0000;-webkit-text-stroke:1.5px var(--paper-shade);letter-spacing:-.05em;-webkit-user-select:none;user-select:none;padding:clamp(40px,8vh,90px) 0 0;font-size:clamp(7rem,26vw,24rem);font-weight:200;line-height:.8;position:relative}.birthday{background:radial-gradient(120% 140% at 0% 0%, oklch(.93 .07 var(--hue)) 0%, transparent 60%), radial-gradient(120% 140% at 100% 100%, oklch(.9 .08 calc(var(--hue) + 60)) 0%, transparent 60%), var(--paper-deep);text-align:center;border-radius:36px;margin:clamp(24px,5vh,60px) 0 0;padding:clamp(32px,5vw,64px);position:relative;overflow:hidden}.birthday-title{margin:0;font-size:clamp(3rem,9vw,8rem);font-style:italic}.birthday .hand{margin-top:8px;font-size:clamp(1.6rem,3vw,2.4rem);display:block}.confetti{pointer-events:none;position:absolute;inset:0}.confetti span{opacity:.85;border-radius:2px;width:8px;height:14px;animation:linear infinite confetti;position:absolute;top:-10%}@keyframes confetti{to{transform:translateY(125vh)rotate(720deg)}}@media (max-width:860px){.month{grid-template-columns:1fr;gap:34px;padding-left:18px}.month-aside{z-index:2;grid-template-columns:1fr auto;align-items:end;gap:0 16px;display:grid;position:relative;top:0}.month-age{margin-top:6px}.month-count{grid-column:1;margin-top:10px}.month-link{grid-area:1/2/span 3;align-self:end}.collage{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:15vw;gap:12px;padding-right:8px}.thread{left:-12px}}.page-head{padding:clamp(40px, 8vh, 96px) var(--gutter) clamp(24px, 4vh, 48px)}.back{color:var(--ink-soft);transition:color .3s, transform .4s var(--ease-spring);align-items:center;gap:8px;font-size:.88rem;font-weight:550;display:inline-flex}.back:hover{color:var(--ink);transform:translate(-3px)}.back svg{width:16px;height:16px}.page-title{margin:28px 0 0;font-size:clamp(4rem,13vw,11rem);font-style:italic}.page-title small{color:var(--ink-faint);letter-spacing:-.01em;margin-left:.2em;font-size:.32em;font-style:normal}.page-meta{flex-wrap:wrap;align-items:baseline;gap:10px 28px;margin-top:16px;display:flex}.page-meta .hand{font-size:clamp(1.8rem,3vw,2.5rem)}.month-pager{padding:40px var(--gutter) 140px;justify-content:space-between;gap:16px;display:flex}.month-pager a{background:var(--glass-soft);min-width:0;transition:background .3s, transform .4s var(--ease-spring);border-radius:20px;flex-direction:column;gap:4px;padding:18px 24px;display:flex}.month-pager a:hover{background:var(--glass-strong);transform:translateY(-3px)}.month-pager a:last-child{text-align:right;margin-left:auto}.month-pager .display{font-size:1.8rem;font-style:italic}.day{padding:0 var(--gutter);margin-bottom:clamp(36px,6vh,64px)}.day-title{z-index:3;margin:0 calc(var(--gutter) * -1) 14px;padding:14px var(--gutter) 10px;background:linear-gradient(var(--paper) 70%, transparent);align-items:baseline;gap:14px;display:flex;position:sticky;top:0}.day-title .hand{font-size:1.9rem}.day-title .eyebrow{font-size:.66rem}.justified{flex-wrap:wrap;gap:clamp(6px,.8vw,10px);display:flex}.justified:after{content:"";flex-grow:999999}.tile{cursor:zoom-in;transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);border-radius:6px;position:relative;overflow:hidden}.tile:hover{box-shadow:var(--shadow-print);transform:translateY(-3px)}.tile .frame{position:absolute;inset:0}.lightbox{z-index:200;background:oklch(.14 .02 var(--hue) / .97);color:oklch(.95 .01 var(--hue));overscroll-behavior:contain;touch-action:none;grid-template-rows:auto 1fr auto;display:grid;position:fixed;inset:0}.lightbox-bar{padding:max(14px, env(safe-area-inset-top)) clamp(14px, 2vw, 24px) 10px;justify-content:space-between;align-items:center;gap:12px;display:flex}.lightbox-count{font-variant-numeric:tabular-nums;opacity:.6;font-size:.82rem}.lightbox-actions{gap:6px;display:flex}.icon-btn{width:44px;height:44px;transition:background .25s, transform .3s var(--ease-spring);background:#ffffff14;background:lab(100% 0 0/.08);border-radius:999px;place-items:center;display:grid}.icon-btn:hover{background:#ffffff2e;background:lab(100% 0 0/.18)}.icon-btn:active{transform:scale(.92)}.icon-btn svg{width:20px;height:20px}.lightbox-stage{place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}.lightbox-media{cursor:grab;place-items:center;display:grid;position:absolute;inset:0 clamp(8px,6vw,96px);container-type:size}.lightbox-media:active{cursor:grabbing}.lb-frame{width:min(100cqw, 100cqh * var(--r));aspect-ratio:var(--r);border-radius:4px;position:relative;overflow:hidden;box-shadow:0 30px 80px -20px #0009;box-shadow:0 30px 80px -20px lab(0% 0 0/.6)}.lb-frame img,.lb-frame video{object-fit:contain;background:oklch(.2 .02 var(--hue));-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;inset:0}.lb-frame .lb-full{opacity:0;transition:opacity .5s var(--ease-out)}.lb-frame .lb-full.is-loaded{opacity:1}.lb-zoom{touch-action:none;place-items:center;display:grid;position:absolute;inset:0}.lb-zoom.is-zoomed{cursor:move}.lightbox-zoom-btn{display:none}@media (hover:hover) and (pointer:fine){.lightbox-zoom-btn{display:grid}}.lb-frame.is-smooth{transition:transform .28s var(--ease-out)}.lightbox-nav{z-index:2;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:active{transform:translateY(-50%)scale(.92)}.lightbox-nav.prev{left:clamp(8px,1.5vw,24px)}.lightbox-nav.next{right:clamp(8px,1.5vw,24px)}@media (max-width:640px){.lightbox-nav{display:none}.lightbox-media{inset:0}}.lightbox-caption{padding:14px 20px max(20px, env(safe-area-inset-bottom));text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 16px;display:flex}.lightbox-caption .date{font-family:var(--font-display);font-variation-settings:"SOFT" 100;font-size:1.25rem;font-style:italic}.lightbox-caption .hand{color:oklch(.82 .1 var(--hue));font-size:1.5rem}.demo-video{text-align:center;opacity:.8;place-items:center;gap:14px;font-size:.95rem;display:grid}.grow{min-height:calc(100svh - 90px);padding:clamp(20px, 4vh, 40px) var(--gutter) clamp(96px, 13vh, 130px);grid-template-rows:auto 1fr auto;gap:clamp(12px,2vh,24px);display:grid}.grow-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.grow-stage{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,80px);min-height:0;display:grid;position:relative}.grow-frame{aspect-ratio:4/5;background:var(--print);max-width:100%;height:min(64vh,720px);box-shadow:var(--shadow-lift);justify-self:end;padding:clamp(8px,1vw,14px) clamp(8px,1vw,14px) clamp(44px,5vw,64px);position:relative;transform:rotate(-1.5deg)}.grow-frame-inner{background:var(--paper-deep);width:100%;height:100%;position:relative;overflow:hidden}.grow-frame-inner img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.grow-frame .print-caption{font-size:clamp(1.3rem,2vw,1.8rem)}.grow-age{text-wrap:balance;min-height:2em;margin:0;font-size:clamp(3.2rem,6.4vw,6.8rem);font-style:italic}.grow-month{margin-top:18px;display:block}.grow-controls{grid-template-columns:auto 1fr;align-items:center;gap:clamp(16px,2vw,28px);display:grid}.play{background:var(--ink);height:60px;color:var(--paper);white-space:nowrap;min-width:250px;box-shadow:0 10px 30px -10px oklch(.3 .05 var(--hue) / .6);transition:transform .4s var(--ease-spring), background .4s, box-shadow .4s;border-radius:999px;align-items:center;gap:12px;padding:0 22px 0 8px;font-size:.95rem;font-weight:600;display:inline-flex}.play:hover{transform:scale(1.03)}.play:active{transform:scale(.97)}.play.is-playing{background:var(--accent-deep);box-shadow:0 0 0 6px oklch(.8 .08 var(--hue) / .45), 0 10px 30px -10px oklch(.3 .1 var(--hue) / .7)}.play-icon{background:color-mix(in oklch, currentColor 16%, transparent);border-radius:999px;place-items:center;width:44px;height:44px;display:grid;position:relative}.play-icon svg:not(.play-ring){width:20px;height:20px}.play-ring{width:44px;height:44px;position:absolute;inset:0;transform:rotate(-90deg)}.play-ring circle{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round;stroke-dasharray:138.2;stroke-dashoffset:138.2px;animation:linear forwards ring}@keyframes ring{to{stroke-dashoffset:0}}@media (max-width:640px){.play{justify-content:center;width:60px;min-width:0;padding:0 8px}.play-label{display:none}}.scrubber{touch-action:none;cursor:pointer;height:64px;position:relative}.scrubber-rail{background:var(--glass);border-radius:4px;height:4px;margin-top:-2px;position:absolute;top:50%;left:0;right:0;overflow:hidden}.scrubber-fill{background:var(--accent);border-radius:4px;height:100%;display:block}.scrubber-thumb.is-playing{animation:thumb-pulse 1.6s var(--ease-out) infinite}@keyframes thumb-pulse{0%{box-shadow:0 0 0 5px var(--accent), 0 0 0 5px oklch(.64 .14 var(--hue) / .5)}to{box-shadow:0 0 0 5px var(--accent), 0 0 0 18px oklch(.64 .14 var(--hue) / 0)}}.scrubber-ticks{justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.scrubber-tick{background:var(--paper-shade);width:2px;height:14px;transition:height .3s var(--ease-out), background .3s;border-radius:2px}.scrubber-tick.is-year{background:var(--ink-faint);height:28px}.scrubber-tick.is-past{background:var(--accent)}.scrubber-label{color:var(--ink-soft);letter-spacing:.08em;font-size:.72rem;font-weight:600;position:absolute;top:100%;transform:translate(-50%)}.scrubber-thumb{background:var(--print);width:26px;height:26px;box-shadow:0 0 0 5px var(--accent), 0 8px 20px -4px oklch(.3 .05 var(--hue) / .5);pointer-events:none;border-radius:999px;margin:-13px 0 0 -13px;position:absolute;top:50%}@media (max-width:860px){.grow-stage{text-align:center;grid-template-columns:1fr;justify-items:center}.grow{padding-bottom:150px}.grow-frame{justify-self:center;height:min(50vh,540px)}.grow-age{min-height:0;font-size:clamp(3rem,13vw,5rem)}}.moments{max-width:1180px;padding:0 var(--gutter) 60px;margin:0 auto;position:relative}.moments:before{content:"";background:repeating-linear-gradient(var(--paper-shade) 0 8px, transparent 8px 16px);width:1.5px;position:absolute;top:0;bottom:0;left:50%}.moment{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,8vw,120px);padding:clamp(40px,7vh,80px) 0;display:grid;position:relative}.moment:before{content:"";background:var(--paper);width:16px;height:16px;box-shadow:0 0 0 3px var(--accent);border-radius:999px;margin:-8px 0 0 -8px;position:absolute;top:50%;left:50%}.moment.is-note:before{background:var(--accent);box-shadow:0 0 0 5px oklch(.9 .06 var(--hue))}.moment:nth-child(2n) .moment-text{order:2}.moment-date{margin-bottom:10px;display:block}.moment-title{margin:0;font-size:clamp(2.4rem,5vw,4.4rem);font-style:italic}.moment-age{transform-origin:0;margin-top:12px;font-size:1.7rem;display:block;transform:rotate(-2deg)}.moment-body{max-width:38ch;color:var(--ink-soft);margin:14px 0 0;font-size:1.05rem}.moment-photos .mosaic{box-shadow:var(--shadow-print)}@media (max-width:860px){.moments:before,.moment:before{left:10px}.moment{grid-template-columns:1fr;gap:28px;padding-left:36px}.moment:nth-child(2n) .moment-text{order:0}}.login{min-height:100svh;padding:40px var(--gutter);place-items:center;display:grid;position:relative;overflow:hidden}.login-blob{filter:blur(60px);opacity:.7;pointer-events:none;border-radius:999px;position:absolute}.login-card{text-align:center;width:min(100%,420px);position:relative}.login-title{margin:0 0 40px;font-size:clamp(6rem,26vw,11rem);font-style:italic;font-weight:320}.login-form{text-align:left;gap:14px;display:grid}.field{display:block;position:relative}.field input{background:var(--glass);width:100%;height:58px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .1);font:inherit;color:var(--ink);border:0;border-radius:18px;outline:none;padding:22px 20px 6px;font-size:1rem;transition:box-shadow .3s,background .3s}.field input:focus{background:var(--glass-strong);box-shadow:inset 0 0 0 2px var(--accent), 0 10px 30px -14px oklch(.4 .1 var(--hue) / .5)}.field span{color:var(--ink-faint);pointer-events:none;transform-origin:0 0;transition:transform .3s var(--ease-out), color .3s;font-size:1rem;position:absolute;top:19px;left:20px}.field input:focus+span,.field input:not(:placeholder-shown)+span,.field input:autofill+span{color:var(--ink-soft);transform:translateY(-11px)scale(.72)}.field input:-webkit-autofill+span{color:var(--ink-soft);transform:translateY(-11px)scale(.72)}.field input:-webkit-autofill{-webkit-text-fill-color:var(--ink);transition:background-color 9999s ease-out,box-shadow .3s}.login-submit{background:var(--ink);height:58px;color:var(--paper);transition:transform .4s var(--ease-spring), background .3s, opacity .3s;border-radius:18px;margin-top:8px;font-size:1rem;font-weight:600}.login-submit:hover{background:var(--accent-deep);transform:translateY(-2px)}.login-submit:disabled{opacity:.6;transform:none}.login-error{text-align:center;color:#b02a2d;color:lab(40.2801% 53.7849 33.3129);margin:4px 0 0;font-size:.92rem}.login-hint{text-align:center;color:var(--ink-soft);margin-top:28px;font-size:.85rem}.notice{max-width:720px;padding:0 var(--gutter);margin:18vh auto}.notice h1{margin:0 0 20px;font-size:clamp(2.6rem,6vw,4.2rem);font-style:italic}.notice ol{padding-left:1.2em;line-height:1.9}.notice code,.notice pre{background:var(--paper-deep);border-radius:8px;padding:2px 6px;font-size:.85em}.notice pre{white-space:pre-wrap;word-break:break-word;padding:14px 16px}.footer{padding:60px var(--gutter) 150px;text-align:center;color:var(--ink-soft)}.footer .display{color:var(--ink);font-size:clamp(2.4rem,6vw,4.5rem);font-style:italic}.footer .hand{margin-top:12px;font-size:1.6rem;display:block}.demo-banner{z-index:60;background:var(--ink);color:var(--paper);letter-spacing:.04em;box-shadow:0 6px 20px -8px oklch(.2 .04 var(--hue) / .6);border-radius:999px;padding:7px 14px;font-size:.75rem;font-weight:600;position:fixed;top:12px;right:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.collage-cell{grid-column:span var(--c);grid-row:span var(--r);opacity:0;translate:0 calc(var(--nudge) + 28px);transition:opacity .9s var(--ease-out) calc(min(var(--i), 6) * 60ms), translate .9s var(--ease-out) calc(min(var(--i), 6) * 60ms)}.collage.is-visible .collage-cell{opacity:1;translate:0 var(--nudge)}@media (max-width:860px){.collage-cell{grid-column:span var(--cm);grid-row:span var(--rm)}}.hero-title .letter{opacity:0;filter:blur(8px);animation:rise 1.1s var(--ease-out) forwards;transform:translateY(.35em)rotate(6deg)}@keyframes rise{to{opacity:1;filter:none;transform:none}}.day{scroll-margin-top:20px}.grow-dots{gap:6px;display:flex;position:absolute;bottom:clamp(16px,2vw,24px);right:clamp(12px,1.4vw,18px)}.grow-dots span{background:var(--paper-shade);width:6px;height:6px;transition:background .6s, width .6s var(--ease-out);border-radius:999px}.grow-dots span.is-on{background:var(--accent);width:16px}.stack-new{z-index:2;background:var(--accent-deep);color:#fff;font-family:var(--font-hand);box-shadow:0 6px 16px -6px oklch(.3 .1 var(--hue) / .6);pointer-events:none;border-radius:999px;padding:4px 14px 6px;font-size:1.25rem;line-height:1;position:absolute;top:-14px;right:-12px;transform:rotate(6deg)}.topbar{z-index:10;padding:18px var(--gutter);justify-content:center;align-items:center;gap:16px 28px;display:flex;position:relative}.topbar-links{background:var(--glass-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:999px;gap:6px;padding:5px;display:flex}.topbar-links a{min-height:46px;color:var(--ink-soft);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.98rem;font-weight:600;transition:background .3s,color .3s;display:inline-flex}.topbar-links a:hover{color:var(--ink);background:var(--glass)}.topbar-links a,.nav a{isolation:isolate;position:relative}.topbar-links a[aria-current=page],.topbar-links a.is-lit,.topbar-links a.is-lit:hover{color:var(--paper)}.topbar-links .nav-pill{background:var(--ink);box-shadow:none}.topbar-slot{justify-content:center;min-height:56px;display:flex}.topbar-links svg{flex:none;width:19px;height:19px}@media (max-width:1100px){.topbar{flex-wrap:wrap}.topbar-slot{order:3;width:100%}.topbar-links{width:100%}.topbar-links a{flex:1;padding:0 10px}}@media (min-width:641px) and (max-width:960px){.topbar-links{gap:2px}.topbar-links a{text-align:center;border-radius:18px;flex-direction:column;gap:3px;min-width:0;min-height:58px;padding:6px 4px;font-size:.85rem;line-height:1.15}}@media (max-width:640px){.topbar{gap:12px;padding-top:14px}.topbar-slot{min-height:176px}.topbar-links{border-radius:22px;grid-template-columns:1fr 1fr;align-self:start;display:grid}.topbar-links a{border-radius:16px;min-height:50px}.topbar-links a:last-child:nth-child(odd){grid-column:span 2}}.messages-page{min-height:calc(100svh - 90px);padding-bottom:160px}.messages-head{max-width:860px;padding:clamp(20px, 4vh, 40px) var(--gutter) 14px;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0 auto;display:flex}.messages-head h1{color:var(--accent-deep);margin:0;font-size:clamp(2.4rem,5vw,3.6rem);font-style:italic}.messages-head p{margin:0;font-size:clamp(1.25rem,2vw,1.5rem);transform:rotate(-1.5deg)}.messages-form-wrap{max-width:860px;padding:0 var(--gutter);margin:0 auto clamp(40px,8vh,80px)}.messages-empty{text-align:center;margin:0 auto}.msg-timeline{list-style:none}.msg-timeline .moment-title{font-size:clamp(2.2rem,4.2vw,3.6rem)}.message-form{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 16px 40px -28px oklch(.3 .06 var(--hue) / .35);border-radius:22px;grid-template-columns:minmax(0,1fr) 170px;gap:8px;padding:12px;display:grid}.mf-title{grid-column:1/-1;margin:4px 6px 2px}.message-form input,.message-form textarea{background:var(--glass-strong);width:100%;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .1);font:inherit;color:var(--ink);border:0;border-radius:12px;outline:none;padding:11px 14px;font-size:.95rem;transition:box-shadow .3s}.message-form input:focus,.message-form textarea:focus{box-shadow:inset 0 0 0 2px var(--accent)}.mf-compose{grid-column:1/-1;align-items:flex-end;gap:8px;display:flex}.message-form textarea{resize:none;field-sizing:content;flex:1;min-height:46px;max-height:220px;line-height:1.45}.mf-send{background:var(--ink);height:46px;color:var(--paper);white-space:nowrap;transition:background .3s, transform .3s var(--ease-spring);border-radius:12px;align-items:center;gap:8px;padding:0 20px;font-weight:600;display:inline-flex}.mf-send:hover{background:var(--accent-deep)}.mf-send:disabled{opacity:.75}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:15px;height:15px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:640px){.message-form{grid-template-columns:1fr}.mf-compose{flex-direction:column;align-items:stretch}.mf-send{justify-content:center}}.mf-status{text-align:left;color:var(--accent-deep);grid-column:1/-1;margin:2px 6px 0;font-size:.92rem;font-weight:600}.mf-status.is-error{color:#b02a2d;color:lab(40.2801% 53.7849 33.3129)}.msg-card{background:var(--print);box-shadow:var(--shadow-print);transform:rotate(var(--tilt));border-radius:3px;margin:0;padding:clamp(22px,2.6vw,34px) clamp(22px,3vw,40px);position:relative}.msg-card:before{content:"";background:oklch(.88 .06 var(--hue) / .72);width:90px;height:22px;position:absolute;top:-11px;left:50%;transform:translate(-50%)rotate(-2deg)}.msg-text{font-family:var(--font-display);font-variation-settings:"SOFT" 100;color:var(--ink);background:repeating-linear-gradient(transparent 0 30px, oklch(.85 .035 var(--hue) / .6) 30px 31px, transparent 31px 32px);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding-bottom:1px;font-size:1.12rem;line-height:32px}.mf-confirm{background:var(--paper);width:min(520px,100vw - 32px);color:var(--ink);box-shadow:0 40px 100px -30px oklch(.2 .05 var(--hue) / .6);border:0;border-radius:28px;padding:clamp(22px,3vw,32px)}.mf-confirm::backdrop{background:oklch(.2 .03 var(--hue) / .45);-webkit-backdrop-filter:blur(4px)}.mf-confirm[open]{animation:confirm-in .35s var(--ease-out)}@keyframes confirm-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}.mf-confirm h3{margin:0;font-size:1.9rem;font-style:italic}.mf-confirm-note{color:var(--ink-soft);margin:6px 0 18px;font-size:.92rem}.mf-preview{background:var(--print);max-height:40vh;box-shadow:var(--shadow-print);border-radius:6px;padding:18px 22px;overflow:auto}.mf-preview-text{font-family:var(--font-display);font-variation-settings:"SOFT" 100;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1.05rem;line-height:1.6}.mf-confirm-actions{grid-template-columns:1fr 1.4fr;gap:10px;margin-top:22px;display:grid}.mf-confirm-actions .login-submit{margin:0}.mf-cancel{height:58px;color:var(--ink-soft);background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .14);border-radius:18px;font-weight:600}.mf-cancel:hover{color:var(--ink)}.mf-preview-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 14px;margin-bottom:8px;display:flex}.mf-preview-sender{font-size:1.8rem;line-height:1}.moment.is-pending .msg-card{opacity:.7;background:linear-gradient(110deg, transparent 30%, #ffffffb3 50%, transparent 70%) 0 0 / 250% 100%, var(--print);animation:1.6s linear infinite shimmer}@supports (color:lab(0% 0 0)){.moment.is-pending .msg-card{background:linear-gradient(110deg, transparent 30%, lab(100% 0 0/.7) 50%, transparent 70%) 0 0 / 250% 100%, var(--print)}}.moment.is-pending:before{animation:1.2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{50%{box-shadow:0 0 0 12px oklch(.9 .06 var(--hue) / .3)}}.moment.is-deleting{opacity:.4;transition:opacity .4s}.msg-saving{color:var(--accent-deep);align-items:center;gap:8px;margin:10px 0 0;font-size:.82rem;font-weight:600;display:flex}.msg-actions{color:var(--ink-soft);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 10px;margin-top:12px;font-size:.82rem;display:flex}.msg-actions button{color:var(--ink-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .18);border-radius:999px;padding:5px 12px;font-weight:600;transition:color .2s,background .2s}.msg-actions button:hover{color:var(--ink);background:var(--paper-deep)}.msg-actions .msg-danger{color:#fff;box-shadow:none;background:#c13c3b;background:lab(46.0946% 53.6611 32.391)}.msg-actions .msg-danger:hover{color:#fff;background:#a92227;background:lab(37.9535% 53.8391 33.7998)}.msg-error{text-align:right;color:#b02a2d;color:lab(40.2801% 53.7849 33.3129);width:100%}.moment-link{margin-top:16px}.gifts{max-width:1180px;padding:0 var(--gutter);margin:0 auto}.gifts-head{max-width:1180px}.gift-lists{flex-wrap:wrap;gap:6px;margin:8px 0 18px;display:flex}.gift-lists>button{color:var(--ink-soft);background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .1);border-radius:999px;padding:9px 16px;font-size:.9rem;font-weight:600}.gift-lists>button[aria-selected=true]{background:var(--ink);color:var(--paper)}.gift-lists-new{border:1.5px dashed var(--paper-shade)!important;box-shadow:none!important;background:0 0!important}.gift-summary{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.gift-add{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 16px 40px -28px oklch(.3 .06 var(--hue) / .35);border-radius:22px;grid-template-columns:170px minmax(0,1fr);gap:16px;margin-bottom:28px;padding:14px;display:grid}.gift-add-media,.gift-media{aspect-ratio:1;background:#fff;border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden}.gift-add-media img,.gift-media img{object-fit:contain;width:100%;height:100%;padding:10px}.gift-add-placeholder{color:var(--accent);font-size:2.6rem}.gift-add-fields{align-content:start;gap:8px;display:grid}.gift-add-fields .mf-title{margin:2px 2px 0}.gift-add input,.gift-who{background:var(--glass-strong);width:100%;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .12);font:inherit;color:var(--ink);border:0;border-radius:12px;outline:none;padding:11px 14px;font-size:.95rem}.gift-add input:focus,.gift-who:focus{box-shadow:inset 0 0 0 2px var(--accent)}.gift-add-row{grid-template-columns:160px 1fr;gap:8px;display:grid}.gift-add-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.gift-add-actions .mf-cancel{border-radius:12px;height:46px;padding:0 18px}.gift-hint{color:var(--ink-soft);margin:0 2px;font-size:.85rem}.gift-hint.is-error{color:#b02a2d;color:lab(40.2801% 53.7849 33.3129)}.gift-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:clamp(16px,2vw,26px);margin:0;padding:0 0 40px;list-style:none;display:grid}.gift{background:var(--print);box-shadow:var(--shadow-print);transition:transform .4s var(--ease-spring), box-shadow .4s, opacity .3s;border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.gift:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px)}.gift.is-busy{opacity:.6}.gift .gift-media{border-bottom:1px solid oklch(.9 .02 var(--hue));border-radius:0}.gift.is-reserved .gift-media img,.gift.is-reserved .gift-name,.gift.is-reserved .gift-price{opacity:.45}.gift-ribbon{background:var(--accent-deep);color:#fff;white-space:nowrap;box-shadow:0 8px 20px -8px oklch(.3 .1 var(--hue) / .6);border-radius:999px;padding:6px 16px 8px;font-size:1.3rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-6deg)}.gift-body{flex-direction:column;flex:1;gap:6px;padding:14px 16px 16px;display:flex}.gift-name{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.98rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.gift-price{color:var(--accent-deep);margin:0;font-size:1.4rem;font-style:italic}.gift-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;display:flex}.gift-link{color:var(--ink-soft);text-underline-offset:3px;font-size:.88rem;font-weight:600;text-decoration:underline}.gift-link:hover{color:var(--ink)}.gift-take{height:40px;padding:0 16px}.gift-small,.gift-owner button{color:var(--ink-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .18);border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:600}.gift-owner{color:var(--ink-soft);align-items:center;gap:6px;margin-top:6px;font-size:.8rem;display:flex}.gift-owner .msg-danger{color:#fff;box-shadow:none;background:#c13c3b;background:lab(46.0946% 53.6611 32.391)}.gift-who{margin:4px 0 0}@media (max-width:640px){.gift-add{grid-template-columns:1fr}.gift-add-media{justify-self:center;width:120px}.gift-add-row{grid-template-columns:1fr}.gift-grid{grid-template-columns:1fr 1fr;gap:12px}.gift-body{padding:10px 12px 12px}.gift-take{justify-content:center;width:100%}.gift-ribbon{font-size:1rem}}.gift-lists>button{align-items:center;gap:8px;display:inline-flex}.gift-lists-badge{letter-spacing:.06em;text-transform:uppercase;background:oklch(.5 .05 var(--hue) / .12);border-radius:999px;padding:2px 7px;font-size:.66rem;font-weight:700}.gift-lists>button[aria-selected=true] .gift-lists-badge{background:#ffffff2e;background:lab(100% 0 0/.18)}.gift-newlist{background:var(--glass);max-width:640px;box-shadow:inset 0 0 0 1px var(--glass-edge), 0 16px 40px -28px oklch(.3 .06 var(--hue) / .35);border-radius:22px;gap:10px;margin-bottom:24px;padding:16px;display:grid}.gift-newlist input{background:var(--glass-strong);width:100%;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .12);font:inherit;color:var(--ink);border:0;border-radius:12px;outline:none;padding:11px 14px}.gift-newlist input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.gift-visibility{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gift-visibility button{text-align:left;background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .14);border-radius:14px;gap:4px;padding:12px 14px;transition:box-shadow .2s,background .2s;display:grid}.gift-visibility button span{color:var(--ink-soft);font-size:.8rem;line-height:1.35}.gift-visibility button[aria-checked=true]{background:var(--glass-strong);box-shadow:inset 0 0 0 2px var(--accent)}.gift-listbar{background:var(--glass-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .1);color:var(--ink-soft);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;margin-bottom:18px;padding:12px 16px;font-size:.9rem;display:flex}.gift-listbar.is-public{background:oklch(.93 .05 var(--hue) / .7)}.gift-listbar p{flex:320px;margin:0}.gift-listbar strong{color:var(--ink)}.gift-listbar-actions{align-items:center;gap:8px;display:flex}.gift-listbar .mf-send{height:40px}.gift-public-intro{max-width:640px;color:var(--ink-soft);margin:0 0 14px}.public-list .messages-head{padding-top:clamp(32px,7vh,72px)}@media (max-width:640px){.gift-visibility{grid-template-columns:1fr}}.public-list-kicker{width:100%;font-family:var(--font-display);color:var(--ink-soft);margin:0;font-size:clamp(1rem,1.6vw,1.25rem);font-style:italic}.gift-lists>button[aria-selected=true]{box-shadow:0 0 0 3px oklch(.85 .07 var(--hue)), 0 6px 16px -8px oklch(.3 .06 var(--hue) / .6)}.gift-current{border-left:4px solid var(--accent);margin:6px 0 14px;padding-left:16px}.gift-current .eyebrow{margin-bottom:4px;display:block}.gift-current-name{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;font-size:clamp(2rem,4.5vw,3.2rem);font-style:italic;line-height:1.05;display:flex}.gift-current-badge{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--glass-strong);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .15);border-radius:999px;padding:5px 12px;font-size:.78rem;font-style:normal;font-weight:700}.gift-current-badge.is-public{color:#fff;background:var(--accent-deep);box-shadow:none}.stats-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:8px 0 18px;display:grid}.stats-card{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge);color:var(--ink-soft);border-radius:18px;gap:2px;padding:16px 18px;font-size:.85rem;display:grid}.stats-card .display{color:var(--accent-deep);font-size:2.2rem;font-style:italic;line-height:1.1}.stats-cols{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.stats-box{background:var(--glass-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:18px;margin-bottom:12px;padding:16px 18px}.stats-box h2{margin:0 0 12px}.stats-bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.stats-bars li{grid-template-columns:minmax(110px,40%) 1fr 34px;align-items:center;gap:10px;font-size:.88rem;display:grid}.stats-bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats-bar{background:oklch(.5 .05 var(--hue) / .1);border-radius:999px;height:8px;overflow:hidden}.stats-bar span{background:var(--accent);border-radius:999px;height:100%;display:block}.stats-bar-n{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.stats-warn{color:#972527;color:lab(34.6852% 47.4343 29.205);background:#ffdfdbcc;background:lab(91.4148% 15.3747 8.32741/.8);border-radius:12px;margin:0 0 12px;padding:10px 14px;font-size:.88rem;font-weight:600}.stats-log{margin:0;padding:0;font-size:.85rem;list-style:none}.stats-log li{border-top:1px solid oklch(.4 .04 var(--hue) / .08);grid-template-columns:190px 115px 100px minmax(0,1.2fr) minmax(0,1fr) 90px;align-items:center;gap:10px;padding:8px 4px;display:grid}.stats-log li.is-fail{color:#a83634;color:lab(40.499% 47.3146 28.368)}.stats-when{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.stats-kind{background:oklch(.5 .05 var(--hue) / .1);border-radius:999px;justify-self:start;padding:2px 9px;font-size:.72rem;font-weight:700}.stats-kind.kind-connexion{background:var(--accent-deep);color:#fff}.stats-kind.kind-échec-connexion{color:#fff;background:#c13c3b;background:lab(46.0946% 53.6611 32.391)}.stats-place,.stats-device{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats-ip{color:var(--ink-faint);font-family:ui-monospace,monospace;font-size:.78rem}@media (max-width:760px){.stats-cols{grid-template-columns:1fr}.stats-log li{grid-template-columns:1fr auto;gap:2px 10px}.stats-place,.stats-device{grid-column:1/-1}.stats-ip{display:none}}.gift-add-side{align-content:start;gap:8px;display:grid}.gift-thumbs{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.gift-thumbs button{aspect-ratio:1;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .14);background:#fff;border-radius:8px;overflow:hidden}.gift-thumbs button[aria-checked=true]{box-shadow:0 0 0 2px var(--accent)}.gift-thumbs img{object-fit:contain;width:100%;height:100%;padding:3px}.gift-url{gap:6px;display:flex}.gift-url input{flex:1}.gift-url .gift-small{width:46px;font-size:1.1rem}.gift-hint .spinner{vertical-align:-1px;width:12px;height:12px;margin-right:6px}.gift-report{flex-wrap:wrap;gap:4px 12px;margin:0 2px;font-size:.85rem;font-weight:600;display:flex}.gift-report .ok{color:#21763c;color:lab(43.5038% -36.3107 24.0307)}.gift-report .ko{color:#b74b21;color:lab(46.6028% 42.9786 45.9653)}.gift-report em{width:100%;color:var(--ink-soft);font-style:normal;font-weight:400}@media (max-width:640px){.gift-add-side{justify-items:center}.gift-thumbs{width:220px}}.gift-small,.gift-owner button,.msg-actions button{align-items:center;gap:6px;display:inline-flex}.gift-small .spinner,.gift-owner .spinner,.msg-actions .spinner{border-width:1.5px;width:11px;height:11px}.gift-small:disabled,.gift-owner button:disabled{opacity:.8;cursor:progress}.gift-listbar-delete{border-top:1px dashed oklch(.4 .04 var(--hue) / .15);flex-wrap:wrap;align-items:center;gap:6px 8px;width:100%;padding-top:10px;font-size:.85rem;display:flex}.gift-delete-list{color:#a83634!important;color:lab(40.499% 47.3146 28.368)!important}.gift-small.msg-danger{color:#fff;box-shadow:none;background:#c13c3b;background:lab(46.0946% 53.6611 32.391)}.admin-panel{color:var(--ink-soft);gap:10px;font-size:.9rem;display:grid}.admin-panel p{margin:0}.admin-panel.is-on{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-panel.is-on strong{color:#09672e;color:lab(37.6918% -36.456 24.3006)}.admin-row{gap:8px;max-width:460px;display:flex}.admin-row input{background:var(--glass-strong);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .12);font:inherit;color:var(--ink);border:0;border-radius:12px;outline:none;flex:1;padding:11px 14px}.admin-row input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.login-request{text-align:center;color:var(--ink-soft);margin:4px 0 0;font-size:.92rem}.login-request a{color:var(--accent-deep);text-underline-offset:3px;font-weight:600;text-decoration:underline}.request-kicker{color:var(--ink-soft);margin:0 0 -.2em;font-size:1.3rem;font-style:italic}.request-intro{color:var(--ink-soft);margin:0 0 22px;line-height:1.5}.request-done{text-align:center;color:var(--ink-soft);gap:12px;display:grid}.request-done .display{color:var(--ink);margin:0;font-size:2rem;font-style:italic}.request-back{place-items:center;text-decoration:none;display:grid}.login-submit .spinner{vertical-align:-2px}.stats-account{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.accounts{gap:8px;margin:0;padding:0;list-style:none;display:grid}.account{background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:10px 12px;display:flex}.account.is-en-attente{box-shadow:inset 0 0 0 2px oklch(.8 .1 var(--hue))}.account.is-refusé,.account.is-busy{opacity:.6}.account-who{color:var(--ink-soft);gap:1px;font-size:.88rem;display:grid}.account-who strong{color:var(--ink);font-size:1rem}.account-meta{font-size:.78rem}.account-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.account-actions>button{white-space:nowrap}.account-actions .mf-send{height:36px;padding:0 14px}.account .gift-hint{width:100%}.login-or{color:var(--ink-faint);align-items:center;gap:12px;margin:6px 0 2px;font-size:.82rem;display:flex}.login-or:before,.login-or:after{content:"";background:oklch(.4 .04 var(--hue) / .15);flex:1;height:1px}.login-ask{background:var(--glass-strong);height:56px;box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent-deep);transition:background .3s, transform .4s var(--ease-spring), box-shadow .3s;border-radius:18px;justify-content:center;align-items:center;gap:10px;font-size:1rem;font-weight:600;display:flex}.login-ask:hover{background:var(--print);box-shadow:inset 0 0 0 2px var(--accent-deep), 0 10px 24px -14px oklch(.4 .1 var(--hue) / .6);transform:translateY(-2px)}.login-ask svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.login-error:empty{display:none}.login-hero{margin-bottom:40px;display:inline-block;position:relative}.login-hero .login-title{margin-bottom:0}.login-face{object-fit:cover;border:5px solid var(--print);width:clamp(76px,22vw,116px);height:clamp(76px,22vw,116px);box-shadow:0 14px 30px -12px oklch(.3 .08 var(--hue) / .55), 0 0 0 1px oklch(.4 .04 var(--hue) / .08);animation:face-in .9s var(--ease-spring) .2s both, face-float 6s ease-in-out 1.2s infinite;border-radius:50%;position:absolute;top:-14%;left:calc(100% - .12em);transform:rotate(8deg)}@keyframes face-in{0%{opacity:0;transform:rotate(-20deg)scale(.4)}}@keyframes face-float{50%{transform:rotate(4deg)translateY(-6px)}}@media (max-width:640px){.login-face{top:-18%;left:calc(100% - .08em)}}.lightbox.with-comments{grid-template-columns:minmax(0,1fr) min(380px,36vw)}.lightbox.with-comments .lightbox-bar{grid-column:1/-1}.lightbox.with-comments .lightbox-stage,.lightbox.with-comments .lightbox-caption{grid-column:1}.lightbox-comments-btn{position:relative}.lightbox-comments-btn.is-on{background:#ffffff40;background:lab(100% 0 0/.25)}.lightbox-comments-count{background:oklch(.7 .15 var(--hue));color:#fff;text-align:center;border-radius:999px;min-width:19px;height:19px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:19px;position:absolute;top:-3px;right:-3px}.comments{background:var(--paper);min-height:0;color:var(--ink);border-radius:20px;grid-area:2/2/span 2;grid-template-rows:auto 1fr auto;margin:0 12px 12px 0;display:grid;overflow:hidden;box-shadow:0 20px 60px -20px #0009;box-shadow:0 20px 60px -20px lab(0% 0 0/.6)}.comments-head{border-bottom:1px solid oklch(.4 .04 var(--hue) / .1);justify-content:space-between;align-items:center;padding:12px 12px 8px 18px;display:flex}.comments-head h2{margin:0;font-size:1.5rem;font-style:italic}.comments-head .icon-btn{background:var(--glass);width:36px;height:36px;color:var(--ink)}.comments-list{align-content:start;gap:10px;padding:12px 16px;display:grid;overflow-y:auto}.comments-empty{color:var(--ink-soft);align-items:center;gap:8px;margin:8px 0;font-size:.9rem;display:flex}.comment{background:var(--print);box-shadow:0 1px 2px oklch(.3 .04 var(--hue) / .08);border-radius:14px;padding:10px 12px;transition:opacity .3s}.comment.is-busy{opacity:.5}.comment header{color:var(--ink-faint);justify-content:space-between;align-items:baseline;gap:8px;font-size:.78rem;display:flex}.comment header strong{font-family:var(--font-hand);color:var(--accent-deep);font-size:1.3rem;font-weight:600}.comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;font-size:.95rem;line-height:1.45}.comment-actions{color:var(--ink-soft);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px 10px;margin-top:6px;font-size:.8rem;display:flex}.comment-link{color:var(--ink-soft);text-underline-offset:2px;align-items:center;gap:6px;font-size:.8rem;font-weight:600;text-decoration:underline;display:inline-flex}.comment-link:hover{color:var(--ink)}.comment-edit textarea,.comments-form textarea{background:var(--glass-strong);width:100%;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .14);font:inherit;color:var(--ink);resize:none;field-sizing:content;border:0;border-radius:12px;outline:none;max-height:160px;padding:10px 12px;font-size:.95rem}.comment-edit textarea{margin-top:6px}.comment-edit textarea:focus,.comments-form textarea:focus{box-shadow:inset 0 0 0 2px var(--accent)}.comment-save{background:var(--ink);color:#fff!important;box-shadow:none!important}.comments-form{border-top:1px solid oklch(.4 .04 var(--hue) / .1);grid-template-columns:1fr auto;align-items:end;gap:8px;padding:12px 14px 14px;display:grid}.comments-form .mf-send{height:42px}.comments-form .gift-hint{grid-column:1/-1}@media (max-width:760px){.lightbox.with-comments{grid-template-columns:1fr}.comments{left:8px;right:8px;bottom:max(8px, env(safe-area-inset-bottom));z-index:5;height:62vh;margin:0;position:fixed}}.bell{top:max(14px, var(--safe-top));z-index:60;position:fixed;right:14px}.bell-btn{background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);width:46px;height:46px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 8px 24px -10px oklch(.3 .05 var(--hue) / .4);color:var(--ink);transition:transform .3s var(--ease-spring);border-radius:999px;place-items:center;display:grid;position:relative}.bell-btn:hover{transform:scale(1.06)}.bell-btn svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.bell-count{background:var(--accent-deep);color:#fff;text-align:center;min-width:20px;height:20px;box-shadow:0 0 0 2px var(--paper);animation:bell-pop .5s var(--ease-spring);border-radius:999px;padding:0 5px;font-size:.72rem;font-weight:700;line-height:20px;position:absolute;top:-2px;right:-2px}@keyframes bell-pop{0%{transform:scale(0)}}.bell-panel{background:var(--paper);width:min(360px,100vw - 28px);max-height:min(70vh,560px);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 24px 60px -20px oklch(.2 .05 var(--hue) / .5);animation:confirm-in .25s var(--ease-out);border-radius:20px;padding:14px 10px 10px;position:absolute;top:54px;right:0;overflow-y:auto}.bell-title{margin:0 8px 8px;font-size:1.4rem;font-style:italic}.bell-empty{color:var(--ink-soft);align-items:center;gap:8px;margin:6px 8px 10px;font-size:.9rem;display:flex}.bell-panel ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.bell-item{text-align:left;border-radius:14px;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;width:100%;padding:8px;transition:background .2s;display:grid}.bell-item:hover{background:var(--glass)}.bell-item.is-new{background:color-mix(in oklch, var(--accent) 18%, transparent)}.bell-item img,.bell-thumb{object-fit:cover;background:var(--paper-deep);border-radius:10px;width:52px;height:52px}.bell-text{color:var(--ink-soft);min-width:0;font-size:.85rem;line-height:1.35}.bell-text strong{color:var(--ink)}.bell-text em{color:var(--ink-faint);margin-top:2px;font-size:.75rem;font-style:normal;display:block}@media (max-width:640px){.topbar{padding-top:66px}}.since{z-index:30;min-height:40px;padding:0 var(--gutter);animation:since-in .7s var(--ease-spring) both;justify-content:center;margin:-2px auto 6px;display:flex;position:relative}@keyframes since-in{0%{opacity:0;transform:translateY(-8px)scale(.97)}}.since-card{background:var(--print);max-width:100%;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .06), 0 14px 34px -16px oklch(.3 .08 var(--hue) / .55);color:var(--ink-soft);border-radius:26px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 10px;padding:8px 10px 8px 16px;font-size:.9rem;display:flex}.since.is-empty{min-height:0;margin:0}.since-when{font-family:var(--font-hand);color:var(--accent-deep);align-items:center;gap:6px;font-size:1.25rem;line-height:1;display:inline-flex}.since-spark{font-size:1rem;animation:2.4s ease-in-out infinite spark}@keyframes spark{50%{transform:rotate(18deg)scale(1.2)}}.since-item{background:oklch(.95 .035 var(--hue));color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;transition:background .2s, transform .3s var(--ease-spring);border-radius:999px;align-items:center;gap:5px;padding:7px 14px;font-weight:500;display:inline-flex;overflow:hidden}a.since-item:hover{background:oklch(.91 .06 var(--hue));transform:translateY(-1px)}.since-item b{color:var(--accent-deep);font-weight:800}.since-item strong{color:var(--accent-deep)}@media (max-width:640px){.since{margin-top:-8px}.since-card{border-radius:20px;justify-content:flex-start;padding:10px 12px}.since-when{width:100%;padding-right:30px}.since-card{position:relative}.since-close{position:absolute;top:6px;right:6px}.since-item.since-comment{-webkit-line-clamp:2;line-clamp:2;white-space:normal;border-radius:16px;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box}}.lightbox-cta-row{flex-basis:100%;justify-content:center;margin-top:6px;display:flex}.lightbox-comment-cta{background:oklch(.98 .02 var(--hue));max-width:100%;color:oklch(.3 .05 var(--hue));font-family:var(--font-sans);transition:transform .3s var(--ease-spring), background .2s;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:12px 22px;font-size:1rem;font-weight:700;display:inline-flex;box-shadow:0 10px 26px -12px #0009;box-shadow:0 10px 26px -12px lab(0% 0 0/.6)}.lightbox-comment-cta:hover{background:#fff;transform:translateY(-2px)}.lightbox-comment-cta svg{width:21px;height:21px;color:var(--accent-deep)}@media (max-width:640px){.lightbox-comment-cta{width:100%;padding:14px 18px}}.comment-badge{z-index:2;color:var(--accent-deep);box-shadow:0 3px 10px -3px oklch(.2 .05 var(--hue) / .45);pointer-events:none;background:#ffffffeb;background:lab(100% 0 0/.92);border-radius:999px;align-items:center;gap:4px;padding:3px 8px 3px 6px;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex;position:absolute;top:8px;right:8px}.comment-badge svg{fill:currentColor;stroke:none;width:14px;height:14px}.hero{min-height:0;padding:clamp(8px, 2vh, 24px) var(--gutter) clamp(12px, 3vh, 28px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.hero-title{font-size:clamp(3.8rem,8vw,7.4rem)}.hero-born{font-size:clamp(1.2rem,1.6vw,1.55rem)}.age-counter{gap:clamp(14px,2vw,28px);margin-top:clamp(16px,2.5vh,28px)}.age-unit .n{font-size:clamp(1.8rem,2.7vw,2.6rem)}.hero-stats{margin-top:clamp(14px,2vh,22px);font-size:.9rem}.stack{height:clamp(300px,44vh,440px)}.stack-item[style*="360px"],.stack-item{max-width:34%}@media (max-width:860px){.stack{height:320px}.stack-item{max-width:44%}}.latest{padding:clamp(18px,3vh,32px) 0 clamp(8px,2vh,16px)}.latest-head{padding:0 var(--gutter) 14px;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.latest-head h2{margin:0;font-size:clamp(2rem,4vw,3rem)}.latest-head h2 em{color:var(--accent-deep);font-style:italic}.latest-arrows{gap:6px;display:flex}.latest-arrows .icon-btn{background:var(--glass-strong);color:var(--ink);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .1)}.latest-track{scroll-snap-type:x mandatory;scroll-padding:0 var(--gutter);padding:4px var(--gutter) 14px;scrollbar-width:none;overscroll-behavior-x:contain;gap:12px;display:flex;overflow-x:auto}.latest-track::-webkit-scrollbar{display:none}.latest-item{scroll-snap-align:start;text-align:left;cursor:zoom-in;flex:none;gap:6px;display:grid}.latest-frame{height:clamp(150px,20vw,210px);aspect-ratio:clamp(.62, var(--r), 1.5);box-shadow:var(--shadow-print);transition:transform .4s var(--ease-spring);border-radius:12px;display:block;position:relative;overflow:hidden}.latest-item:hover .latest-frame{transform:translateY(-3px)}.latest-frame .frame{position:absolute;inset:0}.latest-when{color:var(--ink-faint);padding-left:2px;font-size:.76rem}@media (max-width:640px){.latest-arrows{display:none}.latest-frame{height:140px}}.hero.hero-compact{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 40px;min-height:0;padding-top:clamp(10px,2.5vh,28px);padding-bottom:0;display:flex}.hero-compact .hero-born{margin-top:.25em}.hero-facts{justify-items:end;gap:8px;padding-bottom:6px;display:grid}.hero-facts .age-counter{margin-top:0}.hero-facts .hero-stats{text-align:right;max-width:none;margin:0}@media (max-width:760px){.hero.hero-compact{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.hero-compact .age-counter{gap:14px}.hero-compact .age-unit .n{font-size:1.7rem}.hero-facts{justify-items:start}.hero-facts .hero-stats{text-align:left}}.latest+.section{padding-top:clamp(24px,5vh,56px)}.latest-mobile-nav{display:none}@media (max-width:640px){.latest-mobile-nav{padding:0 var(--gutter);grid-template-columns:1fr 1fr;gap:10px;display:grid}.latest-mobile-nav button{background:var(--glass-strong);height:48px;box-shadow:inset 0 0 0 1.5px oklch(.4 .04 var(--hue) / .18);color:var(--ink);border-radius:14px;justify-content:center;align-items:center;gap:6px;font-size:1rem;font-weight:600;display:flex}.latest-mobile-nav button:active{background:var(--print);transform:scale(.98)}.latest-mobile-nav svg{width:20px;height:20px}}.grow-age{min-height:0;font-size:clamp(2.2rem,4vw,4rem)}.grow-stage{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.scrubber{margin:0 16px}.grow-controls{gap:clamp(20px,3vw,36px)}@media (max-width:860px){.grow{gap:10px;padding-top:8px}.grow-stage{grid-template-columns:1fr;gap:12px}.grow-frame{aspect-ratio:4/5;justify-self:center;width:100%;height:auto;max-height:64vh;padding:8px 8px 40px;transform:rotate(-1deg)}.grow-age{font-size:clamp(1.6rem,7vw,2.1rem)}.grow-month{margin-top:6px;font-size:.66rem}.grow-controls{gap:14px}.play{width:54px;height:54px}}.grow-frame{height:min(100svh - 300px,820px)}.grow-head{margin-top:-8px}@media (max-width:860px){.grow-head .eyebrow{display:none}.grow-frame{height:auto;max-height:calc(100svh - 270px)}}@media (min-width:861px){.grow{padding-top:0;padding-bottom:110px}.grow-head{margin-top:-14px;margin-bottom:-40px}.grow-frame{height:min(100svh - 280px,820px)}}.since-close{width:30px;height:30px;color:var(--ink-soft);border-radius:999px;place-items:center;margin-left:2px;font-size:1.25rem;line-height:1;transition:background .2s,color .2s;display:grid}.since-close:hover{background:var(--glass);color:var(--ink)}.latest-head h2{font-size:clamp(2.8rem,6.5vw,5.4rem);line-height:1}.latest-frame{border-radius:16px;height:clamp(210px,26vw,340px)}.latest-track{gap:16px}.latest-when{font-size:.85rem}@media (max-width:640px){.latest-frame{height:230px}.latest-head h2{font-size:2.6rem}.section-title-sm{font-size:2rem}}@media (max-width:640px){.latest-head h2{font-size:2.3rem}.latest-frame{height:190px}}.latest-frame{height:clamp(210px,26vw,340px)}@media (max-width:640px){.latest-head h2{font-size:2.15rem}.latest-frame{height:230px}}.gift-overview-hint{color:var(--ink-soft);margin:4px 0 16px}.gift-overview{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:18px;margin-bottom:24px;display:grid}.gift-listcard{text-align:left;background:var(--print);box-shadow:var(--shadow-print);transition:transform .4s var(--ease-spring), box-shadow .4s;border-radius:22px;grid-template-rows:150px auto;display:grid;overflow:hidden}.gift-listcard:hover{box-shadow:var(--shadow-lift);transform:translateY(-4px)}.gift-listcard-thumbs{border-bottom:1px solid oklch(.9 .02 var(--hue));background:#fff;grid-auto-columns:1fr;grid-auto-flow:column;place-items:center;gap:2px;display:grid}.gift-listcard-thumbs img{object-fit:contain;width:100%;height:150px;padding:12px}.gift-listcard-body{justify-items:start;gap:6px;padding:14px 18px 18px;display:grid}.gift-listcard-body strong{color:var(--ink);font-size:1.6rem;font-style:italic;font-weight:400;line-height:1.15}.gift-listcard-meta{color:var(--ink-soft);font-size:.85rem}.gift-listcard-open{color:var(--accent-deep);margin-top:4px;font-size:.9rem;font-weight:700}.gift-listcard-new{min-height:230px;box-shadow:none;border:2px dashed oklch(.75 .06 var(--hue));color:var(--accent-deep);background:0 0;grid-template-rows:none;place-content:center;justify-items:center;gap:8px;font-size:1.05rem}.gift-listcard-plus{background:var(--glass-strong);border-radius:999px;place-items:center;width:54px;height:54px;font-size:2rem;line-height:1;display:grid}.gift-back{background:var(--print);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .1), 0 6px 16px -10px oklch(.3 .06 var(--hue) / .5);color:var(--ink);transition:transform .3s var(--ease-spring);border-radius:999px;align-items:center;gap:8px;margin:4px 0 14px;padding:10px 18px 10px 14px;font-weight:700;display:inline-flex}.gift-back:hover{transform:translate(-3px)}.gift-back svg{width:18px;height:18px}.section-title{font-size:clamp(2.1rem,4.2vw,3.2rem)}.section-title-sm{font-size:clamp(1.8rem,3.2vw,2.5rem)}.latest-head h2{font-size:clamp(1.9rem,3.4vw,2.8rem)}.moment-title{font-size:clamp(1.9rem,3.6vw,3rem)}@media (max-width:640px){.section-title{font-size:2rem}.section-title-sm{font-size:1.75rem}.latest-head h2{font-size:1.9rem}}.account-chip{top:max(14px, var(--safe-top));z-index:60;background:var(--accent-deep);color:#fff;width:46px;height:46px;font-family:var(--font-sans);box-shadow:0 8px 24px -10px oklch(.3 .08 var(--hue) / .6);transition:transform .3s var(--ease-spring);border-radius:999px;place-items:center;font-size:1.2rem;font-style:normal;font-weight:650;display:grid;position:fixed;right:68px}.account-chip:hover,.account-chip.is-active{box-shadow:0 0 0 3px oklch(.88 .06 var(--hue)), 0 8px 24px -10px oklch(.3 .08 var(--hue) / .6);transform:scale(1.06)}.account-wrap{max-width:720px;padding:0 var(--gutter);margin:0 auto}.account-meta-line{color:var(--ink-soft);margin:0 0 14px;font-size:.9rem}.account-form{gap:14px;display:grid}.account-form>label:not(.account-toggle){gap:5px;display:grid}.account-form>label>span{color:var(--ink-soft);font-size:.85rem;font-weight:600}.account-form small{color:var(--ink-faint);font-size:.78rem}.account-form input[type=text],.account-form input[type=email],.account-form input[type=password],.account-form input:not([type]){background:var(--glass-strong);width:100%;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .12);font:inherit;color:var(--ink);border:0;border-radius:12px;outline:none;padding:12px 14px}.account-form input:focus{box-shadow:inset 0 0 0 2px var(--accent)}.account-actions-row{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.account-status{margin:0;font-size:.88rem;font-weight:600}.account-status.is-ok{color:#197037;color:lab(41.1793% -36.3639 24.1285)}.account-status.is-error{color:#b02a2d;color:lab(40.2801% 53.7849 33.3129)}.account-toggle{background:var(--glass);cursor:pointer;border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:10px 12px;display:grid}.account-toggle input{opacity:0;pointer-events:none;position:absolute}.account-switch{background:oklch(.8 .03 var(--hue));border-radius:999px;width:46px;height:27px;transition:background .25s;position:relative}.account-switch:after{content:"";width:21px;height:21px;transition:transform .3s var(--ease-spring);background:#fff;border-radius:999px;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #0003;box-shadow:0 2px 4px lab(0% 0 0/.2)}.account-toggle input:checked+.account-switch{background:var(--accent-deep)}.account-toggle input:checked+.account-switch:after{transform:translate(19px)}.account-toggle input:focus-visible+.account-switch{outline:2px solid var(--accent-deep);outline-offset:3px}.account-toggle-text{gap:2px;display:grid}.account-toggle-text strong{color:var(--ink);font-size:.95rem}.account-session{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-logout{text-decoration:none}.account-confirm{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;font-size:.88rem;display:inline-flex}.login-forgot{text-align:right;margin:-6px 0 0;font-size:.85rem}.login-forgot a{color:var(--ink-soft);text-underline-offset:3px;text-decoration:underline}.login-forgot a:hover{color:var(--accent-deep)}.comment-badge{box-shadow:0 4px 12px -3px oklch(.2 .05 var(--hue) / .5);gap:5px;padding:5px 11px 5px 8px;font-size:.95rem;font-weight:800;top:8px;right:8px}.comment-badge svg{width:18px;height:18px}.badges{z-index:2;pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:calc(100% - 16px);display:flex;position:absolute;top:8px;right:8px}.badges .comment-badge{white-space:nowrap;flex:none;position:static}.like-badge{color:var(--ink)}.lightbox-cta-row{flex-wrap:wrap;gap:10px}.like-btn{color:#fff;transition:transform .3s var(--ease-spring), background .2s;background:#ffffff24;background:lab(100% 0 0/.14);border-radius:999px;align-items:center;gap:9px;padding:12px 22px;font-size:1rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1.5px #ffffff80;box-shadow:inset 0 0 0 1.5px lab(100% 0 0/.5)}.like-btn:hover{background:#ffffff3d;background:lab(100% 0 0/.24)}.like-btn.is-on{background:oklch(.98 .02 var(--hue));color:oklch(.3 .05 var(--hue));box-shadow:0 10px 26px -12px #0009;box-shadow:0 10px 26px -12px lab(0% 0 0/.6)}.like-btn:active .like-heart{transform:scale(1.4)}.like-heart{transition:transform .3s var(--ease-spring);font-size:1.15rem;line-height:1}.like-btn .spinner{width:13px;height:13px}.comment-like{color:var(--ink-soft);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .15);border-radius:999px;margin-right:auto;padding:3px 10px;font-size:.82rem;font-weight:600}.comment-like.is-on{color:var(--accent-deep);background:oklch(.95 .04 var(--hue));box-shadow:none}@media (max-width:640px){.like-btn{flex:1;justify-content:center;padding:14px 12px}.lightbox-cta-row .lightbox-comment-cta{flex:2;width:auto}}.likers{flex-basis:100%;justify-items:center;gap:8px;display:grid}.likers-line{color:oklch(.92 .02 var(--hue));border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px;padding:4px 10px;font-size:.9rem;display:inline-flex}.likers-line strong{color:#fff}.likers-more{text-underline-offset:3px;opacity:.8;margin-left:6px;font-size:.8rem;text-decoration:underline}.likers-list{background:var(--paper);width:min(320px,90vw);max-height:180px;color:var(--ink);text-align:left;border-radius:16px;margin:0;padding:10px 14px;list-style:none;overflow-y:auto;box-shadow:0 16px 40px -16px #0009;box-shadow:0 16px 40px -16px lab(0% 0 0/.6)}.likers-list li{border-top:1px solid oklch(.4 .04 var(--hue) / .08);justify-content:space-between;gap:10px;padding:5px 0;font-size:.92rem;display:flex}.likers-list li:first-child{border-top:0}.likers-list em{color:var(--ink-faint);font-size:.8rem;font-style:normal}.comment-like-wrap{align-items:center;gap:8px;min-width:0;margin-right:auto;display:inline-flex}.comment-like-wrap .comment-like{flex:none;margin-right:0}.comment-likers{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.stats-history-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.stats-history-head h2{margin:0}.stats-history-head .fil-toggle a{padding:6px 12px;font-size:.8rem}.account-chip-badge{color:#fff;min-width:19px;height:19px;font-family:var(--font-sans);text-align:center;box-shadow:0 0 0 2px var(--paper);background:#de3b3d;background:lab(51.5803% 63.2457 38.9399);border-radius:999px;padding:0 5px;font-size:.7rem;font-style:normal;font-weight:800;line-height:19px;position:absolute;top:-3px;right:-3px}.account-admin{box-shadow:inset 0 0 0 2px oklch(.85 .07 var(--hue))}.account-pending{color:#ba2b2e;color:lab(42.4959% 56.9739 35.4904)}.account-admin-link{text-decoration:none;display:inline-flex}.hero-face{margin-bottom:0}.hero-face .login-face{border-width:4px;width:clamp(58px,6.5vw,92px);height:clamp(58px,6.5vw,92px);top:-18%}@media (max-width:640px){.hero-face .login-face{width:60px;height:60px;top:-22%}}.lightbox-cta-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px}.like-btn,.lightbox-comment-cta{box-shadow:none;gap:6px;padding:7px 14px;font-size:.88rem}.like-btn{box-shadow:inset 0 0 0 1px #fff6;box-shadow:inset 0 0 0 1px lab(100% 0 0/.4)}.like-heart{font-size:.95rem}.lightbox-comment-cta svg{width:16px;height:16px}.likers{flex-basis:auto}.likers-line{padding:2px 6px;font-size:.8rem}@media (max-width:640px){.lightbox-cta-row{flex-wrap:nowrap}.like-btn,.lightbox-cta-row .lightbox-comment-cta{flex:none;width:auto;padding:9px 13px}.lightbox-caption .date{font-size:1.05rem}.lightbox-caption .hand{font-size:1.25rem}.likers{flex-basis:100%}}.lightbox-caption{padding:8px 12px max(10px, env(safe-area-inset-bottom));justify-items:center;gap:6px;display:grid;position:relative}.lightbox-caption .date{font-size:1rem}.lightbox-caption .hand{font-size:1.15rem}.lightbox-caption>.date,.lightbox-caption>.hand{display:inline}.lightbox-cta-row{flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;max-width:100%;margin:0;display:flex}.like-btn,.lightbox-comment-cta,.lightbox-cta-row .lightbox-comment-cta{width:auto;height:36px;box-shadow:none;border-radius:999px;flex:none;gap:6px;padding:0 14px;font-size:.88rem;font-weight:700}.like-btn{background:#ffffff1f;background:lab(100% 0 0/.12);box-shadow:inset 0 0 0 1px #ffffff59;box-shadow:inset 0 0 0 1px lab(100% 0 0/.35)}.like-btn.is-on{background:oklch(.98 .02 var(--hue));color:oklch(.3 .05 var(--hue))}.lightbox-comment-cta{background:oklch(.98 .02 var(--hue))}.likers{flex:0 auto;min-width:0;display:block;position:static}.likers-line{white-space:nowrap;text-overflow:ellipsis;text-underline-offset:3px;max-width:100%;padding:0 4px;font-size:.8rem;-webkit-text-decoration:underline #ffffff59;text-decoration:underline #ffffff59;-webkit-text-decoration:underline lab(100% 0 0/.35);text-decoration:underline lab(100% 0 0/.35);display:block;overflow:hidden}.likers-more{display:none}.likers-list{z-index:5;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}@media (max-width:640px){.like-btn,.lightbox-cta-row .lightbox-comment-cta{height:38px;padding:0 12px}}.caption-line{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 10px;line-height:1.2;display:flex}.lightbox-caption{gap:5px;padding-top:6px}.login-hero{display:block}.name-wrap{display:inline-block;position:relative}.admin-btn{top:max(14px, var(--safe-top));z-index:60;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);width:46px;height:46px;color:var(--ink);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 8px 24px -10px oklch(.3 .05 var(--hue) / .4);transition:transform .3s var(--ease-spring);border-radius:999px;place-items:center;display:grid;position:fixed;right:122px}.admin-btn:hover,.admin-btn.is-active{transform:scale(1.06)}.admin-btn.is-active{background:var(--ink);color:var(--paper)}.admin-btn svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.login-credit{left:0;right:0;bottom:max(14px, env(safe-area-inset-bottom));text-align:center;color:var(--ink-faint);margin:0;font-size:.76rem;position:absolute}.login-credit a{color:var(--ink-soft);text-underline-offset:2px;text-decoration:underline}.account-role{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;vertical-align:2px;background:oklch(.93 .05 var(--hue));color:var(--accent-deep);border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.68rem;font-weight:700}.account-role.is-owner{background:var(--accent-deep);color:#fff}.account .account-confirm .mf-send{height:34px}.account-me{color:var(--ink-faint);font-size:.82rem;font-weight:600}.admin-tabs{margin:0 0 16px}.admin-tabs a{padding:9px 18px;font-size:.9rem}.login-credit{line-height:1.6}.spinner-lg{border-width:3px;width:34px;height:34px}@keyframes loader-in{0%{opacity:0}to{opacity:1}}.nav-progress{inset:env(safe-area-inset-top,0px) 0 auto;z-index:1000;pointer-events:none;transform-origin:0;opacity:0;background:linear-gradient(90deg, var(--accent), var(--accent-deep));height:4px;box-shadow:0 0 10px var(--accent);position:fixed;transform:scaleX(0)}.nav-progress.is-loading{opacity:1;transition:transform 8s cubic-bezier(.1,.8,.2,1),opacity .2s;transform:scaleX(.85)}.nav-progress.is-done{opacity:0;transition:transform .2s ease-out,opacity .3s .15s;transform:scaleX(1)}.page-loading{min-height:60vh;color:var(--accent-deep);opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:1.1rem;animation:.3s ease-out .35s forwards loader-in;display:flex}.lb-loader{pointer-events:none;z-index:1;opacity:0;place-items:center;animation:.3s ease-out .3s forwards loader-in;display:grid;position:absolute;inset:0}.lightbox-stage:has(>.lb-loader) .lightbox-media .lb-loader{display:none}.lb-loader .spinner{color:#fff;filter:drop-shadow(0 1px 4px #0009);filter:drop-shadow(0 1px 4px lab(0% 0 0/.6))}.frame-spinner{width:22px;height:22px;color:var(--accent-deep);opacity:0;pointer-events:none;margin:-11px 0 0 -11px;animation:.4s ease-out 1.2s forwards loader-in,.8s linear infinite spin;position:absolute;top:50%;left:50%}@media (prefers-reduced-motion:reduce){.spinner,.frame-spinner{animation-duration:2.4s}.nav-progress.is-loading{transition:opacity .2s;transform:scaleX(.6)}}.menu-toggle{display:none}@media (max-width:640px){.topbar{padding-top:max(14px, env(safe-area-inset-top));justify-content:flex-start;min-height:68px;padding-bottom:8px}.menu-toggle{background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);height:46px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 8px 24px -10px oklch(.3 .05 var(--hue) / .4);color:var(--ink);font:inherit;cursor:pointer;z-index:2;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:1rem;font-weight:600;display:inline-flex;position:relative}.menu-toggle svg{width:22px;height:22px}.menu-toggle:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}.topbar-slot{min-height:0;display:none}.topbar.menu-open{z-index:40}.menu-open .topbar-slot{z-index:2;top:calc(max(14px, var(--safe-top)) + 56px);left:var(--gutter);right:var(--gutter);width:auto;animation:menu-in .25s var(--ease-out) both;display:block;position:absolute}.menu-open .topbar-links{background:var(--print);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .1), 0 20px 50px -16px oklch(.3 .05 var(--hue) / .5)}.menu-backdrop{z-index:1;background:oklch(.25 .03 var(--hue) / .25);animation:.2s ease-out both loader-in;position:fixed;inset:0}}@keyframes menu-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}}@media (prefers-reduced-motion:reduce){.menu-open .topbar-slot{animation:none}}.lightbox-preload{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.reactions{flex:none;gap:6px;display:inline-flex}.reaction{color:#fff;min-width:44px;height:36px;transition:transform .3s var(--ease-spring), background .2s;background:#ffffff1f;box-shadow:inset 0 0 0 1px #ffffff59;background:lab(100% 0 0/.12);border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:58px;padding:0 10px;font-size:.9rem;font-weight:700;display:inline-flex;box-shadow:inset 0 0 0 1px lab(100% 0 0/.35)}.reaction-count{font-variant-numeric:tabular-nums}.reaction-spinner{width:18px;height:18px;margin:0 1px}.reaction[aria-busy=true]{cursor:progress}.reaction>span[aria-hidden]{transition:transform .3s var(--ease-spring);font-size:1.15rem;line-height:1}.reaction:hover{background:#ffffff3d;background:lab(100% 0 0/.24)}.reaction:active>span[aria-hidden]{transform:scale(1.4)}.reaction.is-on{background:oklch(.98 .02 var(--hue));color:oklch(.3 .05 var(--hue));box-shadow:none}.reaction:focus-visible{outline-offset:2px;outline:2px solid #fff}.reaction:disabled{opacity:.6}.lightbox-cta-row{flex-wrap:wrap;justify-content:center;row-gap:8px}.lightbox-caption{min-width:0;max-width:100%}.lightbox{grid-template-columns:minmax(0,1fr)}.reaction-badge{color:oklch(.3 .03 var(--hue));letter-spacing:-.02em}.school{max-width:1100px;padding:0 var(--gutter);margin:0 auto}.school-section-title{font-family:var(--font-display);color:var(--ink);margin:0;font-size:clamp(1.25rem,2.6vw,1.6rem);font-style:italic;font-weight:400}.school-tabs{background:var(--glass);max-width:1100px;box-shadow:inset 0 0 0 1px var(--glass-edge);width:calc(100% - 2 * var(--gutter));border-radius:24px;grid-template-columns:1fr 1fr;gap:6px;margin:clamp(8px,2vh,20px) auto clamp(18px,3vh,28px);padding:6px;display:grid}.school-tab{min-width:0;min-height:64px;color:var(--ink-soft);-webkit-tap-highlight-color:transparent;border-radius:18px;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;transition:color .25s,background .25s;display:flex;position:relative}.school-tab:not([aria-current=page]):hover{color:var(--ink);background:#ffffff0d;background:lab(100% 0 0/.05)}.school-tab>:not(.school-tab-bg){z-index:1;position:relative}.school-tab-bg{border-radius:inherit;background:linear-gradient(135deg, var(--accent), var(--accent-deep));box-shadow:0 10px 24px -10px var(--accent), inset 0 1px 0 #ffffff40;position:absolute;inset:0}@supports (color:lab(0% 0 0)){.school-tab-bg{box-shadow:0 10px 24px -10px var(--accent), inset 0 1px 0 lab(100% 0 0/.25)}}.school-tab[aria-current=page]{color:var(--paper)}.school-tab-icon{background:#ffffff14;background:lab(100% 0 0/.08);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.school-tab[aria-current=page] .school-tab-icon{background:#fff3;background:lab(100% 0 0/.2)}.school-tab-icon svg{width:21px;height:21px}.school-tab-text{min-width:0;line-height:1.2;display:grid}.school-tab-label{font-size:1.05rem;font-weight:700}.school-tab-meta{text-overflow:ellipsis;white-space:nowrap;opacity:.8;font-size:.82rem;overflow:hidden}@media (max-width:480px){.school-tabs{border-radius:22px}.school-tab{text-align:center;flex-direction:column;justify-content:center;gap:6px;min-height:0;padding:12px 8px}.school-tab-icon{border-radius:11px;width:34px;height:34px}.school-tab-icon svg{width:19px;height:19px}.school-tab-text{justify-items:center;max-width:100%}.school-tab-label{font-size:1rem}}.school-class-pick{cursor:pointer;align-items:center;gap:8px;max-width:100%;min-height:44px;margin-bottom:6px;display:inline-flex;position:relative}.school-class-pick.is-static{cursor:default}.school-class-pick-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.school-class-pick small{color:var(--ink-soft);font-size:.72em}.school-class-pick svg{width:18px;height:18px;color:var(--accent-deep);flex:none;transform:rotate(90deg)}.school-class-pick select{opacity:0;cursor:pointer;width:100%;font-size:16px;position:absolute;inset:0}.school-class-pick:focus-within{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.school-summary{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge);color:var(--ink);border-radius:18px;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0 0 clamp(16px,3vh,28px);padding:12px 16px;font-size:clamp(.95rem,1.6vw,1.02rem);line-height:1.45;display:flex}.school-summary-when{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-deep);font-size:.74rem;font-weight:700}.school-period{margin-bottom:8px}.school-period[open]{margin-bottom:clamp(24px,5vh,44px)}.school-period>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:10px 0;list-style:none;display:flex}.school-period>summary::-webkit-details-marker{display:none}.school-period>summary:before{content:"▸";color:var(--accent-deep);transition:transform .25s var(--ease-out);align-self:center}.school-period[open]>summary:before{transform:rotate(90deg)}.school-period>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:8px}.school-period[open]>summary{margin-bottom:8px}.school-period-meta{color:var(--ink-soft);font-size:.95rem}.school-period-title{color:var(--accent-deep);margin:0;font-size:clamp(1.4rem,2.6vw,1.8rem);font-style:italic;display:inline}.school-stars{color:#e49900;color:lab(69.6014% 24.0011 85.9166);letter-spacing:1px;text-shadow:0 0 1px #81430099;text-shadow:0 0 1px lab(35.6318% 26.3314 56.7562/.6);font-size:1.15rem;line-height:1}.school-mark{color:#cc3336;color:lab(47.0381% 60.1094 37.2059);font-size:1.15rem;font-weight:800}.school-table-wrap{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 16px 40px -28px oklch(.3 .06 var(--hue) / .35);border-radius:22px;overflow-x:auto}.school-table{border-collapse:separate;border-spacing:6px;table-layout:fixed;width:100%;padding:8px}.school-table thead th{color:var(--ink-soft);padding:4px 2px;font-size:.85rem;font-weight:600}.school-table tbody th{text-align:left;width:26%;color:var(--ink);padding:8px 10px;font-size:.9rem;font-weight:500;line-height:1.3}.school-bravo th{font-size:1rem;font-weight:700}.school-week-dates{color:var(--ink-soft);font-size:.75rem;font-weight:450;display:block}.school-week-edit{font:inherit;color:inherit;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;display:inline-flex}.school-week-edit:hover,.school-week-edit:focus-visible{background:var(--glass-strong);color:var(--ink)}.school-cell{background:var(--glass-strong);height:54px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .12);text-align:center;vertical-align:middle;border-radius:12px;position:relative}.school-cell.is-empty{box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);background:0 0}.school-bravo .school-cell{height:64px}.school-cell.is-split{background:linear-gradient(to bottom right, transparent calc(50% - 1px), oklch(.5 .04 var(--hue) / .35) 50%, transparent calc(50% + 1px)), var(--glass-strong)}.school-half{line-height:1;position:absolute;transform:translate(-50%,-50%)}.school-half.is-first{top:33%;left:30%}.school-half.is-second{top:67%;left:70%}.school-cell .school-stars{font-size:2.1rem}.school-cell .school-mark{font-size:1.8rem}.school-cell.is-split .school-stars{font-size:1.7rem}.school-cell.is-split .school-mark,.school-cell.is-split .school-note-mark{font-size:1.45rem}.school-note-mark{font-size:1rem}.school-note-badge{font-size:.8rem;position:absolute;top:-6px;right:-14px}.school-cell:not(.is-split) .school-note-badge{top:4px;right:6px}.school-notes-edit{justify-items:start;gap:8px;display:grid}.school-notes-edit-title{color:var(--ink-soft);font-size:.85rem;font-weight:600}.school-note-row{justify-items:end;gap:6px;width:100%;display:grid}.school-notes{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.school-notes-when{color:var(--ink-soft);font-size:.85rem;font-weight:600}.school-note{border-left:3px solid var(--accent);background:var(--glass);font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;border-radius:0 12px 12px 0;margin:4px 0 0;padding:10px 14px;font-style:italic;line-height:1.5}@media (max-width:760px){.school{padding:0}.school-summary,.school-class-pick{margin-left:var(--gutter);margin-right:var(--gutter)}.school-class-pick{max-width:calc(100% - 2 * var(--gutter))}.school-period>summary,.school-notes{padding-left:var(--gutter);padding-right:var(--gutter)}.school-table-wrap{overscroll-behavior-x:contain;border-radius:0}.school-table{table-layout:auto;border-spacing:4px;width:max-content;min-width:100%;padding:6px 6px 6px 0}.school-table tbody th,.school-table thead td{z-index:1;width:118px;min-width:118px;max-width:118px;padding:6px 8px 6px var(--gutter);background:var(--paper);box-shadow:6px 0 10px -8px oklch(.3 .05 var(--hue) / .35);font-size:.8rem;position:sticky;left:0}.school-bravo th{font-size:.85rem}.school-table thead th{min-width:64px;font-size:.78rem}.school-cell{min-width:64px;height:50px}.school-bravo .school-cell{height:58px}}.school-cell.is-open{cursor:pointer}.school-week-s,.school-week-day,.school-row-zoom{display:none}@media (max-width:640px){.school-table-wrap{border-radius:18px;margin:0 4px;overflow:visible}.school-table{table-layout:fixed;border-spacing:3px;width:100%;min-width:0;padding:6px 2px}.school-table thead th.is-future{width:8%}.school-table thead th.is-future .school-week-edit{font-size:.72rem}.school-table thead th{vertical-align:top}.school-cell.is-open:active{background-color:var(--pill)}.school-table .school-row-label{cursor:pointer;position:relative}.school-row-label.is-zoomed .school-row-zoom{z-index:5;background:var(--paper-deep);width:min(280px,100vw - 32px);box-shadow:0 0 0 1px var(--glass-edge), 0 14px 36px -12px oklch(.2 .05 var(--hue) / .55);color:var(--ink);-webkit-hyphens:none;hyphens:none;border-radius:14px;padding:12px 14px;font-size:1.05rem;font-weight:600;line-height:1.35;display:block;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.school-table tbody th,.school-table thead td{width:21%;min-width:0;max-width:none;box-shadow:none;-webkit-hyphens:auto;hyphens:auto;background:0 0;padding:3px 2px 3px 6px;font-size:.68rem;line-height:1.25;position:static}.school-bravo th{font-size:.72rem}.school-table thead th{min-width:0;color:var(--ink);padding:2px 0;font-size:.82rem;font-weight:700}.school-week-word,.school-week-dates,.school-react-word{display:none}.school-week-s{display:inline}.school-week-day{color:var(--ink-soft);white-space:nowrap;font-size:.66rem;font-weight:500;display:block}.school-week-edit{width:100%;padding:4px 0}.school-table .school-react-pill{gap:0;padding:2px 5px;font-size:.68rem}.school-table .school-react-pill>span:nth-child(n+2){display:none}.school-cell{border-radius:10px;min-width:0;height:52px}.school-bravo .school-cell{height:60px}.school-cell .school-stars{font-size:1.5rem}.school-cell .school-mark{font-size:1.3rem}.school-cell.is-split .school-stars{font-size:1.1rem}.school-cell.is-split .school-mark,.school-cell.is-split .school-note-mark{font-size:1rem}.school-note-badge{font-size:.65rem;right:-8px}.school-cell:not(.is-split) .school-note-badge{top:2px;right:3px}}.school-editor{overscroll-behavior:contain;width:min(620px,100vw - 24px);max-height:calc(100svh - 24px);overflow-y:auto}html:has(.school-editor[open]){overflow:hidden}.school-editor form{gap:14px;display:grid}.school-editor-when{flex-wrap:wrap;gap:10px;display:flex}.school-editor-when label,.school-note-field{color:var(--ink-soft);flex:140px;gap:4px;font-size:.85rem;font-weight:600;display:grid}.school-editor select,.school-editor input:not([type=checkbox],[type=radio]),.school-editor textarea{background:var(--glass-strong);width:100%;min-height:46px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .2);font:inherit;color:var(--ink);border:0;border-radius:12px;padding:10px 12px;font-size:1rem;font-weight:450}.school-editor textarea{resize:vertical}.school-editor select:focus-visible,.school-editor input:focus-visible,.school-editor textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.school-split,.school-remarks-pick label{color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;font-size:.95rem;line-height:1.35;display:flex}.school-split input,.school-remarks-pick input{width:22px;height:22px;accent-color:var(--accent-deep);flex:none;margin:0}.school-split{background:var(--glass);border-radius:14px;padding:12px 14px;font-weight:600}.school-half-fields{box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .16);border:0;border-radius:18px;gap:12px;margin:0;padding:14px;display:grid}.school-half-fields legend{color:var(--ink);padding:0 6px;font-weight:700}.school-stars-pick{flex-wrap:wrap;gap:6px;display:flex}.school-stars-pick label{background:var(--glass);min-height:44px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .2);color:#d38f00;color:lab(64.9333% 24.4571 92.87);cursor:pointer;border-radius:999px;align-items:center;padding:0 14px;font-size:1.05rem;display:inline-flex;position:relative}.school-stars-pick label:first-child{color:var(--ink-soft);font-size:.9rem;font-weight:600}.school-stars-pick input{opacity:0;pointer-events:none;position:absolute}.school-stars-pick label.is-on{background:var(--ink);box-shadow:none}.school-stars-pick label.is-on:first-child{color:var(--paper)}.school-stars-pick label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.school-remarks-pick{gap:8px;display:grid}.school-week-counts{min-height:1.3em;color:var(--ink);flex-wrap:wrap;justify-content:center;gap:2px 8px;margin-top:2px;font-size:.75rem;font-weight:600;display:flex}.school-week-panel>*+:not(.dialog-close){margin-top:16px}.school-week-halves{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.school-week-half{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge);color:var(--ink);border-radius:18px;align-content:start;gap:6px;padding:14px;display:grid}.school-week-half h4,.school-week-family h4{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.8rem;font-weight:700}.school-week-bravo,.school-week-ok{margin:0;font-size:1.05rem}.school-week-bravo .school-stars{font-size:1.4rem}.school-week-remarks{color:#b02a2d;color:lab(40.2801% 53.7849 33.3129);margin:0;padding:0;font-weight:550;list-style:none}.school-week-remarks li:before{content:"✗ ";font-weight:800}.school-week-family{border-top:1px dashed oklch(.5 .04 var(--hue) / .3);gap:12px;padding-top:16px;display:grid}.school-week-family .reaction{background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.45 .04 var(--hue) / .25);color:var(--ink)}.school-week-family .reaction:hover{background:var(--glass-strong)}.school-week-family .reaction.is-on{background:var(--ink);color:var(--paper);box-shadow:none}.school-week-family .reaction:focus-visible{outline-color:var(--accent-deep)}.school-week-family .reactions{flex-wrap:wrap;justify-content:flex-start;display:flex}.school-week-who{color:var(--ink-soft);gap:4px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.school-week-loading{color:var(--ink-soft);align-items:center;gap:8px;margin:0;font-size:.85rem;display:flex}.school-week-messages{gap:8px;margin:0;padding:0;list-style:none;display:grid}.school-week-form{justify-items:end;gap:8px;display:grid}.school-week-form .school-note-field{width:100%}.school-week-family.is-compact{border-top:0;border-left:2px solid oklch(.5 .04 var(--hue) / .2);gap:8px;margin:8px 0 0 3px;padding:0 0 0 14px}.school-week-family.is-compact .reaction{min-width:54px;height:34px;padding:0 8px}.school-write{justify-self:start}.dialog-close{float:right;z-index:3;background:var(--glass);width:44px;height:44px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .14);color:var(--ink);cursor:pointer;border-radius:999px;place-items:center;margin:-8px -8px 6px 12px;display:grid;position:sticky;top:0}.dialog-close svg{width:20px;height:20px}.dialog-close:hover{background:var(--glass-strong)}.dialog-close:focus-visible{outline:2px solid var(--accent-deep);outline-offset:2px}.visitor-view{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 20px;display:flex}.visitor-view-hint{color:var(--ink-soft);font-size:.85rem}.visitor-banner{--visitor-banner:52px;z-index:70;height:var(--visitor-banner);padding:0 var(--gutter);white-space:nowrap;background:var(--ink);color:var(--paper);justify-content:center;align-items:center;gap:14px;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.visitor-banner button{background:var(--paper);min-height:36px;color:var(--ink);font:inherit;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.85rem;display:inline-flex}html:has(.visitor-banner) :is(.account-chip,.admin-btn,.bell){top:calc(max(14px, var(--safe-top)) + 52px)}.visitor-banner-short{display:none}@media (max-width:640px){.visitor-banner-long{display:none}.visitor-banner-short{display:inline}}.school-react-pill{background:var(--glass-strong);box-shadow:inset 0 0 0 1px oklch(.45 .04 var(--hue) / .25);color:var(--ink);white-space:nowrap;transition:background .2s, transform .2s var(--ease-spring);border-radius:999px;justify-content:center;align-items:center;gap:2px 8px;margin:4px auto 0;padding:3px 10px;font-size:.75rem;font-weight:650;display:inline-flex}.school-week-edit:hover .school-react-pill,.school-week-edit:focus-visible .school-react-pill{background:var(--ink);color:var(--paper);transform:translateY(-1px)}.school-hint{color:var(--ink-soft);margin:0 0 10px;font-size:.95rem}@media (max-width:760px){.school-hint{padding:0 var(--gutter)}}.bell-thumb-school{place-items:center;font-size:1.4rem;display:grid}.school-notes li{border-radius:14px;scroll-margin:120px;transition:box-shadow .6s,background .6s}.school-notes li.is-focus{background:var(--glass);box-shadow:0 0 0 3px var(--accent)}.install{max-width:640px;padding:0 var(--gutter);gap:16px;margin:0 auto;display:grid}.install-card{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge), 0 16px 40px -28px oklch(.3 .06 var(--hue) / .35);color:var(--ink);border-radius:22px;gap:12px;padding:20px;display:grid}.install-card p{margin:0;font-size:1.1rem;line-height:1.5}.install-big,.install-title{margin:0;font-size:1.3rem;font-weight:700}.install-card.is-done .install-big{color:var(--accent-deep)}.install-button{margin:0}.install-steps{gap:12px;margin:0;padding-left:1.4em;font-size:1.1rem;line-height:1.5;display:grid}.install-steps li::marker{color:var(--accent-deep);font-weight:700}.install-key{background:var(--glass-strong);min-width:1.8em;height:1.6em;box-shadow:inset 0 0 0 1px oklch(.45 .04 var(--hue) / .25);border-radius:8px;place-items:center;padding:0 4px;font-size:.95em;display:inline-grid}.install-after{color:var(--ink-soft);margin:4px 0 0;font-size:1rem;line-height:1.5}.install-loading{text-align:center}.install-hint{max-width:860px;padding:0 var(--gutter);margin:8px auto 0}.install-hint-card{background:var(--print);box-shadow:var(--shadow-print);color:oklch(.25 .035 var(--hue));border-radius:18px;align-items:center;gap:8px;padding:6px 6px 6px 14px;display:flex}.install-hint-link{flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;font-size:1rem;line-height:1.3;display:flex}.install-hint-link strong{color:oklch(.5 .15 var(--hue))}.install-hint-close{width:44px;height:44px;color:oklch(.47 .04 var(--hue));border-radius:999px;flex:none;place-items:center;font-size:1.4rem;line-height:1;display:grid}.install-hint-close:hover{background:oklch(.4 .04 var(--hue) / .08)}button.install-hint-link{text-align:left;font:inherit;color:inherit;cursor:pointer;font-size:1rem}.install-share{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;color:#0a84ff;width:1.1em;height:1.1em}.install-dialog .install-steps,.install-dialog .install-after{margin-top:16px}.account-app{color:var(--ink-faint);font-size:.8rem}.account-app.is-on{color:var(--accent-deep);font-weight:600}.reactions-who{color:#ffffffd9;color:lab(100% 0 0/.85);flex-wrap:wrap;flex-basis:100%;justify-content:center;gap:4px 14px;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.reactions-who li{gap:6px;display:inline-flex}.lightbox-cta-row .reactions-who{order:10}.home-btn{top:max(14px, var(--safe-top));left:max(14px, env(safe-area-inset-left));z-index:60;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);width:46px;height:46px;color:var(--ink);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 8px 24px -10px oklch(.3 .05 var(--hue) / .4);transition:transform .3s var(--ease-spring);border-radius:999px;place-items:center;display:grid;position:fixed}.home-btn:hover{transform:scale(1.06)}.home-btn.is-active{background:var(--ink);color:var(--paper)}.home-btn svg{width:22px;height:22px}.home-btn:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}html:has(.visitor-banner) .home-btn{top:calc(max(14px, var(--safe-top)) + 52px)}.back-btn{top:max(14px, var(--safe-top));left:calc(max(14px, env(safe-area-inset-left)) + 56px);z-index:60;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);width:46px;height:46px;color:var(--ink);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 8px 24px -10px oklch(.3 .05 var(--hue) / .4);cursor:pointer;transition:transform .3s var(--ease-spring);border:0;border-radius:999px;place-items:center;padding:0;display:grid;position:fixed}.back-btn:hover{transform:translate(-3px)}.back-btn svg{width:22px;height:22px}.back-btn:focus-visible{outline:2px solid var(--accent-deep);outline-offset:3px}html:has(.visitor-banner) .back-btn{top:calc(max(14px, var(--safe-top)) + 52px)}@media (max-width:640px){.topbar{padding-left:calc(max(14px, env(safe-area-inset-left)) + 56px)}html:has(.back-btn) .topbar{padding-left:calc(max(14px, env(safe-area-inset-left)) + 112px)}}@media (max-width:420px){html:has(.back-btn) .menu-toggle{padding:0 12px}html:has(.back-btn) .menu-toggle span{display:none}}@media (min-width:1101px) and (max-width:1440px){.topbar:has(.topbar-links a:nth-child(8)){padding-top:calc(max(14px, env(safe-area-inset-top)) + 58px);flex-wrap:wrap}.topbar:has(.topbar-links a:nth-child(8)) .topbar-slot{order:3;width:100%}.topbar-links:has(a:nth-child(8)){width:100%}.topbar-links:has(a:nth-child(8)) a{white-space:nowrap;flex:auto;padding:0 10px}}@media (min-width:641px) and (max-width:1100px){.topbar{padding-top:calc(max(14px, env(safe-area-inset-top)) + 58px)}}.account-edit form{gap:14px;display:grid}.account-edit-field{color:var(--ink-soft);gap:4px;font-size:.85rem;font-weight:600;display:grid}.account-edit-field input{background:var(--glass-strong);width:100%;min-height:46px;box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .2);font:inherit;color:var(--ink);border:0;border-radius:12px;padding:10px 12px;font-size:1rem;font-weight:450}.account-edit-field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.account-edit-reset{background:var(--glass);color:var(--ink-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;font-size:.9rem;display:flex}.account-edit-password{background:var(--glass);border-radius:14px;justify-items:start;gap:8px;padding:12px 14px;display:grid}.account-edit-password .account-edit-field{width:100%}.account-edit-password-row{align-items:center;gap:8px;display:flex}.account-edit-password-row input{flex:1;min-width:0}.account-edit-hint{color:var(--ink-soft);font-size:.8rem}.push-settings{gap:12px;display:grid}.push-locked{background:color-mix(in oklch, var(--accent) 16%, transparent);color:var(--ink);border-radius:14px;margin:0;padding:10px 14px;font-size:.9rem;line-height:1.4}.push-on{color:var(--accent-deep);margin:0;font-weight:650}.push-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.push-note{font-size:.8rem}@media (max-width:640px){.section{padding-top:40px;padding-bottom:40px}}.push-prompt{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 64px);z-index:80;background:var(--paper);max-width:520px;color:var(--ink);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .1), 0 24px 60px -20px oklch(.2 .05 var(--hue) / .55);animation:confirm-in .35s var(--ease-out);border-radius:24px;gap:10px;margin:0 auto;padding:18px;display:grid;position:fixed}.push-prompt-title{margin:0;font-size:1.2rem;font-weight:700}.push-prompt-text{color:var(--ink-soft);margin:0;font-size:1rem;line-height:1.45}.push-prompt-actions{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.push-prompt-actions .login-submit{margin:0}@media (max-width:640px){.hero.hero-compact{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"kicker counter""face counter""born stats";align-items:start;gap:0 12px;padding-top:6px;display:grid}.hero-compact .hero-name,.hero-compact .hero-facts{display:contents}.hero-compact .hero-kicker{grid-area:kicker;margin:0}.hero-compact .hero-face{grid-area:face;margin-bottom:4px}.hero-compact .hero-born{grid-area:born;align-self:end;margin:0}.hero-compact .age-counter{text-align:right;grid-area:counter;grid-template-columns:auto auto;justify-self:end;justify-items:end;gap:6px 14px;margin:4px 0 0;display:grid}.hero-compact .age-unit{align-items:flex-end}.hero-compact .age-unit .n{font-size:1.35rem}.hero-compact .hero-stats{text-align:right;grid-area:stats;place-self:end;max-width:150px;margin:0;font-size:.75rem}}@media (max-width:370px){.hero-compact .hero-title{font-size:2.6rem}.hero-compact .hero-face .login-face{width:48px;height:48px}.hero-compact .age-counter{gap:4px 10px}.hero-compact .age-unit .n{font-size:1.15rem}}.school-week-edit-btn{justify-self:start;margin-top:12px}.map-count{text-align:center;color:var(--ink-soft);margin:-8px 0 14px;font-size:.92rem}.map-count b{color:var(--ink)}.map-page .messages-head{text-align:center;justify-content:center}.map-wrap{isolation:isolate;width:min(1180px, calc(100% - 2 * var(--gutter)));background:oklch(.93 .02 var(--hue));height:min(74svh,760px);min-height:420px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 24px 60px -30px oklch(.3 .08 var(--hue) / .55);border-radius:24px;margin:0 auto;position:relative;overflow:hidden}.map-box{font:inherit;position:absolute;inset:0}.map-box .leaflet-tile-container img.leaflet-tile{mix-blend-mode:normal;width:257px!important;height:257px!important}.map-box .leaflet-tile-pane{filter:grayscale(.85)brightness(1.06)contrast(.92)}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) :is(.map-wrap,.map-box){background:#3b3d41;background:lab(25.7328% -.386432 -2.97282)}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) .map-box .leaflet-tile-pane{filter:grayscale(.85)invert(.88)brightness(1.3)contrast(.88)}.map-loading{z-index:1000;color:var(--accent-deep);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.map-icon{background:0 0;border:0}.map-pin{background:oklch(.85 .03 var(--hue));width:100%;height:100%;box-shadow:0 6px 16px -4px oklch(.2 .05 var(--hue) / .55);border:3px solid #fff;border-radius:50%;display:block;position:relative}.leaflet-container .map-icon .map-pin img{object-fit:cover;border-radius:50%;width:100%;height:100%}.map-icon:hover .map-pin{transform:scale(1.08)}.map-box .leaflet-marker-icon.map-icon:hover{z-index:100000!important}.map-box .leaflet-marker-icon.map-icon:has(.is-hover){z-index:100000!important}.map-pin.is-hover,.map-icon:hover .map-pin{transform:scale(1.18)}.map-stack.is-hover{transform:scale(1.1)}.map-thumb.is-hover{box-shadow:0 0 0 3px var(--accent-deep)}.map-pin,.map-stack{transition:transform .25s var(--ease-spring), opacity .25s, filter .25s}.map-box.has-selection .map-pin:not(.is-selected),.map-box.has-selection .map-stack:not(.is-selected){opacity:.4;filter:grayscale(.5)}.map-pin.is-selected,.leaflet-container .map-icon .map-stack.is-selected img{border-color:var(--accent-deep)}.map-pin.is-focus{border-color:var(--accent-deep);animation:1.6s ease-out 3 map-focus}@keyframes map-focus{0%{box-shadow:0 0 0 0 oklch(.5 .15 var(--hue) / .55), 0 6px 16px -4px oklch(.2 .05 var(--hue) / .55)}to{box-shadow:0 0 0 18px oklch(.5 .15 var(--hue) / 0), 0 6px 16px -4px oklch(.2 .05 var(--hue) / .55)}}.map-pin.is-video:after{content:"▶";color:#fff;text-shadow:0 1px 4px #0009;text-shadow:0 1px 4px lab(0% 0 0/.6);place-items:center;font-size:.8rem;display:grid;position:absolute;inset:0}.map-stack{width:100%;height:100%;display:block;position:relative}.map-icon:hover .map-stack{transform:scale(1.06)}.leaflet-container .map-icon .map-stack img{object-fit:cover;background:oklch(.85 .03 var(--hue));width:calc(100% - 8px);height:calc(100% - 8px);box-shadow:0 6px 16px -6px oklch(.2 .05 var(--hue) / .6);border:3px solid #fff;border-radius:12px;position:absolute;inset:4px}.leaflet-container .map-icon .map-stack img.c1{transform:rotate(-9deg)translate(-3px,1px)}.leaflet-container .map-icon .map-stack img.c2{transform:rotate(8deg)translate(4px)}.map-stack i{text-overflow:ellipsis;white-space:nowrap;max-width:170px;color:oklch(.3 .04 var(--hue));box-shadow:0 2px 8px -2px oklch(.2 .05 var(--hue) / .4);pointer-events:none;background:#ffffffeb;background:lab(100% 0 0/.92);border-radius:999px;padding:2px 8px;font-size:.72rem;font-style:normal;font-weight:700;position:absolute;top:calc(100% + 4px);left:50%;overflow:hidden;transform:translate(-50%)}.map-stack b{z-index:1;background:var(--accent-deep);color:#fff;text-align:center;border-radius:999px;min-width:26px;padding:3px 7px;font-size:.78rem;font-weight:800;line-height:1.2;position:absolute;bottom:-6px;right:-8px;box-shadow:0 0 0 2px #fff}.map-sheet{--sheet-ink:oklch(.25 .03 var(--hue));--sheet-soft:oklch(.45 .035 var(--hue));z-index:1000;max-width:640px;color:var(--sheet-ink);box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .08), 0 20px 50px -18px oklch(.25 .06 var(--hue) / .6);animation:menu-in .25s var(--ease-out) both;background:#fdfcf8;background:lab(98.8661% -.0120997 1.90746);border-radius:16px;margin:0 auto;padding:6px 8px;position:absolute;bottom:10px;left:10px;right:10px}.map-sheet-head{color:var(--sheet-ink);align-items:center;gap:8px;padding:0 0 5px 4px;font-size:.85rem;display:flex}.map-sheet-dates{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--sheet-soft);flex:1;font-size:.8rem;overflow:hidden}.map-sheet-close{background:oklch(.94 .02 var(--hue));width:28px;height:28px;color:var(--sheet-ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.map-sheet-close svg{width:16px;height:16px}.map-sheet-strip{scroll-snap-type:x proximity;scrollbar-width:thin;gap:5px;padding-bottom:4px;display:flex;overflow-x:auto}.map-thumb{background:oklch(.9 .02 var(--hue));scroll-snap-align:start;border-radius:10px;flex:none;width:54px;height:54px;position:relative;overflow:hidden}.map-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s var(--ease-spring)}.map-thumb:hover img{transform:scale(1.06)}.map-thumb-play{color:#fff;text-shadow:0 1px 4px #0009;text-shadow:0 1px 4px lab(0% 0 0/.6);place-items:center;font-size:1rem;display:grid;position:absolute;inset:0}.map-sheet-more{color:var(--ink-soft);margin:4px 4px 0;font-size:.82rem}.map-note{text-align:center;max-width:60ch;color:var(--ink-soft);margin:14px auto 0;font-size:.82rem}@media (max-width:640px){.map-page .messages-head{margin-top:-64px;padding-bottom:6px}.map-page .messages-head .display{font-size:2.1rem}.map-page .messages-head .hand{display:none}.map-count{margin:0 0 10px;font-size:.82rem}.map-wrap{width:calc(100% - 12px);height:calc(100svh - var(--map-top,250px) - 6px);border-radius:20px 20px 0 0;min-height:360px}html:root body:has(.map-page){padding-bottom:0}.map-page{padding-bottom:0}.map-box .leaflet-control-zoom{display:none}.map-sheet{left:8px;right:8px;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 74px);border-radius:14px;padding:5px 6px 4px}.map-sheet-head{padding-bottom:4px;font-size:.78rem}.map-sheet-head strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.map-sheet-dates{display:none}.map-sheet-close{width:24px;height:24px}.map-sheet-close svg{width:14px;height:14px}.map-sheet-strip{gap:4px;padding-bottom:2px}.map-thumb{border-radius:8px;width:42px;height:42px}.map-sheet-more{margin:2px 4px 0;font-size:.7rem}}.letters-bar{padding:0 var(--gutter) 22px;justify-items:center;gap:8px;display:grid}.letters-write{min-height:52px;padding:0 26px;font-size:1.05rem}.letters{max-width:1100px;padding:8px var(--gutter) 40px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:22px;margin:0 auto;list-style:none;display:grid}.envelope{--env:oklch(.925 .04 var(--env-hue));--env-dark:oklch(.885 .05 var(--env-hue));--env-ink:#4f2b1a;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .24 0 0 0 0 .1 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");aspect-ratio:16/10;background:var(--grain), radial-gradient(ellipse at 50% 45%, transparent 55%, #ac795747 100%), var(--env);width:100%;min-height:210px;color:var(--env-ink);text-align:left;transition:transform .35s var(--ease-spring), box-shadow .35s;border-radius:4px;align-content:end;justify-items:start;padding:16px 18px;display:grid;position:relative;overflow:hidden;box-shadow:0 1px 2px #613f274d,0 16px 30px -18px #44250cb3;box-shadow:0 1px 2px lab(30.1316% 13.2567 20.834/.3),0 16px 30px -18px lab(18.5017% 13.7549 21.8396/.7)}@supports (color:lab(0% 0 0)){.envelope{--env-ink:lab(21.8849% 15.7786 18.2893);background:var(--grain), radial-gradient(ellipse at 50% 45%, transparent 55%, lab(55.5792% 17.3779 27.215/.28) 100%), var(--env)}}.envelope:before{content:"";pointer-events:none;background:linear-gradient(to top right,#0000 calc(50% - 1px),#9d775e47 50%,#0000 calc(50% + 1px)) 0 100%/50% 62% no-repeat,linear-gradient(to top left,#0000 calc(50% - 1px),#9d775e47 50%,#0000 calc(50% + 1px)) 100% 100%/50% 62% no-repeat;background:linear-gradient(to top right,#0000 calc(50% - 1px),lab(53.3626% 12.7099 19.9277/.28) 50%,#0000 calc(50% + 1px)) 0 100%/50% 62% no-repeat,linear-gradient(to top left,#0000 calc(50% - 1px),lab(53.3626% 12.7099 19.9277/.28) 50%,#0000 calc(50% + 1px)) 100% 100%/50% 62% no-repeat;position:absolute;inset:0}.envelope-flap{background:var(--grain), linear-gradient(to bottom, var(--env), var(--env-dark));clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px 1px #613f2759);filter:drop-shadow(0 2px 1px lab(30.1316% 13.2567 20.834/.35));transform-origin:top;height:46%;transition:transform .45s var(--ease-out);position:absolute;inset:0 0 auto}.envelope-stamp{filter:drop-shadow(0 1px 1px #5d402d59);filter:drop-shadow(0 1px 1px lab(30.1891% 10.8246 16.9481/.35));background:radial-gradient(circle at 3px 3px,#0000 1.6px,#fbf4e6 1.8px) -3px -3px/6px 6px;background:radial-gradient(circle at 3px 3px,#0000 1.6px,lab(96.5967% .633419 7.66813) 1.8px) -3px -3px/6px 6px;place-items:center;width:38px;height:46px;display:grid;position:absolute;top:12px;right:14px;transform:rotate(4deg)}.envelope-stamp span{color:#ffede9;color:lab(95.1092% 8.80593 5.85394);background:#c46761;background:lab(54.7551% 37.499 21.1877);place-items:center;width:30px;height:38px;font-size:1rem;display:grid}.envelope-seal{z-index:1;filter:drop-shadow(0 3px 3px #400c0c73);filter:drop-shadow(0 3px 3px lab(12.195% 25.2733 13.8856/.45));width:58px;height:58px;transition:opacity .3s, transform .35s var(--ease-spring);place-items:center;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.envelope-seal .wax{width:100%;height:100%}.envelope-seal .spinner{color:#972527;color:lab(34.6852% 47.4343 29.205);width:18px;height:18px}.envelope-address{justify-items:start;display:grid;position:relative}.envelope-to{color:#4a2010;color:lab(18.2581% 19.82 20.0918);font-size:1.55rem;line-height:1.1}.envelope-date{letter-spacing:.02em;opacity:.75;font-size:.78rem;font-weight:600}.envelope-age{color:#7a3525;color:lab(31.8703% 29.5645 25.4213);font-size:1rem}.envelope:hover{transform:translateY(-4px)rotate(-.6deg);box-shadow:0 1px 2px #613f274d,0 24px 40px -20px #44250cbf;box-shadow:0 1px 2px lab(30.1316% 13.2567 20.834/.3),0 24px 40px -20px lab(18.5017% 13.7549 21.8396/.75)}.envelope:hover .envelope-seal{transform:translate(-50%,-56%)scale(1.05)}.envelope-new{z-index:1;color:#b02a2dd9;color:lab(40.2801% 53.7849 33.3129/.85);letter-spacing:.14em;text-transform:uppercase;mix-blend-mode:multiply;border:2px solid #b02a2dcc;border:2px solid lab(40.2801% 53.7849 33.3129/.8);border-radius:4px;padding:3px 9px 2px;font-size:.7rem;font-weight:800;position:absolute;top:14px;left:14px;transform:rotate(-8deg)}.envelope.is-pending{opacity:.7}.letter-compose{width:min(640px,100vw - 24px);max-height:calc(100svh - 24px);color:oklch(.25 .03 var(--hue));box-shadow:0 40px 100px -30px oklch(.2 .05 var(--hue) / .6);background:#fdfaf4;background:lab(98.2832% .458986 3.0148);border:0;border-radius:28px;padding:clamp(22px,3vw,32px)}.letter-compose::backdrop,.letter-open::backdrop{background:oklch(.2 .03 var(--hue) / .5);-webkit-backdrop-filter:blur(4px)}.letter-compose .dialog-close{float:none;margin:0;position:absolute;top:14px;right:14px}.letter-compose[open]{animation:confirm-in .35s var(--ease-out)}.letter-form{gap:14px;display:grid}.letter-form h2{color:oklch(.45 .15 var(--hue));margin:0 36px 4px 0;font-size:1.9rem;font-style:italic}.letter-form-row{grid-template-columns:1fr auto;gap:10px;display:grid}.letter-form label{min-width:0;display:block}.letter-form label span{color:oklch(.45 .035 var(--hue));margin:0 0 4px 4px;font-size:.8rem;font-weight:600;display:block}.letter-form input,.letter-form textarea{border:1px solid oklch(.85 .03 var(--hue));width:100%;color:oklch(.25 .03 var(--hue));font:inherit;background:#fff;border-radius:14px;padding:11px 14px}.letter-form textarea{min-height:210px;font-family:var(--font-display);background:white repeating-linear-gradient(transparent 0 30px, oklch(.88 .03 var(--hue)) 30px 31px, transparent 31px 32px) local;resize:vertical;background-position:0 8px;padding:8px 16px;font-size:1.1rem;line-height:32px}.letter-send{justify-self:end;min-height:48px;padding:0 24px}@media (max-width:520px){.letters{grid-template-columns:1fr;gap:14px}.envelope{padding:14px 16px}.envelope-to{font-size:1.35rem}.letter-form-row{grid-template-columns:1fr}.letter-send{justify-self:stretch}}.letter-open{background:0 0;border:0;width:min(620px,100vw - 24px);max-height:calc(100svh - 24px);padding:0;overflow:visible}.letter-stage{padding-top:8px;position:relative}.letter-env{z-index:0;background:oklch(.925 .04 var(--env-hue));width:260px;height:160px;box-shadow:0 20px 40px -18px oklch(.2 .06 var(--env-hue) / .7);perspective:600px;border-radius:4px;animation:.4s ease-in .9s forwards env-out;position:absolute;top:60px;left:50%;transform:translate(-50%)}.letter-env-flap{background:oklch(.885 .05 var(--env-hue));clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;height:46%;animation:env-flap .45s var(--ease-out) .1s forwards;position:absolute;inset:0 0 auto}@keyframes env-flap{to{transform:rotateX(180deg)}}@keyframes env-out{to{opacity:0;transform:translate(-50%)translateY(40px)scale(.9)}}.letter-paper{z-index:1;color:#3d2013;color:lab(16.152% 13.1291 15.1599);max-height:calc(100svh - 48px);box-shadow:0 40px 100px -30px oklch(.15 .05 var(--hue) / .7);animation:paper-in .6s var(--ease-out) .45s both;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .24 0 0 0 0 .1 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(at 50% 40%,#0000 60%,#af856340 100%),#fdf2e1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .24 0 0 0 0 .1 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(at 50% 40%,#0000 60%,lab(59.1899% 13.3411 24.7844/.25) 100%),lab(96.0053% 1.56367 9.51073);border-radius:3px;padding:clamp(24px,4vw,44px) clamp(22px,4vw,48px);position:relative;overflow:auto}@keyframes paper-in{0%{opacity:0;transform:translateY(70px)scale(.6)}}.letter-date{color:oklch(.45 .035 var(--env-hue));margin:0 0 16px}.letter-date .hand{letter-spacing:0;text-transform:none;color:oklch(.45 .14 var(--env-hue));font-size:1.1rem}.letter-text{font-family:var(--font-display);font-variation-settings:"SOFT" 100;color:#3d2013;color:lab(16.152% 13.1291 15.1599);white-space:pre-wrap;overflow-wrap:anywhere;background:repeating-linear-gradient(#0000 0 30px,#ceb19b8c 30px 31px,#0000 31px 32px);background:repeating-linear-gradient(#0000 0 30px,lab(74.3716% 8.0854 15.3665/.55) 30px 31px,#0000 31px 32px);margin:0;font-size:1.15rem;line-height:32px}.letter-sign{text-align:right;color:#6a2e1f;color:lab(27.3158% 26.6004 22.8504);margin:18px 0 0;font-size:1.7rem}.letter-paper .msg-actions{margin-top:18px}.letter-edit textarea{min-height:240px}.letter-edit-actions{justify-content:flex-end;gap:10px;display:flex}@media (prefers-reduced-motion:reduce){.letter-env{display:none}.letter-paper{animation:none}}.trips{max-width:1180px;padding:4px var(--gutter) 30px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin:0 auto;list-style:none;display:grid}.trip-card{aspect-ratio:4/3;background:oklch(.85 .03 var(--hue));box-shadow:0 18px 40px -24px oklch(.25 .06 var(--hue) / .7);isolation:isolate;border-radius:22px;display:block;position:relative;overflow:hidden}.trip-card img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease-out);position:absolute;inset:0}.trip-card:hover img{transform:scale(1.05)}.trip-card-text{background:linear-gradient(to top, oklch(.15 .02 var(--hue) / .85), oklch(.15 .02 var(--hue) / .55) 55%, transparent);color:#fff;gap:2px;padding:44px 18px 16px;display:grid;position:absolute;inset:auto 0 0}.trip-card-text strong{font-size:1.55rem;font-weight:500;line-height:1.1}.trip-card-dates{font-size:.9rem;font-weight:600}.trip-card-meta{opacity:.9;font-size:.8rem}.trip-card-meta .hand{color:inherit;font-size:1rem}.page-title.is-trip{font-size:clamp(2.4rem,6.5vw,4.6rem);line-height:1.05}.letter-sealed-option{background:#f8f1e3;background:lab(95.4366% .63467 7.66902);border-radius:16px;gap:10px;padding:12px 14px;display:grid;box-shadow:inset 0 0 0 1px #dccbb1;box-shadow:inset 0 0 0 1px lab(82.691% 2.74202 15.4113)}.letter-sealed-option.is-on{background:#fcedcd;background:lab(94.3529% 1.76743 17.5276);box-shadow:inset 0 0 0 1.5px #c69e58;box-shadow:inset 0 0 0 1.5px lab(67.6092% 9.27612 41.8637)}.letter-form label.letter-check,.letter-check{cursor:pointer;align-items:center;gap:10px;display:flex}.letter-check input{accent-color:oklch(55% .12 75);flex:none;width:20px;height:20px}.letter-form .letter-check span{color:#3d2919;color:lab(18.6681% 7.83302 14.503);margin:0;font-size:.92rem;font-weight:600}.letter-when{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.letter-when>span{color:#5e4837;color:lab(32.6057% 7.51829 14.02);font-size:.85rem;font-weight:600}.letter-when button{color:#3d2919;color:lab(18.6681% 7.83302 14.503);background:#fff;border-radius:999px;min-height:34px;padding:0 12px;font-size:.85rem;font-weight:600;box-shadow:inset 0 0 0 1px #d5c1a0;box-shadow:inset 0 0 0 1px lab(79.2229% 3.62077 19.4446)}.letter-when button[aria-pressed=true]{color:#fff;box-shadow:none;background:#986600;background:lab(47.6492% 16.6527 57.8756)}.letter-when input{width:auto;padding:6px 10px}.letter-locked{text-align:center;gap:10px;padding:10px 0;display:grid}.letter-locked-title{color:#774a00;color:lab(35.9669% 16.5572 46.9555);margin:0;font-size:1.8rem;font-style:italic}.letter-locked p:last-child{color:#4c3428;color:lab(24.3959% 9.41239 12.5247);margin:0}.letter-sealed-note{color:#5a3b12;color:lab(27.9498% 11.0432 29.8593);background:#fbe9c6;background:lab(93.2052% 2.0451 19.5494);border-radius:10px;margin:0 0 16px;padding:8px 12px;font-size:.85rem;font-weight:600}.album-edit-open{justify-self:start;margin:4px 0 8px}.album-hidden-note{color:var(--ink-soft);margin:0 0 8px;font-size:.85rem;font-weight:600}.album-editor{width:min(760px,100vw - 24px);max-height:calc(100svh - 24px);overflow:auto}.album-field{gap:6px;margin:16px 0 0;display:grid}.album-field>span{font-size:.85rem;font-weight:700}.album-field small{color:var(--ink-soft);font-size:.8rem}.album-field input,.album-field select{border:1px solid oklch(.85 .03 var(--hue));background:var(--print);width:100%;color:oklch(.25 .03 var(--hue));font:inherit;border-radius:12px;padding:10px 12px}.album-field input::placeholder{color:oklch(.55 .03 var(--hue))}.album-photos{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;max-height:46svh;margin:4px 0 0;padding:2px;list-style:none;display:grid;overflow:auto}.album-photos li{position:relative}.album-photo{aspect-ratio:1;background:oklch(.9 .02 var(--hue));border-radius:10px;width:100%;display:block;position:relative;overflow:hidden}.album-photo img{object-fit:cover;width:100%;height:100%}.album-photos li.is-cover .album-photo{box-shadow:0 0 0 3px var(--accent-deep)}.album-photos li.is-removed .album-photo{opacity:.3;filter:grayscale()}.album-cover-badge{background:var(--accent-deep);color:#fff;text-align:center;border-radius:6px;padding:2px 4px;font-size:.68rem;font-weight:700;position:absolute;inset:auto 4px 4px}.album-video{color:#fff;text-shadow:0 1px 3px #0009;text-shadow:0 1px 3px lab(0% 0 0/.6);font-size:.75rem;position:absolute;top:4px;left:6px}.album-remove{width:26px;height:26px;color:oklch(.3 .03 var(--hue));background:#ffffffeb;background:lab(100% 0 0/.92);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid;position:absolute;top:4px;right:4px;box-shadow:0 1px 4px #0000004d;box-shadow:0 1px 4px lab(0% 0 0/.3)}.album-merged{justify-content:space-between;align-items:center;gap:10px;margin:0;display:flex}.album-hide{margin-top:16px}.trips-hidden{max-width:1180px;padding:0 var(--gutter) 30px;margin:10px auto 0}.trips-hidden ul{flex-wrap:wrap;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.trips-hidden a{background:var(--glass);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600;display:inline-block}.pages-viewed-title{margin:10px 0 8px;font-size:.9rem;font-weight:700}.pages-viewed-list,.pages-viewed-people,.pages-viewed-who{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pages-viewed-list summary{cursor:pointer;grid-template-columns:110px 1fr auto;align-items:center;gap:10px;list-style:none;display:grid}.pages-viewed-list summary::-webkit-details-marker{display:none}.pages-viewed-who{color:var(--ink-soft);margin:6px 0 8px 12px;font-size:.85rem}.pages-viewed-people li{background:var(--glass);border-radius:12px;gap:2px;padding:8px 10px;font-size:.88rem;display:grid}.pages-viewed-people small{color:var(--ink-soft)}.pager{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;font-size:.88rem;display:flex}.pager a,.pager span[aria-disabled]{background:var(--glass);border-radius:999px;padding:9px 16px;font-weight:550}.pager a{color:var(--ink)}.pager span[aria-disabled]{color:var(--ink-faint);opacity:.55}.pager-where{color:var(--ink-soft);font-variant-numeric:tabular-nums}.stats-log.views-log li{grid-template-columns:190px 140px minmax(0,1fr)}.views-page{overflow-wrap:anywhere}@media (max-width:760px){.stats-log.views-log li{grid-template-columns:1fr}}.live-bar{flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0;display:flex}.live-pill{background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:999px;align-items:center;gap:8px;padding:6px 13px;font-size:.82rem;font-weight:600;display:inline-flex}button.live-pill{color:inherit;cursor:pointer;border:0;font-family:inherit;font-size:.82rem;font-weight:600}button.live-pill .live-dot{animation:none}button.live-pill:disabled{opacity:.7;cursor:default}.live-dot{background:#2ea957;background:lab(61.4013% -48.4577 32.1205);border-radius:50%;width:9px;height:9px;animation:1.8s infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 #2ea9578c;box-shadow:0 0 lab(61.4013% -48.4577 32.1205/.55)}70%,to{box-shadow:0 0 0 7px #0000}}.live-count{color:var(--ink-soft);font-size:.85rem}.live-cards{gap:12px;display:grid}.live-card{background:var(--glass);box-shadow:inset 0 0 0 1px oklch(.4 .04 var(--hue) / .08);border-radius:20px;padding:14px 16px}.live-head{align-items:center;gap:12px;display:flex}.live-avatar{background:var(--accent-deep);color:#fff;width:42px;height:42px;font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-size:1.15rem;font-style:italic;display:grid;position:relative}.live-avatar i{border:2px solid var(--paper);background:var(--ink-faint);border-radius:50%;width:12px;height:12px;position:absolute;bottom:-1px;right:-1px}.live-avatar i.is-on{background:#2ea957;background:lab(61.4013% -48.4577 32.1205)}.live-who{flex:1;min-width:0}.live-who strong,.live-now strong{display:block}.live-who span,.live-now span{color:var(--ink-soft);font-size:.83rem}.live-now{text-align:right;max-width:48%;font-size:.88rem}.live-chips{flex-wrap:wrap;gap:6px;margin-top:11px;display:flex}.live-chip{background:oklch(.5 .05 var(--hue) / .1);color:var(--ink-soft);border-radius:999px;padding:3px 10px;font-size:.78rem}.live-chip-warn{color:#6c3800;color:lab(29.9436% 21.6792 44.2389);background:#ffe3c3;background:lab(91.8514% 9.26608 26.2608)}.live-chip b{color:var(--ink);font-weight:600}.live-card details{margin-top:11px}.live-card summary{color:var(--accent-deep);cursor:pointer;font-size:.88rem;font-weight:600}.live-trail{border-left:2px solid oklch(.4 .04 var(--hue) / .12);margin:8px 0 0;padding:0 0 0 14px;list-style:none}.live-trail li{gap:10px;padding:5px 0 5px 12px;font-size:.88rem;display:flex;position:relative}.live-trail li:before{content:"";background:oklch(.4 .04 var(--hue) / .2);border-radius:50%;width:8px;height:8px;position:absolute;top:12px;left:-19px}.live-trail li:first-child:before{background:var(--accent-deep)}.live-trail time{min-width:70px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.live-spent{color:var(--ink-soft);white-space:nowrap;margin-left:auto;font-size:.78rem}.live-more{color:var(--accent-deep);margin-top:6px;font-size:.85rem;font-weight:600;display:inline-block}.live-note{color:var(--ink-soft);margin-top:18px;font-size:.8rem}.live-note a{text-decoration:underline}.views-meta{color:var(--ink-soft);margin-top:1px;font-size:.76rem;display:block}.stats-box.is-child{background:linear-gradient(135deg,#fff0d0e6,#ffe2b6b3);background:linear-gradient(135deg,lab(95.5493% 2.6086 23.6098/.9),lab(91.9159% 9.9403 35.3261/.7));position:relative;box-shadow:inset 0 0 0 1.5px #d29922bf,0 10px 30px -14px #c080008c;box-shadow:inset 0 0 0 1.5px lab(67.5362% 14.8294 64.5914/.75),0 10px 30px -14px lab(59.1875% 21.2096 76.185/.55)}.stats-box.is-child .eyebrow{color:#774a00;color:lab(35.9669% 16.5572 46.9555)}.stats-box.is-child .account{background:#fffcf1bf;background:lab(98.9836% .142217 11.5982/.75);box-shadow:inset 0 0 0 1px #d2992266;box-shadow:inset 0 0 0 1px lab(67.5362% 14.8294 64.5914/.4)}.account-role.is-child{color:#412805;color:lab(18.6765% 9.66412 24.9952);background:linear-gradient(135deg,#faca4b,#e49921);background:linear-gradient(135deg,lab(84.08% 8.1268 67.2183),lab(69.5879% 22.7031 67.6374));box-shadow:0 0 0 1px #ac730080;box-shadow:0 0 0 1px lab(53.4392% 17.9989 62.3699/.5)}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) .stats-box.is-child{background:linear-gradient(135deg,#4e3914d9,#412805cc);background:linear-gradient(135deg,lab(25.7899% 5.96896 26.1665/.85),lab(18.6765% 9.66412 24.9952/.8))}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) .stats-box.is-child .account{background:#2a2011b3;background:lab(13.002% 3.48885 11.7694/.7)}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) .stats-box.is-child .eyebrow{color:#f6d389;color:lab(86.3164% 5.71117 41.1098)}.stats-box.is-pending{box-shadow:inset 0 0 0 1.5px var(--accent-deep), 0 10px 30px -16px oklch(.45 .15 var(--hue) / .6)}.pending-count{background:var(--accent-deep);color:#fff;letter-spacing:0;vertical-align:1px;border-radius:999px;place-items:center;min-width:22px;height:22px;margin-left:6px;padding:0 7px;font-size:.75rem;display:inline-grid}.pending-none{background:var(--glass);color:var(--ink-soft);border-radius:14px;margin:0 0 14px;padding:10px 16px;font-size:.88rem}.refused-box summary{cursor:pointer}.refused-box[open] summary{margin-bottom:12px}.nav-group{display:inline-flex;position:relative}.nav-sub{z-index:70;background:var(--paper);min-width:210px;box-shadow:0 0 0 1px oklch(.4 .04 var(--hue) / .12), 0 18px 40px -18px oklch(.25 .06 var(--hue) / .55);opacity:0;visibility:hidden;border-radius:20px;gap:2px;padding:6px;transition:opacity .18s,translate .18s,visibility .18s;display:grid;position:absolute;top:calc(100% + 8px);left:50%;translate:-50% -6px}.nav-sub:before{content:"";height:10px;position:absolute;inset:-10px 0 auto}.nav-group.is-bottom .nav-sub{top:auto;bottom:calc(100% + 8px)}.nav-group.is-bottom .nav-sub:before{inset:auto 0 -10px}.nav .nav-sub a{height:40px;color:var(--ink)}.nav-group:hover .nav-sub,.nav-group:focus-within .nav-sub,.nav-group[data-open] .nav-sub{opacity:1;visibility:visible;translate:-50%}.topbar-links .nav-sub a{min-height:42px;color:var(--ink);white-space:nowrap;justify-content:flex-start;padding:0 14px;font-size:.92rem}.topbar-links .nav-sub a[aria-current=page]{color:var(--ink);background:var(--glass)}.nav-sub svg{width:18px;height:18px}.invite-form,.invite-result{gap:12px;margin-top:10px;display:grid}.invite-open{margin-top:6px}.invite-check{align-items:center;gap:8px;font-size:.9rem;display:flex}.invite-link{background:var(--glass);overflow-wrap:anywhere;border-radius:12px;padding:10px 12px;font-size:.8rem;display:block}.invite-list{gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}.invite-list li{background:var(--glass);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.9rem;display:flex}.invite-list small{color:var(--ink-soft);font-size:.78rem;display:block}[data-going]>svg,.radial-toggle[data-going] .radial-toggle-label{opacity:0;animation:none}.account-chip[data-going]{-webkit-text-fill-color:transparent}[data-going]:before{content:"";box-sizing:border-box;border:2px solid;border-right-color:#0000;border-radius:999px;width:20px;height:20px;margin:-10px 0 0 -10px;animation:.7s linear infinite going-spin;position:absolute;top:50%;left:50%}:is(.topbar-links,.nav,.nav-sub) a[data-going]>svg{display:none}:is(.topbar-links,.nav,.nav-sub) a[data-going]:before{flex:none;width:16px;height:16px;margin:0;position:static}@keyframes going-spin{to{transform:rotate(360deg)}}.account-release{color:#774a00;color:lab(35.9669% 16.5572 46.9555);font-weight:600}:root:is([data-theme=nuit],[data-theme=prune],[data-theme=chocolat],[data-theme=ocean],[data-theme=foret]) .account-release{color:#ecc980;color:lab(82.8304% 5.81437 41.2834)}.account-unseal{gap:8px;width:100%;display:grid}.account-unseal input{border:1px solid oklch(.4 .04 var(--hue) / .2);background:var(--paper);color:var(--ink);font:inherit;border-radius:12px;padding:10px 12px}.account-role.is-parent{color:#033d26;color:lab(22.0413% -23.4083 9.18781);background:#bcebd1;background:lab(89.2082% -19.3959 7.68985)}.stats-box.is-child{overflow:visible}.child-seal{z-index:2;color:#4c2905;color:lab(20.8234% 14.8132 27.8658);background:radial-gradient(circle at 35% 30%,#ffda73,#da950b 60%,#ae6700);background:radial-gradient(circle at 35% 30%,lab(88.7906% 4.51899 55.5308),lab(67.3506% 20.5018 70.1014) 60%,lab(50.8454% 24.7206 58.1737));border-radius:50%;place-items:center;width:46px;height:46px;display:grid;position:absolute;top:-16px;left:-16px;rotate:-12deg;box-shadow:0 0 0 3px #f2c86c73,0 8px 18px -6px #6c380099;box-shadow:0 0 0 3px lab(82.8346% 7.691 50.9405/.45),0 8px 18px -6px lab(29.9436% 21.6792 44.2389/.6)}.child-seal svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.child-seal.is-open{filter:saturate(.7);rotate:8deg}@media (max-width:640px){.child-seal{width:40px;height:40px;top:-12px;left:-8px}.child-seal svg{width:21px;height:21px}}.stats-box.is-child>.eyebrow{padding-left:26px}.tags-list{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.tags-row{background:var(--glass);box-shadow:inset 0 0 0 1px var(--glass-edge);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;display:flex}.tags-name{font-weight:700}.tags-count{color:var(--ink-soft);font-size:.85rem}.tags-actions{gap:6px;margin-left:auto;display:flex}.tags-add,.tags-rename{align-items:center;gap:8px;width:100%;display:flex}.tags-add>span,.tags-rename>span{color:var(--ink-soft);font-weight:700}.tags-add input,.tags-rename input{background:var(--print);min-width:0;min-height:42px;box-shadow:inset 0 0 0 1px var(--glass-edge);color:var(--ink);font:inherit;border:0;border-radius:12px;flex:1;padding:0 14px}.gift-small.is-danger{color:#fff;background:#cf4040;background:lab(49.4737% 56.8232 34.3326)}.form-error{color:#d74745;color:lab(51.7988% 56.7776 34.0415);margin:6px 0 0;font-size:.85rem}.tag-cards{max-width:1100px;padding:0 var(--gutter);grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:16px;margin:0 auto;list-style:none;display:grid}.tag-card{aspect-ratio:4/3;background:var(--glass);box-shadow:0 14px 34px -16px oklch(.2 .05 var(--hue) / .5);color:#fff;border-radius:22px;text-decoration:none;display:block;position:relative;overflow:hidden}.tag-card img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1)}.tag-card:hover img{transform:scale(1.05)}.tag-card-text{background:linear-gradient(#0000,#000000a6);background:linear-gradient(#0000,lab(0% 0 0/.65));flex-direction:column;gap:2px;padding:40px 16px 14px;display:flex;position:absolute;inset:auto 0 0}.tag-card-text strong{font-size:1.2rem}.tag-card-text span{opacity:.85;font-size:.85rem}.picker-dialog-bg{z-index:10000!important;width:auto!important;height:auto!important;position:fixed!important;inset:0!important}.picker-dialog{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);translate:-50% -50%;z-index:10001!important;position:fixed!important;top:50%!important;left:50%!important}:root{--safe-top:env(safe-area-inset-top,0px);--banner-h:0px}html.has-banner{--safe-top:calc(env(safe-area-inset-top,0px) + var(--banner-h) + 10px)}html.has-banner body{padding-top:var(--banner-h)}html.has-banner .login{min-height:calc(100svh - var(--banner-h))}html.has-banner :is(.day-title,.visitor-banner){top:var(--banner-h)}.deadline-banner{z-index:150;padding:calc(env(safe-area-inset-top,0px) + 10px) var(--gutter,16px) 10px;background:var(--ink);color:var(--paper);position:fixed;inset:0 0 auto}.deadline-banner p{font-family:var(--font-sans);text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 14px;margin:0;font-size:14.5px;line-height:1.4;display:flex}.deadline-banner strong{font-weight:600}.deadline-count{font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.8}.deadline-count time{opacity:1;font-weight:600}.deadline-banner a{color:inherit;white-space:nowrap;text-underline-offset:3px;font-weight:500;text-decoration:underline}@media (max-width:640px){.deadline-banner p{gap:0 10px;font-size:13.5px}}[data-busy]{cursor:progress;pointer-events:none}[data-busy]:not(:has(.spinner,.v-spinner)):after{content:"";vertical-align:-.15em;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:1em;height:1em;margin-inline-start:.5em;animation:.7s linear infinite busy-spin;display:inline-block}@keyframes busy-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){[data-busy]:not(:has(.spinner,.v-spinner)):after{animation-duration:2s}}
