@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:#ffa3a3;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-widest:.1em;--radius-lg:.5rem;--radius-2xl:1rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--radius:1.125rem;--color-background:#fafafc;--color-foreground:#1e1b2e;--color-card:#fff;--color-primary:#8c7cf0;--color-primary-foreground:#fff;--color-secondary:#f3f0ff;--color-accent:#ede9fe;--color-muted:#f5f3fa;--color-muted-foreground:#8e8b9e;--color-pink-soft:#fce7f3;--color-pink-strong:#ec4899;--font-display:"Yuanti SC", "YouYuan", "幼圆", "PingFang SC", sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.right-0{right:0}.bottom-8{bottom:calc(var(--spacing) * 8)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-6{margin-block:calc(var(--spacing) * 6)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-9{height:calc(var(--spacing) * 9)}.h-12{height:calc(var(--spacing) * 12)}.h-auto{height:auto}.h-full{height:100%}.min-h-full{min-height:100%}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.w-px{width:1px}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:0}.flex-1{flex:1}.flex-none{flex:none}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-y-scroll{overflow-y:scroll}.rounded-\(--radius\){border-radius:var(--radius)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-l-\[3px\]{border-left-style:var(--tw-border-style);border-left-width:3px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[\#D8CEFA\]{border-color:#d8cefa}.border-muted{border-color:#f5f3fa}.border-pink-strong{border-color:#ec4899}.border-primary{border-color:#8c7cf0}.border-transparent{border-color:#0000}.bg-\[\#4C4C4C\]{background-color:#4c4c4c}.bg-accent{background-color:#ede9fe}.bg-background{background-color:#fafafc}.bg-card{background-color:#fff}.bg-muted{background-color:#f5f3fa}.bg-primary{background-color:#8c7cf0}.bg-secondary{background-color:#f3f0ff}.bg-white\/25{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.bg-white\/25{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent{--tw-gradient-from:#ede9fe;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-secondary{--tw-gradient-to:#f3f0ff;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-12{padding-block:calc(var(--spacing) * 12)}.text-center{text-align:center}.font-display{font-family:Yuanti SC,YouYuan,幼圆,PingFang SC,sans-serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:#1e1b2e}.text-muted-foreground{color:#8e8b9e}.text-pink-strong{color:#ec4899}.text-primary{color:#8c7cf0}.text-primary-foreground{color:#fff}.text-red-300{color:var(--color-red-300)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.focus\:border-primary:focus{border-color:#8c7cf0}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}@media (min-width:40rem){.sm\:p-8{padding:calc(var(--spacing) * 8)}}}body{background:var(--color-background);color:var(--color-foreground)}.font-display{font-family:var(--font-display);font-weight:700}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0;border-radius:10px;padding:8px 12px}button:disabled{cursor:wait;opacity:.5}button:hover:not(:disabled){filter:brightness(.97)}.avatar-choice{background:var(--color-secondary);border:3px solid #0000;border-radius:18px;padding:8px;position:relative}.avatar-choice-selected{background:#ede9fe;border-color:#6952d5;box-shadow:0 0 0 3px #d8d0ff}.avatar-choice-check{border-radius:50%;place-items:center;width:22px;height:22px;font-size:14px;font-weight:700;display:grid;position:absolute;top:3px;right:3px}.avatar-choice-selected .avatar-choice-check{color:#fff;background:#6952d5}.avatar-choice-label{color:#645c79;margin-top:4px;font-size:12px;display:block}.avatar-choice-selected .avatar-choice-label{color:#5942bd;font-weight:700}:focus-visible{outline-offset:3px;outline:3px solid #b5a9fb}input,textarea,select{color:#1e1b2e;background:#faf9fe;border:1px solid #e9e5f2;border-radius:12px;width:100%;padding:12px 14px;display:block}input{min-height:46px}textarea{resize:vertical}select{min-height:46px}label{margin:14px 0;font-size:14px;display:block}label input{margin-top:7px}fieldset{border:0;min-width:0;margin:0;padding:0}h1,h2,h3,.year-heading{font-family:var(--font-display);font-weight:700;line-height:1.4}h1{letter-spacing:.02em;margin:0 0 8px;font-size:26px}h2{font-size:19px}p{margin:8px 0}.page{width:min(100%,620px);margin:0 auto;padding:28px 20px 155px}.page-header{justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;display:flex}.eyebrow{color:#aaa3bd;letter-spacing:.16em;margin:0 0 7px;font-size:10px;font-weight:600}.muted,small{color:#8e8b9e}.muted{font-size:13px}.error{color:#b63556;overflow-wrap:anywhere;background:#fff0f4;border-radius:12px;padding:10px 14px;font-size:13px}.success{color:#047857;background:#ecfdf5;border-radius:12px;padding:12px}.primary,.button{color:#fff;background:#8c7cf0;border-radius:12px;justify-content:center;align-items:center;padding:10px 20px;font-size:14px;font-weight:600;display:inline-flex}.wide{width:100%;margin-top:15px}.avatar{object-fit:cover;vertical-align:middle;background:#f3f0ff;border-radius:50%;flex-shrink:0;display:inline-block}.avatar-letter{color:#fff;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.search-bar{color:#a49db4;background:#fff;border:1px solid #ede9fe;border-radius:99px;margin-bottom:20px;padding:12px 18px;font-size:13px;display:block}.timeline-search{margin-bottom:20px}.search-field{position:relative}.timeline-search .search-bar{width:100%;color:var(--color-foreground);margin-bottom:0;padding-right:52px}.search-field .search-bar::-webkit-search-cancel-button{display:none}.search-clear{width:30px;height:30px;color:var(--color-primary);background:#f3f0ff;border-radius:50%;padding:0;font-size:20px;line-height:1;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.search-input{background:#fff;border-radius:99px;margin:22px 0 18px}.otd-banner{background:linear-gradient(110deg,#ede9fe,#f6f0ff);border-radius:18px;align-items:center;gap:14px;margin:0 0 28px;padding:18px;display:flex}.otd-banner>span:last-child{color:#8c7cf0;margin-left:auto;font-size:24px}.otd-banner strong{font-size:15px}.otd-banner p{color:#8a7da5;margin:3px 0 0;font-size:12px}.special-day-banner{background:radial-gradient(circle at 90% 10%,#fff5bd 0 12%,#0000 13%),linear-gradient(115deg,#fff4f8,#fff9ea);border:1px solid #f3d8e6;border-radius:18px;align-items:center;gap:13px;margin:0 0 14px;padding:17px 18px;display:flex}.special-day-icon{background:#fff;border-radius:15px;flex:none;place-items:center;width:46px;height:46px;display:grid;box-shadow:0 4px 14px #d987a81f}.special-day-banner>div{min-width:0}.special-day-banner strong{font-size:15px;display:block}.special-day-banner p{color:#9b7890;margin:3px 0 0;font-size:11px}.special-day-banner>span:last-child{color:#c7799d;margin-left:auto;font-size:23px}.year-heading{color:#8c7cf0;align-items:center;gap:10px;margin:24px 0 14px;font-size:23px;display:flex}.year-heading:after{content:"";border-top:2px dashed #e7e0f9;flex:1}.year-heading button{padding:0}.timeline{border-left:3px dashed #d8cefa;margin-left:6px;padding-left:19px}.event-card{overflow-wrap:anywhere;background:#fff;border:1px solid #f0edf7;border-radius:18px;margin-bottom:17px;padding:18px;scroll-margin-top:20px;position:relative;box-shadow:0 3px 15px #8c7cf00a}.timeline>.event-card:before{content:"";background:#fafafc;border:3px solid #a78bfa;border-radius:50%;width:12px;height:12px;position:absolute;top:25px;left:-27px}.date-badge{color:#8c7cf0;background:#f3f0ff;border-radius:99px;padding:3px 11px;font-size:12px;font-weight:600;display:inline-block}.event-card:nth-child(3n) .date-badge{color:#d66c95;background:#fce7f3}.event-card h2{margin:10px 0 7px}.event-description{color:#55506b;white-space:pre-wrap;font-size:14px;line-height:1.85}.event-description mark{background:linear-gradient(#0000 55%,#fff1ac 55%)}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:14px 0;display:grid}.photo-grid button{border-radius:9px;padding:0;overflow:hidden}.photo-grid img{aspect-ratio:1;object-fit:cover;width:100%;height:100%;display:block}.event-photos{width:min(100%,264px)}.event-photos.single-photo{grid-template-columns:minmax(0,1fr);width:min(100%,160px)}.event-photos>button{aspect-ratio:1}.comment-tools{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.participants{flex-wrap:wrap;align-items:center;gap:5px;margin-top:16px;display:flex}.participants small{margin-left:auto;font-size:11px}.guest-label{color:#9a8bab;margin:7px 0;font-size:11px}.event-footer{justify-content:space-between;align-items:center;gap:8px;margin-top:13px;display:flex}.event-footer small{min-width:0;font-size:10px}.event-meta{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dots{flex-shrink:0;position:relative}.dots>button{white-space:nowrap;color:#8c7cf0;letter-spacing:2px;background:#f3f0ff;justify-content:center;align-items:center;width:36px;height:32px;padding:0 10px;font-weight:900;display:inline-flex}.popover{z-index:5;color:#fff;white-space:nowrap;background:#4c4859;border-radius:10px;font-size:12px;display:flex;position:absolute;bottom:36px;right:0;box-shadow:0 5px 18px #1e1b2e26}.popover button{padding:10px}.comment-zone{background:#f7f5fb;border-radius:10px;margin-top:13px;padding:10px 12px;font-size:13px}.likes{color:#8c7cf0;border-bottom:1px solid #ebe7f3;margin-bottom:5px;padding-bottom:6px}.comment-line{text-align:left;white-space:pre-wrap;width:100%;padding:4px 0;line-height:1.75}.comment-actions{background:#fff;border-radius:9px;gap:5px;margin:4px 0 7px;display:flex}.comment-actions button{color:#8c7cf0;font-size:12px}.comment-input{border-top:1px solid #eee9f7;margin-top:12px;padding-top:10px;position:relative}.comment-input>.row{flex-wrap:nowrap;min-height:34px;margin-bottom:6px}.comment-input textarea{width:100%;min-height:65px;margin:0;padding:9px;font-size:14px;display:block}.row{justify-content:space-between;align-items:center;gap:3px;display:flex}.row button{padding:6px 8px;font-size:12px}.bottom-tabs{z-index:20;width:min(100%,620px);padding:12px 5px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ffffffed;border-top:1px solid #eeeaf5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-tabs a{color:#aaa1b8;flex-direction:column;align-items:center;gap:4px;min-width:50px;font-size:11px;display:flex}.bottom-tabs a[aria-current]{color:#8c7cf0;font-weight:700}.fab{z-index:19;bottom:calc(90px + env(safe-area-inset-bottom));color:#fff;background:#8c7cf0;border-radius:99px;padding:12px 19px;font-size:14px;font-weight:600;position:fixed;right:max(20px,50vw - 290px);box-shadow:0 6px 20px #8c7cf045}.sheet{width:min(100%,620px);max-width:620px;max-height:80dvh;padding:22px 22px calc(24px + env(safe-area-inset-bottom));color:#1e1b2e;background:#fff;border:0;border-radius:24px 24px 0 0;margin:0 auto;position:fixed;inset:auto 0 0;overflow-y:auto}.sheet::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1e1b2e66}.sheet>header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.sheet>header h2{margin:0;font-size:17px}.emoji-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;display:grid}.emoji-grid button{min-height:42px;padding:5px}.wheels{justify-content:center;gap:25px;display:flex}.wheel-column{scroll-snap-type:y mandatory;scrollbar-width:none;flex-direction:column;min-width:100px;height:180px;padding-block:72px;display:flex;overflow-y:auto}.wheel-column button{scroll-snap-align:center;color:#a59db9;height:36px;min-height:36px;padding:0}.wheel-column button[aria-selected=true]{color:#8c7cf0;background:#f3f0ff;font-weight:700}.sheet-actions{gap:12px;margin-top:18px;display:flex}.sheet-actions button{background:#f5f3fa;flex:1}.sheet-actions .primary{background:#8c7cf0}.sheet.photo-viewer-dialog{color:#fff;background:#0d0c13;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;inset:0}.photo-viewer{touch-action:pan-x pan-y;justify-content:center;align-items:center;height:calc(100dvh - 240px);display:flex;overflow:auto}.photo-viewer img{object-fit:contain;transform-origin:50%;width:100%;max-width:1200px;height:100%}.viewer-controls{justify-content:center;align-items:center;gap:20px;margin:12px 0;display:flex}.empty{text-align:center;color:#a19aaf;padding:60px 10px}.empty>span{font-size:38px}.empty h2{color:#81748f}.empty p{font-size:13px}.load-more{text-align:center;color:#aba3b9;padding:20px;font-size:12px}.filter-notice{color:#8c7cf0;justify-content:space-between;font-size:12px;display:flex}.back-link{color:#8c7cf0;margin-bottom:22px;font-size:13px;display:inline-block}.composer{padding-bottom:50px}.composer-header{border-bottom:1px solid #efeaf7;justify-content:space-between;align-items:center;padding:0 0 20px;display:flex}.composer-header>span{color:#a69db5;font-size:13px}.composer-author{align-items:center;gap:12px;margin:25px 0 18px;display:flex}.composer-author p{color:#aaa0b6;margin:2px 0;font-size:11px}.composer-text{resize:none;background:0 0;border:0;min-height:200px;padding:8px 0;font-size:18px;line-height:1.9}.composer-text:first-line{font-weight:600}.composer-text::placeholder{color:#c0b8ce}.emoji-trigger{color:#a79ac1;padding-left:0;font-size:13px}.composer-photos{gap:9px;margin:16px 0 30px}.photo-tile{border-radius:12px;position:relative;overflow:hidden}.photo-tile .remove-photo{color:#fff;background:#1e1b2e88;border-radius:50%;padding:0 5px;font-size:12px;position:absolute;top:4px;right:4px}.photo-status{color:#fff;text-align:center;background:#1e1b2e99;font-size:10px;position:absolute;bottom:0;left:0;right:0}.photo-grid .add-photo{color:#b2a4cb;aspect-ratio:1;background:#f6f3fc;border:1.5px dashed #d9cfee;font-size:32px}.add-photo small{margin-top:-8px;font-size:10px;display:block}.metadata-rows{border-top:1px solid #ece6f5}.metadata-rows>button,.metadata-rows>label{border-bottom:1px solid #eeeaf5;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:0;padding:17px 0;font-size:14px;display:flex}.metadata-rows>button span:last-child{color:#a99dbb;text-align:right;max-width:70%;font-size:12px}.metadata-rows input{text-align:right;background:0 0;border:0;width:65%;margin:0;font-size:12px}.composer-note{text-align:center;color:#b7adc5;margin-top:30px;font-size:11px}.upload-error{color:#b63556;padding:8px 0;font-size:12px}.upload-error button{color:#8c7cf0;background:#f3f0ff}.people-picker{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.people-picker button{border:2px solid #0000;flex-direction:column;align-items:center;gap:8px;font-size:13px;display:flex}.people-picker button[aria-pressed=true]{background:#f3f0ff;border-color:#8c7cf0}.chips{flex-wrap:wrap;gap:7px;margin:14px 0;display:flex}.chips button{color:#978da9;background:#f3f0f9;border:1px solid #0000;border-radius:99px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;display:inline-flex}.chips button[aria-pressed=true]{color:#8c7cf0;background:#ede9fe;border-color:#cfc4fb}.wall-grid{gap:6px}.people-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.person-card{background:#fff;border:1px solid #eee7f7;border-radius:20px;flex-direction:column;align-items:center;padding:26px 10px;display:flex}.person-card h2{margin:13px 0 0;font-size:17px}.person-card p{color:#a79bae;font-size:12px}.person-card-bio{margin-bottom:2px}.person-card small{text-align:center;margin-top:3px;font-size:10px}.person-header{flex-direction:column;align-items:center;padding-bottom:10px;display:flex}.person-header .back-link{align-self:flex-start}.person-header h1{margin-top:14px}.person-header p{color:#9a8ba9;font-size:13px}.profile-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,520px);margin-top:16px;display:grid}.profile-summary>div{text-align:left;background:#fff;border:1px solid #eee8f7;border-radius:14px;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;display:flex}.profile-summary span{color:#aaa0b7;font-size:10px}.profile-summary strong{overflow-wrap:anywhere;font-size:12px}.settings-section{background:#fff;border:1px solid #f0edf7;border-radius:18px;margin-bottom:18px;padding:20px}.settings-section h2{margin:0 0 14px;font-size:16px}.profile-fields{gap:13px;display:grid}.profile-fields>label,.profile-fields fieldset,.special-day-form>label{margin:0}.profile-fields>label>span,.profile-fields legend,.special-day-form>label{color:#71687f;margin-bottom:7px;font-size:12px;font-weight:600;display:block}.profile-fields select,.profile-fields input{margin-top:0}.birthday-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:9px;display:grid}.birthday-fields label{color:#8d849b;margin:0;font-size:11px}.birthday-fields select{margin-top:5px}.birthday-fields small{grid-column:1/-1;font-size:10px}.region-trigger{color:#1e1b2e;text-align:left;background:#faf9fe;border:1px solid #e9e5f2;border-radius:12px;width:100%;min-height:46px;padding:11px 13px}.region-picker{min-height:min(70dvh,620px)}.region-back{color:#8c7cf0;padding-left:0;font-size:12px}.region-search span{color:#8d849b;margin-bottom:7px;font-size:11px;display:block}.region-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;padding-bottom:16px;display:grid}.region-options button{color:#61576f;background:#faf9fe;border:1px solid #eee8f7;border-radius:12px;min-height:42px;font-size:12px}.region-options button[aria-selected=true]{color:#715ee0;background:#f0ecff;border-color:#b9abf9}.region-options>p{grid-column:1/-1}.today-history-heading{border-top:1px dashed #e6def8;justify-content:space-between;align-items:end;gap:15px;margin:34px 0 8px;padding-top:24px;display:flex}.today-history-heading h2{margin:0}.today-history-heading>p{color:#a59bad;text-align:right;max-width:240px;margin:0;font-size:10px}.special-day-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:-5px 0 26px;display:flex}.special-day-toolbar p{color:#9a90a9;margin:0;font-size:12px}.special-day-toolbar button{flex:none;padding:9px 14px;font-size:12px}.special-day-section{margin-bottom:28px}.special-day-section>h2{margin:0 0 12px;font-size:17px}.special-day-grid{gap:10px;display:grid}.special-day-card{background:#fff;border:1px solid #f0ebf8;border-radius:17px;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:92px;padding:14px 15px;display:grid}.special-day-card.kind-birthday{background:linear-gradient(105deg,#fff,#fff7fa);border-color:#f2dbe6}.special-day-card.kind-anniversary{background:linear-gradient(105deg,#fff,#fffaf0);border-color:#eee2bd}.special-day-date{color:#8372d5;background:#f4f0ff;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;height:60px;display:flex}.kind-birthday .special-day-date{color:#cc668f;background:#fdebf2}.kind-anniversary .special-day-date{color:#b68426;background:#fff5d8}.special-day-date strong{font-size:22px;line-height:1}.special-day-date span{margin-top:5px;font-size:9px}.special-day-card small{color:#a99faf;font-size:10px}.special-day-card h3{margin:2px 0;font-size:15px}.special-day-card p{color:#9c92a6;margin:0;font-size:10px}.special-day-delete{color:#b6acbe;align-self:start;padding:3px;font-size:10px}.special-day-form{gap:15px;display:grid}.special-day-form .wide{margin-top:2px}.people-map-card{background:linear-gradient(150deg,#fff,#faf7ff);border:1px solid #ebe5f5;border-radius:22px;margin-top:26px;padding:20px}.people-map-card>header{justify-content:space-between;align-items:end;gap:15px;margin-bottom:14px;display:flex}.people-map-card>header h2{margin:0;font-size:18px}.people-map-card>header>p{color:#a69caf;margin:0;font-size:10px}.people-map{background:radial-gradient(circle at 65% 25%,#fff9,#0000 35%),#f3effb;border-radius:17px;min-height:250px;position:relative;overflow:hidden}.people-map svg{width:100%;height:290px;display:block}.map-land{fill:#fffdfd;stroke:#d9cff0;stroke-width:.6px;filter:drop-shadow(0 5px 8px #885fb916)}.map-grid-dot{fill:#ded6ed}.map-marker circle{stroke:#fff;stroke-width:.8px}.map-marker.current circle{fill:#8c7cf0}.map-marker.hometown circle{fill:#f4b9cd}.map-marker text{fill:#fff;font-size:1.8px;font-weight:700}.map-empty{text-align:center;place-content:center;padding:35px;display:grid;position:absolute;inset:0}.map-empty strong{color:#71667f;font-size:14px}.map-empty p{color:#9f95aa;max-width:280px;font-size:11px}.map-legend{color:#81768e;justify-content:center;gap:18px;margin-top:10px;font-size:10px;display:flex}.map-legend span{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:50%;width:8px;height:8px;display:block}.legend-dot.current{background:#8c7cf0}.legend-dot.hometown{background:#f4b9cd}.map-distribution{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px;display:grid}.map-distribution>div{background:#ffffffa8;border-radius:13px;min-width:0;padding:12px}.map-distribution strong{color:#7d7189;font-size:11px}.map-distribution p{color:#9e94a8;overflow-wrap:anywhere;margin:3px 0 0;font-size:10px}.color-swatches{flex-wrap:wrap;gap:10px;display:flex}.color-swatches button{color:#fff;border:3px solid #fff;border-radius:50%;outline:2px solid #0000;width:35px;height:35px;padding:0}.color-swatches button[aria-pressed=true]{outline-color:#b5a5ce}.logout{color:#a491b3;text-align:center;margin:20px auto;font-size:13px;display:block}.credits{text-align:center;color:#b9b0c4;font-size:10px}@media (min-width:700px){.page{padding-top:40px}.people-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:460px){.region-options{grid-template-columns:repeat(2,minmax(0,1fr))}.special-day-toolbar{flex-direction:column;align-items:flex-start;gap:10px}.special-day-toolbar button{width:100%}.today-history-heading,.people-map-card>header{flex-direction:column;align-items:flex-start}.today-history-heading>p{text-align:left}.profile-summary{grid-template-columns:1fr}.people-map svg{height:240px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.date-wheels{gap:12px}.date-wheels .wheel-column{flex:1;min-width:0}.photo-viewer-dialog>header{padding-top:env(safe-area-inset-top)}.photo-viewer-dialog .viewer-controls button{color:#fff;background:#ffffff14}.photo-viewer-dialog .viewer-controls button:disabled{color:#81798d;cursor:default}.photo-viewer-dialog>p{color:#d8d2e3;text-align:center;font-size:13px}.photo-viewer-dialog>.button{background:#ffffff20;width:max-content;margin:12px auto;display:flex}.historian-tools{border:1px solid #d8d2e3;border-radius:12px;margin-top:16px;padding:12px}.historian-tools summary{cursor:pointer;font-weight:600}.historian-tools fieldset{border:1px solid #d8d2e3;border-radius:8px;min-width:0;margin:12px 0;padding:12px}.historian-tools label{gap:6px;margin:10px 0;display:grid}.historian-tools select,.historian-tools textarea{width:100%;min-width:0;max-width:100%;font:inherit;padding:8px}.historian-tools textarea{resize:vertical;min-height:90px}.identity-option{transition:background .15s,border-color .15s,box-shadow .15s;position:relative}.identity-option[aria-pressed=true]{color:#5740bd;background:#e9e2ff;border:2px solid #7863df;font-weight:700;box-shadow:0 0 0 3px #8c7cf033}.identity-check{color:#fff;background:#7863df;border:2px solid #fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:14px;display:grid;position:absolute;top:-8px;right:-6px;box-shadow:0 2px 6px #7863df40}.identity-selection{color:#8e83a7;text-align:center;background:#f3f0ff;border-radius:12px;min-height:42px;margin:0;padding:10px 14px;font-size:13px}.identity-selection strong{color:#7155d0;margin-left:5px;font-size:15px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
