:root{color:#1e1b18;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#1e1b18;--muted:#1e1b1894;--panel:#ffffffad;--line:#00000012;--accent:#556052;--accent-dark:#3f483d;background:#f5f1eb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button,.upload-button,a[download]{background:var(--accent-dark);color:#fff;cursor:pointer;border:0;border-radius:999px;padding:.75rem 1rem;text-decoration:none}button:hover,.upload-button:hover{background:var(--accent)}input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffaf4;border-radius:14px;padding:.8rem .9rem}label{color:var(--muted);text-align:left;gap:.4rem;display:grid}h1,h2,h3,p{margin:0}h1{max-width:820px;color:var(--ink);letter-spacing:-.06em;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,7vw,5.8rem);line-height:.92}h2{color:var(--ink);font-size:1.1rem}h3{color:var(--ink);font-size:1.25rem}.dashboard-page{min-height:100svh;color:var(--ink);background:#f5f1eb}.app-header{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f5f1ebd1;position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:24px;width:min(1280px,100% - 32px);margin:0 auto;padding:18px 0;display:flex}.brand-row,.header-actions,.nav-tabs,.control-buttons,.dashboard-footer div{align-items:center;display:flex}.brand-row{gap:clamp(24px,5vw,48px)}.brand{letter-spacing:-.04em;max-width:none;font-size:clamp(1.8rem,4vw,2rem);line-height:1}.nav-tabs{gap:28px}.nav-tab,.soft-button,.tile-menu,.tile-content{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.nav-tab{color:#00000085;font-size:.9rem}.nav-tab.active{color:#111}.header-actions{gap:14px}.primary-action{background:var(--accent);color:#fff;border:0;border-radius:999px;padding:.78rem 1.15rem;font-size:.9rem;transition:transform .16s,background .16s;box-shadow:0 12px 30px #55605233}.primary-action:hover{background:var(--accent-dark);transform:scale(1.02)}.avatar{background:#0000001a;border-radius:999px;width:40px;height:40px}.dashboard-shell{width:min(1280px,100% - 32px);margin:0 auto;padding:clamp(42px,7vw,64px) 0 72px}.dashboard-hero{gap:16px;margin-bottom:clamp(34px,7vw,56px);display:grid}.dashboard-hero h2,.create-modal h2,.rename-modal h2{max-width:720px;color:var(--ink);letter-spacing:-.06em;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.6rem,9vw,6rem);font-weight:600;line-height:.95}.dashboard-hero p:not(.eyebrow){max-width:560px;color:var(--muted);font-size:1.1rem;line-height:1.6}.dashboard-controls{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.search-box{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff9e;border-radius:22px;align-items:center;width:min(100%,420px);padding:0 18px;display:flex;box-shadow:0 12px 30px #0000000a}.search-box span{color:#0000005c;font-size:1.2rem}.search-box input{background:0 0;border:0;outline:none;padding:1rem .75rem}.search-box input::placeholder{color:#00000059}.control-buttons{gap:12px}.soft-button{border:1px solid var(--line);background:#ffffffb8;border-radius:18px;padding:.85rem 1rem;font-size:.9rem;box-shadow:0 12px 30px #0000000a}.soft-button:hover{background:#fff}.dashboard-error{margin-bottom:18px}.gallery-card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;display:grid}.gallery-tile{background:#111;border-radius:32px;height:420px;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000014}.gallery-tile img,.tile-placeholder{width:100%;height:100%;display:block}.gallery-tile img{object-fit:cover;transition:transform .7s}.tile-placeholder{color:#ffffffc2;letter-spacing:-.06em;background:radial-gradient(circle at 28% 22%,#ffffff94,#0000 28%),linear-gradient(135deg,#d9d0c3,#aeb7a8 48%,#4a5148);place-items:center;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.6rem,5vw,4rem);font-weight:600;display:grid}.gallery-tile:hover img{transform:scale(1.05)}.tile-overlay{background:linear-gradient(#0000,#0000001a 42%,#000000b8);position:absolute;inset:0}.tile-status,.tile-menu-wrap,.tile-content{z-index:1;position:absolute}.tile-status{color:#000000ad;letter-spacing:.18em;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffd1;border-radius:999px;padding:.38rem .75rem;font-size:.72rem;top:20px;left:20px}.tile-menu-wrap{top:20px;right:20px}.tile-menu{color:#fff;letter-spacing:.08em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000042;border-radius:999px;place-items:center;width:40px;height:40px;display:grid}.tile-menu:hover{background:#0000006b}.tile-menu-popover{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe6;border:1px solid #fff3;border-radius:16px;min-width:132px;transition:opacity .14s,transform .14s;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-4px);box-shadow:0 18px 40px #0000002e}.tile-menu-popover.open{opacity:1;pointer-events:auto;transform:translateY(0)}.tile-menu-popover button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:0;padding:.8rem 1rem}.tile-menu-popover button:hover{background:#5560521f}.tile-menu-popover button.danger{color:#9b2c1d}.tile-menu-popover button:disabled{cursor:wait;opacity:.58}.tile-content{color:#fff;text-align:left;gap:8px;padding:28px;display:grid;bottom:0;left:0;right:0}.tile-content span{letter-spacing:-.04em;font-size:clamp(1.8rem,3vw,2rem);font-weight:650}.tile-content small{color:#ffffffc2;font-size:.9rem}.gallery-empty{grid-column:1/-1}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1e1b1857;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.create-modal,.rename-modal{border:1px solid var(--line);background:#faf7f2f5;border-radius:32px;gap:28px;width:min(760px,100%);padding:clamp(22px,5vw,34px);display:grid;position:relative;box-shadow:0 28px 90px #0003}.create-modal h2{margin-top:10px;font-size:clamp(2.2rem,5vw,4rem)}.rename-modal{width:min(560px,100%)}.rename-modal h2{margin-top:10px;font-size:clamp(2rem,5vw,3.4rem)}.modal-close{border:1px solid var(--line);width:38px;height:38px;color:var(--ink);background:#ffffffb8;border-radius:999px;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:18px;right:18px}.modal-close:hover{background:#fff}.create-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.rename-form{gap:16px;display:grid}.create-form label:first-child,.create-form button{grid-column:1/-1}.dashboard-footer{border-top:1px solid var(--line);color:#0000006b;justify-content:space-between;align-items:center;gap:20px;margin-top:72px;padding-top:28px;font-size:.9rem;display:flex}.dashboard-footer div{gap:24px}.shell{width:min(1180px,100% - 32px);margin:0 auto;padding:32px 0 64px}.hero-panel,.panel{border:1px solid var(--line);background:var(--panel);border-radius:32px;box-shadow:0 24px 80px #412a1b14}.hero-panel{color:#fff7ef;background:linear-gradient(120deg,#201a17a3,#201a170a),url(/assets/hero-CLDdwZDr.png) 50%/cover;align-content:end;gap:1rem;min-height:420px;margin-bottom:24px;padding:clamp(28px,6vw,72px);display:grid}.hero-panel h1,.hero-panel .eyebrow{color:#fff7ef}.hero-panel p{max-width:620px}.panel{margin-bottom:24px;padding:24px}.split{grid-template-columns:minmax(280px,.8fr) minmax(320px,1.2fr);gap:24px;display:grid}.stack{align-content:start;gap:14px;display:grid}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.card,.share-row,.photo-card,.guest-photo{border:1px solid var(--line);background:#ffffff94;border-radius:22px}.card{text-align:left;gap:14px;padding:18px;display:grid}.status,.eyebrow{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:800}.toolbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.upload-button input{display:none}.link-button{color:var(--accent-dark);border:1px solid var(--line);background:0 0;margin-bottom:18px}.checkbox{align-items:center;gap:.6rem;display:flex}.checkbox input{width:auto}.share-row{grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:12px;display:grid}.share-row a{color:var(--accent-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.photo-grid,.guest-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.photo-card,.guest-photo{overflow:hidden}.photo-card img,.guest-photo img{aspect-ratio:4/3;object-fit:cover;background:#d9cbbd;width:100%;display:block}.photo-card div,.guest-photo div{justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.photo-card a,.guest-photo a{color:var(--accent-dark)}.empty,.error{color:#9b2c1d}.guest-shell{color:#f8efe6;background:#111;min-height:100svh;padding:clamp(20px,4vw,56px)}.guest-header,.password-card,.guest-error{width:min(980px,100%);margin:0 auto 28px}.guest-header{gap:.7rem;padding:48px 0;display:grid}.guest-header h1,.password-card h1,.guest-error h1{color:#f8efe6}.guest-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));width:min(1280px,100%);margin:0 auto}.guest-photo{background:#ffffff0f;border-color:#ffffff24}.guest-photo img{aspect-ratio:1}.password-card,.guest-error{place-content:center;gap:1rem;min-height:100svh;display:grid}.password-card input{color:#fff;background:#201d1a;border-color:#ffffff29}@media (width<=760px){.app-header-inner,.dashboard-controls,.dashboard-footer{flex-direction:column;align-items:stretch}.brand-row,.header-actions{justify-content:space-between}.nav-tabs{display:none}.control-buttons,.dashboard-footer div{flex-wrap:wrap}.search-box{width:100%}.gallery-card-grid,.create-modal,.create-form{grid-template-columns:1fr}.gallery-tile,.gallery-tile img,.tile-placeholder{height:360px}.split,.share-row{grid-template-columns:1fr}.toolbar,.photo-card div,.guest-photo div{flex-direction:column;align-items:stretch}}
