:root {
  --bg: #f4efe8;
  --paper: rgba(255,255,255,.76);
  --ink: #1d2421;
  --muted: #6f736e;
  --line: rgba(34,44,39,.12);
  --green: #345e50;
  --green-dark: #23453b;
  --gold: #b8894f;
  --shadow: 0 18px 50px rgba(47, 42, 35, .10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;min-height:100vh;overflow-x:hidden}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.ambient{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:-1;opacity:.45}
.ambient-one{width:420px;height:420px;background:#d8e0cf;top:-130px;right:-90px}
.ambient-two{width:500px;height:500px;background:#ead4bc;left:-210px;bottom:-180px}
.page-shell{width:min(1440px,calc(100% - 64px));margin:auto}
.gallery-page{padding:64px 0 88px}
.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;padding:12px 0 42px;border-bottom:1px solid var(--line)}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:800;color:var(--green);margin-bottom:12px}
.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(42px,5.1vw,78px);line-height:.98;letter-spacing:-.035em;margin:0;max-width:1000px;font-weight:600}
.hero h1 span{color:var(--green)}
.hero p{font-size:16px;color:var(--muted);max-width:660px;line-height:1.65;margin:24px 0 0}
.hero-stat{min-width:155px;text-align:right;padding-bottom:7px}
.hero-stat strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:52px;color:var(--gold);line-height:1}
.hero-stat span{display:block;font-size:12px;color:var(--muted);margin-top:8px}
.toolbar{display:grid;grid-template-columns:260px minmax(260px,420px) 1fr;gap:18px;align-items:end;padding:28px 0 30px}
.toolbar label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700;margin:0 0 7px 3px}
.select-wrap,.search-input-wrap{position:relative}
.select-wrap:after{content:"⌄";position:absolute;right:16px;top:50%;transform:translateY(-56%);pointer-events:none;color:var(--green)}
select,input[type="search"]{width:100%;height:48px;border:1px solid var(--line);background:rgba(255,255,255,.68);border-radius:14px;color:var(--ink);outline:none;transition:.2s}
select{appearance:none;padding:0 42px 0 15px}
input[type="search"]{padding:0 15px 0 43px}
select:focus,input:focus,textarea:focus{border-color:rgba(52,94,80,.45);box-shadow:0 0 0 4px rgba(52,94,80,.08)}
.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-54%);font-size:22px;color:var(--muted)}
.result-count{justify-self:end;color:var(--muted);font-size:13px;padding-bottom:14px}.result-count span{font-weight:800;color:var(--ink)}
.people-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 18px}
.person-card{display:block;min-width:0}.person-card[hidden]{display:none}
.portrait-wrap{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:#d9d1c7;box-shadow:0 8px 25px rgba(48,42,35,.08)}
.portrait-wrap img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(1.02);transition:transform .45s ease,filter .3s ease}
.portrait-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(19,36,30,.53),transparent 42%);opacity:0;transition:.3s}
.portrait-overlay{position:absolute;z-index:2;left:16px;right:16px;bottom:15px;display:flex;justify-content:space-between;align-items:center;color:#fff;font-size:12px;font-weight:700;opacity:0;transform:translateY(8px);transition:.3s}
.portrait-overlay b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:19px}
.person-card:hover .portrait-wrap img{transform:scale(1.035);filter:saturate(1)}
.person-card:hover .portrait-wrap:after,.person-card:hover .portrait-overlay{opacity:1}.person-card:hover .portrait-overlay{transform:none}
.person-info{padding:13px 4px 0}.person-info h2{font-family:Georgia,"Times New Roman",serif;font-size:19px;margin:0 0 4px;line-height:1.16;font-weight:700}.person-info p{font-size:12px;color:var(--muted);margin:0;line-height:1.4}
.empty-state{text-align:center;padding:90px 20px;color:var(--muted)}.empty-state div{font-family:Georgia,"Times New Roman",serif;font-size:30px;color:var(--ink)}

