:root{
  --bg:#f7f7f9;--surface:#fff;--surface-2:#f4f4f6;--text:#101114;--muted:#747780;--muted-2:#9b9da5;
  --line:#e8e8ec;--line-dark:#dcdce2;--brand:#ff4f84;--accent:#7c5cff;--danger:#ff3040;
  --shadow-sm:0 4px 16px rgba(16,17,20,.055);--shadow:0 18px 55px rgba(15,17,22,.10);--shadow-xl:0 30px 90px rgba(10,12,18,.22);
  --radius-xs:10px;--radius-sm:14px;--radius:20px;--radius-lg:28px;--radius-xl:36px;--safe-bottom:env(safe-area-inset-bottom,0px);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",Inter,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:#fff;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}a{color:inherit}.hidden{display:none!important}
svg{display:block}.app-shell{min-height:100vh}.main-content{width:100%;max-width:680px;margin:0 auto;padding:0 0 calc(92px + var(--safe-bottom));min-height:100vh;background:#fff}

/* Top bar */
.topbar{position:sticky;top:0;z-index:70;height:58px;padding:0 max(16px,env(safe-area-inset-left)) 0 max(16px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.9);border-bottom:1px solid rgba(232,232,236,.85);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px)}
.brand{text-decoration:none;display:flex;align-items:center;gap:4px;letter-spacing:-1.2px}.brand-word{font-family:"SF Pro Display",var(--font);font-size:26px;font-weight:850}.brand-spark{font-size:11px;background:linear-gradient(135deg,var(--brand),var(--accent));-webkit-background-clip:text;color:transparent;transform:translateY(-5px)}
.topbar-actions{display:flex;align-items:center;gap:12px}.top-create-btn,.sheet-close{border:0;background:transparent;padding:6px;display:grid;place-items:center}.top-create-btn svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8}.avatar-mini{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;text-decoration:none;font-size:10px;font-weight:850;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#ffce55,#ff336d 45%,#8438ff) border-box;border:2px solid transparent}

/* Global type + controls */
.eyebrow{display:block;color:var(--muted-2);font-size:10px;font-weight:850;letter-spacing:.14em}.page-head{padding:28px 18px 20px}.page-head h1{font-size:30px;line-height:1.05;letter-spacing:-1.35px;margin:5px 0 9px;font-weight:850}.page-head p{margin:0;max-width:540px;color:var(--muted);font-size:14px}.section-title-row{display:flex;align-items:end;justify-content:space-between;padding:22px 18px 12px}.section-title-row h2{font-size:22px;line-height:1;margin:3px 0 0;letter-spacing:-.7px}.section-title-row>a,.text-action{color:var(--brand);font-weight:750;font-size:13px;text-decoration:none;border:0;background:transparent;padding:5px 0}.primary-btn,.secondary-btn{min-height:48px;border-radius:15px;padding:12px 18px;border:0;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;cursor:pointer}.primary-btn{background:#111;color:#fff}.secondary-btn{background:var(--surface-2);color:#17181c}.full{width:100%}.disabled,.primary-btn:disabled{opacity:.48;cursor:not-allowed}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px}.mini-note{text-align:center;color:var(--muted-2);font-size:11px;padding:12px 24px 22px}.mega-emoji{font-size:45px;margin-bottom:4px}.span-all{grid-column:1/-1}

/* Profile */
.profile-hero{padding:20px 18px 13px;border-bottom:1px solid var(--line)}.profile-topline{display:grid;grid-template-columns:82px 1fr;gap:17px;align-items:center}.profile-ring{width:82px;height:82px;border-radius:50%;padding:3px;background:linear-gradient(145deg,#ffd15c,#ff3864 45%,#8b3dff 80%)}.profile-avatar{width:100%;height:100%;border-radius:50%;border:3px solid #fff;background:linear-gradient(145deg,#fff8fa,#f4eeff);display:grid;grid-auto-flow:column;place-content:center;align-items:center;gap:4px;font-size:21px;font-weight:800}.profile-avatar span{font-size:12px;color:var(--brand)}.profile-copy h1{font-size:25px;letter-spacing:-1px;line-height:1.06;margin:3px 0 7px}.profile-copy p{margin:0;color:#34353a;font-size:13px;line-height:1.4}.profile-meta{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.profile-meta span{text-align:center}.profile-meta b{display:block;font-size:16px;letter-spacing:-.3px}.profile-meta small{color:var(--muted);font-size:10px}.profile-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.profile-actions a{text-decoration:none;text-align:center;padding:7px 5px;border-radius:9px;background:#f3f3f5;font-size:12px;font-weight:740;border:1px solid #eeeeF1}

/* stories */
.stories-wrap{border-bottom:1px solid var(--line);background:#fff}.stories-strip{display:flex;gap:14px;overflow-x:auto;padding:14px 14px 13px;scrollbar-width:none}.stories-strip::-webkit-scrollbar,.filter-rail::-webkit-scrollbar,.discover-strip::-webkit-scrollbar{display:none}.story{min-width:68px;max-width:68px;text-align:center;text-decoration:none;border:0;background:transparent;padding:0;cursor:pointer}.story-ring{display:grid;width:66px;height:66px;padding:2.5px;border-radius:50%;background:linear-gradient(145deg,#ffd85a,#ff315f 47%,#8238ff)}.story-circle{display:grid;place-items:center;width:61px;height:61px;border:3px solid #fff;border-radius:50%;background:#f5f5f7;font-size:25px}.story small{display:block;margin-top:6px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story.add-story .story-ring{background:#ddd}.story-add-avatar{position:relative;background:linear-gradient(150deg,#fafafa,#ededf2);font-size:22px}.story-add-avatar:after{content:"";position:absolute;right:-1px;bottom:0;width:18px;height:18px;border-radius:50%;background:#1598f6;border:2px solid #fff}.story-add-avatar span{position:relative;z-index:2;color:#fff;font-size:15px;position:absolute;right:4px;bottom:0px;font-weight:500}
.discover-strip{display:flex;gap:9px;padding:12px 14px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--line)}.discover-strip a{flex:0 0 auto;display:flex;align-items:center;gap:8px;min-width:130px;border:1px solid var(--line);border-radius:14px;padding:9px 11px;text-decoration:none;background:#fff}.discover-icon{width:29px;height:29px;border-radius:9px;background:linear-gradient(145deg,#f7efff,#fff1f4);display:grid;place-items:center;font-size:14px;font-weight:800}.discover-strip b{font-size:11px;display:block}.discover-strip small{font-size:9px;color:var(--muted);display:block;margin-top:1px}

/* feed */
.feed-heading{padding-top:24px}.feed-list{padding-bottom:10px;background:#f6f6f8}.post-card{background:#fff;margin:0 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}.post-head{height:56px;padding:8px 14px;display:flex;justify-content:space-between;align-items:center}.post-user{display:flex;align-items:center;gap:9px}.user-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:820;font-size:12px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#ffc84f,#ff2f61,#7c40f5) border-box;border:2px solid transparent}.post-user strong{display:block;font-size:12px}.post-user small{display:block;color:var(--muted);font-size:9.5px;margin-top:1px}.more-btn{border:0;background:transparent;display:flex;gap:2px;padding:12px 2px}.more-btn span{width:3px;height:3px;background:#17181b;border-radius:50%}.post-media{position:relative;width:100%;aspect-ratio:4/5;background:#efeff2;overflow:hidden}.post-media img{width:100%;height:100%;display:block;object-fit:cover}.filter-golden img{filter:sepia(.14) saturate(1.13) brightness(1.04)}.filter-film img{filter:sepia(.13) saturate(.9) contrast(1.04)}.filter-bw img{filter:grayscale(1) contrast(1.08)}.filter-party img{filter:saturate(1.25) contrast(1.04)}.filter-dream img{filter:brightness(1.03) saturate(.9)}.filter-vivid img{filter:saturate(1.18) contrast(1.03)}
.post-actions{height:52px;padding:7px 13px 4px;display:flex;justify-content:space-between;align-items:center}.post-actions-left{display:flex;align-items:center;gap:13px}.action-btn{border:0;background:transparent;padding:3px;cursor:pointer}.action-btn svg{width:25px;height:25px;fill:none;stroke:#17181c;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.like-btn.liked svg{fill:#ff3040;stroke:#ff3040;animation:heartPop .25s ease}.print-action{height:34px;padding:0 10px;border-radius:10px;background:#f5f5f7;display:flex;align-items:center;gap:6px;text-decoration:none;font-weight:740;font-size:11px}.print-action svg{width:18px;height:18px;fill:none;stroke:#1d1e22;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.post-body{padding:0 14px 14px;font-size:12px}.likes-count{display:block;font-size:12px;margin-bottom:6px}.caption,.comments-list p{margin:3px 0}.comments-list{color:#34353a}.comment-form{display:grid;grid-template-columns:0 1fr auto;gap:6px;align-items:center;margin-top:6px}.comment-form input[name=name]{display:none}.comment-form input{border:0;background:transparent;outline:0;padding:7px 0;font-size:11px}.comment-form input::placeholder{color:#9b9da5}.comment-form button{border:0;background:transparent;color:#168bd8;font-size:10px;font-weight:800;padding:5px}.timestamp{text-transform:uppercase;color:#a0a1a6;font-size:8px;letter-spacing:.05em;display:block;margin-top:5px}@keyframes heartPop{50%{transform:scale(1.28)}}

/* Bottom nav */
.bottom-nav{position:fixed;z-index:65;left:0;right:0;bottom:0;height:calc(64px + var(--safe-bottom));padding:6px max(12px,env(safe-area-inset-right)) var(--safe-bottom) max(12px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr 1fr 74px 1fr 1fr;align-items:center;background:rgba(255,255,255,.94);border-top:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-item{height:50px;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#8e9097}.nav-item svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.nav-item .fill-dot{fill:currentColor;stroke:none}.nav-item small{font-size:8px;font-weight:700}.nav-item.active{color:#111}.camera-tab{align-self:start;justify-self:center;margin-top:-19px;width:60px;height:60px;border:5px solid #fff;border-radius:50%;padding:0;background:linear-gradient(135deg,var(--brand),#fb5a67 45%,var(--accent));box-shadow:0 8px 24px rgba(124,92,255,.27);display:grid;place-items:center}.camera-tab span{width:100%;height:100%;display:grid;place-items:center}.camera-tab svg{width:27px;height:27px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round}

/* Bottom sheets */
.sheet-backdrop{position:fixed;inset:0;z-index:110;background:rgba(12,13,16,.36);backdrop-filter:blur(3px);opacity:0;transition:opacity .22s}.sheet-backdrop.open{opacity:1}.create-sheet,.mini-sheet{position:fixed;z-index:120;left:0;right:0;bottom:0;max-height:88vh;background:#fff;border-radius:28px 28px 0 0;padding:8px 16px calc(20px + var(--safe-bottom));box-shadow:var(--shadow-xl);transform:translateY(110%);transition:transform .28s cubic-bezier(.2,.75,.15,1)}.create-sheet.open,.mini-sheet.open{transform:translateY(0)}.sheet-handle{width:38px;height:4px;border-radius:999px;background:#d9d9de;margin:2px auto 17px}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sheet-head h2{font-size:22px;line-height:1.12;letter-spacing:-.75px;margin:4px 0 16px;max-width:300px}.sheet-close{font-size:27px;color:#6f7178;line-height:1}.create-options{display:grid;gap:9px}.create-option{display:grid;grid-template-columns:48px 1fr 18px;align-items:center;gap:11px;text-decoration:none;border:1px solid var(--line);border-radius:18px;padding:11px;background:#fff}.create-option:active{background:#f7f7f9}.create-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center}.camera-option .create-icon{background:linear-gradient(135deg,#fff0f6,#efeaff)}.upload-option .create-icon{background:#f2f4f7}.create-icon svg{width:26px;height:26px;fill:none;stroke:#17181b;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.create-option b{display:block;font-size:13px}.create-option small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.option-arrow{font-size:25px;color:#a5a6ac}.sheet-note{text-align:center;color:#aaa;font-size:9px;margin:14px 0 0}.mini-sheet{text-align:center;padding-left:22px;padding-right:22px}.print-prompt-icon{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(145deg,#f2edff,#fff0f3);margin:2px auto 12px}.print-prompt-icon svg{width:31px;height:31px;fill:none;stroke:#15161a;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.mini-sheet h3{font-size:22px;letter-spacing:-.7px;margin:0 0 5px}.mini-sheet>p{margin:0 auto 16px;max-width:330px;font-size:12px;color:var(--muted)}.prompt-actions{display:grid;gap:8px}

/* Forms/upload */
.upload-card,.request-card{margin:0 14px 18px;padding:14px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-sm)}.drop-zone{min-height:230px;border:1.5px dashed #d5d5db;border-radius:19px;background:#fafafd;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;padding:20px}.drop-zone input{position:absolute;opacity:0;pointer-events:none}.drop-icon{width:58px;height:58px;border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(0,0,0,.07);display:grid;place-items:center;margin-bottom:11px}.drop-icon svg{width:28px;height:28px;fill:none;stroke:#1a1b1f;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.drop-zone b{font-size:14px}.drop-zone small{font-size:10px;color:var(--muted);margin-top:3px}.upload-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:10px 0}.upload-preview img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.upload-preview .preview-more{display:grid;place-items:center;border-radius:10px;background:#eee;font-size:12px;font-weight:800}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.upload-card>label,.form-grid label{display:grid;gap:5px;color:#65676f;font-size:10px;font-weight:700}.upload-card input,.upload-card select,.request-card input{width:100%;height:43px;border:1px solid var(--line);border-radius:12px;background:#f9f9fa;padding:0 11px;outline:none;font-size:12px}.upload-card input:focus,.upload-card select:focus,.request-card input:focus{border-color:#aaa;background:#fff}.upload-card>.primary-btn,.upload-card>.secondary-btn{margin-top:9px}.upload-tip{margin:0 18px 20px;padding:11px 12px;border-radius:15px;background:#f7f3ff;display:flex;gap:9px;font-size:11px}.upload-tip span{font-size:14px}.upload-tip p{margin:0;color:#595b63}

/* camera */
.camera-main{padding:0!important;max-width:none!important;background:#09090b!important}.camera-screen{position:fixed;z-index:150;inset:0;background:#08090a;overflow:hidden}.camera-video-source{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.camera-canvas{position:absolute;inset:0;width:100%;height:100%;background:#08090a}.camera-top{position:absolute;z-index:5;top:0;left:0;right:0;padding:calc(12px + env(safe-area-inset-top,0px)) 13px 0;display:grid;grid-template-columns:46px 1fr 46px;align-items:center}.camera-round{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(16,16,18,.35);backdrop-filter:blur(14px);display:grid;place-items:center;color:#fff;text-decoration:none;font-size:26px;line-height:1}.camera-round svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.camera-title{text-align:center;color:#fff}.camera-title b{display:block;font-size:17px;letter-spacing:-.5px}.camera-title small{display:block;font-size:7px;letter-spacing:.23em;font-weight:850;opacity:.7;margin-top:1px}.camera-top>*:last-child{justify-self:end}.camera-status{position:absolute;z-index:6;top:calc(69px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);max-width:calc(100% - 120px);overflow:hidden;text-overflow:ellipsis;border-radius:99px;padding:6px 10px;background:rgba(0,0,0,.42);color:#fff;font-size:9px;white-space:nowrap;backdrop-filter:blur(10px);transition:opacity .35s}.camera-status.is-error{background:rgba(100,20,30,.74)}.face-count{position:absolute;top:calc(69px + env(safe-area-inset-top,0px));right:14px;z-index:6;background:rgba(0,0,0,.38);color:#fff;padding:5px 8px;border-radius:99px;font-size:8px;display:flex;align-items:center;gap:4px}.face-count span{width:5px;height:5px;border-radius:50%;background:#4dff93;box-shadow:0 0 0 3px rgba(77,255,147,.13)}
.camera-bottom{position:absolute;z-index:7;bottom:0;left:0;right:0;padding:0 0 calc(12px + env(safe-area-inset-bottom,0px))}.compact-fields{margin:0 14px 8px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.compact-fields input,.compact-fields select{height:32px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(14,14,16,.34);backdrop-filter:blur(12px);color:#fff;padding:0 9px;font-size:9px;outline:0}.compact-fields select option{color:#111}.filter-caption{padding:0 18px 4px;color:#fff;display:flex;align-items:center;gap:7px}.filter-caption span{font-size:7px;letter-spacing:.13em;opacity:.62;font-weight:800}.filter-caption b{font-size:10px}.filter-rail{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:4px 16px 8px;scroll-snap-type:x proximity}.filter-chip{flex:0 0 58px;border:0;background:transparent;color:#fff;padding:0;text-align:center;scroll-snap-align:center}.filter-thumb{width:50px;height:50px;margin:auto;border-radius:50%;display:grid;place-items:center;position:relative;border:2px solid rgba(255,255,255,.4);box-shadow:inset 0 0 0 2px rgba(0,0,0,.08);transition:transform .16s,border .16s}.filter-chip.active .filter-thumb{border:3px solid #fff;transform:scale(1.09);box-shadow:0 0 0 2px rgba(255,255,255,.22)}.filter-chip small{display:block;font-size:7.5px;margin-top:5px;text-shadow:0 1px 4px rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-thumb i{font-style:normal;font-size:18px;font-weight:900;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.25)}.filter-thumb.natural{background:linear-gradient(145deg,#b89172,#e5c2a5)}.filter-thumb.golden{background:linear-gradient(145deg,#ffc554,#ec8b42)}.filter-thumb.film{background:linear-gradient(145deg,#806a62,#c4a58f)}.filter-thumb.mono{background:linear-gradient(145deg,#222,#bdbdbd)}.filter-thumb.love{background:linear-gradient(145deg,#fb5185,#ffb4c9)}.filter-thumb.disco{background:conic-gradient(#54e7ff,#9554ff,#ff4f98,#ffda61,#54e7ff)}.filter-thumb.cat{background:linear-gradient(145deg,#7c5b4d,#e8bd98)}.filter-thumb.angel{background:linear-gradient(145deg,#9ed9ff,#f6f2ff)}.filter-thumb.devil{background:linear-gradient(145deg,#4b0714,#ea2648)}.filter-thumb.flower{background:linear-gradient(145deg,#ffb4d7,#7fd4a8)}.filter-thumb.veil{background:linear-gradient(145deg,#d6d3e9,#fff)}.filter-thumb.groom{background:linear-gradient(145deg,#151515,#777)}.filter-thumb.butterfly{background:linear-gradient(145deg,#4fe2c5,#b861ff)}.filter-thumb.tears{background:linear-gradient(145deg,#5ebcff,#d7edff)}.filter-thumb.mvp{background:linear-gradient(145deg,#e7b548,#7b4b0a)}.filter-thumb.next{background:linear-gradient(145deg,#f6cc80,#fff)}
.capture-row{height:78px;display:grid;grid-template-columns:1fr 96px 1fr;align-items:center;padding:0 24px}.capture-button{width:74px;height:74px;border-radius:50%;border:4px solid #fff;background:transparent;padding:5px;justify-self:center}.capture-button span{display:block;width:100%;height:100%;border-radius:50%;background:#fff;transition:transform .12s}.capture-button:active span{transform:scale(.88)}.capture-button:disabled,.camera-round:disabled{opacity:.48}.gallery-shortcut{border:0;background:transparent;color:#fff;text-decoration:none;text-align:center;justify-self:center;padding:5px}.shortcut-icon{width:31px;height:31px;margin:auto;border-radius:9px;background:rgba(0,0,0,.28);display:grid;place-items:center;backdrop-filter:blur(9px)}.shortcut-icon svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.shortcut-icon .fill-dot{fill:#fff;stroke:none}.gallery-shortcut small{display:block;font-size:7px;color:#fff;margin-top:3px}.capture-review{position:absolute;inset:0;background:#08090a;z-index:90}.capture-review>img{width:100%;height:100%;object-fit:contain;background:#08090a}.review-top{position:absolute;left:0;right:0;top:0;padding:calc(12px + env(safe-area-inset-top,0px)) 13px;display:flex;align-items:center;gap:10px;color:#fff;background:linear-gradient(rgba(0,0,0,.35),transparent)}.review-top>div b{display:block;font-size:12px}.review-top>div small{display:block;font-size:8px;opacity:.74}.review-actions{position:absolute;left:14px;right:14px;bottom:calc(18px + env(safe-area-inset-bottom,0px))}.save-shot{width:100%;border:0;background:#fff;color:#111;border-radius:16px;padding:14px 17px;display:flex;align-items:center;justify-content:space-between;font-weight:850}.save-shot svg{width:22px;height:22px;fill:none;stroke:#111;stroke-width:1.8;stroke-linecap:round}.save-shot:disabled{opacity:.58}.camera-help{position:absolute;inset:0;z-index:100;background:rgba(0,0,0,.45);display:grid;align-items:end}.camera-help-card{position:relative;background:#fff;border-radius:28px 28px 0 0;padding:28px 22px calc(25px + env(safe-area-inset-bottom,0px));color:#111}.camera-help-card button{position:absolute;right:16px;top:14px;border:0;background:#f1f1f3;width:31px;height:31px;border-radius:50%;font-size:20px}.camera-help-card h3{font-size:23px;line-height:1.08;letter-spacing:-.8px;margin:6px 0 8px}.camera-help-card p{color:#5e6068;font-size:12px}.camera-help-card>small{color:#999;font-size:9px}

/* moments, grids */
.moment-grid{padding:0 14px 18px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.moment-card{text-decoration:none}.moment-cover{position:relative;aspect-ratio:4/5;border-radius:19px;overflow:hidden;background:#eee;box-shadow:var(--shadow-sm)}.moment-cover>img{width:100%;height:100%;object-fit:cover}.moment-cover>span{position:absolute;inset:0;display:grid;place-items:center;font-size:48px;background:linear-gradient(145deg,#f6efff,#fff1ed)}.moment-overlay{position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.72))}.moment-cover b,.moment-cover small{position:absolute;left:12px;right:10px;color:#fff}.moment-cover b{bottom:29px;font-size:13px}.moment-cover small{bottom:12px;font-size:8px;opacity:.86}.fab-secondary{display:flex;margin:0 14px 20px;justify-content:center;border-radius:14px;padding:12px;background:#f1f1f4;text-decoration:none;font-weight:800;font-size:12px}.photo-grid{padding:0 3px 20px;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.photo-grid a{aspect-ratio:1;overflow:hidden}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.empty-state{text-align:center;padding:50px 25px;color:var(--muted);background:#fff}.empty-state h3{color:#17181c;margin:8px 0 3px}.empty-state p{font-size:12px}.empty-icon{width:58px;height:58px;border:1px solid #ddd;border-radius:50%;display:grid;place-items:center;margin:auto;color:#777}

/* timeline */
.timeline{padding:0 18px 24px}.timeline-item{position:relative;display:grid;grid-template-columns:42px 1fr;gap:7px;padding-bottom:14px}.timeline-item:before{content:"";position:absolute;left:20px;top:39px;bottom:-1px;width:1px;background:#e5e5e8}.timeline-item:last-child:before{display:none}.timeline-marker{width:40px;height:40px;border-radius:14px;background:#f3f3f5;display:grid;place-items:center;z-index:1}.timeline-card{position:relative;border:1px solid var(--line);border-radius:17px;padding:13px;background:#fff}.timeline-card .time{color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.07em}.timeline-card h3{margin:2px 0 3px;font-size:15px}.timeline-card p{margin:0 0 3px;color:var(--muted);font-size:11px}.timeline-card small{font-size:9px;color:#777}.timeline-item.current .timeline-marker{background:#111;color:#fff}.timeline-item.current .timeline-card{border-color:#111;box-shadow:var(--shadow-sm)}.timeline-item.past{opacity:.55}.live-pill{position:absolute;right:10px;top:10px;border-radius:99px;background:#e8fff0;color:#168849;padding:4px 7px;font-size:7px;font-weight:900;letter-spacing:.07em}

/* location */
.location-visual{margin:0 18px 13px;height:230px;border-radius:25px;position:relative;overflow:hidden;background:linear-gradient(145deg,#eaf1e9,#e6e7de)}.map-orbit{position:absolute;border:16px solid rgba(255,255,255,.74);border-radius:45%;transform:rotate(-20deg)}.map-orbit.one{width:320px;height:110px;left:-70px;top:40px}.map-orbit.two{width:300px;height:90px;right:-80px;bottom:10px;transform:rotate(25deg)}.road{position:absolute;height:5px;background:#c9d0c3;border-radius:99px}.r1{width:170px;top:80px;right:20px;transform:rotate(23deg)}.r2{width:150px;bottom:55px;left:15px;transform:rotate(-15deg)}.pin{position:absolute;z-index:2;left:50%;top:45%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50% 50% 50% 8px;background:#111;color:#fff;display:grid;place-items:center;font-size:17px;rotate:-45deg;box-shadow:0 10px 25px rgba(0,0,0,.22)}.pin::first-letter{rotate:45deg}.location-card{margin:0 18px 12px;border:1px solid var(--line);border-radius:18px;padding:13px;display:flex;gap:10px;align-items:center}.location-icon{width:44px;height:44px;border-radius:14px;background:#f3f3f5;display:grid;place-items:center}.location-card h2{margin:2px 0;font-size:17px}.location-card p{margin:0;color:var(--muted);font-size:11px}.info-list{padding:12px 18px 20px;display:grid;gap:7px}.info-list>div{border:1px solid var(--line);border-radius:15px;padding:11px;display:grid;grid-template-columns:30px 1fr;align-items:center}.info-list>div span{grid-row:1/3}.info-list b{font-size:11px}.info-list small{font-size:9px;color:var(--muted)}

/* DJ */
.request-card .form-grid{grid-template-columns:1fr 1fr}.song-list{padding:0 14px 22px}.song-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.cover-note{width:44px;height:44px;border-radius:12px;background:linear-gradient(145deg,#1d1e22,#3f4047);color:#fff;display:grid;place-items:center}.song-copy b,.song-copy span,.song-copy small{display:block}.song-copy b{font-size:12px}.song-copy span{font-size:9px;color:var(--muted)}.song-copy small{font-size:8px;margin-top:2px}.vote-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 9px;font-size:9px}.vote-btn.voted{background:#111;color:#fff;border-color:#111}

/* smart / people */
.smart-grid{padding:0 14px;display:grid;gap:8px}.smart-card{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:10px;text-decoration:none;border:1px solid var(--line);border-radius:16px;padding:10px 12px}.smart-emoji{width:45px;height:45px;border-radius:13px;background:#f4f4f6;display:grid;place-items:center;font-size:20px}.smart-card b,.smart-card small{display:block}.smart-card b{font-size:12px}.smart-card small{font-size:9px;color:var(--muted)}.smart-card>span{font-size:23px;color:#aaa}.people-banner{margin:13px 14px 22px;padding:15px;border-radius:20px;text-decoration:none;background:linear-gradient(145deg,#f7efff,#fff3f5);display:flex;justify-content:space-between;align-items:center}.people-banner h3{margin:3px 0;font-size:16px}.people-banner p{margin:0;font-size:10px;color:var(--muted)}.people-bubbles{font-size:24px}.consent-note{margin:0 14px 14px;padding:12px;border-radius:16px;background:#f5f3ff;display:flex;gap:9px}.consent-note b{font-size:11px}.consent-note p{font-size:9px;color:var(--muted);margin:2px 0}.people-grid{padding:0 14px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.person-card{text-align:center;border:1px solid var(--line);border-radius:16px;padding:12px 5px}.person-avatar{width:55px;height:55px;border-radius:50%;background:#f3f3f5;display:grid;place-items:center;margin:0 auto 7px;font-size:26px}.person-card b,.person-card small{display:block}.person-card b{font-size:10px}.person-card small{font-size:8px;color:var(--muted)}

/* print */
.print-head{text-align:center}.print-stage{padding:2px 28px 18px;display:flex;justify-content:center}.print-card{width:min(100%,360px);aspect-ratio:2/3;background:#fff;padding:12px 12px 0;display:flex;flex-direction:column;box-shadow:0 16px 50px rgba(0,0,0,.18);border-radius:4px}.print-photo{position:relative;flex:1;min-height:0;overflow:hidden;background:#eee}.print-photo img{width:100%;height:100%;object-fit:cover;display:block}.print-grain{position:absolute;inset:0;opacity:.10;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.print-footer{height:82px;display:flex;align-items:center;justify-content:space-between;gap:8px}.print-footer b{display:block;font-family:Georgia,serif;font-size:17px}.print-footer small{display:block;color:#797b81;font-size:7.5px;margin-top:2px}.print-qr-wrap{text-align:center}.print-qr{width:48px;height:48px;display:block}.print-qr-wrap span{font-size:5px;letter-spacing:.08em}.print-actions{padding:0 18px;display:grid;gap:8px}.print-disabled{justify-content:flex-start;text-align:left}.print-disabled svg{width:25px;height:25px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.print-disabled span{display:grid}.print-disabled small{font-weight:500;font-size:8px;opacity:.65}

/* Toasts */
.toast-stack{position:fixed;z-index:200;left:50%;top:70px;transform:translateX(-50%);width:min(calc(100% - 28px),420px)}.toast{border-radius:14px;padding:10px 13px;background:#17181b;color:#fff;box-shadow:var(--shadow);font-size:11px;text-align:center;animation:toastIn .25s ease}@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}}

@media(min-width:700px){
  body{background:#f0f0f2}.main-content{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:0 0 70px rgba(0,0,0,.035)}.topbar{max-width:680px;margin:auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}.bottom-nav{width:680px;left:50%;right:auto;transform:translateX(-50%);border-left:1px solid var(--line);border-right:1px solid var(--line)}.post-card{margin:12px 16px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}.post-media{border-radius:0}.feed-list{padding:1px 0 18px}.create-sheet,.mini-sheet{left:50%;right:auto;width:440px;border-radius:28px;bottom:18px;transform:translate(-50%,120%)}.create-sheet.open,.mini-sheet.open{transform:translate(-50%,0)}.camera-screen{left:50%;right:auto;width:min(100vw,520px);transform:translateX(-50%);box-shadow:0 0 80px rgba(0,0,0,.6)}.camera-main{background:#101114!important}.moment-grid{grid-template-columns:repeat(3,1fr)}.print-stage{padding-left:120px;padding-right:120px}}

.filter-thumb.editorial{background:linear-gradient(145deg,#52606a,#dad5cc)}.filter-thumb.sunglasses{background:linear-gradient(145deg,#050607,#67717c)}
.camera-debug-panel{position:absolute;z-index:8;top:calc(102px + env(safe-area-inset-top,0px));left:10px;width:min(245px,calc(100% - 20px));padding:9px 10px;border:1px solid rgba(100,255,172,.25);border-radius:10px;background:rgba(0,0,0,.72);backdrop-filter:blur(10px);color:#eafff2;font:8px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace;pointer-events:none}.camera-debug-panel>b{display:block;margin-bottom:5px;color:#64ffa8;letter-spacing:.12em}.camera-debug-panel dl{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}.camera-debug-panel dl>div{display:flex;justify-content:space-between;gap:6px;min-width:0}.camera-debug-panel dt{opacity:.6}.camera-debug-panel dd{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.camera-debug-mode .camera-status{left:auto;right:10px;transform:none;max-width:calc(100% - 120px)}

/* Marrygram visual refresh */
:root{
  --bg:#f5f5f8;--surface:#fff;--surface-2:#f3f3f7;--text:#111116;--muted:#70727c;--muted-2:#999ba4;
  --line:rgba(20,20,30,.075);--line-dark:rgba(20,20,30,.13);
  --shadow-sm:0 8px 30px rgba(22,20,35,.065);--shadow:0 20px 65px rgba(22,20,35,.105);--shadow-xl:0 35px 100px rgba(13,12,22,.24);
  --radius-xs:12px;--radius-sm:17px;--radius:24px;--radius-lg:32px;--radius-xl:40px;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.2,1.35,.35,1);
}
html{background:var(--bg)}
body{background:radial-gradient(circle at 10% -10%,rgba(255,79,132,.08),transparent 26rem),radial-gradient(circle at 95% 5%,rgba(124,92,255,.08),transparent 28rem),var(--bg)}
body.is-ready{animation:marrygramPageIn .55s var(--ease-out) both}
.main-content{background:rgba(255,255,255,.94)}
.topbar{height:64px;padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right));background:rgba(255,255,255,.82);border-color:rgba(255,255,255,.7);box-shadow:0 1px 0 rgba(20,20,30,.06);transition:height .35s var(--ease-out),box-shadow .35s ease,background .35s ease}
.topbar.is-scrolled{height:56px;background:rgba(255,255,255,.94);box-shadow:0 10px 38px rgba(20,20,30,.08)}
.brand{gap:5px;transition:transform .25s var(--ease-spring)}.brand:hover{transform:scale(1.025)}
.brand-word{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:28px;font-weight:700;letter-spacing:-1.7px}
.brand-spark{font-size:12px;animation:brandSpark 3.2s ease-in-out infinite}
.topbar-actions{gap:9px}.top-create-btn,.admin-shortcut{width:36px;height:36px;border-radius:12px;transition:transform .2s var(--ease-spring),background .2s ease}.top-create-btn:hover,.admin-shortcut:hover{background:var(--surface-2);transform:translateY(-1px)}
.admin-shortcut{display:grid;place-items:center;text-decoration:none}.admin-shortcut svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.avatar-mini{width:34px;height:34px;box-shadow:0 4px 14px rgba(255,48,100,.15);transition:transform .2s var(--ease-spring)}.avatar-mini:hover{transform:scale(1.08)}
.page-head{padding:34px 20px 24px}.page-head h1{font-size:clamp(31px,7.5vw,42px);letter-spacing:-1.8px}.page-head p{font-size:13px;line-height:1.62}
.eyebrow{font-size:9px;letter-spacing:.17em;background:linear-gradient(90deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.primary-btn,.secondary-btn{min-height:50px;border-radius:18px;transition:transform .2s var(--ease-spring),box-shadow .25s ease,filter .25s ease}.primary-btn{background:linear-gradient(135deg,#17171b,#292731);box-shadow:0 10px 25px rgba(16,16,22,.15)}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 15px 34px rgba(16,16,22,.22)}.secondary-btn:hover{transform:translateY(-1px);background:#ededf2}

.profile-hero{position:relative;margin:14px 14px 10px;padding:22px 19px 18px;border:1px solid rgba(255,255,255,.8);border-radius:32px;background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(250,247,255,.94));box-shadow:var(--shadow-sm);overflow:hidden}
.profile-hero:after{content:"";position:absolute;width:180px;height:180px;right:-75px;top:-90px;border-radius:50%;background:radial-gradient(circle,rgba(255,79,132,.12),rgba(124,92,255,.04) 55%,transparent 70%);pointer-events:none}
.profile-ring{box-shadow:0 8px 28px rgba(255,70,120,.18);animation:profileFloat 5s ease-in-out infinite}.profile-avatar{background:linear-gradient(145deg,#fff,#f8efff)}
.profile-copy h1{font-size:27px;letter-spacing:-1.2px}.profile-copy p{color:#555762}
.profile-meta{padding:12px 8px;border-radius:18px;background:rgba(245,244,249,.82)}.profile-meta span+span{border-left:1px solid var(--line)}
.profile-actions{gap:8px}.profile-actions a{padding:9px 6px;border:0;border-radius:13px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);transition:transform .2s var(--ease-spring),box-shadow .2s}.profile-actions a:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.stories-wrap{border:0;background:transparent}.stories-strip{padding:13px 16px 16px;gap:15px}.story{transition:transform .22s var(--ease-spring)}.story:hover{transform:translateY(-3px)}
.story-ring{padding:3px;box-shadow:0 6px 18px rgba(255,55,105,.14);background:conic-gradient(from 20deg,#ffca55,#ff315f,#b72fff,#7448ff,#ffca55);background-size:140% 140%;animation:storyGradient 5s linear infinite}.story.add-story .story-ring{background:linear-gradient(145deg,#e9e9ee,#cfd0d8);box-shadow:none;animation:none}
.story-circle{box-shadow:inset 0 0 0 1px rgba(20,20,30,.035)}
.discover-strip{margin:0 0 5px;padding:7px 14px 14px;border:0;background:transparent;gap:10px}.discover-strip a{min-width:145px;padding:11px 12px;border-radius:18px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-spring),box-shadow .2s}.discover-strip a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.discover-icon{width:34px;height:34px;border-radius:12px}
.feed-heading{padding-top:26px}.feed-list{padding:1px 11px 18px;background:linear-gradient(180deg,#f7f7fa,#f3f3f7)}
.post-card{margin:12px 0 18px;border:1px solid rgba(20,20,30,.055);border-radius:28px;box-shadow:0 12px 40px rgba(21,19,32,.075);transition:transform .38s var(--ease-out),box-shadow .38s ease;will-change:transform}.post-card:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(21,19,32,.12)}
.post-head{height:62px;padding:10px 15px}.user-avatar{width:38px;height:38px;box-shadow:0 5px 16px rgba(255,55,105,.14)}
.post-media{aspect-ratio:4/5;touch-action:manipulation;cursor:pointer}.post-media img{transition:transform .8s var(--ease-out)}.post-card:hover .post-media img{transform:scale(1.012)}
.post-actions{height:56px}.action-btn{border-radius:50%;transition:transform .2s var(--ease-spring),background .2s}.action-btn:hover{background:#f5f5f8;transform:scale(1.08)}.action-btn:active{transform:scale(.88)}
.print-action{height:36px;border-radius:13px;transition:transform .2s var(--ease-spring),background .2s}.print-action:hover{transform:translateY(-2px);background:#ececf1}
.post-body{padding:0 15px 17px}.comment-form{margin-top:9px;padding:2px 5px 2px 12px;border-radius:14px;background:#f7f7f9}.comment-form button{padding:8px}
.like-burst{position:absolute;z-index:5;left:50%;top:50%;width:95px;height:95px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.24));animation:likeBurst .75s var(--ease-out) both}.like-burst:before{content:"♥";display:grid;place-items:center;width:100%;height:100%;color:#fff;font-size:82px;line-height:1;text-shadow:0 4px 20px rgba(0,0,0,.22)}

.bottom-nav{left:10px;right:10px;bottom:calc(9px + var(--safe-bottom));height:68px;padding:5px 10px;grid-template-columns:1fr 1fr 72px 1fr 1fr;border:1px solid rgba(255,255,255,.75);border-radius:24px;background:rgba(255,255,255,.9);box-shadow:0 18px 55px rgba(19,18,29,.18);backdrop-filter:saturate(170%) blur(24px);-webkit-backdrop-filter:saturate(170%) blur(24px)}
.nav-item{position:relative;height:54px;border-radius:17px;transition:color .25s,transform .2s var(--ease-spring),background .2s}.nav-item:hover{transform:translateY(-2px);background:rgba(245,245,249,.9)}.nav-item.active:after{content:"";position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--accent));animation:navDot .35s var(--ease-spring) both}
.camera-tab{margin-top:-18px;width:62px;height:62px;border-width:5px;box-shadow:0 12px 30px rgba(124,92,255,.34);transition:transform .25s var(--ease-spring),box-shadow .25s}.camera-tab:hover{transform:translateY(-3px) rotate(4deg);box-shadow:0 18px 38px rgba(124,92,255,.42)}
.main-content{padding-bottom:calc(103px + var(--safe-bottom))}
.create-sheet,.mini-sheet{border-radius:36px 36px 0 0;padding-left:19px;padding-right:19px;transition-duration:.42s;transition-timing-function:var(--ease-out)}
.create-option{border-radius:22px;padding:13px;transition:transform .2s var(--ease-spring),box-shadow .2s,border-color .2s}.create-option:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:rgba(124,92,255,.18)}.create-icon{border-radius:17px}
.sheet-backdrop{background:rgba(12,12,20,.42);backdrop-filter:blur(8px);transition-duration:.35s}

.upload-card,.request-card{margin:0 14px 22px;padding:18px;border-radius:28px;box-shadow:var(--shadow-sm)}.drop-zone{border-radius:24px;background:linear-gradient(145deg,#fbfbfd,#f7f4ff);transition:border-color .25s,transform .25s var(--ease-spring),background .25s}.drop-zone:hover{transform:translateY(-2px);border-color:var(--accent);background:#fff}.drop-icon{border-radius:20px}
.upload-card input,.upload-card select,.request-card input{height:47px;border-radius:15px;transition:border .2s,box-shadow .2s,background .2s}.upload-card input:focus,.upload-card select:focus,.request-card input:focus{border-color:rgba(124,92,255,.55);box-shadow:0 0 0 4px rgba(124,92,255,.09)}
.moment-grid{gap:13px;padding:0 14px 23px}.moment-card{transition:transform .28s var(--ease-spring)}.moment-card:hover{transform:translateY(-5px)}.moment-cover{border-radius:25px;box-shadow:0 12px 35px rgba(21,19,32,.12)}.moment-cover>img{transition:transform .7s var(--ease-out)}.moment-card:hover img{transform:scale(1.04)}
.photo-grid{gap:4px;padding:0 5px 24px}.photo-grid a{border-radius:7px}.photo-grid img{transition:transform .45s var(--ease-out),filter .3s}.photo-grid a:hover img{transform:scale(1.04);filter:brightness(.93)}
.fab-secondary{border-radius:19px;padding:14px;transition:transform .2s var(--ease-spring),background .2s}.fab-secondary:hover{transform:translateY(-2px);background:#e9e9ee}
.timeline{padding:0 16px 28px}.timeline-marker{border-radius:16px;box-shadow:var(--shadow-sm)}.timeline-card{border-radius:23px;padding:15px;box-shadow:0 8px 26px rgba(20,20,30,.045);transition:transform .25s var(--ease-spring),box-shadow .25s}.timeline-item:hover .timeline-card{transform:translateX(4px);box-shadow:var(--shadow-sm)}
.location-visual{border-radius:32px;box-shadow:var(--shadow)}.pin{animation:pinFloat 3s ease-in-out infinite}.location-card,.info-list>div{border-radius:21px;background:#fff;box-shadow:var(--shadow-sm)}
.smart-grid{gap:11px}.smart-card{border-radius:22px;padding:13px;box-shadow:0 7px 24px rgba(20,20,30,.045);transition:transform .22s var(--ease-spring),box-shadow .22s}.smart-card:hover{transform:translateX(4px);box-shadow:var(--shadow-sm)}.smart-emoji{border-radius:16px}.people-banner,.consent-note{border-radius:25px}.person-card{border-radius:22px;transition:transform .22s var(--ease-spring),box-shadow .22s}.person-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.song-row{margin:5px 0;padding:11px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 5px 20px rgba(20,20,30,.035)}.cover-note,.vote-btn{border-radius:15px}.vote-btn{transition:transform .18s var(--ease-spring)}.vote-btn:active{transform:scale(.9)}
.print-card{border-radius:9px;box-shadow:0 28px 80px rgba(0,0,0,.21);transform:rotate(-.5deg);transition:transform .35s var(--ease-spring)}.print-card:hover{transform:rotate(0) translateY(-4px)}
.toast{border-radius:18px;padding:13px 16px;background:rgba(23,23,29,.94);backdrop-filter:blur(18px);animation:toastIn .45s var(--ease-spring)}

/* Scroll reveal and motion */
.js .reveal-item{opacity:0;transform:translateY(18px) scale(.985)}
.js .reveal-item.is-visible{opacity:1;transform:none;transition:opacity .65s var(--ease-out),transform .65s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
@keyframes marrygramPageIn{from{opacity:0}to{opacity:1}}
@keyframes brandSpark{0%,100%{transform:translateY(-5px) rotate(0) scale(1)}50%{transform:translateY(-6px) rotate(15deg) scale(1.18)}}
@keyframes profileFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes storyGradient{to{background-position:140% 140%}}
@keyframes navDot{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}
@keyframes likeBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-15deg)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.14) rotate(5deg)}70%{opacity:1;transform:translate(-50%,-50%) scale(.96)}100%{opacity:0;transform:translate(-50%,-58%) scale(1)}}
@keyframes pinFloat{0%,100%{translate:0 0}50%{translate:0 -6px}}

/* Admin management */
.management-main{max-width:1180px!important;margin:0 auto;padding:0 24px 70px;background:transparent!important}
.management-topbar{position:sticky;z-index:80;top:0;width:min(1180px,calc(100% - 32px));height:72px;margin:14px auto 0;padding:0 18px 0 20px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(255,255,255,.78);border-radius:24px;background:rgba(255,255,255,.84);box-shadow:0 14px 45px rgba(20,18,31,.1);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.management-brand{min-width:0}.management-label{margin-left:7px;padding:5px 8px;border-radius:8px;background:#111;color:#fff;font-size:8px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.management-nav{display:flex;align-items:center;gap:7px}.management-nav>a{padding:9px 11px;border-radius:12px;text-decoration:none;font-size:11px;font-weight:750;transition:background .2s,transform .2s var(--ease-spring)}.management-nav>a:hover{background:#f2f2f6;transform:translateY(-1px)}
.management-user{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;font-size:12px;font-weight:850;box-shadow:0 7px 18px rgba(124,92,255,.25)}
.management-hero{position:relative;margin:32px 0 18px;padding:clamp(28px,5vw,58px);min-height:280px;border-radius:38px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;overflow:hidden;background:radial-gradient(circle at 88% 15%,rgba(255,101,157,.38),transparent 22%),radial-gradient(circle at 70% 100%,rgba(116,88,255,.35),transparent 34%),#15141b;color:#fff;box-shadow:0 30px 80px rgba(16,14,26,.22)}
.management-hero:before{content:"";position:absolute;inset:-60%;background:conic-gradient(from 90deg,transparent,rgba(255,255,255,.055),transparent 25%);animation:managementGlow 12s linear infinite}.management-hero>div,.management-create{position:relative;z-index:1}
.management-hero .eyebrow{color:#f2b8d7;background:none;-webkit-text-fill-color:initial}.management-hero h1{margin:8px 0 12px;font-size:clamp(36px,6vw,67px);line-height:.96;letter-spacing:-3px}.management-hero h1 em,.management-form-head h1 em{font-family:Georgia,serif;font-weight:500}.management-hero h1 em{background:linear-gradient(90deg,#ff8ebb,#bba7ff);-webkit-background-clip:text;background-clip:text;color:transparent}.management-hero p{max-width:540px;margin:0;color:rgba(255,255,255,.62);font-size:13px}
.management-create{flex:0 0 auto;width:150px;height:150px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-decoration:none;background:#fff;color:#111;font-size:11px;font-weight:850;box-shadow:0 20px 55px rgba(0,0,0,.24);transition:transform .35s var(--ease-spring),box-shadow .35s}.management-create:hover{transform:rotate(5deg) scale(1.05);box-shadow:0 28px 70px rgba(0,0,0,.32)}.management-create svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.management-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.management-stats article{position:relative;padding:19px;border:1px solid rgba(255,255,255,.8);border-radius:25px;background:rgba(255,255,255,.8);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .25s var(--ease-spring)}.management-stats article:hover{transform:translateY(-4px)}.management-stats article>span{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2)}.management-stats b{display:block;margin:6px 0 0;font-size:31px;letter-spacing:-1.5px}.management-stats small{color:var(--muted);font-size:9px}
.management-section{padding:36px 0}.management-section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:15px}.management-section-head h2{margin:3px 0 0;font-size:29px;letter-spacing:-1.2px}.management-section-head>span{color:var(--muted);font-size:10px}
.wedding-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.wedding-admin-card{overflow:hidden;border:1px solid rgba(255,255,255,.85);border-radius:31px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-out),box-shadow .35s}.wedding-admin-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.wedding-card-cover{position:relative;height:145px;overflow:hidden;background:linear-gradient(135deg,var(--card-primary),var(--card-accent))}.wedding-card-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.18),transparent 55%,rgba(0,0,0,.08))}.wedding-card-orb{position:absolute;border-radius:50%;background:rgba(255,255,255,.17);filter:blur(1px)}.wedding-card-orb.one{width:170px;height:170px;right:-45px;top:-80px}.wedding-card-orb.two{width:100px;height:100px;left:24%;bottom:-70px}
.wedding-card-avatar{position:absolute;z-index:2;left:22px;bottom:18px;width:70px;height:70px;border:3px solid rgba(255,255,255,.8);border-radius:24px;display:flex;align-items:center;justify-content:center;gap:4px;background:rgba(255,255,255,.92);color:#18171d;font-size:20px;font-weight:850;box-shadow:0 14px 35px rgba(0,0,0,.18)}.wedding-card-avatar i{color:var(--card-primary);font-size:10px;font-style:normal}.wedding-card-state{position:absolute;z-index:2;right:17px;top:17px;padding:7px 10px;border-radius:99px;display:flex;align-items:center;gap:5px;background:rgba(20,20,25,.32);backdrop-filter:blur(10px);color:#fff;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.wedding-card-state span{width:6px;height:6px;border-radius:50%;background:#bbb}.wedding-card-state.is-live span{background:#70ffad;box-shadow:0 0 0 4px rgba(112,255,173,.16)}
.wedding-card-body{padding:19px 21px 20px}.wedding-card-date{font-size:8px;font-weight:850;letter-spacing:.13em;color:var(--muted-2)}.wedding-card-body h3{margin:3px 0 3px;font-size:24px;letter-spacing:-1px}.wedding-card-body>p{margin:0;color:var(--muted);font-size:10px}.wedding-card-metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:17px 0 15px;padding:12px;border-radius:18px;background:#f7f7f9}.wedding-card-metrics span{text-align:center}.wedding-card-metrics span+span{border-left:1px solid var(--line)}.wedding-card-metrics b,.wedding-card-metrics small{display:block}.wedding-card-metrics b{font-size:16px}.wedding-card-metrics small{font-size:8px;color:var(--muted)}
.wedding-card-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.wedding-card-actions a,.wedding-card-actions button{border:0;border-radius:11px;padding:8px 10px;background:#f2f2f5;text-decoration:none;font-size:9px;font-weight:750;cursor:pointer;transition:transform .18s var(--ease-spring),background .18s}.wedding-card-actions a:hover,.wedding-card-actions button:hover{transform:translateY(-1px);background:#e9e9ef}.wedding-card-actions form{display:contents}.wedding-card-actions .card-action-primary{background:#17171c;color:#fff}.wedding-card-actions .danger-link{margin-left:auto;background:#fff1f3;color:#c52d43}
.management-empty{grid-column:1/-1;padding:65px 20px;border:1px dashed var(--line-dark);border-radius:32px;text-align:center;background:rgba(255,255,255,.7)}.management-empty>span{font-size:30px}.management-empty h3{margin:9px 0 3px;font-size:22px}.management-empty p{margin:0 auto 18px;max-width:410px;color:var(--muted);font-size:12px}
.management-form-head{padding:50px 6px 24px}.management-back{display:inline-flex;margin-bottom:25px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:750}.management-form-head h1{margin:8px 0 11px;font-size:clamp(40px,7vw,70px);line-height:.98;letter-spacing:-3px}.management-form-head h1 em{background:linear-gradient(90deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.management-form-head p{margin:0;color:var(--muted)}
.management-form-card{border:1px solid rgba(255,255,255,.85);border-radius:35px;background:rgba(255,255,255,.9);box-shadow:var(--shadow);overflow:hidden}.management-form-card fieldset{margin:0;padding:27px 30px 30px;border:0;border-bottom:1px solid var(--line)}.management-form-card legend{width:100%;padding:0 0 22px;display:flex;align-items:center;gap:12px}.management-form-card legend>span{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:#17171c;color:#fff;font-size:9px;font-weight:850}.management-form-card legend b,.management-form-card legend small{display:block}.management-form-card legend b{font-size:14px}.management-form-card legend small{color:var(--muted);font-size:9px}
.management-form-grid{display:grid;gap:14px}.management-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.management-form-grid.wide-second{grid-template-columns:.7fr 1.3fr}
.management-field{display:grid;gap:6px;margin-bottom:14px}.management-field>span{font-size:9px;font-weight:800;color:#565861}.management-field input,.management-field textarea,.management-field select{width:100%;border:1px solid var(--line);border-radius:16px;background:#f7f7fa;outline:0;padding:12px 14px;font-size:12px;transition:border .2s,box-shadow .2s,background .2s}.management-field input{height:49px}.management-field textarea{resize:vertical;min-height:88px}.management-field input:focus,.management-field textarea:focus,.management-field select:focus{border-color:rgba(124,92,255,.55);background:#fff;box-shadow:0 0 0 4px rgba(124,92,255,.09)}.management-field small{color:var(--muted-2);font-size:8px}.management-field em{color:#ce2f49;font-size:9px;font-style:normal}.management-field.has-error input,.management-field.has-error textarea{border-color:#e85c72;background:#fff7f8}.management-field input[type=color]{padding:5px;cursor:pointer}
.management-color-grid{display:grid;grid-template-columns:140px 140px 1fr;gap:14px;align-items:start}.management-switch-field{position:relative;min-height:73px;padding:12px 58px 12px 14px;border:1px solid var(--line);border-radius:17px;background:#f7f7fa;display:flex;align-items:center}.management-switch-field>span b,.management-switch-field>span small{display:block}.management-switch-field>span b{font-size:10px}.management-switch-field>span small{margin-top:2px;color:var(--muted);font-size:8px}.management-switch-field input{position:absolute;opacity:0}.management-switch-field>i{position:absolute;right:14px;width:38px;height:22px;border-radius:99px;background:#c9cad1;transition:background .25s}.management-switch-field>i:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .25s var(--ease-spring)}.management-switch-field input:checked+i{background:linear-gradient(135deg,var(--brand),var(--accent))}.management-switch-field input:checked+i:after{transform:translateX(16px)}
.management-form-actions{padding:20px 27px;display:flex;align-items:center;justify-content:flex-end;gap:10px}.management-form-actions>a{padding:12px;text-decoration:none;color:var(--muted);font-size:10px;font-weight:750}.management-save{min-width:220px;height:52px;border:0;border-radius:17px;padding:0 9px 0 18px;display:flex;align-items:center;justify-content:space-between;background:#17171c;color:#fff;font-size:11px;font-weight:800;cursor:pointer;transition:transform .22s var(--ease-spring),box-shadow .22s}.management-save:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(20,20,27,.2)}.management-save b{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#111;font-size:17px}
.delete-confirmation{max-width:650px;margin:70px auto;padding:42px;border:1px solid rgba(255,255,255,.85);border-radius:36px;background:#fff;text-align:center;box-shadow:var(--shadow)}.delete-icon{width:72px;height:72px;margin:0 auto 20px;border-radius:23px;display:grid;place-items:center;background:#fff0f2;color:#d52f48}.delete-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.delete-confirmation h1{margin:7px 0 9px;font-size:37px;letter-spacing:-1.7px}.delete-confirmation>p{margin:0 auto;max-width:520px;color:var(--muted);font-size:12px;line-height:1.65}.delete-warning{margin:22px 0;padding:12px;border-radius:15px;background:#fff7ed;color:#9b5b11;font-size:10px;font-weight:750}.delete-confirmation form{display:grid;grid-template-columns:1fr 1.5fr;gap:9px}.delete-confirmation form a,.delete-confirmation form button{min-height:50px;border:0;border-radius:16px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:10px;font-weight:800}.delete-confirmation form a{background:#f2f2f5}.delete-confirmation form button{background:#c9253e;color:#fff;cursor:pointer}
/* Moment management */
.moment-management-head{padding-bottom:10px}.moment-management-title{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.moment-management-title h1{margin-bottom:12px}.moment-create{width:128px;height:128px;background:linear-gradient(145deg,#1b1921,#0d0d11);color:#fff;box-shadow:0 22px 55px rgba(17,15,25,.22)}.moment-create svg{stroke:#fff}.moment-management-section{padding-top:25px}
.moment-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.moment-admin-card{overflow:hidden;border:1px solid rgba(255,255,255,.88);border-radius:29px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .35s var(--ease-out),box-shadow .35s,opacity .25s}.moment-admin-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.moment-admin-card.is-hidden{opacity:.72}.moment-admin-card.is-hidden:hover{opacity:1}
.moment-admin-visual{position:relative;height:142px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.92),rgba(255,255,255,.18) 23%,transparent 50%),linear-gradient(135deg,#ffdbe8,#ded5ff)}.moment-admin-visual:before,.moment-admin-visual:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;filter:blur(2px);background:rgba(255,255,255,.22)}.moment-admin-visual:before{left:-78px;top:-75px}.moment-admin-visual:after{right:-75px;bottom:-95px}.moment-admin-glow{position:absolute;width:82px;height:82px;border-radius:27px;background:rgba(255,255,255,.5);box-shadow:0 18px 50px rgba(89,57,140,.2);transform:rotate(9deg)}.moment-admin-emoji{position:relative;z-index:2;font-size:49px;filter:drop-shadow(0 12px 20px rgba(51,32,79,.2));transition:transform .35s var(--ease-spring)}.moment-admin-card:hover .moment-admin-emoji{transform:translateY(-4px) rotate(-5deg) scale(1.06)}
.moment-admin-state{position:absolute;z-index:3;right:12px;top:12px;padding:7px 9px;border-radius:99px;display:flex;align-items:center;gap:5px;background:rgba(25,24,31,.54);backdrop-filter:blur(12px);color:#fff;font-size:7px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.moment-admin-state i{width:6px;height:6px;border-radius:50%;background:#c4c4c9}.moment-admin-state.is-public i{background:#70ffad;box-shadow:0 0 0 4px rgba(112,255,173,.17)}
.moment-admin-body{padding:18px}.moment-admin-meta{font-size:7px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}.moment-admin-body h3{margin:5px 0 5px;font-size:22px;letter-spacing:-.8px}.moment-admin-body>p{height:31px;margin:0;color:var(--muted);font-size:9px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.moment-admin-stats{margin:14px 0;padding:12px;border-radius:17px;background:#f7f7fa;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 7px}.moment-admin-stats b{grid-row:1/3;font-size:24px}.moment-admin-stats span{font-size:8px;font-weight:750;color:#44454d}.moment-admin-stats small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-2);font-size:7px}.moment-admin-actions .danger-link{margin-left:auto}
.moment-title-grid{grid-template-columns:100px minmax(0,1fr) minmax(0,1fr)}.moment-public-switch{max-width:520px}.management-form-alert{margin:22px 28px 0;padding:13px 15px;border-radius:15px;background:#fff1f3;color:#b9273e;font-size:10px}.management-form-alert ul{margin:0;padding-left:16px}
@keyframes managementGlow{to{transform:rotate(360deg)}}

@media(min-width:700px){
  .main-content:not(.management-main){margin-top:12px;margin-bottom:30px;border:1px solid rgba(255,255,255,.8)!important;border-radius:30px;overflow:hidden;box-shadow:0 25px 85px rgba(22,20,35,.1)!important}
  .topbar{top:10px;max-width:660px;border:1px solid rgba(255,255,255,.8)!important;border-radius:22px;box-shadow:0 12px 38px rgba(20,20,30,.085)}
  .bottom-nav{width:640px;left:50%;right:auto;bottom:16px;transform:translateX(-50%);border-radius:25px}
  .post-card{margin-left:8px;margin-right:8px}.feed-list{padding-left:8px;padding-right:8px}
  .create-sheet,.mini-sheet{border-radius:32px}
}
@media(max-width:760px){
  .management-main{padding:0 14px 55px}.management-topbar{width:calc(100% - 20px);height:64px;margin-top:8px;padding:0 12px 0 15px;border-radius:20px}.management-brand .brand-word{font-size:22px}.management-label{display:none}.management-nav>a{display:none}.management-nav>a:first-child{display:block;font-size:9px}.management-hero{min-height:360px;margin-top:18px;padding:28px;align-items:flex-start;flex-direction:column}.management-hero h1{font-size:43px;letter-spacing:-2px}.management-create{align-self:flex-end;width:110px;height:110px}.management-stats{grid-template-columns:repeat(2,1fr)}.management-stats article{padding:16px}.wedding-admin-grid,.moment-admin-grid{grid-template-columns:1fr}.management-form-head{padding-top:38px}.moment-management-title{align-items:flex-start;flex-direction:column}.moment-management-title .moment-create{align-self:flex-end}.management-form-card fieldset{padding:23px 18px}.management-form-grid.two,.management-form-grid.wide-second,.moment-title-grid{grid-template-columns:1fr}.management-color-grid{grid-template-columns:1fr 1fr}.management-switch-field{grid-column:1/-1}.management-form-actions{padding:17px;align-items:stretch;flex-direction:column-reverse}.management-form-actions>a{text-align:center}.management-save{width:100%;min-width:0}.delete-confirmation{margin:35px auto;padding:29px 20px}.delete-confirmation form{grid-template-columns:1fr}}
@media(max-width:380px){.profile-topline{grid-template-columns:70px 1fr}.profile-ring{width:70px;height:70px}.profile-copy h1{font-size:23px}.bottom-nav{left:6px;right:6px}.nav-item small{display:none}.management-stats{grid-template-columns:1fr 1fr}.wedding-card-actions .danger-link{margin-left:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.js .reveal-item{opacity:1;transform:none}}
