/* v240: proportions sampled from the approved 852 × 1846 design.
   Artwork supplies lace only; every label, control, message and photo stays live. */
html[data-ui-skin=sanctuary]{--san-paper:#f9f8f5;--san-pane:#fffefc;--san-ink:#222223;--san-muted:#85848a;--san-line:#d5d1cb;--san-user:#fffefc;--lace-red:#790d20;--lace-frame:url('./assets/lace-frame-v240.webp');--lace-bow:url('./assets/lace-bow.webp');--lace-cross:url('./assets/lace-burgundy-cross.svg');--lace-heart:url('./assets/lace-heart.svg');--lace-spark:url('./assets/lace-spark.svg')}
html[data-ui-skin=sanctuary][data-theme=dark]{--san-paper:#211e20;--san-pane:#2a2729;--san-ink:#f3efed;--san-muted:#c4bec0;--san-line:#665b60;--san-user:#2a2729;--lace-red:#e09ca7}
/* The rails expose the rosary crosses, rather than clipping their center line. */
html[data-ui-skin=sanctuary] .sanctuary-scene::before{background:radial-gradient(ellipse at 50% 30%,#fff9,transparent 60%),radial-gradient(#7c756518 .45px,transparent .6px);background-size:auto,4px 5px;opacity:.45}
html[data-ui-skin=sanctuary] :is(.sanctuary-vault,.sanctuary-wall,.sanctuary-altar,.sanctuary-watermark){display:none!important}
html[data-ui-skin=sanctuary] :is(.lace-canopy,.lace-hem,.lace-rail-left,.lace-rail-right){position:absolute;pointer-events:none;display:block}
html[data-ui-skin=sanctuary] .lace-canopy{inset:0 0 auto;height:180px;background:url('./assets/lace-canopy.webp') top center/100% auto no-repeat}
html[data-ui-skin=sanctuary] .lace-hem{left:0;right:0;bottom:0;height:165px;transform:scaleY(-1);background:url('./assets/lace-canopy.webp') top center/100% auto no-repeat;opacity:.85}
html[data-ui-skin=sanctuary] :is(.lace-rail-left,.lace-rail-right){top:98px;bottom:0;width:25px;background:url('./assets/lace-side.webp') -5px top/145px 435px repeat-y;opacity:.95}
html[data-ui-skin=sanctuary] .lace-rail-left{left:0}html[data-ui-skin=sanctuary] .lace-rail-right{right:0;transform:scaleX(-1)}
/* The source has a 100px open-eyelet band, not a dense 150px floral band. */
html[data-ui-skin=sanctuary] #appShell .lace-frame{position:relative;isolation:isolate}
html[data-ui-skin=sanctuary] #appShell .lace-frame::before{content:''!important;display:block!important;position:absolute!important;inset:-5px!important;width:auto!important;height:auto!important;z-index:2!important;border:14px solid transparent!important;border-image:var(--lace-frame) 100 / 14px / 0 round!important;border-radius:0!important;background:none!important;opacity:1!important;transform:none!important;mix-blend-mode:normal!important;pointer-events:none!important}
html[data-ui-skin=sanctuary] #appShell .lace-frame::after{content:''!important;display:block!important;position:absolute!important;inset:-12px -8px -2px -5px!important;width:auto!important;height:auto!important;z-index:3!important;border:0!important;background:var(--lace-bow) right top/48px 48px no-repeat,var(--lace-cross) right 5px bottom 12px/8px 14px no-repeat,var(--lace-heart) left 9px bottom 7px/7px 7px no-repeat!important;transform:none!important;opacity:1!important;mix-blend-mode:normal!important;pointer-events:none!important}
html[data-ui-skin=sanctuary] #appShell #homeOverview .lace-frame{border:0!important;box-shadow:0 3px 7px #574b3e12!important;background:var(--san-pane)!important;border-radius:12px!important;overflow:visible!important}
/* Home: 59px safe area + 174/150/164/126px rows on a 393×852 viewport. */
html[data-ui-skin=sanctuary][data-app-layout=compact] body:not([data-home-view=calendar]):not([data-home-view=moments]) #homePage{padding:var(--san-safe-top) 34px calc(103px + var(--san-safe-bottom))!important;background:transparent!important;overflow:hidden!important}
html[data-ui-skin=sanctuary] #homeOverview{height:100%;min-height:0;max-width:530px;grid-template-rows:minmax(155px,1fr) 150px 164px 126px!important;gap:14px}
html[data-ui-skin=sanctuary] #homeOverview>.mo-hero{position:relative;padding:0 0 24px!important;justify-content:flex-end}
html[data-ui-skin=sanctuary] .mo-hero .sanctuary-crest{top:-3px;bottom:19px;left:0;right:0;filter:none}
html[data-ui-skin=sanctuary] .sanctuary-crest img{mix-blend-mode:normal;object-fit:contain}
html[data-ui-skin=sanctuary] #homePage .mo-hero h1{font-size:32px!important;line-height:1.05!important}
html[data-ui-skin=sanctuary] #homePage .mo-hero p{font-size:10px!important;letter-spacing:3px;margin-top:4px!important}
html[data-ui-skin=sanctuary] .sanctuary-settings{right:-14px;top:17px;width:33px;height:33px;border-color:#bcb9b3;background:#fff9}
.lace-divider{display:none}
html[data-ui-skin=sanctuary] .lace-divider{display:flex;align-items:center;justify-content:center;position:absolute;bottom:0;left:20%;right:20%;height:17px;gap:9px;pointer-events:none}
html[data-ui-skin=sanctuary] .lace-divider::before,html[data-ui-skin=sanctuary] .lace-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,#a7a39d 25%,#a7a39d 80%,transparent)}
html[data-ui-skin=sanctuary] .lace-divider>i{width:9px;height:17px;background:var(--lace-cross) center/contain no-repeat;display:block}
html[data-ui-skin=sanctuary] .sanctuary-couple-card{display:grid;padding:11px 25px 28px;grid-template-columns:1fr 38px 1fr}
html[data-ui-skin=sanctuary] .sanctuary-person{gap:2px;font:12px/1.3 Georgia,serif}
html[data-ui-skin=sanctuary] #appShell .sanctuary-person-avatar{background:url('./assets/lace-medallion.webp') center/contain no-repeat!important;border:0!important;outline:0;box-shadow:none;width:84px;height:84px;font:37px/1 Georgia,serif;padding-bottom:8px}
html[data-ui-skin=sanctuary] #appShell .sanctuary-person-avatar::before,html[data-ui-skin=sanctuary] #appShell .sanctuary-person-avatar::after{display:none}
html[data-ui-skin=sanctuary] .sanctuary-heart{position:relative;color:var(--lace-red);font-size:20px}
html[data-ui-skin=sanctuary] .sanctuary-heart::before,html[data-ui-skin=sanctuary] .sanctuary-heart::after{content:'';display:block;position:absolute;top:7px;width:12px;height:12px;background:var(--lace-spark) center/contain no-repeat;opacity:.8}
html[data-ui-skin=sanctuary] .sanctuary-heart::before{left:-10px}html[data-ui-skin=sanctuary] .sanctuary-heart::after{right:-10px;margin:0}
html[data-ui-skin=sanctuary] .sanctuary-couple-corner{display:none}
html[data-ui-skin=sanctuary] .sanctuary-together{display:flex;align-items:center;justify-content:center;gap:8px;left:17px;right:17px;bottom:9px;font:9px/1.4 Georgia,serif;letter-spacing:.8px}
html[data-ui-skin=sanctuary] .sanctuary-together::before,html[data-ui-skin=sanctuary] .sanctuary-together::after{content:'';flex:1;height:1px;background:#d9d5cf;margin:0}
html[data-ui-skin=sanctuary] .sanctuary-together strong{font-weight:400}
html[data-ui-skin=sanctuary] #appShell .sanctuary-couple-card::after{inset:-17px -11px -11px!important;background:var(--lace-bow) left top/52px 52px no-repeat,var(--lace-bow) right top/52px 52px no-repeat,var(--lace-bow) left bottom/46px 46px no-repeat,var(--lace-bow) right bottom/46px 46px no-repeat,var(--lace-cross) left 11px top 42px/8px 14px no-repeat,var(--lace-cross) right 11px top 42px/8px 14px no-repeat,var(--lace-cross) left 11px bottom 40px/8px 14px no-repeat,var(--lace-cross) right 11px bottom 40px/8px 14px no-repeat!important}
html[data-ui-skin=sanctuary] .sanctuary-date-card{padding:13px 17px 9px}
html[data-ui-skin=sanctuary] .sanctuary-date-head{gap:13px;min-height:45px}
html[data-ui-skin=sanctuary] .sanctuary-date-number{font-size:55px;min-width:66px;letter-spacing:-2px}
html[data-ui-skin=sanctuary] .sanctuary-date-heading{gap:5px;padding-left:12px}
html[data-ui-skin=sanctuary] .sanctuary-date-heading strong{font:12px/1.3 inherit;letter-spacing:0}
html[data-ui-skin=sanctuary] .sanctuary-date-heading small{font-size:12px;letter-spacing:1.5px}
html[data-ui-skin=sanctuary] .sanctuary-week{padding:5px 0 6px}
html[data-ui-skin=sanctuary] .sanctuary-week-day{font-size:12px;min-height:42px;gap:3px}
html[data-ui-skin=sanctuary] .sanctuary-week-day>span{width:25px;height:25px}
html[data-ui-skin=sanctuary] .sanctuary-date-foot{border-top:1px dashed #d5d1cb;padding-top:7px;gap:7px;font-family:inherit;font-size:9px;letter-spacing:.2px}
html[data-ui-skin=sanctuary] .sanctuary-date-foot button{width:25px;height:25px;flex:none;border-color:#bab6b0}
html[data-ui-skin=sanctuary][data-app-layout=compact] body #homePage #homeOverview .mo-home-cards{gap:14px!important}
html[data-ui-skin=sanctuary] #appShell #homeOverview .mo-feature{padding:9px 16px!important}
html[data-ui-skin=sanctuary] .sanctuary-feature-copy{grid-template-columns:23px 1fr;gap:3px 8px}
html[data-ui-skin=sanctuary] .sanctuary-feature-copy strong{font-size:13px;font-weight:400;white-space:nowrap}
html[data-ui-skin=sanctuary] .sanctuary-feature-copy small{grid-column:2;font-family:inherit;font-size:8px;letter-spacing:0;white-space:nowrap}
html[data-ui-skin=sanctuary] .sanctuary-feature-copy>svg{width:20px;height:20px;grid-row:1/3;align-self:start}
/* Header: the old-conversation label is visible and all controls stay native. */
html[data-ui-skin=sanctuary] #appShell .floating-header .sanctuary-header-emblem{display:none}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) .floating-header{height:calc(var(--san-safe-top) + 65px)!important;padding:var(--san-safe-top) 25px 12px!important;background:var(--san-paper) url('./assets/lace-canopy.webp') top center/100% auto no-repeat!important;border:0}
html[data-ui-skin=sanctuary] .floating-header .name-pill{justify-content:center;gap:9px}
html[data-ui-skin=sanctuary] .name-pill strong{font:400 20px/1.2 Georgia,'Songti SC',serif!important}
html[data-ui-skin=sanctuary] #appShell .floating-header .drawer-recent-button{width:60px!important;min-width:60px!important;padding:0!important;justify-content:flex-start;gap:4px}
html[data-ui-skin=sanctuary] .drawer-recent-button .sanctuary-header-action-icon{width:15px;height:20px}
html[data-ui-skin=sanctuary] .sanctuary-session-label{font-size:13px}
html[data-ui-skin=sanctuary] #appShell .floating-header :is(.drawer-new-chat,#settingsButton){border:1px solid #bcb9b3!important;border-radius:50%!important;width:29px!important;min-width:29px!important;height:29px!important;min-height:29px!important;padding:5px!important;background:#fff8!important}
html[data-ui-skin=sanctuary] .header-actions{gap:7px}
html[data-ui-skin=sanctuary] .floating-header .lace-divider{bottom:0;left:23%;right:23%}
html[data-ui-skin=sanctuary] .sanctuary-header-avatar{width:35px;height:39px;position:relative}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=monogram] #appShell .sanctuary-header-avatar,html[data-ui-skin=sanctuary][data-lace-avatar-mode=monogram] body[data-page=chat] #appShell #messages.messages .message::before{background:url('./assets/lace-medallion.webp') center/contain no-repeat!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#fff!important;font:italic 18px/1 Georgia,serif!important;padding-bottom:4px;box-sizing:border-box}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=monogram] #appShell .sanctuary-header-avatar::after{display:none}
/* Tail-free bubbles use open-eyelet lace, a satin corner bow and tiny red stitches. */
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #chat{top:calc(var(--san-safe-top) + 65px)!important;padding-top:9px!important;scroll-padding-top:9px!important}
html[data-ui-skin=sanctuary] #messages{padding:0 34px!important;gap:12px}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message{margin-left:0!important;max-width:min(88%,650px)!important;gap:7px}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message.human{margin-left:0!important;margin-right:0!important}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message::before{position:static!important;inset:auto!important;order:0;margin:0!important;width:34px!important;height:38px!important;font-size:21px}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message.human::before{left:auto!important;right:auto!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame{padding:11px 14px!important;border:0!important;border-radius:12px!important;background:var(--san-pane)!important;box-shadow:0 2px 6px #574b3e0c!important;overflow:visible!important;font-size:var(--message-font-size,15px)!important;line-height:1.55!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame::before{content:''!important;display:block!important;position:absolute!important;inset:-4px!important;border:11px solid transparent!important;border-image:var(--lace-frame) 100 / 11px / 0 round!important;background:none!important;z-index:2;pointer-events:none}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame::after{content:''!important;display:block!important;position:absolute!important;inset:-12px -6px -1px -7px!important;width:auto!important;height:auto!important;background:var(--lace-bow) left top/37px 37px no-repeat,var(--lace-cross) left 4px bottom 6px/7px 12px no-repeat,var(--lace-heart) right 8px bottom 6px/6px 6px no-repeat!important;z-index:3;pointer-events:none}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message.human .bubble.lace-frame::after{left:-6px!important;right:-7px!important;background:var(--lace-bow) right top/37px 37px no-repeat,var(--lace-cross) right 4px bottom 6px/7px 12px no-repeat,var(--lace-heart) left 8px bottom 6px/6px 6px no-repeat!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame:is(.question-bubble,.letter-bubble,.music-bubble,.sticker-bubble){overflow:hidden!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .photo-bubble.lace-frame{padding:8px!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .message-photo{max-width:min(240px,64vw,100%)!important;max-height:320px!important;border-radius:4px}
html[data-ui-skin=sanctuary] #appShell #messages .chat-date-separator{font:10px/1.5 inherit;letter-spacing:.6px;display:flex;gap:9px;align-items:center;justify-content:center;align-self:stretch;margin:8px 0 16px;border:0!important;min-height:22px!important}
html[data-ui-skin=sanctuary] #appShell #messages .chat-date-separator::before,html[data-ui-skin=sanctuary] #appShell #messages .chat-date-separator::after{content:'';flex:1;border-top:1px dashed #ccc8c1}
html[data-ui-skin=sanctuary] .message .meta{font-size:8px!important;gap:5px;padding-top:4px!important;letter-spacing:.15px}
html[data-ui-skin=sanctuary] .message-cache-meta{font-size:8px;opacity:.8}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #composerZone{transform:translate(calc(-50% + var(--visual-viewport-x,0px)),calc(-1 * var(--keyboard-lift,0px)))}
html[data-ui-skin=sanctuary] #composer{min-height:47px;padding:6px 8px!important;background:var(--san-pane)!important}
html[data-ui-skin=sanctuary] #appShell #composer #messageInput{border:1px solid #c9c5be!important;border-radius:22px!important;min-height:34px!important;padding:7px 13px!important;font-size:13px!important}
html[data-ui-skin=sanctuary] .sanctuary-compose-more{border:1px solid #bcb9b3;width:29px;height:29px;margin:3px 3px 3px 0;padding:4px}
html[data-ui-skin=sanctuary] #composer .send-button{font-size:0!important}
html[data-ui-skin=sanctuary] #composer .send-button svg{width:21px;height:21px}
html[data-ui-skin=sanctuary] #tabBar .tab.active:not(#tabSettings) .sanctuary-tab-icon{fill:currentColor;stroke:currentColor}
/* Album frames match the reference's two-column, near-square photographs. */
html[data-ui-skin=sanctuary] #appShell #albumPage{background:transparent!important;padding:calc(0px + var(--san-safe-top)) 34px calc(110px + var(--san-safe-bottom))!important;overflow-y:auto!important}
html[data-ui-skin=sanctuary] #albumPage .album-head{grid-template-columns:32px 1fr 32px;min-height:63px;margin-bottom:5px;position:relative;padding-bottom:13px}
html[data-ui-skin=sanctuary] #appShell #albumPage .album-head h2{font-family:Georgia,'Songti SC','SimSun',serif!important;font-weight:400;font-size:23px;letter-spacing:4px;margin:0}
html[data-ui-skin=sanctuary] #albumPage .album-heading p{font-size:9px;letter-spacing:3px;margin-top:4px}
html[data-ui-skin=sanctuary] #albumPage .album-head .lace-divider{left:22%;right:22%;bottom:-2px}
html[data-ui-skin=sanctuary] #albumPage .album-icon-button{width:29px;height:29px;min-height:29px;padding:6px;background:#fff8;border:1px solid #bcb9b3;border-radius:50%}
html[data-ui-skin=sanctuary] #albumPage .album-icon-button:first-child{border:0;background:none}
html[data-ui-skin=sanctuary] #albumPage .album-segment{display:none}
.album-filters{display:none}
html[data-ui-skin=sanctuary] #albumPage .album-filters{display:flex;justify-content:center;gap:10px;margin:9px 0 16px}
html[data-ui-skin=sanctuary] .album-filters button{font-family:inherit;font-size:10px;line-height:1.4;min-height:23px;border:1px solid #c9c5c0;border-radius:18px;background:var(--san-pane);color:var(--san-muted);padding:3px 15px}
html[data-ui-skin=sanctuary] .album-filters button[aria-pressed=true]{color:var(--san-paper);background:var(--san-ink);box-shadow:0 0 0 1px var(--san-paper),0 0 0 2px #88847f}
html[data-ui-skin=sanctuary] #albumPage .album-feed{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px!important;padding:0!important;border:0;background:none;margin-top:0}
html[data-ui-skin=sanctuary] #albumPage .album-period{grid-column:1/-1;margin:0 0 1px;display:flex;align-items:center;gap:12px;font:14px/1.4 Georgia,serif;letter-spacing:1.5px;color:var(--san-ink)}
html[data-ui-skin=sanctuary] #albumPage .album-period::after{content:'';flex:1;border-top:1px dashed #c9c5be}
html[data-ui-skin=sanctuary] #albumPage .album-entry{display:block!important;margin:0!important;padding:0!important;min-width:0;border:0}
html[data-ui-skin=sanctuary] #albumPage :is(.album-entry::before,.album-date){display:none!important}
html[data-ui-skin=sanctuary] #albumPage .album-card{display:block;width:100%;position:relative;padding:6px!important;border-radius:10px!important;overflow:visible!important;border:0!important;text-align:center;background:var(--san-pane)!important;box-shadow:0 3px 6px #574b3e12!important}
html[data-ui-skin=sanctuary] #albumPage .album-card::before{border-width:12px!important;border-image-width:12px!important;inset:-4px!important}
html[data-ui-skin=sanctuary] #albumPage .album-card::after{inset:-16px -5px -2px!important;background:var(--lace-bow) left top/57px 57px no-repeat,var(--lace-heart) right 10px bottom 12px/7px 7px no-repeat,url('./assets/sanctuary-cross.svg') left 9px bottom 11px/7px 14px no-repeat!important}
html[data-ui-skin=sanctuary] #albumPage .album-entry:nth-of-type(even) .album-card::after{background:var(--lace-bow) right top/57px 57px no-repeat,var(--lace-heart) right 10px bottom 12px/7px 7px no-repeat,url('./assets/sanctuary-cross.svg') left 9px bottom 11px/7px 14px no-repeat!important}
html[data-ui-skin=sanctuary] #albumPage .album-media{aspect-ratio:1!important;border-radius:3px;overflow:hidden;background:#efeeeb}
html[data-ui-skin=sanctuary] #albumPage .album-copy{display:block!important;padding:7px 9px 3px!important}
html[data-ui-skin=sanctuary] #albumPage .album-card-title{font-size:10px;line-height:1.4;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
html[data-ui-skin=sanctuary] #albumPage :is(.album-facts,.album-comment,.album-item-status){display:none}
.album-card-timestamp{display:block;font-size:10px;color:var(--san-muted,#777);margin-top:6px;line-height:1.5;font-variant-numeric:tabular-nums}
html[data-ui-skin=sanctuary] #albumPage .album-card-timestamp{font-family:inherit;font-size:8px;letter-spacing:-.1px;white-space:normal;margin-top:3px}
html[data-ui-skin=sanctuary] .album-detail{border:12px solid transparent;border-image:var(--lace-frame) 100 / 12px round;padding:15px;max-height:88dvh;background:var(--san-pane)!important}
html[data-ui-skin=sanctuary] .album-detail-head{font-size:11px;gap:9px;align-items:center}
html[data-ui-skin=sanctuary] .lace-avatar-setting{display:grid;gap:8px;margin-block:12px}
@media(max-height:740px){html[data-ui-skin=sanctuary] #homeOverview{grid-template-rows:minmax(120px,1fr) 132px 160px 122px!important;gap:13px}html[data-ui-skin=sanctuary] #appShell .sanctuary-person-avatar{width:69px;height:69px;font-size:32px;padding-bottom:6px}html[data-ui-skin=sanctuary] .sanctuary-couple-card{padding:9px 22px 25px}html[data-ui-skin=sanctuary] #homePage .mo-hero h1{font-size:30px!important}}
@media(max-height:700px),(max-width:340px){html[data-ui-skin=sanctuary][data-app-layout=compact] body:not([data-home-view=calendar]):not([data-home-view=moments]) #homePage{overflow-y:auto!important}html[data-ui-skin=sanctuary] #homeOverview{height:auto;min-height:573px;grid-template-rows:130px 132px 160px 122px!important;gap:13px}html[data-ui-skin=sanctuary] #messages{padding-inline:27px!important}html[data-ui-skin=sanctuary] #appShell #albumPage{padding-inline:27px!important}html[data-ui-skin=sanctuary] .name-pill strong{font-size:17px!important}html[data-ui-skin=sanctuary] .floating-header .name-pill{gap:6px}html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) .floating-header{padding-inline:16px!important}}
@media(min-width:600px){html[data-ui-skin=sanctuary] #albumPage .album-media{aspect-ratio:4/3!important}html[data-ui-skin=sanctuary] #albumPage .album-card-title{font-size:13px}html[data-ui-skin=sanctuary] #albumPage .album-card-timestamp{font-size:11px}}
@media(prefers-reduced-motion:reduce){html[data-ui-skin=sanctuary] *{scroll-behavior:auto!important}}
/* Final comparison adjustments: crest clears the title; ruby stitches retain red. */
html[data-ui-skin=sanctuary] #homeOverview>.mo-hero{padding-bottom:10px!important}
html[data-ui-skin=sanctuary] .mo-hero .sanctuary-crest{top:-12px;bottom:47px}
html[data-ui-skin=sanctuary] .mo-hero>.lace-divider{bottom:-10px}
html[data-ui-skin=sanctuary] .sanctuary-date-heading strong{font-family:inherit;font-size:12px;line-height:1.3}
html[data-ui-skin=sanctuary] #appShell #messages .chat-date-separator{font-family:inherit;font-size:10px;line-height:1.5;align-self:stretch!important;width:100%!important;text-align:center;justify-content:center!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame::before,html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame::after{filter:none!important}
html[data-ui-skin=sanctuary] #appShell .floating-header :is(.drawer-new-chat,#settingsButton){display:grid!important;place-items:center!important;line-height:0!important;font-size:0!important}
html[data-ui-skin=sanctuary] #appShell .floating-header :is(.drawer-new-chat,#settingsButton)>svg{display:block!important;position:static!important;inset:auto!important;width:19px!important;height:19px!important;margin:0!important;transform:none!important}
html[data-ui-skin=sanctuary] #albumPage .album-icon svg{width:19px;height:19px}
html[data-ui-skin=sanctuary] #tabBar .tab.active:not(#tabChat) .sanctuary-tab-icon{fill:none;stroke-width:2}
html[data-ui-skin=sanctuary] .sanctuary-scene::before{background:radial-gradient(ellipse at 50% 30%,#fffa,transparent 60%);opacity:.5}
html[data-ui-skin=sanctuary] .sanctuary-scene::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.5;background:var(--lace-spark) 13% 15%/7px 12px no-repeat,var(--lace-spark) 83% 16%/7px 12px no-repeat,var(--lace-spark) 50% 28%/6px 10px no-repeat,var(--lace-spark) 10% 40%/7px 12px no-repeat,var(--lace-spark) 90% 57%/7px 12px no-repeat,var(--lace-spark) 16% 70%/7px 12px no-repeat,var(--lace-spark) 50% 63%/5px 8px no-repeat,var(--lace-spark) 85% 77%/7px 12px no-repeat}
/* The microphone shares the input's inner capsule, matching the reference. */
html[data-ui-skin=sanctuary] #composer .composer-tools{gap:0!important}
html[data-ui-skin=sanctuary] #appShell #composer #messageInput{border-right:0!important;border-radius:22px 0 0 22px!important}
html[data-ui-skin=sanctuary] #composer #voiceButton{align-self:stretch;border:1px solid #c9c5be!important;border-left:0!important;border-radius:0 22px 22px 0!important;height:auto!important;min-height:34px!important;width:32px!important}
html[data-ui-skin=sanctuary] .sanctuary-compose-more{margin-right:7px}
html[data-ui-skin=sanctuary] #composer .send-button{margin-left:7px!important}

/* Respect the saved font size and photos; decorative monograms are opt-in. */
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message{margin-left:0!important;max-width:min(88%,650px)!important}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message.human{margin-left:0!important;margin-right:0!important}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message::before{left:auto!important;width:42px!important;height:42px!important}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message.human::before{left:auto!important;right:auto!important}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos] body[data-page=chat] #appShell #messages.messages .message::before{border-radius:50%!important;padding:0!important;box-shadow:0 0 0 2px var(--san-paper)!important}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos] #appShell .sanctuary-header-avatar{width:40px;height:40px;flex:none;border-radius:50%;padding:0}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos] #appShell .sanctuary-header-avatar::after{display:none}

/* Chat runs stack avatar → Thinking/tools → bubble → final timestamp. */
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message.ai::before{transform:translateX(-6px)!important}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble){padding:7px 11px!important}
html[data-ui-skin=sanctuary] body[data-page=chat] #appShell #messages.messages .message .message-leading{order:1;align-self:inherit;margin:1px 0 3px!important;max-width:100%}

/* Approved vintage chat bubbles: feathered gray haze and four black corner motifs. */
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble){
 --vintage-haze:#89898980;
 padding:7px 12px!important;min-width:0!important;min-height:0!important;box-sizing:border-box;
 font-size:clamp(11px,calc(var(--message-font-size,15px) - 1px),23px)!important;line-height:1.4!important;
 border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
 color:#171717!important;isolation:isolate;overflow:visible!important;
}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble)::before{
 content:''!important;inset:-2px -3px!important;border:0!important;border-image:none!important;border-radius:0!important;
 background:linear-gradient(90deg,transparent,var(--vintage-haze) 16%,var(--vintage-haze) 84%,transparent)!important;
 -webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);
 filter:blur(5px)!important;z-index:-1!important;pointer-events:none!important;
}
html[data-ui-skin=sanctuary] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble)::after{
 content:''!important;inset:-2px -2px!important;border:0!important;border-image:none!important;border-radius:0!important;
 /* Saved chat skins can leave a tiny tail mask on this full-size ornament layer. */
 clip-path:none!important;-webkit-clip-path:none!important;mask:none!important;-webkit-mask:none!important;
 background:url('./assets/vintage-corner-tl.svg') left top/22px 15px no-repeat,url('./assets/vintage-corner-tr.svg') right top/16px 14px no-repeat,url('./assets/vintage-corner-bl.svg') left bottom/16px 14px no-repeat,url('./assets/vintage-corner-br.svg') right bottom/22px 15px no-repeat!important;
 filter:none!important;z-index:1!important;pointer-events:none!important;
}
html[data-ui-skin=sanctuary][data-theme=dark] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble){--vintage-haze:#b7b3b055;color:var(--san-ink)!important}
html[data-ui-skin=sanctuary][data-theme=dark] #appShell #messages.messages .message .bubble.lace-frame:not(.photo-bubble,.voice-bubble,.letter-bubble,.music-bubble,.question-bubble,.sticker-bubble)::after{filter:invert(1)!important}

/* Keep chat tools visible and use the bottom edge once the chat dock is removed. */
html[data-ui-skin=sanctuary] body[data-page=chat] #tabBar{display:none!important}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #composerZone{bottom:calc(6px + var(--san-safe-bottom))!important}
html[data-ui-skin=sanctuary] #composer :is(#stickerButton,#recordButton){display:grid!important;place-items:center;width:32px!important;min-width:32px!important;height:36px!important;padding:5px!important;flex:none}
html[data-ui-skin=sanctuary] #composer :is(#stickerButton,#recordButton)>svg{display:block;width:22px;height:22px}
html[data-ui-skin=sanctuary] #composer #recordButton.recording{color:#a61632!important;background:#a6163214!important}
html[data-ui-skin=sanctuary] #appShell #composer #messageInput{border:0!important;border-radius:0!important;padding:7px 6px!important}
html[data-ui-skin=sanctuary] .sanctuary-compose-tray:not([hidden]){grid-template-columns:repeat(3,minmax(0,1fr))}
html[data-ui-skin=sanctuary] .sanctuary-chat-home{position:absolute;left:16px;top:calc(var(--san-safe-top) + 11px);display:grid;place-items:center;width:29px;height:29px;padding:4px;border:0;border-radius:50%;background:transparent;color:var(--san-ink)}
.sanctuary-chat-home svg{width:21px;height:21px}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) .floating-header{padding-left:52px!important;padding-right:16px!important}
html[data-ui-skin=sanctuary] #appShell .floating-header .drawer-recent-button{width:48px!important;min-width:48px!important}
/* Home portraits share the live chat photo variables and assistant/user mapping. */
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos][data-sanctuary-kael-photo] #appShell .sanctuary-person:first-child .sanctuary-person-avatar,
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos][data-sanctuary-user-photo] #appShell .sanctuary-person:nth-child(3) .sanctuary-person-avatar{border-radius:50%!important;border:2px solid var(--san-pane)!important;outline:1px solid var(--san-line);box-shadow:0 0 0 4px #fff8;color:transparent!important;text-shadow:none!important;padding:0!important;background-size:cover!important;background-position:center!important}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos][data-sanctuary-kael-photo] #appShell .sanctuary-person:first-child .sanctuary-person-avatar{background-image:var(--kael-avatar)!important}
html[data-ui-skin=sanctuary][data-lace-avatar-mode=photos][data-sanctuary-user-photo] #appShell .sanctuary-person:nth-child(3) .sanctuary-person-avatar{background-image:var(--user-avatar)!important}

/* One full-screen conversation, with one horizontal message gutter. */
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #appShell{
 inset:0!important;width:100%!important;max-width:none!important;margin:0!important;
 transform:none!important;border-inline:0!important;border-radius:0!important;box-shadow:none!important;
}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #appShell .floating-header{
 left:0!important;right:0!important;transform:none!important;max-width:none!important;
}
html[data-ui-skin=sanctuary][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #appShell #chat{
 box-sizing:border-box;top:0!important;left:0!important;right:0!important;bottom:0!important;
 width:100%!important;max-width:none!important;height:100%!important;transform:none!important;
 padding-top:calc(var(--san-safe-top) + 74px)!important;padding-left:0!important;padding-right:0!important;
 scroll-padding-top:calc(var(--san-safe-top) + 74px)!important;
}
html[data-ui-skin=sanctuary] body[data-page=chat]:not([data-native-shell='1']) #appShell #chat #messages{
 box-sizing:border-box;width:100%;padding-left:max(12px,env(safe-area-inset-left,0px))!important;
 padding-right:max(12px,env(safe-area-inset-right,0px))!important;
}
/* A selected wallpaper fills the viewport, without the old off-screen overscan or a separate header image. */
html[data-has-chat-background=true] body[data-page=chat]:not([data-native-shell='1']) #bgLayer{
 position:fixed!important;inset:0!important;width:100%!important;max-width:none!important;
 height:100%!important;height:100lvh!important;min-height:0!important;
}
html[data-ui-skin=sanctuary][data-has-chat-background=true][data-app-layout=compact] body[data-page=chat]:not([data-native-shell='1']) #appShell .floating-header{
 background:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}

