:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#29272a;background:#f7f2e9;font-synthesis:none;--ivory: #fffdf8;--cream: #f7f2e9;--champagne: #dcc99f;--gold: #b18a43;--burgundy: #71172a;--burgundy-dark: #4c0d1b;--graphite: #29272a;--muted: #706a68;--line: rgba(91, 61, 47, .14)}*{box-sizing:border-box}html{min-width:320px;background:var(--cream);overflow-x:clip;overflow-y:auto}body{margin:0;min-width:320px;min-height:100vh;max-width:100%;overflow-x:clip}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(113,23,42,.4);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-shell{min-height:100vh;display:grid;grid-template-columns:minmax(380px,46vw) 1fr;background:var(--cream)}.portrait{position:sticky;top:0;height:100vh;overflow:hidden;background:#ece9e6}.portrait>img{width:100%;height:100%;object-fit:cover;object-position:56% center;transform:scale(1.015);animation:breathe 18s ease-in-out infinite alternate}.portrait-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(31,18,22,.72) 100%)}.portrait-copy{position:absolute;left:clamp(28px,4vw,72px);right:clamp(28px,4vw,72px);bottom:clamp(36px,7vh,84px);color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.2)}.eyebrow{display:block;color:var(--gold);font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}.portrait-copy .eyebrow{color:#f0d9a8}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:500;margin:0;line-height:1.08}h1{font-size:clamp(2.4rem,4.2vw,4.7rem);letter-spacing:-.035em}h2{font-size:clamp(1.7rem,2.2vw,2.2rem);letter-spacing:-.02em}.portrait-copy p,.mobile-intro p{font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.65;max-width:580px;margin:18px 0 0}.workspace{position:relative;padding:clamp(28px,5vw,80px);overflow:hidden}.glow{position:fixed;pointer-events:none;border-radius:999px;filter:blur(2px);opacity:.48}.glow-one{width:360px;height:360px;top:-150px;right:-80px;background:radial-gradient(circle,rgba(225,192,127,.34),transparent 70%)}.glow-two{width:260px;height:260px;bottom:-100px;left:42%;background:radial-gradient(circle,rgba(113,23,42,.1),transparent 70%)}.upload-card{position:relative;width:min(780px,100%);margin:0 auto;padding:clamp(24px,4vw,52px);border:1px solid rgba(255,255,255,.9);border-radius:30px;background:#fffdf8e6;box-shadow:0 30px 80px #4d362c1f,inset 0 1px #fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-intro{display:none}.view-tabs{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:22px}.view-tabs button{min-height:46px;border:1px solid var(--line);border-radius:999px;color:var(--graphite);background:#ffffffb3;font-weight:700;cursor:pointer}.view-tabs button[aria-selected=true]{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dark))}.tab-heart{position:relative;width:52px;display:grid;place-items:center;padding:0}.heart-icon{width:22px;height:22px;display:block}.tab-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:99px;color:#fff;background:var(--burgundy);font-size:.68rem;line-height:18px;text-align:center}.name-field{display:grid;gap:9px;margin-bottom:22px;font-size:.95rem;font-weight:600;color:var(--graphite)}.name-field small{color:var(--muted);font-weight:400}.name-field input{width:100%;min-height:52px;padding:0 16px;border:1px solid var(--line);border-radius:14px;color:var(--graphite);background:#ffffffbf;transition:border-color .2s,box-shadow .2s}.name-field input:focus{border-color:var(--gold);box-shadow:0 0 0 4px #b18a431f;outline:none}.name-field input::placeholder{color:#aaa29d}.drop-zone{min-height:288px;padding:30px;border:1.5px dashed rgba(177,138,67,.55);border-radius:22px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(145deg,#ffffffd1,#f6eddd8a);transition:transform .2s,background .2s,border-color .2s}.drop-zone.is-dragging{transform:scale(1.01);border-color:var(--burgundy);background:#71172a0e}.upload-mark{width:56px;height:56px;display:grid;place-items:center;margin-bottom:14px;border:1px solid rgba(177,138,67,.4);border-radius:50%;color:var(--gold);background:#fff;box-shadow:0 10px 30px #5136291a}.upload-mark span{font:300 2rem/1 sans-serif;transform:translateY(-1px)}.drop-zone>strong{font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:500}.drop-help{color:var(--muted);margin:7px 0 20px}.drop-zone>small{color:var(--muted);font-size:.77rem;margin-top:12px}.primary-button,.send-button{min-height:50px;padding:0 24px;border:0;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dark));box-shadow:0 10px 25px #71172a38;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s,opacity .2s}.primary-button:hover,.send-button:hover{transform:translateY(-2px);box-shadow:0 14px 32px #71172a47}button:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.message{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;margin-top:18px;border-radius:14px;line-height:1.45;font-size:.92rem}.message>span{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font-weight:800}.message-success{background:#f0f7f0;color:#2b5a35;border:1px solid #d7ead8}.message-success>span{color:#fff;background:#3e7650}.message-error{background:#fff1f1;color:#7e1b2c;border:1px solid #f2d1d6}.message-error>span{color:#fff;background:var(--burgundy)}.queue-section,.memories-section{margin-top:38px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading .eyebrow{margin-bottom:5px}.section-heading>span{min-width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:var(--burgundy);background:#f4e9e5;font-weight:700}.overall-progress{margin-bottom:18px}.overall-progress>div,.file-progress{height:6px;overflow:hidden;border-radius:99px;background:#e8e1db}.overall-progress>div span,.file-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#d7b66f);transition:width .25s ease}.overall-progress p{margin:8px 0 0;color:var(--muted);font-size:.84rem}.overall-progress strong{color:var(--graphite)}.file-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.file-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#ffffffbf;animation:rise .35s ease both}.file-thumb{width:62px;height:62px;overflow:hidden;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(145deg,#3b383b,#201f20)}.file-thumb img{width:100%;height:100%;object-fit:cover}.file-thumb span{font-size:1.2rem}.file-info{min-width:0}.file-title{display:flex;justify-content:space-between;gap:10px}.file-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.file-title span{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.status-complete .file-title span{color:#3e7650}.status-error .file-title span,.inline-error{color:var(--burgundy)}.file-info>p{margin:5px 0 8px;color:var(--muted);font-size:.76rem}.file-info .inline-error{margin-bottom:0;line-height:1.35}.icon-button,.text-button{min-width:40px;min-height:40px;border:0;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer}.icon-button{font-size:1.45rem}.icon-button:hover{color:var(--burgundy);background:#f4e9e5}.text-button{color:var(--burgundy);font-weight:700}.send-button{width:100%;margin-top:18px;min-height:56px;font-size:1rem}.queue-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#1f121675;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.queue-modal-card{width:min(440px,100%);padding:32px 28px 22px;border:1px solid rgba(255,255,255,.9);border-radius:24px;background:var(--ivory);box-shadow:0 30px 80px #4d362c38;text-align:center}.queue-modal-mark{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 14px;border:1px solid rgba(177,138,67,.45);border-radius:50%;color:var(--burgundy);background:#fff;box-shadow:0 10px 30px #5136291a;font:600 1.35rem Georgia,Times New Roman,serif}.queue-modal-card h2{margin:6px 0 12px;font-size:clamp(1.7rem,3vw,2rem)}.queue-modal-card p{margin:0 0 10px;color:var(--muted);line-height:1.55}.queue-modal-card .primary-button{width:100%;margin-top:8px}.queue-modal-dismiss{width:100%;margin-top:4px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:18px;border:1px solid var(--line);border-radius:16px;background:#ffffff8f}.stats>div{display:grid;gap:2px;padding:14px 10px;text-align:center}.stats>div+div{border-left:1px solid var(--line)}.stats strong{color:var(--burgundy);font:600 1.35rem Georgia,Times New Roman,serif}.stats span{color:var(--muted);font-size:.75rem}.album-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0;padding:0}.album-card{width:100%;min-width:0;display:grid;gap:6px;padding:0;border:0;color:inherit;text-align:left;background:transparent;cursor:pointer}.album-cover{aspect-ratio:4 / 3;overflow:hidden;border-radius:16px;background:#e9e4df}.album-cover img{width:100%;height:100%;object-fit:cover;image-orientation:from-image}.album-card strong,.album-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-card strong{font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:500}.album-card span{color:var(--muted);font-size:.78rem}.album-back{justify-self:start;margin-bottom:6px;padding:0;min-height:40px}.memory-grid{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0}.memory-card{width:100%;min-width:0;display:grid;gap:4px;padding:0 0 8px;border:0;color:inherit;text-align:left;background:transparent;cursor:pointer}.memory-media{aspect-ratio:1;overflow:hidden;margin-bottom:5px;border-radius:14px;background:#e9e4df}.memory-media img{width:100%;height:100%;object-fit:cover;image-orientation:from-image;transition:transform .3s}.memory-card:hover img{transform:scale(1.04)}.video-tile{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:6px;color:#fff;background:linear-gradient(145deg,#403d40,#211f21);font-size:.78rem}.video-tile b{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);border-radius:50%;padding-left:2px}.memory-grid strong,.memory-grid span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 3px}.memory-viewer{position:fixed;inset:0;z-index:1000;height:100dvh;color:#fff;background:#000}.viewer-toolbar,.viewer-dock{position:absolute;left:0;right:0;z-index:2;display:flex;align-items:center;gap:12px}.viewer-toolbar{top:0;padding:max(10px,env(safe-area-inset-top)) 12px 36px;background:linear-gradient(rgba(0,0,0,.62),transparent)}.viewer-dock{bottom:0;justify-content:space-between;padding:36px 16px max(14px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#0000009e)}.viewer-count{margin:0;color:#f0d9a8;font-size:.84rem;font-weight:700}.viewer-name{margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem}.viewer-download,.viewer-close,.viewer-arrow,.viewer-like{border:0;color:#fff;background:#ffffff29;cursor:pointer}.viewer-download{min-height:44px;display:inline-grid;place-items:center;padding:0 16px;border-radius:999px;color:inherit;font-weight:700;text-decoration:none}.viewer-close{width:44px;height:44px;border-radius:50%;font-size:1.6rem;line-height:1}.viewer-like{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 14px 0 12px;border-radius:999px;font-weight:700}.viewer-like.is-liked{color:#ff4d6d;background:#ff4d6d29}.viewer-like .heart-icon{width:26px;height:26px}.viewer-stage{position:absolute;inset:0}.viewer-frame{width:100%;height:100%;display:grid;place-items:center;touch-action:none}.viewer-frame.is-dragging{transition:none}.viewer-frame:not(.is-dragging){transition:transform .2s ease}.viewer-frame img,.viewer-frame video{width:100%;height:100%;object-fit:contain;image-orientation:from-image;background:#000}.viewer-arrow{position:absolute;top:50%;z-index:2;width:48px;height:48px;border-radius:50%;font-size:2rem;line-height:1;transform:translateY(-50%)}.viewer-arrow-prev{left:12px}.viewer-arrow-next{right:12px}.viewer-arrow:disabled{opacity:.35;cursor:default}@media(max-width:700px){.viewer-arrow,.viewer-name{display:none}}.memory-grid strong{font-size:.78rem}.memory-grid span{color:var(--muted);font-size:.68rem}.empty-state{padding:28px;border:1px dashed var(--line);border-radius:16px;color:var(--muted);text-align:center;line-height:1.5}.privacy-note{margin:30px 0 0;color:var(--muted);font-size:.76rem;line-height:1.5;text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes breathe{0%{transform:scale(1.015)}to{transform:scale(1.055)}}@media(max-width:980px){html,body{overscroll-behavior-x:none}.page-shell{display:block}.portrait{position:relative;height:min(58vh,620px)}.portrait>img{object-position:54% 35%}.portrait-copy{display:none}.workspace{padding:0 16px 36px;margin-top:-28px;overflow:visible}.upload-card{border-radius:26px}.mobile-intro{display:block;margin-bottom:28px;text-align:center}.mobile-intro h1{color:var(--graphite);font-size:clamp(2rem,8vw,3.2rem)}.mobile-intro p{color:var(--muted);margin-inline:auto;font-size:1rem}}@media(max-width:560px){.portrait{height:38vh;min-height:280px}.portrait>img{object-position:53% 33%}.workspace{padding-inline:10px}.upload-card{padding:24px 16px;border-radius:22px}.drop-zone{min-height:260px;padding:22px 14px}.drop-help{font-size:.88rem}.primary-button{width:100%}.file-row{grid-template-columns:52px minmax(0,1fr) auto;gap:10px}.file-thumb{width:52px;height:52px}.file-title span{display:none}.album-grid,.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.album-card strong{font-size:1rem}.section-heading{align-items:center}.section-heading h2{font-size:1.65rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}