/* CHAT */
.chat-layout{min-height:100vh;display:grid;grid-template-columns:minmax(310px,34vw) 1fr;padding:24px;gap:24px;max-width:1600px;margin:auto;align-items:start}
.person-panel{position:sticky;top:24px;border-radius:28px;overflow:hidden;background:#294a40;height:calc(100vh - 48px);min-height:0;color:#fff;padding:26px;display:flex;flex-direction:column;align-self:start}
.person-panel:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.08);border-radius:50%;left:-160px;bottom:-130px;box-shadow:0 0 0 72px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.015)}
.back-link{position:relative;z-index:2;font-size:12px;color:rgba(255,255,255,.76);display:flex;align-items:center;gap:9px;width:max-content}.back-link span{font-size:18px}
.profile-card{position:relative;z-index:2;margin:auto 0 0}.profile-photo{width:min(100%,420px);aspect-ratio:4/5;margin:auto;border-radius:220px 220px 30px 30px;overflow:hidden;background:#b8aaa0;box-shadow:0 30px 60px rgba(0,0,0,.17)}
.profile-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.82)}
.profile-copy{margin:24px auto 0;width:min(100%,420px)}
.online-pill{display:inline-flex;align-items:center;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.74)}.online-pill i{width:7px;height:7px;border-radius:50%;background:#a9d77e;box-shadow:0 0 0 4px rgba(169,215,126,.12)}
.profile-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(33px,3vw,52px);line-height:1.02;margin:10px 0 7px}.profile-copy p{margin:0;color:rgba(255,255,255,.64);font-size:13px}
.about-dialog{position:relative;z-index:2;width:min(100%,420px);margin:34px auto 0;border-top:1px solid rgba(255,255,255,.15);padding:23px 0 6px;display:flex;gap:10px;color:rgba(255,255,255,.72)}.about-dialog p{font-family:Georgia,"Times New Roman",serif;font-style:italic;line-height:1.5;margin:0;font-size:14px}.quote-mark{font:40px/1 Georgia,serif;color:#cfaa78}
.chat-card{min-width:0;background:rgba(255,255,255,.67);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.75);border-radius:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 48px);min-height:0;align-self:start}
.chat-header{height:0}.mobile-person,.mobile-back{display:none}
.chat-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:48px clamp(24px,5vw,84px) 28px;scrollbar-width:thin;scrollbar-color:#c9c2b8 transparent;overscroll-behavior:contain;scroll-behavior:smooth}
.date-divider{text-align:center;margin-bottom:32px}.date-divider span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#9a968f;background:#f7f4ef;border-radius:20px;padding:7px 13px}
.message{display:flex;gap:11px;align-items:flex-end;margin:0 0 17px}.message-user{justify-content:flex-end}.message-avatar{width:34px;height:34px;border-radius:50%;flex:0 0 34px;overflow:hidden;background:#345e50;color:#fff;display:grid;place-items:center;font-size:13px}.message-avatar img{width:100%;height:100%;object-fit:cover}.mini-avatar{font-size:12px;background:#486b60}
.bubble{max-width:min(700px,78%);padding:13px 17px;border-radius:18px 18px 18px 5px;background:#fff;border:1px solid rgba(51,59,55,.08);box-shadow:0 6px 20px rgba(44,42,38,.045)}.bubble p{margin:0;font-size:14px;line-height:1.64}.message-user .bubble{background:var(--green);color:#fff;border-radius:18px 18px 5px 18px;border-color:transparent}.bubble-label{font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--gold);margin-bottom:6px}.bubble-meta{font-size:10px;opacity:.55;margin-top:7px}.typing{display:flex;gap:4px;padding:14px 16px}.typing i{width:6px;height:6px;background:#87928d;border-radius:50%;animation:blink 1s infinite alternate}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{to{opacity:.25;transform:translateY(-2px)}}
.composer-area{border-top:1px solid var(--line);padding:18px clamp(20px,4vw,58px) 16px;background:rgba(249,247,243,.87)}
.quick-actions{display:flex;gap:9px;margin-bottom:11px}.quick-btn{border:1px solid rgba(52,94,80,.18);background:#fff;color:var(--green);border-radius:999px;padding:8px 13px;font-size:11px;font-weight:800}.quick-btn span{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#edf2ef;margin-right:4px}.quick-btn:hover{background:#f0f5f2}.quick-btn:disabled{opacity:.45;cursor:default}
.composer-note{text-align:center;color:#aaa49c;font-size:9px;margin-top:10px}

.not-found{min-height:100vh;display:grid;place-content:center;text-align:center;padding:30px}.not-found h1{font-family:Georgia,"Times New Roman",serif;font-size:54px;margin:0}.not-found p{color:var(--muted)}.not-found a{background:var(--green);color:#fff;padding:12px 18px;border-radius:12px;margin:auto}

@media(max-width:1200px){.people-grid{grid-template-columns:repeat(4,1fr)}.chat-layout{grid-template-columns:320px 1fr}.person-panel{padding:22px}}
@media(max-width:900px){.page-shell{width:min(100% - 32px,720px)}.gallery-page{padding-top:38px}.hero{align-items:flex-start}.hero-stat{display:none}.toolbar{grid-template-columns:1fr 1fr}.result-count{grid-column:1/-1;justify-self:start;padding:0 3px}.people-grid{grid-template-columns:repeat(3,1fr);gap:22px 14px}.chat-layout{display:block;padding:0}.person-panel{display:none}.chat-card{height:100dvh;min-height:0;border-radius:0;border:0}.chat-header{height:auto;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.88);position:relative;z-index:3}.mobile-person{display:flex;align-items:center;gap:10px;min-width:0}.mobile-person img{width:43px;height:43px;border-radius:50%;object-fit:cover}.mobile-person div{min-width:0}.mobile-person strong,.mobile-person span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-person strong{font-family:Georgia,"Times New Roman",serif;font-size:16px}.mobile-person span{font-size:10px;color:var(--muted)}.mobile-back{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#f1eee8;font-size:21px}.chat-scroll{padding:26px 18px 22px}.composer-area{padding:12px 14px max(12px,env(safe-area-inset-bottom))}}
@media(max-width:620px){.page-shell{width:calc(100% - 24px)}.gallery-page{padding:26px 0 55px}.hero{padding-bottom:25px}.hero h1{font-size:39px;line-height:1.01}.hero p{font-size:13px;margin-top:16px}.toolbar{grid-template-columns:1fr;padding:20px 0 22px;gap:12px}.result-count{grid-column:auto}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 11px}.portrait-wrap{border-radius:15px}.person-info{padding-top:10px}.person-info h2{font-size:16px}.person-info p{font-size:10px}.portrait-overlay{display:none}.quick-actions{overflow-x:auto;scrollbar-width:none;padding-bottom:1px}.quick-btn{white-space:nowrap}.bubble{max-width:84%;padding:11px 13px}.bubble p{font-size:13px}.message-avatar{width:30px;height:30px;flex-basis:30px}.composer-note{display:none}}
@media(max-width:380px){.hero h1{font-size:34px}.people-grid{grid-template-columns:1fr 1fr}.person-info h2{font-size:15px}}

.actions-only-area{padding-top:22px;padding-bottom:22px}
.quick-actions-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 auto;max-width:620px}
.quick-actions-main .quick-btn{min-height:58px;border-radius:16px;font-size:13px;padding:12px 18px;box-shadow:0 7px 24px rgba(35,40,37,.05)}
.quick-actions-main .quick-btn span{width:26px;height:26px}
.lazy-person-image{background:#e9e5de}
.lazy-person-image.is-loading{opacity:.72}
.lazy-person-image.is-loaded{opacity:1}
@media(max-width:620px){.quick-actions-main{grid-template-columns:1fr;gap:9px}.quick-actions-main .quick-btn{min-height:52px}}


/* LANGUAGE SWITCH */
.language-switch{
  position:fixed;
  top:18px;
  right:20px;
  z-index:80;
  display:flex;
  gap:3px;
  padding:4px;
  border:1px solid rgba(34,44,39,.12);
  border-radius:999px;
  background:rgba(255,255,255,.86);
  box-shadow:0 8px 24px rgba(47,42,35,.10);
  backdrop-filter:blur(12px);
}
.language-switch a{
  min-width:40px;
  height:32px;
  padding:0 9px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.07em;
  transition:.18s ease;
}
.language-switch a:hover{color:var(--green);background:rgba(52,94,80,.07)}
.language-switch a.active{background:var(--green);color:#fff}
@media(max-width:900px){
  .language-switch{top:10px;right:64px}
  .gallery-page .hero{padding-top:35px}
}
@media(max-width:620px){
  .language-switch{top:8px;right:58px;padding:3px}
  .language-switch a{min-width:34px;height:30px;padding:0 7px;font-size:10px}
  .gallery-page .hero{padding-top:40px}
}
