:root{--ink:#153b49;--ink2:#335567;--muted:#607584;--accent:#e86d58;--accent-dark:#a84435;--cream:#fffbf7;--paper:#ffffff;--pale:#f0f8f5;--line:#e2e9e9;--blue:#184e60;--shadow:0 16px 50px rgba(17,53,63,.10);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh}
a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--accent-dark)}
button,input,textarea,select{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer}
:focus-visible{outline:3px solid #f29f56;outline-offset:3px}
.shell{width:min(1130px,calc(100% - 40px));margin:0 auto}
.narrow{max-width:700px}
.skip{position:absolute;top:-60px;left:12px;background:#fff;padding:12px;z-index:99}
.skip:focus{top:10px}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:10}
.header-inner{display:flex;gap:24px;align-items:center;justify-content:space-between;min-height:82px}
.brand{display:flex;align-items:center;gap:9px;font-size:27px;font-weight:800;letter-spacing:-1.7px;text-decoration:none;color:var(--ink);white-space:nowrap}
.brandmark{background:var(--accent);width:40px;height:40px;color:#fff;border-radius:13px;display:grid;place-items:center;font-size:25px;letter-spacing:-2px}
.brand-accent{color:var(--accent)}
.site-header nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.site-header nav>a,.site-header nav>form>button{font-size:14px;font-weight:650;text-decoration:none;color:var(--ink)}
.site-header nav>a:hover,.site-header nav>form>button:hover{color:var(--accent-dark)}
.inline{display:inline}
.link{padding:0;border:0;background:none;color:var(--blue);font-weight:650;text-decoration:underline;cursor:pointer}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:11px 22px;background:var(--accent);color:#fff!important;border:2px solid var(--accent);border-radius:12px;font-weight:750;text-decoration:none;box-shadow:0 8px 20px rgba(232,109,88,.16);white-space:normal;text-align:center;line-height:1.3}
.btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-light{background:#fff;color:var(--ink)!important;border-color:#fff;box-shadow:none}
.btn-light:hover{background:#edf3f1}
.btn-outline{background:transparent;color:var(--ink)!important;border-color:#b1c7c8;box-shadow:none}
.btn-outline:hover{background:#f0f7f7;border-color:#8eb1b1}
.btn-small{min-height:42px;padding:8px 14px;font-size:13px}
.hero{background:linear-gradient(125deg,#e3f6ef 0%,#f7f4e9 55%,#fdf6eb 100%);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center;min-height:520px;padding-block:75px}
.hero-copy h1{font-size:clamp(38px,5vw,68px);font-weight:850;line-height:1.08;letter-spacing:-2.5px;max-width:620px;margin:18px 0 20px}
.hero-copy h1 em{font-style:normal;color:var(--accent)}
.hero-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;max-width:560px;color:var(--ink2)}
.eyebrow{font-size:12px!important;font-weight:800!important;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 12px}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
.trustline{font-size:12px!important;color:var(--ink2);font-weight:650}
.trustline span{padding:0 8px;color:var(--accent)}
.hero-art{height:385px;position:relative;display:grid;place-items:center}
.circle{position:absolute;border-radius:50%;width:380px;height:380px;background:#bfdad1;right:0;top:12px}
.circle.two{width:190px;height:190px;background:#ffdaae;left:0;right:auto;top:auto;bottom:0}
.mockcard{position:relative;background:white;border-radius:26px;width:300px;padding:20px;box-shadow:var(--shadow);transform:rotate(4deg);display:grid;gap:14px}
.mockbadge{width:max-content;font-size:12px;padding:8px 10px;border-radius:999px;background:#e5f4ef;color:#215d49;font-weight:800}
.person-placeholder{height:190px;display:grid;place-items:center;background:linear-gradient(160deg,#f1a899,#d8e1ce);border-radius:16px;color:#fff}
.person-placeholder span{font-size:90px;line-height:1}
.mocktext{display:grid;gap:4px}
.mocktext>span{font-size:13px;color:var(--muted)}
.mocktext strong{font-size:23px;letter-spacing:-.5px}
.mocktext small{color:var(--muted)}
.section{padding-block:65px}
.section-head{max-width:790px;margin-bottom:28px}
h1,h2,h3{line-height:1.18;letter-spacing:-.7px}
h1{font-size:clamp(30px,4vw,48px);margin:12px 0 18px}
h2{font-size:clamp(23px,2.5vw,33px);margin:16px 0 14px}
h3{font-size:20px;margin:10px 0}
p{line-height:1.62}
.lead{font-size:18px;color:var(--ink2)}
.section-head>p:not(.eyebrow){font-size:16px;color:var(--muted)}
.three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.feature{background:#fff;border:1px solid var(--line);border-radius:18px;padding:27px;min-width:0}
.feature p{color:var(--ink2);margin-bottom:0}
.step{font-size:28px;color:var(--accent);font-weight:850;letter-spacing:-1px}
.pale{background:var(--pale)}
.split{display:grid;grid-template-columns:1fr .75fr;gap:65px;align-items:center}
.split>div>p{max-width:610px;color:var(--ink2)}
.info-card{padding:35px;background:#fff;border-radius:22px;box-shadow:var(--shadow)}
.info-card h3{margin-top:0}
.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.pill{display:inline-block;border-radius:999px;padding:8px 13px;background:#ecf5f1;border:1px solid #d9eae4;font-size:13px;font-weight:700;color:#215347}
.cta{text-align:center;background:#124153;color:#fff;border-radius:25px;margin-bottom:65px}
.cta p{color:#e3eff1}
.cta .btn{margin:16px}
.footer{border-top:1px solid var(--line);background:#eff6f3;padding:47px 0 26px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px}
.foot-grid div{display:flex;flex-direction:column;gap:8px}
.foot-grid strong{font-size:23px}
.foot-grid p{max-width:360px;font-size:14px}
.foot-grid a{font-size:14px}
.footer-note{text-align:center;font-size:12px;color:var(--muted);margin:35px 0 0}
.filters,.form-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:25px;box-shadow:0 7px 24px rgba(23,57,66,.035)}
.filters{display:flex;align-items:flex-end;gap:13px;flex-wrap:wrap}
.filters label{flex:1 1 170px}
.form{display:grid;gap:18px}
.form-card{margin:20px 0;min-width:0}
.form-card h2:first-child{margin-top:0}
label{display:grid;gap:7px;font-size:14px;font-weight:650}
input,select,textarea{width:100%;min-height:46px;padding:12px 13px;background:#fff;border:1px solid #b6c7cc;border-radius:10px;color:var(--ink);font-size:15px}
textarea{resize:vertical;min-height:95px;line-height:1.6}
select[multiple]{min-height:170px}
input:focus,textarea:focus,select:focus{border-color:var(--accent)}
input[type=file]{padding:10px}
input[type=checkbox]{width:19px;height:19px;min-height:19px;accent-color:var(--accent)}
.check{display:flex;align-items:flex-start;gap:12px;font-weight:500}
.check span{flex:1}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.hint,.muted{color:var(--muted);font-size:13px}
.hint{margin:4px 0}
.notice,.warning,.error{padding:15px 17px;border-radius:12px;line-height:1.6;margin:18px 0;border:1px solid}
.notice{background:#edf9ef;border-color:#b1dbbf;color:#215d42}
.warning{background:#fff6df;border-color:#f0db9c;color:#725526}
.error{background:#fff0ec;border-color:#efb8ae;color:#8a3329}
.result-count{font-size:14px;color:var(--muted)}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.profile-card{border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 7px 28px rgba(16,54,64,.05)}
.photo-link{display:block}
.card-photo{width:100%;aspect-ratio:1.25;object-fit:cover;display:block}
.placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#e6ece2,#fad0b7);font-weight:850;color:#476273;font-size:85px}
.profile-content{padding:20px}
.profile-content h3{margin:4px 0 8px}
.profile-content h3 a{text-decoration:none}
.profile-content p{font-size:14px}
.clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:62px}
.profile-bottom{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.profile-bottom small{font-size:11px;color:var(--muted);font-weight:500}
.text-link{font-weight:750;font-size:14px}
.profile-detail{display:grid;grid-template-columns:310px 1fr;gap:45px;margin-top:20px}
.portrait{width:100%;aspect-ratio:3/3.5;border-radius:20px;object-fit:cover}
.profile-aside{padding:15px 2px}
.profile-aside strong{font-size:24px}
.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}
.empty{padding:60px 35px;text-align:center;border:1px dashed #bdcecb;border-radius:20px;background:#fff}
.empty h2{max-width:630px;margin:0 auto 16px}
.job-card{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:23px;border:1px solid var(--line);border-radius:17px;background:#fff;margin:13px 0}
.job-card h2{font-size:22px;margin:5px 0}
.job-card .eyebrow{margin:0}
.job-card p{font-size:14px}
.dashboard-grid{display:grid;grid-template-columns:1.3fr .85fr;gap:24px}
.item-list{margin:16px 0}
.inbox-link{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none}
.inbox-link span{color:var(--muted);font-size:13px}
.messages{background:#edf5f2;min-height:190px;max-height:500px;overflow-y:auto;padding:20px;border-radius:17px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.bubble{max-width:83%;background:#fff;border:1px solid var(--line);border-radius:16px;padding:13px 16px;overflow-wrap:anywhere}
.bubble.mine{margin-left:auto;background:#d8eee5}
.bubble p{margin:0 0 7px;white-space:pre-wrap}
.bubble small{font-size:11px;color:var(--muted)}
.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.metric{padding:18px;background:#fff;border:1px solid var(--line);border-radius:12px;display:grid;gap:6px}
.metric strong{font-size:28px}.metric span{font-size:12px;color:var(--muted)}
.admin-row{display:flex;justify-content:space-between;gap:22px;align-items:center;border-top:1px solid var(--line);padding:16px 0}
.admin-row form{display:flex;gap:8px;flex-wrap:wrap}
.admin-row>div{min-width:0;overflow-wrap:anywhere}
.moderation-photo{width:100px;height:100px;object-fit:cover;border-radius:10px;margin-right:10px}
.prose{font-size:16px;line-height:1.8}
.prose h2{margin-top:32px}
.break-all{word-break:break-all}
/* Touch-friendly multi-select tiles: input and label remain on the SAME row. */
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px}
label.choice{display:flex!important;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-height:54px;min-width:0;width:100%;padding:12px 14px;border:1px solid #cbdad8;border-radius:12px;background:#f8fbfa;font-size:15px;line-height:1.4;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;user-select:none;-webkit-tap-highlight-color:transparent}
label.choice:hover{border-color:#7ba9a2;background:#f0f9f5}
label.choice:has(>input:checked){border-color:#39867b;background:#e9f7f2;box-shadow:inset 0 0 0 1px #39867b}
label.choice:focus-within{outline:3px solid #f29f56;outline-offset:2px}
label.choice>input[type="checkbox"]{display:block;flex:0 0 20px;width:20px;height:20px;min-width:20px;min-height:20px;max-width:20px;margin:0;padding:0;accent-color:#258375;cursor:pointer}
label.choice>span{display:block;flex:1 1 auto;min-width:0;line-height:1.4;overflow-wrap:anywhere}
.choice-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.choice-toolbar button{font:inherit;color:var(--ink);background:#eef6f4;border:1px solid #a5c7c0;padding:9px 14px;min-height:42px;border-radius:10px;font-size:13px;font-weight:650;cursor:pointer}
.choice-toolbar button:hover,.choice-toolbar button:focus-visible{background:#dceee8}
.area-selector{margin:12px 0 22px;padding:16px;border:1px solid var(--line);border-radius:14px;min-width:0}
.area-selector legend{font-weight:750;padding:0 6px}
.area-selector .area-counter{font-size:13px;color:var(--muted);margin:9px 0}
.area-list{max-height:295px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;overscroll-behavior:contain}
.area-list label.choice{min-height:46px;padding:9px 11px;font-size:14px}
.area-list label.choice[hidden]{display:none!important}
.area-list label.choice:has(input:disabled){opacity:.48;cursor:not-allowed}
.area-selector input[type="search"]{width:100%;min-height:46px}

.google-login{padding-top:20px;border-top:1px solid var(--line);margin-top:22px}.google-login .btn{width:100%}.google-btn{font-weight:750}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:25px 0}
.gallery-face{position:relative;display:block;overflow:hidden;border-radius:16px;background:#e6eded;aspect-ratio:4/5;box-shadow:0 4px 16px rgba(0,0,0,.09)}
.gallery-face img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s}.gallery-monogram{display:grid;place-items:center;width:100%;height:100%;font-size:clamp(56px,8vw,105px);font-weight:750;color:#27566a;background:linear-gradient(145deg,#d8ece8,#edf4f7)}
.gallery-face:hover img{transform:scale(1.03)}
.gallery-cover{position:absolute;bottom:0;left:0;right:0;padding:26px 10px 13px;color:white;text-align:center;font-weight:700;font-size:13px;background:linear-gradient(transparent,rgba(0,0,0,.72))}
.gallery-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:28px auto}
@media(max-width:860px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.choice-grid,.area-list{grid-template-columns:1fr}label.choice{min-height:56px;padding:13px 12px}.area-selector{padding:12px}}@media(max-width:550px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-cover{font-size:12px}}

.mfa-setup{max-width:540px}
.mfa-qr{display:flex;justify-content:center;width:max-content;max-width:100%;padding:14px;margin:18px auto;background:#fff;border:1px solid var(--line);border-radius:14px}
.mfa-qr img{display:block;width:min(264px,70vw);height:auto;image-rendering:pixelated}
.mfa-manual{margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:12px}
.mfa-manual summary{cursor:pointer;font-weight:700}
.mfa-manual code{display:block;padding:10px;margin-top:8px;background:#f2f6f6}
@media(max-width:980px){.hero-grid{gap:18px}.cards-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:repeat(3,1fr)}.site-header nav{gap:10px}}
@media(max-width:700px){.shell{width:min(100% - 28px,1000px)}.header-inner{flex-wrap:wrap;align-items:flex-start;gap:12px;padding-block:14px;min-height:90px}.brand{font-size:24px}.brandmark{width:36px;height:36px}.site-header nav{width:100%;display:flex;gap:12px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding-bottom:4px}.site-header nav a{font-size:13px}
.hero-grid{grid-template-columns:1fr;padding-block:50px;gap:15px}.hero-copy h1{letter-spacing:-1.6px;font-size:42px}.hero-art{height:235px}.circle.one{width:250px;height:250px;right:15%}.circle.two{width:140px;height:140px;left:8%}.mockcard{width:200px;padding:12px;gap:7px;border-radius:18px}.person-placeholder{height:82px}.person-placeholder span{font-size:50px}.mocktext strong{font-size:16px}.mocktext small{font-size:10px}
.section{padding-block:38px}.three-col,.cards-grid,.split,.dashboard-grid,.foot-grid,.profile-detail{grid-template-columns:1fr}.split{gap:18px}.feature{padding:22px}.info-card{padding:25px}.profile-detail{gap:18px}.portrait{max-width:400px}.profile-bottom{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.form-card,.filters{padding:20px}.job-card{align-items:stretch;flex-direction:column}.job-card>.btn{width:max-content}
.family-avatar{width:52px;height:52px;min-width:52px;object-fit:cover;border-radius:50%;background:#e8edf2;border:1px solid #dce3ea;display:block}
.family-avatar-large{width:96px;height:96px;min-width:96px;margin:12px 0 18px}
.job-publisher{display:flex;align-items:center;gap:12px;margin:0 0 15px}
.job-publisher span{display:flex;flex-direction:column;gap:2px}
.job-publisher strong{font-size:14px;color:#25435a}
.job-publisher small{font-size:12px;color:#607789}
.metric-grid{grid-template-columns:repeat(2,1fr)}.admin-row{flex-direction:column;align-items:flex-start}.foot-grid{gap:14px}.footer{padding-top:30px}.cta{border-radius:0}.inbox-link{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important}}
