:root{--ink:#25372b;--green:#416d4d;--paper:#f4f2e8;--card:#fffefa;--line:#e4e7dc;--pink:#e98369;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;min-height:100vh;background:var(--paper);background-image:radial-gradient(#8d9c7318 .8px,transparent .8px);background-size:8px 8px;color:var(--ink);font-family:var(--sans)}
button,input,textarea,select{font:inherit}
.topbar{height:76px;padding:0 clamp(16px,6vw,120px);border-bottom:1px solid #dfe3d6;background:#f8f7f0ee;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:2}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:21px;font-weight:700;letter-spacing:-1px}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green);font-size:18px}
nav{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}
nav button{border:0;background:transparent;color:#728070;padding:9px 10px;cursor:pointer;font-size:12px;white-space:nowrap}
nav button.active{color:var(--green);font-weight:700;box-shadow:inset 0 -2px var(--green)}
.badge{background:var(--pink);color:#fff;border-radius:10px;padding:1px 5px;font-size:9px;margin-left:3px}
#hud{font-size:11px;color:var(--green);font-weight:700;white-space:nowrap}
.eyebrow{margin:0;font-size:9px;letter-spacing:.17em;font-weight:700;color:#8a967f}
.serif{font-family:var(--serif)}
.auth-shell{min-height:calc(100vh - 76px);width:min(960px,90vw);margin:auto;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;padding:30px 0}
.auth-intro h1,.view-heading h1{font:500 clamp(40px,5vw,62px)/1.08 var(--serif);letter-spacing:-2px;margin:20px 0 16px}
.auth-intro h1 em,.view-heading em{color:var(--green);font-weight:500}
.auth-intro>p:not(.eyebrow){max-width:350px;color:#778275;line-height:1.8;font-size:14px}
.flower-field{font-size:30px;letter-spacing:3px;margin-top:30px;filter:drop-shadow(0 7px 6px #4b674326)}
.auth-card,.edit-card,.rcard{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:25px;box-shadow:0 15px 45px #31422a0d}
.auth-tabs{display:flex;gap:17px;border-bottom:1px solid var(--line);margin-bottom:20px}
.tab{padding:0 0 12px;border:0;background:none;color:#8d9688;cursor:pointer;font-size:12px}.tab.active{color:var(--green);border-bottom:2px solid var(--green);font-weight:700}
form{display:grid;gap:13px}
label,.lbl{display:grid;gap:6px;font-size:10px;letter-spacing:.05em;color:#687564;font-weight:700}
label.check{display:flex;gap:9px;font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.5;align-items:flex-start}label.check input{width:auto;margin-top:3px}
input,textarea,select{width:100%;border:1px solid #dfe4d8;border-radius:4px;padding:10px 11px;background:#fffefa;color:var(--ink);font-size:13px;font-weight:400;letter-spacing:normal;outline-color:#91ab84}
textarea{min-height:76px;resize:vertical}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.primary{border:0;background:var(--green);color:#fff;border-radius:4px;padding:12px 15px;font-size:11px;font-weight:700;cursor:pointer;transition:.2s}
.primary:hover{background:#31563c;transform:translateY(-1px)}
.ghost{border:1px solid #cbd8c2;background:#f8faf3;color:var(--green);border-radius:4px;padding:10px 13px;font-size:11px;font-weight:700;cursor:pointer}
.form-error{min-height:15px;color:#b55844;font-size:11px;margin:10px 0 0}.success{margin:0;color:var(--green);font-size:11px}
.chip{display:inline-block;border:1px solid #dfe4d8;background:#eef1e6;color:#637159;border-radius:20px;padding:6px 11px;margin:3px 3px 0 0;font-size:11px;cursor:pointer;user-select:none}
.chip.on{background:var(--green);border-color:var(--green);color:#fff}
.app-shell,main>.view-heading,main>section:not(.auth-shell),main>div{width:min(820px,91vw);margin-left:auto;margin-right:auto}
main{padding-bottom:50px}main>.view-heading{margin-top:44px;margin-bottom:24px}
.view-heading h1{font-size:43px;margin:9px 0}.view-heading>p:last-child{max-width:520px;font:italic 15px/1.6 var(--serif);color:#768174}
.profile-card{width:min(540px,100%)!important;margin-left:0!important;background:var(--card);border:1px solid var(--line);border-radius:9px;overflow:hidden;box-shadow:0 16px 50px #31422a0d;touch-action:pan-y;user-select:none}
.profile-art{height:260px;position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#fff8dbaa 0,transparent 41%),linear-gradient(135deg,var(--c1),var(--c2))}
.profile-art:before,.profile-art:after{content:'';position:absolute;border:1px solid #fff9;border-radius:50%;width:230px;height:230px}.profile-art:after{width:300px;height:300px;border-color:#fff6}
.profile-art>span:first-child{z-index:1;font-size:105px;filter:drop-shadow(0 15px 12px #45653724);animation:bob 4s ease-in-out infinite}
.profile-art>span:last-child{position:absolute;left:22px;bottom:18px;font-size:8px;letter-spacing:.16em;font-weight:700;color:#667954}
.profile-info{padding:22px 24px 16px}.name-line{display:flex;justify-content:space-between;align-items:start}
.name-line h2{font:600 29px var(--serif);margin:0 0 4px;letter-spacing:-.6px}.name-line p,.location{margin:0;color:#858f80;font-size:11px}.location{padding-top:8px}
.bio{font:italic 14px/1.55 var(--serif);color:#687465;margin:17px 0 13px}
.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:10px;color:#637159;background:#eef1e6;padding:6px 10px;border-radius:20px}
.actions{height:67px;border-top:1px solid #eff0e8;margin-top:19px;display:flex;align-items:center;gap:9px;color:#9ba394;font-size:8px;letter-spacing:.12em;font-weight:700}
.action{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;border:1px solid #e6e9df;background:#fff;font-size:25px;cursor:pointer;transition:.2s}
.action:hover{transform:translateY(-3px);box-shadow:0 6px 14px #32442920}.pass{color:#ba806e}.like{background:#e6eddc;border-color:#e6eddc;color:var(--green);margin-left:12px}
.empty-state{width:min(540px,100%)!important;margin-left:0!important;padding:44px 28px;text-align:center;background:#fbfaf4;border:1px dashed #d9e0d0;border-radius:8px;color:#778274}
.empty-state>span{font-size:39px}.empty-state h2{font:600 24px var(--serif);margin:10px 0 5px;color:var(--ink)}.empty-state p{font-size:12px;line-height:1.7;margin:0 auto 12px;max-width:340px}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.place{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:18px 10px;text-align:center;cursor:pointer;display:grid;gap:4px;transition:.2s;color:var(--ink)}
.place:hover{transform:translateY(-3px);box-shadow:0 8px 18px #32442918}.place span{font-size:34px}.place b{font:600 16px var(--serif)}.place small{color:#84907f;font-size:10px}
.sub{font:600 20px var(--serif);margin:28px 0 10px}
.bal{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}
.balloon{width:94px;height:114px;border-radius:50% 50% 48% 48%;display:grid;place-items:center;align-content:center;cursor:pointer;color:#25372b;font-size:12px;font-weight:700;border:0;transition:transform .25s,opacity .25s;box-shadow:inset -8px -10px 0 #0000001a}
.balloon span{font-size:34px}.balloon.pop{transform:scale(1.6);opacity:0}
.rcard{width:min(540px,100%)!important;margin-left:0!important;margin-bottom:14px;text-align:center}
.rcard h2{font:600 22px var(--serif);margin:6px 0 2px}.rcard p{margin:0;color:#84907f;font-size:11px}.slot{margin-top:14px;font-size:13px;line-height:1.6;color:#687564}.slot .big{font-size:40px}
.photo{width:100%;max-width:260px;border-radius:12px;border:1px solid var(--line);margin-bottom:10px}
.mask{display:grid;place-items:center;border-radius:50%;margin:0 auto 6px;background:linear-gradient(135deg,var(--c1),var(--c2))}
.matches-list{display:grid;gap:10px;width:min(620px,91vw)}
.match-row{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:13px 15px;display:flex;gap:13px;align-items:center}
.match-row .mask{margin:0;flex:0 0 auto}.match-info{flex:1}.match-info h2{font:600 18px var(--serif);margin:0}.match-info p{margin:3px 0 0;color:#84907f;font-size:10px}
.match-row .ghost{padding:8px 10px;font-size:10px}
.modal-backdrop{position:fixed;inset:0;z-index:5;background:#1d2b2180;display:grid;place-items:center;padding:20px}
.chat-modal{background:var(--card);width:min(520px,100%);height:min(650px,88vh);display:flex;flex-direction:column;border-radius:9px;overflow:hidden;box-shadow:0 20px 80px #18241744}
.chat-modal header{padding:19px 21px 12px;display:flex;justify-content:space-between;align-items:start}.chat-modal h2{font:600 23px var(--serif);margin:4px 0 0}
.close{border:0;background:transparent;color:#859080;font-size:26px;cursor:pointer}
.safe{margin:0;padding:8px 21px 12px;font-size:10px;color:#8a7a55;background:#fbf6e6;border-bottom:1px solid var(--line)}
.messages{flex:1;overflow:auto;padding:19px;display:flex;flex-direction:column;gap:8px;background:#f8f8f1}
.message{max-width:76%;padding:9px 11px;border-radius:10px 10px 10px 2px;background:#fff;border:1px solid #ebede4;font-size:13px;line-height:1.45;word-wrap:break-word}
.message.mine{align-self:end;background:#e4edd9;border-color:#e4edd9;border-radius:10px 10px 2px 10px}
.message time{display:block;font-size:8px;color:#90998d;margin-top:4px}.message-empty{text-align:center;color:#899383;font:italic 13px var(--serif);margin:auto}
.message-form{grid-template-columns:1fr auto;gap:7px;padding:12px;border-top:1px solid var(--line)}.message-form input{min-width:0}
.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#294633;color:#fff;border-radius:5px;padding:10px 14px;font-size:12px;transition:.25s;z-index:9;max-width:90vw}
.toast.show{transform:translate(-50%,0);opacity:1}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
@media(max-width:650px){.topbar{height:auto;flex-wrap:wrap;padding:10px 16px;gap:4px}nav{order:3;width:100%}#hud{font-size:10px}
.auth-shell{grid-template-columns:1fr;gap:26px;padding:28px 0}.auth-intro h1{font-size:40px;margin:12px 0}.view-heading h1{font-size:36px}
.profile-art{height:220px}.profile-art>span:first-child{font-size:88px}.name-line h2{font-size:25px}.like{margin-left:4px}.actions span{font-size:7px}.chat-modal{height:82vh}}

.rcard.left{text-align:left}.rcard.left h2{margin-top:0}.rcard.left p{font-size:13px;line-height:1.6;color:#687564;margin:6px 0}
.primary:disabled{background:#b9c4b4;cursor:default;transform:none}.ghost:disabled{opacity:.5;cursor:default}
.answers{display:grid;gap:8px;margin:12px 0}.answers .ghost{text-align:left;padding:12px 14px;font-size:12px}
.place.dim{opacity:.55}.place.done{background:#e6eddc;border-color:#cbd8c2}
.stack>*{margin-bottom:14px}.stack{width:min(540px,100%)}

.garden-card{display:flex;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:20px 22px;box-shadow:0 15px 45px #31422a0d}
.garden-card .mask{margin:0;flex:0 0 auto}.garden-card h2{font:600 22px var(--serif);margin:0}.garden-card p{margin:4px 0 0;color:#84907f;font-size:12px}
.garden-card .flower-field{margin:8px 0 0;font-size:22px;letter-spacing:2px}.notice{background:#fbf6e6;border:1px solid #efe3b8;color:#8a7a55;border-radius:7px;padding:10px 14px;font-size:12px;margin-top:12px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:14px 8px;text-align:center}.stat span{font-size:26px}
.stat b{display:block;font:600 24px var(--serif);margin-top:2px}.stat small{color:#84907f;font-size:9px;letter-spacing:.1em;font-weight:700}
.todo{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;border-top:1px solid var(--line);padding:12px 2px;font-size:13px;color:var(--ink);cursor:pointer;text-align:left}
.todo.first{border-top:0}.todo.ok{color:#8d9688}.todo .go{margin-left:auto;color:var(--green);font-size:18px}
.tiles{margin-top:6px}.place small{min-height:12px}
@media(max-width:650px){.stats{grid-template-columns:1fr 1fr}.garden-card{flex-direction:column;text-align:center}}

main>.dash{width:min(1240px,94vw);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.5fr) minmax(0,.95fr);gap:38px;margin:40px auto;align-items:start}
.dash h1{font:500 clamp(40px,4.4vw,60px)/1.06 var(--serif);letter-spacing:-2px;margin:18px 0 14px}.dash h1 em{color:var(--green);font-weight:500}
.dash-left>p:not(.eyebrow){color:#778275;line-height:1.8;font-size:14px;max-width:300px}.dash-mid h2.hello{font:600 28px var(--serif);margin:6px 0 4px;letter-spacing:-.5px}.dash .rcard{width:100%!important;margin-left:0!important}
.members{display:flex;align-items:center;gap:10px;font-size:12px;color:#637159;margin-top:26px}.members .chips{background:#fff;border:1px solid var(--line);border-radius:20px;padding:5px 9px;letter-spacing:2px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:20px;margin-bottom:16px;box-shadow:0 15px 45px #31422a0d}
.side-card h3{font:600 20px var(--serif);margin:8px 0 4px}.side-card p{margin:4px 0;font-size:12px;color:#84907f;line-height:1.6}
.note-card{background:#e6eddc;border-color:#d6e2c8}.quote{font:italic 17px/1.5 var(--serif)!important;color:#3d5a43!important;margin:12px 0!important}.note-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}
.fine{font-size:10px;color:#8d9688;line-height:1.6;padding:0 4px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b5bcae;margin-left:7px;vertical-align:middle}.dot.on{background:#3fb86b;box-shadow:0 0 0 3px #3fb86b2b}
.tip{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#fbf6e6;border:1px solid #efe3b8;color:#7d6e48;border-radius:7px;padding:9px 14px;font-size:12px;margin-top:20px!important;margin-bottom:-10px}
.tip button{border:0;background:none;color:#a99a70;font-size:18px;cursor:pointer}nav .quiet{border-left:1px solid #d9dfd1;margin-left:6px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:7px;padding:13px 16px;margin-bottom:8px}.faq summary{cursor:pointer;font-weight:700;font-size:13px}
.faq details p{font-size:13px;line-height:1.7;color:#687564;margin:10px 0 2px}.faq a{color:var(--green)}.auth-intro .members{margin-top:18px}
@media(max-width:900px){main>.dash{grid-template-columns:1fr;gap:20px;margin:24px auto}.dash-left>p:not(.eyebrow){max-width:none}}
.lobby{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:12px 0}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 8px;text-align:center;cursor:pointer;display:grid;gap:3px;justify-items:center;transition:.2s;color:var(--ink)}
.tile:hover{transform:translateY(-3px);box-shadow:0 8px 18px #32442918}.tile b{font:600 15px var(--serif)}.tile small{font-size:10px;color:#6b7a66;font-weight:700}.tile em{font:italic 11px/1.4 var(--serif);color:#84907f;min-height:30px}
.tile.dim{opacity:.55}.tile.burst{animation:burst .38s forwards}@keyframes burst{to{transform:scale(1.5);opacity:0}}
.filters{display:flex;flex-wrap:wrap;gap:2px;margin:6px 0}.slots{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;margin-bottom:10px}
.pill{background:#eef1e6;border-radius:20px;padding:5px 10px;font-size:11px}.pill.free{background:#fff;border:1px dashed #cbd8c2;color:#8d9688}
.pcard{width:min(460px,100%)!important;margin:0!important}.card-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid #eff0e8;margin-top:16px}
.bar{height:7px;background:#e6eddc;border-radius:4px;overflow:hidden;margin:10px 0 6px}.bar>i{display:block;height:100%;background:var(--green)}
.answer.chosen{background:var(--green);color:#fff;border-color:var(--green)}.prz.off{opacity:.55}.cpl{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.chk{margin:3px 0!important;font-size:12px}.match-info .bar{max-width:220px}
.cv{width:100%;max-width:480px;border-radius:10px;display:block;margin:8px 0;touch-action:manipulation}
.rv{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:13px;line-height:1.55}
.rv details summary{cursor:pointer;color:var(--green);font-weight:700;margin-top:6px}

.brand img{height:52px;width:auto;mix-blend-mode:multiply;display:block}.auth-logo{width:min(230px,60%);height:auto;mix-blend-mode:multiply;display:block;margin-bottom:6px}
.tagline-desc{color:#778275;line-height:1.8;font-size:14px;max-width:340px}
@media(max-width:650px){.brand img{height:42px}}
