:root{--ink:#26332c;--moss:#587363;--rose:#b76559;--cream:#f3ede2;--paper:#faf6ed;--mist:#dce8df;--line:rgba(38,51,44,.13);font-family:ui-sans-serif,system-ui,"Noto Sans SC",sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:#d8d2c7}button,textarea{font:inherit;color:inherit}button{cursor:pointer}main{width:min(100%,460px);height:100dvh;margin:auto;position:relative;overflow:hidden;background:var(--cream);box-shadow:0 0 60px #8e887f55}.view{display:none;position:absolute;inset:0 0 58px;overflow:auto;padding:28px 25px 42px}.view.active{display:block;animation:enter .35s ease}@keyframes enter{from{opacity:0;transform:translateY(5px)}}nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,460px);height:58px;display:grid;grid-template-columns:repeat(4,1fr);background:#f8f4ebee;backdrop-filter:blur(18px);box-shadow:0 -10px 28px #554c3d10}nav button{border:0;background:none;color:#777d77;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}nav i{font:20px Georgia;font-style:normal}nav span{font-size:9px}nav .active{color:var(--moss)}
.home{padding-top:21px;isolation:isolate}.paper-grain{position:absolute;inset:0;z-index:-3;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}.tide-light{position:absolute;z-index:-2;width:390px;height:390px;left:-160px;top:190px;border-radius:50%;background:radial-gradient(circle,#d9e8decc,transparent 67%)}.moment{display:flex;justify-content:space-between;color:#777e77;font:9px Georgia;letter-spacing:.12em}.constellation{height:40px;position:relative}.star{position:absolute;width:5px;height:5px;background:var(--rose);border-radius:50%}.s1{left:19%;top:24px}.s2{right:13%;top:10px}.thread{position:absolute;height:1px;background:#7b8e8266;transform-origin:left}.t1{left:20%;top:26px;width:48%;transform:rotate(-7deg)}.t2{right:13%;top:12px;width:24%;transform:rotate(17deg)}.days{text-align:left;margin:0 0 20px;padding-left:13%}.days small{font:9px Georgia;letter-spacing:.25em;color:var(--moss)}.days strong{display:block;font:400 112px/.9 Georgia;letter-spacing:-.08em}.days em{display:block;margin:6px 0 19px 8px;color:var(--rose);font:italic 12px Georgia;letter-spacing:.13em}.days span{font:11px Georgia;letter-spacing:.3em;color:#6d746e}.days p{margin:13px 0 0;font:13px/1.7 Georgia,"Noto Serif SC",serif;color:#5f665f}.says{position:relative;margin:10px 2% 21px 8%;padding:17px 24px 18px 39px;background:#faf6edbd;clip-path:polygon(2% 7%,98% 0,100% 89%,90% 97%,5% 100%,0 14%);filter:drop-shadow(0 12px 16px #564a3912)}.vertical{position:absolute;left:12px;top:19px;writing-mode:vertical-rl;font:8px Georgia;letter-spacing:.16em;color:var(--rose)}.says blockquote{margin:0;font:17px/1.65 Georgia,"Noto Serif SC",serif}.says>i{position:absolute;right:19px;bottom:9px;color:var(--rose);font:italic 12px Georgia}.chat-door{width:56%;border:0;padding:13px 14px 13px 18px;display:grid;grid-template-columns:30px 1fr 16px;align-items:center;text-align:left;background:var(--mist);clip-path:polygon(0 9%,91% 0,100% 84%,83% 100%,4% 94%)}.chat-door .seal{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:#fff;font-size:10px}.chat-door small,.chat-door strong{display:block}.chat-door small{font-size:8px;color:#68736b}.chat-door strong{font:12px Georgia;margin-top:3px}.chat-door b{font-weight:400}.today{width:48%;margin:-16px 0 0 auto;padding:13px 14px 13px 20px;background:#f9f3e9;transform:rotate(1deg);clip-path:polygon(8% 0,100% 4%,97% 94%,4% 100%,0 18%)}.today header{font-size:9px;color:var(--rose);font-weight:700;margin-bottom:5px}.today label{display:block;border-top:1px solid var(--line);padding:7px 0;font-size:8px}.today input{accent-color:var(--moss)}.life-knot{position:absolute;right:17px;bottom:32px;width:54px;height:54px;border:1px dashed #a96d6455;border-radius:50%;background:#efd9d3;transform:rotate(8deg)}.life-knot span{font:8px Georgia}.life-knot i{display:block;font:18px Georgia}
.chat{padding:0;background:linear-gradient(165deg,#f7f2e8,#eef3ee)}.chat-person{height:51px;padding:0 12px;display:grid;grid-template-columns:28px 30px 1fr 30px;align-items:center;gap:8px;background:#f8f4ecaa;backdrop-filter:blur(18px);position:sticky;top:0;z-index:2}.chat-person button{border:0;background:none}.chat-person img{width:28px;height:28px;border-radius:50%}.chat-person strong,.chat-person small{display:block}.chat-person strong{font:13px Georgia}.chat-person small{font-size:8px;color:#727a73;margin-top:2px}.chat-person small i{display:inline-block;width:5px;height:5px;background:#69a080;border-radius:50%}.conversation{padding:17px 17px 74px}.conversation>time{display:block;text-align:center;font-size:8px;color:#858b85;margin-bottom:20px}.conversation article{max-width:78%;margin-bottom:7px}.conversation p{width:fit-content;margin:0 0 3px;padding:7px 10px;background:#fffaf1d9;border-radius:3px 13px 13px 13px;font:12px/1.55 Georgia,"Noto Serif SC",serif;box-shadow:0 4px 12px #544c4010}.conversation small{font-size:7px;color:#7e847f}.conversation .mine{margin-left:auto;text-align:right}.conversation .mine p{margin-left:auto;background:#d9e8dd;border-radius:13px 3px 13px 13px}.under{margin:12px 0 12px 9%!important}.under button{border:0;border-left:1px solid #708a7a;background:none;color:var(--moss);font-size:8px;padding:2px 7px}.under i{display:inline-block;width:4px;height:4px;border-radius:50%;background:#6b9e7f}.under div{font-size:7px;color:#858b86;margin:4px 8px}.write{position:absolute;left:8px;right:8px;bottom:7px;display:grid;grid-template-columns:30px 1fr 30px 35px;gap:3px;align-items:center;padding:5px;background:#f8f4ecda;backdrop-filter:blur(15px);border-radius:26px}.write button{border:0;background:none}.write textarea{resize:none;border:0;background:none;height:31px;padding:7px;outline:0;font-size:11px}.write .send{width:31px;height:31px;border-radius:50%;background:var(--moss);color:#fff}
.life{background:linear-gradient(155deg,#f4ede1,#eaf0e9);padding-top:35px}.life-title small,.settings-title small{color:var(--rose);font:9px Georgia;letter-spacing:.2em}.life-title h1{font:400 40px Georgia,"Noto Serif SC",serif;margin:7px 0 10px}.life-title p{font:11px/1.7 Georgia,"Noto Serif SC",serif;color:#6c746d}.life-map{height:520px;position:relative;margin-top:15px}.life-map button{position:absolute;border:0;text-align:left;filter:drop-shadow(0 10px 15px #5a504215)}.life-map strong,.life-map small{display:block}.day-book{left:0;top:0;width:57%;height:185px;padding:24px;background:#e8cfca;clip-path:polygon(2% 2%,95% 0,100% 92%,84% 98%,4% 95%)}.day-book span{position:absolute;right:17px;top:13px;font:24px Georgia;color:#b77268}.day-book strong{font:29px Georgia;margin:12px 0}.day-book p{font-size:9px}.collection{right:0;top:77px;width:48%;height:147px;padding:22px;background:#faf4e9;clip-path:polygon(7% 0,100% 7%,94% 94%,0 100%)}.collection>span{width:29px;height:29px;display:grid;place-items:center;border:1px solid #9d776f;border-radius:50%;font:13px Georgia}.collection strong{font:19px Georgia;margin:9px 0}.collection p{font-size:8px}.inside{left:5%;top:222px;width:70%;height:105px;padding:20px;background:#cfdfd4;border-radius:53% 47% 48% 52%/42% 55% 45% 58%}.inside>span{position:absolute;right:23px;font:31px Georgia;color:#698071}.inside strong{font:17px Georgia;margin-top:6px}.inside small{font-size:8px}.outside{right:3%;top:346px;width:51%;height:112px;padding:20px;background:#f5e7d2;clip-path:polygon(0 10%,89% 0,100% 81%,76% 100%,8% 90%)}.outside span{float:right}.outside strong{font:17px Georgia;margin-top:14px}.outside p{font-size:8px}.play{left:0;top:374px;width:42%;height:86px;padding:17px;background:#e2ddea;border-radius:40px 11px 36px 16px}.play span{float:left;font:26px Georgia;margin-right:8px}.play strong{font:15px Georgia;margin-top:5px}.play small{font-size:7px;margin-top:5px}
.settings{background:#efe9df;padding-top:38px}.settings-title h1{font:400 39px/1.2 Georgia,"Noto Serif SC",serif;margin:8px 0 23px}.settings-wheel{position:absolute;right:-62px;top:38px;width:180px;height:180px;border:1px solid #73887955;border-radius:50%}.settings-wheel span{position:absolute;inset:25px;border:1px dashed #b86d6055;border-radius:50%}.settings-wheel i{position:absolute;width:13px;height:13px;background:var(--rose);border-radius:50%;left:20px;top:38px}.setting-groups{margin-top:50px}.setting-groups button{width:100%;min-height:73px;border:0;border-bottom:1px solid var(--line);background:none;display:grid;grid-template-columns:35px 1fr 20px;align-items:center;text-align:left}.setting-groups>button>span{font:italic 11px Georgia;color:var(--rose)}.setting-groups strong,.setting-groups small{display:block}.setting-groups strong{font:17px Georgia,"Noto Serif SC",serif}.setting-groups small{font-size:8px;color:#747b75;margin-top:5px}.setting-groups b{font-weight:400}
@media(min-width:700px){body{padding:20px}main{height:calc(100dvh - 40px);border-radius:18px}nav{bottom:20px;border-radius:0 0 18px 18px}}

/* refinement pass */
.view{scrollbar-width:none}.view::-webkit-scrollbar{display:none}.moment,.life-title,.settings-title{position:relative}.life-title::before,.settings-title::before{content:"";position:absolute;left:-13px;top:-13px;width:34px;height:9px;background:#bc6b5d22;transform:rotate(-8deg)}
.constellation{cursor:pointer}.constellation .thread{animation:line-draw 6s ease-in-out infinite alternate}.constellation .star{animation:star-pulse 3.2s ease-in-out infinite}.constellation .s2{animation-delay:-1.4s}.tide-glyph{position:absolute;right:35%;top:7px;color:#5c7667;font:18px Georgia;opacity:.28;animation:glyph-drift 7s ease-in-out infinite}@keyframes line-draw{50%{opacity:.35;transform:rotate(-4deg) scaleX(.88)}}@keyframes star-pulse{50%{transform:scale(1.7);box-shadow:0 0 14px #b7655966}}@keyframes glyph-drift{50%{transform:translateY(5px) rotate(8deg)}}
.days strong{background:linear-gradient(165deg,#21372d 20%,#587363 88%);background-clip:text;color:transparent;text-shadow:none}.days strong::after{content:"";display:inline-block;width:18px;height:18px;margin-left:8px;border:1px solid #b7655955;border-radius:50% 46% 55% 42%;vertical-align:top;animation:small-orbit 8s linear infinite}@keyframes small-orbit{to{transform:rotate(360deg)}}
.life-title h1,.settings-title h1{position:relative;width:max-content}.life-title h1::after,.settings-title h1::after{content:"≈";position:absolute;right:-34px;top:-12px;color:#b7655966;font:24px Georgia;transform:rotate(-8deg)}
.life-map button{transition:transform .25s ease,filter .25s ease}.life-map button:active{transform:scale(.97) rotate(-1deg);filter:drop-shadow(0 4px 8px #5a504212)}
nav{height:62px;padding:0 15px;grid-template-columns:1fr .88fr 1.12fr .9fr;background:#f8f4ebef;clip-path:polygon(0 9%,18% 2%,40% 7%,63% 0,82% 6%,100% 2%,100% 100%,0 100%)}nav button:nth-child(1){transform:translateY(1px) rotate(-2deg)}nav button:nth-child(2){transform:translateY(-3px) rotate(2deg)}nav button:nth-child(3){transform:translateY(2px) rotate(-1deg)}nav button:nth-child(4){transform:translateY(-2px) rotate(2deg)}nav button.active i{width:31px;height:25px;display:grid;place-items:center;border:1px solid #58736355;border-radius:52% 48% 55% 45%;background:#dce8df66}body[data-room="chat"] nav{display:none}body[data-room="chat"] .view{bottom:0}.chat{bottom:0}
.conversation article.his,.conversation article.mine{display:flex;align-items:flex-end;gap:6px;max-width:84%}.conversation article.mine{flex-direction:row-reverse}.conversation article.his>div,.conversation article.mine>div{min-width:0}.message-avatar{width:20px;height:20px;border-radius:50%;flex:none;margin-bottom:13px}.conversation .mine small{display:block}.conversation .his p,.conversation .mine p{font-size:11.5px;line-height:1.5}.write{bottom:max(7px,env(safe-area-inset-bottom))}
@media(max-width:480px){.days strong{font-size:103px}.life-title h1{font-size:37px}.settings-title h1{font-size:36px}.conversation{padding-bottom:74px}.chat-person{padding-top:env(safe-area-inset-top);height:calc(51px + env(safe-area-inset-top))}}

/* visible art direction pass */
body[data-room="chat"] .view{bottom:0}
body[data-room="chat"] .chat{bottom:0}
body[data-room="chat"] .conversation{padding-bottom:68px}
body[data-room="chat"] .write{bottom:max(7px,env(safe-area-inset-bottom));box-shadow:0 8px 28px #34463b1a}

.number-art{position:relative;width:max-content;margin:0 0 3px -6px;display:flex;align-items:baseline;gap:0;font-family:Georgia,"Times New Roman",serif;color:#263b31;isolation:isolate}
.number-art span{position:relative;display:block;font-size:112px;line-height:.84;letter-spacing:-.12em;background:linear-gradient(155deg,#20372c 12%,#66806f 92%);background-clip:text;color:transparent}
.number-art span:nth-child(1){font-style:italic;transform:rotate(-5deg) translateY(4px);font-size:105px}
.number-art span:nth-child(2){font-size:124px;font-weight:400;transform:translateY(-3px);z-index:2}
.number-art span:nth-child(3){font-style:italic;transform:rotate(4deg) translateY(5px);font-size:108px}
.number-art::before{content:"";position:absolute;left:-26px;right:-43px;top:48%;height:1px;background:linear-gradient(90deg,transparent,#9d695c99 18%,#60786b77 74%,transparent);transform:rotate(-7deg);z-index:-1}
.number-art::after{content:"✦";position:absolute;right:-39px;top:-7px;color:#b76559;font-size:11px;animation:star-pulse 3.2s ease-in-out infinite}
.number-orbit{position:absolute;width:174px;height:71px;right:-38px;top:13px;border:1px solid #8a9a8e66;border-left-color:transparent;border-bottom-color:#b7655966;border-radius:50%;transform:rotate(-13deg);z-index:-1;animation:number-breathe 6s ease-in-out infinite}
.number-orbit::before,.number-orbit::after{content:"";position:absolute;border-radius:50%}.number-orbit::before{width:5px;height:5px;background:#b76559;right:16px;top:4px;box-shadow:0 0 0 4px #b7655913}.number-orbit::after{width:3px;height:3px;background:#587363;left:19px;bottom:5px}
@keyframes number-breathe{50%{transform:rotate(-9deg) scale(1.035);opacity:.65}}

.title-stamp{position:absolute;right:2px;top:-10px;display:grid;place-items:center;width:48px;height:48px;border:1px solid #b7655966;border-radius:50% 46% 53% 44%;color:#a15f54;font:8px Georgia;letter-spacing:.16em;transform:rotate(9deg);background:#f5ede088;box-shadow:inset 0 0 0 5px #f5ede0, inset 0 0 0 6px #b7655926;animation:stamp-float 5s ease-in-out infinite}
.settings-title .title-stamp{right:7px;top:13px;border-color:#58736366;color:#587363;transform:rotate(-8deg)}
@keyframes stamp-float{50%{transform:rotate(3deg) translateY(3px)}}

nav{height:65px;padding:1px 18px 0;overflow:visible;grid-template-columns:1.05fr .83fr 1.12fr .9fr;background:linear-gradient(178deg,#faf6eeea,#f3eee4f5);clip-path:polygon(0 20%,13% 10%,31% 16%,50% 5%,68% 13%,86% 4%,100% 13%,100% 100%,0 100%);box-shadow:0 -13px 32px #554c3d0c}
nav .nav-thread{position:absolute;display:block;left:7%;right:6%;top:9px;height:1px;background:linear-gradient(90deg,transparent,#b7655955 23%,#58736366 58%,transparent);transform:rotate(-1.7deg);pointer-events:none}
nav .nav-thread::before,nav .nav-thread::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;top:-2px}.nav-thread::before{left:24%;background:#b76559}.nav-thread::after{right:22%;background:#587363}
nav button{position:relative;z-index:1}
nav button:nth-child(1){transform:translateY(3px) rotate(-3deg)}nav button:nth-child(2){transform:translateY(-3px) rotate(2deg)}nav button:nth-child(3){transform:translateY(4px) rotate(-2deg)}nav button:nth-child(4){transform:translateY(-1px) rotate(3deg)}
nav button.active i{border:0;background:#dce8df99;box-shadow:0 0 0 1px #5873633b;transform:rotate(-7deg)}

@media(max-width:480px){.number-art span{font-size:102px}.number-art span:nth-child(1){font-size:96px}.number-art span:nth-child(2){font-size:113px}.number-art span:nth-child(3){font-size:99px}}

/* Rose-tide timepiece — Home's living centrepiece */
.home{background:#f3eadc url("./assets/backgrounds/home-cream-rose.jpg") center top/cover no-repeat;padding:20px 18px 104px}
.home .paper-grain{opacity:.12;mix-blend-mode:multiply}
.home .tide-light{display:none}
.home .moment{z-index:4;padding:1px 5px;color:#756d62;text-shadow:0 1px #fff8;font-size:8px}
.rose-timepiece{--stage-w:min(106vw,470px);position:relative;width:var(--stage-w);height:526px;margin:-18px 0 -72px 50%;transform:translateX(-50%);isolation:isolate;overflow:hidden}
.timepiece-layer{position:absolute;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.timepiece-brass{inset:-8px 0 0;z-index:1;animation:tide-glisten 8s ease-in-out infinite;filter:sepia(.08) saturate(1.08) contrast(1.22);opacity:.98}
.timepiece-flowers{inset:-5px 0 0;z-index:2;transform:scale(.91);animation:rose-breathe 7s ease-in-out infinite;filter:saturate(.9) contrast(1.08);opacity:.94}
.pointer-stage{position:absolute;inset:0;z-index:3;transform:rotate(var(--pointer-turn,0deg));transform-origin:50% 67.7%;animation:pointer-drift 18s ease-in-out infinite alternate;pointer-events:none}
.timepiece-pointer{inset:0;transform:scale(.76) translateY(6px);filter:saturate(.7) contrast(.92)}
.timepiece-readout{position:absolute;z-index:4;left:50%;top:43%;width:72%;transform:translate(-50%,-50%);text-align:center;color:#453d34;text-shadow:0 1px 0 #fff9}
.timepiece-readout small{display:block;font:8px/1.2 Georgia,serif;letter-spacing:.31em;color:#8c6b58;margin-left:.31em}
.living-numeral{display:block;width:100%;height:118px;margin:-2px auto -5px;overflow:visible;filter:drop-shadow(0 1px 0 #fff8)}
.number-stroke{font:italic 104px Georgia,"Times New Roman",serif;letter-spacing:-8px;paint-order:stroke fill;stroke-linejoin:round;font-variant-numeric:oldstyle-nums}
.number-main{fill:rgba(246,238,223,.2);stroke:url(#numeral-ink);stroke-width:1.65;animation:numeral-trace 2.4s cubic-bezier(.4,0,.2,1) both,numeral-ink 7s ease-in-out 2.4s infinite}
.number-shadow{fill:none;stroke:#a4776b44;stroke-width:4.4;transform:translate(1px,2px);filter:blur(.4px)}
.number-vine,.number-leaf{fill:none;stroke:url(#numeral-ink);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:520;stroke-dashoffset:520;animation:vine-grow 3.2s cubic-bezier(.4,0,.2,1) .45s forwards}
.rose-core{stroke-width:1.05;animation-delay:.75s}.vine-bridge{stroke-width:.9;opacity:.78;animation-delay:1.05s}.flourish{stroke-width:.85;opacity:.7;animation-delay:1.25s}.number-leaf{fill:#8f9a7c18;stroke:#68786a;stroke-width:.75;animation-delay:1.45s}
@keyframes numeral-trace{from{stroke-dasharray:10 18;stroke-dashoffset:240;opacity:.12}to{stroke-dasharray:900 0;stroke-dashoffset:0;opacity:1}}
@keyframes vine-grow{to{stroke-dashoffset:0}}
.timepiece-readout em{display:block;font:italic 7px Georgia,serif;letter-spacing:.28em;color:#9c7a66}
.timepiece-readout span{display:block;margin-top:9px;font:10px Georgia,"Noto Serif SC",serif;letter-spacing:.2em;color:#6f7164}
.timepiece-divider{position:absolute;z-index:5;left:50%;bottom:48px;width:73%;height:auto;transform:translateX(-50%);pointer-events:none;filter:saturate(.75) contrast(.92)}
@keyframes rose-breathe{0%,100%{transform:scale(.91) translateY(0)}50%{transform:scale(.925) translateY(-2px)}}
@keyframes tide-glisten{0%,100%{opacity:.9}50%{opacity:1;filter:sepia(.08) saturate(1.18) contrast(1.3)}}
@keyframes pointer-drift{from{rotate:-.35deg}to{rotate:.35deg}}
@keyframes numeral-ink{0%,100%{opacity:.93;filter:drop-shadow(0 2px 0 #fff5)}50%{opacity:1;filter:drop-shadow(0 2px 0 #fff8)}}
.home .says{z-index:4;margin:3px 5% 18px;padding-top:15px;background:#f8f0e3c7;backdrop-filter:blur(2px)}
.home .chat-door,.home .today,.home .life-knot{z-index:4}
@media(max-width:390px){.rose-timepiece{height:502px;margin-top:-22px;margin-bottom:-66px}.timepiece-divider{bottom:42px}.timepiece-readout{top:43.5%;width:70%}.living-numeral{height:108px}}
@media(prefers-reduced-motion:reduce){.timepiece-brass,.timepiece-flowers,.pointer-stage,.timepiece-readout strong{animation:none}}

/* Engraved counter: one mature ink language, no illustrative SVG stand-ins. */
@font-face{font-family:"Cormorant Garamond Local";src:url("./assets/fonts/cormorant-garamond-light.ttf") format("truetype");font-style:normal;font-weight:300;font-display:swap}
.engraved-timepiece{width:min(103vw,465px);height:496px;margin:-17px 0 -58px 50%;overflow:hidden}
.engraved-rose{position:absolute;z-index:1;inset:-8px 0 0;width:100%;height:100%;object-fit:contain;opacity:.72;filter:sepia(.13) saturate(.58) contrast(1.12);pointer-events:none;transform:scale(.96);transform-origin:50% 54%;animation:engraving-arrive 3.5s cubic-bezier(.22,.7,.2,1) both,engraving-breathe 9s ease-in-out 3.5s infinite}
.engraved-readout{z-index:2;top:43%;width:54%;padding:22px 2px 18px;background:radial-gradient(ellipse at center,rgba(244,236,221,.9) 0,rgba(244,236,221,.64) 52%,transparent 75%);text-shadow:none}
.engraved-readout small{font:8px/1.2 "Cormorant Garamond Local",Georgia,serif;letter-spacing:.38em;color:#75594f}
.engraved-readout strong{display:block;margin:-7px 0 -10px;font:300 clamp(105px,29vw,137px)/.9 "Cormorant Garamond Local",Georgia,serif;letter-spacing:-.095em;color:#4e3e38;font-variant-numeric:lining-nums tabular-nums;text-shadow:.5px .5px 0 #a7847766;animation:engraved-number-arrive 2.3s cubic-bezier(.2,.8,.2,1) both,engraved-number-breathe 8s ease-in-out 2.3s infinite}
.engraved-readout i{display:block;width:72%;height:1px;margin:0 auto 5px;background:linear-gradient(90deg,transparent,#76584b 18%,#76584b 82%,transparent);transform-origin:center;animation:rule-draw 2.2s ease 1s both}
.engraved-readout em{font:italic 8px "Cormorant Garamond Local",Georgia,serif;letter-spacing:.32em;color:#8b655b}
.engraved-readout span{margin-top:8px;font:10px Georgia,"Noto Serif SC",serif;letter-spacing:.22em;color:#5d625b}
@keyframes engraving-arrive{from{opacity:0;clip-path:inset(0 100% 0 0);transform:scale(.95) translateY(3px)}to{opacity:.72;clip-path:inset(0);transform:scale(.96) translateY(0)}}
@keyframes engraving-breathe{0%,100%{opacity:.67;transform:scale(.96)}50%{opacity:.78;transform:scale(.968) translateY(-1px)}}
@keyframes engraved-number-arrive{from{opacity:0;filter:blur(3px);transform:translateY(8px);letter-spacing:.01em}to{opacity:1;filter:blur(0);transform:none;letter-spacing:-.095em}}
@keyframes engraved-number-breathe{0%,100%{color:#4e3e38}50%{color:#76544e}}
@keyframes rule-draw{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@media(max-width:390px){.engraved-timepiece{height:474px;margin-top:-20px;margin-bottom:-52px}.engraved-readout{top:43%;width:56%}.engraved-readout strong{font-size:112px}}
@media(prefers-reduced-motion:reduce){.engraved-rose,.engraved-readout strong,.engraved-readout i{animation:none}}

/* complete composition rebuild */
:root{--ink:#403930;--rose:#a86c68;--sage:#667d70;--paper:#efe6d6;--line:#8d78664d;--serif:"Cormorant Garamond Local",Georgia,"Noto Serif SC",serif}
body{background:#cfc7bb}main{width:min(100%,480px);background:var(--paper)}
.view{inset:0 0 66px;padding:0 22px 46px;background-position:center;background-size:cover}
.home{background:var(--paper) url("./assets/ui/backgrounds/background-cream-rose-master-01.jpg") center top/cover no-repeat;padding:18px 18px 96px;overflow:hidden}
.moment{padding:0 4px;color:#776f65;font:11px var(--serif);letter-spacing:.08em}.day-frontispiece{position:relative;height:470px;margin:0 -8px;overflow:hidden}.day-rose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.18;filter:sepia(.2) saturate(.45) contrast(1.28);animation:paper-reveal 2.4s ease both}.day-stars{position:absolute;right:4%;top:31%;width:17%;opacity:.23}.day-ink{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:76%;text-align:center;color:var(--ink);z-index:2}.day-ink small{font:11px var(--serif);letter-spacing:.42em;color:#7c6257}.day-ink strong{display:block;font:300 clamp(112px,31vw,146px)/.78 "Cormorant Garamond Local",Georgia,serif;letter-spacing:-.1em;color:#4d4039;text-shadow:1px 1px 0 #fff7;animation:number-arrive 1.6s ease both}.day-ink i{display:block;width:66%;height:1px;margin:8px auto 7px;background:linear-gradient(90deg,transparent,var(--rose),transparent);transform:rotate(-1deg)}.day-ink em{font:italic 10px var(--serif);letter-spacing:.3em;color:#88675e}.day-ink span{display:block;margin-top:9px;font:13px var(--serif);letter-spacing:.23em}.daddy-note{position:relative;margin:0 -2px;height:134px}.daddy-note>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.83;filter:saturate(.55)}.daddy-note>div{position:relative;padding:22px 30px 10px 40px}.daddy-note small{font:10px var(--serif);letter-spacing:.25em;color:var(--rose)}.daddy-note blockquote{margin:7px 0 0;font:20px/1.45 var(--serif);color:#3f4039}.daddy-note b{position:absolute;right:26px;bottom:17px;color:var(--rose);font:italic 16px var(--serif)}.home-passages{display:flex;align-items:center;gap:12px;margin:9px 2px}.home-passages button{border:0;background:none;position:relative;color:var(--ink);font-family:var(--serif)}.chat-passage{display:flex;align-items:center;gap:8px;width:67%;padding:8px 9px;background:#dbe6dfcc!important;clip-path:polygon(0 8%,96% 0,100% 91%,7% 100%)}.chat-passage img{width:49px;height:43px;object-fit:contain;opacity:.72}.chat-passage span{text-align:left}.chat-passage small,.chat-passage strong{display:block}.chat-passage small{font-size:10px;color:#6b756f}.chat-passage strong{font-size:17px}.chat-passage b{margin-left:auto;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:white;font:12px Georgia}.life-passage{width:70px;height:70px;padding:3px;background:#ead4cf;border-radius:48% 52% 44% 56%;transform:rotate(8deg)}.life-passage img{width:37px;height:37px;object-fit:contain;opacity:.75}.life-passage span{display:block;font-size:10px}
.chat{padding:0;background:var(--paper) url("./assets/ui/backgrounds/background-chat-quiet-01.jpg") center/cover no-repeat}.chat-head{height:62px;padding:env(safe-area-inset-top) 10px 0;display:grid;grid-template-columns:42px 32px 1fr 34px;align-items:center;gap:7px;background:#efe8d9dd;backdrop-filter:blur(12px);position:sticky;top:0;z-index:3}.chat-head button{border:0;background:none;padding:3px}.chat-head button img{width:24px;height:24px;object-fit:contain}.head-avatar{width:29px;height:29px;border-radius:50%}.chat-head strong{font:17px var(--serif)}.chat-head small{display:flex;align-items:center;gap:4px;font-size:9px;color:#758177;margin-top:2px}.chat-head small img{width:10px;height:10px;object-fit:contain}.conversation{padding:18px 13px 82px}.conversation>time{display:block;text-align:center;color:#8c8379;font:10px var(--serif);margin-bottom:18px}.message{display:flex;align-items:flex-end;gap:6px;max-width:88%;margin-bottom:9px}.message.mine{margin-left:auto;flex-direction:row-reverse;text-align:right}.message-avatar{width:22px;height:22px;border-radius:50%;margin-bottom:13px;flex:none}.message p{margin:0 0 3px;padding:8px 11px;background:#fffaf1d9;box-shadow:0 2px 8px #665a4c10;border-radius:2px 13px 13px 13px;font:13px/1.5 var(--serif)}.message.mine p{background:#d8e5dc;border-radius:13px 2px 13px 13px}.message small{font-size:8px;color:#8b877f}.under{margin:14px 0 15px 32px}.under button{display:flex;align-items:center;gap:5px;border:0;border-left:1px solid var(--sage);background:none;padding:2px 7px;color:var(--sage);font:11px var(--serif)}.under button img{width:17px;height:17px;object-fit:contain}.under p{margin:5px 0 0 24px;color:#8b8a81;font:10px var(--serif)}.composer{position:fixed;z-index:8;left:50%;bottom:7px;transform:translateX(-50%);width:min(calc(100% - 18px),462px);display:grid;grid-template-columns:32px 1fr 32px 39px;gap:3px;align-items:center;padding:6px;background:#f3ecdfec;backdrop-filter:blur(16px);border:1px solid #b2a29555;border-radius:25px;box-shadow:0 6px 24px #5b504312}.composer button{border:0;background:none;padding:3px}.composer button img{width:23px;height:23px;object-fit:contain}.composer textarea{resize:none;border:0;background:transparent;outline:0;font:13px var(--serif);padding:7px 4px;height:31px}.composer .send{width:32px;height:32px;border-radius:50%;background:var(--sage)}.composer .send img{filter:brightness(0) invert(1);width:21px}
.life{background:var(--paper) url("./assets/ui/backgrounds/background-life-collage-01.jpg") center/cover no-repeat;padding:34px 19px 70px}.room-title{position:relative;padding:0 8px}.room-title small{font:10px var(--serif);letter-spacing:.3em;color:var(--rose)}.room-title h1{margin:5px 0 8px;font:300 45px var(--serif);color:var(--ink)}.room-title p{margin:0;font:13px/1.65 var(--serif);color:#706c63}.room-title>img{width:180px;height:auto;margin:13px 0 0;opacity:.6}.life-spread{position:relative;height:620px;margin-top:15px}.life-entry{position:absolute;border:0;background:none;text-align:left;color:var(--ink);font-family:var(--serif);filter:drop-shadow(0 8px 12px #51483d14);transition:transform .25s ease}.life-entry:active{transform:scale(.97) rotate(-1deg)}.life-entry>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.9}.life-entry>span{position:relative;display:block}.life-entry small,.life-entry strong,.life-entry em{display:block}.life-entry small{font-size:9px;letter-spacing:.14em;color:var(--rose)}.life-entry strong{font-size:26px;font-weight:400;margin:5px 0}.life-entry em{font-size:10px;font-style:normal;color:#79776d}.days-entry{left:0;top:8px;width:56%;height:185px;padding:31px 26px}.days-entry b{position:absolute;right:24px;top:22px;color:var(--rose);font:italic 26px var(--serif)}.mail-entry{right:0;top:80px;width:51%;height:160px;padding:35px 25px 20px 35px}.mail-entry .wax{position:absolute!important;width:34px!important;height:34px!important;right:28px;bottom:15px;object-fit:contain!important;opacity:1!important}.collection-entry{left:6%;top:245px;width:75%;height:142px;padding:31px 25px 20px 45px}.collection-entry .photo-frame{position:absolute!important;width:120px!important;height:75px!important;right:-16px;top:29px;object-fit:contain!important;opacity:.62!important;transform:rotate(-5deg)}.inward-entry{right:0;top:415px;width:60%;height:95px;padding:20px 18px 12px 62px;background:#dce6ddcc;clip-path:polygon(3% 7%,100% 0,95% 93%,0 100%)}.inward-entry>img:first-child{width:52px;height:52px;left:7px;top:21px;inset:auto;object-fit:contain}.inward-entry strong{font-size:18px}.outward-entry{left:0;top:475px;width:59%;height:95px;padding:22px 20px;background:#eadbc3dd;clip-path:polygon(0 8%,94% 0,100% 88%,6% 100%)}.outward-entry strong{font-size:18px}
.settings{background:var(--paper) url("./assets/ui/backgrounds/background-settings-ledger-01.jpg") center/cover no-repeat;padding:36px 28px 70px 44px}.ledger-binding{position:absolute;left:9px;top:28px;width:20px;height:calc(100% - 80px);object-fit:fill;opacity:.65}.settings-heading h1{font-size:39px}.settings-heading>img{width:180px;margin-top:10px}.ledger{position:relative;margin-top:25px;border-left:1px solid #9a887455;padding-left:18px;min-height:420px}.setting-tabs{position:absolute;right:-29px;top:0;display:flex;flex-direction:column;gap:9px}.setting-tabs button{position:relative;width:42px;height:92px;border:0;background:none;padding:0}.setting-tabs button img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.setting-tabs button span{position:relative;z-index:1;writing-mode:vertical-rl;font:11px var(--serif);letter-spacing:.15em}.setting-tabs button.active{transform:translateX(-4px)}.setting-page{padding:5px 12px 20px 0}.setting-page header small{font:9px var(--serif);letter-spacing:.25em;color:var(--rose)}.setting-page h2{margin:5px 0 18px;font:300 29px var(--serif)}.setting-page label,.setting-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:15px 3px;border:0;border-bottom:1px solid #887b6b2e;background:none;text-align:left}.setting-page label b,.setting-row b{display:block;font:17px var(--serif);font-weight:400}.setting-page label small,.setting-row small{display:block;margin-top:3px;color:#7d7a70;font:10px var(--serif)}.setting-page input{appearance:none;width:38px;height:19px;border-radius:14px;background:#c7c5b9;border:1px solid #928f8344;position:relative}.setting-page input::after{content:"";position:absolute;width:15px;height:15px;left:1px;top:1px;border-radius:50%;background:#f5efe3;box-shadow:0 1px 2px #63594d44;transition:.2s}.setting-page input:checked{background:var(--sage)}.setting-page input:checked::after{transform:translateX(18px)}.setting-row i{font:25px var(--serif);font-style:normal;color:var(--rose)}
.house-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,480px);height:66px;display:grid;grid-template-columns:repeat(4,1fr);padding:7px 18px 2px;background:#f4ede2ef;backdrop-filter:blur(14px);clip-path:polygon(0 15%,16% 6%,33% 11%,51% 2%,69% 10%,85% 4%,100% 12%,100% 100%,0 100%);box-shadow:0 -8px 22px #4b423612}.house-nav .nav-thread{position:absolute;left:7%;right:6%;top:8px;height:1px;background:linear-gradient(90deg,transparent,#a86c6877,#667d7066,transparent);transform:rotate(-1deg)}.house-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:1px;color:#777a73;font:10px var(--serif);position:relative}.house-nav button img{width:27px;height:27px;object-fit:contain;opacity:.68}.house-nav button.active{color:var(--sage);transform:translateY(-2px) rotate(-2deg)}.house-nav button.active img{opacity:1;filter:sepia(.15)}body[data-room="chat"] .house-nav{display:none}body[data-room="chat"] .view{bottom:0}
@keyframes paper-reveal{from{opacity:0;transform:scale(1.03)}to{opacity:.18;transform:none}}@keyframes number-arrive{from{opacity:0;transform:translateY(9px);letter-spacing:.02em}to{opacity:1;transform:none;letter-spacing:-.1em}}
@media(max-width:390px){.day-frontispiece{height:442px}.day-ink strong{font-size:121px}.daddy-note{height:126px}.daddy-note blockquote{font-size:18px}.life-spread{transform:scale(.94);transform-origin:top left;width:106%}}
@media(prefers-reduced-motion:reduce){.day-rose,.day-ink strong{animation:none}}

/* real-device correction pass */
*{-webkit-tap-highlight-color:transparent}
button:focus:not(:focus-visible),textarea:focus:not(:focus-visible),input:focus:not(:focus-visible){outline:none}
.voice-recorder{position:fixed;z-index:82;left:50%;bottom:15px;transform:translateX(-50%);width:min(calc(100% - 28px),432px);padding:18px 20px 22px;background:#eee0ccf2 url("./assets/ui/materials/deckled-letter-paper.png") center/100% 100% no-repeat;filter:drop-shadow(0 18px 30px #382f2744)}.voice-recorder[hidden]{display:none}.voice-recorder header{display:flex;justify-content:space-between;align-items:center}.voice-recorder header small{font:9px var(--serif);letter-spacing:.22em;color:var(--rose)}.voice-recorder header button{border:0;background:none;font:24px var(--serif)}.voice-orbit{display:grid;place-items:center;min-height:128px;position:relative}.voice-orbit i{position:absolute;width:105px;height:105px;border:1px solid #a85d5455;border-radius:47% 53% 48% 52%;animation:voice-turn 7s linear infinite}.voice-orbit strong{font:300 32px var(--serif);color:var(--rose)}.voice-orbit span{font:10px var(--serif);color:#756e66}.voice-recorder audio{width:100%;height:35px}.voice-actions{display:flex;justify-content:center;gap:18px;margin-top:14px}.voice-actions button{border:0;border-bottom:1px solid var(--rose);background:none;padding:7px 2px;font:13px var(--serif);color:var(--rose)}@keyframes voice-turn{to{transform:rotate(360deg)}}
button:focus-visible{outline:1px dashed #a86c6888;outline-offset:3px}
.home{overflow-y:auto;overflow-x:hidden}
.day-rose{opacity:.42;filter:contrast(1.12);animation-duration:1.1s}
.chat-head{background:transparent;backdrop-filter:none;border-bottom:0}
.inward-entry{right:0;top:398px;width:66%;height:122px;padding:27px 18px 16px 68px}
.inward-entry strong,.inward-entry em{white-space:nowrap}
@keyframes paper-reveal{from{opacity:.05;transform:scale(1.01)}to{opacity:.38;transform:none}}

.detail-room{position:absolute;z-index:40;inset:0;background:#eee5d5 url("./assets/ui/backgrounds/background-life-collage-01.jpg") center/cover no-repeat;overflow:auto;padding:25px 23px 60px;animation:detail-open .35s ease both}
.detail-room[hidden],.detail-page[hidden]{display:none}.detail-room>header{display:flex;align-items:center;gap:10px;margin-bottom:18px}.detail-back{border:0;background:none;width:43px;padding:4px}.detail-back img{width:36px;height:28px;object-fit:contain}.detail-room>header small{font:9px var(--serif);letter-spacing:.28em;color:var(--rose)}.detail-room>header h1{margin:2px 0 0;font:300 39px var(--serif)}body[data-detail] .house-nav{display:none}
.folio-tabs{display:flex;gap:15px;border-bottom:1px solid var(--line);margin-bottom:20px}.folio-tabs button{border:0;background:none;padding:8px 1px;font:13px var(--serif);color:#777268}.folio-tabs button.active{color:var(--rose);border-bottom:1px solid var(--rose)}.calendar-paper{padding:26px;background:#efe2cecc;clip-path:polygon(1% 2%,97% 0,100% 95%,4% 100%);box-shadow:0 10px 28px #5b4b3910}.calendar-paper header{display:flex;align-items:end;justify-content:space-between}.calendar-paper strong{font:300 31px var(--serif)}.calendar-paper span{font:12px var(--serif);letter-spacing:.2em}.weekday,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;margin-top:19px}.weekday b{font:10px var(--serif);font-weight:400;color:#8a8175}.calendar-grid i{font:italic 15px var(--serif);padding:9px 0;font-style:normal}.today-mark{background:var(--rose);color:#fff;border-radius:50%}.calendar-paper p{margin:26px 0 0;padding-top:13px;border-top:1px solid var(--line);font:14px var(--serif)}
.letter-list button{width:100%;border:0;background:none;display:flex;align-items:center;gap:12px;padding:12px 0;text-align:left;border-bottom:1px solid var(--line)}.letter-list img{width:115px;height:86px;object-fit:contain}.letter-list small,.letter-list strong,.letter-list em{display:block}.letter-list small{font:10px var(--serif);color:var(--rose)}.letter-list strong{font:19px var(--serif);font-weight:400;margin:5px 0}.letter-list em{font:10px var(--serif);font-style:normal;color:#807970}
.collection-shelf{display:grid;grid-template-columns:1fr 1fr;gap:15px}.collection-shelf button{min-height:220px;border:0;background:#eee2cecc;padding:15px;display:flex;flex-direction:column;text-align:left;transform:rotate(-1deg)}.collection-shelf button:nth-child(2){transform:rotate(1.5deg)}.collection-shelf img,.photo-blank{width:100%;height:145px;object-fit:contain;background:#d8d0c4}.collection-shelf strong{font:20px var(--serif);font-weight:400;margin-top:9px}.collection-shelf small{font:10px var(--serif);color:#7c756d}
.tide-reading{text-align:center;padding:20px 13px}.tide-reading>img{width:180px;height:115px;object-fit:contain;opacity:.68}.tide-reading>small{display:block;font:9px var(--serif);letter-spacing:.28em;color:var(--rose)}.tide-reading h2{font:300 29px/1.3 var(--serif)}.tide-reading p{font:14px/1.75 var(--serif);color:#69685f}.tide-reading button,.outward-list button{border:0;border-bottom:1px solid var(--line);background:none;padding:14px 8px;font:16px var(--serif)}.outward-list button{width:100%;text-align:left}.outward-list strong,.outward-list small{display:block}.outward-list strong{font:21px var(--serif);font-weight:400}.outward-list small{margin-top:5px;color:#7e796f;font:11px var(--serif)}
@keyframes detail-open{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}

/* final material coverage corrections */
.chat-passage{isolation:isolate;background:transparent!important;clip-path:none;min-height:72px}
.chat-passage::before{content:"";position:absolute;z-index:-1;inset:-7px -5px;background:url("./assets/ui/materials/folded-note-paper.png") center/100% 100% no-repeat;opacity:.78;filter:sepia(.14) saturate(.62) brightness(1.08);transform:rotate(-1deg)}
.chat-passage>img{margin-left:5px}.chat-passage>b{margin-right:7px}
.life-spread{height:650px}
.inward-entry{right:3%;top:398px;width:67%;height:132px;padding:30px 28px 20px;background:transparent;clip-path:none;isolation:isolate;overflow:visible;transform:rotate(-1.2deg);text-align:center}
.inward-entry::before{content:none}
.inward-entry>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.86;filter:sepia(.12) saturate(.68) brightness(1.06);transform:none}
.inward-entry span{position:relative;display:flex;min-height:78px;flex-direction:column;align-items:center;justify-content:center}.inward-entry small{font-size:8px;letter-spacing:.16em}.inward-entry strong{font-size:20px;line-height:1.15;margin:5px 0;white-space:nowrap}.inward-entry em{font-size:9px;white-space:nowrap}
.outward-entry{top:520px}
@media(max-width:390px){.inward-entry{right:2%;width:69%;padding:30px 22px 20px}.inward-entry strong{font-size:18px}.outward-entry{top:522px}}

/* Room changes should feel immediate; motion remains only inside living details. */
.view.active{animation:none}
.day-rose{animation:none}
.day-ink strong{animation:none}

/* Complete mock flows: these surfaces later bind to the family backend. */
.under.collapsed p{display:none}.under button{cursor:pointer}.room-create{display:block;margin:0 0 13px auto;border:0;border-bottom:1px solid #a66d6477;background:transparent;padding:7px 3px;color:var(--rose);font:12px var(--serif)}
.folio-panel[hidden]{display:none}.writing-paper,.list-paper{min-height:330px;padding:25px;background:#efe2cecc;clip-path:polygon(1% 1%,98% 0,100% 97%,3% 100%)}.writing-paper small{font:10px var(--serif);letter-spacing:.12em;color:var(--rose)}.writing-paper textarea{display:block;width:100%;height:220px;margin:14px 0;border:0;outline:0;resize:none;background:repeating-linear-gradient(transparent 0 31px,#89796826 31px 32px);font:16px/32px var(--serif)}.writing-paper button,.list-paper>button{border:0;background:none;border-bottom:1px solid var(--rose);padding:7px;color:var(--rose);font:13px var(--serif)}.list-paper label{display:flex;gap:10px;align-items:center;padding:14px 3px;border-bottom:1px solid var(--line);font:15px var(--serif)}.list-paper p{display:flex;align-items:center;gap:18px;padding:15px 3px;border-bottom:1px solid var(--line);font:14px var(--serif)}.list-paper p b{color:var(--rose);font-weight:400}.quick-add{display:flex;margin-top:18px;border-bottom:1px solid #806e5a55}.quick-add input{flex:1;border:0;background:none;padding:10px;outline:0;font:14px var(--serif)}.quick-add button{border:0;background:none;color:var(--rose);font-size:20px}
.paper-dialog{position:absolute;z-index:70;left:20px;right:20px;top:50%;transform:translateY(-50%) rotate(-.4deg);max-height:78%;overflow:auto;padding:36px 30px 30px;background:#f0e2cd url("./assets/ui/materials/deckled-letter-paper.png") center/100% 100% no-repeat;filter:drop-shadow(0 18px 30px #3c302733)}.paper-dialog[hidden],.house-toast[hidden]{display:none}.paper-dialog .dialog-close{position:absolute;right:18px;top:13px;border:0;background:none;font:25px var(--serif);color:#74685c}.paper-dialog>small{font:9px var(--serif);letter-spacing:.25em;color:var(--rose)}.paper-dialog h2{margin:8px 0 16px;font:300 29px var(--serif)}.paper-dialog p{font:14px/1.8 var(--serif)}.paper-dialog textarea,.paper-dialog input{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff3;padding:10px;margin:5px 0 12px;outline:0;font:15px var(--serif)}.paper-dialog textarea{min-height:150px;resize:none}.paper-dialog .dialog-action{border:0;border-bottom:1px solid var(--rose);background:none;padding:8px 2px;color:var(--rose);font:13px var(--serif)}.house-toast{position:fixed;z-index:90;left:50%;bottom:82px;transform:translateX(-50%);max-width:82%;padding:9px 15px;background:#493f37e8;color:#f7eee1;border-radius:20px;font:12px var(--serif);box-shadow:0 8px 24px #33282033}
.attachment-chip{margin:0 52px 8px;padding:9px 12px;background:#eadfceaa;font:11px var(--serif);color:#736b61}.message.pending{opacity:.72}.message.failed small{color:#a54f49}.composer textarea{max-height:96px}
.attachment-tray{position:absolute;z-index:7;left:20px;right:20px;bottom:72px;display:flex;gap:9px;padding:10px 12px;background:#efe3d1ed;clip-path:polygon(1% 4%,99% 0,100% 94%,3% 100%);filter:drop-shadow(0 8px 15px #40372f22)}.attachment-tray button{border:0;background:none}.attachment-preview{position:relative;width:78px}.attachment-preview>span{display:block;height:58px;background:#d4c8ba url("./assets/ui/collection/pressed-daisy-cluster.png") center/contain no-repeat}.attachment-preview small,.attachment-more small{display:block;font:8px var(--serif);color:#756e66;margin-top:3px}.attachment-preview i{position:absolute;right:-5px;top:-6px;width:18px;height:18px;border-radius:50%;background:#63564c;color:#fff;font:13px/18px sans-serif;font-style:normal}.attachment-more{width:63px;color:var(--rose);font-size:23px}
.folio-tabs{position:static;inset:auto;transform:none;width:auto;height:auto;grid-template-columns:none;padding:0;background:none;backdrop-filter:none;box-shadow:none;clip-path:none}.folio-tabs button,.folio-tabs button:nth-child(n){transform:none}.calendar-grid button{border:0;background:none;font:15px var(--serif);padding:9px 0}.calendar-grid .today-mark{background:var(--rose);color:#fff;border-radius:50%}.list-link{width:100%;display:flex!important;align-items:center;justify-content:space-between;border:0!important;border-bottom:1px solid var(--line)!important;background:none!important;padding:15px 3px!important;text-align:left;font:14px var(--serif)!important;color:var(--ink)!important}.list-link b{font-weight:400}.list-link small{font:10px var(--serif);color:#7d766e}.letter-list button,.collection-shelf button,.setting-row{touch-action:manipulation}
.calendar-paper header>div{text-align:center}.calendar-paper header>div span{display:block}.month-arrow{border:0;background:none;padding:8px;font:28px var(--serif);color:#776c60}.calendar-grid.full-month{grid-auto-rows:45px}.calendar-grid.full-month button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px}.calendar-grid button small{font:7px var(--serif);color:var(--rose);line-height:1}.calendar-grid button.muted{opacity:.24}.calendar-grid button.solar::after,.calendar-grid button.festival::after,.calendar-grid button.anniversary::after{content:"";position:absolute;bottom:3px;width:3px;height:3px;border-radius:50%;background:#8a745f}.calendar-grid button.festival::after,.calendar-grid button.anniversary::after{background:var(--rose)}.calendar-grid .today-mark small{color:#fff}.day-summary{width:100%;margin-top:18px;padding:13px 2px;border:0;border-top:1px solid var(--line);background:none;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;font-family:var(--serif)}.day-summary b{font-weight:400;color:var(--rose)}.day-summary span{font-size:12px}.day-summary i{font-style:normal}
.settings-room{position:absolute;z-index:55;inset:0;overflow:auto;padding:27px 24px 70px;background:#eee5d5 url("./assets/ui/backgrounds/background-settings-ledger-01.jpg") center/cover no-repeat}.settings-room[hidden],.chat-drawer[hidden]{display:none}.settings-room>header{display:flex;align-items:center;gap:10px;margin-bottom:24px}.settings-room>header button{border:0;background:none;width:42px}.settings-room>header img{width:34px}.settings-room>header small{font:9px var(--serif);letter-spacing:.24em;color:var(--rose)}.settings-room>header h1{margin:3px 0;font:300 36px var(--serif)}.settings-room article[hidden]{display:none}.status-leaf{padding:24px 25px;margin-bottom:13px;background:#ede0cbbb;clip-path:polygon(1% 4%,98% 0,100% 93%,4% 100%)}.status-leaf small{font:9px var(--serif);letter-spacing:.18em;color:var(--rose)}.status-leaf h2{margin:7px 0;font:300 28px var(--serif)}.status-leaf p{font:11px var(--serif);color:#716b63}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#66816f}
.chat-drawer{position:absolute;z-index:65;left:14px;right:14px;bottom:12px;padding:28px 24px 22px;background:#f0e4d2 url("./assets/ui/materials/folded-note-paper.png") center/100% 100% no-repeat;filter:drop-shadow(0 15px 25px #30282044)}.chat-drawer .drawer-close{position:absolute;right:18px;top:13px;border:0;background:none;font-size:24px}.chat-drawer>small{font:9px var(--serif);letter-spacing:.2em;color:var(--rose)}.chat-drawer h2{margin:5px 0 13px;font:300 28px var(--serif)}.chat-drawer>button:not(.drawer-close){width:100%;display:flex;justify-content:space-between;align-items:end;border:0;border-bottom:1px solid var(--line);background:none;padding:13px 2px;text-align:left}.chat-drawer b{font:16px var(--serif);font-weight:400}.chat-drawer span{font:10px var(--serif);color:#777168}
.calendar-heading{border:0;background:none;text-align:center}.calendar-heading strong,.calendar-heading span{display:block}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 0 18px}.year-grid button{min-height:92px;border:0;background:#eadfce99;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-.6deg);font-family:var(--serif)}.year-grid button:nth-child(2n){transform:rotate(.7deg)}.year-grid button.active{background:#dcbeb5aa}.year-grid b{font:300 28px var(--serif)}.year-grid small{font:9px var(--serif);color:#766e65}.year-grid i{margin-top:5px;font:8px var(--serif);font-style:normal;color:var(--rose)}
.sub-room{position:absolute;z-index:72;inset:0;overflow:auto;padding:26px 24px 70px;background:#eee5d5 url("./assets/ui/backgrounds/background-life-collage-01.jpg") center/cover no-repeat}.sub-room[hidden]{display:none}.sub-room>header{display:flex;align-items:center;gap:10px;margin-bottom:24px}.sub-room-back{width:43px;border:0;background:none;padding:4px}.sub-room-back img{width:36px}.sub-room>header small{font:9px var(--serif);letter-spacing:.26em;color:var(--rose)}.sub-room>header h1{margin:3px 0;font:300 38px var(--serif)}#sub-room-body{min-height:68vh;padding:25px 24px;background:#f0e3d0b8;clip-path:polygon(1% 1%,98% 0,100% 97%,3% 100%);box-shadow:0 12px 25px #51433212}#sub-room-body p{padding:13px 0;margin:0;border-bottom:1px solid var(--line);font:14px/1.75 var(--serif)}#sub-room-body input,#sub-room-body textarea{display:block;width:100%;border:0;border-bottom:1px solid #80746355;background:#fff2;padding:12px 8px;margin-bottom:14px;outline:0;font:15px var(--serif)}#sub-room-body textarea{min-height:220px;resize:none;background:repeating-linear-gradient(#fff2 0 31px,#8d7a6722 31px 32px);line-height:32px}#sub-room-body .dialog-action{border:0;border-bottom:1px solid var(--rose);background:none;padding:9px 2px;margin-top:12px;color:var(--rose);font:13px var(--serif)}
.letter-sheet{padding:12px 5px}.letter-sheet>small{font:10px var(--serif);letter-spacing:.18em;color:var(--rose)}.letter-sheet footer{text-align:right;margin-top:25px;font:12px var(--serif);color:#746c63}.archive-list button{width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:16px 3px;text-align:left}.archive-list small,.archive-list b,.archive-list span{display:block}.archive-list small{font:9px var(--serif);letter-spacing:.1em;color:var(--rose)}.archive-list b{margin:6px 0;font:400 16px/1.5 var(--serif)}.archive-list span{font:10px var(--serif);color:#7b746c}.media-mosaic{display:grid;grid-template-columns:1.08fr .92fr;gap:12px}.media-mosaic button{border:0;background:#e7d8c2aa;padding:9px;text-align:left;transform:rotate(-1deg)}.media-mosaic button:nth-child(2n){transform:rotate(1deg)}.media-mosaic span,.media-mosaic img{display:block;width:100%;height:145px;object-fit:contain;background:#d8cfc2}.media-mosaic b,.media-mosaic small{display:block}.media-mosaic b{margin-top:8px;font:16px var(--serif);font-weight:400}.media-mosaic small{font:9px var(--serif);color:#746e66}.tide-map{padding:9px 0 18px}.tide-map span{display:grid;grid-template-columns:45px 1fr 65px;align-items:center;gap:9px;margin:17px 0}.tide-map b,.tide-map small{font:11px var(--serif);font-weight:400}.tide-map small{text-align:right;color:#766f67}.tide-map i{height:2px;background:linear-gradient(90deg,var(--rose) var(--t),#806f6022 var(--t));position:relative}.tide-map i::after{content:"";position:absolute;left:var(--t);top:50%;width:7px;height:7px;border:1px solid var(--rose);border-radius:50%;transform:translate(-50%,-50%);background:#eee3d2}.search-filters{display:flex;gap:8px;margin:12px 0}.search-filters button{border:1px solid #806f6033;background:none;padding:6px 10px;border-radius:20px;font:10px var(--serif)}.empty-archive{padding:45px 10px;text-align:center;color:#817970;font:12px/1.7 var(--serif)}
.jump-latest{position:fixed;z-index:7;right:max(18px,calc((100vw - 460px)/2 + 18px));bottom:68px;border:0;background:#f0e5d7e8;padding:7px 11px;border-radius:18px;box-shadow:0 5px 18px #453b3230;color:#5e5a53}.jump-latest[hidden],.reply-preview[hidden],.message-actions[hidden]{display:none}.jump-latest b{font:10px var(--serif);font-weight:400}.jump-latest i{margin-left:5px;font:8px var(--serif);font-style:normal;color:var(--rose)}.reply-preview{position:fixed;z-index:9;left:50%;bottom:58px;transform:translateX(-50%);width:min(calc(100% - 28px),442px);display:flex;justify-content:space-between;align-items:center;padding:9px 14px;background:#e8dccced;border-left:2px solid var(--rose)}.reply-preview small,.reply-preview b{display:block}.reply-preview small{font:8px var(--serif);color:var(--rose)}.reply-preview b{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:10px var(--serif);font-weight:400}.reply-preview button{border:0;background:none;font-size:18px}.message-actions{position:absolute;z-index:76;left:18px;right:18px;bottom:12px;padding:27px 25px 22px;background:#efe1cddd;clip-path:polygon(1% 4%,99% 0,100% 95%,3% 100%);filter:drop-shadow(0 15px 25px #30282044)}.message-actions small{font:8px var(--serif);letter-spacing:.2em;color:var(--rose)}.message-actions h2{margin:5px 0 12px;font:300 27px var(--serif)}.message-actions button{width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:11px 2px;text-align:left;font:14px var(--serif)}.message-actions .danger{color:#a5544b}.attachment-preview>span{background-size:cover;background-position:center;background-repeat:no-repeat}.days-overview>section{padding:24px;background:#eadbc6bb;clip-path:polygon(1% 3%,98% 0,100% 94%,4% 100%)}.days-overview>section small{font:9px var(--serif);letter-spacing:.2em;color:var(--rose)}.days-overview h2{margin:7px 0;font:300 29px var(--serif)}.days-overview p{font:11px var(--serif);color:#716c64}.days-overview>div button{width:100%;display:grid;grid-template-columns:70px 1fr auto;gap:8px;border:0;border-bottom:1px solid var(--line);background:none;padding:15px 4px;text-align:left}.days-overview button b{font:16px var(--serif);font-weight:400}.days-overview button span{font:10px var(--serif);color:#777168}.days-overview button i{font-style:normal}.mail-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:13px}.mail-overview div{padding:12px;background:#eadcc7aa;text-align:center}.mail-overview small,.mail-overview b{display:block}.mail-overview small{font:8px var(--serif);color:#7a736a}.mail-overview b{font:300 25px var(--serif);color:var(--rose)}.mail-tabs{position:static;transform:none;width:auto;height:auto;display:flex;gap:14px;padding:0;margin-bottom:14px;background:none;box-shadow:none;clip-path:none}.mail-tabs button{border:0;background:none;padding:6px 0;font:11px var(--serif)}.mail-tabs .active{color:var(--rose);border-bottom:1px solid var(--rose)}
.control-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 3px;border-bottom:1px solid var(--line)}.control-row span,.control-row b,.control-row small{display:block}.control-row b{font:400 15px var(--serif)}.control-row small{margin-top:4px;font:9px/1.4 var(--serif);color:#777168}.control-row input[type="checkbox"]{appearance:none;width:37px!important;height:21px;margin:0!important;padding:0!important;border:1px solid #8c7c6b55!important;border-radius:13px;background:#cfc5b8!important;position:relative;flex:none}.control-row input[type="checkbox"]::after{content:"";position:absolute;width:15px;height:15px;left:2px;top:2px;border-radius:50%;background:#f7efe3;transition:.2s}.control-row input:checked{background:var(--sage)!important}.control-row input:checked::after{left:18px}.control-group{position:relative;padding:17px 3px;border-bottom:1px solid var(--line)}.control-group>small{display:block;margin-bottom:12px;font:10px var(--serif);letter-spacing:.08em;color:#766e65}.control-group input[type="range"]{width:calc(100% - 45px)!important;margin:0!important;padding:0!important;border:0!important;accent-color:var(--rose)}.control-group output{margin-left:8px;font:10px var(--serif);color:var(--rose)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.segmented button{border:1px solid #826f5d33;background:#fff2;padding:8px;font:10px var(--serif)}.segmented .active{background:#d9c0b7aa;color:#8c514b}.range-ends{display:flex;justify-content:space-between;margin-top:6px;font:8px var(--serif);color:#817a72}.time-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.time-pair label{padding:14px;background:#e8d9c3aa}.time-pair small{display:block;font:9px var(--serif);color:#7d746b}.time-pair input{margin:6px 0 0!important;padding:5px!important}.wide-action{width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:15px 3px;text-align:left;font:14px var(--serif)}.wide-action::after{content:"›";float:right;color:#85786b}.wide-action.danger{color:#a25750}
.message{position:relative}.message-more{align-self:center;border:0;background:none;padding:8px 3px;color:#8b8176;font:10px var(--serif);letter-spacing:-.12em;opacity:.6}.message.mine .message-more{order:3}.attachment-source{position:absolute;z-index:77;left:18px;right:18px;bottom:12px;padding:28px 24px 22px;background:#efe1cddd;clip-path:polygon(1% 4%,99% 0,100% 95%,3% 100%);filter:drop-shadow(0 15px 25px #30282044)}.attachment-source[hidden]{display:none}.attachment-source>small{font:8px var(--serif);letter-spacing:.2em;color:var(--rose)}.attachment-source h2{margin:5px 0 12px;font:300 27px var(--serif)}.attachment-source button{width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:14px 2px;text-align:left}.attachment-source b,.attachment-source span{display:block}.attachment-source b{font:15px var(--serif);font-weight:400}.attachment-source span{margin-top:4px;font:9px var(--serif);color:#797269}
/* Private first-device door */
.home-login{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:rgba(62,42,38,.38);backdrop-filter:blur(16px)}.home-login[hidden]{display:none}.home-login form{width:min(100%,390px);box-sizing:border-box;padding:38px 30px 32px;background:#f3e9d9 url("./assets/ui/materials/folded-note-paper.png") center/cover;border-radius:46% 46% 22px 22px/18% 18% 22px 22px;box-shadow:0 24px 70px rgba(52,30,28,.3);color:#513d38}.home-login small{letter-spacing:.2em;color:#9c5965}.home-login h1{margin:10px 0;font-family:"Cormorant Garamond",serif;font-size:2.2rem}.home-login p{line-height:1.7;font-size:.9rem}.home-login input{box-sizing:border-box;width:100%;margin:7px 0;padding:14px 16px;border:0;border-bottom:1px solid rgba(112,72,70,.35);background:rgba(255,252,244,.58);color:inherit;outline:none}.home-login button{width:100%;margin-top:18px;padding:14px;border:0;border-radius:999px;background:#9b5967;color:#fff;letter-spacing:.12em}.home-login em{display:block;margin-top:12px;color:#9b3f4c;font-style:normal;text-align:center}
/* Keep multi-line outgoing text in normal reading order. */
.message.mine>div{display:flex;min-width:0;max-width:100%;flex-direction:column;align-items:flex-end}.message.mine p{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}.message.his p{white-space:pre-wrap;overflow-wrap:anywhere}
