:root{color-scheme:light;--app-vh: 1vh;--keyboard-offset: 0px;--rb-header-h: 64px;--rb-radius-lg: 18px;--rb-radius-md: 12px;--rb-border: rgba(120, 85, 60, .18);--rb-text: rgba(55, 40, 30, .92);--rb-bg-glass-2: rgba(255, 255, 255, .55);--rb-shadow: 0 22px 60px rgba(40, 25, 15, .22);--rb-header-content-gap: 10px;--bg0: #fff8f3;--bg1: #ffefdf;--surface: #ffffff;--text: #35231c;--muted: #6f5650;--border: #edd7c8;--brand: #f58b63;--brand-strong: #de6e45;--error: #b33f26;--rb-glass-bg: rgba(255, 255, 255, .55);--rb-primary-bg: rgba(255, 250, 242, .9);--rb-primary-text: #2f241c;--rb-primary-border: rgba(120, 85, 60, .22);--rb-secondary-bg: rgba(255, 255, 255, .35);--rb-secondary-border: rgba(120, 85, 60, .18)}*,*:before,*:after{box-sizing:border-box}html{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(176,137,104,.35) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#b0896859;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6a554880}html,body{min-width:320px;max-width:100%;overflow-x:hidden}@media screen and (max-width: 700px){html{scrollbar-gutter:auto}html,body{min-width:0}}button,a[href],input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{min-height:44px}.audio-toggle,.journal-back,.journal-avatar,.home-intro-close,.home-zen-btn,.home-zen-exit,.flower-btn,.flower-btn-icon,.pet-action-btn,.gallery-close,.gallery-lightbox-close,.lightbox-close,.offboarding-close,.goodbye-close,.dash-notif-toggle,.dash-notif-close,.dash-pet-action,.dash-edit-btn,.welcome-pet-delete,.welcome-pet-edit,.fpv-exit-btn,.header-menu-toggle,.site-admin-sidebar-toggle,.credits-modal-close,.pet-popup-close,.garden-close-btn{min-height:unset!important}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);right:0;padding:4px 10px;background:#3e2f23e6;color:#fff;font-size:.72rem;font-weight:500;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:100}[data-tooltip]:hover:after{opacity:1}[data-tooltip].welcome-pet-delete:after,[data-tooltip].home-zen-btn:after,[data-tooltip].flower-btn:after{right:auto;left:0}@media (prefers-reduced-motion: reduce){[data-tooltip]:after{transition:none}}input,textarea,select{font-size:max(16px,1rem)}button,[role=button]{transition:transform .12s ease,box-shadow .12s ease,background .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease}button:active:not(:disabled),[role=button]:active:not(:disabled){transform:scale(.97)}a{transition:color .15s ease,opacity .15s ease}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),textarea,select{transition:border-color .15s ease,box-shadow .15s ease}[class*=-card],[class*=-panel]{transition:border-color .15s ease,box-shadow .2s ease,transform .2s ease}[class*=-card]:hover,[class*=-panel]:hover{transform:translateY(-1px)}[class*=-badge],[class*=-pill],[class*=-tag]{transition:background .15s ease,color .15s ease,transform .15s ease}[class*=-nav-item],[class*=-tab]{transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}[class*=-overlay],[class*=-backdrop]{animation:rb-fade-in .2s ease}[class*=-modal],[class*=-dialog],[role=dialog]{animation:rb-slide-up .25s ease}.rb-toast{animation:rb-toast-in .3s ease}[class*=-dropdown],[class*=-menu-panel]{animation:rb-fade-scale-in .15s ease}@keyframes rb-fade-in{0%{opacity:0}to{opacity:1}}@keyframes rb-slide-up{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes rb-toast-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes rb-fade-scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.rb-ripple{position:relative;overflow:hidden}.rb-ripple:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at var(--rb-ripple-x, 50%) var(--rb-ripple-y, 50%),rgba(176,137,104,.2),transparent 60%);opacity:0;transition:opacity .3s ease;pointer-events:none}.rb-ripple:active:after{opacity:1;transition:opacity .05s ease}@media (prefers-reduced-motion: reduce){button,[role=button],a,[class*=-card],[class*=-panel],[class*=-badge],[class*=-pill],[class*=-tag],[class*=-nav-item],[class*=-tab],input,textarea,select{transition:none!important}button:active:not(:disabled),[role=button]:active:not(:disabled){transform:none!important}[class*=-card]:hover,[class*=-panel]:hover{transform:none!important}[class*=-overlay],[class*=-backdrop],[class*=-modal],[class*=-dialog],[role=dialog],.rb-toast,[class*=-dropdown],[class*=-menu-panel]{animation:none!important}}.sr-only{position:absolute;width:1px!important;max-width:1px!important;height:1px!important;max-height:1px!important;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:.75rem;z-index:120;padding:.55rem .75rem;border-radius:10px;border:1px solid #d8b9a5;background:#fffaf5;color:#4d3128;text-decoration:none;font-size:.84rem;font-weight:700;box-shadow:0 12px 24px #2a1c1629;outline:none}.skip-link:focus{top:-100px}.skip-link:focus-visible{top:.75rem;outline:2px solid #c8a078;outline-offset:2px}body{--page-padding: 1.1rem;margin:0;min-height:100dvh;min-height:calc(var(--app-vh, 1vh) * 100);font-family:Avenir Next,Segoe UI,system-ui,-apple-system,sans-serif;color:var(--text);background:radial-gradient(circle at 8% 8%,#ffe5d5 0%,transparent 26%),radial-gradient(circle at 92% 10%,#ffd9e5 0%,transparent 22%),linear-gradient(180deg,var(--bg0) 0%,var(--bg1) 100%);background-color:var(--bg0);padding:0}:where(h1,h2,h3,h4,h5,h6){text-wrap:balance}html.world-mode-active,body.world-mode-active{overflow:hidden;height:100%}body.world-mode-active{padding:0;overscroll-behavior:none}body.header-menu-open{overflow:hidden}body.world-mode-active #app{max-width:none;margin:0}#app{width:100%;min-height:100dvh;min-height:calc(var(--app-vh, 1vh) * 100)}.app-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:80;padding-top:env(safe-area-inset-top);overflow:visible;isolation:isolate;border-bottom:none;box-shadow:0 2px 8px #1e120c0a}.app-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#ffffffa8,#ffffff75);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.app-header-inner{max-width:1100px;margin:0 auto;min-height:var(--rb-header-h);display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.header-logo{display:flex;align-items:center;min-width:0;overflow:visible;line-height:0}.rb-logo-link{display:inline-flex;align-items:center;text-decoration:none}.rb-logo-link.is-home{cursor:default}.rb-logo-link:not(.is-home){cursor:pointer}.rb-logo-stack{position:relative;display:inline-flex;align-items:center;line-height:0}.rb-logo-base{position:relative;z-index:1}.rb-logo-rainbow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;clip-path:inset(8% 46% 52% 12%);transform:translateY(0);opacity:1;transition:transform .22s ease-out,opacity .22s ease-out;will-change:transform}@keyframes rb-rainbow-wave{0%{transform:translateY(0)}25%{transform:translateY(-2px)}50%{transform:translateY(0)}75%{transform:translateY(2px)}to{transform:translateY(0)}}@media (hover: hover) and (pointer: fine){.rb-logo-link:hover .rb-logo-rainbow,.rb-logo-link:focus-visible .rb-logo-rainbow{animation:rb-rainbow-wave 1.1s ease-in-out infinite}}@media (prefers-reduced-motion: reduce){.rb-logo-rainbow{animation:none!important;transform:translateY(0)!important;transition:none!important}}.app-header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.header-menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:36px;border-radius:10px;background:#ffffff73;border:1px solid rgba(120,85,60,.16);color:var(--rb-primary-text);cursor:pointer;transition:background .15s ease;padding:0}.header-menu-toggle:hover{background:#ffffffa6}.header-menu-toggle[aria-expanded=true]{background:#ffffffb3}.header-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;z-index:199}.header-menu-backdrop[hidden]{display:none}.header-menu-panel{position:fixed;top:var(--rb-header-h);right:max(8px,env(safe-area-inset-right));background:#f6efe9f7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(200,160,120,.25);border-top:none;border-radius:0 0 12px 12px;box-shadow:0 6px 20px #1e120c1f;min-width:210px;z-index:200;padding:6px 0;display:flex;flex-direction:column}.header-menu-panel[hidden]{display:none}.header-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 18px;border:none;background:transparent;color:#3e2f23;font-family:Inter,system-ui,sans-serif;font-size:.9rem;font-weight:500;text-align:left;cursor:pointer;transition:background .12s ease}.header-menu-item:hover,.header-menu-item:focus-visible{background:#c8a07824}.header-menu-item:focus-visible{outline:2px solid rgba(120,85,60,.4);outline-offset:-2px}.header-menu-item svg{flex-shrink:0;opacity:.7}@media (max-width: 700px){.header-menu-backdrop{background:#f6efe9fa;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.header-menu-panel{top:0;right:0;bottom:0;left:0;width:100%;height:100dvh;min-width:0;border:0;border-radius:0;box-shadow:none;background:transparent;padding:calc(var(--rb-header-h) + env(safe-area-inset-top) + 1.25rem) max(1.25rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));justify-content:center;gap:.5rem;overflow-y:auto}.header-menu-item{width:min(100%,420px);min-height:54px;margin:0 auto;padding:.85rem 1rem;border-radius:14px;background:#ffffff94;font-size:1rem}.header-menu-toggle{position:relative;z-index:201}}.coffee-link{display:flex;align-items:center;justify-content:center;color:#53372de6;text-decoration:none;line-height:0}.coffee-link svg{width:18px;height:18px}.coffee-fab{position:fixed;left:max(.72rem,env(safe-area-inset-left));bottom:max(.72rem,env(safe-area-inset-bottom));right:auto;top:auto!important;z-index:60;width:44px;height:44px;border-radius:999px;display:grid;place-items:center;background:#fffcf8e0;border:1px solid rgba(220,186,164,.92);box-shadow:0 8px 18px #39231d1f;cursor:pointer;transition:box-shadow .3s ease,transform .2s ease;overflow:visible}.coffee-fab:before,.coffee-fab:after{content:"";position:absolute;left:50%;width:3px;border-radius:2px;background:#8c6e5a8c;opacity:0;pointer-events:none}.coffee-fab:before{top:-12px;height:10px;transform:translate(-5px)}.coffee-fab:after{top:-14px;height:10px;transform:translate(3px)}.coffee-fab:hover:before,.coffee-fab:focus-visible:before{opacity:1;animation:coffee-steam-1 1.4s ease-in-out infinite}.coffee-fab:hover:after,.coffee-fab:focus-visible:after{opacity:1;animation:coffee-steam-2 1.4s ease-in-out .3s infinite}@keyframes coffee-steam-1{0%{transform:translate(-4px) translateY(0) scaleY(1);opacity:0}20%{opacity:.6}60%{opacity:.3}to{transform:translate(-5px) translateY(-10px) scaleY(1.3);opacity:0}}@keyframes coffee-steam-2{0%{transform:translate(2px) translateY(0) scaleY(1);opacity:0}20%{opacity:.5}60%{opacity:.25}to{transform:translate(3px) translateY(-10px) scaleY(1.3);opacity:0}}@keyframes coffee-glow{0%{box-shadow:0 8px 18px #39231d1f,0 0 #f58b6366}70%{box-shadow:0 8px 18px #39231d1f,0 0 14px 7px #f58b6300}to{box-shadow:0 8px 18px #39231d1f,0 0 #f58b6300}}.coffee-fab:hover,.coffee-fab:focus-visible{transform:translateY(-2px);box-shadow:0 10px 24px #39231d2e,0 0 16px 4px #f58b634d;animation:coffee-glow 1.5s ease-in-out infinite}.coffee-fab:focus-visible{outline:2px solid rgba(245,139,99,.75);outline-offset:2px}@media (prefers-reduced-motion: reduce){.coffee-fab:hover,.coffee-fab:focus-visible{animation:none}.coffee-fab:hover:before,.coffee-fab:hover:after,.coffee-fab:focus-visible:before,.coffee-fab:focus-visible:after{animation:none;opacity:.4;transform:translate(-4px) translateY(-5px)}.coffee-fab:focus-visible:after{transform:translate(2px) translateY(-6px)}}.site-logo{display:block;height:48px;width:auto;max-width:min(88vw,560px);object-fit:contain;image-rendering:-webkit-optimize-contrast;overflow:visible;flex-shrink:0}.world-mode-active .app-header{display:none}.app-main-region{min-width:0;width:min(100%,1100px);margin:0 auto;padding-top:calc(var(--rb-header-h) + var(--rb-header-content-gap) + env(safe-area-inset-top));padding-left:max(var(--page-padding),env(safe-area-inset-left));padding-right:max(var(--page-padding),env(safe-area-inset-right))}.pageRoot{padding-bottom:max(var(--page-padding),env(safe-area-inset-bottom))}@media (max-width: 700px){:root{--rb-header-h: 58px;--rb-header-content-gap: 8px}.app-header-inner{gap:.5rem;align-items:center;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.app-header-actions{margin-left:auto;min-width:44px}.site-logo{height:40px;max-width:min(84vw,420px)}.rb-logo-rainbow{clip-path:inset(8% 44% 50% 11%)}}#app.app-with-footer{min-height:calc(var(--app-vh, 1vh) * 100);display:flex;flex-direction:column}#app.app-with-footer>.app-main-region{flex:1 1 auto;display:flex;flex-direction:column}#app.app-with-footer .app-main-content{flex:1 0 auto}.toast-container{position:fixed;right:calc(52px + max(.72rem,env(safe-area-inset-right)));bottom:calc(max(.72rem,env(safe-area-inset-bottom)) + 12px);z-index:59;pointer-events:none}.toast{font-size:.78rem;font-weight:500;color:#9b8a7c;opacity:0;transition:opacity .25s ease;pointer-events:none;white-space:nowrap}.toast.visible{opacity:1}.sync-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:1500}.sync-card{background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:20px;padding:20px 28px;box-shadow:0 20px 40px #00000014;font-size:1rem;color:#6b5a4a;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease}.sync-card.visible{opacity:1;transform:translateY(0)}.site-footer{margin-top:auto;width:min(100%,1100px);margin-left:auto;margin-right:auto;padding:12px max(var(--page-padding),env(safe-area-inset-left));display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:0 9px;font-size:12px;line-height:1.6;color:#46372db8;text-align:center}.site-footer-sep{opacity:.45}@media (max-width: 520px){.site-footer{font-size:10px;gap:0 5px;flex-wrap:nowrap;white-space:nowrap;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(54px,calc(env(safe-area-inset-right) + 54px))}.site-footer .site-footer-dedication,.site-footer .site-footer-dedication+.site-footer-sep{display:none}.site-footer .site-footer-powered-prefix{display:none}}@media (max-width: 359px){.site-footer a.site-footer-powered[href],.site-footer .site-footer-sep-powered{display:none}}.site-footer-link,.site-footer a{color:#46372dc7;text-decoration:none;border-bottom:1px dashed rgba(70,55,45,.35);padding-bottom:.5px;transition:color .15s ease,border-bottom-color .15s ease}.site-footer-link{display:inline;background:none;border-top:none;border-left:none;border-right:none;padding:0 0 .5px;margin:0;font:inherit;line-height:inherit;vertical-align:baseline;cursor:pointer;min-height:0;border-bottom:1px dashed rgba(70,55,45,.35);color:#46372dc7}a.site-footer-link[href]{text-decoration:none;min-height:0;display:inline}.site-footer-link:hover,.site-footer a:hover{color:#37281e;border-bottom-color:#37281e8c}.route-home>.site-footer{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:40;width:auto;max-width:94vw;margin:0;padding:7px 16px;border-radius:14px;background:#1e140e8c;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff8f0e0;font-size:11.5px;flex-wrap:nowrap;white-space:nowrap}.route-home>.site-footer .site-footer-sep{opacity:.45}.route-home>.site-footer .site-footer-link,.route-home>.site-footer a{color:#fff8f0d1;border-bottom-color:#fff8f059}.route-home>.site-footer .site-footer-link:hover,.route-home>.site-footer a:hover{color:#fff;border-bottom-color:#fff9}body .audio-toggle{position:fixed;right:max(.72rem,env(safe-area-inset-right));bottom:max(.72rem,env(safe-area-inset-bottom));top:auto!important;left:auto;z-index:60;width:44px;height:44px;padding:0;border-radius:999px;display:grid;place-items:center;line-height:1;touch-action:manipulation}.audio-toggle svg{width:16px;height:16px;display:block;fill:currentColor}.audio-toggle-page{border:1px solid rgba(220,186,164,.92);background:#fffcf8e0;color:#53372de6;box-shadow:0 8px 18px #39231d1f}.audio-toggle-onboarding{right:max(.72rem,env(safe-area-inset-right));bottom:calc(max(.72rem,env(safe-area-inset-bottom)) + var(--keyboard-offset, 0px))}.audio-toggle.is-muted{opacity:.82}.audio-toggle:focus-visible{outline:2px solid rgba(245,139,99,.75);outline-offset:2px}.credits-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0 1rem;background:#1a13101a}.credits-modal[hidden]{display:none}.credits-modal-card{width:min(92vw,420px);min-width:min(260px,92vw);overflow:hidden;border:1px solid #e7d2c4;border-radius:10px;background:#fffbf7fa;box-shadow:0 6px 20px #24171321;padding:.85rem 1rem .8rem;position:relative;margin-bottom:var(--modal-bottom, 52px)}.credits-modal-card:after{content:"";position:absolute;bottom:-6px;left:var(--caret-x, 50%);transform:translate(-50%) rotate(45deg);width:11px;height:11px;background:#fffbf7fa;border-right:1px solid #e7d2c4;border-bottom:1px solid #e7d2c4;pointer-events:none}.credits-modal-card h2{margin:0 0 .4rem;font-size:1.05rem}.credits-modal-copy{margin:0;color:#523930;font-size:.85rem;line-height:1.45;word-break:break-word}.credits-modal-copy+.credits-modal-copy{margin-top:.45rem}.credits-modal-copy a{color:#5f3d31}.credits-modal-close{position:absolute;top:.4rem;right:.4rem;width:26px;height:26px;padding:0;border:none;background:transparent;color:#5a3e3373;cursor:pointer;display:grid;place-items:center;border-radius:4px;transition:background .15s ease,color .15s ease;font-size:0;line-height:0}.credits-modal-close:hover{background:#5a3e331a;color:#5a3e33cc}.credits-modal-close:focus-visible{outline:none;color:#5a3e33cc}.card{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.25rem;box-shadow:0 18px 38px #482b1f17}.onboarding-convo-card{min-height:min(calc(var(--app-vh, 1vh) * 84),780px);padding:1.05rem 1.1rem .95rem}.welcome-back-card{min-height:min(84vh,780px);padding:1.2rem}.welcome-back-shell{display:grid;gap:1rem}.welcome-back-header{text-align:center;display:grid;justify-items:center;gap:.32rem}.welcome-back-header h1{margin:0;font-size:clamp(1.52rem,4vw,2.34rem);text-align:center;margin-inline:auto}.welcome-back-header p{margin:0;color:var(--muted);font-size:clamp(.98rem,2vw,1.08rem);text-align:center;margin-inline:auto;max-width:32ch}.welcome-private-link{border:1px solid #dec9ba;border-radius:14px;background:#fffcf7e6;padding:.72rem .82rem;display:grid;gap:.58rem}.welcome-private-link[hidden]{display:none!important}.welcome-private-link-header{display:grid;gap:.18rem}.welcome-private-link-header h2{margin:0;font-size:.92rem;color:#4f362b}.welcome-private-link-header p{margin:0;font-size:.78rem;color:#745a4c}.welcome-private-link-controls{display:grid;gap:.48rem}.welcome-private-link-label{display:grid;gap:.3rem;font-size:.78rem;color:#6f5649}.welcome-private-link-pet-select{border:1px solid #d8bead;border-radius:10px;background:#fffdfb;color:#4c332a;padding:.4rem .6rem;min-height:44px}.welcome-private-link-value{margin:0;border:1px dashed rgba(145,112,90,.5);border-radius:10px;background:#fffaf5e6;color:#5b4035;padding:.52rem .64rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.73rem;line-height:1.4;overflow-wrap:anywhere}.welcome-private-link-actions{display:flex;flex-wrap:wrap;gap:.5rem}.welcome-private-link-actions button{border-radius:999px;border:1px solid #d6b9a8;background:#fff8f2;color:#553a2f;font-size:.8rem;font-weight:600;padding:.35rem .85rem}.welcome-private-link-actions button:disabled{opacity:.58;cursor:not-allowed}.welcome-private-link-status{margin:0;font-size:.75rem;color:#6f5649}@media (max-width: 520px){.welcome-private-link-actions{display:grid;grid-template-columns:1fr}}.welcome-back-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.9rem}.welcome-pet-card{border:1px solid #dec9ba;border-radius:16px;background:#fffdfb;padding:.58rem;display:grid;gap:.55rem;cursor:pointer;outline:none}.welcome-pet-card:focus-visible{border-color:var(--brand);box-shadow:0 0 0 4px #f58b6338}.welcome-pet-media-wrap{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:12px;background:#f8f1ea}.welcome-pet-media{width:100%;height:100%;object-fit:cover;border-radius:12px}.welcome-pet-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#170e0b2b;border-radius:12px;display:flex;flex-direction:column;justify-content:flex-end;gap:.38rem;padding:.56rem;opacity:0;transition:opacity .18s ease}.welcome-pet-card:hover .welcome-pet-overlay,.welcome-pet-card:focus-within .welcome-pet-overlay{opacity:1}.welcome-pet-action{width:100%;min-height:40px;border-radius:10px;font-size:.82rem}.welcome-pet-action:not(.primary){border:1px solid rgba(170,188,220,.76);background:#e6f0ffeb;color:#3b5278}.welcome-pet-action.primary{background:linear-gradient(135deg,#f87171,#fb923c,#fbbf24,#4ade80,#60a5fa,#a78bfa 90%);border:none;color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.18)}.welcome-pet-action.primary:hover{filter:brightness(1.08)}.welcome-pet-action:disabled{opacity:.6;cursor:not-allowed}.welcome-pet-name{margin:0;text-align:center;font-weight:700;font-size:.9rem;color:#563a2f}.welcome-pet-status{display:block;text-align:center;font-size:.7rem;font-weight:600;margin-top:.15rem;letter-spacing:.02em}.welcome-pet-status-pending{color:#8a6e30}.welcome-pet-status-live{color:#3e6e3e}.welcome-pet-status-rejected{color:#8a3a3a}.welcome-pet-status-unsynced{color:#8a5030;animation:pulse-unsynced 2s ease-in-out infinite}@keyframes pulse-unsynced{0%,to{opacity:1}50%{opacity:.5}}.dashboard-sync-banner{margin:.5rem 0 .75rem;padding:.65rem 1rem;border-radius:10px;font-size:.82rem;line-height:1.4}.dashboard-sync-banner-content{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.dashboard-sync-icon{flex-shrink:0}.dashboard-sync-text{flex:1;min-width:0}.dashboard-sync-banner-error{background:#fdf0e8;border:1px solid #e0a878;color:#6b4020}.dashboard-sync-banner-error .dashboard-sync-icon{color:#c07030}.dashboard-sync-banner-saving{background:#f0ece6;border:1px solid #d6cfc5;color:#5a4e3e}.dashboard-sync-banner-saving .dashboard-sync-icon{animation:spin-sync 1.2s linear infinite}@keyframes spin-sync{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dashboard-sync-retry{background:none;border:1px solid #c0956a;border-radius:6px;padding:.25rem .65rem;font-size:.78rem;color:#6b4020;cursor:pointer;font-weight:600;white-space:nowrap}.dashboard-sync-retry:hover{background:#c8a07826}.dashboard-sync-retry:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.welcome-pet-status-unsynced,.dashboard-sync-banner-saving .dashboard-sync-icon{animation:none}}.welcome-add-card{min-height:220px;border:1px dashed #d6b9a8;border-radius:16px;background:#fff8f3;color:#6a4b3e;display:grid;place-content:center;gap:.34rem;text-align:center}.welcome-add-card:hover,.welcome-add-card:focus-visible{border-color:var(--brand);box-shadow:0 0 0 4px #f58b6333;outline:none}.welcome-add-plus{font-size:1.5rem;line-height:1;font-weight:500}.welcome-add-copy{font-weight:700;font-size:.9rem}.welcome-pet-delete{position:absolute;top:6px;left:6px;width:36px;height:36px;min-height:36px;min-width:36px;padding:0;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,#f0e6ff,#ffe8ec,#fff5e6) padding-box,linear-gradient(135deg,#e74c3c,#e67e22,#f1c40f,#2ecc71,#3498db,#6c5ce7,#e84393) border-box;font-size:.85rem;line-height:1;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .18s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;z-index:2;box-shadow:0 2px 8px #7850c840,0 0 0 1px #ffffff80}.welcome-pet-card:hover .welcome-pet-delete,.welcome-pet-card:focus-within .welcome-pet-delete{opacity:1}.welcome-pet-delete:hover{background:linear-gradient(135deg,#e8d9ff,#ffd6de,#ffe8cc) padding-box,linear-gradient(135deg,#e74c3c,#e67e22,#f1c40f,#2ecc71,#3498db,#6c5ce7,#e84393) border-box;box-shadow:0 3px 12px #7850c859,0 0 0 1px #fff9;transform:scale(1.1)}.welcome-pet-release-icon{position:absolute;top:50%;left:50%;width:22px;height:22px;display:block;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 0 2px rgba(255,255,255,.7))}.welcome-pet-release-icon .petal{fill:#b98bf36b;stroke:#8d56d3;stroke-width:1}.welcome-pet-release-icon .core{fill:#ffd9ea;stroke:#f58b63;stroke-width:1.05}.welcome-delete-confirm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#1a120e85;display:grid;place-items:center;animation:fadeIn .2s ease}.welcome-delete-dialog{max-width:340px;width:88vw;background:#fffaf5;border-radius:20px;padding:1.6rem 1.4rem 1.2rem;text-align:center;box-shadow:0 12px 40px #28140a38}.welcome-delete-dialog h2{margin:0 0 .3rem;font-size:1.05rem;color:#5e3b2e}.welcome-delete-dialog p{margin:0 0 1.1rem;font-size:.88rem;color:#8a6e5c;line-height:1.5}.welcome-delete-actions{display:flex;gap:.6rem;justify-content:center}.welcome-delete-actions button{flex:1;padding:.55rem .8rem;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer}.welcome-delete-cancel{border:1px solid #dec9ba;background:#fff;color:#6a4b3e}.welcome-delete-yes{border:none;background:#c45a42;color:#fff}.welcome-pet-edit{position:absolute;top:6px;right:6px;width:32px;height:32px;min-height:32px;min-width:32px;padding:0;border-radius:50%;border:1px solid rgba(120,85,60,.25);background:#fffaf5eb;color:#6a4b3e;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .18s ease,transform .16s ease;z-index:2;box-shadow:0 1px 4px #28140a26}.welcome-pet-card:hover .welcome-pet-edit,.welcome-pet-card:focus-within .welcome-pet-edit{opacity:1}.welcome-pet-edit:hover{background:#fff;transform:scale(1.1);box-shadow:0 2px 8px #28140a33}.edit-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#1a120e85;display:grid;place-items:center;animation:fadeIn .2s ease}.edit-panel{max-width:420px;width:90vw;max-height:85vh;overflow-y:auto;background:#fffaf5;border-radius:20px;padding:1.4rem;box-shadow:0 12px 40px #28140a38}.edit-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.edit-panel-title{margin:0;font-size:1.15rem;color:#3a2e28}.edit-panel-close{width:32px;height:32px;border:none;background:none;font-size:1.4rem;color:#8a6e5c;cursor:pointer;border-radius:50%;display:grid;place-items:center}.edit-panel-close:hover{background:#78553c1a}.edit-panel-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid rgba(120,85,60,.15)}.edit-panel-tab{flex:1;padding:.5rem .8rem;border:none;background:none;font-size:.85rem;font-weight:600;color:#8a6e5c;cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.edit-panel-tab.active{color:#5a3e2e;border-bottom-color:#f58b63}.edit-panel-tab:hover{color:#5a3e2e}.edit-photo-hint{font-size:.85rem;color:#8a6e5c;margin:0 0 .8rem}.edit-photo-dropzone{display:block;border:2px dashed #d6b9a8;border-radius:12px;padding:1.5rem;text-align:center;cursor:pointer;color:#6a4b3e;font-size:.9rem;transition:border-color .15s,background .15s}.edit-photo-dropzone:hover,.edit-photo-dropzone:focus-within{border-color:#f58b63;background:#f58b630d}.edit-photo-preview{display:block;max-width:200px;max-height:200px;margin:.8rem auto;border-radius:12px;object-fit:cover}.edit-sprite-preview{text-align:center;margin-bottom:.8rem}.edit-sprite-preview-img{image-rendering:pixelated;width:128px;height:auto}.edit-sprite-hint{font-size:.82rem;color:#8a6e5c;margin:0 0 .6rem;text-align:center}.edit-sprite-empty,.edit-sprite-error{font-size:.85rem;color:#8a6e5c;text-align:center;padding:1.5rem 0}.edit-swatch-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:1rem}.edit-swatch{position:relative;cursor:pointer}.edit-swatch-input{position:absolute;opacity:0;width:36px;height:36px;cursor:pointer}.edit-swatch-preview{display:block;width:36px;height:36px;border-radius:50%;border:2px solid rgba(120,85,60,.2);box-shadow:0 1px 3px #0000001a;transition:transform .12s ease,box-shadow .12s ease}.edit-swatch:hover .edit-swatch-preview{transform:scale(1.15);box-shadow:0 2px 6px #00000026}.edit-panel-save{display:block;width:100%;margin-top:1rem;padding:.6rem 1rem;border:none;border-radius:10px;background:#5a3e2e;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.edit-panel-save:hover:not(:disabled){background:#7a5c3a}.edit-panel-save:disabled{opacity:.5;cursor:not-allowed}.welcome-security{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(120,85,60,.12)}.welcome-security-title{font-size:1.1rem;font-weight:600;color:#3a2e28;margin:0 0 .25rem}.welcome-security-subtitle{font-size:.85rem;color:#6f5649;margin:0 0 1rem}.welcome-security-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.welcome-security-card{border:1px solid #dec9ba;border-radius:14px;background:#fffdfb;padding:1.2rem;display:flex;flex-direction:column;gap:.5rem}.welcome-security-card-icon{width:44px;height:44px;border-radius:12px;background:#c8a0781f;display:flex;align-items:center;justify-content:center;color:#8b6b52}.welcome-security-card h3{font-size:.95rem;font-weight:600;color:#3a2e28;margin:0}.welcome-security-card p{font-size:.82rem;color:#6f5649;margin:0;line-height:1.4}.welcome-passkey-setup{margin-top:.5rem;align-self:flex-start;font-size:.85rem;padding:.5rem 1.2rem}.welcome-passkey-status{font-size:.78rem;color:#6f5649}.welcome-qr-display{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-top:.5rem}.welcome-qr-canvas{border-radius:8px;border:1px solid #dec9ba}.welcome-qr-url{font-size:.7rem;color:#8b6b52;word-break:break-all;text-align:center;max-width:200px;margin:0}.welcome-qr-copy{font-size:.8rem;padding:.4rem 1rem}.welcome-qr-status{font-size:.78rem;color:#6f5649}@media (max-width: 520px){.welcome-security-options{grid-template-columns:1fr}}.convo-shell{min-height:100%;display:flex;flex-direction:column;gap:.9rem}.convo-top{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem}.convo-back{width:40px;height:40px;border-radius:999px;padding:0;font-size:1.2rem;display:grid;place-items:center}.convo-back:disabled{opacity:.35;cursor:default}.convo-progress-track{height:4px;border-radius:999px;overflow:hidden;background:#f4dfd1}.convo-progress-fill{height:100%;width:100%;background:linear-gradient(90deg,#ee9d7f,#f58b63);transform-origin:left center;transform:scaleX(0);transition:transform .22s ease}.convo-progress-label{font-size:.78rem;color:var(--muted);font-weight:700;min-width:3.5rem;text-align:right}.convo-stage{position:relative;flex:1;min-height:clamp(380px,58vh,560px);display:grid;place-items:center;padding:.75rem;overflow:hidden}.convo-panel{width:min(100%,780px);display:grid;justify-items:center;align-content:center;gap:1.2rem;padding-inline:.35rem;text-align:center;opacity:0;transform:translateY(12px);transition:opacity .23s ease,transform .26s ease}.convo-step-companion{width:min(100%,780px);padding:.28rem .3rem;display:grid;gap:1rem;align-content:start}.convo-companion-decor{position:relative;width:100%;max-width:720px;margin:0 auto;height:clamp(150px,29vw,220px);border-radius:14px;overflow:hidden;border:1px solid rgba(206,186,176,.82);box-shadow:0 10px 24px #34282214,inset 0 0 0 1px #ffffff3d}.convo-companion-decor:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0c08062e,#0c080614,#0c080605 68%,#0c080600);pointer-events:none}.convo-companion-decor-image{width:100%;height:100%;object-fit:cover;image-rendering:pixelated;image-rendering:crisp-edges;transform:scale(1.01)}.convo-step-companion .convo-question-wrap,.convo-step-companion .convo-field{width:min(100%,700px);margin:0 auto}.convo-step-companion .convo-question-wrap{padding-top:0}.convo-step-companion .convo-companion-copy{border-top:1px solid rgba(219,199,186,.58);padding-top:1rem;gap:.9rem}.convo-step-companion .convo-question{line-height:1.34}.convo-companion-headline{font-size:clamp(1.62rem,4vw,2.62rem);max-width:min(100%,23ch)}.convo-companion-support{max-width:min(100%,50ch);margin-left:auto;margin-right:auto;font-size:clamp(.98rem,2vw,1.14rem);line-height:1.58;color:#5d463cd6}.convo-panel.is-active{opacity:1;transform:translateY(0)}.convo-panel.is-enter-forward{animation:convo-enter-forward .24s ease forwards}.convo-panel.is-enter-back{animation:convo-enter-back .24s ease forwards}.convo-panel.is-leaving-forward{opacity:0;transform:translateY(-8px)}.convo-panel.is-leaving-back{opacity:0;transform:translateY(10px)}@keyframes convo-enter-forward{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes convo-enter-back{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.convo-question-wrap{display:grid;gap:.65rem;justify-items:center}.convo-question{line-height:1.23;font-size:clamp(1.38rem,3.2vw,2.28rem);text-wrap:balance;-webkit-hyphens:none;hyphens:none;max-width:min(100%,28ch);margin:0 auto}.convo-subtext{margin:0;color:var(--muted);font-size:clamp(.95rem,1.8vw,1.05rem);max-width:660px}.convo-field{width:min(100%,700px);display:grid;gap:.85rem;justify-items:center}.convo-companion-grid{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:.72rem}.convo-companion-card{min-height:114px;width:100%;border-radius:16px;border:1px solid #d9c1b3;background:#fffefd;color:#4f362b;display:grid;justify-items:center;gap:.38rem;padding:.95rem .8rem .75rem}.convo-companion-card.is-selected{border-width:2px;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b636b;background:#fff7f1}.convo-companion-card:focus-visible{outline:none;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b6385}.companion-iconWrap{position:relative;width:42px;height:42px;display:grid;place-items:center;overflow:visible;transform-origin:50% 80%}.companion-iconWrap .companion-icon{z-index:2}.companion-fly,.companion-tongue{position:absolute;pointer-events:none}.companion-mouth-anchor{position:absolute;left:23px;top:24px;width:2px;height:2px;opacity:0;pointer-events:none}.companion-fly{top:10px;left:27px;width:6px;height:6px;border-radius:999px;background:#1f1a1a;opacity:0;transform:translate(-50%,-50%) scale(1);transform-origin:center;z-index:4}.companion-fly:before,.companion-fly:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;border:1px solid rgba(34,28,28,.5)}.companion-fly:before{transform:translate(-4px,-1px) scale(.9,.55)}.companion-fly:after{transform:translate(4px,-1px) scale(.9,.55)}.companion-tongue{left:0;top:0;width:0;height:4px;border-radius:999px;background:#f59aba;transform-origin:0% 50%;transform:translateY(-50%) scaleX(0);opacity:0;z-index:3}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-cat .companion-iconWrap-cat,.convo-companion-card:is(:focus-visible,.is-animating).companion-species-dog .companion-iconWrap-dog{animation:companion-pet-wiggle .56s ease-in-out infinite}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-horse .companion-iconWrap-horse{animation:companion-horse-trot .6s ease-in-out infinite}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-bird .companion-iconWrap-bird{animation:companion-bird-flutter .5s ease-in-out infinite}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-rabbit .companion-iconWrap-rabbit{animation:companion-rabbit-hop .55s ease-in-out infinite}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-snake .companion-iconWrap-snake{animation:companion-snake-slither .7s ease-in-out infinite}.convo-companion-card:is(:focus-visible,.is-animating).companion-species-ferret .companion-iconWrap-ferret{animation:companion-ferret-bounce .48s ease-in-out infinite}@media (hover: hover){.convo-companion-card:hover.companion-species-cat .companion-iconWrap-cat,.convo-companion-card:hover.companion-species-dog .companion-iconWrap-dog{animation:companion-pet-wiggle .56s ease-in-out infinite}.convo-companion-card:hover.companion-species-horse .companion-iconWrap-horse{animation:companion-horse-trot .6s ease-in-out infinite}.convo-companion-card:hover.companion-species-bird .companion-iconWrap-bird{animation:companion-bird-flutter .5s ease-in-out infinite}.convo-companion-card:hover.companion-species-rabbit .companion-iconWrap-rabbit{animation:companion-rabbit-hop .55s ease-in-out infinite}.convo-companion-card:hover.companion-species-snake .companion-iconWrap-snake{animation:companion-snake-slither .7s ease-in-out infinite}.convo-companion-card:hover.companion-species-ferret .companion-iconWrap-ferret{animation:companion-ferret-bounce .48s ease-in-out infinite}}.convo-companion-card.companion-chameleon-active .companion-fly{opacity:1}.convo-companion-card.companion-chameleon-active .companion-iconWrap-chameleon .companion-icon{animation:companion-chameleon-chew 1.2s ease-in-out infinite}@keyframes companion-pet-wiggle{0%{transform:translateY(0) rotate(0) scale(1)}20%{transform:translateY(-2px) rotate(-1deg) scale(1.03)}42%{transform:translateY(-3px) rotate(1deg) scale(1.05)}70%{transform:translateY(-1px) rotate(-.6deg) scale(1.03)}to{transform:translateY(0) rotate(0) scale(1)}}@keyframes companion-chameleon-chew{0%,62%,to{transform:translateY(0) scale(1)}68%{transform:translateY(-2px) scale(1.03)}76%{transform:translateY(0) scale(1)}}@keyframes companion-horse-trot{0%{transform:translateY(0) rotate(0)}25%{transform:translateY(-4px) rotate(-2deg)}50%{transform:translateY(0) rotate(0)}75%{transform:translateY(-4px) rotate(2deg)}to{transform:translateY(0) rotate(0)}}@keyframes companion-bird-flutter{0%{transform:translateY(0) scaleY(1)}20%{transform:translateY(-5px) scaleY(.95)}40%{transform:translateY(-3px) scaleY(1.05)}60%{transform:translateY(-6px) scaleY(.94)}80%{transform:translateY(-2px) scaleY(1.02)}to{transform:translateY(0) scaleY(1)}}@keyframes companion-rabbit-hop{0%{transform:translateY(0) scaleX(1) scaleY(1)}20%{transform:translateY(1px) scaleX(1.06) scaleY(.94)}45%{transform:translateY(-8px) scaleX(.94) scaleY(1.06)}70%{transform:translateY(0) scaleX(1.03) scaleY(.97)}to{transform:translateY(0) scaleX(1) scaleY(1)}}@keyframes companion-snake-slither{0%{transform:translate(0) skew(0)}25%{transform:translate(3px) skew(2deg)}50%{transform:translate(0) skew(0)}75%{transform:translate(-3px) skew(-2deg)}to{transform:translate(0) skew(0)}}@keyframes companion-ferret-bounce{0%{transform:translateY(0) rotate(0) scale(1)}15%{transform:translateY(-3px) rotate(-3deg) scale(1.04)}35%{transform:translateY(-5px) rotate(2deg) scale(1.06)}55%{transform:translateY(-2px) rotate(-1deg) scale(1.03)}75%{transform:translateY(-4px) rotate(1deg) scale(1.05)}to{transform:translateY(0) rotate(0) scale(1)}}@media (prefers-reduced-motion: reduce){.convo-companion-card .companion-iconWrap,.convo-companion-card .companion-icon,.convo-companion-card .companion-fly,.convo-companion-card .companion-tongue{animation:none!important;transition:none}.convo-companion-card:is(:hover,:focus-visible,.is-animating) .companion-iconWrap{transform:scale(1.03)}.convo-companion-card .companion-fly,.convo-companion-card .companion-tongue{display:none}}.convo-input{width:min(100%,620px);text-align:center}.convo-input-large{font-size:clamp(1.1rem,2.2vw,1.5rem);padding:.88rem 1rem}.convo-input-date{max-width:340px;font-size:1rem}.convo-date-field{width:min(100%,340px);display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.46rem;padding:.62rem .75rem;border:1px solid #dcc4b6;border-radius:14px;background:#fffdfb}.convo-date-icon{width:18px;height:18px;color:#7a6053;display:inline-grid;place-items:center}.convo-date-icon svg{width:100%;height:100%;display:block}.convo-date-field:focus-within{border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b637a}.convo-date-field .convo-input-date{width:100%;max-width:none;border:0;border-radius:0;padding:0;background:transparent;color:#4f372d;text-align:left}.convo-date-field .convo-input-date:focus-visible{outline:none;box-shadow:none}.convo-date-field .convo-input-date::-webkit-calendar-picker-indicator{opacity:.9;cursor:pointer}.convo-date-label{margin:-.15rem 0 .1rem;width:min(100%,340px);text-align:left;font-size:.78rem;color:#7d6458}.convo-primary{min-width:220px;padding:.72rem 1.05rem}.convo-donation-search-wrap{position:relative;width:100%}.convo-donation-search{width:100%;padding:12px 14px;border:1px solid rgba(120,85,60,.22);border-radius:10px;font-size:.92rem;background:#fffdfaeb;color:#3d2e24;font-family:inherit}.convo-donation-search:focus{outline:none;border-color:#f58b6380;box-shadow:0 0 0 3px #f58b631f}.convo-donation-results{list-style:none;margin:4px 0 0;padding:4px;border:1px solid #ddc7b6;border-radius:10px;background:#fffdf8;max-height:220px;overflow-y:auto;position:absolute;left:0;right:0;z-index:10;box-shadow:0 4px 12px #28190f1a}.convo-donation-result-item{padding:10px 12px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.convo-donation-result-item:hover{background:#e8d6c466}.convo-donation-result-name{font-weight:600;font-size:.9rem;color:#3d2e24}.convo-donation-result-meta{font-size:.8rem;color:#70574a}.convo-donation-card{border:1px solid #ddc7b6;border-radius:12px;padding:14px;background:#fffdfaeb;display:grid;gap:6px;width:100%;text-align:left}.convo-donation-card-name{font-weight:600;font-size:.95rem;margin:0}.convo-donation-card-location{font-size:.84rem;color:#70574a;margin:0}.convo-donation-card-link{font-size:.84rem;color:#7a6053}.convo-donation-remove{background:none;border:none;color:#a07060;font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0;justify-self:start}.sprite-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#1e140e80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem}.sprite-editor-modal{background:#fffaf5;border:1px solid #dbc6b5;border-radius:18px;max-width:920px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #1e140e40}.sprite-editor-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid #e8d5c5}.sprite-editor-header h3{margin:0;font-size:1rem;color:#3d2e24}.sprite-editor-close{width:32px;height:32px;min-width:32px;border-radius:50%;border:none;background:#5d433814;color:#5a3e33;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-size:0;line-height:0;transition:background .15s}.sprite-editor-close:hover{background:#5d433826}.sprite-editor-canvas-host{padding:.75rem 1rem}.sprite-editor-canvas-host .draw-pet-exports,.sprite-editor-canvas-host .draw-pet-focus-enter,.sprite-editor-canvas-host .draw-pet-header{display:none}.sprite-editor-canvas-host .draw-pet-focus-shell{border:none;padding:0;background:transparent}.sprite-editor-canvas-host .draw-pet-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:start}.sprite-editor-canvas-host .draw-pet-tools{max-height:calc(90vh - 7rem);overflow-y:auto}@media (max-width: 640px){.sprite-editor-canvas-host .draw-pet-layout{grid-template-columns:1fr}}.sprite-editor-actions{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid #e8d5c5;justify-content:space-between}.convo-photo-edit-sprite{font-size:.78rem;padding:.3rem .7rem;margin-top:.3rem}.convo-skip-link{background:none;border:none;color:#7a6053;font-size:.84rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:8px 0}.convo-option-list{width:100%;display:grid;gap:.62rem}.convo-option-card{width:100%;border:1px solid #dcc4b6;border-radius:14px;background:#fffdfb;color:#553a30;padding:.78rem .9rem;text-align:center;line-height:1.35}.convo-option-card.is-selected{border-width:2px;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b6366;background:#fff7f1}.convo-option-card:focus-visible{outline:none;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b6380}.convo-sound-input-row{width:min(100%,640px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.52rem}.convo-sound-input{width:100%;text-align:left}.convo-sound-add{min-width:88px}.convo-chip-list{width:min(100%,640px);min-height:44px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem}.convo-chip-empty{margin:0;color:#8a6f62;font-size:.83rem}.convo-chip{border:1px solid #e2c8b8;border-radius:999px;background:#fff8f1;color:#5b4035;padding:.34rem .62rem;font-size:.8rem;font-weight:700;line-height:1}.convo-chip span{margin-left:.22rem}.convo-sound-meta{margin:0;color:#7b6055;font-size:.82rem}.convo-sound-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center}.convo-secondary{min-width:120px;background:#fff}.convo-source-toggle{width:min(100%,620px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.46rem}.convo-source-tab{min-height:44px;border:1px solid #dfc9ba;border-radius:12px;background:#fff8f2;color:#61473c;font-size:.86rem;font-weight:700;padding:.45rem .68rem}.convo-source-tab.is-active{border-color:#e39a78;background:#fff2e7;box-shadow:inset 0 0 0 2px #f58b6357}.convo-source-panel{width:min(100%,620px)}.convo-photo-zone{width:100%;min-height:180px;border:1.6px dashed #d7beaf;border-radius:18px;background:radial-gradient(circle at 14% 14%,#fff2e7 0%,transparent 36%),radial-gradient(circle at 86% 20%,#ffeaf1 0%,transparent 33%),#fffdfa;padding:2.4rem 1.4rem;display:grid;align-content:center;justify-items:center;gap:.7rem;cursor:pointer;transition:border-color .14s ease,box-shadow .18s ease}.convo-photo-zone:hover,.convo-photo-zone:focus-visible,.convo-photo-zone.is-drag-over{outline:none;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b6357}.convo-photo-zone.is-busy{cursor:progress;opacity:.84;pointer-events:none}.convo-photo-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.convo-photo-text{margin:0;color:var(--muted);font-size:.95rem}.convo-draw-host{width:min(100%,620px)}.convo-draw-actions{margin-top:.55rem;display:flex;justify-content:center}.draw-pet{width:100%;position:relative}.draw-pet-focus-shell{width:100%;border:1px solid #dec8ba;border-radius:14px;background:#fffcf7f2;padding:.62rem;display:grid;gap:.6rem}.draw-pet-header{display:flex;align-items:center;justify-content:space-between;gap:.55rem;flex-wrap:wrap}.draw-pet-header-actions{display:flex;gap:.4rem}.draw-pet-focus-enter,.draw-pet-focus-exit{min-height:40px;border-radius:10px;border:1px solid #dfc5b5;background:#fff8f2;color:#5d4338;font-size:.8rem;font-weight:700;padding:.42rem .68rem}.draw-pet-layout{display:grid;gap:.6rem;align-items:start}.draw-pet-stage-wrap{display:grid;gap:.35rem;justify-items:center}.draw-pet-help{margin:0;font-size:.8rem;color:#795f53;opacity:0;transform:translateY(4px);transition:opacity .22s ease,transform .22s ease}.draw-pet-help.is-visible{opacity:.88;transform:translateY(0)}.draw-pet-help.is-fading{opacity:0;transform:translateY(-4px)}.draw-pet-tools{display:grid;gap:.36rem;border:1px solid #e2cdc0;border-radius:12px;background:#fffaf5eb;padding:.5rem}.draw-pet-tool-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem}.draw-pet-tool-row-color{align-items:center;justify-content:flex-start}.draw-pet-row-label{font-size:.74rem;font-weight:700;color:#6f564c;margin-right:.2rem}.draw-pet-tool,.draw-pet-size,.draw-pet-action,.draw-pet-picker-wrap{min-height:38px;border-radius:10px;border:1px solid #ddc5b7;background:#fff8f2;color:#5e4338;font-size:.78rem;font-weight:700;line-height:1;padding:.4rem .62rem}.draw-pet-tool.is-active,.draw-pet-size.is-active{border-color:#e39a78;background:#fff2e7}.draw-pet-tool:focus-visible,.draw-pet-size:focus-visible,.draw-pet-action:focus-visible,.draw-pet-focus-enter:focus-visible,.draw-pet-focus-exit:focus-visible,.draw-pet-export-btn:focus-visible,.draw-pet-swatch:focus-visible,.draw-pet-picker-wrap:focus-within,.draw-pet-confirm-close:focus-visible,.draw-pet-confirm-secondary:focus-visible,.draw-pet-confirm-primary:focus-visible{outline:2px solid rgba(245,139,99,.78);outline-offset:2px}.draw-pet-swatch{width:30px;height:30px;border-radius:8px;border:1px solid rgba(109,82,69,.26);background:var(--swatch, #fff);padding:0}.draw-pet-swatch.is-active{border-color:#f38b63;box-shadow:0 0 0 2px #f58b6333}.draw-pet-picker-wrap{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.38rem}.draw-pet-picker{width:24px;height:24px;border:0;padding:0;background:transparent}.draw-pet-confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1700;display:grid;place-items:center;padding:1rem}.draw-pet-confirm-modal[hidden]{display:none}.draw-pet-confirm-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#18110e6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.draw-pet-confirm-card{position:relative;width:min(100%,420px);border-radius:16px;border:1px solid #e0c9ba;background:#fffbf7fa;box-shadow:0 20px 42px #2418133d;padding:.95rem .95rem .9rem;display:grid;gap:.55rem}.draw-pet-confirm-close{position:absolute;top:.45rem;right:.5rem;width:28px;height:28px;border-radius:999px;border:1px solid #dfc8b9;background:#fff8f2;color:#5f4438;display:grid;place-items:center;font-weight:700;padding:0}.draw-pet-confirm-title{margin:0;padding-right:1.8rem;font-size:1rem;color:#553d32}.draw-pet-confirm-copy{margin:0;color:#6b5348;font-size:.86rem;line-height:1.42}.draw-pet-confirm-actions{display:flex;justify-content:flex-end;gap:.46rem;flex-wrap:wrap}.draw-pet-confirm-secondary,.draw-pet-confirm-primary{min-height:40px;border-radius:10px;border:1px solid #dfc6b6;background:#fff8f2;color:#5f4338;font-size:.82rem;font-weight:700;padding:.45rem .76rem}.draw-pet-confirm-primary{border-color:#eaa182;background:#fff0e4}.draw-pet-exports{display:grid;gap:.5rem;border:1px solid #e2cebf;border-radius:12px;background:#fffaf5f0;padding:.55rem}.draw-pet-exports-help{margin:0;color:#765d52;font-size:.78rem}.draw-pet-toast{margin:0;min-height:1.05rem;font-size:.76rem;color:#6e5448;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}.draw-pet-toast.is-visible{opacity:.88;transform:translateY(0)}.draw-pet-export-controls{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}.draw-pet-export-toggle{display:inline-flex;align-items:center;gap:.35rem;color:#62473b;font-size:.76rem;font-weight:700}.draw-pet-export-toggle[hidden]{display:none}.draw-pet-export-toggle input{width:16px;height:16px}.draw-pet-export-field{display:inline-flex;align-items:center;gap:.32rem;color:#6c5348;font-size:.74rem;font-weight:700}.draw-pet-export-field select{border:1px solid #ddc6b8;border-radius:8px;background:#fffaf6;color:#5e443a;font-size:.74rem;min-height:34px;padding:.2rem .38rem}.draw-pet-export-buttons{display:flex;flex-wrap:wrap;gap:.45rem}.draw-pet-export-btn{min-height:42px;border-radius:10px;border:1px solid #dfc5b6;background:#fff8f2;color:#5e4237;font-size:.8rem;font-weight:700;padding:.45rem .72rem}.draw-pet-export-download{display:inline-flex;align-items:center;justify-content:center;gap:.32rem}.draw-pet-export-download span{font-weight:800}.draw-pet-export-btn:disabled{opacity:.5;cursor:not-allowed}.draw-pet-stage{position:relative;width:min(100%,520px);margin:0 auto;border-radius:14px;border:1px solid #dfc9bc;overflow:hidden;background:#f7f1e6;box-shadow:inset 0 0 0 1px #ffffff8c}.draw-pet-canvas,.draw-pet-guide{display:block;width:100%;aspect-ratio:1 / 1;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.draw-pet-canvas{touch-action:none;cursor:crosshair}.draw-pet-stage{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body.draw-no-select{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.draw-pet-guide{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.draw-pet.is-focus-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;padding:clamp(.5rem,2vw,1rem);background:#16100d57;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center}.draw-pet.is-focus-mode .draw-pet-focus-shell{width:min(96vw,1280px);max-height:calc(100dvh - 1.2rem);border-radius:18px;padding:.8rem;gap:.72rem;overflow:auto;background:#fffcf8fa}.draw-pet.is-focus-mode .draw-pet-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start}.draw-pet.is-focus-mode .draw-pet-stage{width:min(92vw,900px)}.draw-pet.is-focus-mode .draw-pet-tools{position:sticky;top:0;max-height:calc(100dvh - 7rem);overflow:auto}.convo-photo-preview-grid{width:100%;display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem}.convo-photo-quantized-strip{width:min(100%,320px);min-height:20px;display:flex;justify-content:center;flex-wrap:wrap;gap:.32rem;margin-top:-.1rem}.convo-photo-quantized-strip[hidden]{display:none}.convo-photo-palette-swatch{width:16px;height:16px;border-radius:4px;border:1px solid rgba(108,84,72,.28);box-shadow:inset 0 0 0 1px #ffffff61}.convo-photo-preview{margin:0;display:grid;justify-items:center;gap:.36rem}.convo-photo-preview figcaption{font-size:.74rem;color:#6f544a;font-weight:700}.convo-photo-preview-slot{position:relative;width:120px;height:120px;border-radius:14px;border:1px solid #e6cfc2;overflow:hidden;background:linear-gradient(170deg,#f8f1e9f2,#eee4dbeb)}.convo-photo-thumb{width:100%;height:100%;object-fit:cover}.convo-photo-thumb[hidden]{display:none}.convo-photo-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;gap:.35rem;padding:.5rem;text-align:center;background:linear-gradient(180deg,#fcf6eff2,#f1e7deeb),repeating-linear-gradient(45deg,#84685a0b,#84685a0b 2px,#84685a05 2px,#84685a05 6px)}.convo-photo-placeholder[hidden]{display:none}.convo-photo-placeholder-icon{width:26px;height:26px;color:#7f675b;opacity:.58}.convo-photo-placeholder-icon svg{width:100%;height:100%;display:block}.convo-photo-placeholder-text{margin:0;font-size:.68rem;line-height:1.3;color:#6f5850;opacity:.7}.convo-photo-placeholder.is-loading{animation:convo-photo-placeholder-pulse 1.25s ease-in-out infinite}.convo-photo-placeholder.is-loading:after{content:"";position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;background:linear-gradient(108deg,#fff0 28%,#ffffff59,#fff0 72%);animation:convo-photo-placeholder-shimmer 1.2s linear infinite}.convo-photo-placeholder.is-error{background:linear-gradient(180deg,#fff2eff5,#fae4dfeb),repeating-linear-gradient(45deg,#9a54440f,#9a54440f 2px,#9a544405 2px,#9a544405 6px)}.convo-photo-placeholder.is-error .convo-photo-placeholder-icon{color:#945443;opacity:.72}.convo-photo-placeholder.is-error .convo-photo-placeholder-text{color:#7f3f33;opacity:.94}@keyframes convo-photo-placeholder-pulse{0%,to{opacity:.86}50%{opacity:1}}@keyframes convo-photo-placeholder-shimmer{0%{transform:translate(-58%)}to{transform:translate(58%)}}.convo-photo-hint{min-height:1.2rem;margin:0;color:var(--muted);font-size:.86rem}.convo-photo-continue{margin-top:.15rem}.convo-photo-retry{margin-top:.1rem}.convo-photo-debug{width:min(100%,620px);border:1px solid #dbc8bc;border-radius:14px;background:#fffdfae6;padding:.72rem .78rem;display:grid;gap:.5rem}.convo-photo-debug:not(.is-debug-mode) .convo-photo-debug-only{display:none!important}.convo-photo-debug-title{margin:0;font-size:.78rem;color:#6d5449;text-transform:uppercase;letter-spacing:.04em}.convo-photo-debug-status{margin:0;min-height:1rem;font-size:.72rem;color:#6f5850}.convo-photo-debug-status.is-loading{color:#6a554a}.convo-photo-debug-status.is-loading:before{content:"";display:inline-block;width:.72rem;height:.72rem;margin-right:.36rem;border-radius:999px;border:2px solid rgba(122,97,82,.26);border-top-color:#7a6152e6;vertical-align:-.1rem;animation:convo-photo-debug-spin .85s linear infinite}@keyframes convo-photo-debug-spin{to{transform:rotate(360deg)}}.convo-photo-debug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.52rem}.convo-photo-debug-item{margin:0;display:grid;gap:.28rem}.convo-photo-debug-item figcaption{margin:0;font-size:.72rem;color:#765f54}.convo-photo-debug-slot{position:relative;width:100%;min-height:122px;border-radius:10px;border:1px solid #dfcdc1;overflow:hidden;background:linear-gradient(180deg,#f7efe6f2,#ebe1d7eb)}.convo-photo-debug-item img{width:100%;height:122px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges}.convo-photo-debug-item img[hidden]{display:none}.convo-photo-debug-placeholder{border-radius:10px}.convo-photo-debug-retry-stage{justify-self:start;padding:.28rem .5rem;font-size:.68rem}.convo-photo-debug-palette{display:flex;flex-wrap:wrap;gap:.28rem}.convo-photo-debug-features{display:flex;flex-wrap:wrap;gap:.35rem}.convo-photo-feature-badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #dbc8bc;background:#f7eee4db;color:#7a6152;font-size:.68rem;line-height:1;padding:.22rem .48rem}.convo-photo-feature-badge.is-ready{border-color:#72aa738a;background:#e6f6e2e6;color:#476946}.convo-photo-debug-consistency{margin:0;font-size:.72rem;color:#6d5449}.convo-photo-debug-retry-all,.convo-photo-debug-fixture{justify-self:start;margin-top:.1rem}.convo-photo-regenerate{margin-top:.1rem}.convo-textarea{width:min(100%,640px);min-height:150px;font-size:1rem;line-height:1.45}.convo-visibility-toggle{width:min(100%,640px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.convo-visibility-option{min-height:90px;border-radius:14px;border:1px solid #d9c3b4;background:#fffdf9;color:#533d33;display:flex;align-items:center;gap:.55rem;text-align:left;padding:.64rem .72rem}.convo-visibility-option:hover,.convo-visibility-option:focus-visible{border-color:var(--brand)}.convo-visibility-option:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #f58b6380}.convo-visibility-option.is-selected{border-width:2px;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b6359;background:#fff7f1}.convo-visibility-icon{width:24px;height:24px;color:#6a4d41;flex-shrink:0}.convo-visibility-icon svg{width:100%;height:100%;display:block}.convo-visibility-copy{display:grid;gap:.16rem}.convo-visibility-label{color:#4f382f;font-size:.95rem;font-weight:700}.convo-visibility-help{color:#7a6053;font-size:.8rem;line-height:1.3}.convo-visibility-message{width:min(100%,640px);margin:.2rem 0 0;color:#6a5146;font-size:.86rem;line-height:1.45}.convo-visibility-message strong{color:#553d33}.convo-family-toggle{width:min(100%,640px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.52rem}.convo-family-toggle-btn{min-height:44px;border:1px solid #d8c0b3;border-radius:12px;background:#fffdf9;color:#5b3f34;font-size:.86rem;font-weight:700}.convo-family-toggle-btn.is-selected{border-width:2px;border-color:var(--brand);background:#fff7f1;box-shadow:inset 0 0 0 2px #f58b6359}.convo-family-list{width:min(100%,680px);display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem}.convo-family-card{border:1px solid #ddc6b9;border-radius:14px;background:#fffdfa;color:#4d352c;display:grid;justify-items:center;gap:.42rem;padding:.55rem;text-align:center;box-shadow:0 8px 20px #482d2114}.convo-family-card:focus-visible{outline:none;border-color:var(--brand);box-shadow:inset 0 0 0 2px #f58b637a,0 8px 20px #482d2114}.convo-family-card.is-selected{border-width:2px;border-color:var(--brand);background:#fff7f1}.convo-family-card:disabled{opacity:.62;cursor:not-allowed}.convo-family-avatar{width:66px;height:66px;border-radius:12px;overflow:hidden;border:1px solid #e3cec1;background:#f8eee6;display:grid;place-items:center}.convo-family-avatar-image{width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:auto}.convo-family-meta{display:grid;gap:.12rem}.convo-family-name{font-size:.84rem;font-weight:700}.convo-family-type{font-size:.74rem;color:#765d50}.convo-family-note{width:min(100%,640px);margin:0;color:#6d5548;font-size:.82rem}.convo-family-skeleton{width:min(100%,680px);display:grid;grid-template-columns:repeat(2,minmax(140px,1fr));gap:.6rem}.convo-family-skeleton-card{border-radius:14px;min-height:142px;border:1px solid #e3cec1;background:linear-gradient(90deg,#f7eee6,#fff8f2 45%,#f7eee6) 0 0 / 180% 100% no-repeat;animation:convo-family-skeleton-shimmer .9s ease-in-out infinite}@keyframes convo-family-skeleton-shimmer{0%{background-position:0 0}to{background-position:100% 0}}.convo-transition{align-content:center;min-height:280px}h1{margin:0 0 .45rem;line-height:1.2}p{margin-top:0;color:var(--muted)}code{background:#f7ebe2;border:1px solid #ebd6c7;border-radius:6px;padding:.05rem .35rem}.field{display:grid;gap:.45rem;font-weight:600;font-size:.95rem}.companion-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.companion-card{position:relative;display:grid;justify-items:center;gap:.35rem;min-height:104px;border:1px solid #d9c1b3;border-radius:14px;background:#fffefd;color:#4f362b;padding:.85rem .75rem .7rem;text-align:center}.companion-card:hover{border-color:var(--brand)}.companion-card:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #f58b6340}.companion-card.is-selected{border-width:2px;border-color:var(--brand);box-shadow:0 0 0 5px #f58b6329;background:#fff7f1}.companion-card.is-selected .companion-check{opacity:1;transform:scale(1)}.companion-icon{width:34px;height:34px;color:#7a4a36;display:grid;place-items:center}.companion-icon svg{width:100%;height:100%;display:block;fill:currentColor}.companion-icon img{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.companion-label{font-size:.9rem;font-weight:700}input,textarea,select,button{font:inherit}input[type=text],input[type=file],select,textarea{width:100%;border:1px solid #d9c1b3;border-radius:12px;background:#fffefd;padding:.68rem .82rem}textarea{resize:vertical}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #f58b6340}.hint{color:var(--muted);font-size:.83rem;font-weight:500}.error{color:var(--error);font-size:.83rem;min-height:1.15em}.preview-sprite{image-rendering:pixelated;image-rendering:crisp-edges}button{border:1px solid #d9c1b3;border-radius:12px;padding:.68rem 1rem;background:#fff;color:var(--text);cursor:pointer}button:hover{border-color:var(--brand)}button:disabled{cursor:wait;opacity:.7}button.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}button.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid rgba(222,110,69,.95);outline-offset:2px}.onboarding-convo-card :is(button,input,textarea,select):focus-visible{outline:none;box-shadow:inset 0 0 0 2px #f58b6380}.bridge-fullscreen-root{--bridge-chat-keyboard-offset: 0px;position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;height:calc(var(--app-vh, 1vh) * 100);z-index:20;opacity:1;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transform:translateY(0);transition:opacity .18s ease,transform .22s ease}.bridge-fullscreen-root.is-entering{opacity:0;transform:translateY(8px)}.bridge-fullscreen-root.is-visible{opacity:1;transform:translateY(0)}.bridge-fullscreen-root.is-exiting{opacity:0;transform:translateY(8px);pointer-events:none}.bridge-empty-state{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:.65rem;padding:1rem;text-align:center;background:#fff8f3}.bridge-empty-state p{margin:0}.chip{display:inline-block;border-radius:999px;border:1px solid #f0d3c0;background:#fff2e8;color:#703f2c;padding:.3rem .68rem;font-size:.8rem}.scene-host{position:relative;isolation:isolate;width:100%;min-height:300px;aspect-ratio:16 / 10;border-radius:16px;border:1px solid var(--border);overflow:hidden;background:#cbe4f5;display:grid;place-items:center}.bridge-fullscreen-root .scene-host{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;height:calc(var(--app-vh, 1vh) * 100);min-height:100dvh;min-height:calc(var(--app-vh, 1vh) * 100);aspect-ratio:auto;border:0;border-radius:0;overflow:hidden;background:#cbe4f5;touch-action:manipulation}.scene-canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.bridge-fullscreen-root .scene-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw!important;height:100dvh!important;height:calc(var(--app-vh, 1vh) * 100)!important}.bridge-world-hint{position:fixed;left:max(.72rem,env(safe-area-inset-left));top:calc(max(.72rem,env(safe-area-inset-top)) + 8px);z-index:9;margin:0;padding:.16rem .3rem;color:#eff5fb94;font-size:.7rem;font-weight:600;letter-spacing:.02em;line-height:1.2;pointer-events:none;-webkit-user-select:none;user-select:none}.bridge-world-menu-ui{position:fixed;top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));z-index:18;pointer-events:none}.bridge-menu-toggle{min-width:72px;min-height:44px;border-radius:999px;border:1px solid rgba(214,196,181,.52);background:#fffaf5a8;color:#423028f0;padding:.5rem .9rem;font-size:.82rem;font-weight:700;line-height:1;box-shadow:0 8px 20px #1a100a33;pointer-events:auto;touch-action:manipulation;transition:transform .14s ease,filter .14s ease,border-color .16s ease}.bridge-menu-toggle.is-active,.bridge-menu-toggle:hover{border-color:#d5a07ebd;filter:brightness(1.02);transform:translateY(-1px)}.bridge-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#100a068c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:auto;display:flex;align-items:center;justify-content:center}.bridge-menu-backdrop[hidden]{display:none}.bridge-menu-panel{position:relative;width:min(90vw,420px);max-height:85vh;overflow:hidden;border-radius:18px;border:1px solid rgba(120,85,60,.18);background:#fffaf2f5;box-shadow:0 22px 60px #28190f52;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:1.4rem 1.5rem 1.2rem;display:flex;flex-direction:column;animation:bridge-menu-enter .26s ease-out}@keyframes bridge-menu-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.bridge-menu-panel button{outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.bridge-menu-panel button:focus:not(:focus-visible){outline:none}.bridge-menu-main{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%;transition:transform .28s ease,opacity .28s ease}.bridge-menu-main--hidden{display:none}.bridge-menu-subpanel{flex-direction:column;width:100%;max-height:calc(85vh - 4rem);overflow-y:auto}.bridge-menu-subpanel[hidden]{display:none!important}.bridge-menu-subpanel:not([hidden]){display:flex}.bridge-menu-subpanel--visible{animation:bridge-subpanel-enter .28s ease-out}@keyframes bridge-subpanel-enter{0%{transform:translate(30%);opacity:0}to{transform:translate(0);opacity:1}}.bridge-menu-subpanel-topbar{display:flex;align-items:center;padding:.1rem 0 .6rem;gap:.4rem}.bridge-menu-subpanel-back,.bridge-menu-subpanel-close{display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;font-family:inherit;border-radius:8px;transition:background .15s,color .15s;flex-shrink:0}.bridge-menu-subpanel-back{gap:.25rem;padding:.3rem .5rem;color:#60473999;font-size:.74rem;font-weight:600}.bridge-menu-subpanel-back:hover{background:#78553c12;color:#423028d9}.bridge-menu-subpanel-title{flex:1;font-size:.92rem;font-weight:700;color:#3e2f23;margin:0;text-align:center;letter-spacing:.01em}.bridge-menu-subpanel-close{width:28px;height:28px;color:#60473973;font-size:1.05rem;line-height:1}.bridge-menu-subpanel-close:hover{background:#78553c12;color:#423028d9}.bridge-menu-subpanel-deco{display:flex;justify-content:center;gap:3px;padding-bottom:.7rem}.bridge-menu-subpanel-deco .bridge-deco-seg{width:16px;height:4px}.bridge-menu-subpanel-body{font-size:.84rem;line-height:1.6;color:#4c372dd9;padding:.6rem .3rem 0;border-top:1px solid rgba(120,85,60,.08)}.bridge-menu-subpanel-body p{margin:0 0 .7rem}.bridge-menu-subpanel-body p:last-child{margin-bottom:0}.bridge-menu-subpanel-body a{color:#c4744a;text-decoration:underline;text-decoration-color:#c4744a4d}.bridge-menu-subpanel-body a:hover{text-decoration-color:#c4744ab3}.bridge-menu-hero{display:flex;flex-direction:column;align-items:center;gap:.5rem}.bridge-menu-logo{height:44px;width:auto;display:block;object-fit:contain}.bridge-menu-bridge-deco{display:flex;gap:4px;align-items:end}.bridge-deco-seg{width:28px;height:8px;border-radius:3px;animation:bridge-deco-shimmer 2.4s ease-in-out infinite alternate}.bridge-deco-seg:nth-child(1){background:#f28c8c;animation-delay:0s}.bridge-deco-seg:nth-child(2){background:#f4b183;animation-delay:.15s}.bridge-deco-seg:nth-child(3){background:#f6d365;animation-delay:.3s}.bridge-deco-seg:nth-child(4){background:#a8e6a3;animation-delay:.45s}.bridge-deco-seg:nth-child(5){background:#9cc9ff;animation-delay:.6s}.bridge-deco-seg:nth-child(6){background:#b5a7ff;animation-delay:.75s}.bridge-deco-seg:nth-child(7){background:#d6b4f7;animation-delay:.9s}@keyframes bridge-deco-shimmer{0%{opacity:.7;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.3)}to{opacity:.7;transform:scaleY(1)}}.bridge-menu-nav{display:flex;flex-direction:column;align-items:center;width:100%;max-width:280px;gap:.4rem}.bridge-menu-section-diagnostics{display:flex;flex-direction:column;width:100%;gap:.5rem}.bridge-menu-row{display:flex;align-items:center;justify-content:space-between;gap:.62rem;width:100%;min-height:42px;border-radius:12px;border:1px solid rgba(120,85,60,.16);background:#ffffffa6;padding:.3rem .72rem}.bridge-menu-label{color:#4c372de6;font-size:.88rem;font-weight:600}.bridge-menu-audio,.bridge-menu-item{width:100%;min-height:48px;border-radius:12px;border:1px solid rgba(120,85,60,.18);background:#ffffffa6;color:#37281eeb;font-size:.92rem;font-weight:700;text-align:center;padding:.56rem .74rem;cursor:pointer;transition:transform .14s ease,filter .14s ease,border-color .16s ease}.bridge-menu-item:hover,.bridge-menu-item:focus-visible{transform:translateY(-1px);filter:brightness(1.02);border-color:#c48a699e}.bridge-menu-audio,.bridge-menu-quality{width:88px;min-width:88px;min-height:36px;border-radius:999px;padding:.32rem .56rem;font-size:.78rem;justify-self:end;text-align:center}.bridge-menu-toggle-pill{display:inline-flex;align-items:center;justify-content:center;border-color:#78553c38;background:#ffffffe0}.bridge-menu-toggle-pill[aria-pressed=true]{background:linear-gradient(180deg,#ffeddcfa,#ffe3c9f5);border-color:#c28b6aa3}.bridge-menu-close{width:100%;max-width:280px;min-height:42px;border-radius:12px;border:1px solid rgba(120,85,60,.14);background:#f0e6daa6;color:#37281ee0;font-size:.92rem;font-weight:700;padding:.4rem .74rem;cursor:pointer;text-align:center;transition:transform .14s ease,filter .14s ease,border-color .16s ease}.bridge-menu-close:hover{transform:translateY(-1px);filter:brightness(1.02);border-color:#c48a6980}.bridge-menu-footer{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding-top:.35rem;border-top:1px solid rgba(120,85,60,.08);width:100%;max-width:280px}.bridge-menu-footer-row{display:flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:wrap}.bridge-menu-footer-link{font-size:.72rem;color:#6047398c;background:none;border:none;padding:0;cursor:pointer;text-decoration:none;transition:color .15s;font-family:inherit}.bridge-menu-footer-link:hover{color:#604739e6}.bridge-menu-support-link{display:inline-flex;align-items:center;gap:.3rem}.bridge-menu-support-link svg{opacity:.7;transition:opacity .15s}.bridge-menu-support-link:hover svg{opacity:1}.bridge-menu-footer-sep{font-size:.6rem;color:#60473940;line-height:1}.bridge-menu-renderer-label{font-size:.6rem;color:#60473959;font-family:monospace;text-align:center;padding-top:.1rem}.bridge-dev-cam-toggle[hidden]{display:none}.bridge-dev-cam-toggle{position:fixed;bottom:calc(max(.7rem,env(safe-area-inset-bottom)) + var(--bridge-vv-offset, 0px) + 2px);right:calc(max(.78rem,env(safe-area-inset-right)) + .2rem + 52px);z-index:11;width:44px;height:44px;border-radius:999px;padding:0;border:1.5px solid rgba(200,170,130,.55);background:#fff8eeeb;color:#5a3e2e;font-size:18px;line-height:1;cursor:pointer;display:grid;place-items:center;pointer-events:auto;touch-action:manipulation;outline:none;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px #5032141f;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.bridge-dev-cam-toggle:hover{background:#fffcf5fa;box-shadow:0 4px 18px #50321438;transform:scale(1.03)}.bridge-dev-cam-toggle.active{border-color:#c89664d9;background:#fff0dcf2}.bridge-dev-cam-hud{position:fixed;bottom:calc(max(.7rem,env(safe-area-inset-bottom)) + var(--bridge-vv-offset, 0px) + 52px);right:calc(max(.78rem,env(safe-area-inset-right)) + .2rem);z-index:11;background:#000000b3;color:#d4f0ff;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.5;padding:8px 12px;border-radius:6px;white-space:pre;pointer-events:none;min-width:230px}@media (prefers-reduced-motion: reduce){.bridge-menu-panel{animation:none}.bridge-deco-seg{animation:none;opacity:.85}.bridge-menu-toggle,.bridge-menu-close,.bridge-menu-item{transition:none}.bridge-menu-toggle.is-active,.bridge-menu-toggle:hover,.bridge-menu-close:hover,.bridge-menu-item:hover,.bridge-menu-item:focus-visible{transform:none}.bridge-menu-main{transition:none}.bridge-menu-subpanel--visible{animation:none}}.bridge-menu-toggle:focus-visible,.bridge-menu-close:focus-visible,.bridge-menu-audio:focus-visible,.bridge-menu-item:focus-visible,.bridge-menu-footer-link:focus-visible,.bridge-menu-subpanel-back:focus-visible,.bridge-menu-subpanel-close:focus-visible{outline:2px solid rgba(245,139,99,.78);outline-offset:2px}.bridge-instructions{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1400;pointer-events:none}.bridge-instructions-card{position:relative;z-index:1401;margin:0;padding:24px 32px;border-radius:20px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 50px #00000014;color:#6b5a4a;font-size:1.05rem;font-weight:500;line-height:1.4;text-align:center;transform:translateY(8px);opacity:0;transition:opacity .42s ease,transform .42s ease,filter .62s ease;pointer-events:none;-webkit-user-select:none;user-select:none;max-width:min(88vw,560px)}.bridge-instructions-title{display:block}.bridge-instructions-sub{display:block;margin-top:.2rem;font-size:.9rem;font-weight:500;color:#6b5a4ae6}.bridge-instructions-tip{display:block;margin-top:.26rem;font-size:.8rem;font-weight:500;color:#6b5a4abf}.bridge-instructions-card.is-visible{opacity:1;transform:translateY(0)}.bridge-instructions-card.is-hidden{opacity:0;transform:translateY(-30px) scale(1.05)}.bridge-instructions-card.is-dissolving{filter:blur(12px);letter-spacing:.035em}.bridge-chat-ui{position:fixed;right:calc(max(.78rem,env(safe-area-inset-right)) + .2rem);bottom:calc(max(.7rem,env(safe-area-inset-bottom)) + var(--bridge-vv-offset, 0px));z-index:10;min-height:44px;display:flex;align-items:flex-end;pointer-events:none}.bridge-chat-toggle[hidden]{display:none}.bridge-chat-toggle{width:44px;height:44px;border-radius:999px;padding:0;border:1.5px solid rgba(200,170,130,.55);background:#fff8eeeb;color:#5a3e2e;font-size:.92rem;line-height:1;display:grid;place-items:center;pointer-events:auto;touch-action:manipulation;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px #5032141f;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.bridge-chat-toggle-icon{display:flex;align-items:center;justify-content:center;line-height:1;transition:transform .22s ease,opacity .18s ease}.bridge-chat-toggle-icon svg{display:block;width:20px;height:20px}.bridge-chat-toggle:hover,.bridge-chat-toggle.is-active{background:#fffcf5fa;box-shadow:0 4px 18px #50321438;transform:scale(1.03)}.bridge-chat-toggle.is-active .bridge-chat-toggle-icon{transform:rotate(90deg) scale(1.06)}.bridge-chat-panel{position:absolute;bottom:1px;right:54px;width:min(320px,66vw);border:1px solid rgba(232,212,196,.78);border-radius:12px;background:#fffcf8eb;box-shadow:0 10px 22px #1c14103d;padding:.48rem;display:grid;gap:.4rem;opacity:0;transform:translate3d(8px,calc(-1 * var(--bridge-chat-keyboard-offset, 0px)),0);pointer-events:none;transition:opacity .2s ease,transform .22s ease;user-select:text;-webkit-user-select:text;touch-action:auto}.bridge-chat-panel.open-left{right:54px;left:auto;transform:translate3d(-8px,calc(-1 * var(--bridge-chat-keyboard-offset, 0px)),0);transform-origin:right bottom}.bridge-chat-panel.open-right{left:54px;right:auto;transform:translate3d(8px,calc(-1 * var(--bridge-chat-keyboard-offset, 0px)),0);transform-origin:left bottom}.bridge-chat-panel.is-open{opacity:1;transform:translate3d(0,calc(-1 * var(--bridge-chat-keyboard-offset, 0px)),0);pointer-events:auto}.bridge-chat-title{margin:0;font-size:.74rem;font-weight:700;color:#5f4538db;letter-spacing:.03em;text-transform:uppercase}.bridge-chat-input{width:100%;border:1px solid #e4cabc;border-radius:8px;background:#fffefd;color:#402e27;padding:.42rem .56rem;font-size:.84rem;min-height:46px;resize:none;line-height:1.35;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default;touch-action:auto}.bridge-chat-input:focus{outline:none;border-color:#f0b395;box-shadow:0 0 0 3px #f58b632e}@media (pointer: coarse){.bridge-chat-input{font-size:16px}}.bridge-chat-actions{display:flex;justify-content:flex-end;gap:.42rem}.bridge-chat-send{min-height:40px;padding:.44rem .7rem;border-radius:8px;border:1px solid #dfc3b2;background:#fff7f0;color:#5f3e32;font-weight:700;white-space:nowrap;touch-action:manipulation}.bridge-chat-cancel{min-height:40px;padding:.44rem .7rem;border-radius:8px;border:1px solid #d7d7dc;background:#fffffff2;color:#574740;font-weight:600;white-space:nowrap;touch-action:manipulation}.bridge-mobile-hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none}.bridge-joystick{position:fixed;left:calc(max(.68rem,env(safe-area-inset-left)) + .24rem);bottom:calc(max(.68rem,env(safe-area-inset-bottom)) + 2.2rem);width:118px;height:118px;display:grid;place-items:center;pointer-events:auto;touch-action:none}.bridge-joystick-base{position:relative;width:100%;height:100%;border-radius:999px;border:1px solid rgba(215,228,238,.5);background:radial-gradient(circle at 30% 30%,#e5f0f824,#1e272f94);box-shadow:0 10px 24px #110c0a40}.bridge-joystick-thumb{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:999px;border:1px solid rgba(237,213,195,.72);background:radial-gradient(circle at 30% 30%,#fff7eddb,#debba094);transform:translate(-50%,-50%);transition:transform 90ms ease-out}.bridge-joystick-base.is-active .bridge-joystick-thumb{transition:none}.bridge-mobile-actions{position:fixed;right:calc(max(.7rem,env(safe-area-inset-right)) + .24rem);bottom:calc(max(.68rem,env(safe-area-inset-bottom)) + 2.2rem);display:grid;gap:.55rem;justify-items:end;pointer-events:auto}.bridge-mobile-actions button{min-height:44px;min-width:44px;border-radius:12px;border:1px solid rgba(229,206,187,.82);background:#fffbf7eb;color:#5a3f33;font-weight:700;box-shadow:0 8px 20px #170f0c38;touch-action:manipulation}.bridge-mobile-chat{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;padding:0}.bridge-mobile-actions .bridge-mobile-letgo{background:#fff2e5f2;border-color:#ebba98db}.bridge-mobile-actions .bridge-mobile-chat.is-active{border-color:#ebb28ce6;background:#ffeee2f2}.scene-debug-camera{position:fixed;bottom:.5rem;left:.5rem;z-index:9999;width:min(280px,42vw);border:1px solid rgba(100,200,255,.3);border-radius:10px;background:#0c121ce0;color:#dcebfaeb;padding:.5rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.68rem;max-height:90vh;overflow-y:auto;pointer-events:all}.scene-debug-camera h3{margin:0 0 .4rem;font-size:.74rem;color:#a0d2ffe6;display:flex;align-items:center;justify-content:space-between}.scene-debug-toggle{background:#64b4ff33;border:1px solid rgba(100,180,255,.3);border-radius:4px;color:#b4dcffe6;cursor:pointer;width:22px;height:22px;font-size:.8rem;line-height:1}.scene-debug-camera fieldset{border:1px solid rgba(100,180,255,.15);border-radius:6px;padding:.3rem .4rem;margin:0 0 .3rem}.scene-debug-camera legend{font-size:.62rem;color:#8cc8ffb3;text-transform:uppercase;letter-spacing:.04em;padding:0 .3em}.scene-debug-camera label{display:flex;align-items:center;gap:.3rem;margin:.15rem 0;color:#c8e1f5cc}.scene-debug-camera input[type=range]{flex:1;height:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#3c78c833;border-radius:6px;outline:none;cursor:pointer}.scene-debug-camera input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:#64b4ffe6;cursor:pointer}.scene-debug-camera label>span{min-width:3.2em;text-align:right;font-variant-numeric:tabular-nums;color:#78c8ffe6}.scene-debug-phase{color:#ffc864e6;font-weight:600}.scene-debug-readout{white-space:pre;font-size:.62rem;color:#b4dcfab3;line-height:1.5;padding:.3rem 0;border-top:1px solid rgba(100,180,255,.1);margin-top:.2rem}.scene-debug-actions{display:flex;gap:.4rem;margin-top:.3rem}.scene-debug-actions button{flex:1;padding:.3rem .5rem;border:1px solid rgba(100,180,255,.3);border-radius:6px;background:#3c82dc40;color:#b4dcfff2;cursor:pointer;font-size:.66rem;font-family:inherit;transition:background .12s}.scene-debug-actions button:hover{background:#3c82dc73}.scene-dev-panel{position:fixed;top:calc(62px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));right:auto;z-index:10000;width:min(360px,calc(100vw - 1.2rem));display:grid;gap:.42rem;border:1px solid rgba(95,214,255,.45);border-radius:12px;background:#0a121aeb;color:#e4f0fbf0;padding:.56rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 14px 32px #0000005c;pointer-events:auto;font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.68rem;max-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1rem);overflow:auto}.scene-dev-panel[hidden]{display:none!important;pointer-events:none!important}.scene-dev-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.scene-dev-panel.is-dragging .scene-dev-panel-head{cursor:grabbing}.scene-dev-panel-head h3{margin:0;font-size:.76rem;letter-spacing:.03em;text-transform:uppercase;color:#a3dcfff2}.scene-dev-panel-close{width:32px;height:32px;border-radius:6px;border:1px solid rgba(121,214,255,.42);background:#356d8b5c;color:#dff5fff5;font-size:.94rem;line-height:1;padding:0;cursor:pointer;pointer-events:auto;position:relative;z-index:2}.scene-dev-toggle{display:flex;align-items:center;gap:.44rem;color:#cfe2f1f2}.scene-dev-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#5dc4ff}.scene-dev-hint{margin:0;color:#a2c2d9db}.scene-dev-inspector,.scene-dev-object-list{margin:0;border:1px solid rgba(103,183,225,.25);border-radius:8px;background:#050c1394;color:#dfecf8eb;padding:.42rem;min-height:88px;max-height:180px;overflow:auto;white-space:pre-wrap;line-height:1.45}.scene-dev-object-list{max-height:220px}.scene-dev-label-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998}.scene-dev-label{position:fixed;transform:translate(-9999px,-9999px);padding:.1rem .24rem;border-radius:4px;border:1px solid rgba(84,231,190,.68);background:#001318bd;color:#bdffecf5;font-family:SF Mono,Fira Code,Menlo,monospace;font-size:.58rem;line-height:1.25;white-space:nowrap;text-shadow:0 1px 0 rgba(0,0,0,.6)}.pet-debug-panel{position:fixed;top:.7rem;right:.7rem;z-index:12;width:min(320px,44vw);border:1px solid rgba(223,233,242,.38);border-radius:12px;background:#12181fc7;color:#e9f1f8eb;padding:.52rem;display:grid;gap:.42rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}.pet-debug-panel h2{margin:0;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:#d6e3eedb}.pet-debug-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.34rem}.pet-debug-image-cell{display:grid;gap:.16rem}.pet-debug-caption{font-size:.58rem;line-height:1.15;letter-spacing:.02em;color:#d5e0eccc}.pet-debug-mask{width:100%;aspect-ratio:1;border:1px solid rgba(215,227,236,.3);border-radius:8px;background:#0c0f14ad;object-fit:cover;image-rendering:pixelated;image-rendering:crisp-edges}@media (max-width: 900px){.pet-debug-panel{width:min(286px,52vw)}}.pet-debug-row{display:flex;align-items:center;justify-content:space-between;gap:.45rem;font-size:.71rem}.pet-debug-value{color:#f8e1bff5;font-weight:700;font-variant-numeric:tabular-nums}.pet-debug-swatches{display:flex;align-items:center;gap:.28rem}.pet-debug-swatch{width:14px;height:14px;border-radius:3px;border:1px solid rgba(255,255,255,.34);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.pet-debug-swatch:hover{transform:scale(1.3);box-shadow:0 0 0 2px #00000040;z-index:1}.convo-photo-debug-color-picker{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.bridge-pet-inspector{position:fixed;top:calc(72px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));right:auto;z-index:10020;width:min(380px,calc(100vw - 1.2rem));max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 1rem);min-width:min(280px,calc(100vw - 1rem));pointer-events:auto}.bridge-pet-inspector[hidden]{display:none!important;pointer-events:none!important}.bridge-pet-inspector-card{width:100%;max-height:min(80vh,560px);overflow:auto;background:#0c1016eb;color:#e8f0f6;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:.6rem .7rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.4;pointer-events:auto}.bridge-pet-inspector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.bridge-pet-inspector.is-dragging .bridge-pet-inspector-header{cursor:grabbing}.bridge-pet-inspector-header h3{margin:0;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:#d6e3eedb}.bridge-pet-inspector-close{background:none;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#ccc;width:32px;height:32px;padding:0;cursor:pointer;font-size:13px;line-height:1;pointer-events:auto;position:relative;z-index:2}.bridge-pet-inspector-controls{border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:.4rem;margin:.4rem 0}.bridge-pet-inspector-controls legend{font-size:10px;color:#f8e1bfcc;padding:0 4px}.bridge-pet-inspector-controls label{display:flex;align-items:center;gap:.3rem;font-size:10px;margin:.2rem 0}.bridge-pet-inspector-controls input[type=range]{flex:1;height:16px;accent-color:#f58b63}.bridge-pet-inspector-controls span{min-width:3em;text-align:right;font-variant-numeric:tabular-nums;color:#f8e1bff5}.bridge-pet-inspector-toggle{display:flex;align-items:center;gap:.4rem;font-size:10px;margin:.3rem 0;cursor:pointer}.scene-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.bridge-release-prompt{position:absolute;left:50%;bottom:.95rem;transform:translate(-50%);background:#1c1412db;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.36rem .76rem;font-size:.76rem;font-weight:700;white-space:nowrap}.pet-tooltip{position:absolute;transform:translate(-50%,-124%) scale(.98);background:#291d1ae6;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;max-width:280px;padding:.28rem .62rem;font-size:.75rem;font-weight:700;line-height:1.25;text-align:center;white-space:nowrap;opacity:0;transition:opacity .17s ease,transform .18s ease}.pet-tooltip.is-visible{opacity:1;transform:translate(-50%,-130%) scale(1.03)}.pet-bubble{position:absolute;transform:translate(-50%,-145%);background:#fffffff2;color:#3c2a24;border:1px solid #e7cfbf;border-radius:999px;padding:.24rem .58rem;font-size:.75rem;font-weight:700;white-space:nowrap;box-shadow:0 8px 18px #2d1c1529}.pet-bubble-pat{background:#fff8ef;border-color:#f2d4bf;color:#6b422f}.player-bubble{position:absolute;transform:translate(-50%,-145%);background:#fffbf1f7;color:#4a342c;border:1px solid #e9d4be;border-radius:14px;padding:.3rem .62rem;font-size:.76rem;font-weight:700;line-height:1.3;white-space:normal;max-width:min(300px,72vw);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;box-shadow:0 8px 18px #2819142e}.player-bubble.player-bubble-fpv{position:fixed;z-index:22;transform:translate(-50%,-50%);font-size:.88rem;max-width:min(360px,80vw);padding:.45rem .82rem;border-radius:16px;box-shadow:0 6px 24px #28191447;animation:fpv-bubble-rise .35s ease-out}@keyframes fpv-bubble-rise{0%{opacity:0;transform:translate(-50%,-30%)}to{opacity:1;transform:translate(-50%,-50%)}}.scene-ui-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.scene-lettinggo-vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 48%,#fff4db57,#fff4db24 36%,#fff4db00 66%),radial-gradient(circle at 50% 50%,#0c080700 43%,#160e0c57);transition:opacity .42s ease}.scene-white-fade{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;opacity:0;background:#fff;pointer-events:none;transition:opacity .24s linear}.bridge-modal,.goodbye-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:flex-start;justify-content:center;padding:clamp(1.8rem,8vh,4.8rem) clamp(.75rem,4vw,1.5rem) max(1rem,env(safe-area-inset-bottom));pointer-events:auto;background:#140e0a6b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow-y:auto;-webkit-overflow-scrolling:touch}.bridge-modal[hidden],.goodbye-panel[hidden]{pointer-events:none;display:none}.bridge-modal-card,.goodbye-card{width:100%;min-width:0;max-width:520px;background:#f3efe8;border-radius:18px;padding:1.5rem;box-shadow:0 10px 30px #0000002e,inset 0 1px #fff9;border:1px solid rgba(200,160,120,.25);color:#3e2f23;box-sizing:border-box}@media (max-width: 600px){.bridge-modal,.goodbye-panel{padding:clamp(.75rem,5vh,1.5rem) .5rem max(.75rem,env(safe-area-inset-bottom))}.bridge-modal-card,.goodbye-card{padding:1.1rem 1rem;border-radius:14px;font-size:.95rem}}@media (max-width: 360px){.bridge-modal-card,.goodbye-card{padding:.9rem .85rem}}.bridge-modal-card,.goodbye-card,.bridge-modal-card h2,.goodbye-card h2{margin:0 0 .35rem;font-size:1.2rem}.bridge-modal-card p,.goodbye-help{margin:0 0 .75rem;color:#6a5249;font-size:.9rem}.bridge-modal-field{display:grid;gap:.38rem;text-align:left;margin-bottom:.68rem;font-weight:600;color:#4d342a;font-size:.84rem}.bridge-modal-field textarea,.bridge-modal-field input{background:#fffefc}.bridge-modal-actions{display:flex;gap:.52rem;flex-wrap:wrap}.bridge-modal-actions button,.goodbye-hold-btn,.goodbye-finish-btn{min-height:44px}.goodbye-card{text-align:center;max-height:min(80vh,560px)}.goodbye-mic-icon{width:18px;height:18px;display:inline-grid;place-items:center}.goodbye-mic-icon svg{width:100%;height:100%;fill:currentColor}.goodbye-hold-btn{width:min(100%,360px);margin:.2rem auto .6rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;background:#fff4eb;border-color:#ebbfa6;color:#613f32;font-weight:700}.goodbye-hold-btn.is-holding{background:#ffe7d8;border-color:var(--brand);box-shadow:0 0 0 4px #f58b6333}.goodbye-meter{width:min(100%,320px);margin:0 auto .68rem;height:7px;border-radius:999px;overflow:hidden;background:#f2dacb}.goodbye-meter-fill{width:100%;height:100%;background:linear-gradient(90deg,#f2a072,#f58b63);transform-origin:left center;transform:scaleX(0)}.goodbye-fallback{margin-bottom:.55rem}.goodbye-finish-btn{min-width:190px}#app.route-remembrance{position:relative;isolation:isolate}#app.route-remembrance>.app-header{z-index:55;isolation:isolate}#app.route-remembrance>.app-main-region,#app.route-remembrance>.site-footer{position:relative;z-index:10}.remembrance-card{width:min(94vw,860px);max-width:860px;margin:0 auto;border:none;box-shadow:none;background:transparent;padding:.5rem}#app.route-remembrance .remembrance-card{position:relative;z-index:10;background:transparent}.remember-portrait{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid #d4bdac;image-rendering:auto}.remember-not-found{width:min(94vw,920px);margin-inline:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem 2rem;min-height:55vh}.not-found-scene{width:min(340px,80vw);margin-bottom:1.2rem;animation:notFoundFadeIn 1.2s ease-out}.not-found-bridge-svg{width:100%;height:auto}.not-found-cat-walk{animation:notFoundCatWalk 8s ease-in-out infinite}@keyframes notFoundCatWalk{0%{transform:translate(40px,125px);opacity:0}8%{opacity:.9}50%{transform:translate(155px,52px);opacity:.9}92%{opacity:.9}to{transform:translate(270px,125px);opacity:0}}.not-found-sparkle{animation:notFoundSparkle 3s ease-in-out infinite}.not-found-sparkle-1{animation-delay:0s}.not-found-sparkle-2{animation-delay:.6s}.not-found-sparkle-3{animation-delay:1.2s}.not-found-sparkle-4{animation-delay:1.8s}.not-found-sparkle-5{animation-delay:2.4s}@keyframes notFoundSparkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:.7;transform:scale(1.3)}}.remember-not-found-title{font-size:clamp(1.2rem,5vw,1.75rem);font-weight:700;color:#5a3e2f;margin:0 0 .5rem;animation:notFoundFadeIn 1s ease-out .2s both}.remember-not-found-subtitle{font-size:.95rem;color:#8b7264;margin:0 0 1.6rem;line-height:1.6;animation:notFoundFadeIn 1s ease-out .4s both}.remember-not-found .remember-actions{justify-content:center;animation:notFoundFadeIn 1s ease-out .6s both}@keyframes notFoundFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.not-found-cat,.not-found-sparkle,.remember-not-found-title,.remember-not-found-subtitle,.remember-not-found .remember-actions{animation:none!important;opacity:1!important;transform:none!important}}.not-found-card{max-width:960px;margin:0 auto}.not-found-card.not-found-card-chromeless,.not-found-card.not-found-card-chromeless.card{background:transparent!important;border:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:0}.remember-actions{display:flex;flex-wrap:wrap;gap:.58rem}.remember-actions[hidden]{display:none!important}.remember-actions button{min-height:42px;min-width:132px;border-radius:999px;font-weight:600}.remember-share-btn.remember-action-styled{background:linear-gradient(135deg,#ffe5d4,#ffd3b8);border-color:#dc966e80}.remember-share-locked-note{margin:-.25rem 0 0;color:#6d5548;font-size:.84rem}.remember-share-locked-note[hidden]{display:none!important}.remember-bridge-lock-note{margin:-.25rem 0 0;color:#6d5548;font-size:.84rem}.remember-bridge-lock-note[hidden]{display:none!important}.remember-bridge-btn.is-locked{opacity:.62;cursor:not-allowed}.remember-privacy-subtext{margin:0;color:#755b4e;font-size:.85rem}.remember-visibility-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.48rem}.remember-visibility-option{border:1px solid #dac4b3;border-radius:12px;background:#fffdf9;color:#543d32;display:flex;align-items:center;gap:.42rem;text-align:left;min-height:68px;padding:.48rem .55rem}.remember-visibility-option:hover,.remember-visibility-option:focus-visible{border-color:#cfaa93}.remember-visibility-option:focus-visible{outline:2px solid rgba(245,139,99,.76);outline-offset:2px}.remember-visibility-option.is-selected{border-width:2px;border-color:#d08a66;box-shadow:0 0 0 3px #f58b631f;background:#fff7f0}.remember-visibility-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;color:#6a4d41}.remember-visibility-icon svg{width:100%;height:100%;display:block}.remember-visibility-copy{display:grid;gap:.14rem}.remember-visibility-label{color:#4f382f;font-size:.88rem;font-weight:700}.remember-visibility-help{color:#765d51;font-size:.75rem;line-height:1.25}.remember-visibility-message{margin:0;color:#6c5348;font-size:.83rem;line-height:1.4}.remember-moderation-status{margin:.4rem 0 0;font-size:.82rem;line-height:1.4;padding:.4rem .6rem;border-radius:6px}.remember-moderation-pending{background:#c8a0501f;color:#8a6e30}.remember-moderation-approved{background:#64a0641f;color:#3e6e3e}.remember-moderation-rejected{background:#b450501a;color:#8a3a3a}.remember-feedback{min-height:1.2rem;margin:-.36rem 0 0;color:#6f5649;font-size:.84rem}.remember-feedback[hidden]{display:none!important}.route-skeleton{padding:1.5rem var(--page-padding)}.skeleton-block{border-radius:8px;background:linear-gradient(105deg,#ffffff2e 22%,#ffffff94,#fff3 78%),linear-gradient(180deg,#f2e2d3,#e6d0bc);background-size:220% 100%,100% 100%;animation:remember-portrait-shimmer 1.4s ease-in-out infinite}.remember-wall-empty{margin:0;color:#725a4c;font-size:.86rem}.remember-wall-feed{display:grid;gap:.74rem}.remember-compose-modal,.remember-moderation-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c120c57;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));z-index:1100}.remember-compose-modal[hidden],.remember-moderation-modal[hidden]{display:none!important}.remember-compose-modal-card,.remember-moderation-modal-card{width:min(92vw,560px);min-width:min(280px,92vw);max-height:min(80vh,720px);overflow:auto;border-radius:16px;border:1px solid #d8c1af;background:#fffcf7fa;box-shadow:0 24px 46px #281c1633;padding:.88rem;display:grid;gap:.62rem}.remember-compose-close,.remember-moderation-close{justify-self:end;border:1px solid #ccb19c;background:#fff;color:#694e40;width:36px;height:36px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .15s ease,border-color .15s ease}.remember-compose-close:hover,.remember-moderation-close:hover{background:#f5ebe3;border-color:#b89a86}.remember-compose-close:focus-visible,.remember-moderation-close:focus-visible{outline:2px solid rgba(217,139,98,.84);outline-offset:2px}.remember-field{display:grid;gap:.35rem;color:#5d4338;font-size:.86rem;font-weight:600}.remember-author-input,.remember-note-input{width:100%}.remember-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.remember-upload-grid[hidden]{display:none}.remember-upload-card{border:1px dashed #ccb39f;border-radius:14px;background:radial-gradient(circle at 8% 12%,rgba(246,241,233,.7) 0%,transparent 48%),#fffdf8;padding:.62rem;display:grid;gap:.2rem;align-content:start;color:#5c4439;cursor:pointer;min-height:148px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.remember-upload-card:hover{border-color:#be9f89;box-shadow:0 8px 22px #7253441f}.remember-upload-card:focus-visible{outline:none;border-color:#b88f77;box-shadow:0 0 0 3px #b88f7738}.remember-upload-card.is-dragover{border-color:#b88f77;box-shadow:0 0 0 3px #b88f7733;transform:translateY(-1px)}.remember-upload-card.is-processing{opacity:.85}.remember-upload-card.has-file{border-style:solid;border-color:#b9957f}.remember-upload-card-video{opacity:.9}.remember-upload-icon{font-size:1.1rem}.remember-upload-title{font-size:.9rem;font-weight:700}.remember-upload-help{font-size:.78rem;color:#6e5649;line-height:1.35}.remember-upload-selected{font-size:.76rem;color:#735c4e}.remember-upload-soon{font-size:.78rem;color:#7a6155}.remember-upload-preview-wrap{margin-top:.2rem;border-radius:10px;overflow:hidden;border:1px solid #d8c0b1}.remember-upload-preview{width:100%;aspect-ratio:1.25;object-fit:cover;display:block;image-rendering:pixelated;image-rendering:crisp-edges}.remember-upload-remove{justify-self:start;margin-top:.22rem;border:none;background:transparent;color:#7b4e43;padding:0;font-size:.76rem;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.remember-moderation-actions{display:flex;flex-wrap:wrap;gap:.4rem}.remember-cancel-reject-btn{min-height:40px;border-radius:10px;border:1px solid #ccb19c;background:#fff;color:#614c40;padding:.38rem .7rem;font-size:.78rem;font-weight:700}.remember-cancel-reject-btn:focus-visible,.remember-confirm-reject-btn:focus-visible{outline:2px solid rgba(217,139,98,.84);outline-offset:2px}.pet-slug-card{display:grid;gap:.82rem}.pet-slug-subtitle{margin:0}.pet-slug-profile{display:flex;flex-wrap:wrap;gap:.9rem;align-items:flex-start}.pet-slug-portrait{margin:0}.pet-slug-portrait img,.pet-slug-portrait-empty{width:124px;height:124px;border-radius:14px;border:1px solid #e6cfbf;background:#fff7f0}.pet-slug-portrait img{object-fit:cover}.pet-slug-portrait-empty{display:grid;place-items:center;color:#86695f;font-size:.8rem;text-align:center;padding:.6rem}.pet-slug-meta{display:grid;gap:.18rem}.pet-slug-meta p{margin:0;color:var(--text)}.pet-slug-section{border:1px solid #efdbcd;border-radius:12px;background:#fffcfa;padding:.72rem .8rem}.pet-slug-section h2{margin:0 0 .35rem;font-size:.98rem}.pet-slug-section p{margin:.2rem 0;color:#4b352c}.muted{color:#876e64}a.primary{display:inline-block;border:1px solid var(--brand);border-radius:12px;padding:.68rem 1rem;background:var(--brand);color:#fff;font-weight:700;text-decoration:none}a.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.bridge-actions{display:flex;flex-wrap:wrap;gap:.5rem}.pet-slug-bridge-lock-note{margin:0;color:#6d5548;font-size:.84rem}@media (hover: none){.welcome-pet-overlay{opacity:1;background:linear-gradient(to top,#18100d3d,#18100d14 52%,#18100d05)}}@media (max-width: 780px){body{--page-padding: .75rem;padding:0}.audio-toggle svg{width:17px;height:17px}.card{padding:1rem;border-radius:16px}.onboarding-convo-card{width:100%;max-width:100%;min-height:calc(var(--app-vh, 1vh) * 100 - 1.5rem);border-radius:16px}.welcome-back-card{width:100%;max-width:100%;min-height:calc(var(--app-vh, 1vh) * 100 - 1.5rem);border-radius:16px;padding:.96rem}input[type=text],input[type=date],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=url],textarea,select{font-size:16px}.welcome-back-grid{grid-template-columns:1fr}.welcome-pet-action{min-height:36px;font-size:.78rem}.welcome-add-card{min-height:160px}.convo-stage{min-height:430px}.convo-panel,.convo-step-companion,.convo-field,.convo-question-wrap,.convo-source-panel,.convo-draw-host,.convo-photo-debug,.convo-photo-hint,.convo-family-note{width:100%;max-width:100%;min-width:0}.convo-question,.convo-companion-headline,.convo-subtext,.welcome-back-header h1,.welcome-back-header p{max-width:min(100%,24ch);overflow-wrap:anywhere;word-break:break-word;text-wrap:balance}.convo-primary,.convo-secondary{width:100%;min-width:0;max-width:100%}.convo-sound-input-row{grid-template-columns:1fr}.convo-sound-add{width:100%;min-width:0}.convo-sound-actions{width:100%;display:grid;grid-template-columns:1fr}.convo-source-toggle{grid-template-columns:1fr}.convo-source-tab{width:100%}.convo-family-toggle{grid-template-columns:1fr}.convo-family-list{width:100%;grid-auto-flow:column;grid-auto-columns:minmax(156px,1fr);grid-template-columns:none;overflow-x:auto;padding-bottom:.2rem;justify-items:stretch}.convo-family-card{min-height:146px;scroll-snap-align:start}.convo-family-skeleton{width:100%;grid-template-columns:1fr}.convo-photo-preview-grid{width:100%;justify-content:center;gap:.6rem}.convo-photo-preview{flex:1 1 140px;max-width:160px}.convo-photo-preview-slot{width:100%;height:auto;aspect-ratio:1 / 1}.convo-photo-debug-grid{grid-template-columns:1fr}.welcome-pet-card,.welcome-add-card{width:min(100%,360px);margin-inline:auto}.draw-pet-stage{width:min(100%,440px)}.draw-pet-tool,.draw-pet-size,.draw-pet-action,.draw-pet-picker-wrap,.draw-pet-export-btn,.draw-pet-focus-enter,.draw-pet-focus-exit{min-height:44px;font-size:.8rem}.draw-pet-export-buttons{display:grid;grid-template-columns:1fr}.draw-pet-export-controls{align-items:stretch;justify-content:flex-start;gap:.45rem}.draw-pet-export-field{width:100%;justify-content:space-between}.draw-pet.is-focus-mode .draw-pet-focus-shell{width:96vw;max-height:calc(100dvh - .8rem);padding:.68rem}.draw-pet.is-focus-mode .draw-pet-layout{grid-template-columns:1fr;grid-template-rows:auto auto}.draw-pet.is-focus-mode .draw-pet-stage{width:96vw}.draw-pet.is-focus-mode .draw-pet-tools{position:static;max-height:none;width:100%}.bridge-release-prompt{font-size:.7rem;padding:.33rem .62rem;bottom:calc(max(.7rem,env(safe-area-inset-bottom)) + 4.9rem)}.bridge-modal-card,.goodbye-card,.goodbye-panel{padding-top:clamp(1.2rem,6vh,3.4rem)}.bridge-world-hint{display:none}.bridge-instructions-card{max-width:min(90vw,420px);font-size:.92rem;padding:.92rem 1rem}.bridge-instructions-sub{font-size:.82rem}.bridge-instructions-tip{font-size:.74rem}.bridge-menu-toggle{min-width:76px;min-height:50px;font-size:.88rem}.bridge-menu-backdrop{background:#0a0806bf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.bridge-menu-panel{width:100%;height:100%;max-height:100%;border-radius:0;border:none;box-shadow:none;background:#fffaf2f7;padding:calc(2rem + env(safe-area-inset-top)) calc(1.5rem + env(safe-area-inset-right)) calc(1.5rem + env(safe-area-inset-bottom)) calc(1.5rem + env(safe-area-inset-left));overflow-y:auto;animation:bridge-menu-enter-mobile .3s ease-out}@keyframes bridge-menu-enter-mobile{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.bridge-menu-main{gap:.8rem;margin:auto 0}.bridge-menu-nav{max-width:320px;gap:.55rem}.bridge-menu-item{min-height:52px;font-size:1rem;border-radius:14px}.bridge-menu-close{max-width:320px;min-height:48px;font-size:1rem;border-radius:14px}.bridge-menu-logo{height:42px}.bridge-deco-seg{width:26px;height:7px}.scene-dev-panel{top:calc(14px + env(safe-area-inset-top));right:max(.62rem,env(safe-area-inset-right));left:max(.62rem,env(safe-area-inset-left));width:auto;max-height:56vh;overflow:auto}.bridge-joystick{width:108px;height:108px;bottom:calc(max(.62rem,env(safe-area-inset-bottom)) + 2.05rem)}.bridge-joystick-thumb{width:44px;height:44px}.bridge-mobile-actions{bottom:calc(max(.62rem,env(safe-area-inset-bottom)) + 2.05rem)}.bridge-mobile-actions button{min-width:48px;min-height:48px;font-size:.86rem}.bridge-mobile-pat,.bridge-mobile-letgo{min-width:104px}.bridge-chat-ui{left:max(.62rem,env(safe-area-inset-left));right:max(.62rem,env(safe-area-inset-right));bottom:calc(max(.62rem,env(safe-area-inset-bottom)) + var(--bridge-vv-offset, 0px));justify-content:center}.bridge-chat-toggle{display:none}.bridge-dev-cam-toggle,.bridge-dev-cam-hud{display:none!important}.bridge-chat-panel{position:fixed;left:max(.62rem,env(safe-area-inset-left));right:max(.62rem,env(safe-area-inset-right));bottom:calc(max(.62rem,env(safe-area-inset-bottom)) + 6.3rem);width:auto;border-radius:14px;padding:.44rem;background:#fffcf8f7;transform:translate3d(0,calc(10px - var(--bridge-chat-keyboard-offset, 0px)),0)}.bridge-chat-panel.open-left,.bridge-chat-panel.open-right{left:max(.62rem,env(safe-area-inset-left));right:max(.62rem,env(safe-area-inset-right));transform:translate3d(0,calc(10px - var(--bridge-chat-keyboard-offset, 0px)),0)}.bridge-chat-panel.is-open{transform:translate3d(0,calc(0px - var(--bridge-chat-keyboard-offset, 0px)),0)}.bridge-fullscreen-root.bridge-chat-keyboard-fallback .bridge-chat-panel{bottom:calc(max(.62rem,env(safe-area-inset-bottom)) + 8.8rem)}.bridge-chat-input{width:100%;min-height:64px;font-size:16px}.bridge-chat-actions{justify-content:stretch;gap:.36rem}.bridge-chat-send,.bridge-chat-cancel{min-height:44px;flex:1}.bridge-chat-cancel{order:1}.bridge-chat-send{order:2}.remember-main{grid-template-columns:1fr}.remember-shell{gap:1.25rem;padding:.35rem}.remember-portrait-wrap{max-width:260px;margin:0 auto}.remember-upload-grid{grid-template-columns:1fr}.remember-open-compose-btn{width:100%;justify-self:stretch}.remember-compose-actions,.remember-moderation-actions,.remember-wall-moderation{flex-direction:column}.remember-compose-actions .primary,.remember-compose-cancel,.remember-moderation-actions .primary,.remember-cancel-reject-btn,.remember-wall-approve,.remember-wall-reject{width:100%;min-height:44px}.remember-compose-modal{align-items:end;padding:0;background:#1c120c4d}.remember-compose-modal-card{width:100%;max-height:78dvh;border-radius:16px 16px 0 0;padding:.82rem}.remember-moderation-modal-card{width:min(100%,92vw)}.remember-actions button{flex:1 1 100%}.convo-visibility-toggle,.remember-visibility-toggle{grid-template-columns:1fr}.remember-wall-post{padding:.72rem}.remember-wall-avatar-wrap{width:46px;height:46px}}@media (max-width: 420px){.convo-question,.convo-companion-headline{max-width:22ch}.convo-photo-preview-grid{gap:.48rem}.convo-photo-preview{flex-basis:calc(50% - .28rem);max-width:none}.convo-photo-preview figcaption{font-size:.68rem}.convo-family-list{grid-auto-columns:minmax(142px,1fr)}}@media (min-width: 781px){.companion-grid,.convo-companion-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.bridge-fullscreen-root,.bridge-instructions-card,.convo-panel,.pet-tooltip,.scene-lettinggo-vignette,.scene-white-fade{animation:none!important;transition:none!important}}#app:has(.home-page){max-width:none;margin:0}#app:has(.home-page)>.app-main-region{width:100%;max-width:none;margin:0;padding:0}#app.route-home>.app-main-region{width:100%;max-width:none;margin:0;padding:0}body:has(.home-page){padding:0}.home-page{position:relative;width:100%;min-height:100vh;min-height:calc(var(--app-vh, 1vh) * 100);overflow:hidden}.home-scene-host{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.home-scene-host canvas{display:block;width:100%!important;height:100%!important}.home-overlay{position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:flex-start;min-height:calc(var(--app-vh, 1vh) * 100 - 4rem);padding:2rem 1.2rem;pointer-events:none}.rb-memorial-modal{width:min(92vw,640px);min-width:min(280px,92vw);max-width:92vw;display:flex;justify-content:flex-start;align-items:flex-end;pointer-events:auto}.home-intro-modal{width:min(92vw,520px);max-width:520px}.rb-memorial-plaque{pointer-events:auto;width:min(92vw,640px);max-width:92vw;max-height:min(80vh,720px);overflow:auto;background:#f3efe8;border-radius:18px;padding:36px;box-shadow:0 10px 30px #00000014,inset 0 1px #fff9;border:1px solid rgba(0,0,0,.06);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.home-intro-plaque{position:relative;width:min(92vw,520px);max-width:520px;max-height:min(70vh,560px);padding:28px;overflow:visible;overflow-y:auto}.welcome-rainbow-bar{width:100%;height:4px;border-radius:2px;margin-bottom:16px;background:linear-gradient(to right,#e87e7e,#e8a87e,#e8d87e,#7ec87e,#7eb8e8,#7e7ee8,#b87ee8);opacity:.7}.home-intro-plaque h2{margin-bottom:10px;font-size:clamp(17px,5vw,28px)}.home-intro-plaque .rb-modal-actions{margin-top:18px}.rb-memorial-plaque h2{margin:0 0 12px;font-size:28px;line-height:1.2;color:#3d2e25}.rb-memorial-plaque p{margin:0 0 12px;line-height:1.6;color:#4d3f35}.rb-quiet-line{font-style:italic;opacity:.85}.rb-modal-actions{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap}.header-passkey-signin{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border-radius:10px;background:#ffffff59;border:1px solid rgba(120,85,60,.12);color:#7a6053;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease;white-space:nowrap}.header-passkey-signin:hover{background:#ffffff8c;color:#4b3228}.header-passkey-signin:disabled{opacity:.6;cursor:default}.header-passkey-signin[hidden]{display:none}.rb-primary,.rb-btn-primary{background:#ea835a;color:#fff;border-radius:10px;padding:12px 20px;border:none;cursor:pointer;min-height:48px;font-size:.94rem;font-weight:600}.rb-primary:hover,.rb-primary:focus-visible,.rb-btn-primary:hover,.rb-btn-primary:focus-visible{background:#de7750}.rb-secondary{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .8rem;border-radius:10px;border:1px solid #ccb39f;background:#fffaf2e6;color:#5c4439;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .16s,border-color .16s;pointer-events:auto}.rb-secondary:hover{background:#f5ebdef2;border-color:#be9f89}.rb-secondary:focus-visible{outline:none;box-shadow:0 0 0 3px #b88f7738}.home-debug-panel{position:fixed;z-index:42;top:calc(14px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));display:grid;gap:.45rem;width:min(92vw,290px);padding:.8rem .85rem;border-radius:12px;border:1px solid rgba(53,63,74,.26);background:#f3faffe6;color:#27414f;box-shadow:0 10px 24px #1325302e;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);max-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 1rem);overflow:auto}.home-debug-title{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.01em}.home-debug-meta{margin:0 0 .1rem;font-size:.67rem;letter-spacing:.01em;opacity:.78}.home-debug-toggle{display:flex;align-items:center;gap:.48rem;font-size:.76rem;line-height:1.35}.home-debug-toggle input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:#4d89a8}.home-debug-toggle input:disabled+span{opacity:.58}.home-framing-guides{position:fixed;top:0;right:0;bottom:0;left:0;z-index:41;pointer-events:none}.home-framing-line{position:absolute;left:0;right:0;border-top:1px dashed rgba(244,232,173,.64)}.home-framing-line-top{top:75%}.home-framing-line-bottom{top:92%}.home-framing-line-horizon{border-top-style:solid;border-top-color:#a0daff8c}.home-framing-readout{position:absolute;right:calc(14px + env(safe-area-inset-right));top:calc(120px + env(safe-area-inset-top));margin:0;min-width:182px;padding:.38rem .5rem;border-radius:8px;border:1px solid rgba(239,228,173,.4);background:#2b39428c;color:#f5f3e5;font-size:.64rem;line-height:1.4;white-space:pre-line}.home-pet-bubble[hidden],.home-memorial-list-modal[hidden]{display:none!important}.home-pet-bubble{position:fixed;z-index:20;max-width:220px;background:#fffcf8f5;border:1px solid rgba(230,206,191,.7);border-radius:12px;padding:1.8rem .7rem .5rem;box-shadow:0 4px 16px #1c120c1f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;gap:.3rem;text-align:center;justify-items:center}.home-pet-bubble-close{position:absolute;top:.3rem;right:.4rem;background:#fffaf5e6;border:1px solid rgba(200,180,165,.5);font-size:1.2rem;color:#8a6a5a;cursor:pointer;padding:0;width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;display:grid;place-items:center;z-index:2}.home-pet-bubble-photo{width:48px;height:48px;min-width:36px;min-height:36px;flex:0 0 auto;object-fit:cover;border-radius:10px;border:1px solid rgba(230,210,195,.5)}.home-pet-bubble-name{margin:0;font-weight:700;font-size:.92rem;color:#35231c}.home-pet-bubble-snippet{margin:0;font-size:.78rem;line-height:1.4;color:#6f5650;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-pet-bubble-link{min-height:0;padding:.2rem 0;background:none;border:none;color:#7a6053;font-size:.8rem;font-weight:500;cursor:pointer;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px;text-decoration-color:#7a605366;transition:color .15s ease}.home-pet-bubble-link:hover{color:#4b3228;text-decoration-color:#4b322899}.home-memorial-list-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1c120c66;display:flex;align-items:center;justify-content:center;padding:1rem}.home-memorial-list-card{background:#fffaf5;border:1px solid var(--border);border-radius:14px;padding:1rem;width:min(92vw,640px);min-width:min(280px,92vw);max-width:640px;max-height:min(80vh,720px);display:grid;gap:.6rem;overflow:auto}.home-memorial-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding-bottom:.6rem;border-bottom:1px solid rgba(0,0,0,.06)}.home-memorial-list-header h2{margin:0;font-size:1.1rem;color:#35231c}.memorial-list-subtitle{margin:2px 0 0;font-size:.72rem;color:var(--muted);font-style:italic}.home-memorial-list-close{background:none;border:1px solid var(--border);border-radius:50%;padding:0;cursor:pointer;color:var(--muted);min-width:36px;min-height:36px;width:36px;height:36px;display:grid;place-items:center;transition:background .15s ease}.home-memorial-list-close:hover{background:#0000000d}.home-memorial-list-search{width:100%;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;font-size:.85rem;background:var(--surface);color:var(--text)}.home-memorial-list-items{list-style:none;padding:0;margin:0;max-height:50vh;overflow-y:auto;display:grid;gap:.3rem}.home-memorial-list-empty{margin:0;padding:.65rem .5rem;border-radius:10px;background:#f58b6314;border:1px dashed rgba(176,128,103,.35);color:#6f5650;font-size:.78rem;text-align:center}.home-memorial-list-item{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:10px;cursor:pointer;transition:background .14s ease;min-height:44px}.home-memorial-list-item:hover,.home-memorial-list-item:focus-visible{background:#f58b631a;outline:2px solid var(--brand);outline-offset:-2px}.home-memorial-list-thumb{width:40px;height:40px;min-width:40px;min-height:40px;border-radius:8px;object-fit:cover;border:1px solid rgba(230,210,195,.5);flex:0 0 auto}.home-memorial-list-name{margin:0;font-weight:600;font-size:.85rem;color:#35231c}.home-memorial-list-snippet{margin:0;font-size:.72rem;color:#6f5650;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.memorial-item-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;min-width:30px;border-radius:50%;background:#f58b631f;color:var(--brand);flex-shrink:0}.memorial-pet-icon{display:block}.memorial-item-info{min-width:0;flex:1}.memorial-list-filters{display:flex;gap:6px;flex-wrap:wrap}.memorial-filter-pill{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:20px;border:1px solid rgba(90,62,46,.18);background:#fff8f0b3;color:#6f5650;font-family:Inter,system-ui,sans-serif;font-size:.76rem;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;min-height:30px;white-space:nowrap}.memorial-filter-pill:hover{background:#f58b631a;border-color:#f58b634d;color:#5a3e2e}.memorial-filter-pill.memorial-filter-active{background:var(--brand);border-color:var(--brand);color:#fff}.memorial-filter-pill.memorial-filter-active .memorial-pet-icon{color:#fff}.memorial-list-warmth{margin:4px 0 0;padding:10px 12px;font-size:.72rem;line-height:1.5;color:#8a7a6e;font-style:italic;text-align:center;border-top:1px solid rgba(90,62,46,.08)}@media (max-width: 700px){.home-overlay{padding:1rem .8rem;align-items:center;justify-content:center}.home-overlay[hidden]{display:none!important}.route-home>.site-footer{font-size:.65rem;gap:0 4px;padding:5px 10px;flex-wrap:nowrap;white-space:nowrap}.route-home>.site-footer .site-footer-copyright,.route-home>.site-footer .site-footer-sep-copyright{display:none}.route-home>.site-footer .site-footer-dedication,.route-home>.site-footer .site-footer-dedication+.site-footer-sep{display:inline}.header-passkey-signin{font-size:.7rem;padding:4px 10px;min-height:30px;gap:4px}.header-passkey-signin svg{width:12px;height:12px}.home-memorial-list-modal{padding:.85rem}.memorial-filter-pill{padding:6px 14px;min-height:36px}.home-memorial-list-close{width:40px;height:40px;min-width:40px;min-height:40px}.rb-memorial-modal{width:100%;max-width:calc(100vw - 1.6rem)}.home-intro-modal{width:min(94vw,420px);max-width:420px}.rb-memorial-plaque{width:100%;padding:24px;border-radius:16px}.home-intro-plaque{max-height:min(80vh,520px);padding:16px;padding-top:2.6rem}.home-intro-plaque p{font-size:.88rem;line-height:1.45}.rb-memorial-plaque h2{font-size:24px}.home-intro-plaque h2{font-size:clamp(16px,4.5vw,24px)}.rb-modal-actions{flex-direction:column;align-items:stretch}.rb-primary,.rb-btn-primary,.rb-secondary{width:100%}.home-pet-bubble{left:50%!important;top:auto!important;bottom:4.5rem!important;transform:translate(-50%)!important;max-width:260px;width:auto}.home-debug-panel{width:min(92vw,260px);top:calc(10px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));padding:.68rem .72rem}.home-framing-readout{right:calc(10px + env(safe-area-inset-right));top:calc(102px + env(safe-area-inset-top));min-width:160px;font-size:.61rem}}@media (max-width: 360px){body{--page-padding: .85rem}.credits-modal{padding:.7rem}.credits-modal-card,.home-memorial-list-card,.remember-compose-modal-card,.remember-moderation-modal-card,.rb-memorial-plaque{width:calc(100vw - 1.4rem);min-width:0;padding:14px}.home-intro-modal{width:min(94vw,420px);max-width:420px}.home-memorial-list-modal{padding:.7rem}.rb-modal-actions{gap:10px}.remember-shell{padding:.25rem;gap:1rem}.remember-actions{flex-direction:column}.remember-actions button{width:100%}.remember-not-found{padding:1.8rem .7rem 1.2rem;min-height:48vh}.not-found-scene{width:min(280px,88vw)}.scene-dev-panel,.bridge-pet-inspector{left:calc(8px + env(safe-area-inset-left));width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px);min-width:0}}.memorial-page{max-width:720px;width:100%;margin:0 auto;padding:2rem 1.25rem 4rem;display:grid;gap:2.5rem;box-sizing:border-box}.memorial-page *{box-sizing:border-box}.memorial-page>section{width:100%;min-width:0}.memorial-hero-card{display:flex;flex-direction:column;align-items:center;gap:1.2rem;text-align:center}.memorial-portrait-wrap{position:relative;width:min(80vw,360px);border-radius:20px;overflow:visible}.memorial-portrait-wrap.is-loading .memorial-portrait{display:none}.memorial-portrait-skeleton{width:100%;aspect-ratio:1;border-radius:20px;background:linear-gradient(135deg,#f2e2d3,#e6d0bc);animation:memorial-shimmer 1.5s ease-in-out infinite alternate}.memorial-portrait-wrap:not(.is-loading) .memorial-portrait-skeleton{display:none}@keyframes memorial-shimmer{0%{opacity:.7}to{opacity:1}}.memorial-portrait{width:100%;height:auto;border-radius:20px;box-shadow:0 16px 48px #28190f33;display:block}.memorial-pet-avatar{position:absolute;right:-10px;bottom:-10px;z-index:2;width:64px;height:64px;object-fit:contain;pointer-events:none;image-rendering:pixelated;filter:drop-shadow(0 4px 10px rgba(40,25,15,.35))}.memorial-hero-info{display:flex;flex-direction:column;gap:.35rem}.memorial-name{margin:.15rem 0 .1rem;font-size:2.25rem;color:#35231c}.memorial-subtitle{margin:0;font-size:.88rem;color:#8a6e5e;font-style:italic;letter-spacing:.04em}.memorial-type{margin:0;font-size:.85rem;color:#a08878}.memorial-crossing{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px}.memorial-crossing-icon{flex-shrink:0;opacity:.75}.memorial-crossing-text{font-size:.78rem;color:#a08878;letter-spacing:.01em}.memorial-section-title{margin:0;font-size:1.3rem;color:#4b3228;text-align:center}.memorial-memories{display:grid;gap:1rem}.memorial-memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.memorial-memory-grid>.memorial-wall-empty{grid-column:1 / -1}.memorial-memory-card{background:#fffcf8e6;border:1px solid rgba(216,193,174,.5);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.3rem}.memorial-memory-label{margin:0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#a08878}.memorial-memory-value{margin:0;font-size:.88rem;line-height:1.45;color:#4d3f35}.memorial-gallery{display:grid;gap:1rem;justify-items:center;min-width:0}.memorial-gallery[hidden]{display:none}.memorial-gallery-show-more{font-family:var(--font-body);font-size:.88rem;font-weight:500;color:#5a4738;background:#d4836b1f;border:1px solid rgba(212,131,107,.25);border-radius:24px;padding:.6rem 2rem;cursor:pointer;transition:background .2s ease,transform .15s ease}.memorial-gallery-show-more:hover{background:#d4836b33;transform:translateY(-1px)}.memorial-gallery-show-more[hidden]{display:none}.memorial-gallery-grid{column-count:3;column-gap:.5rem;width:100%}.memorial-gallery-item{position:relative;break-inside:avoid;margin-bottom:.5rem;border-radius:10px;overflow:hidden;cursor:pointer;transition:opacity .4s ease,transform .4s ease,box-shadow .2s ease}.memorial-gallery-item:hover{transform:scale(1.02);box-shadow:0 8px 24px #28190f26}.memorial-gallery-video-play{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#00000026;transition:background .2s ease}.memorial-gallery-item:hover .memorial-gallery-video-play{background:#00000040}.memorial-gallery-item img,.memorial-gallery-item video{display:block;width:100%;height:auto}.memorial-gallery-placeholder{width:100%;aspect-ratio:1;background:linear-gradient(135deg,#f2e2d3,#e6d0bc);animation:memorial-shimmer 1.5s ease-in-out infinite alternate}.memorial-gallery-item-entering{opacity:0;transform:translateY(20px)}.memorial-gallery-delete{position:absolute;top:6px;right:6px;width:28px;height:28px;padding:0;border-radius:50%;border:none;background:#140e0aa6;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.85);transition:opacity .15s ease,background .15s ease,transform .15s ease;pointer-events:auto;z-index:2;box-shadow:0 2px 6px #0000004d}.memorial-gallery-item-owner:hover .memorial-gallery-delete,.memorial-gallery-item-owner:focus-within .memorial-gallery-delete,.memorial-gallery-delete:focus-visible{opacity:1;transform:scale(1)}.memorial-gallery-delete:hover{background:#c43c2e}.memorial-gallery-delete:focus-visible{outline:2px solid #fff;outline-offset:2px}.memorial-gallery-delete:disabled{opacity:.5;cursor:not-allowed}@media (hover: none){.memorial-gallery-item-owner .memorial-gallery-delete{opacity:.95;transform:scale(1)}}.memorial-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain;touch-action:none}.memorial-lightbox[hidden]{display:none}.memorial-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000e0}.memorial-lightbox-body{position:relative;z-index:1;display:flex;align-items:stretch;max-width:95vw;max-height:90vh;border-radius:12px;overflow:hidden;background:#1a1714}.memorial-lightbox-close,.memorial-lightbox-prev,.memorial-lightbox-next{position:absolute;z-index:2;background:#ffffff1f;color:#fff;border:none;border-radius:50%;width:44px;height:44px;min-height:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease}.memorial-lightbox-close:hover,.memorial-lightbox-prev:hover,.memorial-lightbox-next:hover{background:#ffffff40}.memorial-lightbox-close{top:.75rem;right:.75rem}.memorial-lightbox-prev{left:.75rem;top:50%;transform:translateY(-50%)}.memorial-lightbox-next{right:.75rem;top:50%;transform:translateY(-50%)}.memorial-lightbox-content{display:flex;align-items:center;justify-content:center;min-height:300px}.memorial-lightbox-media-side{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.memorial-lightbox-content img{max-width:100%;max-height:85vh;object-fit:contain;display:block}.memorial-lightbox-content img[hidden]{display:none}.memorial-lightbox-counter{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);color:#ffffffa6;font-size:.82rem;z-index:2}.memorial-lightbox-comments{width:320px;display:flex;flex-direction:column;background:#1e1a16;border-left:1px solid rgba(255,255,255,.08);flex-shrink:0}.memorial-lightbox-comments-header{padding:1rem 1.2rem;border-bottom:1px solid rgba(255,255,255,.08)}.memorial-lightbox-comments-header h3{margin:0;font-size:.95rem;color:#e8d5c5;font-weight:600}.memorial-lightbox-comment-feed{flex:1;overflow-y:auto;padding:1rem 1.2rem;display:flex;flex-direction:column;gap:1rem}.memorial-lightbox-comment-feed::-webkit-scrollbar{width:5px}.memorial-lightbox-comment-feed::-webkit-scrollbar-track{background:transparent}.memorial-lightbox-comment-feed::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.memorial-lightbox-comment-empty{color:#ffffff73;font-size:.88rem;font-style:italic}.memorial-lightbox-comment-item{background:#ffffff0d;border-radius:10px;padding:.75rem 1rem}.memorial-lightbox-comment-author{font-size:.82rem;font-weight:600;color:#d4b89c;margin:0 0 .25rem}.memorial-lightbox-comment-text{font-size:.88rem;color:#ffffffd9;margin:0 0 .35rem;line-height:1.45}.memorial-lightbox-comment-time{font-size:.72rem;color:#ffffff59}.memorial-lightbox-comment-form{padding:.8rem 1.2rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.5rem}.memorial-lightbox-comments input.memorial-lightbox-comment-name,.memorial-lightbox-comments textarea.memorial-lightbox-comment-message{background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.55rem .75rem;color:#f0e6da;font-size:.85rem;font-family:inherit;resize:none}.memorial-lightbox-comments input.memorial-lightbox-comment-name::placeholder,.memorial-lightbox-comments textarea.memorial-lightbox-comment-message::placeholder{color:#ffffff4d}.memorial-lightbox-comments input.memorial-lightbox-comment-name:focus,.memorial-lightbox-comments textarea.memorial-lightbox-comment-message:focus{border-color:#b08968;outline:none}.memorial-lightbox-comment-label{font-size:.78rem;color:#ffffff80;font-weight:500;letter-spacing:.02em}.memorial-lightbox-comment-optional{font-weight:400;color:#ffffff4d}.memorial-lightbox-comment-submit{width:100%;font-size:.85rem}.memorial-lightbox-comment-thankyou{display:flex;align-items:center;gap:.4rem;color:#d4b89c;font-size:.85rem;padding:.5rem 0}.memorial-lightbox-comment-status{font-size:.82rem;color:#e07c5a;margin:0}.rb-media-gallery{padding:0 1rem;margin-top:1.5rem}.rb-media-gallery[hidden]{display:none}.rb-media-gallery-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.rb-media-gallery-actions{display:flex;gap:.5rem;flex-wrap:wrap}.rb-btn-secondary{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .8rem;border-radius:10px;border:1px solid #ccb39f;background:#fffaf2e6;color:#5c4439;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .16s,border-color .16s;pointer-events:auto}.rb-btn-secondary:hover{background:#f5ebdef2;border-color:#be9f89}.rb-btn-secondary:focus-visible{outline:none;box-shadow:0 0 0 3px #b88f7738}.rb-media-tabs{display:flex;gap:0;border-bottom:2px solid #e6d4c5;margin-bottom:1rem}.rb-media-tab{padding:.5rem 1rem;border:none;background:transparent;color:#8a7a6e;font-size:.85rem;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .16s,border-color .16s}.rb-media-tab:hover{color:#5a3e2e}.rb-media-tab.is-active{color:#3e2f23;border-bottom-color:#b08968}.rb-media-tab:focus-visible{outline:none;box-shadow:0 0 0 3px #b88f7738}.rb-media-grid{display:grid;grid-template-columns:1fr;gap:1rem}.rb-media-empty{text-align:center;color:#8a7a6e;font-size:.88rem;padding:2rem 0}.rb-media-empty[hidden]{display:none}.rb-media-caption{font-size:.84rem;color:#5c4439;margin:.35rem 0 0;line-height:1.4}.rb-media-delete-btn{position:absolute;top:.5rem;right:.5rem;width:30px;height:30px;border-radius:50%;border:none;background:#3e2f2399;color:#fff8f0d9;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s,background .16s;z-index:2}.rb-video-player:hover .rb-media-delete-btn,.rb-audio-player:hover .rb-media-delete-btn,.rb-media-delete-btn:focus-visible{opacity:1}.rb-media-delete-btn:hover{background:#b33f26bf}.rb-video-player{position:relative;border-radius:14px;overflow:hidden;background:#1a1612}.rb-video-wrap{position:relative}.rb-video-element{width:100%;display:block;max-height:420px;object-fit:contain;background:#1a1612}.rb-video-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1a161240;border:none;cursor:pointer;transition:background .2s}.rb-video-play-overlay[hidden]{display:none}.rb-video-play-overlay:hover{background:#1a161266}.rb-video-controls{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#1a1612d9}.rb-video-controls[hidden]{display:none}.rb-video-play-btn,.rb-video-fullscreen-btn{border:none;background:transparent;color:#fff8f0d9;cursor:pointer;padding:.2rem;display:flex;align-items:center}.rb-video-play-btn:focus-visible,.rb-video-fullscreen-btn:focus-visible{outline:2px solid rgba(200,160,120,.6);border-radius:4px}.rb-video-progress-wrap{flex:1;height:28px;display:flex;align-items:center;cursor:pointer}.rb-video-progress-track{width:100%;height:4px;background:#fff8f033;border-radius:2px;overflow:hidden}.rb-video-progress-fill{height:100%;background:#b08968;border-radius:2px;width:0%;transition:width .1s linear}.rb-video-time{font-size:.75rem;color:#fff8f0a6;white-space:nowrap;min-width:5em;text-align:center}.rb-audio-player{position:relative;background:radial-gradient(circle at 8% 12%,rgba(246,241,233,.7) 0%,transparent 48%),#fffdf8;border:1px solid #e6d4c5;border-radius:14px;padding:.85rem 1rem;transition:border-color .16s}.rb-audio-player:hover{border-color:#ccb39f}.rb-audio-player.is-playing{border-color:#b08968}.rb-audio-body{display:flex;align-items:center;gap:.75rem}.rb-audio-play-btn{width:40px;height:40px;min-width:40px;border-radius:50%;border:2px solid #ccb39f;background:#fffaf2e6;color:#5a3e2e;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .16s,border-color .16s}.rb-audio-play-btn:hover{border-color:#b08968;background:#f5ebdef2}.rb-audio-play-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #b88f7738}.rb-audio-waveform-wrap{flex:1;min-width:0}.rb-audio-waveform{display:flex;align-items:flex-end;gap:2px;height:36px;cursor:pointer;position:relative;overflow:hidden;border-radius:4px}.rb-audio-bar{flex:1;min-width:2px;background:#ccb39f;border-radius:1px;transition:height .12s ease,background .16s}.is-playing .rb-audio-bar{background:#b08968}.rb-audio-progress-overlay{position:absolute;top:0;left:0;bottom:0;width:0%;background:#b0896833;pointer-events:none;transition:width .1s linear}.rb-audio-time-row{display:flex;justify-content:space-between;margin-top:.25rem}.rb-audio-current-time,.rb-audio-duration{font-size:.72rem;color:#8a7a6e}.rb-media-upload-modal,.rb-voice-recorder-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#1e19148c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:1rem}.rb-media-upload-modal[hidden],.rb-voice-recorder-modal[hidden]{display:none}.rb-media-upload-modal-card,.rb-voice-recorder-card{position:relative;background:#fffdf8;border:1px solid #e6d4c5;border-radius:18px;padding:1.5rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 22px 60px #28190f38}.rb-media-upload-close,.rb-voice-recorder-close{position:absolute;top:.75rem;right:.75rem;border:none;background:transparent;color:#8a7a6e;cursor:pointer;padding:.25rem;display:flex}.rb-media-upload-close:hover,.rb-voice-recorder-close:hover{color:#3e2f23}.rb-media-upload-modal-card h3,.rb-voice-recorder-card h3{font-size:1.1rem;color:#3e2f23;margin:0 0 .75rem}.rb-media-dropzone{border:2px dashed #ccb39f;border-radius:14px;padding:1.5rem 1rem;text-align:center;cursor:pointer;background:#fffaf280;transition:border-color .16s,background .16s}.rb-media-dropzone:hover,.rb-media-dropzone.is-dragover{border-color:#b08968;background:#f5ebdeb3}.rb-media-dropzone:focus-visible{outline:none;box-shadow:0 0 0 3px #b88f7738}.rb-media-dropzone-icon{color:#b08968;margin-bottom:.5rem}.rb-media-dropzone-text{font-size:.92rem;color:#5c4439;font-weight:600;margin:0 0 .25rem}.rb-media-dropzone-hint{font-size:.78rem;color:#8a7a6e;margin:0}.rb-media-upload-selected{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem;padding:.5rem .75rem;background:#f5ebde80;border-radius:10px;border:1px solid #e6d4c5}.rb-media-upload-selected[hidden]{display:none}.rb-media-upload-filename{font-size:.82rem;color:#5c4439;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rb-media-upload-clear{border:none;background:transparent;color:#7b4e43;font-size:.78rem;text-decoration:underline;cursor:pointer;white-space:nowrap}.rb-media-caption-label{display:block;margin-top:.75rem}.rb-media-caption-label span{display:block;font-size:.82rem;color:#5c4439;font-weight:600;margin-bottom:.25rem}.rb-media-caption-input,.rb-voice-caption-input{width:100%;padding:.5rem .75rem;border:1px solid #e6d4c5;border-radius:10px;background:#fff;font-size:.88rem;color:#3e2f23;font-family:inherit}.rb-media-caption-input:focus,.rb-voice-caption-input:focus{outline:none;border-color:#b08968;box-shadow:0 0 0 3px #b88f7726}.rb-media-upload-progress{margin-top:.75rem}.rb-media-upload-progress[hidden]{display:none}.rb-media-upload-progress-bar{height:6px;background:#c8a07833;border-radius:3px;overflow:hidden}.rb-media-upload-progress-fill{height:100%;background:#b08968;border-radius:3px;width:0%;transition:width .2s ease}.rb-media-upload-progress-text{font-size:.78rem;color:#8a7a6e;margin:.25rem 0 0}.rb-media-upload-actions{display:flex;gap:.5rem;margin-top:1rem}.rb-media-upload-submit:disabled{opacity:.5;cursor:not-allowed}.rb-voice-recorder-hint{font-size:.85rem;color:#6f5650;margin:0 0 1rem;line-height:1.4}.rb-voice-recorder-visualizer{background:#f5ebde80;border-radius:12px;padding:.75rem 1rem;margin-bottom:.75rem}.rb-voice-recorder-bars{display:flex;align-items:flex-end;gap:3px;height:48px}.rb-voice-bar{flex:1;min-width:3px;background:#ccb39f;border-radius:2px;height:20%;transition:height .1s ease}.rb-voice-recorder-timer{text-align:center;font-size:1.5rem;font-weight:700;color:#3e2f23;margin:0 0 .75rem;font-variant-numeric:tabular-nums}.rb-voice-recorder-controls{display:flex;justify-content:center;gap:.75rem;margin-bottom:.75rem}.rb-voice-record-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.2rem;border-radius:24px;border:2px solid #c95555;background:#c9555514;color:#c95555;font-size:.92rem;font-weight:700;cursor:pointer;transition:background .16s}.rb-voice-record-btn:hover{background:#c9555526}.rb-voice-record-dot{width:10px;height:10px;border-radius:50%;background:#c95555;display:inline-block;animation:rb-pulse-dot 1.5s ease-in-out infinite}@keyframes rb-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.rb-voice-stop-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.2rem;border-radius:24px;border:2px solid #5c4439;background:#5c443914;color:#5c4439;font-size:.92rem;font-weight:700;cursor:pointer}.rb-voice-stop-btn[hidden],.rb-voice-record-btn[hidden]{display:none}.rb-voice-recorder-preview{margin-top:.75rem}.rb-voice-recorder-preview[hidden]{display:none}.rb-voice-preview-audio{width:100%;margin-bottom:.75rem}.rb-voice-recorder-actions{display:flex;gap:.5rem;margin-top:.75rem}.rb-voice-recorder-status{font-size:.82rem;color:#b33f26;margin:.5rem 0 0;text-align:center}.rb-voice-recorder-status[hidden]{display:none}.rb-voice-save-btn:disabled{opacity:.5;cursor:not-allowed}@media (prefers-reduced-motion: reduce){.rb-voice-record-dot{animation:none}.rb-video-progress-fill,.rb-audio-progress-overlay,.rb-media-upload-progress-fill,.rb-voice-bar,.rb-audio-bar{transition:none}}@media (max-width: 600px){.rb-media-gallery-header{flex-direction:column;align-items:flex-start}.rb-media-upload-modal-card,.rb-voice-recorder-card{padding:1.2rem;border-radius:14px}.rb-video-element{max-height:280px}.rb-audio-player{padding:.65rem .75rem}.rb-audio-play-btn{width:36px;height:36px;min-width:36px}}.memorial-family-tree{padding:0 1rem}.memorial-family-tree .memorial-section-title{text-align:center}.memorial-family-tree-grid{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;padding:.5rem 0 1rem}.memorial-family-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-decoration:none;color:#5a3e2e;background:linear-gradient(160deg,#fffcf8f2,#f8ece0e6);border:1px solid rgba(200,127,90,.18);border-radius:16px;padding:1rem 1.2rem;min-width:110px;max-width:160px;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 2px 12px #8c50280f}.memorial-family-card:hover,.memorial-family-card:focus-visible{transform:translateY(-2px);box-shadow:0 4px 20px #8c50281f;outline:2px solid rgba(200,127,90,.4);outline-offset:2px}.memorial-family-card-no-link{cursor:default;pointer-events:none}.memorial-family-card{position:relative}.memorial-family-card-crossed{background:linear-gradient(160deg,#fff8f0f2,#f5e6dcf2);border-color:#c87f5a52}.memorial-family-card-crossed-badge{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:32px;height:16px;background:#fffcf8f2;border:1px solid rgba(200,127,90,.22);border-radius:9px;display:flex;align-items:center;justify-content:center;pointer-events:none}.memorial-family-card-crossed .memorial-family-card-name{color:#5c4439}.memorial-family-card-crossed .memorial-family-card-relation{color:#b08968}.memorial-family-card-icon{width:56px;height:56px;border-radius:50%;background:#c87f5a14;display:flex;align-items:center;justify-content:center;color:#8a6a4e;overflow:hidden}.memorial-family-card-photo{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}.memorial-family-card-name{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:.95rem;font-weight:600;color:#3e2f23;text-align:center}.memorial-family-card-relation{font-size:.78rem;color:#8a7a6e;letter-spacing:.02em}@media (max-width: 600px){.memorial-family-tree-grid{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:.5rem}.memorial-family-card{scroll-snap-align:start;flex-shrink:0}}@media (prefers-reduced-motion: reduce){.memorial-family-card{transition:none}}.memorial-donation-section{display:flex;justify-content:center}.memorial-donation-section[hidden]{display:none}.memorial-donation-card{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;background:linear-gradient(160deg,#fffcf8f2,#f8ece0e6);border:1px solid rgba(200,127,90,.2);border-radius:20px;padding:2rem 1.5rem;max-width:480px;width:100%;box-shadow:0 4px 24px #8c50280f}.memorial-donation-icon{width:48px;height:48px;border-radius:50%;background:#c87f5a14;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.memorial-donation-title{margin:0;font-size:1.15rem;color:#4b3228}.memorial-donation-info{margin:0;font-size:.9rem;color:#5c4a3e;line-height:1.55;max-width:380px}.memorial-donation-meta{margin:0;font-size:.78rem;color:#9b8a7c;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.memorial-donation-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;padding:.6rem 1.4rem;border-radius:999px;background:linear-gradient(135deg,#c87f5a,#b06840);color:#fff;font-family:var(--font-body);font-size:.88rem;font-weight:600;text-decoration:none;box-shadow:0 4px 16px #b0684040;transition:transform .15s ease,box-shadow .15s ease}.memorial-donation-link:hover{transform:translateY(-1px);box-shadow:0 6px 20px #b0684059}.memorial-donation-link:active{transform:translateY(0)}.memorial-community-section{display:grid;gap:1rem}.memorial-wall-feed{display:flex;flex-direction:column;gap:.75rem;max-width:600px;margin:0 auto}.memorial-wall-empty{text-align:center;color:#8a7a6e;font-size:.88rem;font-style:italic}.memorial-chat-row{display:flex;gap:.5rem;align-items:flex-start;max-width:80%}.memorial-chat-left{align-self:flex-start}.memorial-chat-right{align-self:flex-end}.memorial-chat-avatar{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.85rem;flex-shrink:0;-webkit-user-select:none;user-select:none}.memorial-chat-avatar-flower{display:flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1}.memorial-chat-avatar img{width:100%;height:100%;object-fit:cover}.memorial-chat-content{display:flex;flex-direction:column;gap:.15rem;min-width:0}.memorial-chat-author{font-size:.75rem;font-weight:600;color:#7a6a5a;margin:0 0 0 .25rem}.memorial-chat-right .memorial-chat-author{text-align:right;margin:0 .25rem 0 0}.memorial-chat-bubble{padding:.55rem .85rem;border-radius:18px;word-break:break-word}.memorial-chat-left .memorial-chat-bubble{background:#f0e8df;border-top-left-radius:4px}.memorial-chat-right .memorial-chat-bubble{background:#d8e8d2;border-top-right-radius:4px}.memorial-chat-text{font-size:.88rem;line-height:1.45;color:#3a2a1a;margin:0}.memorial-chat-right .memorial-chat-time{text-align:right}.memorial-chat-media{max-width:220px;border-radius:10px;margin-top:.35rem}.memorial-chat-media img{display:block;width:100%;height:auto;border-radius:10px}.memorial-chat-time{font-size:.7rem;color:#9b8a7c;margin:0 .25rem}.memorial-chat-pending{opacity:.65}.memorial-chat-pending-pill{font-size:.65rem;font-weight:500;color:#b58a50;background:#b58a501f;padding:1px 6px;border-radius:8px}.memorial-chat-moderation{display:flex;gap:.5rem;margin-top:.25rem}.memorial-chat-approve,.memorial-chat-reject{font-size:.75rem;padding:3px 10px;border-radius:8px;border:1px solid rgba(0,0,0,.1);cursor:pointer;min-height:0}.memorial-chat-approve{background:#d8e8d2;color:#3a6a3a}.memorial-chat-reject{background:#f0e0d8;color:#8a4a3a}.memorial-compose-section{display:grid;gap:1rem}.memorial-compose-form{display:grid;gap:.65rem;border:1px solid #dbc6b5;border-radius:16px;background:#fffcf7eb;padding:1rem}.memorial-compose-form[hidden]{display:none}.memorial-compose-name,.memorial-compose-message{width:100%;border:1px solid #d8c0ad;border-radius:10px;padding:.55rem .7rem;font-family:inherit;font-size:.88rem;color:#4d3f35;background:#fffcf9;resize:vertical}.memorial-compose-name:focus,.memorial-compose-message:focus{outline:2px solid rgba(200,140,100,.4);outline-offset:1px;border-color:#c4a38e}.memorial-compose-submit{justify-self:start}.memorial-compose-thankyou{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem 1rem;border:1px solid #d8c0ad;border-radius:16px;background:#fffcf7eb;text-align:center}.memorial-compose-thankyou[hidden]{display:none}.memorial-compose-thankyou-icon{display:flex;align-items:center;justify-content:center}.memorial-compose-thankyou-icon svg{width:32px;height:32px}.memorial-compose-thankyou-text{margin:0;font-size:.95rem;color:#5c4a3e;line-height:1.5}.memorial-compose-error{margin:0;font-size:.82rem;color:#a94442;padding:.4rem .6rem;border:1px solid #e0b4b4;border-radius:10px;background:#fff0f0f2}.memorial-admin-panel{border:1px solid rgba(216,193,174,.45);border-radius:14px;background:#fffcf8e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;gap:0}.memorial-admin-section{padding:.75rem 1rem;display:grid;gap:.5rem}.memorial-admin-section+.memorial-admin-section{border-top:1px solid rgba(216,193,174,.3)}.memorial-admin-section-header{display:flex;align-items:center;gap:.4rem;color:#6a5548}.memorial-admin-section-header svg{flex-shrink:0;opacity:.7}.memorial-admin-section-header h3{margin:0;font-size:.85rem;font-weight:600;color:#4b3228}.memorial-admin-badge{font-size:.65rem;font-weight:600;color:#b58a50;background:#b58a501f;padding:2px 8px;border-radius:10px;margin-left:auto}.memorial-admin-field-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#9b8a7c;margin:0}.memorial-admin-actions{display:flex;flex-wrap:wrap;gap:.4rem}.memorial-admin-action-btn{display:inline-flex;align-items:center;gap:.32rem;padding:.38rem .72rem;border:1px solid rgba(216,193,174,.55);border-radius:8px;background:#fff;font-family:var(--font-body);font-size:.78rem;font-weight:500;color:#5a4738;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;min-height:0}.memorial-admin-action-btn:hover{background:#c87f5a0f;border-color:#c87f5a66;box-shadow:0 1px 3px #8c5a3c0f}.memorial-admin-action-btn:disabled{opacity:.45;cursor:default;pointer-events:none}.memorial-admin-action-btn svg{width:13px;height:13px;flex-shrink:0;opacity:.7}.memorial-admin-action-label{line-height:1}.memorial-admin-danger-zone{padding:.5rem 1rem .65rem}.memorial-admin-delete-btn{display:inline-flex;align-items:center;gap:.3rem;border:none;background:none;font-family:var(--font-body);font-size:.75rem;color:#b0847a;cursor:pointer;padding:.25rem 0;transition:color .15s ease}.memorial-admin-delete-btn:hover{color:#a8453a}.memorial-admin-delete-btn svg{width:13px;height:13px;flex-shrink:0}.memorial-admin-field-help{font-size:.75rem;color:#9b8a7c;margin:0;line-height:1.4}.memorial-collaborators-list{display:grid;gap:.35rem;margin-top:.25rem}.memorial-collaborators-empty{font-size:.75rem;color:#9b8a7c;margin:.25rem 0 0}.collab-item{display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;background:#fffcf8d9;border:1px solid rgba(216,193,174,.35);border-radius:8px;gap:.5rem}.collab-info{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;min-width:0}.collab-name{font-size:.8rem;font-weight:500;color:#4b3228;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.collab-role{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#b08968;background:#b089681a;padding:1px 6px;border-radius:6px}.collab-status{font-size:.65rem;font-weight:500;padding:1px 6px;border-radius:6px}.collab-pending{color:#b58a50;background:#b58a501a}.collab-contributed{color:#5a8a5a;background:#5a8a5a1a}.collab-remove-btn{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:#b0847a;cursor:pointer;border-radius:50%;transition:background .15s,color .15s;padding:0}.collab-remove-btn:hover{background:#a8453a1a;color:#a8453a}.collab-remove-btn:disabled{opacity:.4;pointer-events:none}.collab-invite-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.collab-invite-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#3e2f2373;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.collab-invite-card{position:relative;width:90%;max-width:440px;max-height:90vh;overflow-y:auto;background:#fffcf8;border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #3e2f2333}.collab-invite-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.collab-invite-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#3e2f23}.collab-invite-close{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#d8c1ae33;border-radius:50%;color:#6a5548;cursor:pointer;transition:background .15s;padding:0}.collab-invite-close:hover{background:#d8c1ae66}.collab-invite-desc{font-size:.85rem;color:#6a5548;margin:0 0 1rem;line-height:1.5}.collab-invite-form{display:grid;gap:.75rem}.collab-invite-field{display:grid;gap:.25rem}.collab-invite-field label{font-size:.75rem;font-weight:600;color:#6a5548}.collab-invite-input{width:100%;padding:.55rem .75rem;border:1px solid rgba(216,193,174,.5);border-radius:8px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.85rem;color:#3e2f23;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.collab-invite-input:focus{outline:none;border-color:#b0896899;box-shadow:0 0 0 3px #b089681f}.collab-invite-textarea{resize:vertical;min-height:60px}.collab-invite-actions{display:flex;justify-content:flex-end;margin-top:.25rem}.collab-invite-send{min-width:120px}.collab-invite-status{font-size:.8rem;color:#6a5548;margin:0;padding:.5rem .75rem;border-radius:8px;background:#d8c1ae26}.collab-invite-success{color:#3d6e3d;background:#3d6e3d14}.collab-invite-error{color:#a8453a;background:#a8453a14}.memorial-collab-contributions{padding:1.5rem 0}.memorial-collab-subtitle{text-align:center;color:#8a7a6e;font-size:.85rem;margin:0 0 1.25rem}.collab-contributions-grid{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 600px){.collab-contributions-grid{grid-template-columns:repeat(2,1fr)}}.collab-contrib-card{padding:1rem;border-radius:12px;border:1px solid rgba(216,193,174,.35);background:#fffcf8e6}.collab-contrib-photo .collab-contrib-img{width:100%;border-radius:8px;object-fit:cover;max-height:240px;margin-bottom:.5rem}.collab-contrib-caption{font-size:.82rem;color:#5a3e2e;margin:0 0 .5rem}.collab-contrib-memory{background:linear-gradient(135deg,#fffaf2f2,#f5ebdcb3)}.collab-contrib-quote{margin:0 0 .75rem;font-size:.92rem;font-style:italic;color:#5a3e2e;line-height:1.6}.collab-contrib-title{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:#3e2f23}.collab-contrib-text{margin:0 0 .75rem;font-size:.85rem;color:#5a3e2e;line-height:1.6;white-space:pre-line}.collab-contrib-author{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#8a7a6e;font-weight:500}.collab-contrib-rel{font-size:.68rem;color:#b08968;background:#b089681a;padding:1px 6px;border-radius:6px}.contribute-card{max-width:600px;margin:0 auto}.contribute-loading{display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem;gap:1rem;color:#8a7a6e}.contribute-loading-spinner{width:32px;height:32px;border:3px solid rgba(176,137,104,.2);border-top-color:#b08968;border-radius:50%;animation:contribute-spin .7s linear infinite}@keyframes contribute-spin{to{transform:rotate(360deg)}}.contribute-error{text-align:center;padding:2.5rem 1.5rem}.contribute-error h1{font-size:1.2rem;color:#3e2f23;margin:1rem 0 .5rem}.contribute-error p{color:#8a7a6e;margin:0 0 1.5rem}.contribute-welcome{padding:1.5rem}.contribute-pet-header{text-align:center;padding-bottom:1.5rem;border-bottom:1px solid rgba(216,193,174,.35);margin-bottom:1.5rem}.contribute-pet-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid rgba(216,193,174,.5);margin-bottom:1rem}.contribute-pet-placeholder{width:100px;height:100px;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;background:#d8c1ae26;border-radius:50%}.contribute-title{font-size:1.3rem;color:#3e2f23;margin:0 0 .5rem;font-weight:600}.contribute-subtitle{color:#6a5548;font-size:.9rem;margin:0 0 .5rem;line-height:1.5}.contribute-owner-note{font-size:.8rem;color:#b08968;margin:0}.contribute-form-section{padding-bottom:1rem}.contribute-form-heading{font-size:1.05rem;color:#3e2f23;margin:0 0 .35rem;font-weight:600}.contribute-form-desc{font-size:.82rem;color:#8a7a6e;margin:0 0 1rem}.contribute-type-picker{display:flex;gap:.5rem;margin-bottom:1.25rem}.contribute-type-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.65rem .5rem;border:1.5px solid rgba(216,193,174,.4);border-radius:10px;background:#fff;color:#8a7a6e;font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .2s ease}.contribute-type-btn:hover{border-color:#b0896880;background:#fffaf2e6}.contribute-type-active{border-color:#b08968;background:#b0896814;color:#5a3e2e;box-shadow:0 0 0 2px #b0896826}.contribute-form{display:grid;gap:.75rem}.contribute-field{display:grid;gap:.25rem}.contribute-field label{font-size:.75rem;font-weight:600;color:#6a5548}.contribute-input{width:100%;padding:.55rem .75rem;border:1px solid rgba(216,193,174,.5);border-radius:8px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.85rem;color:#3e2f23;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.contribute-input:focus{outline:none;border-color:#b0896899;box-shadow:0 0 0 3px #b089681f}.contribute-textarea{resize:vertical;min-height:80px}.contribute-char-count{font-size:.7rem;color:#9b8a7c;text-align:right}.contribute-field-help{font-size:.72rem;color:#9b8a7c}.contribute-actions{margin-top:.25rem}.contribute-submit{width:100%}.contribute-status{font-size:.8rem;color:#6a5548;margin:0;padding:.5rem .75rem;border-radius:8px;background:#d8c1ae26}.contribute-error-text{color:#a8453a;background:#a8453a14}.contribute-success{text-align:center;padding:2rem 1.5rem}.contribute-success h2{font-size:1.15rem;color:#3e2f23;margin:1rem 0 .5rem}.contribute-success-message{color:#6a5548;margin:0 0 1.25rem;line-height:1.5}@media (prefers-reduced-motion: reduce){.contribute-loading-spinner{animation:none}}@media (max-width: 600px){.collab-invite-card{width:95%;padding:1.25rem}.contribute-welcome{padding:1rem}.contribute-type-picker{gap:.35rem}.contribute-type-btn{padding:.5rem .35rem;font-size:.72rem}}.memorial-loved-by{text-align:center;color:#8a7a6e;font-size:.88rem;font-style:italic;margin:0}.memorial-visit-bridge{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.8rem 1rem 1.5rem}.memorial-visit-bridge-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.8rem;border-radius:999px;border:1.5px solid rgba(200,160,120,.5);background:linear-gradient(135deg,#fffaf2f2,#f5ebdcf2);color:#5a3e2e;font:600 .95rem/1.3 Inter,system-ui,sans-serif;cursor:pointer;transition:background .25s,box-shadow .25s,transform .15s;box-shadow:0 2px 12px #5032141a}.memorial-visit-bridge-btn:hover{background:linear-gradient(135deg,#fff5e6,#f0e1cd);box-shadow:0 4px 16px #5032142e;transform:translateY(-1px)}.memorial-visit-bridge-btn svg{opacity:.7;flex-shrink:0}.memorial-visit-bridge-sub{font:400 .8rem/1.4 Inter,system-ui,sans-serif;color:#8a7a6e;text-align:center;margin:0}.memorial-footer{display:flex;justify-content:center}@media (max-width: 700px){.memorial-page{padding:1rem .75rem 3rem;gap:1.5rem}.memorial-name{font-size:1.5rem}.memorial-subtitle{font-size:.85rem}.memorial-type{font-size:.78rem}.memorial-portrait-wrap{width:min(85vw,320px);border-radius:16px}.memorial-portrait{border-radius:16px}.memorial-pet-avatar{right:-6px;bottom:-6px;width:48px;height:48px}.memorial-section-title{font-size:1.15rem}.memorial-memory-grid{grid-template-columns:1fr;gap:.6rem}.memorial-memory-card{padding:.75rem}.memorial-memory-label{font-size:.72rem}.memorial-memory-value{font-size:.82rem}.memorial-gallery-grid{column-count:2;gap:.4rem}.memorial-gallery-item{margin-bottom:.4rem}.memorial-donation-card{padding:1.5rem 1rem;border-radius:16px}.memorial-donation-title{font-size:1.05rem}.memorial-donation-info{font-size:.84rem}.memorial-donation-link{font-size:.82rem;padding:.55rem 1.1rem}.memorial-compose-form{padding:.75rem;gap:.5rem}.memorial-compose-name,.memorial-compose-message{font-size:.84rem;padding:.5rem .6rem}.memorial-chat-avatar{width:30px;height:30px;min-width:30px;min-height:30px;font-size:.72rem}.memorial-chat-bubble{padding:.5rem .65rem}.memorial-chat-text{font-size:.82rem}.memorial-chat-author{font-size:.72rem}.memorial-chat-time{font-size:.65rem}.memorial-lightbox{overflow-y:auto;-webkit-overflow-scrolling:touch;align-items:flex-start}.memorial-lightbox-body{flex-direction:column;max-height:none;max-width:100vw;border-radius:0;overflow:visible}.memorial-lightbox-media-side{width:100%;flex-shrink:0}.memorial-lightbox-comments{width:100%;max-height:none;border-left:none;border-top:1px solid rgba(255,255,255,.08)}.memorial-lightbox-comment-feed{overflow-y:visible;flex:none}.memorial-lightbox-content img{max-width:100vw;max-height:50vh;max-height:50dvh}.memorial-lightbox-comment-form{padding-bottom:1.5rem}.memorial-lightbox-close{top:.4rem;right:.4rem}.memorial-lightbox-counter{font-size:.7rem;padding:.3rem .6rem}.memorial-gallery-show-more{font-size:.82rem;padding:.5rem 1.2rem}.memorial-compose-thankyou{padding:1.5rem .75rem}.memorial-admin-panel{border-radius:12px}.memorial-admin-section{padding:.6rem .75rem}}@media (max-width: 420px){.memorial-gallery-grid{column-count:2;column-gap:.35rem}.memorial-gallery-item{margin-bottom:.35rem;border-radius:8px}.memorial-page{padding:.75rem .5rem 2.5rem}}.lupin-sprite-button{position:absolute;bottom:-10px;right:-10px;width:64px;height:64px;min-height:0;border:none;background:none;cursor:pointer;z-index:2;padding:0;transition:transform .15s ease}.lupin-sprite-button:hover{transform:scale(1.15)}.lupin-sprite-button:active{transform:scale(.92)}.lupin-sprite{width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 4px 10px rgba(40,25,15,.35))}@keyframes lupin-wiggle{0%{transform:rotate(0) scale(1)}20%{transform:rotate(-10deg) scale(1.12)}40%{transform:rotate(8deg) scale(1.08)}60%{transform:rotate(-6deg) scale(1.1)}80%{transform:rotate(4deg) scale(1.06)}to{transform:rotate(0) scale(1)}}.lupin-sprite-wiggle{animation:lupin-wiggle .45s ease-in-out}.lupin-speech-bubble{position:absolute;bottom:54px;right:-6px;background:#fff8ef;color:#6b422f;border:1px solid #f2d4bf;border-radius:999px;padding:.3rem .7rem;font-size:.8rem;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px #2d1c152e;z-index:3;pointer-events:none;opacity:1;transition:opacity .35s ease}.lupin-speech-bubble[hidden]{display:block!important;opacity:0}@media (max-width: 700px){.lupin-sprite-button{width:48px;height:48px;bottom:-6px;right:-6px}.lupin-speech-bubble{bottom:42px;right:-4px;font-size:.72rem;padding:.25rem .55rem}}.site-admin-page.is-login{background:linear-gradient(135deg,#f0e8df,#e8d5c4,#d4c4b0,#c8b8a4,#f5ece4);background-size:400% 400%;animation:admin-login-bg 20s ease infinite}.site-admin-page.is-login:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 50%,rgba(180,210,160,.15) 0%,transparent 60%),radial-gradient(ellipse at 80% 30%,rgba(200,170,130,.1) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(160,190,210,.08) 0%,transparent 40%);pointer-events:none;z-index:0}@keyframes admin-login-bg{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@media (prefers-reduced-motion: reduce){.site-admin-page.is-login{animation:none;background-size:100% 100%}}.site-admin-page.is-login .site-admin-container{position:relative;z-index:1}.site-admin-page.is-login .site-admin-header{display:none}.site-admin-login{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:1rem}.site-admin-login-card{display:flex;flex-direction:column;align-items:center;gap:1.5rem;background:#ffffffeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.6);border-radius:20px;padding:2.5rem 2rem;max-width:420px;width:100%;box-shadow:0 8px 32px #3e2f231f,0 2px 8px #3e2f230f;text-align:center;position:relative;z-index:1}.site-admin-login-brand{font-family:var(--font-display, Georgia, serif);font-size:1.1rem;font-weight:600;color:#4b3228;letter-spacing:.01em;margin:0}.site-admin-login-text{color:#8a7a6e;font-size:.88rem;text-align:center;margin:0;line-height:1.5}.site-admin-login-password-section,.site-admin-login-passkey-section{width:100%;display:grid;gap:.65rem}.site-admin-password-input{width:100%;padding:.65rem .9rem;border:1px solid rgba(200,180,165,.55);border-radius:10px;background:#ffffffb3;font-family:var(--font-body);font-size:.88rem;color:#3e2f23;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.site-admin-password-input:focus{border-color:#b08968;box-shadow:0 0 0 3px #b089681f}.site-admin-password-input::placeholder{color:#b5a89e}.site-admin-password-btn,.site-admin-passkey-btn{width:100%}.site-admin-passkey-setup[hidden],.site-admin-dashboard[hidden]{display:none!important}.site-admin-passkey-setup{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem}.site-admin-setup-error{color:#8a6a5e;font-size:.82rem;text-align:center;margin:0}.site-admin-dev-bypass-btn{font-size:.75rem;color:#9b8a7c;background:none;border:1px dashed rgba(180,160,140,.5);border-radius:8px;padding:.35rem .9rem;cursor:pointer;transition:background .15s ease,color .15s ease}.site-admin-dev-bypass-btn:hover{background:#c8b4a51f;color:#6a5548}.site-admin-login-error{color:#8a6a5e;font-size:.82rem;text-align:center;margin:0;line-height:1.4}.survey-view{max-width:640px;margin:2rem auto;padding:0}.survey-shell{padding:1.5rem}.survey-header{text-align:center;margin-bottom:1.5rem}.survey-pet-avatar{width:72px;height:72px;border-radius:50%;margin:0 auto .75rem;background:linear-gradient(135deg,#e8ddd2,#d9c1b3);display:flex;align-items:center;justify-content:center;overflow:hidden;border:3px solid #fff;box-shadow:0 2px 8px #3e2f231f}.survey-pet-avatar img{width:100%;height:100%;object-fit:cover}.survey-pet-initial{font-size:1.6rem;font-weight:700;color:#8b6b52}.survey-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.5rem;font-weight:600;color:#3e2f23;margin:0 0 .5rem}.survey-subtitle{color:#5a3e2e;font-size:.95rem;line-height:1.5;margin:0 0 .25rem}.survey-time-hint{color:#8a7a6e;font-size:.85rem;margin:0 0 1rem}.survey-progress{width:100%;height:6px;background:#c8a07833;border-radius:3px;overflow:hidden;margin-bottom:.4rem}.survey-progress-fill{height:100%;background:linear-gradient(90deg,#b08968,#d4a373);border-radius:3px;transition:width .35s ease}.survey-progress-text{font-size:.8rem;color:#8a7a6e;margin:0}.survey-section-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.15rem;font-weight:600;color:#3e2f23;margin:0 0 .25rem;padding-bottom:.5rem;border-bottom:1px solid rgba(200,160,120,.25);display:flex;align-items:center;gap:.5rem}.survey-section-icon{color:#8b6b52;flex-shrink:0}.survey-section-subtitle{color:#8a7a6e;font-size:.85rem;margin:0 0 1rem;line-height:1.4}.survey-fieldset{border:none;padding:0;margin:0 0 1.25rem}.survey-label{display:block;font-size:.9rem;font-weight:500;color:#5a3e2e;margin-bottom:.5rem}.survey-chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}.survey-chip{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:20px;border:1px solid #d9cfc4;background:#fff;color:#5a3e2e;font-size:.85rem;font-family:inherit;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s;pointer-events:auto}.survey-chip:hover{border-color:#c8a88a;background:#f5ece4}.survey-chip.selected{border-color:#b08968;background:#b08968;color:#fff}.survey-chip:focus-visible{outline:2px solid #b08968;outline-offset:2px}.survey-text-input,.survey-textarea{width:100%;padding:.65rem .85rem;border:1px solid #d9c1b3;border-radius:10px;background:#fffefd;font-family:inherit;font-size:.9rem;color:#3e2f23;transition:border-color .15s;box-sizing:border-box}.survey-text-input:focus,.survey-textarea:focus{outline:none;border-color:#b08968;box-shadow:0 0 0 2px #b0896833}.survey-textarea{resize:vertical;min-height:72px}.survey-nav-buttons{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(200,160,120,.2)}.survey-btn-placeholder{flex:1}.survey-btn-back,.survey-btn-next{flex:1;padding:.7rem 1rem;border-radius:10px;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .15s,border-color .15s;pointer-events:auto}.survey-btn-back{background:transparent;border:2px solid #d9cfc4;color:#5a3e2e}.survey-btn-back:hover{border-color:#b08968;background:#faf5f0}.survey-btn-next{background:#b08968;border:2px solid #b08968;color:#fff}.survey-btn-next:hover{background:#9a7558;border-color:#9a7558}.survey-btn-back:focus-visible,.survey-btn-next:focus-visible{outline:2px solid #b08968;outline-offset:2px}.survey-save-link{display:block;margin:.75rem auto 0;background:none;border:none;color:#8a7a6e;font-family:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline;text-underline-offset:2px;pointer-events:auto;padding:.25rem .5rem}.survey-save-link:hover{color:#5a3e2e}.survey-save-link:focus-visible{outline:2px solid #b08968;outline-offset:2px;border-radius:4px}.survey-feedback{text-align:center;color:#5a3e2e;font-size:.85rem;margin-top:.75rem}.survey-thank-you{text-align:center;padding:2rem 1rem}.survey-heart-anim{color:#e07a5f;margin-bottom:1rem;animation:survey-heart-pulse 1.2s ease-in-out infinite}.survey-thank-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.5rem;font-weight:600;color:#3e2f23;margin:0 0 .75rem}.survey-thank-text{color:#5a3e2e;font-size:.95rem;line-height:1.5;margin:0 0 1.5rem}@keyframes survey-heart-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@media (prefers-reduced-motion: reduce){.survey-heart-anim{animation:none}.survey-progress-fill,.survey-chip{transition:none}}@media (max-width: 600px){.survey-shell{padding:1rem}.survey-title{font-size:1.25rem}.survey-nav-buttons{gap:.5rem}.survey-btn-back,.survey-btn-next{padding:.6rem .75rem;font-size:.9rem}.survey-chip{font-size:.8rem;padding:.4rem .8rem}}.dashboard-action-items{margin-top:1.5rem}.dashboard-action-items-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1rem;font-weight:600;color:#3e2f23;margin:0 0 .75rem}.dashboard-action-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border:1px solid #d9c1b3;border-radius:12px;background:#fffefd;margin-bottom:.5rem}.dashboard-action-card.completed{border-color:#a8c6a0;background:#f4faf3}.dashboard-action-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#c8a07826;border-radius:8px;color:#8b6b52}.dashboard-action-card.completed .dashboard-action-icon{background:#6ba16126;color:#6ba161}.dashboard-action-body{flex:1;min-width:0}.dashboard-action-title{font-size:.9rem;font-weight:600;color:#3e2f23;margin:0}.dashboard-action-desc{font-size:.8rem;color:#8a7a6e;margin:.15rem 0 0}.dashboard-action-btn{flex-shrink:0}.dashboard-action-complete{color:#6ba161;font-size:.85rem;font-weight:600;white-space:nowrap}.dashboard-action-pets{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.dashboard-action-pet-btn{padding:.4rem .9rem;border:1.5px solid #d9cfc4;border-radius:20px;background:#fff;color:#3e2f23;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.dashboard-action-pet-btn:hover{background:#f5ece4;border-color:#b08968}@media (max-width: 600px){.dashboard-action-card{flex-wrap:wrap;gap:.5rem}.dashboard-action-body{flex:1 1 calc(100% - 52px)}.dashboard-action-btn{width:100%;text-align:center;margin-top:.25rem}}.site-admin-login,.site-admin-passkey-setup,.site-admin-dashboard{transition:opacity .3s ease,transform .3s ease}.site-admin-screen-hidden{display:none!important}.site-admin-screen-leaving{opacity:0;transform:translateY(-12px);pointer-events:none}@keyframes admin-screen-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.site-admin-screen-entering{animation:admin-screen-enter .35s ease forwards}.site-admin-screen-active{opacity:1;transform:translateY(0)}.site-admin-page.is-transitioning-to-dashboard:before{transition:opacity .5s ease;opacity:0!important;animation:none!important}@media (prefers-reduced-motion: reduce){.site-admin-login,.site-admin-passkey-setup,.site-admin-dashboard{transition:none!important}.site-admin-screen-entering{animation:none!important;opacity:1;transform:none}.site-admin-page.is-transitioning-to-dashboard:before{transition:none!important}}.site-admin-loading{color:#8a7a6e;text-align:center;padding:2rem}.site-admin-empty{color:#a89888;text-align:center;font-style:italic;padding:2rem}.site-admin-error{color:#c0392b;text-align:center;padding:2rem}.site-admin-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.site-admin-stat{background:#fff;border:1px solid #e8ddd4;border-radius:12px;padding:1.25rem;text-align:center;display:flex;flex-direction:column;gap:.25rem}.site-admin-stat-value{font-size:2rem;font-weight:700;color:#3e2f23;font-family:var(--font-display, Georgia, serif)}.site-admin-stat-label{font-size:.8rem;color:#8a7a6e;text-transform:uppercase;letter-spacing:.05em}.site-admin-stat-alert{border-color:#e6a96f;background:#fef8f0}.site-admin-stat-alert .site-admin-stat-value{color:#c87d3a}.site-admin-section-title{font-size:1rem;color:#5a4738;margin:1.5rem 0 .75rem;font-weight:600}.site-admin-activity-item{background:#fff;border:1px solid #e8ddd4;border-radius:10px;padding:.75rem 1rem;margin-bottom:.5rem}.site-admin-activity-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.site-admin-activity-meta strong{color:#3e2f23;font-size:.85rem}.site-admin-activity-text{color:#5a4738;font-size:.85rem;margin:.25rem 0;line-height:1.4}.site-admin-activity-time{font-size:.75rem;color:#a89888}.site-admin-badge{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .5rem;border-radius:4px;background:#e8ddd4;color:#7a5c3e}.site-admin-memorial-tag{font-size:.75rem;color:#b08968;font-style:italic}.site-admin-card{background:#fff;border:1px solid #e8ddd4;border-radius:12px;padding:1rem 1.25rem;margin-bottom:.75rem}.site-admin-card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.site-admin-card-header strong{color:#3e2f23;font-size:.9rem}.site-admin-card-header time{font-size:.75rem;color:#a89888;margin-left:auto}.site-admin-card-body{color:#5a4738;font-size:.88rem;line-height:1.5;margin:.25rem 0 .5rem}.site-admin-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.site-admin-mod-approve{background:#e8f5e9;color:#2e7d32;border:1px solid #c8e6c9;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer;font-weight:600}.site-admin-mod-approve:hover{background:#c8e6c9}.site-admin-mod-reject{background:#fce4ec;color:#c62828;border:1px solid #f8bbd0;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer;font-weight:600}.site-admin-mod-reject:hover{background:#f8bbd0}.site-admin-sub-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.site-admin-sub-tab{background:#f5ece4;border:1px solid #e8ddd4;border-radius:8px;padding:.35rem .85rem;font-size:.82rem;color:#8a7a6e;cursor:pointer}.site-admin-sub-tab:hover{background:#ede2d6}.site-admin-sub-tab-active{background:#b08968;color:#fff;border-color:#b08968}.site-admin-search-bar{margin-bottom:1rem}.site-admin-search{width:100%;padding:.6rem 1rem;border:1px solid #e8ddd4;border-radius:10px;font-size:.9rem;background:#fff;color:#3e2f23;box-sizing:border-box}.site-admin-search:focus{outline:none;border-color:#b08968;box-shadow:0 0 0 3px #b089681f}.site-admin-memorial-meta,.site-admin-profile-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:#8a7a6e;margin-bottom:.5rem}.site-admin-link-btn{display:inline-block;font-size:.8rem;color:#b08968;text-decoration:none;border:1px solid #e8ddd4;border-radius:6px;padding:.25rem .75rem}.site-admin-link-btn:hover{background:#f5ece4}.site-admin-recovery-btn{background:#f5ece4;border:1px solid #e8ddd4;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;color:#5a4738;cursor:pointer}.site-admin-recovery-btn:hover{background:#ede2d6}.site-admin-recovery-link{margin-top:.5rem}.site-admin-recovery-input{width:100%;padding:.4rem .75rem;border:1px solid #d4c8bc;border-radius:6px;font-size:.78rem;color:#5a4738;background:#fdf6f0;font-family:monospace;box-sizing:border-box}.site-admin-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem 0}.site-admin-page-btn{background:#f5ece4;border:1px solid #e8ddd4;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;color:#5a4738;cursor:pointer}.site-admin-page-btn:hover:not(:disabled){background:#ede2d6}.site-admin-page-btn:disabled{opacity:.4;cursor:default}.site-admin-page-info{font-size:.82rem;color:#8a7a6e}.site-admin-signout-btn{background:#fce4ec;color:#c62828;border:1px solid #f8bbd0;border-radius:6px;padding:.35rem .85rem;font-size:.82rem;cursor:pointer}.site-admin-signout-btn:hover{background:#f8bbd0}.site-admin-card code{font-size:.78rem;background:#f5ece4;padding:.1rem .35rem;border-radius:4px;word-break:break-all}.site-admin-memorial-row{display:flex;gap:1rem;align-items:flex-start}.site-admin-memorial-thumb{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:#f5ece4}.site-admin-memorial-thumb-empty{background:#f5ece4;border:1px dashed #d4c8bc}.site-admin-memorial-thumb-locked{display:flex;align-items:center;justify-content:center;background:#f0e8df;border:1px solid #e8ddd4}.site-admin-memorial-info{flex:1;min-width:0}.site-admin-private-note{font-size:.75rem;color:#a89888;font-style:italic;margin:.25rem 0 0}.site-admin-back-btn{background:none;border:none;color:#b08968;font-size:.88rem;cursor:pointer;padding:.25rem 0;margin-bottom:1rem;display:inline-flex;align-items:center;gap:.25rem}.site-admin-back-btn:hover{color:#8a6a4e}.site-admin-memorial-detail-header{display:flex;gap:1.25rem;align-items:flex-start;margin-bottom:1.5rem}.site-admin-memorial-detail-image{width:120px;height:120px;border-radius:16px;object-fit:cover;flex-shrink:0;background:#f5ece4}.site-admin-memorial-detail-image-locked{width:120px;height:120px;border-radius:16px;flex-shrink:0;background:#f0e8df;border:1px solid #e8ddd4;display:flex;align-items:center;justify-content:center}.site-admin-memorial-detail-info{flex:1}.site-admin-memorial-detail-info h2{font-family:var(--font-display, Georgia, serif);font-size:1.35rem;color:#3e2f23;margin:0 0 .5rem}.site-admin-memorial-detail-info .site-admin-badge{margin-right:.5rem}.site-admin-memorial-detail-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:.82rem;color:#8a7a6e;margin-top:.35rem}.site-admin-private-banner{background:#fef8f0;border:1px solid #e6ddd0;border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem}.site-admin-private-banner p{color:#8a7a6e;font-size:.85rem;margin:0;line-height:1.4}.site-admin-slug-editor{margin-bottom:1rem}.site-admin-slug-editor label{font-size:.8rem;color:#8a7a6e;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:.35rem}.site-admin-slug-row{display:flex;align-items:center;gap:.25rem}.site-admin-slug-row>span{color:#8a7a6e;font-size:.9rem;font-family:monospace}.site-admin-slug-input{flex:1;padding:.5rem .75rem;border:1px solid #e8ddd4;border-radius:8px;font-size:.88rem;color:#3e2f23;background:#fff;font-family:monospace;box-sizing:border-box}.site-admin-slug-input:focus{outline:none;border-color:#b08968;box-shadow:0 0 0 3px #b089681f}.site-admin-slug-save{background:#b08968;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;white-space:nowrap}.site-admin-slug-save:hover{background:#9a7658}.site-admin-slug-save:disabled{opacity:.5;cursor:default}.site-admin-slug-feedback{font-size:.8rem;margin:.35rem 0 0}.site-admin-slug-feedback.is-success{color:#388e3c}.site-admin-slug-feedback.is-error{color:#c62828}.site-admin-detail-link{display:inline-block;font-size:.85rem;color:#b08968;text-decoration:none;margin-bottom:1.5rem}.site-admin-detail-link:hover{color:#8a6a4e;text-decoration:underline}.site-admin-assets-section{margin-bottom:1.5rem}.site-admin-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.site-admin-asset-card{background:#fff;border:1px solid #e8ddd4;border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .15s,border-color .15s}.site-admin-asset-card:hover{border-color:#b08968;box-shadow:0 2px 8px #3e2f231a}.site-admin-asset-preview{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f5ece4}.site-admin-asset-preview-file{display:flex;align-items:center;justify-content:center}.site-admin-asset-file-icon{font-size:1.6rem;color:#8a7a6e;font-family:monospace}.site-admin-asset-card-info{padding:.4rem .55rem;display:flex;flex-direction:column;gap:.1rem}.site-admin-asset-kind{font-size:.75rem;font-weight:600;color:#3e2f23;line-height:1.2}.site-admin-asset-meta{font-size:.68rem;color:#8a7a6e;line-height:1.2}.site-admin-mod-pending{background:#fff3cd;color:#856404}.site-admin-mod-rejected{background:#f8d7da;color:#721c24}.site-admin-mod-approved{background:#d4edda;color:#155724}.site-admin-review-badge{display:inline-block;min-width:1.2em;padding:.1em .45em;border-radius:10px;background:#c62828;color:#fff;font-size:.65rem;font-weight:700;text-align:center;line-height:1.2;margin-left:.3rem;vertical-align:middle}.site-admin-review-empty{text-align:center;padding:3rem 1rem;color:#8a7a6e}.site-admin-review-empty-icon{margin-bottom:1rem;opacity:.5}.site-admin-review-empty h3{font-size:1.1rem;color:#5a4738;margin:0 0 .5rem}.site-admin-review-empty p{margin:0;font-size:.9rem}.site-admin-queue-count{font-weight:400;color:#b08968}.site-admin-review-card{border-left:3px solid #ffc107}.site-admin-review-snippet{font-size:.82rem;color:#8a7a6e;margin:.3rem 0 0;line-height:1.4}.site-admin-review-actions{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.site-admin-approve-btn{background:#388e3c;color:#fff;border:none;border-radius:6px;padding:.3rem .9rem;font-size:.78rem;cursor:pointer;font-weight:600}.site-admin-approve-btn:hover{background:#2e7d32}.site-admin-approve-btn:disabled{opacity:.5;cursor:default}.site-admin-reject-btn{background:#f5ece4;color:#c62828;border:1px solid #e8ddd4;border-radius:6px;padding:.3rem .9rem;font-size:.78rem;cursor:pointer;font-weight:600}.site-admin-reject-btn:hover{background:#fce4ec}.site-admin-reject-btn:disabled{opacity:.5;cursor:default}.site-admin-delete-btn,.site-admin-delete-profile-btn{background:#fff;color:#c62828;border:1px solid #e57373;border-radius:6px;padding:.3rem .9rem;font-size:.78rem;cursor:pointer;font-weight:600}.site-admin-delete-btn:hover,.site-admin-delete-profile-btn:hover{background:#fce4ec;border-color:#c62828}.site-admin-delete-btn:disabled,.site-admin-delete-profile-btn:disabled{opacity:.5;cursor:default}.site-admin-detail-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding:.75rem 0;margin-bottom:.5rem;border-bottom:1px solid #ede2d6}.site-admin-user-card{cursor:pointer;transition:border-color .15s}.site-admin-user-card:hover{border-color:#c4b5a6}.site-admin-user-card.expanded{border-color:#b08968}.site-admin-user-card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.site-admin-user-card-header strong{color:#3e2f23;font-size:.9rem}.site-admin-user-detail{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #ede2d6}.site-admin-user-detail-inner{display:flex;flex-direction:column;gap:.25rem}.site-admin-user-profiles-list{display:flex;flex-direction:column;gap:.35rem}.site-admin-user-profile-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem}.site-admin-user-profile-name{font-weight:600;color:#3e2f23}.site-admin-reset-access-btn{background:#fce4ec;color:#c62828;border:1px solid #f8bbd0;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer;font-weight:600}.site-admin-reset-access-btn:hover{background:#f8bbd0}.site-admin-reset-access-btn:disabled{opacity:.5;cursor:default}.site-admin-transfer-btn{background:#f5ece4;border:1px solid #e8ddd4;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;color:#5a4738;cursor:pointer;font-weight:600}.site-admin-transfer-btn:hover{background:#ede2d6}.site-admin-search:focus-visible,.site-admin-search-input:focus-visible,.site-admin-approve-btn:focus-visible,.site-admin-reject-btn:focus-visible,.site-admin-delete-btn:focus-visible,.site-admin-delete-profile-btn:focus-visible,.site-admin-recovery-btn:focus-visible,.site-admin-back-btn:focus-visible,.site-admin-page-btn:focus-visible,.site-admin-sub-tab:focus-visible{outline:2px solid #8a6a4f;outline-offset:2px}@media (prefers-reduced-motion: reduce){.site-admin-card,.site-admin-asset-card,.site-admin-user-card,.site-admin-nav-item,.site-admin-sub-tab,.site-admin-page-btn,.site-admin-approve-btn,.site-admin-reject-btn,.site-admin-recovery-btn,.site-admin-back-btn,.site-admin-dev-bypass-btn,.site-admin-password-input,.site-admin-email-list-item,.site-admin-email-create-btn{transition:none!important}}@media (max-width: 600px){.site-admin-card-header{flex-direction:column;align-items:flex-start;gap:.25rem}.site-admin-card-header time{margin-left:0}.site-admin-stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.site-admin-stat{padding:1rem}.site-admin-stat-value{font-size:1.6rem}.site-admin-card{padding:.75rem}.site-admin-section-title{font-size:1.1rem}.site-admin-search,.site-admin-search-input,.site-admin-pagination{flex-wrap:wrap;justify-content:center;gap:.5rem}.site-admin-review-card .site-admin-memorial-row{flex-direction:column;gap:.5rem}.site-admin-review-card .site-admin-memorial-thumb{width:40px;height:40px}.site-admin-review-actions{gap:.35rem}.site-admin-review-actions button{flex:1;min-width:0;text-align:center}.site-admin-card-actions{flex-wrap:wrap;gap:.35rem}.site-admin-card-actions button{font-size:.78rem}.site-admin-detail-actions{flex-direction:column;gap:.35rem}.site-admin-detail-actions button{width:100%;text-align:center;padding:.5rem .9rem}.site-admin-memorial-detail-header{flex-direction:column;align-items:center;text-align:center}.site-admin-memorial-detail-image,.site-admin-memorial-detail-image-locked{width:80px;height:80px;border-radius:12px}.site-admin-memorial-detail-info h2{font-size:1.15rem}.site-admin-slug-row{flex-direction:column;align-items:stretch}.site-admin-slug-row>span{display:none}.site-admin-asset-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.site-admin-sub-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.25rem;gap:.35rem}.site-admin-sub-tab{white-space:nowrap;flex-shrink:0}.site-admin-user-card-header{flex-direction:column;align-items:flex-start;gap:.15rem}.site-admin-user-profile-row{flex-direction:column;align-items:flex-start;gap:.2rem;padding:.35rem 0;border-bottom:1px solid #f0e8df}.site-admin-user-profile-row:last-child{border-bottom:none}.site-admin-activity-item{padding:.6rem .75rem}.site-admin-login-card{padding:2rem 1.5rem;border-radius:16px;max-width:100%}.site-admin-private-banner{padding:.6rem .75rem}.site-admin-sidebar-toggle{top:8px;right:calc(12px + env(safe-area-inset-right));left:auto}.site-admin-sidebar{padding-bottom:env(safe-area-inset-bottom)}}.flower-btn{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left));z-index:12;display:flex;align-items:center;gap:0;padding:10px;border:1.5px solid rgba(200,160,120,.45);border-radius:999px;background:#fffaf2e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#5a3e2e;font:600 .88rem/1 Inter,system-ui,sans-serif;cursor:pointer;transition:background .28s,box-shadow .28s,transform .12s,padding .28s ease,gap .28s ease;box-shadow:0 2px 10px #5032141f;pointer-events:auto;user-select:none;-webkit-user-select:none;overflow:hidden}.flower-btn:hover{background:#fff5e6f2;box-shadow:0 4px 16px #5032142e;transform:translateY(-1px);padding:10px 18px 10px 10px;gap:6px}.flower-btn:active{transform:scale(.97)}.flower-btn-icon{font-size:1.15em;line-height:1;flex-shrink:0}.flower-btn-label{display:inline-block;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .28s ease,opacity .22s ease}.flower-btn:hover .flower-btn-label{max-width:120px;opacity:1}.flower-btn[hidden],.meet-pet-btn[hidden]{display:none}.meet-pet-btn{position:absolute;z-index:12;display:flex;align-items:center;gap:6px;padding:10px 14px;border:1.5px solid rgba(200,170,130,.55);border-radius:999px;background:#fff8eeeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#5a3e2e;font:600 .84rem/1 Inter,system-ui,sans-serif;cursor:pointer;transition:background .28s,box-shadow .28s,opacity .28s;box-shadow:0 2px 12px #5032141f;pointer-events:auto;user-select:none;-webkit-user-select:none;transform:translate(-50%,-100%)}@keyframes meet-pet-fade-in{0%{opacity:0;transform:translate(-50%,-100%) translateY(6px)}to{opacity:1;transform:translate(-50%,-100%)}}.meet-pet-btn:hover{background:#fffcf5fa;box-shadow:0 4px 18px #50321438}.meet-pet-btn:active{transform:translate(-50%,-100%) scale(.97)}.meet-pet-btn-icon{display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;color:#5a3e2e}.meet-pet-btn-icon svg{display:block;width:18px;height:18px}.meet-pet-btn-label{white-space:nowrap}.fpv-exit-btn{position:fixed;top:calc(16px + env(safe-area-inset-top));left:0;right:0;width:fit-content;margin:0 auto;z-index:20;padding:10px 22px;border:1.5px solid rgba(255,255,255,.5);border-radius:999px;background:#00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font:600 .88rem/1 Inter,system-ui,sans-serif;cursor:pointer;pointer-events:auto;animation:meet-pet-fade-in .4s ease-out}.fpv-exit-btn:hover{background:#0009}.fpv-action-bar{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:16px;pointer-events:none;animation:meet-pet-fade-in .4s ease-out}.fpv-action-bar>*{pointer-events:auto}.fpv-action-bar[hidden]{display:none}.fpv-chat-btn,.fpv-mic-btn{position:relative;width:52px;height:52px;border-radius:999px;padding:0;border:1.5px solid rgba(200,170,130,.55);background:#fff8eeeb;color:#5a3e2e;display:grid;place-items:center;cursor:pointer;pointer-events:auto;touch-action:manipulation;transition:border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 2px 12px #5032141f}.fpv-chat-btn:hover,.fpv-mic-btn:hover{background:#fffcf5fa;box-shadow:0 4px 18px #50321438;transform:scale(1.06)}.fpv-chat-btn:active,.fpv-mic-btn:active{transform:scale(.95)}.fpv-mic-btn.is-holding{border-color:#c89664d9;background:#fff0dcf2;box-shadow:0 0 18px #c8965059,0 2px 12px #5032142e;animation:fpv-mic-pulse 1.2s ease-in-out infinite}@keyframes fpv-mic-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.fpv-btn-icon{display:flex;align-items:center;justify-content:center}.fpv-btn-icon svg{display:block;width:22px;height:22px}.fpv-mic-hint{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);white-space:nowrap;font:400 .68rem/1 Inter,system-ui,sans-serif;color:#5a3e2e8c;pointer-events:none}.flower-picker-panel{position:fixed;bottom:0;left:0;right:0;z-index:15;background:#fffaf2f0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(200,160,120,.3);border-radius:18px 18px 0 0;padding:20px 16px 24px;box-shadow:0 -4px 28px #5032141f;pointer-events:auto;animation:flower-picker-slide-up .28s ease-out}@keyframes flower-picker-slide-up{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.flower-picker-header{font:600 1.05rem/1.3 Inter,system-ui,sans-serif;color:#3e2f23;text-align:center;margin-bottom:2px}.flower-picker-sub{font-size:.78rem;color:#8a7a6e;text-align:center;margin-bottom:14px}.flower-picker-grid{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.flower-picker-item{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 6px;border:1.5px solid rgba(200,160,120,.25);border-radius:12px;background:#fff9;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;min-width:68px}.flower-picker-item:hover{background:#fff5e6e6;border-color:#c88c5080;transform:translateY(-2px)}.flower-picker-item:active{transform:scale(.96)}.flower-picker-item span{font-size:.7rem;color:#5a4a3e;font-weight:500;white-space:nowrap}.flower-picker-thumb{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;width:48px;height:48px}.flower-picker-close{position:absolute;top:8px;right:12px;border:none;background:none;font-size:1.5rem;color:#8a7a6e;cursor:pointer;padding:4px 8px;line-height:1;pointer-events:auto}.flower-picker-close:hover{color:#3e2f23}.flower-confirm-btns{display:flex;gap:5px;pointer-events:auto}.flower-confirm-yes,.flower-confirm-move,.flower-confirm-no{width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(120,85,60,.25);font-size:.75rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;box-shadow:0 1px 4px #00000026}.flower-confirm-yes{background:#82be78e6;color:#fff}.flower-confirm-yes:hover{background:#6eaf64;transform:scale(1.1)}.flower-confirm-move{background:#ffffffeb;color:#8a7260;font-size:.85rem}.flower-confirm-move:hover{background:#fff;transform:scale(1.1)}.flower-confirm-no{background:#dc6450d9;color:#fff}.flower-confirm-no:hover{background:#c8503c;transform:scale(1.1)}.flower-message-form{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#281e1473;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto;animation:flower-form-fadein .22s ease-out}@keyframes flower-form-fadein{0%{opacity:0}to{opacity:1}}.flower-message-form-inner{background:#fffaf2f7;border:1px solid rgba(200,160,120,.35);border-radius:16px;padding:24px 22px;max-width:360px;width:calc(100% - 32px);box-shadow:0 8px 36px #3c230f2e}.flower-message-form-inner h3{font:600 1.05rem/1.3 Inter,system-ui,sans-serif;color:#3e2f23;margin:0 0 14px}.flower-message-form-inner label{display:block;margin-bottom:12px}.flower-message-form-inner label span{display:block;font-size:.78rem;font-weight:600;color:#6f5650;margin-bottom:4px}.flower-message-form-inner input,.flower-message-form-inner textarea{width:100%;padding:8px 10px;border:1px solid rgba(200,160,120,.35);border-radius:8px;background:#ffffffb3;font:400 .88rem/1.4 Inter,system-ui,sans-serif;color:#3e2f23;resize:vertical;transition:border-color .15s}.flower-message-form-inner input:focus,.flower-message-form-inner textarea:focus{outline:none;border-color:#c88c5099;box-shadow:0 0 0 2px #c88c5026}.flower-form-actions{display:flex;gap:10px;margin-top:16px}.flower-form-submit{flex:1;padding:10px 16px;border:none;border-radius:10px;background:#d4845a;color:#fff;font:600 .88rem/1 Inter,system-ui,sans-serif;cursor:pointer;transition:background .15s,transform .1s}.flower-form-submit:hover{background:#c4744a}.flower-form-submit:active{transform:scale(.97)}.flower-form-submit:disabled{opacity:.6;cursor:default}.flower-form-cancel{padding:10px 16px;border:1px solid rgba(200,160,120,.35);border-radius:10px;background:transparent;color:#8a7a6e;font:500 .85rem/1 Inter,system-ui,sans-serif;cursor:pointer;transition:background .15s}.flower-form-cancel:hover{background:#c8a0781f}.flower-envelope{pointer-events:none;transition:opacity .2s,transform .18s;filter:drop-shadow(0 1px 3px rgba(80,50,20,.15))}.flower-envelope-opening{animation:envelope-open-bounce .3s ease-out}@keyframes envelope-open-bounce{0%{transform:translate(-50%,-100%) scale(1)}40%{transform:translate(-50%,-100%) scale(1.15) rotate(-3deg)}70%{transform:translate(-50%,-100%) scale(.95) rotate(1deg)}to{transform:translate(-50%,-100%) scale(1)}}.flower-envelope--unread{animation:envelope-glow 2s ease-in-out infinite}@keyframes envelope-glow{0%,to{filter:drop-shadow(0 1px 3px rgba(80,50,20,.15))}50%{filter:drop-shadow(0 0 6px rgba(255,200,100,.6)) drop-shadow(0 0 12px rgba(255,180,80,.3))}}.flower-postcard{pointer-events:auto;background:#fdf6ec;border:2px solid #d4b896;border-radius:4px;padding:0;width:300px;max-width:90vw;box-shadow:0 6px 24px #3c230f2e,inset 0 0 0 1px #ffffff80;animation:postcard-appear .28s ease-out;position:relative;background-image:linear-gradient(135deg,transparent 40%,rgba(200,170,120,.06) 50%,transparent 60%),linear-gradient(to bottom,#fdf6ec,#f8eed8)}@media (min-width: 601px){.flower-postcard--long{width:420px}}@keyframes postcard-appear{0%{opacity:0;transform:translate(-50%,-100%) scale(.88) rotate(-2deg)}to{opacity:1;transform:translate(-50%,-100%) scale(1) rotate(0)}}.flower-postcard-close{position:absolute;top:-14px;right:-14px;border:1px solid rgba(180,150,120,.35);background:#fffbf7fa;color:#5a3e3380;cursor:pointer;width:28px;height:28px;min-height:28px;display:grid;place-items:center;line-height:0;font-size:0;z-index:2;border-radius:999px;padding:0;box-shadow:0 1px 4px #28190f1f;transition:color .15s,background .15s}.flower-postcard-close:hover{color:#5a3e33d9;background:#f5ebe1}.flower-postcard-inner{display:flex;min-height:110px}.flower-postcard-left{width:90px;flex-shrink:0;padding:10px 8px 10px 10px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border-right:1px dashed rgba(180,150,110,.4)}.flower-postcard-right{flex:1;padding:14px 12px 12px 14px;display:flex;flex-direction:column;justify-content:center}.flower-postcard-message{font:italic 400 .82rem/1.5 Georgia,Times New Roman,serif;color:#4a3a2c;word-break:break-word}.flower-postcard-from{font:600 .6rem/1.2 Inter,system-ui,sans-serif;color:#8a7260;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.flower-postcard-dash{color:#b8a08a}.flower-postcard-stamp{width:46px;height:50px;border:2px dashed rgba(160,120,80,.4);border-radius:2px;background:#fff8ebcc;display:flex;align-items:center;justify-content:center;align-self:flex-start;box-shadow:-1px -1px #fdf6ec,1px -1px #fdf6ec,-1px 1px #fdf6ec,1px 1px #fdf6ec}.flower-postcard-stamp-inner{display:flex;flex-direction:column;align-items:center;gap:2px}.flower-postcard-stamp-icon{font-size:16px;line-height:1;image-rendering:pixelated}.flower-postcard-stamp-label{font:600 .42rem/1 Inter,system-ui,sans-serif;color:#9a7a5a;text-transform:uppercase;letter-spacing:.03em;text-align:center;white-space:nowrap}.flower-postcard-address{width:100%;padding-top:4px}.flower-postcard-address-line{height:1px;background:#a082644d;margin-bottom:6px}.flower-postcard-address-line:last-child{width:70%;margin-bottom:0}@media (max-width: 600px){.flower-btn{left:auto;right:calc(max(.7rem,env(safe-area-inset-right)) + .24rem);bottom:calc(max(.68rem,env(safe-area-inset-bottom)) + 2.2rem + 56px + .6rem);padding:12px;font-size:.88rem;min-height:48px;min-width:48px}.meet-pet-btn{padding:10px 14px;min-height:48px}.flower-btn:hover{padding:12px 16px 12px 12px}.flower-btn-icon{font-size:1.3rem}.flower-picker-panel{padding:16px 12px 20px}.flower-picker-item{min-width:56px;padding:6px 4px}.flower-picker-thumb{width:40px;height:40px}.flower-picker-item span{font-size:.62rem}.flower-message-form-inner{padding:18px 16px}.flower-postcard{width:min(300px,calc(100vw - 32px));animation:postcard-appear-mobile .32s cubic-bezier(.34,1.56,.64,1) both}@keyframes postcard-appear-mobile{0%{opacity:0;transform:translate(-50%,-50%) scale(.88)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}}.journal-picker-card{max-width:640px;margin:48px auto;padding:28px 32px;background:#fff8f3;border-radius:18px;box-shadow:0 8px 32px #2819141a;animation:journal-enter .35s ease-out both}.journal-picker-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.journal-picker-back{background:none;border:none;cursor:pointer;color:#5a3e2e;padding:4px;border-radius:8px;pointer-events:auto}.journal-picker-back:hover{background:#c8a07826}.journal-picker-title{font-family:Inter,system-ui,sans-serif;font-size:1.25rem;font-weight:600;color:#3e2f23;margin:0}.journal-picker-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.journal-picker-item{display:flex;align-items:center;gap:14px;width:100%;padding:12px 16px;background:#c8a07814;border:1.5px solid rgba(200,160,120,.2);border-radius:14px;cursor:pointer;transition:background .15s,border-color .15s;pointer-events:auto;font-family:Inter,system-ui,sans-serif}.journal-picker-item:hover{background:#c8a0782e;border-color:#c8a07866}.journal-picker-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eadfd4;flex-shrink:0}.journal-picker-name{font-size:1.05rem;font-weight:500;color:#3e2f23}@media (max-width: 600px){.journal-picker-card{margin:16px 8px;padding:16px;border-radius:14px}.journal-picker-list{grid-template-columns:1fr}}.journal-card{width:min(100%,640px);margin:24px auto;padding:0;background:#fff8f3;border-radius:18px;box-shadow:0 8px 32px #2819141a;overflow:hidden;animation:journal-enter .35s ease-out both}@keyframes journal-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.journal-header{display:flex;align-items:center;gap:12px;padding:20px 24px 12px;background:linear-gradient(135deg,#5a3e2e,#3e2f23);color:#f6efe9}.journal-back{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-height:36px;min-width:36px;border:none;border-radius:50%;background:#ffffff26;color:inherit;cursor:pointer;transition:background .2s;flex-shrink:0;pointer-events:auto;overflow:hidden;padding:0}.journal-avatar{width:40px;height:40px;min-width:40px;border-radius:50%;border:2px solid rgba(200,160,120,.5);background:#f5ece4;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.journal-avatar-img{width:32px;height:32px;object-fit:contain;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor}.journal-back:hover,.journal-back:focus-visible{background:#ffffff38}.journal-header-text{min-width:0}.journal-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#f6efe9}.journal-subtitle{margin:2px 0 0;font-size:.78rem;color:#f6efe9d9}.journal-sync-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 24px;background:#f0e8df;border-bottom:1px solid rgba(90,62,46,.1)}.journal-sync-label{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:500;color:#5a3e2e;cursor:pointer}.journal-sync-switch{position:relative;display:inline-block;width:44px;height:24px;min-height:24px;border-radius:12px;border:none;background:#ccc3bb;cursor:pointer;transition:background .25s ease;padding:0;pointer-events:auto;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;appearance:none}.journal-sync-switch[aria-checked=true]{background:#6b8f71}.journal-sync-switch-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .25s ease;box-shadow:0 1px 3px #0003}.journal-sync-switch[aria-checked=true] .journal-sync-switch-thumb{transform:translate(20px)}.journal-sync-status{font-size:.72rem;color:#8a7a6e;flex-shrink:0}.journal-prompt-banner{padding:14px 24px;background:#c8a0781a;border-bottom:1px solid rgba(90,62,46,.08);display:flex;align-items:center;gap:10px}.journal-prompt-text{margin:0;font-size:.88rem;color:#5a3e2e;font-style:italic;line-height:1.5;flex:1}.journal-prompt-refresh{flex-shrink:0;background:none;border:none;border-radius:8px;padding:4px 10px;min-height:0;display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:#8a7a6e;font-size:.76rem;font-weight:500;font-family:Inter,system-ui,sans-serif;transition:color .2s,background .2s;pointer-events:auto;white-space:nowrap}.journal-prompt-refresh:hover{color:#5a3e2e;background:#5a3e2e14}.journal-prompt-refresh:active svg{transform:rotate(180deg);transition:transform .3s}.journal-compose{padding:18px 24px;border-bottom:1px solid rgba(90,62,46,.1)}.journal-compose-title{width:100%;padding:10px 14px;border:1px solid rgba(90,62,46,.18);border-radius:10px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.92rem;font-weight:500;color:#3e2f23;margin-bottom:10px;box-sizing:border-box;transition:border-color .2s}.journal-compose-title:focus{outline:none;border-color:#c8a07899;box-shadow:0 0 0 3px #c8a07826}.journal-compose-body{width:100%;padding:12px 14px;border:1px solid rgba(90,62,46,.18);border-radius:10px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.88rem;color:#3e2f23;resize:vertical;min-height:80px;line-height:1.55;box-sizing:border-box;transition:border-color .2s}.journal-compose-body:focus{outline:none;border-color:#c8a07899;box-shadow:0 0 0 3px #c8a07826}.journal-compose-actions{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px}.journal-compose-left{display:flex;align-items:center;gap:10px}.journal-photo-label{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(90,62,46,.18);border-radius:8px;cursor:pointer;color:#8a7a6e;transition:background .2s,color .2s;pointer-events:auto}.journal-photo-label:hover,.journal-photo-label:focus-within{background:#c8a0781f;color:#5a3e2e}.journal-photo-preview{position:relative;display:inline-flex;align-items:center}.journal-photo-preview[hidden]{display:none}.journal-photo-thumb{width:36px;height:36px;object-fit:cover;border-radius:6px;border:1px solid rgba(90,62,46,.15)}.journal-photo-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border:none;border-radius:50%;background:#5a3e2e;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;pointer-events:auto}.journal-save-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:12px;font-family:Inter,system-ui,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;pointer-events:auto;min-height:38px}.journal-save-btn>span{display:inline-flex;align-items:center;gap:6px}.journal-entry-list{padding:8px 24px 18px}.journal-empty-state{text-align:center;padding:32px 16px;color:#8a7a6e;font-size:.88rem;font-style:italic}.journal-entry{position:relative;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:8px;background:#fff;border:1px solid rgba(90,62,46,.1);border-radius:12px;transition:box-shadow .2s,border-color .2s}.journal-entry:hover,.journal-entry:focus-visible{border-color:#c8a07859;box-shadow:0 2px 12px #2819140f}.journal-entry:focus-visible{outline:2px solid rgba(200,160,120,.5);outline-offset:2px}.journal-entry-content{flex:1;min-width:0}.journal-entry-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.journal-entry-title{margin:0;font-size:.9rem;font-weight:600;color:#3e2f23;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journal-entry-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.journal-entry-date{font-size:.72rem;color:#8a7a6e;white-space:nowrap}.journal-entry-mood{font-size:.82rem}.journal-entry-sync-badge{font-size:.7rem;color:#8a7a6e}.journal-entry-sync-local{font-size:.65rem}.journal-entry-body{margin:0;font-size:.82rem;color:#5a3e2e;line-height:1.45}.journal-entry-thumb{width:52px;height:52px;border-radius:8px;overflow:hidden;flex-shrink:0;background:#f0e8df}.journal-entry-thumb img{width:100%;height:100%;object-fit:cover;display:block}.journal-entry-delete{position:absolute;top:8px;right:8px;width:32px;height:32px;border:none;border-radius:50%;background:transparent;color:#8a7a6e;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s,color .2s;pointer-events:auto}.journal-entry:hover .journal-entry-delete,.journal-entry:focus-within .journal-entry-delete{opacity:1}.journal-entry-delete:hover,.journal-entry-delete:focus-visible{background:#b43c3c1a;color:#b43c3c}.journal-resources{margin:0 24px 18px;border:1px solid rgba(90,62,46,.1);border-radius:12px;overflow:hidden}.journal-resources-toggle{display:flex;align-items:center;gap:8px;padding:12px 16px;font-family:Inter,system-ui,sans-serif;font-size:.84rem;font-weight:500;color:#5a3e2e;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.journal-resources-toggle::-webkit-details-marker{display:none}.journal-resources-toggle:after{content:"";margin-left:auto;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #8a7a6e;transition:transform .2s}.journal-resources[open] .journal-resources-toggle:after{transform:rotate(180deg)}.journal-resources-body{padding:0 16px 14px}.journal-resources-body ul{margin:0;padding:0 0 0 18px;list-style:disc}.journal-resources-body li{margin-bottom:8px;font-size:.82rem}.journal-resources-body a{color:#5a3e2e;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.journal-resources-body a:hover,.journal-resources-body a:focus-visible{color:#3e2f23}.journal-resources-note{margin:12px 0 0;font-size:.78rem;color:#8a7a6e;font-style:italic;line-height:1.5}.journal-feedback{text-align:center;padding:10px 24px;font-size:.82rem;color:#5a3e2e;background:#c8a0781f;border-top:1px solid rgba(90,62,46,.08)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:9999;padding:8px 16px;background:#5a3e2e;color:#f6efe9;font-family:Inter,system-ui,sans-serif;font-size:.82rem;text-align:center;transform:translateY(-100%);transition:transform .3s ease}.offline-banner.visible{transform:translateY(0)}@media (max-width: 600px){.journal-card{margin:12px 8px;border-radius:14px}.journal-header{padding:16px 16px 10px}.journal-title{font-size:1.1rem}.journal-sync-bar{padding:8px 16px}.journal-prompt-banner{padding:12px 16px}.journal-compose{padding:14px 16px}.journal-entry-list{padding:8px 16px 14px}.journal-resources{margin:0 16px 14px}.journal-entry-head{flex-direction:column;gap:2px}.journal-entry-delete{opacity:.6;width:36px;height:36px}}@media (prefers-reduced-motion: reduce){.journal-card{animation:none}.journal-entry-delete{opacity:1;transition:none}.offline-banner{transition:none}.journal-prompt-refresh:active svg{transform:none;transition:none}}.storage-meter{padding:10px 0}.storage-meter-bar{height:6px;background:#5a3e2e1a;border-radius:3px;overflow:hidden}.storage-meter-fill{height:100%;background:#8a7a6e;border-radius:3px;transition:width .3s ease}.storage-meter-warning .storage-meter-fill{background:#c89a58}.storage-meter-critical .storage-meter-fill{background:#b85c4a}.storage-meter-label{display:block;margin-top:4px;font-size:.75rem;color:#8a7a6e;text-align:right}.gallery-card{max-width:680px;margin:24px auto;border-radius:18px;background:#fffaf4;box-shadow:0 2px 16px #3e2f231a;overflow:hidden;animation:journalFadeIn .35s ease}.gallery-header{display:flex;align-items:center;gap:12px;padding:20px 24px 14px;border-bottom:1px solid rgba(90,62,46,.1)}.gallery-back{background:none;border:none;color:#5a3e2e;cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .2s;pointer-events:auto}.gallery-back:hover{background:#c8a07826}.gallery-title{margin:0;font-size:1.25rem;font-weight:600;color:#3e2f23}.gallery-subtitle{margin:2px 0 0;font-size:.8rem;color:#8a7a6e}.gallery-storage-meter{padding:4px 24px 0}.gallery-upload-area{padding:14px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(90,62,46,.08)}.gallery-upload-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#5a3e2e;color:#f6efe9;border:none;border-radius:10px;font-family:Inter,system-ui,sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s;pointer-events:auto}.gallery-upload-btn:hover{background:#3e2f23}.gallery-upload-hint{margin:0;font-size:.75rem;color:#8a7a6e}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding:16px 24px}.gallery-item{position:relative;border-radius:10px;overflow:hidden;background:#5a3e2e0f;cursor:pointer;aspect-ratio:1;transition:transform .15s,box-shadow .15s}.gallery-item:hover,.gallery-item:focus-visible{transform:scale(1.03);box-shadow:0 3px 12px #3e2f2326;outline:none}.gallery-item-thumb{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.gallery-item-thumb img{width:100%;height:100%;object-fit:cover}.gallery-item-caption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:4px 8px;background:#3e2f23b3;color:#f6efe9;font-size:.7rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-empty-state{text-align:center;padding:32px 24px;color:#8a7a6e;font-size:.88rem;font-style:italic}.gallery-feedback{text-align:center;padding:10px 24px;font-size:.82rem;color:#5a3e2e;background:#c8a0781f;border-top:1px solid rgba(90,62,46,.08)}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.gallery-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000c}.gallery-lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:12px}.gallery-lightbox-img{max-width:100%;max-height:70vh;border-radius:8px;object-fit:contain}.gallery-lightbox-info{display:flex;align-items:center;gap:12px;width:100%;max-width:400px}.gallery-lightbox-caption{flex:1;padding:8px 12px;border:1px solid rgba(255,255,255,.25);border-radius:8px;background:#ffffff1a;color:#fff;font-family:Inter,system-ui,sans-serif;font-size:.85rem}.gallery-lightbox-caption::placeholder{color:#ffffff80}.gallery-lightbox-date{font-size:.75rem;color:#fff9;white-space:nowrap}.gallery-lightbox-actions{display:flex;gap:10px}.gallery-lightbox-delete,.gallery-lightbox-close{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;color:#fff;font-family:Inter,system-ui,sans-serif;font-size:.82rem;cursor:pointer;transition:background .2s;pointer-events:auto}.gallery-lightbox-delete:hover{background:#b85c4a80}.gallery-lightbox-close:hover{background:#fff3}@media (max-width: 600px){.gallery-card{margin:12px 8px;border-radius:14px}.gallery-header{padding:16px 16px 10px}.gallery-upload-area{padding:10px 16px;flex-direction:column;align-items:flex-start;gap:6px}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;padding:12px 16px}.gallery-storage-meter{padding:4px 16px 0}.gallery-lightbox-content{max-width:96vw}.gallery-lightbox-info{flex-direction:column;gap:6px;max-width:100%}.gallery-lightbox-actions{width:100%;justify-content:center}.gallery-lightbox-delete,.gallery-lightbox-close{padding:10px 18px;min-height:44px}}@media (prefers-reduced-motion: reduce){.gallery-card{animation:none}.gallery-item{transition:none}}.checkin-banner{padding:14px 20px;margin:0 0 12px;background:#c8a0781f;border:1px solid rgba(200,160,120,.2);border-radius:12px;display:flex;align-items:center;gap:12px}.checkin-banner-message{margin:0;font-size:.85rem;color:#3e2f23;line-height:1.4}.checkin-banner-action{display:inline-block;margin-top:6px;padding:4px 12px;background:#5a3e2e;color:#f6efe9;border:none;border-radius:8px;font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .2s;pointer-events:auto}.checkin-banner-action:hover{background:#3e2f23}.checkin-banner-dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;color:#8a7a6e;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;pointer-events:auto}.checkin-banner-dismiss:hover{background:#5a3e2e1a}.family-garden-view{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;height:calc(var(--app-vh, 1vh) * 100);z-index:20;overflow:hidden;background:#6ea05a}.family-garden-view canvas{image-rendering:pixelated}.family-garden-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:12px;padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));padding-left:calc(20px + env(safe-area-inset-left));z-index:10;pointer-events:none}.garden-title{margin:0;font-size:1.25rem;font-weight:700;letter-spacing:.02em;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.55),0 0 12px rgba(0,0,0,.25)}.garden-world-menu-ui{z-index:18}.garden-speech-bubble{position:absolute;transform:translate(-50%,-100%);pointer-events:none;z-index:12;transition:opacity .2s ease;animation:garden-bubble-pop .25s ease-out}@keyframes garden-bubble-pop{0%{transform:translate(-50%,-90%) scale(.6);opacity:0}to{transform:translate(-50%,-100%) scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.garden-speech-bubble{animation:none}}.garden-pet-popup{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#fffaf4eb;border:1px solid rgba(90,62,46,.15);border-radius:14px;padding:16px 20px;min-width:200px;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #3e2f2326;z-index:10;margin-bottom:env(safe-area-inset-bottom)}.garden-popup-name{margin:0;font-size:1.05rem;font-weight:600;color:#3e2f23}.garden-popup-type{margin:2px 0 12px;font-size:.78rem;color:#8a7a6e;text-transform:capitalize}.garden-popup-bridge{display:inline-block;padding:8px 18px;background:#5a3e2e;color:#f6efe9;border:none;border-radius:10px;font-family:Inter,system-ui,sans-serif;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .2s;pointer-events:auto}.garden-popup-bridge:hover{background:#3e2f23}.garden-popup-close{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;color:#8a7a6e;padding:4px;pointer-events:auto}@media (max-width: 600px){.garden-pet-popup{left:12px;right:12px;transform:none;bottom:12px}}.welcome-garden-area{text-align:center;padding:16px 0 8px}.welcome-garden-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,#5a8a4a,#7aaa68);color:#fff;border:none;border-radius:12px;font-family:Inter,system-ui,sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px #5a8a4a40}.welcome-garden-btn:hover{transform:translateY(-1px);box-shadow:0 4px 14px #5a8a4a59}.welcome-garden-btn svg{flex-shrink:0}.checkin-banner-area:empty{display:none}.checkin-banner-area{padding:0 4px;margin-bottom:4px}.checkin-banner-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.dashboard-card{max-width:720px;margin:0 auto;border-radius:18px;background:#fffcf8eb;padding:0;box-shadow:0 2px 12px #3e2f2314}.dashboard-shell{padding:2rem 1.5rem 2.5rem}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dashboard-header-top h1{font-size:1.5rem;color:#3e2f23;margin:0;overflow-wrap:break-word;word-break:break-word}.dashboard-header-top p{color:#8a7a6e;margin:.25rem 0 0;font-size:.95rem}.dashboard-header-actions{position:relative;flex-shrink:0}.dashboard-notif-btn{width:44px;height:44px;border-radius:50%;border:1px solid #dec9ba;background:#fffcf8cc;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:#5a3e2e;transition:background .15s;pointer-events:auto}.dashboard-notif-btn:hover{background:#c8a07826}.dashboard-notif-badge{position:absolute;top:4px;right:4px;background:#5a3e2e;color:#f6efe9;font-size:.62rem;font-weight:700;min-width:16px;height:16px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.dashboard-notif-badge-ok{background:#6a9a5b;color:#fff;font-size:.6rem}.dashboard-notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:360px;overflow-y:auto;background:#fffdfb;border:1px solid #dec9ba;border-radius:14px;box-shadow:0 6px 24px #3e2f231f;z-index:100;padding:.75rem 0}.dashboard-notif-panel-title{font-size:.85rem;font-weight:600;color:#5a3e2e;padding:0 1rem .5rem;margin:0;border-bottom:1px solid #f0e6dc}.dashboard-notif-item{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem 1rem;border-bottom:1px solid #f0e6dc}.dashboard-notif-item:last-child{border-bottom:none}.dashboard-notif-item-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#8a7a6e;margin-top:2px}.dashboard-notif-item-body{flex:1;min-width:0}.dashboard-notif-item-body p{margin:0;font-size:.82rem;color:#3e2f23;line-height:1.4}.dashboard-notif-item-action{display:inline-block;margin-top:.3rem;font-size:.75rem;color:#5a3e2e;font-weight:600;background:#c8a07826;border:none;border-radius:6px;padding:.2rem .5rem;cursor:pointer;pointer-events:auto}.dashboard-notif-item-action:hover{background:#c8a0784d}.dashboard-notif-item-dismiss{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:#8a7a6e;border-radius:50%;pointer-events:auto}.dashboard-notif-item-dismiss:hover{background:#c8a07826;color:#5a3e2e}.dashboard-notif-empty{text-align:center;color:#8a7a6e;font-size:.82rem;padding:1.5rem 1rem;margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:1rem}.dashboard-grid .welcome-pet-action{min-height:32px;font-size:.72rem;border-radius:8px;padding:0 8px}.dashboard-grid .welcome-pet-overlay{gap:.3rem;padding:.4rem}.dashboard-garden-area{text-align:center;margin-bottom:1.5rem}.dashboard-garden-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;border-radius:12px;border:1px solid #dec9ba;background:#c8a07814;color:#5a3e2e;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;pointer-events:auto}.dashboard-garden-btn:hover{background:#c8a07833}.dashboard-garden-btn svg{flex-shrink:0}.dashboard-account{border-top:1px solid #f0e6dc;padding-top:1.5rem;margin-top:.5rem}.dashboard-account-title{font-size:1.1rem;color:#3e2f23;margin:0 0 .25rem}.dashboard-account-subtitle{color:#8a7a6e;font-size:.85rem;margin:0 0 1.2rem}.dashboard-security-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.dashboard-security-card{background:#fffcf8b3;border:1px solid #dec9ba;border-radius:14px;padding:1.2rem}.dashboard-security-card-icon{width:42px;height:42px;border-radius:12px;background:#c8a0781f;display:flex;align-items:center;justify-content:center;color:#5a3e2e;margin-bottom:.7rem}.dashboard-security-card h3{font-size:.95rem;color:#3e2f23;margin:0 0 .3rem}.dashboard-security-card p{font-size:.82rem;color:#8a7a6e;margin:0 0 .7rem;line-height:1.45}.dashboard-passkey-active .dashboard-security-card-icon{background:#4caf501f;color:#4caf50}.dashboard-passkey-badge{display:inline-block;font-size:.72rem;font-weight:700;color:#fff;background:#4caf50;padding:.15rem .6rem;border-radius:999px}.dashboard-passkey-status{font-size:.8rem;color:#8a7a6e;margin-top:.5rem}.dashboard-link-desc{font-size:.82rem;color:#8a7a6e;margin:0 0 .5rem;line-height:1.45}.dashboard-link-controls{display:flex;flex-direction:column;gap:.5rem}.dashboard-qr-display{text-align:center;padding:.5rem 0}.dashboard-qr-display canvas{border-radius:8px;display:block;margin:0 auto .3rem}.dashboard-qr-url{font-size:.65rem;color:#8a7a6e;word-break:break-all;margin:0}.dashboard-link-actions{display:flex;gap:8px}.dashboard-link-status{font-size:.78rem;color:#8a7a6e;margin:0;min-height:1.2em}.dashboard-family-card{grid-column:1 / -1}.dashboard-family-hint{font-size:.82rem;color:#8a7a6e;margin:0 0 .5rem}.dashboard-family-form{display:flex;gap:.5rem;align-items:center}.dashboard-family-form[hidden],.dashboard-family-display[hidden]{display:none}.dashboard-family-input{flex:1 1 auto;min-width:0;padding:8px 12px;border:1px solid rgba(90,62,46,.2);border-radius:10px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.88rem;color:#3e2f23}.dashboard-family-input:focus{outline:none;border-color:#5a3e2e66;box-shadow:0 0 0 3px #5a3e2e14}.dashboard-family-save{flex-shrink:0;width:auto!important;min-height:36px;min-width:0;padding:0 16px;font-size:.82rem}.dashboard-family-display{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.dashboard-family-current{font-size:.92rem;font-weight:600;color:#3e2f23}.dashboard-family-slug-preview{font-size:.72rem;color:#8a7a6e;background:#c8a0781a;padding:2px 8px;border-radius:6px}.dashboard-family-edit{background:none;border:none;min-height:0;padding:4px;cursor:pointer;color:#8a7a6e;border-radius:6px;transition:color .2s,background .2s}.dashboard-family-edit:hover{color:#5a3e2e;background:#5a3e2e14}.dashboard-family-status{font-size:.76rem;color:#8a7a6e;margin:.3rem 0 0;min-height:1em}.dashboard-invite-card{grid-column:1 / -1}.dashboard-invite-controls{display:flex;flex-direction:column;gap:.5rem}.dashboard-invite-pet-list{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-invite-pet-check{display:flex;align-items:center;gap:.3rem;font-size:.82rem;color:#3e2f23;cursor:pointer}.dashboard-invite-pet-check input{accent-color:#5a3e2e}.dashboard-invite-url{font-family:monospace;font-size:.75rem;color:#3e2f23;background:#c8a07814;padding:.4rem .6rem;border-radius:8px;word-break:break-all;margin:0;-webkit-user-select:all;user-select:all}.dashboard-invite-hint{font-size:.72rem;color:#8a7a6e;margin:0}@media (max-width: 600px){.dashboard-shell{padding:1.5rem 1rem 2rem}.dashboard-notif-panel{width:calc(100vw - 2rem);right:-.5rem}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.dashboard-grid .welcome-pet-action{min-height:28px;font-size:.68rem;border-radius:7px}.dashboard-security-options{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.dashboard-notif-panel{transition:none}}.memorial-export-section{padding:0 20px;max-width:720px;margin:40px auto}.memorial-export-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}@media (max-width: 600px){.memorial-export-cards{grid-template-columns:1fr}}.memorial-export-card{background:#fffaf499;border:1px solid rgba(200,160,120,.2);border-radius:16px;padding:20px}.memorial-export-card h3{margin:0 0 6px;font-size:.95rem;font-weight:600;color:#3e2f23}.memorial-export-desc{margin:0 0 16px;font-size:.82rem;color:#8a7a6e;line-height:1.4}.memorial-card-options{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.memorial-card-option-label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:#5a3e2e;font-weight:500}.memorial-card-option-label select,.memorial-card-option-label input{padding:6px 10px;border:1px solid rgba(200,160,120,.3);border-radius:8px;font-family:Inter,system-ui,sans-serif;font-size:.82rem;background:#fff;color:#3e2f23}.memorial-card-generate,.memorial-print-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;background:#5a3e2e;color:#f6efe9;border:none;border-radius:10px;font-family:Inter,system-ui,sans-serif;font-size:.82rem;font-weight:500;cursor:pointer;transition:background .2s}.memorial-card-generate:hover,.memorial-print-btn:hover{background:#3e2f23}.memorial-card-generate:disabled,.memorial-print-btn:disabled{opacity:.6;cursor:not-allowed}.memorial-card-preview{margin-top:16px}.memorial-card-preview canvas{width:100%;max-width:400px;height:auto;border-radius:8px;border:1px solid rgba(200,160,120,.2)}.memorial-card-preview-actions{display:flex;gap:10px;margin-top:10px}.memorial-card-share,.memorial-card-download{padding:8px 16px;background:#5a3e2e14;color:#5a3e2e;border:1px solid rgba(90,62,46,.15);border-radius:8px;font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:500;cursor:pointer;transition:background .2s}.memorial-card-share:hover,.memorial-card-download:hover{background:#5a3e2e24}.memorial-card-status,.memorial-print-status{margin:8px 0 0;font-size:.78rem;color:#8a7a6e}.qr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#28190f8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:20px;animation:qrFadeIn .2s ease}@keyframes qrFadeIn{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.qr-modal-backdrop{animation:none}}.qr-modal-card{background:#fff;border-radius:16px;box-shadow:0 24px 64px #28190f47;max-width:540px;width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.qr-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 12px;border-bottom:1px solid rgba(216,193,174,.35)}.qr-modal-title{margin:0;font-family:Inter,system-ui,sans-serif;font-size:1.05rem;font-weight:600;color:#3e2f23}.qr-modal-close{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:8px;background:transparent;color:#8a7a6e;cursor:pointer;transition:background .15s,color .15s}.qr-modal-close:hover{background:#c87f5a1a;color:#5a3e2e}.qr-modal-close:focus-visible{outline:2px solid #b08968;outline-offset:2px}.qr-modal-body{padding:20px 24px 24px;display:flex;flex-direction:column;align-items:center;gap:20px}.qr-modal-preview-wrap{display:flex;align-items:center;justify-content:center;min-height:200px;width:100%}.qr-modal-preview-canvas{border-radius:10px;box-shadow:0 4px 20px #28190f1f;max-width:100%;height:auto}.qr-modal-loading{margin:0;font-family:Inter,system-ui,sans-serif;font-size:.85rem;color:#8a7a6e}.qr-modal-controls{width:100%;display:flex;flex-direction:column;gap:14px}.qr-modal-size-label{font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:600;color:#5a3e2e;text-transform:uppercase;letter-spacing:.04em}.qr-modal-size-options{display:flex;gap:8px;flex-wrap:wrap}.qr-modal-size-btn{padding:7px 14px;border:1px solid rgba(216,193,174,.55);border-radius:8px;background:#fff;font-family:Inter,system-ui,sans-serif;font-size:.78rem;font-weight:500;color:#5a4738;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}.qr-modal-size-btn:hover{background:#c87f5a0f;border-color:#c87f5a66}.qr-modal-size-btn.is-active{background:#b089681f;border-color:#b08968;color:#3e2f23;box-shadow:0 0 0 1px #b08968}.qr-modal-size-btn:focus-visible{outline:2px solid #b08968;outline-offset:2px}.qr-modal-actions{display:flex;gap:10px;flex-wrap:wrap}.qr-modal-download,.qr-modal-print{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:1px solid rgba(90,62,46,.15);border-radius:10px;background:#5a3e2e0f;font-family:Inter,system-ui,sans-serif;font-size:.82rem;font-weight:500;color:#5a3e2e;cursor:pointer;transition:background .2s,border-color .2s}.qr-modal-download:hover,.qr-modal-print:hover{background:#5a3e2e1f;border-color:#5a3e2e40}.qr-modal-download:focus-visible,.qr-modal-print:focus-visible{outline:2px solid #b08968;outline-offset:2px}.qr-modal-download svg,.qr-modal-print svg{flex-shrink:0;opacity:.7}.welcome-pet-qr{position:absolute;bottom:8px;left:8px;width:30px;height:30px;border:none;border-radius:8px;background:#ffffffd9;color:#5a3e2e;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .2s,background .15s;z-index:2;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:auto}.welcome-pet-card:hover .welcome-pet-qr,.welcome-pet-card:focus-within .welcome-pet-qr{opacity:1}.welcome-pet-qr:hover{background:#fffffff2}.welcome-pet-qr:focus-visible{opacity:1;outline:2px solid #b08968;outline-offset:2px}.welcome-pet-qr:disabled{display:none}@media (prefers-reduced-motion: reduce){.welcome-pet-qr{transition:none}}@media (max-width: 600px){.qr-modal-card{max-width:100%;border-radius:12px}.qr-modal-header{padding:16px 18px 10px}.qr-modal-body{padding:16px 18px 20px}.qr-modal-size-options{flex-direction:column}.qr-modal-size-btn{width:100%;text-align:center}.qr-modal-actions{flex-direction:column}.qr-modal-download,.qr-modal-print{width:100%;justify-content:center}.welcome-pet-qr{opacity:1}}.candle-events-page{min-height:100vh;background:linear-gradient(180deg,#fff8f3,#ffefdf);padding:0}.candle-events-container{max-width:680px;margin:0 auto;padding:24px 20px 60px}.candle-events-header{text-align:center;margin-bottom:32px}.candle-back-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:#5a3e2e;font-size:.95rem;cursor:pointer;padding:6px 10px;border-radius:8px;margin-bottom:12px;pointer-events:auto}.candle-back-btn:hover{background:#c8a07826}.candle-events-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.8rem;font-weight:700;color:#3e2f23;margin:0 0 8px}.candle-events-subtitle{font-size:1rem;color:#6f5650;line-height:1.6;max-width:540px;margin:0 auto}.candle-events-loading{text-align:center;padding:48px 0;color:#8a7a6e;display:flex;align-items:center;justify-content:center;gap:10px}.candle-spinner{width:20px;height:20px;border:2px solid rgba(200,160,120,.3);border-top-color:#c4a078;border-radius:50%;animation:candle-spin .7s linear infinite}@keyframes candle-spin{to{transform:rotate(360deg)}}.candle-section{margin-bottom:32px}.candle-section-heading{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.2rem;font-weight:600;color:#5a3e2e;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid rgba(200,160,120,.25)}.candle-card{background:#ffffffbf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(200,160,120,.2);border-radius:16px;padding:24px;margin-bottom:16px}.candle-card--active{position:relative;border-color:#f5b46466;box-shadow:0 8px 32px #f5b46426}.candle-card--upcoming{background:#fff9}.candle-card--ended{background:#ffffff73;opacity:.85}.candle-card-live-badge{position:absolute;top:16px;right:16px;background:#e8523f;color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:3px 10px;border-radius:12px;animation:candle-pulse 2s ease-in-out infinite}@keyframes candle-pulse{0%,to{opacity:1}50%{opacity:.6}}.candle-card-title{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.3rem;font-weight:600;color:#3e2f23;margin:0 0 8px}.candle-card-desc{color:#6f5650;font-size:.95rem;line-height:1.5;margin:0 0 16px}.candle-card-meta{display:flex;gap:16px;font-size:.85rem;color:#8a7a6e;margin-bottom:12px}.candle-counter-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 0;margin-bottom:16px}.candle-icon{font-size:1.6rem}.candle-counter-number{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:2.4rem;font-weight:700;color:#3e2f23;transition:transform .3s ease}.candle-counter-bump{animation:candle-bump .4s ease}@keyframes candle-bump{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}.candle-counter-label{font-size:1rem;color:#6f5650}.candle-light-form{margin-bottom:20px}.candle-dedication-toggle{margin-bottom:12px}.candle-dedication-summary{cursor:pointer;font-size:.9rem;color:#8a7a6e;padding:6px 0;-webkit-user-select:none;user-select:none}.candle-dedication-summary:hover{color:#5a3e2e}.candle-dedication-fields{padding:12px 0}.candle-field-label{display:block;font-size:.85rem;color:#5a3e2e;font-weight:500;margin-bottom:4px}.candle-input,.candle-textarea{width:100%;padding:10px 14px;border:1px solid rgba(200,160,120,.3);border-radius:10px;background:#ffffffb3;font-size:.95rem;font-family:Inter,system-ui,sans-serif;color:#3e2f23;margin-bottom:10px;transition:border-color .2s}.candle-input:focus,.candle-textarea:focus{outline:none;border-color:#c8a07899;box-shadow:0 0 0 3px #c8a0781a}.candle-textarea{resize:vertical;min-height:56px}.candle-light-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;background:linear-gradient(135deg,#f5a855,#e8864a);color:#fff;border:none;border-radius:12px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;pointer-events:auto}.candle-light-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #f5a85559}.candle-light-btn:disabled{opacity:.7;cursor:default}.candle-light-btn--done{background:linear-gradient(135deg,#8ab06a,#6a9a50)}.candle-feedback{text-align:center;font-size:.9rem;margin-top:10px;min-height:20px}.candle-feedback--success{color:#5a8a3a}.candle-feedback--info{color:#8a7a6e}.candle-feedback--error{color:#b33f26}.candle-countdown{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#c8a07814;border-radius:10px;margin-top:8px}.candle-countdown-label{font-size:.85rem;color:#8a7a6e}.candle-countdown-value{font-family:Avenir Next,Segoe UI,system-ui,sans-serif;font-size:1.1rem;font-weight:600;color:#5a3e2e}.candle-ended-stats{display:flex;align-items:center;gap:8px;padding:10px 0;font-size:1rem;color:#5a3e2e}.candle-ticker{margin-top:20px;border-top:1px solid rgba(200,160,120,.15);padding-top:16px}.candle-ticker-heading{font-size:.9rem;font-weight:600;color:#5a3e2e;margin:0 0 12px}.candle-ticker-list{max-height:280px;overflow-y:auto}.candle-ticker-item{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid rgba(200,160,120,.08);animation:candle-ticker-fadein .4s ease}@keyframes candle-ticker-fadein{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.candle-ticker-icon{font-size:.85rem;flex-shrink:0;margin-top:2px}.candle-ticker-text{flex:1;font-size:.9rem;color:#5a3e2e;line-height:1.4}.candle-ticker-time{font-size:.75rem;color:#8a7a6e;flex-shrink:0;margin-top:2px}.candle-ticker-empty{font-size:.9rem;color:#8a7a6e;font-style:italic}.candle-empty{text-align:center;padding:48px 24px;color:#8a7a6e;font-size:1rem}.candle-glow-bg{background:radial-gradient(ellipse at 50% 30%,rgba(245,200,120,.12) 0%,transparent 60%),#ffffffbf;animation:candle-glow 4s ease-in-out infinite alternate}@keyframes candle-glow{0%{box-shadow:0 8px 32px #f5b4641f}to{box-shadow:0 8px 40px #f5b46440}}.candle-banner{position:fixed;top:calc(var(--rb-header-h, 64px) + 8px);left:50%;transform:translate(-50%);z-index:100;pointer-events:auto;animation:candle-banner-in .5s ease}@keyframes candle-banner-in{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.candle-banner-link{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#fffaf2eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(245,180,100,.35);border-radius:24px;box-shadow:0 4px 16px #28190f1a;text-decoration:none;color:#3e2f23;font-size:.9rem;white-space:nowrap;transition:box-shadow .2s,border-color .2s}.candle-banner-link:hover{border-color:#f5a85580;box-shadow:0 6px 20px #f5a85533}.candle-banner-icon{font-size:1.1rem}.candle-banner-count{color:#e8864a;font-weight:700}.candle-banner-arrow{color:#c4a078;font-size:1.1rem}@media (max-width: 600px){.candle-events-container{padding:16px 14px 48px}.candle-events-title{font-size:1.4rem}.candle-card{padding:18px 16px;border-radius:14px}.candle-counter-number{font-size:2rem}.candle-banner{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;right:12px;transform:none}.candle-banner-link{justify-content:center;font-size:.85rem;padding:10px 16px;width:100%}@keyframes candle-banner-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion: reduce){.candle-glow-bg,.candle-card-live-badge,.candle-counter-bump,.candle-ticker-item,.candle-banner,.candle-spinner{animation:none}}.pb-lang-switcher{position:relative;display:inline-block}.pb-lang-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .35rem;background:transparent;border:none;border-radius:6px;font-size:.82rem;font-family:inherit;color:var(--rb-text, #35231c);cursor:pointer;transition:opacity .15s;pointer-events:auto;opacity:.85}.pb-lang-btn:hover{opacity:1;background:transparent}.pb-lang-btn:focus-visible{outline:2px solid #b08968;outline-offset:2px}.pb-lang-chevron{transition:transform .15s}.pb-lang-btn[aria-expanded=true] .pb-lang-chevron{transform:rotate(180deg)}.pb-lang-flag{font-size:1rem;line-height:1}.pb-lang-menu{position:absolute;bottom:100%;left:0;min-width:160px;background:#fff;border:1.5px solid var(--rb-border, rgba(120, 85, 60, .18));border-radius:10px;box-shadow:0 8px 24px #28190f1f;list-style:none;padding:.3rem;margin:0 0 4px;z-index:1000}.pb-lang-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;border-radius:7px;cursor:pointer;font-size:.85rem;color:var(--rb-text, #35231c);transition:background .12s}.pb-lang-option:hover{background:#b089681a}.pb-lang-option:focus-visible{outline:2px solid #b08968;outline-offset:-2px}.pb-lang-active{background:#b089681f;font-weight:600}.dashboard-timeline-section{background:#fffaf5;border-radius:18px;box-shadow:0 2px 12px #28190f14;border:1.5px solid rgba(120,85,60,.12);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.dashboard-timeline-heading{font-size:1.05rem;font-weight:700;color:#3e2f23;margin:0 0 1rem}.timeline-chart{display:flex;flex-direction:column;gap:.75rem;position:relative;padding-bottom:2rem}.timeline-axis{display:flex;justify-content:space-between;font-size:.7rem;color:#8a7a6e;padding-top:.25rem;border-top:1px solid rgba(120,85,60,.12)}.timeline-row{display:flex;align-items:center;gap:.75rem;min-height:38px}.timeline-pet-label{width:90px;flex-shrink:0;font-size:.8rem;font-weight:600;color:#3e2f23;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-bar-track{flex:1;position:relative;height:28px;background:#c8b4a01a;border-radius:6px;overflow:visible}.timeline-bar{position:absolute;top:2px;height:24px;border-radius:5px;cursor:pointer;transition:filter .15s,transform .15s;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 .5rem;min-width:4px}.timeline-bar:hover,.timeline-bar:focus-visible{filter:brightness(1.1);transform:scaleY(1.15);z-index:2}.timeline-bar:focus-visible{outline:2px solid #3e2f23;outline-offset:2px}.timeline-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#3e2f23;color:#fff;padding:.4rem .7rem;border-radius:8px;font-size:.75rem;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:10;box-shadow:0 4px 12px #0003}.timeline-bar:hover .timeline-tooltip,.timeline-bar:focus-visible .timeline-tooltip{opacity:1}.timeline-overlaps{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(120,85,60,.12)}.timeline-overlap-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;font-size:.8rem;color:#5a3e2e}.timeline-overlap-icon{flex-shrink:0;color:#b08968}.timeline-empty{text-align:center;padding:2rem 1rem;color:#8a7a6e;font-size:.9rem}@media (max-width: 600px){.dashboard-timeline-section{padding:1rem;border-radius:14px}.timeline-pet-label{width:60px;font-size:.72rem}.timeline-bar{font-size:0;padding:0}.pb-lang-menu{min-width:140px}}@media (prefers-reduced-motion: reduce){.timeline-bar,.timeline-tooltip{transition:none}}.companion-dashboard{max-width:720px;margin:0 auto;padding:1.5rem 1rem 3rem}.companion-dashboard-inner{display:flex;flex-direction:column;gap:1.5rem}.companion-header{display:flex;align-items:center;gap:.75rem}.companion-back-btn{background:none;border:none;color:#37281eb3;cursor:pointer;padding:.5rem;border-radius:8px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.companion-back-btn:hover{background:#c8a07826}.companion-pet-card{display:flex;align-items:center;gap:.75rem;flex:1;flex-wrap:wrap;min-width:0}.companion-pet-info{min-width:0}.companion-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid rgba(200,160,120,.3);image-rendering:pixelated}.companion-pet-info{display:flex;flex-direction:column;gap:.15rem}.companion-pet-name{font-size:1.25rem;font-weight:700;color:#3e2f23;margin:0;line-height:1.2}.companion-pet-type{font-size:.8rem;color:#8a7a6e}.companion-health-badge{display:inline-block;background:#c8a07833;color:#5a3e2e;padding:.15rem .5rem;border-radius:99px;font-size:.7rem;font-weight:600;width:fit-content}.companion-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.companion-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.25rem .75rem;background:#ffffffb3;border:1px solid rgba(200,160,120,.2);border-radius:14px;cursor:pointer;transition:background .18s ease,box-shadow .18s ease;min-height:44px;color:#3e2f23}.companion-action-card:hover{background:#fffffff2;box-shadow:0 2px 12px #5a3e2e14}.companion-action-card:focus-visible{outline:2px solid rgba(200,160,120,.6);outline-offset:2px}.companion-action-label{font-size:.85rem;font-weight:600}.companion-summary{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.companion-qol-summary,.companion-cost-summary{background:#fff9;border:1px solid rgba(200,160,120,.15);border-radius:12px;padding:1rem}.companion-summary-label{font-size:.75rem;font-weight:600;color:#8a7a6e;text-transform:uppercase;letter-spacing:.04em;margin:0 0 .5rem}.companion-qol-score{font-size:1.5rem;font-weight:700;display:flex;align-items:baseline;gap:.15rem}.companion-qol-number{color:#3e2f23}.companion-qol-max{font-size:.85rem;color:#8a7a6e;font-weight:400}.companion-qol-good .companion-qol-number{color:#2d7a3a}.companion-qol-acceptable .companion-qol-number{color:#8a6a2e}.companion-qol-compromised .companion-qol-number{color:#b85c1a}.companion-qol-poor .companion-qol-number{color:#a83232}.companion-qol-interp{font-size:.8rem;color:#5a3e2e;margin:.25rem 0 0}.companion-cost-total{font-size:1.5rem;font-weight:700;color:#3e2f23}.companion-cost-period{font-size:.8rem;color:#8a7a6e;margin:.25rem 0 0}.companion-empty-hint{font-size:.8rem;color:#8a7a6e;font-style:italic;margin:0}.companion-section-title{font-size:1rem;font-weight:700;color:#3e2f23;margin:0 0 .75rem}.companion-timeline-list{display:flex;flex-direction:column;gap:.5rem}.companion-timeline-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#ffffff80;border-radius:8px;font-size:.8rem;border:1px solid rgba(200,160,120,.1)}.companion-timeline-date{color:#8a7a6e;flex-shrink:0;width:50px}.companion-timeline-badge{background:#c8a07833;color:#5a3e2e;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:capitalize;flex-shrink:0}.companion-timeline-detail{color:#3e2f23;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.companion-empty-state{color:#8a7a6e;font-size:.85rem;text-align:center;padding:1rem}.health-journal{max-width:720px;margin:0 auto;padding:1.5rem 1rem 3rem}.health-journal-inner{display:flex;flex-direction:column;gap:1.25rem}.health-journal-header{display:flex;align-items:center;gap:.75rem}.health-journal-back{background:none;border:none;color:#37281eb3;cursor:pointer;padding:.5rem;border-radius:8px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.health-journal-back:hover{background:#c8a07826}.health-journal-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;image-rendering:pixelated}.health-journal-title{font-size:1.1rem;font-weight:700;color:#3e2f23;margin:0}.health-journal-compose{background:#ffffffb3;border:1px solid rgba(200,160,120,.2);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.health-journal-type-tabs{display:flex;gap:.35rem;flex-wrap:wrap}.health-journal-tab{padding:.35rem .65rem;border:1px solid rgba(200,160,120,.25);border-radius:99px;background:transparent;cursor:pointer;font-size:.75rem;font-weight:500;color:#5a3e2e;transition:background .18s ease;min-height:36px}.health-journal-tab.is-active{background:#c8a07840;border-color:#c8a07866;font-weight:600}.health-journal-tab:focus-visible{outline:2px solid rgba(200,160,120,.6);outline-offset:2px}.health-journal-input,.health-journal-textarea,.health-journal-vet-name,.health-journal-vet-notes{width:100%;padding:.6rem .75rem;border:1px solid rgba(200,160,120,.25);border-radius:10px;font-size:.85rem;font-family:Inter,system-ui,sans-serif;color:#3e2f23;background:#ffffff80;box-sizing:border-box}.health-journal-textarea{resize:vertical;min-height:80px}.health-journal-input:focus,.health-journal-textarea:focus,.health-journal-vet-name:focus,.health-journal-vet-notes:focus{outline:2px solid rgba(200,160,120,.5);outline-offset:1px}.health-journal-extra-fields{display:flex;flex-direction:column;gap:.5rem}.health-journal-severity-field{display:flex;align-items:center;gap:.5rem}.health-journal-field-label{font-size:.8rem;color:#5a3e2e;font-weight:500;white-space:nowrap}.health-journal-severity{flex:1;accent-color:#f58b63}.health-journal-severity-val{font-size:.85rem;font-weight:700;color:#3e2f23;min-width:1.5em;text-align:center}.health-journal-vet-fields{display:flex;flex-direction:column;gap:.5rem}.health-journal-compose-actions{display:flex;align-items:center;gap:.5rem}.health-journal-photo-btn{display:flex;align-items:center;gap:.35rem;padding:.4rem .6rem;border-radius:8px;cursor:pointer;color:#5a3e2e;min-height:44px}.health-journal-photo-btn:hover{background:#c8a07826}.health-journal-photo-preview{position:relative;display:inline-block}.health-journal-photo-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px}.health-journal-photo-remove{position:absolute;top:-6px;right:-6px;background:#0009;color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.health-journal-submit{margin-left:auto;min-height:44px}.health-journal-feedback{font-size:.8rem;color:#5a3e2e;min-height:1.2em}.health-journal-stats{display:flex;gap:1rem}.health-journal-stat{font-size:.8rem;color:#5a3e2e}.health-journal-stat strong{color:#3e2f23}.health-journal-entries{display:flex;flex-direction:column;gap:.75rem}.health-journal-entry{background:#fff9;border:1px solid rgba(200,160,120,.15);border-radius:12px;padding:.75rem 1rem;position:relative}.health-journal-entry-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.health-journal-entry-badge{background:#c8a07833;color:#5a3e2e;padding:.1rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:capitalize}.health-journal-entry-badge[data-type=symptom]{background:#e68c5033;color:#9a5520}.health-journal-entry-badge[data-type=vet-visit]{background:#50a0c833;color:#2a6a8a}.health-journal-entry-badge[data-type=behavior]{background:#a078c833;color:#5a3a8a}.health-journal-entry-badge[data-type=medication]{background:#50b47833;color:#2a7a4a}.health-journal-entry-date{font-size:.75rem;color:#8a7a6e}.health-journal-entry-title{font-size:.9rem;font-weight:600;color:#3e2f23;margin:0 0 .25rem}.health-journal-entry-body{font-size:.85rem;color:#37281ed9;line-height:1.5;margin:0;white-space:pre-wrap}.health-journal-entry-severity,.health-journal-entry-vet{display:inline-block;font-size:.75rem;color:#8a7a6e;margin-top:.35rem;margin-right:.75rem}.health-journal-entry-vet-notes{font-size:.8rem;color:#5a3e2e;margin:.35rem 0 0;padding:.5rem;background:#c8a07814;border-radius:6px;font-style:italic}.health-journal-entry-img{max-width:200px;max-height:150px;border-radius:8px;margin-top:.5rem}.health-journal-entry-delete{position:absolute;top:.5rem;right:.5rem;background:none;border:none;color:#8a7a6e;font-size:.7rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;min-height:32px}.health-journal-entry-delete:hover{color:#a83232;background:#a8323214}.health-journal-empty,.health-journal-loading{text-align:center;color:#8a7a6e;font-size:.85rem;padding:1.5rem}.qol-view{max-width:640px;margin:0 auto;padding:1.5rem 1rem 3rem}.qol-inner{display:flex;flex-direction:column;gap:1.25rem}.qol-header{display:flex;align-items:center;gap:.75rem}.qol-back{background:none;border:none;color:#37281eb3;cursor:pointer;padding:.5rem;border-radius:8px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.qol-back:hover{background:#c8a07826}.qol-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;image-rendering:pixelated}.qol-title{font-size:1.1rem;font-weight:700;color:#3e2f23;margin:0}.qol-subtitle{font-size:.8rem;color:#8a7a6e;margin:0;line-height:1.4}.qol-form{background:#ffffffb3;border:1px solid rgba(200,160,120,.2);border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.qol-param{display:flex;flex-direction:column;gap:.35rem}.qol-param-label{display:flex;flex-direction:column;gap:.1rem}.qol-param-label strong{font-size:.9rem;color:#3e2f23}.qol-param-desc{font-size:.75rem;color:#8a7a6e;line-height:1.3}.qol-slider-row{display:flex;align-items:center;gap:.75rem}.qol-slider{flex:1;accent-color:#f58b63;height:6px}.qol-slider-val{min-width:2em;text-align:center;font-weight:700;font-size:.9rem;border-radius:6px;padding:.15rem .35rem}.qol-poor{background:#a832321f;color:#a83232}.qol-ok{background:#b48c281f;color:#8a6a2e}.qol-good{background:#2d7a3a1f;color:#2d7a3a}.qol-total{text-align:center;padding:1rem;background:#c8a07814;border-radius:10px}.qol-total-label{font-size:.8rem;color:#8a7a6e;text-transform:uppercase;letter-spacing:.04em}.qol-total-score{font-size:2rem;font-weight:700;color:#3e2f23}.qol-total-max{font-size:1rem;color:#8a7a6e}.qol-total-interp{font-size:.85rem;margin:.25rem 0 0;font-weight:600}.qol-interp-good{color:#2d7a3a}.qol-interp-acceptable{color:#8a6a2e}.qol-interp-compromised{color:#b85c1a}.qol-interp-poor{color:#a83232}.qol-notes{width:100%;padding:.6rem .75rem;border:1px solid rgba(200,160,120,.25);border-radius:10px;font-size:.85rem;font-family:Inter,system-ui,sans-serif;color:#3e2f23;background:#ffffff80;resize:vertical;box-sizing:border-box}.qol-notes:focus{outline:2px solid rgba(200,160,120,.5);outline-offset:1px}.qol-disclaimer{font-size:.72rem;color:#8a7a6e;font-style:italic;margin:0;text-align:center}.qol-submit{min-height:44px;align-self:center}.qol-feedback{text-align:center;font-size:.8rem;color:#5a3e2e;min-height:1.2em}.qol-history{margin-top:.5rem}.qol-history-title{font-size:1rem;font-weight:700;color:#3e2f23;margin:0 0 .75rem}.qol-history-list{display:flex;flex-direction:column;gap:.5rem}.qol-history-item{display:grid;grid-template-columns:auto auto auto 1fr;gap:.4rem .6rem;align-items:center;padding:.5rem .75rem;background:#ffffff80;border:1px solid rgba(200,160,120,.1);border-radius:8px}.qol-history-date{font-size:.75rem;color:#8a7a6e}.qol-history-score{font-weight:700;font-size:.85rem}.qol-trend{font-size:.75rem;font-weight:600}.qol-trend-up{color:#2d7a3a}.qol-trend-down{color:#a83232}.qol-trend-stable{color:#8a7a6e}.qol-history-label{font-size:.8rem;color:#5a3e2e;min-width:0}.qol-history-notes{grid-column:1 / -1;font-size:.75rem;color:#8a7a6e;font-style:italic;margin:.15rem 0 0}.qol-empty,.qol-loading{text-align:center;color:#8a7a6e;font-size:.85rem;padding:1rem}.cost-tracker{max-width:720px;margin:0 auto;padding:1.5rem 1rem 3rem}.cost-tracker-inner{display:flex;flex-direction:column;gap:1.25rem}.cost-tracker-header{display:flex;align-items:center;gap:.75rem}.cost-tracker-back{background:none;border:none;color:#37281eb3;cursor:pointer;padding:.5rem;border-radius:8px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.cost-tracker-back:hover{background:#c8a07826}.cost-tracker-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;image-rendering:pixelated}.cost-tracker-title{font-size:1.1rem;font-weight:700;color:#3e2f23;margin:0}.cost-tracker-summary{display:flex;flex-direction:column;gap:1rem}.cost-summary-totals{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.cost-summary-total{background:#ffffffb3;border:1px solid rgba(200,160,120,.15);border-radius:12px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.15rem}.cost-summary-label{font-size:.72rem;color:#8a7a6e;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cost-summary-value{font-size:1.35rem;font-weight:700;color:#3e2f23}.cost-summary-categories{background:#fff9;border:1px solid rgba(200,160,120,.15);border-radius:12px;padding:.75rem 1rem}.cost-summary-cat-title{font-size:.8rem;font-weight:600;color:#5a3e2e;margin:0 0 .5rem}.cost-summary-cat-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.cost-summary-cat-label{font-size:.75rem;color:#5a3e2e;min-width:90px;flex-shrink:0}.cost-summary-cat-bar-wrap{flex:1;height:8px;background:#c8a0781a;border-radius:4px;overflow:hidden}.cost-summary-cat-bar{height:100%;background:#c8a07880;border-radius:4px;transition:width .3s ease}.cost-summary-cat-amount{font-size:.75rem;font-weight:600;color:#3e2f23;min-width:60px;text-align:right;flex-shrink:0}.cost-tracker-form{background:#ffffffb3;border:1px solid rgba(200,160,120,.2);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.cost-tracker-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.cost-tracker-field{display:flex;flex-direction:column;gap:.25rem}.cost-tracker-label{font-size:.75rem;font-weight:500;color:#5a3e2e}.cost-tracker-select,.cost-tracker-amount,.cost-tracker-desc,.cost-tracker-date,.cost-tracker-vendor{padding:.5rem .65rem;border:1px solid rgba(200,160,120,.25);border-radius:8px;font-size:.85rem;font-family:Inter,system-ui,sans-serif;color:#3e2f23;background:#ffffff80;min-height:40px}.cost-tracker-select:focus,.cost-tracker-amount:focus,.cost-tracker-desc:focus,.cost-tracker-date:focus,.cost-tracker-vendor:focus{outline:2px solid rgba(200,160,120,.5);outline-offset:1px}.cost-tracker-receipt-row{display:flex;align-items:center;gap:.75rem}.cost-tracker-receipt-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .8rem;border-radius:10px;border:1px solid #ccb39f;background:#fffaf2e6;cursor:pointer;font-size:.82rem;font-weight:600;color:#5c4439;min-height:44px;transition:background .16s,border-color .16s}.cost-tracker-receipt-btn:hover{background:#f5ebdef2;border-color:#be9f89}.cost-tracker-receipt-preview{position:relative;display:inline-block}.cost-tracker-receipt-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px}.cost-tracker-receipt-remove{position:absolute;top:-6px;right:-6px;background:#0009;color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.cost-tracker-submit{min-height:44px;align-self:flex-start}.cost-tracker-feedback{font-size:.8rem;color:#5a3e2e;min-height:1.2em}.cost-tracker-list-title{font-size:1rem;font-weight:700;color:#3e2f23;margin:0 0 .5rem}.cost-tracker-month{margin-bottom:1rem}.cost-tracker-month-label{font-size:.85rem;font-weight:600;color:#5a3e2e;margin:0 0 .4rem}.cost-tracker-entry{display:grid;grid-template-columns:60px auto 1fr auto auto 28px;align-items:center;gap:.5rem;padding:.45rem .65rem;background:#ffffff80;border:1px solid rgba(200,160,120,.1);border-radius:8px;margin-bottom:.35rem;font-size:.8rem}.cost-tracker-entry-date{color:#8a7a6e;font-size:.72rem}.cost-tracker-entry-badge{background:#c8a07833;color:#5a3e2e;padding:.1rem .4rem;border-radius:4px;font-size:.65rem;font-weight:600;justify-self:start}.cost-tracker-entry-desc{color:#3e2f23;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cost-tracker-entry-vendor{font-size:.72rem;color:#8a7a6e}.cost-tracker-entry-amount{font-weight:600;color:#3e2f23}.cost-tracker-entry-delete{background:none;border:none;color:#8a7a6e;cursor:pointer;padding:.25rem;border-radius:4px;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.cost-tracker-entry-delete:hover{color:#a83232;background:#a8323214}.cost-tracker-empty,.cost-tracker-loading{text-align:center;color:#8a7a6e;font-size:.85rem;padding:1.5rem}@media (max-width: 600px){.companion-actions{grid-template-columns:1fr 1fr;gap:.5rem}.companion-action-card{padding:1rem .5rem}.companion-summary{grid-template-columns:1fr}.companion-avatar{width:44px;height:44px}.cost-tracker-form-row,.cost-summary-totals{grid-template-columns:1fr}.cost-tracker-entry{grid-template-columns:auto auto 1fr auto;grid-template-areas:"date  badge desc desc" "vendor vendor amount delete";row-gap:.25rem}.cost-tracker-entry-date{grid-area:date}.cost-tracker-entry-badge{grid-area:badge}.cost-tracker-entry-desc{grid-area:desc;white-space:normal}.cost-tracker-entry-vendor{grid-area:vendor}.cost-tracker-entry-amount{grid-area:amount;justify-self:end}.cost-tracker-entry-delete{grid-area:delete}.qol-history-item{grid-template-columns:auto auto auto;row-gap:.25rem}.qol-history-label{grid-column:1 / -1}.health-journal-type-tabs{gap:.25rem}.health-journal-tab{font-size:.7rem;padding:.3rem .5rem}}@media (prefers-reduced-motion: reduce){.companion-action-card,.cost-summary-cat-bar,.health-journal-tab{transition:none}}
