@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/cdf703449fd42bc8-s.3gh0it7uhdum8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/3f10656f33c57dec-s.1x_wmg1bpi7y6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/56eb15be423b6220-s.321_9ike18iql.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/96074e70a40501da-s.1dfv6z-5f19bh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/de161955856a921d-s.p.0fxeqrss3ag9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Press Start 2P Fallback";src:local(Arial);ascent-override:44.58%;descent-override:0.0%;line-gap-override:0.0%;size-adjust:224.32%}.press_start_2p_14f47156-module__3Mdbcq__className{font-family:"Press Start 2P","Press Start 2P Fallback";font-style:normal;font-weight:400}.press_start_2p_14f47156-module__3Mdbcq__variable{--font-pixel:"Press Start 2P", "Press Start 2P Fallback"}
@font-face{font-family:Quicksand;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0781808e3393dbfb-s.3uuzd4ky6sm1t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Quicksand;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/fae90444fefcda8c-s.403cfnf7b-1vb.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Quicksand;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/4a7551bcc3548e67-s.p.3jc5sq-923m_s.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Quicksand Fallback;src:local(Arial);ascent-override:95.87%;descent-override:23.97%;line-gap-override:0.0%;size-adjust:104.31%}.quicksand_c127603-module__FGGI7a__className{font-family:Quicksand,Quicksand Fallback;font-style:normal}.quicksand_c127603-module__FGGI7a__variable{--font-body:"Quicksand", "Quicksand Fallback"}
@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}}}@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;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-pixel:var(--font-pixel);--font-body:var(--font-body)}}@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{.flex{display:flex}.table{display:table}.h-full{height:100%}.min-h-full{min-height:100%}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--cream:#fdf3e4;--cream-dark:#f5e6cf;--brown:#5b4636;--brown-soft:#8a6f5c;--pink:#e8a3a3;--pink-deep:#d67e88;--terracotta:#d98c6b;--terracotta-deep:#c06e4d;--cream-rgb:253, 243, 228}*{box-sizing:border-box}body{color:var(--brown);font-family:var(--font-body), sans-serif;background-color:var(--cream);background-image:url(/bg-pattern.png), linear-gradient(45deg, var(--cream-dark) 25%, transparent 25%), linear-gradient(-45deg, var(--cream-dark) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--cream-dark) 75%), linear-gradient(-45deg, transparent 75%, var(--cream-dark) 75%);image-rendering:pixelated;background-position:0 0,0 0,0 12px,12px -12px,-12px 0;background-size:auto,24px 24px,24px 24px,24px 24px,24px 24px}h1,h2,.pixel-text{font-family:var(--font-pixel), monospace}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:var(--cream);border:4px solid var(--brown);box-shadow:6px 6px 0 var(--pink-deep);text-align:center;width:100%;max-width:24rem;padding:2.5rem 2rem}.special-day-banner{z-index:40;background:var(--pink);width:20rem;max-width:calc(100vw - 2.5rem);color:var(--brown);border:4px solid var(--brown);box-shadow:5px 5px 0 var(--terracotta);justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:700;display:flex;position:fixed;top:1.25rem;right:1.25rem}.special-day-banner-close{color:var(--brown);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1.25rem;line-height:1}@media (max-width:640px){.special-day-banner{width:auto;max-width:none;inset:auto 1.25rem 1.25rem}}.login-title{color:var(--brown);margin-bottom:.75rem;font-size:1rem;line-height:1.6}.login-subtitle{color:var(--brown-soft);margin-bottom:1.5rem;font-size:.95rem}.login-input{border:3px solid var(--brown);width:100%;font-family:var(--font-body), sans-serif;background:#fff;margin-bottom:.75rem;padding:.75rem 1rem;font-size:1rem}.login-input:focus{outline:3px solid var(--pink);outline-offset:1px}.login-error{color:var(--terracotta-deep);margin-bottom:.75rem;font-size:.9rem}.login-button,.upload-button{background:var(--terracotta);color:#fff;border:3px solid var(--brown);box-shadow:3px 3px 0 var(--brown);font-family:var(--font-body), sans-serif;cursor:pointer;padding:.65rem 1.5rem;font-weight:700;transition:transform 80ms}.login-button:hover,.upload-button:hover{background:var(--terracotta-deep)}.login-button:active,.upload-button:active{box-shadow:0 0 0 var(--brown);transform:translate(3px,3px)}.login-button:disabled{opacity:.6;cursor:default}.home-page,.gallery-page{width:100%;max-width:72rem;margin:0 auto;padding:2rem 1.5rem 4rem}.home-header{text-align:center;margin-bottom:2rem}.home-title{color:var(--brown);font-size:1.75rem}.back-home-link{color:var(--brown-soft);margin-bottom:1rem;font-size:.9rem;text-decoration:none;display:inline-block}.back-home-link:hover{color:var(--brown);text-decoration:underline}.on-this-day{margin-bottom:2.5rem}.on-this-day-title{color:var(--brown);margin-bottom:1rem;margin-left:-.35em;font-size:1.1rem}.on-this-day-strip{scroll-snap-type:x proximity;gap:.85rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.on-this-day-item{scroll-snap-align:start;flex:none;width:6rem}.on-this-day-thumb{aspect-ratio:1;border:3px solid var(--brown);width:6rem;box-shadow:3px 3px 0 var(--pink);position:relative}.on-this-day-image{object-fit:cover}.on-this-day-year{text-align:center;color:var(--brown-soft);margin-top:.35rem;font-size:.75rem;display:block}.collection-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;display:grid}.collection-card{border:4px solid var(--brown);box-shadow:5px 5px 0 var(--pink);color:inherit;background:#fff;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:block}.collection-card:hover{box-shadow:7px 7px 0 var(--terracotta);transform:translate(-2px,-2px)}.collection-card-cover{aspect-ratio:4/3;border-bottom:4px solid var(--brown);background:var(--cream-dark);width:100%;position:relative}.collection-card-image{object-fit:cover}.collection-card-placeholder{width:100%;height:100%;color:var(--brown-soft);justify-content:center;align-items:center;font-size:.9rem;display:flex}.collection-card-text{padding:1rem 1.1rem 1.25rem}.collection-card-title{color:var(--brown);margin-bottom:.4rem;margin-left:-.35em;font-size:1.1rem}.collection-card-subtitle{color:var(--brown-soft);font-size:.9rem}.gallery-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.gallery-title{color:var(--brown);margin-bottom:.5rem;margin-left:-.35em;font-size:1.5rem}.gallery-subtitle{color:var(--brown-soft)}.signout-button{color:var(--brown);border:3px solid var(--brown);font-family:var(--font-body), sans-serif;cursor:pointer;background:#fff;padding:.5rem 1rem}.signout-button:hover{background:var(--cream-dark)}.gallery-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.edit-toggle-button{color:var(--brown);border:3px solid var(--brown);box-shadow:3px 3px 0 var(--brown);font-family:var(--font-body), sans-serif;cursor:pointer;background:#fff;padding:.55rem 1.25rem;font-weight:700;transition:transform 80ms}.edit-toggle-button:hover{background:var(--cream-dark)}.edit-toggle-button:active{box-shadow:0 0 0 var(--brown);transform:translate(3px,3px)}.edit-toggle-button[data-active]{background:var(--pink);color:var(--brown)}.gallery-empty{text-align:center;color:var(--brown-soft);padding:3rem 1rem;font-size:1.1rem}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem;display:grid}.photo-card{border:4px solid var(--brown);box-shadow:5px 5px 0 var(--pink);background:#fff;padding:.6rem .6rem .8rem;transition:box-shadow .15s}.photo-card[data-dragging]{box-shadow:5px 5px 0 var(--terracotta);cursor:grabbing}.photo-card[data-deleting]{opacity:.4;pointer-events:none}.photo-card-image-wrap{aspect-ratio:1;cursor:default;position:relative}.photo-card-image-wrap[data-editable]{cursor:grab;touch-action:none}.photo-card-image{object-fit:cover;border:2px solid var(--cream-dark)}.photo-card-delete{background:var(--pink-deep);color:#fff;border:2px solid var(--brown);cursor:pointer;opacity:0;width:1.75rem;height:1.75rem;font-size:1.1rem;line-height:1;transition:opacity .15s;position:absolute;top:.4rem;right:.4rem}.photo-card-image-wrap:hover .photo-card-delete{opacity:1}.photo-card-footer{margin-top:.5rem}.photo-card-caption,.photo-card-caption-input{text-align:left;width:100%;font-family:var(--font-body), sans-serif;color:var(--brown);cursor:text;background:0 0;border:none;padding:.15rem 0;font-size:.9rem}.photo-card-caption{color:var(--brown-soft)}.photo-card-caption-input{border-bottom:2px solid var(--pink);outline:none}.photo-card-caption-static{text-align:left;width:100%;font-family:var(--font-body), sans-serif;color:var(--brown-soft);margin:0;padding:.15rem 0;font-size:.9rem}.photo-card-date{color:var(--brown-soft);opacity:.8;margin-top:.2rem;font-size:.75rem;display:block}.modal-backdrop{z-index:50;background:#5b46368c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--cream);border:4px solid var(--brown);box-shadow:6px 6px 0 var(--terracotta);width:100%;max-width:26rem;padding:2rem}.modal-title{margin-bottom:1.25rem;margin-left:-.35em;font-size:1rem}.modal-file-input-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.choose-files-button{background:var(--pink);width:100%;color:var(--brown);border:4px dashed var(--brown);box-shadow:4px 4px 0 var(--terracotta);font-family:var(--font-body), sans-serif;cursor:pointer;padding:1rem;font-size:1.1rem;font-weight:700;transition:transform 80ms}.choose-files-button:hover{background:var(--pink-deep)}.choose-files-button:active{box-shadow:0 0 0 var(--terracotta);transform:translate(4px,4px)}.choose-files-button:disabled{opacity:.6;cursor:default}.choose-files-status{text-align:center;color:var(--brown-soft);margin:.5rem 0 1rem;font-size:.85rem}.upload-progress-track{border:3px solid var(--brown);background:#fff;width:100%;height:1.25rem;margin-bottom:1rem;padding:2px}.upload-progress-fill{background:var(--terracotta);height:100%;transition:width .15s}.modal-caption-input{border:3px solid var(--brown);width:100%;font-family:var(--font-body), sans-serif;background:#fff;margin-bottom:1rem;padding:.6rem .75rem}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}@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}
