:root{--ink:#292d25;--muted:#77776b;--paper:#f6f1e8;--cream:#fffdf8;--green:#425b43;--green2:#dce4d4;--gold:#d69e47;--line:#e7e1d6;--rose:#ab6758;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:14px}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1600px;margin:auto}.sidebar{padding:32px 21px 20px 28px;border-right:1px solid #e5dfd3;display:flex;flex-direction:column;min-height:100vh;background:#f3eee5}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:22px;letter-spacing:.2px}.brand-mark{color:var(--green);font-size:27px}.brand small{display:block;font:600 8px var(--sans);letter-spacing:1.65px;color:#898777;margin-top:3px}.side-label,.eyebrow{font-size:10px;letter-spacing:1.65px;font-weight:700;color:#888575}.side-label{margin:65px 0 13px 10px}.sidebar nav{display:grid;gap:5px}.nav-link{display:flex;gap:13px;align-items:center;padding:12px 13px;border-radius:8px;color:#6e7063;text-decoration:none;border:0;background:transparent;font:500 13px var(--sans);text-align:left;cursor:pointer}.nav-link span{font-size:18px;color:#7f8972;width:18px;text-align:center}.nav-link.active{background:#e5e9dd;color:#334833;font-weight:600}.sidebar-bottom{margin-top:auto}.offline-card{display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:19px 6px 17px;margin-bottom:8px}.status-dot{width:9px;height:9px;border-radius:50%;background:#83a277;box-shadow:0 0 0 4px #e0e8d9}.offline-card strong,.offline-card small{display:block}.offline-card strong{font-size:11px;font-weight:600}.offline-card small{font-size:10px;color:var(--muted);margin-top:4px}.settings-link{width:100%;font-size:12px}.side-foot{font:italic 12px/1.6 var(--serif);color:#9b9686;margin:22px 12px 0}.main-content{padding:0 7.2%;max-width:1320px;margin:auto;width:100%}.topbar{height:74px;display:flex;justify-content:flex-end;align-items:center;gap:18px;border-bottom:1px solid var(--line)}.top-note{font-size:11px;color:#7d7c6e}.sun-icon{color:#bd9251;margin-right:7px;font-size:16px}.icon-button{border:1px solid #e1dccf;border-radius:50%;width:34px;height:34px;background:#fbf8f0;color:var(--green);font-size:18px;cursor:pointer}.mobile-brand{display:none}.page{padding:57px 0 35px;max-width:1020px;margin:auto}.welcome-row{display:flex;justify-content:space-between;align-items:center;min-height:224px}.eyebrow .tiny-flower{color:var(--gold);font-size:14px;margin-right:5px}h1,h2,h3,p{margin-top:0}h1{font:500 54px/1.06 var(--serif);letter-spacing:-1px;margin:14px 0 14px}h1 em{color:var(--green);font-weight:500}.intro{color:#77776c;font-size:13px;line-height:1.8;max-width:470px;margin-bottom:0}.moon-art{position:relative;width:235px;height:200px;display:grid;place-items:center;margin-right:6%;background:radial-gradient(ellipse at 52% 56%,#e4e9d7 0%,#edf0e4 32%,transparent 68%)}.moon{width:98px;height:98px;border-radius:50%;background:#f7e7bb;box-shadow:0 0 0 15px #f7e7bb45,0 0 50px #e7cb8b77;position:relative}.moon:after{content:"";position:absolute;width:79px;height:89px;border-radius:50%;background:#e9eddf;top:-6px;left:26px}.star{position:absolute;color:#c7964b;font-size:20px}.star-a{top:36px;left:43px}.star-b{top:83px;right:28px;font-size:30px}.star-c{bottom:36px;left:50px}.sprig{position:absolute;bottom:24px;right:46px;color:#728568;font-size:28px;transform:rotate(25deg)}.action-row{display:flex;align-items:center;gap:27px;margin:22px 0 65px}.primary-button{background:var(--green);color:#fffdf6;border:1px solid var(--green);border-radius:6px;padding:12px 17px;font:600 12px var(--sans);cursor:pointer;box-shadow:0 3px 10px #425b431c;transition:.18s}.primary-button:hover{background:#334a34;transform:translateY(-1px)}.primary-button span{color:#f0d894;font-size:16px;margin-left:7px}.text-button,.subtle-button{border:0;background:transparent;color:#757669;font:500 11px var(--sans);cursor:pointer}.text-button span{color:var(--green);font-weight:700;margin-left:4px}.section-head{display:flex;align-items:end;justify-content:space-between;padding-bottom:14px;border-bottom:1px solid var(--line)}.section-head h2{font:500 25px var(--serif);margin:7px 0 0}.count{font:500 11px var(--sans);color:#9c998d;vertical-align:middle;margin-left:5px}.subtle-button{padding:9px 12px;border:1px solid #dedacd;border-radius:5px;color:#66695f;background:#faf7ef}.subtle-button:hover{border-color:#9eaa94;color:var(--green)}.subtle-button span{font-size:16px;margin-left:7px;color:var(--green)}.people-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.person-card{background:var(--cream);border:1px solid #eae4d8;border-radius:9px;overflow:hidden;cursor:pointer;transition:.18s}.person-card:hover{transform:translateY(-3px);box-shadow:0 9px 23px #4b4b3510}.person-image{height:144px;background:linear-gradient(135deg,#e7e7d9,#f4e6ca);display:grid;place-items:center;overflow:hidden}.person-image img{width:100%;height:100%;object-fit:cover}.avatar-flower{font-size:42px;color:#829175}.person-info{padding:15px 16px 17px}.person-info h3{font:500 20px var(--serif);margin:0 0 4px}.person-relation{font-size:10px;color:#8b887c}.person-detail{font:italic 12px/1.6 var(--serif);color:#6e7164;margin:12px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.garden-note{display:flex;gap:13px;align-items:flex-start;background:#e9ecdf;border:1px solid #e2e7d9;border-radius:7px;padding:17px 18px;margin-top:44px}.note-icon{color:#927b48;font-size:20px}.garden-note strong{font-size:11px}.garden-note p{font-size:10px;color:#77796c;margin:5px 0 0;line-height:1.6}.garden-note button{margin-left:auto;border:0;background:transparent;color:#747968;font-size:18px;cursor:pointer}.empty-state{display:none;text-align:center;padding:48px 15px 42px}.empty-state.show{display:block}.empty-flower{font-size:28px;color:#8b9a7f}.empty-state h3{font:500 23px var(--serif);margin:12px 0 8px}.empty-state p{font-size:12px;color:#828174;margin-bottom:16px}.footer{border-top:1px solid var(--line);padding:19px 0 24px;text-align:center;color:#969282;font:italic 12px var(--serif)}.footer span{color:#b99153;margin-right:6px}.page-title{font-size:44px;margin:13px 0}.memory-toolbar{display:flex;gap:12px;margin:34px 0 20px}.search-box{display:flex;align-items:center;gap:9px;background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:0 12px;flex:1;color:#929082}.search-box input{border:0;background:transparent;width:100%;outline:0;padding:12px 0;font:12px var(--sans);color:var(--ink)}.memory-list{display:grid;gap:12px}.memory-item{display:grid;grid-template-columns:75px 1fr auto;align-items:center;gap:16px;background:var(--cream);padding:15px;border:1px solid #eae4d8;border-radius:7px;cursor:pointer}.memory-kind{height:62px;border-radius:6px;background:#eaecdf;color:#6a7b63;display:grid;place-items:center;font-size:22px}.memory-item h3{font:500 18px var(--serif);margin:0 0 6px}.memory-item p{font-size:11px;color:#7c7a6e;margin:0;line-height:1.5}.memory-item time{font-size:10px;color:#9a9788}.dialog-card{border:1px solid #e7dfd1;border-radius:12px;padding:28px;width:min(570px,calc(100% - 28px));background:var(--cream);color:var(--ink);box-shadow:0 20px 70px #25281e35;max-height:90vh;overflow:auto}.dialog-card::backdrop{background:#20251f85;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:23px}.dialog-top h2{font:500 26px/1.25 var(--serif);margin:9px 0 0}.close-button{border:0;background:transparent;font-size:25px;color:#817e70;cursor:pointer;line-height:1}.field-label{display:block;font-size:11px;font-weight:600;color:#55594f;margin:15px 0}.field-label input,.field-label textarea,.field-label select{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #e4ded2;border-radius:5px;background:#fffefa;font:12px/1.5 var(--sans);color:var(--ink);outline-color:#859579}.field-label textarea{resize:vertical}.field-label input[type=file]{font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.optional{font-weight:400;color:#969183}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.detail-dialog{width:min(680px,calc(100% - 28px))}.detail-photo{max-height:300px;width:100%;object-fit:cover;border-radius:7px;margin-bottom:20px}.detail-copy{font:15px/1.85 var(--serif);color:#55594f;white-space:pre-wrap}.detail-subtitle{font-size:11px;color:#858374;margin-top:-4px}.detail-tools{display:flex;gap:8px;flex-wrap:wrap;margin-top:23px;padding-top:17px;border-top:1px solid var(--line)}.ai-write{margin:20px 0 12px;background:#edf0e7;border-radius:7px;padding:17px}.ai-write h3{font:500 18px var(--serif);margin:0 0 8px}.ai-write p{font-size:11px;color:#6f7368;line-height:1.6}.ai-result{font:italic 15px/1.8 var(--serif);white-space:pre-wrap;color:#3f523f}.dialog-copy{font-size:12px;line-height:1.8;color:#6f7166}.ai-panel{margin:20px 0;background:#f1f0e8;border:1px solid #e7e4d8;border-radius:8px;padding:17px}.ai-heading{display:flex;align-items:center;gap:10px}.ai-spark{color:#aa8849;font-size:21px}.ai-heading strong,.ai-heading small{display:block}.ai-heading strong{font-size:12px}.ai-heading small{font-size:10px;color:#898779;margin-top:4px}.ai-badge{margin-left:auto;padding:5px 8px;border-radius:99px;background:#e2e0d5;color:#7a776b;font-size:9px}.ai-badge.connected{background:#e0eadb;color:#476143}.ai-panel>p,.ai-help{font-size:10px;line-height:1.65;color:#77776a;margin:13px 0}.ai-panel code{font-size:10px;background:#e5e3d9;padding:2px 4px;border-radius:3px}.ai-help{border-top:1px solid #dfded3;padding-top:12px}.settings-actions{display:flex;flex-wrap:wrap;gap:8px}.import-button{position:relative;overflow:hidden;display:inline-block}.import-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.danger-button{margin-left:auto;border:0;background:transparent;color:#a65f53;font:500 10px var(--sans);cursor:pointer;padding:9px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:#303b2f;color:#fff9ed;padding:12px 18px;border-radius:6px;font-size:11px;box-shadow:0 8px 25px #0002;transition:.2s;pointer-events:none;z-index:4}.toast.show{opacity:1;transform:translate(-50%,0)}.hidden{display:none!important}
@media(max-width:980px){.main-content{padding:0 5%}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.moon-art{margin-right:0;width:190px}}@media(max-width:680px){.app-shell{display:block}.sidebar{display:none}.main-content{padding:0 20px}.topbar{height:58px;justify-content:space-between}.mobile-brand{display:block;color:var(--green);font:500 17px var(--serif)}.top-note{font-size:10px}.page{padding:38px 0 26px}.welcome-row{min-height:0}.welcome-row h1{font-size:43px}.intro{font-size:12px}.moon-art{width:115px;height:130px;margin:-8px -16px 0 0;transform:scale(.8)}.action-row{align-items:flex-start;flex-direction:column;gap:14px;margin:22px 0 46px}.people-grid{grid-template-columns:1fr 1fr;gap:10px}.person-image{height:110px}.person-info{padding:12px}.person-info h3{font-size:17px}.person-detail{font-size:11px}.section-head h2{font-size:23px}.section-head>.subtle-button{font-size:10px;padding:8px}.garden-note{margin-top:30px;padding:14px}.memory-toolbar{align-items:stretch;flex-direction:column}.memory-toolbar .primary-button{align-self:flex-start}.memory-item{grid-template-columns:52px 1fr;gap:11px;padding:11px}.memory-kind{height:53px}.memory-item time{display:none}.form-row{grid-template-columns:1fr;gap:0}.dialog-card{padding:21px}.dialog-top h2{font-size:23px}}@media(max-width:380px){.people-grid{grid-template-columns:1fr}.welcome-row h1{font-size:37px}.moon-art{width:85px}.top-note{display:none}}
/* Spectral Terminal & Ofrenda Chamber */
.terminal-page{max-width:900px}.terminal-window{margin-top:30px;border:1px solid #3d4d3a;border-radius:10px;overflow:hidden;background:#101711;box-shadow:0 18px 50px #26302128}.terminal-titlebar{height:38px;background:#242c25;color:#9ca896;display:flex;align-items:center;gap:13px;padding:0 14px;font:10px Consolas,monospace;letter-spacing:1px}.terminal-lights{display:flex;gap:5px}.terminal-lights i{width:8px;height:8px;background:#b75f4c;border-radius:50%}.terminal-lights i:nth-child(2){background:#d2a251}.terminal-lights i:nth-child(3){background:#77916e}.terminal-clear{margin-left:auto;border:0;background:transparent;color:#a6ad9d;font:10px Consolas,monospace;cursor:pointer}.terminal-screen{min-height:300px;max-height:430px;overflow:auto;padding:22px 22px 12px;color:#b5c9a6;font:13px/1.8 Consolas,'Courier New',monospace}.term-line{margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}.term-line.system{color:#899582}.term-line.prompt{color:#dbb76d}.term-line.response{color:#c5d9b3;padding-left:17px;border-left:1px solid #667955;margin:12px 0 20px}.term-line.error{color:#dc8a76}.terminal-input-row{display:flex;align-items:center;gap:10px;padding:13px 16px;border-top:1px solid #354035;color:#dfbe74;font:14px Consolas,monospace}.terminal-input-row input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#e5eddb;font:13px Consolas,monospace}.terminal-input-row input::placeholder{color:#677366}.terminal-input-row button{border:1px solid #73815f;background:#354332;color:#e5dfc8;padding:9px 12px;border-radius:4px;font:10px Consolas,monospace;letter-spacing:.7px;cursor:pointer}.terminal-controls{display:flex;align-items:center;gap:20px;margin:19px 0 25px}.terminal-controls .field-label{width:270px;flex:none;margin:0}.terminal-controls p{font-size:10px;color:#7b7b6e;margin:0;line-height:2.4}.command-chip{border:1px solid #ded8c8;border-radius:99px;background:#fbf8f0;color:#52624b;font:10px Consolas,monospace;padding:5px 9px;cursor:pointer}.altar-candle{display:inline-grid;place-items:center;position:relative;width:27px;height:42px;margin-right:9px;vertical-align:middle}.altar-candle:before{content:"";position:absolute;top:2px;width:9px;height:13px;border-radius:55% 55% 50% 50%;background:#ffce73;filter:drop-shadow(0 0 7px #e6a13b);animation:flame 1.3s ease-in-out infinite alternate}.altar-candle:after{content:"";position:absolute;top:13px;bottom:0;width:13px;border-radius:4px 4px 2px 2px;background:linear-gradient(90deg,#d6bd82,#fff0c2,#c8a65f)}@keyframes flame{from{transform:scale(.8) rotate(-5deg);opacity:.82}to{transform:scale(1.05) rotate(6deg);opacity:1}}.altar-card{position:relative}.altar-card .person-image{background:radial-gradient(ellipse at 50% 85%,#f6d89044,transparent 45%),linear-gradient(135deg,#29352b,#4d5942)}.altar-card .person-image img{opacity:.86;mix-blend-mode:screen}.altar-card .person-image .avatar-flower{color:#e0b767;text-shadow:0 0 20px #ffcc69}.offering-line{font:italic 11px/1.5 Georgia,serif;color:#8a7651;margin:9px 0 0}.candle-count{font-size:9px;color:#a27a3e;margin-top:8px}.offering-chip{display:inline-block;background:#f0eddf;border-radius:99px;color:#71765f;padding:5px 9px;margin:0 4px 6px 0;font-size:10px}.terminal-spirit{color:#b08c51;font:600 10px Consolas,monospace;letter-spacing:1px;margin:0 0 8px}.offering-list{margin:14px 0 0}.light-button{background:#4f3927;color:#f4d58d;border:1px solid #d4ad60}.light-button:hover{background:#725333;color:#fff1c4}.candle-glow{animation:candleGlow .75s ease-out}@keyframes candleGlow{0%{box-shadow:0 0 0 0 #e8b35500}35%{box-shadow:0 0 60px 18px #e8b3555c}100%{box-shadow:0 0 0 0 #e8b35500}}@media(max-width:680px){.terminal-controls{display:block}.terminal-controls .field-label{width:100%}.terminal-controls p{margin-top:12px}.terminal-screen{min-height:260px;padding:16px;font-size:12px}.terminal-input-row{padding:11px}.terminal-input-row button{padding:9px 8px}}

.candle-row{display:flex;align-items:center;gap:0;margin-top:9px;min-height:27px}.candle-row .altar-candle{flex:0 0 24px;height:30px;margin-right:4px}.candle-row .altar-candle:before{top:0}.candle-row .altar-candle:after{top:10px}.candle-row .candle-count{margin:0 0 0 4px;font-size:9px;white-space:nowrap}.altar-card .person-info{position:relative}.terminal-page .intro{max-width:650px}.artifact-card .person-image .avatar-flower{font-family:Consolas,monospace;font-size:52px}

.mobile-nav{display:none}@media(max-width:680px){.mobile-nav{display:flex;gap:3px;overflow-x:auto;padding:6px 0 8px;border-bottom:1px solid var(--line)}.mobile-nav .nav-link{flex:1;justify-content:center;white-space:nowrap;padding:9px 8px;font-size:10px;gap:6px}.mobile-nav .nav-link span{font-size:14px}.mobile-nav button{font-family:var(--sans)}}
