 :root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#29232b;background:#fff8f7}*{box-sizing:border-box}body{margin:0}a{color:#8b1e46}header{display:flex;justify-content:space-between;align-items:center;padding:18px max(5%,calc((100vw - 1100px)/2));background:white;border-bottom:1px solid #f1dce2}.brand{font-weight:900;font-size:1.4rem;color:#8b1e46;text-decoration:none}.nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.nav a{text-decoration:none}main{max-width:1100px;margin:0 auto;padding:35px 20px}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center;min-height:65vh}.hero h1{font-size:clamp(2.3rem,6vw,4.8rem);line-height:1.08;margin:10px 0}.accent{color:#a72e61}.panel,.card{background:#fff;border:1px solid #f1dce2;border-radius:20px;padding:28px;box-shadow:0 10px 35px #8b1e4610}.card{max-width:560px;margin:25px auto}.btn{display:inline-block;background:#8b1e46;color:white;border:0;border-radius:12px;padding:12px 20px;font-weight:700;text-decoration:none;cursor:pointer}.btn.secondary{background:#f9e1e9;color:#8b1e46}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{width:100%;padding:12px;border:1px solid #d9c7cd;border-radius:10px;font:inherit;background:white}label{display:block;margin:15px 0 6px;font-weight:600}input[type=checkbox]{width:auto}fieldset{border:1px solid #ead5dd;border-radius:12px;margin:15px 0}small,.muted{color:#746b71}.error{color:#a3163b}.success{color:#12633a}.message{min-height:1.4em;margin:12px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.avatar{height:250px;border-radius:20px;background:linear-gradient(135deg,#8b1e46,#ed91b3);display:grid;place-items:center;color:white;font-size:5rem}footer{text-align:center;padding:25px;color:#70656b}.hidden{display:none!important}@media(max-width:700px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:1fr}header{padding:15px 20px}.nav{gap:8px}.panel,.card{padding:20px}}
.filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}.filters select{max-width:250px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions .btn{padding:9px 13px}.avatar-mini{height:110px;border-radius:14px;background:linear-gradient(130deg,#8b1e46,#ef9bbb);display:grid;place-items:center;font-size:3rem;color:#fff}.match-list{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.conversation{height:330px;overflow:auto;background:#fff8f7;padding:14px;border-radius:12px;margin:12px 0}.conversation p{padding:10px 12px;border-radius:12px;max-width:85%;overflow-wrap:anywhere}.own-message{background:#f5d8e4;margin-left:auto}.other-message{background:white;margin-right:auto}

.discovery-photo{width:100%;height:220px;object-fit:cover;border-radius:14px;margin-bottom:12px}.moderation-photo{max-width:240px;max-height:220px;object-fit:cover;border-radius:12px}.moderation-item{margin:12px 0;padding:16px;border:1px solid #ddd;border-radius:12px;overflow-wrap:anywhere}

/* Phase 6 mobile accessibility and responsive navigation */
:focus-visible{outline:3px solid #a72e61;outline-offset:3px}button,a,input,textarea,select{touch-action:manipulation}img{max-width:100%}.nav{row-gap:10px}.nav a,.nav button{min-height:40px;display:inline-flex;align-items:center}.conversation{max-height:55dvh;min-height:260px;height:42dvh;overscroll-behavior:contain}.panel,.card{overflow-wrap:anywhere}@media(max-width:700px){header{align-items:flex-start;flex-direction:column;gap:12px}.nav{width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin}.nav a,.nav button{white-space:nowrap;flex-shrink:0}.filters{align-items:stretch;flex-direction:column}.filters select,.filters input{max-width:none;width:100%}.actions .btn{min-height:44px}.card{margin:12px auto}main{padding:18px 14px}.conversation{height:50dvh}}

/* SwaziHearts Swipe Discovery upgrade */
.swipe-help{text-align:center;color:#74535e;margin:16px 0}.swipe-deck{max-width:470px;margin:0 auto 28px;min-height:280px}.swipe-card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 14px 45px #4b153226;border:1px solid #f1dce5;touch-action:pan-y;transition:transform .16s ease}.swipe-visual{height:380px;position:relative;background:linear-gradient(145deg,#7a153f,#e86c92);display:grid;place-items:center;overflow:hidden}.swipe-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.swipe-fallback{font-size:7rem;color:#fff9}.swipe-info{padding:18px 22px 4px}.swipe-info h2{font-size:1.55rem;margin:0 0 7px}.swipe-info p{margin:6px 0}.swipe-controls{padding:15px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.swipe-action{border:1px solid #ead4dd;border-radius:50px;padding:12px 18px;background:#fff;color:#8b1e46;cursor:pointer;font-weight:700;min-height:46px}.swipe-action.like{background:#8b1e46;color:#fff}.swipe-action.pass{background:#fff1f4}.swipe-action.small{font-size:.82rem;padding:10px 12px}.swipe-action:focus-visible{outline:3px solid #8b1e46;outline-offset:3px}.swipe-empty{text-align:center;padding:45px 20px;background:#fff;border-radius:22px}.match-overlay{position:fixed;inset:0;background:#2c0a23d9;display:grid;place-items:center;z-index:1000;padding:20px}.match-overlay.hidden{display:none}.match-dialog{background:#fff4f1;text-align:center;padding:35px 25px;border-radius:24px;max-width:430px;width:100%;box-shadow:0 20px 80px #0005}.match-heart{font-size:5rem;color:#8b1e46}.match-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:20px}@media(max-width:600px){.swipe-visual{height:min(52dvh,440px)}.swipe-deck{max-width:100%}.swipe-info{padding:15px 17px 0}}@media(prefers-reduced-motion:reduce){.swipe-card{transition:none}}

/* Experience upgrade: gallery, explore, chat */
.explore-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px auto;max-width:760px}.explore-tabs .btn{font-size:.87rem}.gallery-count{position:absolute;right:12px;top:12px;z-index:3;background:#220a1ab8;color:#fff;padding:6px 12px;border-radius:40px;font-weight:700}.gallery-arrow{position:absolute;z-index:3;top:45%;border:0;border-radius:50%;width:42px;height:42px;background:#fff9;color:#681638;font-size:1.9rem;cursor:pointer}.gallery-arrow.previous{left:10px}.gallery-arrow.next{right:10px}.swipe-action.super{background:#fff3ce;color:#704b06;border-color:#f0d48a}.chat-layout{display:grid;grid-template-columns:minmax(190px,280px) minmax(0,1fr);gap:18px;align-items:start}.chat-sidebar{background:#fff;border:1px solid #f1dce2;border-radius:18px;padding:14px}.chat-sidebar h2{font-size:1rem;margin:4px 0 12px}.chat-sidebar .match-list{display:flex;flex-direction:column;margin:0;gap:6px}.chat-match{display:flex;align-items:center;text-align:left;gap:9px;border:0;border-radius:12px;background:#fff5f7;padding:9px;cursor:pointer;font:inherit;color:#452332}.chat-match.active{background:#f2d5e1;font-weight:700}.chat-avatar{display:grid;place-items:center;background:#8b1e46;color:white;border-radius:50%;width:36px;height:36px;flex:none}.chat-page .conversation{height:52dvh;min-height:320px;background:#fff6f8}.chat-day{text-align:center;color:#79646d;font-size:.8rem;margin:12px}.bubble-row{display:flex;margin:8px 0}.bubble-row.mine{justify-content:flex-end}.chat-bubble{background:white;border-radius:16px;padding:10px 14px;max-width:min(82%,480px);box-shadow:0 2px 8px #49112710;overflow-wrap:anywhere}.mine .chat-bubble{background:#8b1e46;color:white}.chat-bubble time{display:block;text-align:right;font-size:.7rem;opacity:.7;margin-top:5px}.chat-page #message-form textarea{resize:vertical}.chat-page #message-form button{margin-top:8px}@media(max-width:650px){.chat-layout{grid-template-columns:1fr}.chat-sidebar .match-list{flex-direction:row;overflow-x:auto}.chat-match{flex:0 0 auto;max-width:200px}.chat-page .conversation{height:48dvh}.swipe-visual{height:min(53dvh,450px)}}

/* All-areas development refresh: typography, navigation, touch and gallery */
:root{color-scheme:light;--sh-primary:#8b1e46;--sh-rose:#e86c92;--sh-cream:#fff4f1;--sh-text:#25212b}
body{background:radial-gradient(circle at 95% 0%,#ffe8f0 0,transparent 32%),#fff8f7;color:var(--sh-text);line-height:1.5}
header{position:sticky;top:0;z-index:30;box-shadow:0 4px 24px #4b15320b}
.nav a{padding:8px 10px;border-radius:10px}.nav a[aria-current=page]{background:#fce3ec;color:#721337;font-weight:750}
.btn,.swipe-action,.chat-match{transition:background .15s ease,box-shadow .15s ease,transform .15s ease}
@media(hover:hover){.btn:hover,.swipe-action:hover,.chat-match:hover{box-shadow:0 5px 16px #8b1e4624;transform:translateY(-1px)}}
.swipe-card{will-change:transform}.swipe-info p{overflow-wrap:anywhere}.swipe-visual{user-select:none}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px;margin-top:15px}
.photo-tile{border:1px solid #eed3de;background:#fff;border-radius:16px;padding:8px;min-width:0}
.photo-tile img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:11px}
.photo-tile .btn{width:100%;margin-top:8px;padding:9px;font-size:.85rem}
.upload-help{padding:12px 14px;background:#fff0f5;border-radius:12px;margin:12px 0}
.chat-search{margin:8px 0 12px}.chat-empty{padding:18px;background:#fff5f8;border-radius:12px;color:#6d5060}
.chat-page #message-form{display:grid;gap:8px}.chat-page #message-form button{justify-self:end;min-width:105px}
@media(max-width:700px){header{position:static}.swipe-controls{gap:6px}.swipe-action{padding:11px 12px}.chat-page .panel{padding:15px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.btn,.swipe-action,.chat-match{transition:none}}

/* Connected experience development */
#typing-indicator{min-height:1.5em;font-style:italic;color:#8b1e46}.photo-tile button{min-height:40px}.chat-bubble{line-height:1.45}.chat-match:focus-visible,.gallery-arrow:focus-visible{outline:3px solid #8b1e46;outline-offset:2px}

/* Message delivery/read status */
.chat-receipt{display:block;text-align:right;font-size:.7rem;opacity:.78;margin-top:.25rem}
.chat-bubble time{display:block;font-size:.7rem;opacity:.75;margin-top:.25rem}

/* Upgrades 12–16 development refinements */
#discovery-preferences{display:grid;gap:.75rem;max-width:580px}#discovery-preferences label{display:grid;gap:.3rem}#discovery-preferences input[type=checkbox]{width:auto;display:inline-block;margin-right:.5rem}#discovery-preferences label:has(input[type=checkbox]){display:block}.chat-bubble{overflow-wrap:anywhere}.swipe-card{touch-action:pan-y}@media(max-width:700px){.nav{display:flex;flex-wrap:wrap;gap:.45rem}.swipe-controls{display:flex;flex-wrap:wrap;justify-content:center}.chat-bubble{max-width:90%}}

/* Mobile-first design upgrade: original brand, no third-party assets */
:root{--sh-grad:linear-gradient(135deg,#8b1e46,#d33f78 58%,#ee87a5)}
.sh-landing{background:#fff9f7;overflow-x:hidden}.landing-header{position:relative;box-shadow:none;border-bottom:0;background:transparent;padding:24px max(5%,calc((100vw - 1180px)/2));flex-direction:row;align-items:center}.brand-mark{display:inline-grid;place-items:center;width:35px;height:35px;background:var(--sh-grad);color:#fff;border-radius:12px;margin-right:5px}.landing-header .nav{width:auto;overflow:visible;padding:0;gap:12px}.landing-login{font-weight:700;color:#563043}.landing-join{border-radius:30px}.landing-main{max-width:none;padding:0}.landing-hero{max-width:1180px;margin:auto;min-height:650px;display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:50px;padding:55px 32px 100px}.landing-copy{position:relative;z-index:2}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;letter-spacing:.16em;font-weight:850;color:#a62b61}.live-dot{height:8px;width:8px;border-radius:50%;background:#e86c92;box-shadow:0 0 0 4px #fce2ea}.landing-copy h1{font-size:clamp(3.3rem,6.5vw,6.2rem);letter-spacing:-.065em;line-height:1.02;margin:22px 0;color:#2b1825}.landing-copy h1 em{font-style:normal;background:var(--sh-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-lede{font-size:1.17rem;color:#6b5962;line-height:1.75;max-width:540px}.landing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:30px 0}.landing-primary{padding:17px 28px;border-radius:100px;background:var(--sh-grad);box-shadow:0 13px 28px #8b1e4630;font-size:1.03rem}.landing-primary span{margin-left:14px}.landing-text-link{font-weight:700;text-decoration:none}.landing-trust{font-size:.84rem;color:#79636c}.landing-trust span{margin:0 7px;color:#dc7c9d}.landing-art{height:530px;position:relative;display:grid;place-items:center;isolation:isolate}.art-glow{position:absolute;inset:12% 0;border-radius:50%;background:radial-gradient(circle,#ffd0df,#ffeaf0 60%,transparent 75%);filter:blur(5px)}.art-card{width:min(335px,85%);height:485px;background:#fff;border-radius:30px;padding:9px;box-shadow:0 24px 65px #4d123540;position:absolute;overflow:hidden}.art-back{transform:rotate(12deg) translate(34px,6px);background:#e8b5c8;display:grid;place-items:center;color:#fff;font-size:8rem}.art-front{transform:rotate(-6deg);display:flex;flex-direction:column}.art-sky{height:350px;position:relative;overflow:hidden;border-radius:23px 23px 12px 12px;background:linear-gradient(165deg,#f4a5b7,#d56c93 55%,#8b3b65)}.art-sun{position:absolute;top:35px;right:50px;width:90px;height:90px;background:#ffdfc8;border-radius:50%;filter:blur(1px)}.art-mountain{position:absolute;bottom:-60px;width:310px;height:230px;border-radius:50% 50% 0 0;background:#bd597e}.art-mountain.one{left:-120px}.art-mountain.two{right:-120px;background:#a64872}.art-person{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);width:205px;height:300px}.art-hair{position:absolute;left:46px;top:10px;width:116px;height:175px;background:#392132;border-radius:55% 55% 40% 40%;box-shadow:-15px 7px 0 #422438}.art-face{position:absolute;left:69px;top:42px;width:76px;height:110px;border-radius:42% 42% 48% 48%;background:#b96e59}.art-body{position:absolute;bottom:-20px;left:0;width:205px;height:165px;border-radius:48% 48% 0 0;background:#fff0e6}.art-card-bottom{padding:14px 11px 7px;display:grid;gap:4px}.art-name{font-size:1.17rem;font-weight:850}.art-spark{color:#e86c92}.art-place{font-size:.8rem;color:#7c6871}.art-reactions{display:flex;justify-content:center;gap:20px;margin:auto 0 3px}.art-reactions span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:0 4px 15px #0002;font-size:1.5rem}.art-no{color:#e2626d}.art-star{color:#d4a33b}.art-yes{color:#db427d}.art-sticker{position:absolute;right:-12px;top:65px;transform:rotate(10deg);background:#fff;border-radius:18px;padding:14px 19px;box-shadow:0 15px 30px #8b1e4625;font-weight:850;color:#8b1e46;z-index:2}.art-sticker span{color:#e86c92}.landing-how{background:#fff;padding:75px 25px 85px}.section-intro{text-align:center;max-width:620px;margin:0 auto 35px}.section-intro h2,.landing-cta h2{font-size:clamp(2rem,4vw,3.1rem);letter-spacing:-.045em;margin:12px 0}.section-intro p,.landing-cta p{color:#79636c}.landing-steps{max-width:1050px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.landing-steps article{background:#fff8f8;border:1px solid #f7e1e9;padding:30px;border-radius:25px}.step-icon{width:53px;height:53px;border-radius:17px;display:grid;place-items:center;background:#fbe0e9;color:#9e2052;font-size:1.7rem}.landing-steps h3{margin:22px 0 8px}.landing-steps p{color:#76646b}.landing-cta{text-align:center;padding:80px 20px 90px;background:linear-gradient(135deg,#fff0f4,#ffe3ed)}.landing-cta .btn{margin-top:18px}.landing-footer{display:flex;justify-content:space-between;gap:12px;max-width:1150px;margin:auto}.sh-bottom-nav{display:none}.sh-page-heading h1{margin:.2rem 0 .8rem;letter-spacing:-.045em}.sh-filter-sheet{background:#fff;border:1px solid #f1dce2;border-radius:16px;margin:16px 0;padding:12px 16px}.sh-filter-sheet summary{cursor:pointer;font-weight:800;color:#8b1e46;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}.sh-filter-sheet summary::-webkit-details-marker{display:none}.sh-filter-sheet summary span{font-size:.75rem;font-weight:500;color:#86737b}.sh-filter-sheet .filters{margin:12px 0 0}.sh-app .swipe-deck{max-width:445px}.sh-app .swipe-card{border-radius:28px}.sh-app .swipe-action{min-width:56px;min-height:54px;border-radius:100px}.sh-app .swipe-action.like{background:var(--sh-grad)}
@media(max-width:750px){.landing-header{padding:16px 18px;flex-direction:row;gap:8px}.landing-header .nav{flex-wrap:nowrap}.landing-header .brand{font-size:1.16rem}.brand-mark{width:29px;height:29px}.landing-header .btn{padding:10px 15px}.landing-hero{grid-template-columns:1fr;padding:32px 22px 55px;gap:8px;min-height:0}.landing-copy h1{font-size:clamp(3.15rem,12vw,4.7rem);margin:16px 0}.landing-lede{font-size:1.02rem;line-height:1.65}.landing-actions{margin:23px 0 15px}.landing-primary{width:100%;text-align:center;padding:15px 22px}.landing-text-link{width:100%;text-align:center}.landing-trust{text-align:center;font-size:.74rem}.landing-art{height:420px;margin-top:12px}.art-card{height:390px;width:270px}.art-sky{height:270px}.art-sticker{right:0;top:40px;font-size:.8rem}.art-person{transform:translateX(-50%) scale(.86);transform-origin:bottom}.landing-how{padding:55px 20px}.landing-steps{grid-template-columns:1fr;gap:12px}.landing-steps article{padding:22px}.landing-steps h3{margin:12px 0 5px}.landing-cta{padding:60px 22px}.landing-footer{display:grid;text-align:center;padding:24px 15px}.sh-app{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.sh-app header{position:sticky;top:0;z-index:40;padding:10px 16px;flex-direction:row;align-items:center;gap:10px}.sh-app header .brand{font-size:1.13rem;white-space:nowrap}.sh-app header .nav{margin-left:auto;width:auto;max-width:48vw;overflow-x:auto;flex-wrap:nowrap;padding:0}.sh-app header .nav a:not([aria-current]),.sh-app header .nav button:not(#logout){display:none}.sh-app header .nav a[aria-current]{font-size:.8rem}.sh-app header .nav #logout{font-size:.75rem;padding:7px 9px;min-height:35px}.sh-bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fffefef5;backdrop-filter:blur(18px);border-top:1px solid #eed6df;padding:8px 4px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px #42112812}.sh-bottom-nav a{display:grid;justify-items:center;align-content:center;gap:1px;text-decoration:none;color:#846a75;font-size:.68rem;font-weight:700;min-height:48px}.sh-bottom-nav a span{font-size:1.35rem;line-height:1.1}.sh-bottom-nav a[aria-current=page]{color:#a42058}.sh-app main{padding:20px 14px}.sh-app .swipe-help{font-size:.78rem;margin:12px 0}.sh-app .swipe-visual{height:min(52dvh,450px)}.sh-app .swipe-deck{min-height:260px}.sh-app .swipe-controls{gap:9px}.sh-app .swipe-info h2{font-size:1.4rem}.sh-app .explore-tabs{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:4px 0 9px}.sh-app .explore-tabs button{flex-shrink:0}.sh-app .chat-page .conversation{height:48dvh}.sh-app footer{display:none}}
@media(max-width:370px){.landing-header .brand{font-size:1rem}.landing-login{font-size:.85rem}.landing-header .btn{padding:8px 11px}.sh-app header .nav a[aria-current]{display:none}}
@media(prefers-reduced-motion:reduce){.art-card,.landing-primary{transition:none}}

/* Connection upgrade: accessible mobile controls and profile progress */
.sh-profile-progress{margin:1rem 0;padding:1rem;border-radius:1rem;background:#fff4f1;color:#25212b}
.sh-profile-progress progress{display:block;width:100%;height:1rem;accent-color:#8b1e46;margin:.6rem 0}
.sh-match-reason{display:inline-block;margin-right:.45rem;color:#8b1e46;font-weight:650}
.sh-activity-alert{font-weight:600;min-height:1.5rem}
@media(max-width:680px){.swipe-action,.btn,.sh-bottom-nav a{min-height:44px}.chat-page .chat-layout{min-width:0}.conversation{overscroll-behavior:contain}.sh-bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.swipe-card,.swipe-action{transition:none!important;animation:none!important}}

/* Reliability upgrade: mobile-friendly connectivity and chat feedback */
.sh-connection-banner:not([hidden]){position:fixed;z-index:10000;top:0;left:0;right:0;padding:12px 18px;text-align:center;background:#25212b;color:#fff;font-weight:600;box-shadow:0 2px 8px #0003}
.sh-chat-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px;flex-wrap:wrap}
.sh-char-count{font-size:.82rem;color:#665b66;font-variant-numeric:tabular-nums}
.sh-char-count.sh-near-limit{color:#8b1e46;font-weight:700}
.sh-chat-error{color:#8b1e46;font-weight:600}
@media(max-width:600px){.sh-chat-tools{align-items:flex-start}.sh-connection-banner:not([hidden]){font-size:.9rem}}

/* Signed-in experience design upgrade — additive styles */
.sh-app{background:linear-gradient(180deg,#fff5f7 0,#fffaf9 440px,#fffaf9 100%);color:#30202b}
.sh-app>header{background:#ffffffed;backdrop-filter:blur(16px);border-bottom:1px solid #f3dfe6;box-shadow:0 4px 22px #8b1e4609}
.sh-app>header .brand{letter-spacing:-.045em}
.sh-app>header .nav a{font-size:.88rem;font-weight:650;padding:8px 4px}
.sh-app>header .nav a[aria-current=page]{color:#a52659}
.sh-app main{max-width:1160px}
.sh-app .panel,.sh-app .card{border-color:#f1e0e6;box-shadow:0 12px 40px #8b1e460b}
.sh-app .btn{transition:transform .18s ease,box-shadow .18s ease}
.sh-app .btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px #8b1e4624}
.sh-app .sh-page-heading h1{font-size:clamp(2rem,4.4vw,3.2rem)}
.sh-home-main{padding-top:30px!important}
.sh-kicker{font-size:.71rem;letter-spacing:.18em;font-weight:850;color:#ae4771}
.sh-welcome{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(230px,.6fr);gap:25px;align-items:center;padding:clamp(25px,5vw,55px);border-radius:30px;background:linear-gradient(120deg,#fff 0%,#fff4f6 58%,#ffe0eb 100%);border:1px solid #f6e0e7;box-shadow:0 18px 55px #8b1e4610;overflow:hidden;position:relative}
.sh-welcome h1{font-size:clamp(2.3rem,5vw,4.15rem);line-height:1.07;letter-spacing:-.06em;margin:14px 0 17px;max-width:640px;color:#311c2a}
.sh-welcome h1 span{color:#a62c61}
.sh-welcome p{max-width:520px;line-height:1.75;color:#765b69;font-size:1.02rem}
.sh-welcome-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.sh-primary-action{background:linear-gradient(120deg,#8b1e46,#ca4678)!important;border-radius:100px!important;padding:15px 24px!important}
.sh-outline-action{background:#fff!important;color:#8b1e46!important;border:1px solid #eec9d7!important;border-radius:100px!important;padding:14px 23px!important}
.sh-welcome-graphic{height:270px;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#8b1e46;isolation:isolate}
.sh-welcome-graphic:before{content:'';position:absolute;width:265px;height:265px;border-radius:50%;background:radial-gradient(circle,#f4a9c3 0%,#f9cfde 50%,#ffe7ef 72%);z-index:-1}
.sh-heart-big{font-size:8.8rem;line-height:1;color:#9b2253;text-shadow:0 14px 25px #8b1e4635;transform:rotate(-8deg)}
.sh-welcome-graphic>span{font-size:.9rem;text-align:center;font-weight:800;line-height:1.4;margin-top:6px}
.sh-orbit{position:absolute;display:grid;place-items:center;border-radius:18px;background:#fff;box-shadow:0 10px 30px #8b1e4620;font-size:2rem;width:62px;height:62px}.sh-orbit-one{top:17px;right:4px;transform:rotate(16deg)}.sh-orbit-two{bottom:35px;left:3px;transform:rotate(-15deg);color:#ed8eb1}
.sh-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}
.sh-stat{display:flex;align-items:center;gap:15px;min-width:0;background:#fff;border:1px solid #f1e1e7;border-radius:22px;padding:20px;text-decoration:none;color:inherit;box-shadow:0 8px 25px #8b1e4608;transition:transform .2s ease}
.sh-stat:hover,.sh-feature-card:hover{transform:translateY(-3px)}
.sh-stat-icon{flex-shrink:0;display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:#fce2ec;color:#a6285c;font-size:1.65rem}.sh-stat-icon-pink{background:#fce9f0}.sh-stat-icon-gold{background:#fff0d9;color:#b36c20}
.sh-stat-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.sh-stat-copy strong{font-size:1.7rem;line-height:1.1;letter-spacing:-.045em}.sh-stat-copy small{font-size:.79rem;color:#786571}.sh-stat-arrow{margin-left:auto;align-self:flex-start;color:#a96883}
.sh-section-heading{display:flex;align-items:end;justify-content:space-between;margin:33px 0 18px}.sh-section-heading h2{font-size:clamp(1.55rem,3vw,2.1rem);letter-spacing:-.04em;margin:7px 0}
.sh-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.sh-feature-card{min-height:260px;border-radius:24px;border:1px solid #f1dfe6;padding:26px;display:flex;flex-direction:column;align-items:flex-start;text-decoration:none;color:#36202d;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 10px 25px #8b1e4609}
.sh-feature-discover{background:linear-gradient(145deg,#fff,#ffeaf0)}.sh-feature-chat{background:linear-gradient(145deg,#fff,#f8e9f7)}.sh-feature-profile{background:linear-gradient(145deg,#fff,#fff0e7)}
.sh-feature-icon{display:grid;place-items:center;width:57px;height:57px;border-radius:18px;background:#fff;color:#a82a60;font-size:2rem;box-shadow:0 7px 22px #8b1e4610}
.sh-feature-copy{display:flex;flex-direction:column;gap:10px;margin-top:24px}.sh-feature-copy strong{font-size:1.22rem;letter-spacing:-.025em}.sh-feature-copy small{font-size:.9rem;line-height:1.6;color:#796774}.sh-feature-link{font-weight:800;color:#9e2455;margin-top:10px;font-size:.87rem}
.sh-home-tip{display:flex;align-items:center;gap:17px;padding:21px 25px;background:#fff;border:1px solid #f1dfe6;border-radius:22px;margin:25px 0 15px}.sh-tip-symbol{font-size:2.2rem;color:#a92d60}.sh-home-tip strong{font-size:.98rem}.sh-home-tip p{margin:5px 0;color:#786773;font-size:.88rem;line-height:1.5}.sh-home-tip a{margin-left:auto;white-space:nowrap;font-weight:750;font-size:.87rem}
@media(max-width:850px){.sh-welcome{grid-template-columns:1fr}.sh-welcome-graphic{display:none}.sh-home-grid{grid-template-columns:1fr 1fr}.sh-stats{gap:10px}.sh-stat{padding:15px;gap:10px}.sh-stat-icon{width:43px;height:43px}.sh-stat-copy strong{font-size:1.35rem}}
@media(max-width:600px){.sh-home-main{padding-top:15px!important}.sh-welcome{padding:28px 22px;border-radius:24px}.sh-welcome h1{font-size:2.55rem}.sh-welcome p{font-size:.94rem}.sh-welcome-actions{display:grid;grid-template-columns:1fr}.sh-welcome-actions .btn{text-align:center}.sh-stats{grid-template-columns:1fr 1fr;gap:10px;margin:13px 0}.sh-stat{border-radius:17px;padding:13px}.sh-stat:nth-child(3){grid-column:1/-1}.sh-stat-icon{width:40px;height:40px;font-size:1.3rem}.sh-stat-copy strong{font-size:1.3rem}.sh-stat-copy small{font-size:.72rem}.sh-home-grid{grid-template-columns:1fr;gap:12px}.sh-feature-card{min-height:0;padding:21px;flex-direction:row;gap:16px}.sh-feature-icon{flex-shrink:0;width:49px;height:49px;font-size:1.6rem}.sh-feature-copy{margin-top:0}.sh-home-tip{align-items:flex-start;padding:18px;flex-wrap:wrap}.sh-home-tip a{margin-left:0}.sh-section-heading{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.sh-app .btn,.sh-stat,.sh-feature-card{transition:none!important}}

/* Chat profile images: private, short-lived signed URLs from existing storage rules. */
.chat-avatar,.chat-header-avatar{position:relative;overflow:hidden;display:grid;place-items:center;flex-shrink:0;background:#8b1e46;color:#fff;border-radius:50%;font-weight:700}
.chat-avatar{width:42px;height:42px}.chat-header-avatar{width:54px;height:54px}
.chat-avatar img,.chat-header-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff}
#chat-title{display:flex;align-items:center;gap:12px;min-width:0}
.chat-gallery-panel{margin:8px 0 16px;border:1px solid #ecd6df;border-radius:14px;padding:10px 12px;background:#fffafc}
.chat-gallery-panel summary{cursor:pointer;font-weight:650;color:#7a2043;min-height:32px}
.chat-gallery-caption{margin:10px 0 6px;font-size:.85rem;color:#6b5661}
.chat-gallery-strip{display:flex;gap:9px;overflow-x:auto;padding:4px 0 9px;scroll-snap-type:x proximity}
.chat-gallery-strip a{display:block;flex:none;scroll-snap-align:start;border-radius:12px;overflow:hidden;width:104px;height:118px;border:1px solid #f0d8e1}
.chat-gallery-strip img{width:100%;height:100%;object-fit:cover;display:block}
.chat-match{min-width:0}.chat-match>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
