:root{color-scheme:dark;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:#151410;color:#e4dfd3;--gold:#b69a60}*{box-sizing:border-box}body{max-width:780px;margin:auto;padding:calc(24px + var(--app-safe-top)) 20px calc(30px + env(safe-area-inset-bottom))}header{display:flex;align-items:center;gap:16px;padding:8px 0 28px}header button{margin-left:auto}.seal{color:var(--gold);border:1px solid var(--gold);font-family:serif;font-size:28px;padding:7px 12px}h1{font-family:serif;font-size:26px;letter-spacing:.12em;margin:4px 0}h2{font-family:serif;font-weight:500;font-size:28px}h3{font-weight:500}small,.muted,.eyebrow,footer{color:#aaa391;font-size:13px;line-height:1.7}nav{display:flex;gap:4px;overflow:auto;border-bottom:1px solid #393326;padding-bottom:14px;margin-bottom:28px}button{font:inherit;background:#252219;border:1px solid #685638;color:#e3cc99;padding:11px 14px;border-radius:7px;cursor:pointer;min-height:44px;margin:4px 4px 4px 0}nav button{flex:1;white-space:nowrap;background:transparent;border-color:transparent}nav button[aria-current=page]{border-color:var(--gold);background:#30291c}button:disabled{opacity:.4;cursor:default}section,article{border:1px solid #3b3428;padding:20px;margin:18px 0;border-radius:10px;background:#1c1a15}p{line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}label{display:block;margin:16px 0;color:#bcb29d;font-size:14px}input,textarea,select{display:block;width:100%;margin-top:9px;padding:12px;background:#141310;color:#e4dfd3;border:1px solid #514634;border-radius:6px;font:inherit;font-size:16px}textarea{min-height:105px;resize:vertical}.check{display:flex;align-items:center;gap:12px}.check input{width:20px;height:20px;margin:0;flex-shrink:0}.score{color:var(--gold);font-family:serif;font-size:56px;margin:12px 0}.gold{color:var(--gold)}.danger{color:#e3afa1;border-color:#805449}footer{text-align:center;margin-top:28px}#message{position:sticky;bottom:12px;background:#30291c;border-radius:8px;padding:12px;box-shadow:0 4px 24px #0005}#message:empty{display:none}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media(max-width:420px){body{padding-left:14px;padding-right:14px}nav button{padding:10px 8px}section,article{padding:16px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.task-reminders{border:2px solid #b69a60;background:#302719}.task-reminders h3{color:#e3cc99}.task-reminders strong{font-size:18px}.task-reminders div+div{border-top:1px solid #685638;margin-top:16px;padding-top:16px}
.daily-overview progress{display:block;width:100%;height:8px;margin:22px 0 12px;border:0;border-radius:6px;overflow:hidden;accent-color:var(--gold)}progress::-webkit-progress-bar{background:#3a3e48}progress::-webkit-progress-value{background:var(--gold)}progress::-moz-progress-bar{background:var(--gold)}
:root{background:#131313;color:#f0f0f2}body{padding-bottom:calc(108px + env(safe-area-inset-bottom))}header{gap:12px}header h1{font-family:inherit;font-size:22px;letter-spacing:0}header small{font-size:12px}.seal{border:0;background:#2e323d;border-radius:16px;padding:12px 16px;font-size:23px}section,article{background:#242731;border-color:transparent;border-radius:18px}h2{font-family:inherit;font-size:26px}h3{font-weight:600}small,.muted,.eyebrow,footer{color:#a6a6af}.daily-overview{margin-top:16px;padding:24px}.daily-overview .score{font-family:inherit;font-size:52px;font-weight:600;color:#fff;margin:8px 0 0}.daily-overview p{font-size:14px;color:#b8b8bf;margin-bottom:0}.ritual-card{display:flex;align-items:center;gap:14px;width:100%;background:#242731;border:0;border-radius:16px;padding:20px;margin:12px 0;color:#f1f1f3;text-align:left}.ritual-card-title{display:grid;gap:5px;flex:1}.ritual-card-title strong{font-size:17px}.ritual-card-status{font-size:14px;color:#aaaab4}.ritual-dot{font-size:24px;color:#aaaab4}.is-complete .ritual-dot{color:#39ca82}.home-note{margin-top:24px}nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,780px);margin:0;padding:12px 12px calc(12px + env(safe-area-inset-bottom));background:#131313f5;border-top:1px solid #30313a;border-bottom:0;gap:0}nav button{font-size:13px;padding:10px 6px}nav button[aria-current=page]{border-color:transparent;background:#242731;color:#e3cc99}#message{bottom:88px;z-index:6}.back-button{border:0;background:transparent;color:#aaaab4;padding-left:0}.ritual-detail{text-align:center;padding:36px 22px}.ritual-emblem{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 24px;border:1px solid #b69a6066;border-radius:50%;color:var(--gold);font-size:30px;font-family:serif}.ritual-detail>small{display:block}.ritual-detail h2{margin:12px 0 18px}.ritual-note textarea{background:#1b1d24;border-color:#3a3e48;border-radius:14px}.ritual-action{position:sticky;bottom:86px;margin:32px 0 16px;padding:12px;background:#131313f5;border-radius:16px;z-index:4}.hold-button{position:relative;display:block;width:100%;height:60px;border:1px solid #b69a60;border-radius:14px;background:#29251e;color:#f0dfbb;overflow:hidden;margin:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.hold-fill{position:absolute;inset:0 auto 0 0;width:var(--hold-progress,0%);background:#b69a6066;pointer-events:none}.hold-label{position:relative;font-size:16px;font-weight:600;pointer-events:none}.ritual-action p{font-size:12px;text-align:center;color:#a6a6af;line-height:1.5;margin:10px 0 0}@media(max-width:420px){header h1{font-size:20px}.ritual-card{padding:18px 16px}.ritual-card-status{font-size:12px}}
.ritual-instruction{text-align:left;border-top:1px solid #b69a6040;margin-top:24px;padding-top:16px}.ritual-instruction blockquote{margin:14px 0;padding:18px;border-left:3px solid var(--gold);border-radius:4px 12px 12px 4px;background:#191b22;line-height:1.9;color:#e4cfaa;font-size:18px}.bow-count{text-align:center}.bow-count strong{font-size:28px;color:var(--gold)}.photo-checkin img,#photo-album img{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:12px;margin-bottom:16px;background:#141414}.photo-checkin video{width:100%;max-height:360px;border-radius:12px;background:#000}.photo-checkin video[hidden]{display:none}button[hidden]{display:none}.photo-checkin{margin-top:24px}#photo-status{color:#c9b17c;font-size:14px}.photo-checkin button{min-height:48px}
#share-image img{display:block;width:100%;border-radius:16px;margin:20px 0}.report-text{white-space:pre-wrap;overflow-wrap:anywhere;background:#242731;padding:18px;border-radius:12px;font:inherit;line-height:1.8}.daily-share button{min-height:48px}details{margin:20px 0}summary{cursor:pointer;color:#c9b17c;padding:12px 0}
.seal{display:block;flex:0 0 56px;width:56px;height:56px;padding:0;border:0;border-radius:12px;background-image:url('../icon-v2.svg');background-size:cover;background-position:center}
.subscription-overview{border:1px solid #b69a604d;background:linear-gradient(135deg,#2b2930,#242731)}.subscription-overview h3{color:#e3cc99;font-size:21px}.subscription-amount{font-size:34px;color:#e4cfaa;font-variant-numeric:tabular-nums;margin:12px 0}.subscription-amount small{font-size:16px}.subscription-overview dl{margin:16px 0 8px}.subscription-overview dl div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-top:1px solid #ffffff12}.subscription-overview dt{font-size:13px;color:#a6a6af}.subscription-overview dd{font-size:14px;margin:0;text-align:right;overflow-wrap:anywhere}.subscription-view h4{font-weight:600}.subscription-view button{min-height:44px;padding:9px 14px}#subscription-contract img{display:block;width:100%;max-height:360px;object-fit:contain;background:#18191e;border-radius:12px}#subscription-contract.expanded img{max-height:none}#subscription-signature{display:block;width:100%;height:200px;background:#faf8f2;border:1px solid #b69a60;border-radius:12px;touch-action:none;-webkit-user-select:none;user-select:none;margin-top:16px}.signature-preview img{display:block;width:100%;max-height:160px;object-fit:contain;background:#faf8f2;border-radius:10px;margin:12px 0}.subscription-history{background:#1a1d25;border:1px solid #ffffff0d}.subscription-reminder{border:1px solid #b69a6066}.subscription-view .muted{font-size:13px}.subscription-view form{margin:0}.subscription-signing [data-sub="save-signature"]{width:100%;background:#30291c;border-color:#b69a60}
.subscription-declaration{border:1px solid #d7777755;background:#2c2228}.subscription-declaration-text{color:#ff9797;font-size:18px;font-weight:600;line-height:1.9}
.subscription-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 10px}.contract-viewer{width:min(94vw,760px);max-height:90vh;max-height:90dvh;padding:18px;border:1px solid #685638;border-radius:16px;background:#1b1d24;color:#f0f0f2;overflow:auto}.contract-viewer::backdrop{background:#000c}.contract-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-18px;background:#1b1d24;padding:8px 0;z-index:1}.contract-viewer-header h3{margin:0}.contract-viewer-image img{display:block;width:100%;height:auto;border-radius:8px}.contract-viewer>p{margin-top:8px}
.subscription-primary{display:grid;gap:6px;margin:16px 0 12px}.subscription-primary small{text-align:center}.subscription-pay{width:100%;min-height:54px!important;background:#b69a60;color:#171510;font-size:18px;font-weight:600;border-color:#b69a60}.subscription-confirm-payment{width:100%;border-color:transparent;background:transparent;color:#c9b17c}.subscription-toolbar button{flex:1}.subscription-view dialog>section{margin-top:14px}.subscription-view>section.subscription-declaration{margin-top:16px}.subscription-payment-body section{padding:0;background:transparent;border:0}.subscription-signing [data-sub="save-signature"]{width:100%}
.shoe-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shoe-photo-grid section{margin:0;padding:12px;background:#1b1d24;border-radius:12px;min-width:0}.shoe-photo-grid h4{margin:0 0 12px;color:#e3cc99}.shoe-photo-preview{display:grid;place-items:center;aspect-ratio:4/3;background:#14151a;border-radius:8px;overflow:hidden}.shoe-photo-preview img{width:100%;height:100%;object-fit:contain}.shoe-photo-grid small{display:block;overflow-wrap:anywhere;margin-top:10px}.shoe-photo-grid label{margin:12px 0}.shoe-photo-grid input{padding:8px;font-size:13px}.shoe-photo-grid button{width:100%;font-size:13px;padding:9px}.shoe-record>button[data-shoe-action="save"]{width:100%;background:#30291c;border-color:#b69a60}.shoe-report-preview img{display:block;width:100%;height:auto;border-radius:12px}.shoe-archive-thumb{display:block;width:100%;max-height:260px;object-fit:contain;background:#16171c;border-radius:10px;margin-bottom:12px}@media(max-width:360px){.shoe-photo-grid{gap:8px}.shoe-photo-grid section{padding:8px}.shoe-photo-grid input{font-size:12px}}

input[type="time"]{width:180px;max-width:100%;min-width:0;padding:10px}input[type="time"]::-webkit-date-and-time-value{min-width:0;text-align:left}input[type="time"]::-webkit-datetime-edit{min-width:0;padding:0}.subscription-identity{margin-bottom:10px}.subscription-protection{display:block;background:#183f2d;border:1px solid #31865b;color:#9ee7bb;padding:12px 14px;border-radius:10px;margin-top:0}

.subscription-view>section{margin:12px 0;padding:16px}.subscription-overview .subscription-introduction h3{margin:12px 0 8px}.subscription-overview .subscription-introduction p{margin:8px 0 14px;line-height:1.65}.subscription-declaration p{margin:6px 0}

.subscription-qr>img{display:block;width:100%;max-height:55vh;object-fit:contain;border-radius:10px}.subscription-qr a{color:#e3cc99}

nav button{min-width:0;margin:0}
.house-rules{margin-top:18px}.house-rules .rules-cover{position:relative;text-align:center;padding:32px 20px;background:linear-gradient(145deg,#332d24,#22252c);border:1px solid #b69a6040}.rules-edition{display:inline-block;padding:5px 12px;border:1px solid #b69a6055;border-radius:999px;color:#e3cc99;font-size:12px;letter-spacing:.15em}.rules-cover h2{font-family:serif;font-size:30px;letter-spacing:.08em;margin:18px 0 10px}.rules-cover p{color:#d4c6ac;font-size:15px;margin:0}.rules-cover-line{width:44px;height:1px;background:#b69a60;margin:20px auto 14px}.house-rules .rules-chapter{padding:20px 18px;margin:16px 0}.rules-chapter-heading{display:flex;align-items:center;gap:12px;padding:0 0 16px;margin:0;border-bottom:1px solid #ffffff10}.rules-chapter-heading>span{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;background:#b69a601a;color:#e3cc99;border-radius:10px;font-family:serif;font-size:20px}.rules-chapter-heading h3{font-size:18px;margin:0;color:#f1e2c7}.rules-list{list-style:none;margin:0;padding:0}.rules-list li{display:flex;align-items:flex-start;gap:12px;padding:18px 0;border-bottom:1px solid #ffffff0c}.rules-list li:last-child{padding-bottom:0;border-bottom:0}.rule-number{width:26px;flex-shrink:0;padding-top:3px;color:#b69a60;font-size:12px;font-variant-numeric:tabular-nums}.rules-list li>div{min-width:0}.rules-list h4{font-size:15px;line-height:1.65;margin:0 0 6px;font-weight:600}.rules-list p{font-size:14px;color:#bfc0c7;line-height:1.85;margin:0}.house-rules .rules-daily{padding:24px 22px;border-left:3px solid #b69a60;background:#2a2824}.rules-daily>small{color:#e3cc99;font-size:13px;letter-spacing:.15em}.rules-daily blockquote{margin:14px 0 0;font-family:serif;color:#e8ddc8;font-size:17px;line-height:1.95}.rules-footnote{text-align:center;font-size:12px;color:#a6a6af;line-height:1.8;margin:24px 8px}
@media(max-width:420px){nav button{padding:10px 4px;font-size:12px}.house-rules .rules-chapter{padding:18px 14px}.rules-list li{gap:10px}.rules-cover h2{font-size:28px}}
.add-task-button{display:block;width:100%;background:#30291c;border-color:#b69a60;margin:0 0 24px}.task-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-card-heading h3{margin:0}.task-times{font-size:14px;color:#c6bcaa}.task-actions{display:flex;flex-wrap:wrap;gap:6px}.archive-heading{margin-top:36px;padding-top:24px;border-top:1px solid #514634}.task-schedule{display:grid;grid-template-columns:1fr;min-width:0}.task-schedule input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));aspect-ratio:auto;gap:6px;background:transparent}.photo-gallery img{width:100%;height:110px;object-fit:contain;background:#141310;border-radius:6px}.shoe-photo-grid section{padding:10px}.task-photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.task-photo-gallery img{width:100%;height:150px;object-fit:contain}.task-report-preview img,.shoe-report-preview img{width:100%;height:auto;display:block}.task-detail-summary p{margin:8px 0}[hidden]{display:none!important}

/* 全页取消双击缩放，保留滚动及双指缩放；长按礼仪按钮仍使用自身手势规则。 */
html,body,body *{touch-action:manipulation}.hold-button{touch-action:none}
.fixed-profile{background:linear-gradient(135deg,#302a23,#242731);border:1px solid #b69a6055}.fixed-profile h3{font-size:25px;color:#e3cc99;margin:10px 0 18px}.fixed-profile dl{margin:0}.fixed-profile dl div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid #ffffff12}.fixed-profile dt{color:#a6a6af;font-size:14px}.fixed-profile dd{margin:0;overflow-wrap:anywhere;line-height:1.5}.fixed-profile h4{margin:22px 0 8px;color:#e3cc99}.fixed-profile p{margin:0;font-size:15px}

.profile-portrait{display:block;width:100%;aspect-ratio:3/4;max-height:460px;object-fit:cover;object-position:50% 65%;border-radius:12px;margin:0 0 20px}#profile-portrait .muted{font-size:13px;margin-bottom:18px}

#identity-contract{margin-top:24px}.identity-pledge{line-height:1.9;padding:16px 0}.identity-pad{display:block;width:100%;height:180px;touch-action:none;border:1px solid #d4cdbb;border-radius:10px;background:#faf8f2}.identity-video-picker{display:block;margin:12px 0}#identity-contract video{width:100%;max-height:380px;border-radius:10px;margin:12px 0}.identity-signature{display:block;max-width:100%;max-height:180px}.identity-seal{color:#d98074;border:3px double #b15b51;border-radius:50%;width:130px;height:130px;display:flex;flex-direction:column;justify-content:center;text-align:center;transform:rotate(-8deg);margin:20px auto;line-height:1.6}.identity-seal strong{font-size:25px}#identity-contract [hidden]{display:none}

.account-login{max-width:480px;margin:24px auto}.account-login h2{font-size:28px}.account-login form{display:grid;gap:12px}.account-settings [data-account-panel]{margin-top:16px}.account-settings button{margin:4px 6px 4px 0}

.day-records article{padding:14px 0;border-bottom:1px solid #57503f}.day-counter{font-size:19px;line-height:1.7;color:#d8bd7b}.day-records button{margin:8px 6px 4px 0}.day-draft{margin:16px 0;padding:16px;border:1px solid #57503f;border-radius:12px}.days-importer ol{padding-left:24px;line-height:1.9}.days-importer input[type=date]{max-width:100%;min-width:0}

.welcome-card{width:min(430px,calc(100vw - 36px));max-height:85dvh;overflow:auto;border:1px solid #6a5c3d;border-radius:24px;padding:26px;background:#24262f;color:#f3eee3;text-align:center}.welcome-card::backdrop{background:rgba(0,0,0,.68)}.welcome-card h2{font-size:23px;margin:12px 0 22px}.servant-portrait{width:112px;height:112px;border-radius:50%;overflow:hidden;background:#423a2b;margin:16px auto;display:grid;place-items:center;color:#d7be80;font-size:38px}.servant-portrait img{width:100%;height:100%;object-fit:cover}.servant-details{margin:16px 0;text-align:left}.servant-details>div{display:grid;grid-template-columns:46px 1fr;gap:10px;margin:12px 0}.servant-details dt{color:#bcad8d}.servant-details dd{margin:0;line-height:1.7}.welcome-hint{font-size:12px}.content-lock{position:fixed;inset:0;z-index:10000;background:#151410;display:grid;place-items:center;padding:22px;overflow:auto}.content-lock>section{max-width:430px;width:100%;padding:25px;border-radius:20px;background:#24262f}.content-lock form{display:grid;gap:12px}

.servant-details dd{overflow-wrap:anywhere}

.day-records-heading{display:flex;align-items:center;gap:8px;margin-bottom:12px}.day-records-heading h3{margin:0;flex:1;white-space:nowrap}.day-records .day-import-hint{border:0;background:none;padding:0;margin:0;color:#8e887c;font-size:10px;min-height:40px;line-height:1.4;text-align:right}.day-records .day-settings{border:0;background:none;margin:0;padding:0 4px;color:#a29b8b;font-size:22px;min-width:32px;min-height:40px}.day-settings[aria-pressed=true]{color:#e1c482}.day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.day-records article.day-tile{position:relative;aspect-ratio:1;min-width:0;padding:14px 10px;border:1px solid #514b3c;border-radius:16px;background:linear-gradient(150deg,#2b2924,#1c1d22);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.day-title{font-size:11px;line-height:1.5;text-align:center;color:#b3aa97;overflow-wrap:anywhere;max-width:100%;max-height:4.5em;overflow:auto}.day-value{flex:1;display:flex;align-items:center;justify-content:center;gap:3px;min-height:0;width:100%;color:#dfc589}.day-value strong{font-size:clamp(26px,9vw,44px);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-1px;overflow-wrap:anywhere}.day-value small{font-size:11px;align-self:center;color:#aaa08b}.day-tile-tools{position:absolute;inset:3px 5px auto;display:flex;justify-content:space-between}.day-tile-tools[hidden]{display:none}.day-records .day-tile-tools button{margin:0;padding:2px;min-height:30px;min-width:30px;font-size:22px;border:0;background:#1d1e24;color:#c3b185;border-radius:8px}.day-tile:has(.day-tile-tools:not([hidden])){padding-top:38px}.day-records-home .day-tile-tools{display:none}

.content-lock{background:radial-gradient(ellipse at top,#302d27,#131416 65%);padding:16px}.content-lock>section.account-unlock{background:transparent;padding:12px 0;width:min(330px,100%);text-align:center}.account-unlock h2{margin:8px 0;font-size:23px}.unlock-symbol{font-size:30px;color:#bbab85}.unlock-instruction{font-size:13px;color:#b8b3a9;margin:8px 0 18px}.unlock-dots{display:flex;justify-content:center;gap:13px;min-height:16px}.unlock-dots i{height:11px;width:11px;border:1px solid #c7c2b5;border-radius:50%}.unlock-dots .filled{background:#e4ddcb}.account-unlock [data-unlock-status]{min-height:24px;font-size:13px;margin:12px 0}.unlock-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:15px 23px;width:min(280px,100%);margin:8px auto 22px}.unlock-keypad[hidden]{display:none}.unlock-keypad button{border:0;background:#ffffff12;border-radius:50%;width:70px;height:70px;margin:auto;padding:0;font-size:29px;color:#f2eee4;touch-action:manipulation}.unlock-keypad button[data-unlock-key=clear]{font-size:13px;background:transparent;color:#b9b2a2}.unlock-keypad button[data-unlock-key=delete]{font-size:24px;background:transparent}.unlock-keypad button:active{background:#ffffff35}.account-unlock .unlock-face{display:block;margin:0 auto;border:0;background:transparent;color:#d8c38e;font-size:16px;min-height:44px}.unlock-other{border:0;background:transparent;font-size:11px;color:#89887f}.unlock-native{position:absolute!important;width:1px!important;height:1px!important;opacity:0;pointer-events:none;padding:0!important;border:0!important}.unlock-note{font-size:11px;color:#817e74;margin-top:18px}.unlock-error{color:#f47575;animation:unlock-shake .42s ease-in-out}@keyframes unlock-shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}@media(prefers-reduced-motion:reduce){.unlock-error{animation:none}}.day-records article.day-tile{aspect-ratio:auto;height:126px;padding:12px 10px}.day-title{font-size:14px;line-height:1.4;height:3em;max-height:3em;flex-shrink:0;overflow:hidden;width:100%;display:block}.day-value{min-height:42px;flex:1}.day-value strong{white-space:nowrap;overflow-wrap:normal}.day-tile:has(.day-tile-tools:not([hidden])){padding-top:34px;height:146px}@media(max-height:670px){.unlock-keypad{gap:8px 20px;margin-bottom:10px}.unlock-keypad button{width:58px;height:58px}.unlock-note{margin-top:8px}}

.parents-photo-blank{height:140px;width:100%;border:1px dashed #b69a6033;border-radius:12px;background:#ffffff03;margin:0 0 12px}.parents-servant{display:block}.parents-servant+.parents-servant{margin-top:8px}

.network-online{color:#73cf9b;font-weight:600}.network-offline{color:#999b9e}.archive-fold{margin:16px 0;background:#24262f;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.archive-fold>summary{padding:17px 18px;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none;font-size:17px;font-weight:600;color:#ddc795;touch-action:manipulation}.archive-fold>summary::-webkit-details-marker{display:none}.archive-fold>summary::after{content:"›";font-size:24px;color:#9c957f;transition:transform .15s}.archive-fold[open]>summary::after{transform:rotate(90deg)}.archive-fold[open]>summary{border-bottom:1px solid #ffffff10}.fold-body{padding:0 12px}.fold-body>section{margin:12px 0}.rules-contract-fold{margin-top:24px}.rules-contract-fold .fold-body{padding:0 6px}@media(prefers-reduced-motion:reduce){.archive-fold>summary::after{transition:none}}

.camera-stage{position:relative;width:100%;background:#111;border-radius:14px;overflow:hidden;line-height:0}.camera-stage[hidden]{display:none}.camera-stage video{display:block;width:100%;max-height:65dvh;object-fit:contain}.camera-stage video[hidden]{display:none}.camera-front{transform:scaleX(-1)}.camera-stage .camera-flip{position:absolute;right:12px;bottom:12px;z-index:2;margin:0;padding:10px 13px;min-height:44px;background:#171717bb;border:1px solid #ffffff55;color:#fff;border-radius:24px;font-size:13px;line-height:1.4;backdrop-filter:blur(8px);touch-action:manipulation}.camera-flip[hidden]{display:none}.photo-camera-dialog{width:min(540px,calc(100vw - 24px));max-height:94dvh;overflow:auto;background:#24262f;color:#f2eee4;border:1px solid #65583b;border-radius:20px;padding:14px}.photo-camera-dialog::backdrop{background:#000b}.photo-camera-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.photo-camera-header h3{margin:8px 0;font-size:17px}.photo-camera-header button{margin:0}.camera-shutter{width:100%;min-height:48px;background:#b69a60;color:#161616}.photo-camera-open{min-height:44px}.photo-camera-dialog [data-camera-status]{font-size:13px;min-height:20px;margin:10px 0}

.avatar-silhouette{display:block;width:72%;height:72%;color:#9b927e;opacity:.65}.servant-card .servant-portrait{margin:16px auto 22px}.servant-card h3{font-size:23px;overflow-wrap:anywhere}.ritual-history-body p{white-space:pre-wrap;line-height:1.8;margin:14px 0}.ritual-history-row>summary{font-variant-numeric:tabular-nums}

.account-presence time{margin-left:12px;font-weight:400;color:#a6a6af;white-space:nowrap}.network-offline{color:#ef7676;font-weight:600}

.day-owner{display:flex;justify-content:center;gap:2px 7px;flex-wrap:wrap;width:100%;font-size:10px;line-height:1.4;color:#aaa08b;flex-shrink:0;text-align:center}.day-owner span{overflow-wrap:anywhere}.day-tile .day-title{height:32px;max-height:32px}.day-tile .day-value{min-height:40px}

.account-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.account-toolbar button{margin:0;min-height:44px;font-size:14px;width:100%}.account-toolbar .account-logout{color:#d49b91;border-color:#825955}.account-settings [data-account-panel]:empty,.account-settings [data-account-conflict-panel]:empty{display:none}.account-settings [data-account-panel]:not(:empty),.account-settings [data-account-conflict-panel]:not(:empty){margin-top:14px;padding:12px;background:#191b21;border-radius:12px}.privacy-time{margin:0 0 14px}.privacy-time-fields{padding:0 14px 8px}.privacy-preferences{padding:16px;background:#24262f;border-radius:16px}.privacy-preferences>button{width:100%;min-height:44px}.privacy-preferences .check{margin:12px 0}

.photo-camera-dialog{position:fixed;inset:0;margin:auto;width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:10px;overflow:hidden}.photo-camera-dialog .camera-stage{height:min(68dvh,620px);aspect-ratio:3/4;min-height:240px}.photo-camera-dialog .camera-stage video,.camera-result{width:100%;height:100%;max-height:none;object-fit:contain}.camera-result[hidden]{display:none}.camera-title{position:absolute;left:12px;top:12px;z-index:2;margin:0;max-width:calc(100% - 75px);font-size:15px;line-height:1.5;color:#fff;text-shadow:0 1px 5px #000}.camera-close{position:absolute;right:10px;top:10px;z-index:3;border:0;border-radius:50%;width:44px;height:44px;min-height:44px;padding:0;margin:0;background:#171717bb;color:white;font-size:30px;line-height:1}.photo-camera-dialog .camera-shutter{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);width:66px;height:66px;min-height:66px;border:3px solid #fff;border-radius:50%;padding:4px;margin:0;background:#2226;z-index:2}.camera-shutter>span{display:block;width:100%;height:100%;background:#fff;border-radius:50%}.camera-shutter[hidden],.camera-review[hidden]{display:none}.camera-review{position:absolute;bottom:12px;left:12px;right:12px;display:flex;justify-content:center;gap:10px;z-index:2;line-height:1.4}.camera-review button{min-height:44px;margin:0;background:#171717cc;color:#fff;border-radius:22px;border:1px solid #ffffff66;padding:10px 14px}.photo-camera-dialog [data-camera-status]{height:22px;min-height:22px;overflow:hidden;margin:8px 0 0;font-size:12px;text-align:center}@media(max-height:420px){.photo-camera-dialog .camera-stage{height:65dvh;min-height:180px}}

.day-record-owner{display:block;color:#aaa08b;font-size:12px;line-height:1.5;margin:-4px 0 12px}.day-tile .day-title{height:38px;max-height:38px}

/* Login and wake share the same password keypad. */
.account-unlock.account-login{width:min(330px,100%);text-align:center;margin:12px auto;padding:18px 12px}.unlock-account{font-size:12px;color:#b8b3a9;letter-spacing:.06em;margin:6px 0}.unlock-switch{display:block;margin:6px auto;min-height:40px;border:0;background:transparent;color:#c6b994;font-size:14px}.account-unlock [data-account-switch][hidden]{display:none}.account-unlock [data-account-switch]{text-align:left;padding:10px;border:1px solid #ffffff20;border-radius:12px}.account-unlock [data-account-switch] input{width:100%}.login-help{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.login-help button{font-size:11px;color:#96938a;background:transparent}.unlock-keypad button{background:linear-gradient(145deg,#ffffff18,#ffffff09);box-shadow:inset 0 1px 1px #ffffff16;transition:background .12s,box-shadow .12s,transform .12s}.unlock-keypad button:active{background:linear-gradient(135deg,#cbb071b3,#8d734d8c,#ffffff3d);box-shadow:0 0 22px #d9b96a66,inset 0 1px 2px #fff8;transform:scale(.94)}.unlock-keypad button.key-feedback{animation:key-feedback .48s ease-out}@keyframes key-feedback{0%,25%{background:linear-gradient(135deg,#e6cf97cc,#b5955c99,#ffffff44);box-shadow:0 0 24px #d9b96a88,inset 0 1px 3px #fff8;transform:scale(.94)}100%{background:linear-gradient(145deg,#ffffff18,#ffffff09);box-shadow:inset 0 1px 1px #ffffff16;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.unlock-keypad button{transition:none}.unlock-keypad button.key-feedback{animation:none;background:linear-gradient(135deg,#cbb071b3,#8d734d8c)}}

.contract-viewer>.modal-dismiss-space{display:flex;align-items:center;justify-content:center;flex:none;width:100%;height:120px;min-height:120px;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;color:#85858b;cursor:pointer;font-size:11px;font-weight:400;text-align:center}.modal-dismiss-space span{opacity:.65;pointer-events:none}.contract-viewer>.modal-dismiss-space:active{background:transparent;color:#a3a3aa}

#startup-splash{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#eee3d0;overflow:hidden;touch-action:none}#startup-splash img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}header .seal{background-image:url('../icon-512-v2.png')}@media(min-aspect-ratio:3/4){#startup-splash img{width:auto;max-width:100%;object-fit:contain}}

.family-cover{text-align:center;padding:28px 20px;background:linear-gradient(145deg,#332e25,#22252c);border:1px solid #b69a6040}.family-cover img{display:block;width:116px;height:116px;border-radius:24px;margin:0 auto 18px}.family-cover small{display:block;font-family:Georgia,serif;letter-spacing:.18em;font-size:17px;color:#e3cc99}.family-cover h2{font-family:serif;font-size:30px;letter-spacing:.2em;margin:10px 0}.family-cover p{font-size:13px;letter-spacing:.1em;color:#bdb09a}.family-panel{border:1px solid #b69a6040;background:#202228;border-radius:20px;margin:18px 0;overflow:hidden}.family-panel>summary{position:relative;display:flex;align-items:center;min-height:112px;padding:22px 48px 22px 22px;color:#f1e2c7;list-style:none}.family-panel>summary::-webkit-details-marker{display:none}.family-panel>summary::after{content:'＋';position:absolute;right:20px;font-size:23px;color:#baab8d}.family-panel[open]>summary::after{content:'−'}.family-panel>summary small,.family-panel>summary strong,.family-panel>summary em{display:block}.family-panel>summary small{font-size:10px;letter-spacing:.14em;color:#998b71}.family-panel>summary strong{font-family:serif;font-size:23px;font-weight:600;margin:5px 0}.family-panel>summary em{font-size:11px;color:#96928b;font-style:normal}.family-panel[open]>summary{border-bottom:1px solid #b69a6030}.family-panel-body{padding:0 18px 18px}.family-chapter,.family-recruitment{padding:20px 0;border-bottom:1px solid #ffffff0c;background:transparent;border-radius:0;margin:0}.family-chapter h3,.family-recruitment h3{font-family:serif;font-size:20px;color:#e6d4ac;margin:6px 0 20px}.family-chapter h4{margin:26px 0 14px;color:#e6d4ac;font-size:17px}.family-page p{line-height:1.95;overflow-wrap:anywhere}.family-chapter p,.family-recruitment p{font-size:14px;color:#c4c1b9}.family-page p.family-lead{font-weight:600;color:#eee2c9}.family-roles article{display:flex;align-items:flex-start;gap:14px;margin:0;padding:22px 0;border-bottom:1px solid #ffffff10;border-radius:0;background:transparent}.family-roles article:last-child{border:0}.family-role-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:13px;background:#b69a6014;color:#c4ae7b}.family-role-icon svg{width:24px;height:26px}.family-roles h4{margin:0 0 7px;color:#e3d6bc;font-size:16px}.family-roles p{margin:0}.family-recruitment blockquote{margin:16px 0 32px;padding:14px 0 14px 16px;border-left:2px solid #b69a6060;color:#d3cab8;line-height:2;font-size:14px}.family-signoff{display:grid;gap:6px;text-align:center;border-top:1px solid #ffffff10;padding:30px 0 10px;margin-top:30px}.family-signoff strong{font-family:Georgia,serif;font-size:23px;letter-spacing:.06em;color:#c9b98f}.family-signoff span{font-family:serif;font-size:19px;color:#d5c8ad}.family-signoff small{font-size:10px;color:#8c867b;margin-top:10px}.family-panel .house-rules{margin-top:18px}@media(max-width:360px){.family-panel-body{padding:0 12px 14px}.family-panel>summary{padding-left:18px}.family-chapter h3{font-size:18px}}

.rules-cover h2{font-size:27px}.rules-cover .rules-edition{font-size:10px;letter-spacing:.05em}.rules-cover p{font-size:13px;line-height:1.9}.rules-list p+p{margin-top:12px}.rules-oath>h4{font-family:serif;color:#e5d0a5;font-size:18px;margin:22px 0 16px}.rules-oath .rules-oath-intro{font-size:14px;color:#bbb9b2;line-height:1.9}.rules-oath blockquote{margin:0;padding:0 0 0 15px;border-left:2px solid #b69a6050}.rules-oath blockquote p{font-size:15px;line-height:1.95;color:#d7cdbb;margin:0 0 18px}.rules-oath blockquote strong{color:#eddbb7}.rules-signoff{display:grid;gap:8px;text-align:center;padding:28px 0 24px;color:#ccb990}.rules-signoff strong{font-family:Georgia,serif;letter-spacing:.1em;font-size:21px}.rules-signoff span{font-family:serif;font-size:20px}.rules-signoff em{font-size:11px;color:#91897b}

.site-brand-footer{text-align:center;margin:36px 0 0;padding:30px 8px 8px;border-top:1px solid #b69a6025}.site-brand-lockup{display:flex;align-items:center;justify-content:center;gap:14px}.site-brand-lockup img{display:block;width:64px;height:64px;border-radius:15px;flex:none;opacity:.88}.site-brand-lockup strong{font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:500;letter-spacing:.09em;line-height:1.25;color:#cdb991;white-space:nowrap}.site-brand-footer h2{font-family:serif;font-size:22px;font-weight:500;letter-spacing:.18em;line-height:1.5;margin:16px 0 9px;color:#d2c1a3}.site-brand-footer .site-brand-motto{font-size:11px;letter-spacing:.05em;line-height:1.9;margin:0;color:#9c9383}.site-brand-footer .site-footer-note{font-size:10px;line-height:1.9;margin:20px 0 0;color:#78766f}@media(max-width:360px){.site-brand-lockup{gap:11px}.site-brand-lockup img{width:56px;height:56px;border-radius:13px}.site-brand-lockup strong{font-size:20px;letter-spacing:.065em}}

.camera-review{gap:8px}.camera-review [data-camera-confirm]{background:#b69a60;color:#171510;border-color:#e1c88f}.camera-review button{font-size:12px;padding:10px 12px}.editable-photo{cursor:pointer}.editable-photo:focus-visible{outline:2px solid #b69a60;outline-offset:3px}@media(max-width:360px){.camera-review{left:8px;right:8px;gap:5px}.camera-review button{padding:10px 9px;font-size:11px}}
/* Gift collection stays six columns wide, including on narrow phones. */
.gift-collection{margin:0 0 24px;border:1px solid var(--line,#3c352b);border-radius:20px;background:rgba(179,138,73,.04);overflow:hidden}
.gift-collection>summary{display:flex;align-items:center;justify-content:space-between;min-height:108px;padding:20px;cursor:pointer;list-style:none;gap:12px}
.gift-collection>summary::-webkit-details-marker{display:none}
.gift-collection summary small,.gift-collection summary strong,.gift-collection summary em{display:block}
.gift-collection summary small{font-size:9px;letter-spacing:1px;opacity:.5}
.gift-collection summary strong{font-size:25px;margin:5px 0;font-weight:600}
.gift-collection summary em{font-size:11px;font-style:normal;opacity:.5}
.gift-fold-indicator:before{content:'⌄';font-size:22px;opacity:.5}.gift-collection[open] .gift-fold-indicator:before{content:'⌃'}
.gift-cabinet{padding:0 12px 12px}.gift-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.gift-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:0;aspect-ratio:1;padding:2px!important;margin:0!important;border-radius:10px;background:rgba(179,138,73,.045);border:1px solid rgba(179,138,73,.14);color:#b38a49;font-size:19px;overflow:hidden}
.gift-cell:hover,.gift-cell:active{background:rgba(179,138,73,.16)}.gift-cell>span{opacity:.3}.gift-add{border-style:dashed}.gift-cell .gift-pixel{width:64%;height:auto;max-height:65%}.gift-cell time{font-size:clamp(6px,1.8vw,10px);white-space:nowrap;line-height:1.5;opacity:.65;letter-spacing:-.3px}
.gift-count{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}.gift-count small{font-size:10px;opacity:.45}.gift-count button{margin:0!important;width:auto!important;padding:5px!important;background:transparent;border:0;font-size:11px;opacity:.55}
.gift-dialog{width:min(440px,calc(100vw - 28px));padding:0!important;overflow-x:hidden}.gift-dialog-content{position:relative;padding:24px 20px}.gift-dialog h2{font-size:24px;margin:10px 0 24px}.gift-close{position:absolute;right:12px;top:12px;width:32px!important;margin:0!important;padding:0!important;background:none;border:0;font-size:24px;color:inherit;opacity:.6}
.gift-icon-options{display:flex;gap:6px;padding:0;margin:8px 0 18px;border:0;min-width:0}.gift-icon-options legend{font-size:12px;margin-bottom:8px}.gift-icon-options label{flex:1;min-width:0;margin:0!important;position:relative}.gift-icon-options input{position:absolute;opacity:0;width:1px;height:1px}.gift-icon-options label>span{display:flex;align-items:center;flex-direction:column;border:1px solid rgba(179,138,73,.2);border-radius:10px;padding:6px 2px}.gift-icon-options .gift-pixel{width:34px;height:34px;max-width:100%}.gift-icon-options small{font-size:10px}.gift-icon-options input:checked+span{background:rgba(179,138,73,.15);border-color:#b38a49}.gift-icon-options input:focus-visible+span{outline:2px solid #b38a49}
.gift-hero{text-align:center;padding:4px 0 24px}.gift-hero .gift-pixel{width:110px;height:110px}.gift-hero h3{font-size:24px;overflow-wrap:anywhere;margin:10px 0}.gift-hero time{font-size:12px;opacity:.55}.gift-dialog dl div{display:flex;gap:12px;margin:12px 0}.gift-dialog dt{min-width:70px;font-size:12px;opacity:.5}.gift-dialog dd{margin:0;overflow-wrap:anywhere}.gift-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;opacity:.75}.gift-error{color:#e98181;font-size:12px}.gift-dialog input,.gift-dialog textarea{min-width:0;max-width:100%;box-sizing:border-box}

.site-brand-footer .site-footer-divider{width:min(200px,65%);height:0;margin:18px auto;border:0;border-top:1px solid #b69a6025}.site-brand-footer .site-footer-note{margin:0}

/* Login belongs to the page; no inset card or empty bottom navigation. */
body.is-account-login{background:radial-gradient(ellipse at 50% 0,rgba(182,154,96,.07),transparent 55%);padding-bottom:calc(30px + env(safe-area-inset-bottom))}
.is-account-login header{padding-bottom:18px}.is-account-login #veil,.is-account-login nav:empty{display:none}
.is-account-login #content{text-align:center}.is-account-login .account-unlock.account-login{width:100%;max-width:440px;margin:0 auto;padding:10px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}
.is-account-login .account-login .unlock-symbol{display:none}.is-account-login .account-login h2{font-family:serif;font-size:28px;font-weight:500;letter-spacing:.12em;margin:14px 0 10px}.is-account-login .unlock-account{font-size:11px;letter-spacing:.1em;color:#989184}.is-account-login .unlock-instruction{margin:12px 0 18px}
.is-account-login .unlock-keypad{width:min(290px,100%);gap:14px 24px;margin:8px auto 18px}.is-account-login .unlock-note{margin:12px 0 8px}.is-account-login .login-help{justify-content:center;border-top:1px solid #b69a6018;margin:18px auto 0;padding-top:10px;width:min(340px,100%)}
.is-account-login .login-version{font-size:10px;margin:8px 0 0;color:#78766f}.is-account-login .login-release-button{border:0;background:transparent;font-size:11px;color:#96938a;margin:0 auto;padding:4px 12px}.is-account-login .site-brand-footer{margin-top:20px}
@media(max-height:700px){.is-account-login .unlock-keypad{gap:8px 22px;margin-bottom:10px}.is-account-login .account-login h2{margin-top:4px}.is-account-login header{padding-bottom:12px}}

.is-account-login #content:focus{outline:none}.is-account-login .login-help button{border:0;background:transparent;padding:5px 10px}

/* The frame scrolls independently; its external 120px closing area stays visible. */
.contract-viewer.modal-dismiss-shell{inset:0;width:100%;max-width:100vw;height:100vh;height:100dvh;max-height:none;margin:0;padding:calc(16px + var(--app-safe-top)) 12px calc(16px + env(safe-area-inset-bottom))!important;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;outline:none}
.contract-viewer.modal-dismiss-shell[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}.contract-viewer.modal-dismiss-shell:not([open]){display:none}
.modal-dismiss-shell>.modal-content-frame{flex:0 1 auto;width:min(100%,760px);min-height:0;max-height:calc(100vh - 232px - var(--app-safe-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 232px - var(--app-safe-top) - env(safe-area-inset-bottom));padding:18px;border:1px solid #685638;border-radius:16px;background:#1b1d24;overflow:auto;overscroll-behavior:contain}
.gift-dialog.modal-dismiss-shell>.modal-content-frame{width:min(440px,100%);padding:0}.modal-dismiss-shell>.modal-dismiss-space{width:min(100%,760px);height:120px;min-height:120px;flex:0 0 120px;color:#aaa391;background:transparent}
.subscription-qr .modal-content-frame>img{display:block;width:100%;max-height:55vh;object-fit:contain;border-radius:10px}.modal-content-frame>p{margin-top:8px}

.modal-dismiss-shell>.modal-content-frame{text-align:left}

/* Programmatically focused page containers never show a screen-sized focus ring. */
#content:focus,.content-lock:focus{outline:none}
.family-contract #identity-contract{margin-top:0}

/* Password verification covers the browser viewport and safe areas in the top layer. */
html:has(body.is-account-login){min-height:100%;background:radial-gradient(ellipse at 50% 0,#211e18 0,#131313 65%);background-attachment:fixed}
body.is-account-login{min-height:100svh;background:transparent}
html:has(body.is-account-locked),body.is-account-locked{overflow:hidden;overscroll-behavior:none}
body.is-account-locked>:not(.content-lock){visibility:hidden}
dialog.content-lock{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:calc(20px + var(--app-safe-top)) calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));border:0;border-radius:0;box-shadow:none;background:radial-gradient(ellipse at 50% 0,#302d27,#131416 65%);color:#f0f0f2;overflow:auto;overscroll-behavior:none;outline:none}
dialog.content-lock[open]{display:flex;flex-direction:column;align-items:center;justify-content:safe center}dialog.content-lock:not([open]){display:none}
dialog.content-lock::backdrop{background:#131416}
dialog.content-lock>section.account-unlock{flex:none;max-width:330px;width:100%;min-width:0;margin:0;padding:12px 0;border:0;border-radius:0;background:transparent}


.task-archive{padding:0;background:transparent;border:0;margin:28px 0}.task-archive .archive-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding-top:20px}.archive-heading h3{margin:0}.archive-gear{margin:0;flex:0 0 auto;width:40px;height:40px;padding:0;border-radius:50%;background:transparent;border:1px solid #ffffff18;color:#a6a6af;font-size:22px}.archive-gear[aria-pressed=true]{color:#e48080;border-color:#e4808055}.task-archive-card{margin:10px 0;background:#242731;border:1px solid #ffffff12;border-radius:14px;overflow:hidden}.task-archive-card>summary{display:flex;align-items:center;gap:12px;padding:15px 16px;list-style:none;cursor:pointer}.task-archive-card>summary::-webkit-details-marker{display:none}.task-archive-info{flex:1;min-width:0;display:grid;gap:6px}.task-archive-info strong{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-archive-info small{font-size:12px;overflow-wrap:anywhere;color:#a6a6af}.task-archive-status{flex:0 0 auto;font-size:12px;white-space:nowrap}.task-archive-status.is-complete{color:#39ca82}.task-archive-status.is-late{color:#f07b7b}.task-archive-status.is-unfinished{color:#aaaab4}.task-archive-delete{display:none;flex:0 0 auto;margin:0;padding:8px 10px;background:#d1545420;color:#f07b7b;border:1px solid #d1545444;border-radius:10px;font-size:12px;white-space:nowrap}.task-archive.is-editing .task-archive-status{display:none}.task-archive.is-editing .task-archive-delete{display:block}.task-archive-body{border-top:1px solid #ffffff10}.task-archive-body .task-list-card{margin:0;border-radius:0}

.site-brand-footer .site-brand-lockup{display:block}.site-brand-footer .site-brand-lockup img{width:208px;max-width:75%;height:auto;margin:0 auto;border-radius:0;opacity:.82}.site-brand-footer h2{margin-top:14px}

.family-page>.family-panel{overflow:visible;scroll-margin-top:calc(var(--app-safe-top) + 8px)}.family-page>.family-panel>summary{background:#202228;border-radius:19px}.family-page>.family-panel[open]>summary{position:relative;top:0;z-index:3;border-radius:19px 19px 0 0;box-shadow:none}

.operation-progress{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px + env(safe-area-inset-bottom));z-index:12;width:min(90vw,420px);padding:15px 18px;border:1px solid #b69a6040;border-radius:16px;background:#222228f5;color:#e4dfd3;box-shadow:0 8px 30px #0005;text-align:left}.operation-progress strong{display:block;font-size:15px}.operation-progress progress{display:block;width:100%;height:9px;margin:12px 0 8px;accent-color:#b69a60}.operation-progress small{display:block;font-size:12px;color:#b5b0a7}.operation-progress button{margin:10px 0 0;font-size:12px;padding:8px 12px}.operation-progress button[hidden]{display:none}.operation-progress.is-error{border-color:#a65b5b}.operation-progress.is-error small{color:#e3a6a6}

/* Keep scrolling headings below a single opaque iPhone safe-area surface. */


.identity-authority{padding:20px 18px;border-top:1px solid #b69a6050;border-bottom:1px solid #b69a6028;background:#b69a6008}.identity-authority small{font-size:10px;letter-spacing:.18em;color:#97856a}.identity-authority p{margin:10px 0 0;font-family:serif;font-size:17px;line-height:2;letter-spacing:.035em;color:#d8c49e}.identity-dates{display:grid;gap:16px;margin:24px 0;font-variant-numeric:tabular-nums}.identity-dates div{display:grid;gap:6px}.identity-dates dt{font-size:11px;letter-spacing:.1em;color:#8c897f}.identity-dates dd{margin:0;font-size:15px;color:#c8c2b5}.identity-document-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.identity-document-actions button{margin:0;font-size:12px;padding:12px 8px;background:#b69a600a;border-color:#b69a6030;color:#bfb097}.identity-document-content{min-height:180px}.identity-document-content video{display:block;width:100%;max-height:65dvh;border-radius:10px}

.servant-portrait{position:relative;isolation:isolate}.account-settings>.servant-portrait{width:96px;height:96px;margin:16px 0}.identity-signed-document{display:block;width:100%;height:auto;border-radius:8px}

.operation-progress-percent{position:absolute;right:18px;top:15px;font-size:14px;font-variant-numeric:tabular-nums;color:#e3cc99}.operation-progress-percent[hidden]{display:none}.operation-progress strong{padding-right:50px}

#message.message-update{padding:12px 14px;background:#30291c;box-shadow:0 4px 24px #0005}.update-message-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px}.update-message-percent{font-size:12px;color:#c9b98f;font-variant-numeric:tabular-nums}#message.message-update progress{display:block;width:100%;height:6px;margin-top:9px;accent-color:#b69a60}#message.is-update-complete{animation:update-complete-glow .5s ease-out}.is-update-complete .update-message-caption{color:#ead8ae}@keyframes update-complete-glow{0%{background:#685634;box-shadow:0 0 18px #d2b47880}100%{background:#30291c;box-shadow:0 4px 24px #0005}}@media(prefers-reduced-motion:reduce){#message.is-update-complete{animation:none}}

.servant-contract-button{display:block;margin:18px 0 0;padding:9px 18px;font-size:13px;border-color:#b69a6038;background:#b69a6008;color:#c5b48f}.servant-contract-image{min-height:180px}

.loyalty-line{display:flex;align-items:center;justify-content:space-between;margin:18px 0;padding:16px 18px}.loyalty-line span{font-size:14px;color:#b8b2a7}.loyalty-line strong{font-size:26px;font-weight:600;color:#e3cc99;font-variant-numeric:tabular-nums}.calendar-month{background:#202228;border:1px solid #ffffff0e;border-radius:14px;margin:12px 0;overflow:hidden}.calendar-month>summary{display:flex;align-items:center;gap:12px;padding:18px;cursor:pointer;list-style:none}.calendar-month>summary::-webkit-details-marker{display:none}.calendar-month>summary strong{flex:1;font-size:16px;font-weight:500}.calendar-month>summary span{font-size:13px;color:#b9a87f;font-variant-numeric:tabular-nums}.calendar-month>summary i{width:7px;height:7px;border-right:1px solid #8c897f;border-bottom:1px solid #8c897f;transform:rotate(45deg);margin:0 3px 4px 8px}.calendar-month[open]>summary i{transform:rotate(225deg);margin-top:4px}.calendar-month-body{padding:4px 14px 16px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.calendar-week{text-align:center;font-size:11px;color:#8e8c87;margin-bottom:12px}.calendar-cell{position:relative;aspect-ratio:1;min-height:0;margin:0;padding:0;border:1px solid #ffffff10;border-radius:3px;background:#293030;color:#d7dcd8;font-size:13px;font-variant-numeric:tabular-nums;box-shadow:inset 0 -3px #0002}.calendar-cell.is-complete{background:#28513e;color:#a9dfbd;border-color:#4a916354}.calendar-cell.is-partial{background:#59502a;color:#e1d48b;border-color:#c1ab4354}.calendar-cell.is-empty{background:#502e30;color:#d5a0a0;border-color:#a4585850}.calendar-cell.is-task{background:#734a2d;color:#efbc87;border-color:#c4834d70}.calendar-cell.is-future{background:#292a30;color:#65666d;opacity:1}.calendar-cell.is-today{outline:1px solid #e3cc99;outline-offset:2px}.calendar-cell.is-task>span{position:absolute;left:5px;top:3px;font-size:10px}.calendar-flag{position:absolute;width:18px;height:18px;top:50%;left:50%;transform:translate(-50%,-40%);image-rendering:pixelated}.calendar-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;font-size:10px;color:#8e8c87;margin:18px 0}.calendar-legend span::before{content:'';display:inline-block;width:7px;height:7px;margin-right:5px;background:#28513e}.calendar-legend .is-partial::before{background:#9f8d3a}.calendar-legend .is-empty::before{background:#955555}.calendar-legend .is-task::before{background:#bd7b42}.calendar-day-total{display:grid;gap:10px;text-align:center;padding:24px 0}.calendar-day-total strong{font-size:38px;color:#e3cc99;font-variant-numeric:tabular-nums}.calendar-day-total span{font-size:12px;color:#99968e}.calendar-day-details{border-top:1px solid #ffffff10;margin:12px 0}.calendar-day-details>summary{padding:16px 0;font-size:14px;color:#c8baa0;cursor:pointer}.calendar-day-details article{padding:15px;margin:8px 0;border:1px solid #ffffff0a;background:#ffffff04}.calendar-day-details h4{margin:0 0 12px;font-size:15px}.calendar-day-details dl div{display:grid;grid-template-columns:95px 1fr;gap:10px;font-size:12px;line-height:1.8;margin:8px 0}.calendar-day-details dt{color:#8e8c87}.calendar-day-details dd{margin:0;overflow-wrap:anywhere}.calendar-day-details p{font-size:13px}.calendar-day-details img,.calendar-memory img{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:6px;margin:10px 0}.calendar-ledger-line{display:flex;gap:12px;justify-content:space-between;padding:12px 0;font-size:12px;border-top:1px solid #ffffff0a}.calendar-ledger-line strong{color:#c6b383;white-space:nowrap}.calendar-memory{margin:18px 0 0;padding:16px 0;background:transparent;border-top:1px solid #ffffff10;border-radius:0}.calendar-memory-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.calendar-memory-heading h4{font-size:14px;margin:0}.calendar-memory-heading button{font-size:12px;padding:8px 12px;margin:0}.calendar-memory figure{margin:12px 0 20px}.calendar-memory figcaption{font-size:11px;color:#8e8c87;text-align:center}.calendar-shoe-detail h5{font-size:13px;margin:18px 0 8px}.calendar-shoe-photos>small{display:block;margin-top:14px}@media(max-width:360px){.calendar-month-body{padding-left:10px;padding-right:10px}.calendar-grid,.calendar-week{gap:5px}.calendar-cell.is-task>span{left:3px;font-size:9px}.calendar-flag{width:15px;height:15px}.calendar-day-details dl div{grid-template-columns:82px 1fr}}

/* One surface for the document, overscroll and every native top-layer view. */
:root{--app-background:#131313;--app-safe-top:env(safe-area-inset-top,0px);background:var(--app-background)}html{min-height:100%;background-color:var(--app-background)}body{min-height:100svh;background:var(--app-background)}html:has(body.is-account-login),body.is-account-login{background:var(--app-background);background-attachment:scroll}dialog.content-lock,dialog.content-lock::backdrop{background:var(--app-background)}html::before,dialog[open]::before,#startup-splash::before{content:"";position:fixed;inset:0 0 auto;height:var(--app-safe-top);background:var(--app-background);border:0;box-shadow:none;pointer-events:none;z-index:2147483647}dialog::backdrop,.welcome-card::backdrop,.contract-viewer::backdrop,.photo-camera-dialog::backdrop{background:var(--app-background)}#startup-splash{background:var(--app-background)}

.calendar-day-dialog .contract-viewer-header{top:-18px;z-index:4;margin:-18px -18px 0;padding:14px 18px;background:#1b1d24}.calendar-day-dialog .calendar-day-details{overflow:visible}.calendar-day-dialog .calendar-day-details>summary{background:#1b1d24}.calendar-day-dialog .calendar-day-details[open]>summary{position:sticky;top:calc(var(--calendar-header-height,80px) - 18px);z-index:2;box-shadow:none}.calendar-day-dialog .modal-content-frame{scroll-padding-top:calc(var(--calendar-header-height,80px) + 12px)}

.family-page>.family-panel,.family-page>.family-panel>summary{background:var(--app-background)}.family-page>.family-panel>.family-panel-body{background:#202228;border-radius:0 0 19px 19px}.family-page>.family-panel[open]>summary{position:relative;box-shadow:none}

.family-page>.family-panel[open]>summary.is-viewport-locked{border-radius:0}

.calendar-camera-icon{position:absolute;right:4px;top:4px;width:11px;height:11px;color:#f3d6a7;pointer-events:none}.calendar-task-link{font-size:12px;padding:8px 14px;margin:8px 0 0}.calendar-day-details .calendar-ritual-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:12px;align-items:start}.calendar-ritual-copy{min-width:0}.calendar-ritual-copy>small{font-size:11px}.calendar-ritual-note{margin:10px 0 0}.calendar-ritual-note>summary{font-size:11px;padding:4px 0;color:#918b80}.calendar-ritual-row figure{margin:0;text-align:center}.calendar-ritual-thumbnail{display:block;width:100%;padding:0;margin:0;border:0;min-height:0;background:transparent}.calendar-day-details .calendar-ritual-thumbnail img{width:84px;height:84px;object-fit:cover;max-height:none;margin:0;border-radius:7px}.calendar-ritual-row figcaption{margin-top:7px;font-size:9px;line-height:1.6;color:#918b80;overflow-wrap:anywhere}.calendar-no-photo{display:grid;place-items:center;min-height:70px;border:1px dashed #ffffff14;border-radius:7px;font-size:10px;color:#77746f}.calendar-day-details .calendar-ritual-row.is-photo-expanded{grid-template-columns:1fr}.calendar-ritual-row.is-photo-expanded figure{width:100%}.calendar-day-details .is-photo-expanded .calendar-ritual-thumbnail img{width:100%;height:auto;max-height:420px;object-fit:contain}.calendar-ritual-row.is-photo-expanded figcaption{font-size:11px}

.photo-readonly-dialog .camera-review{justify-content:center}.photo-readonly-dialog .camera-review button{flex:0 1 180px}.shoe-completed-note p{font-size:13px;line-height:1.8}

/* Owner and slave accounts share the same portrait dimensions. */
.owner-portrait::after{display:none!important}
.owner-portrait{position:relative;border-radius:50%;overflow:visible}
.owner-portrait>img{border-radius:50%;width:100%;height:100%;object-fit:cover}
.owner-crown{position:absolute;right:5px;top:4px;width:30px;height:30px;border-radius:50%;background:#332811;border:1px solid #d9b86f;display:grid;place-items:center;color:#efca70;z-index:2}
.owner-crown svg{width:22px;height:22px;fill:currentColor}
.owner-member>summary{display:flex!important;align-items:center;gap:16px;min-height:122px}
.owner-member-avatar{width:68px!important;height:68px!important;min-width:68px;margin:0!important;border-radius:50%;background:#353535;overflow:visible}
.owner-member-avatar>img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.owner-member-avatar::after{width:22px;height:22px;font-size:16px;top:0;right:0}
.owner-member .family-panel-body{padding:16px;min-width:0}
.owner-member .loyalty-line{margin-top:0}
.owner-member .calendar-cell{padding:0!important}
.owner-review{padding:12px 0 18px;text-align:center;border-bottom:1px solid #ffffff12;margin-bottom:16px}
.owner-review>small{color:#bbae94;display:block;margin-bottom:10px}
.owner-review>div{display:flex;justify-content:center;gap:16px}
.owner-review button{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:65px;padding:9px 7px;background:#ffffff06;border:1px solid #ffffff15}
.owner-review button span{font-size:27px;line-height:1.1}
.owner-review button small{font-size:12px;color:#bcb7ad}
.owner-review button[aria-pressed=true]{border-color:#c3a768;background:#c3a76820}
.owner-review p{font-size:12px;color:#b3ae9f;min-height:1em}
.owner-task-row{border:1px solid #ffffff1a;border-radius:12px;margin:12px 0;overflow:hidden}
.owner-task-row>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 14px;cursor:pointer;list-style:none}
.owner-task-row>summary>span{display:flex;flex-direction:column;min-width:0;gap:5px}
.owner-task-row>summary strong{overflow-wrap:anywhere}
.owner-task-row>summary small{font-size:12px;color:#aaa69d}
.owner-task-row>summary em{font-size:12px;white-space:nowrap;font-style:normal}
.owner-task-body{padding:0 14px 18px}
.owner-shoe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.owner-photo-button{padding:0;border:0;background:transparent;width:100%;margin:8px 0}
.owner-photo-button img{display:block;width:100%;max-height:280px;object-fit:contain;border-radius:8px}
.owner-task-info dl div,.owner-subscription dl div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}
.owner-task-info dd,.owner-subscription dd{margin:0;text-align:right;overflow-wrap:anywhere}
.owner-gift-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;margin:8px 0}
.owner-gift-row .gift-pixel{width:40px;height:40px}
.owner-gift-row span{display:flex;flex-direction:column}
.owner-gift-row small{font-size:12px;color:#a9a49c}
.owner-detail-dialog [data-document-image] img,.gift-detail-photo img,[data-gift-photo] img{display:block;max-width:100%;max-height:65vh;object-fit:contain;margin:auto}
.owner-detail-dialog video{max-width:100%;max-height:65vh}
.gift-dialog form,.owner-detail-dialog form,.gift-dialog label,.owner-detail-dialog label{min-width:0;max-width:100%}
.gift-dialog input[type=date],.owner-detail-dialog input[type=date],.owner-detail-dialog input[type=datetime-local]{box-sizing:border-box;min-width:0;width:100%;max-width:100%}
.gift-dialog .gift-dialog-content{overflow-x:hidden}
.owner-detail-dialog .task-schedule{grid-template-columns:minmax(0,1fr);gap:12px}
.owner-detail-dialog .gift-icon-options{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.owner-detail-dialog .gift-icon-options label{flex:1;min-width:42px}
.account-event-dialog.event-normal{border-color:#629d76}
.account-event-dialog.event-minor{border-color:#e4bf65}
.account-event-dialog.event-severe{border-color:#cc6767}
.event-normal .contract-viewer-header h3{color:#9ccba4}
.event-minor .contract-viewer-header h3{color:#f1d084}
.event-severe .contract-viewer-header h3{color:#ee9696}
nav button.has-new-review{position:relative}
nav button.has-new-review::after,.review-red-dot{content:'';position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:#f45d64;box-shadow:0 0 0 2px #131313}
.review-red-dot{z-index:2}
.calendar-cell:has(.review-red-dot) .calendar-camera-icon{right:12px}
.slave-review-details{border:1px solid #7e5c34;border-radius:10px;padding:12px}
.slave-review-details small{display:block;font-size:12px;color:#bcb5a5}

.owner-member-days{margin:0 0 20px;padding:0;border:0;background:transparent}
.owner-days-heading{display:block;margin:0 0 10px;color:#bbae94;font-size:12px;letter-spacing:1px}
.owner-member-days .day-grid{gap:12px}
.owner-member-days article.day-tile{height:152px;padding:12px 10px;border-radius:14px;background:linear-gradient(145deg,#302c25,#222329);border:1px solid #ad955335;justify-content:flex-start}
.owner-day-person{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;margin-bottom:7px}
.owner-day-name{font-size:13px;color:#e0d7c4;line-height:1.25}
.owner-day-position{font-size:10px;color:#a59c89;line-height:1.3}
.owner-member-days .day-title{font-size:12px;height:34px;max-height:34px;line-height:1.4;color:#b4ab98;flex-shrink:0}
.owner-member-days .day-value{min-height:42px;margin-top:2px}
.owner-member-days .day-value strong{font-size:40px;font-weight:500;letter-spacing:-1px}
.owner-member-days .owner-day-empty{background:#24252a;border-color:#ffffff12}
.owner-member-days .owner-day-empty .day-value strong{color:#7d7b73;font-size:30px}
@media(max-width:340px){.owner-member-days .day-grid{gap:8px}.owner-member-days article.day-tile{padding-inline:7px}}

/* Clip only the portrait; keep the crown above the circular photo. */
.owner-portrait{position:relative;display:block;aspect-ratio:1;flex-shrink:0;overflow:visible}
.owner-avatar-crop{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:#423a2b}
.owner-avatar-crop>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 4%;transform:scale(1.7);transform-origin:50% 0;border-radius:0}
.owner-avatar-crop>.default-avatar{position:absolute;inset:14%;width:72%;height:72%}
.owner-member>summary{min-height:104px;padding:16px!important;gap:12px!important}
.owner-member .family-panel-body{padding:12px}
.owner-member-days{margin-bottom:12px}
.owner-member-days article.day-tile{height:132px;padding:10px 8px}
.owner-day-person{gap:2px;margin-bottom:4px}
.owner-day-name{font-size:12px}
.owner-member-days .day-title{height:28px;max-height:28px;font-size:11px;line-height:1.3}
.owner-member .loyalty-line{padding:12px 16px;margin:0 0 12px;border-radius:12px}
.owner-member .calendar-month>summary{padding:12px}
.owner-member .calendar-month-body{padding:10px}
.owner-member .archive-fold{margin-top:10px}
.owner-task-swipe{position:relative;overflow:hidden;border-radius:12px;margin:12px 0;background:#b84747}
.owner-task-swipe .owner-task-row{position:relative;z-index:1;background:#202228;margin:0;transition:transform .2s ease;border-color:#ffffff18}
.owner-task-swipe.is-delete-revealed .owner-task-row{transform:translateX(-76px)}
.owner-task-delete{position:absolute;right:0;top:0;height:76px;width:76px;margin:0;border:0;border-radius:0;background:#b84747;color:#fff;visibility:hidden;z-index:0}
.owner-task-swipe.is-delete-revealed .owner-task-delete{visibility:visible}
.owner-task-divider{height:1px;border:0;background:#ffffff18;margin:26px 0 20px}
.task-title-danger{color:#ef8585!important}
.owner-confirm-copy{line-height:1.9;white-space:normal}
.owner-confirm-actions{display:flex;gap:12px;margin-top:18px}
.owner-confirm-actions button{flex:1}
.owner-confirm-actions [data-confirm-yes]{background:#a5493f35;border-color:#be6a5b}
.owner-task-info [data-owner-task-photos][hidden]{display:none}
.owner-task-info [data-owner-review-photos]{width:100%;margin:8px 0}
.disaster-title{display:flex;align-items:center;gap:10px}
.disaster-pixel-icon{display:inline-block;width:30px;height:30px;flex-shrink:0}
.owner-subscription summary:has(.default-avatar){display:flex;align-items:center;gap:8px}
.owner-subscription summary>.default-avatar{width:28px;height:28px;flex:0 0 28px}
.owner-subscription summary>span{flex:1}
.owner-subscription summary>small{font-size:11px;white-space:nowrap}
.disaster-period{font-size:13px;padding-bottom:12px;border-bottom:1px solid #ffffff10}
.disaster-selection{border:1px solid #77644055;border-radius:10px;padding:12px;min-width:0;margin:14px 0}
.disaster-selection legend{font-size:13px;color:#d1b981}
.disaster-selection .check{font-size:13px;margin:8px 0}
.disaster-selection input{width:auto!important;flex-shrink:0}
.owner-archive-servant .servant-portrait{width:112px;height:112px}
[data-owner-ritual-archive] img{width:100%;max-height:300px;object-fit:contain;border-radius:8px;cursor:pointer}
[data-owner-ritual-archive] figcaption{color:#aaa08b;font-size:12px;margin-top:6px}

.archive-fold>summary::after{content:"›"}

.owner-subscription .network-offline,.subscription-introduction .network-offline{color:#eb8585}

.task-history-row>summary span{min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.task-history-row>summary::after{flex-shrink:0}

/* Keep all secondary-panel fields within their own layout. */
dialog .modal-content-frame{overflow-x:hidden;max-width:100%;box-sizing:border-box}
dialog :is(form,fieldset,label,.task-schedule){min-width:0;max-width:100%;box-sizing:border-box}
dialog :is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
dialog input:not([type=checkbox]):not([type=radio]):not([type=hidden]),dialog select,dialog textarea{width:100%;display:block}
dialog input:is([type=date],[type=time],[type=datetime-local]){appearance:none;-webkit-appearance:none;overflow:hidden;min-inline-size:0;max-inline-size:100%}
dialog input::-webkit-date-and-time-value{min-width:0;text-align:left}dialog input::-webkit-datetime-edit{min-width:0;padding:0}
dialog .task-schedule{grid-template-columns:minmax(0,1fr)}dialog :is(button,legend){max-width:100%;overflow-wrap:anywhere}
[data-member-contract]{padding:12px 14px 18px;display:flow-root}
.identity-document-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}
.identity-document-actions button{width:100%;min-width:0;margin:0;white-space:normal;overflow-wrap:anywhere}.identity-document-actions button:only-child{grid-column:1/-1}
.recent-accounts{display:grid;gap:8px;margin:0 0 14px}.recent-account{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;margin:0;text-align:left}.recent-account strong{font-size:14px}.recent-account small{font-size:11px;color:#aaa391;overflow-wrap:anywhere}

.achievements-panel>summary small{font-size:12px;color:#999487;font-weight:400;margin-left:auto}.achievement-body{padding:10px}.achievement-tabs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}.achievement-tabs button{flex:1 1 auto;padding:8px 6px;font-size:12px;margin:0;background:transparent;color:#a9a394;border-color:#ffffff12;min-width:0}.achievement-tabs button[aria-selected=true]{color:#edd39a;background:#c5a45b15;border-color:#c5a45b66}.achievement-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.achievement-cell{padding:2px;margin:0;min-width:0;width:100%;aspect-ratio:1;border-radius:5px;border:1px solid #ffffff0b;background:#13151b;display:grid;place-items:center;touch-action:manipulation}.achievement-badge{display:block;width:100%;height:auto;image-rendering:pixelated}.achievement-cell.is-locked .achievement-badge,.achievement-hero.is-locked .achievement-badge{filter:grayscale(1);opacity:.32}.achievement-cell.is-unlocked{border-color:#bea36540;background:#bca16d0a;box-shadow:inset 0 0 8px #c8a95b13}.achievement-cell:focus-visible{outline:2px solid #d8bd82;outline-offset:2px}.achievement-series{margin:0 0 18px;padding:0;background:none;border:0}.achievement-series h4{font-size:12px;font-weight:400;color:#aaa28f;letter-spacing:.12em;margin:10px 0}.achievement-key{font-size:10px;color:#827e75;text-align:center;margin:16px 0 5px}.achievement-hero{text-align:center;padding:16px 0}.achievement-hero .achievement-badge{width:180px;margin:0 auto 14px}.achievement-hero h2{font-size:27px;margin:10px 0;color:#e9d5a8}.achievement-hero small{font-size:12px;color:#b29d72}.achievement-hero p{font-size:13px;line-height:1.8;color:#aaa69b}.achievement-info{font-size:13px}.achievement-info>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;margin:14px 0}.achievement-info dt{color:#8f8b81}.achievement-info dd{margin:0;overflow-wrap:anywhere}.achievement-dialog progress{width:100%;height:6px;accent-color:#c7a968}.achievement-memory img,.achievement-card-preview img{display:block;width:100%;max-height:420px;object-fit:contain;margin:16px auto;border-radius:10px}.achievement-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.achievement-detail-actions button{min-width:0;margin:0;font-size:13px}.achievement-card-number{text-align:center;font-size:11px;opacity:.6}

.estate-panel>summary small{font-size:9px;font-weight:400;letter-spacing:.12em;color:#968569;margin-left:auto}.estate-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;font-size:13px;color:#ddc391}.estate-heading small{font-size:10px;color:#a59a86}.estate-stage{position:relative;aspect-ratio:16/9;overflow:hidden;background:#544333;margin:0 6px 8px;border-radius:10px;touch-action:manipulation}.estate-stage>canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.estate-hotspots{position:absolute;inset:0;pointer-events:none}.estate-hand{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);border-radius:50%;width:27px;height:27px;min-height:0;min-width:0;padding:5px;margin:0;border:1px solid #ead6a280;background:#57432bc9;color:#f5e9bf;box-shadow:0 2px 8px #25150940}.estate-hand svg{display:block;width:100%;height:100%}.estate-hand small{position:absolute;top:27px;left:50%;transform:translateX(-50%);font-size:8px;color:#ffe5af;white-space:nowrap;text-shadow:0 1px 2px #221b12;pointer-events:none}.estate-hand.is-tool{background:#44332bdc}.estate-hand.is-tool small{font-size:9px}.estate-live{position:absolute;left:8px;bottom:3px;right:8px;margin:0!important;pointer-events:none;font-size:9px;color:#ffe0a3;text-shadow:0 1px 3px #442e20}.estate-dialog .estate-menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.estate-dialog button{margin:0;font-size:13px}.estate-dialog .estate-room-links{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid #b99c6533}.estate-avatar-preview{display:grid;place-items:center;min-height:160px;border-radius:12px;background:#282923;overflow:hidden;margin:12px 0}.estate-avatar-preview canvas{width:192px;height:192px;image-rendering:pixelated}.estate-shop-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.estate-shop-tabs button[aria-pressed=true]{border-color:#c9a658;color:#e9ca84;background:#6b563540}.estate-wallet{font-size:12px;color:#c1ab7d}.estate-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;margin:8px 0;background:#24271f;border-color:#ffffff0c}.estate-item img{width:48px;height:48px;image-rendering:pixelated}.estate-item strong{font-size:13px}.estate-item small{display:block;font-size:10px;color:#a39a83;margin-top:6px}.estate-item button{padding:8px;font-size:12px}.estate-inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.estate-inventory button{padding:7px;min-width:0;display:flex;align-items:center;flex-direction:column;gap:7px}.estate-inventory img{width:54px;height:54px;image-rendering:pixelated}.estate-inventory span{font-size:11px}.estate-transaction{font-size:12px}.estate-transaction small{display:block;font-size:10px;opacity:.55;margin-top:4px}.estate-photo-preview img{display:block;width:100%;margin:12px 0;border-radius:10px}.estate-dialog .check{display:flex;gap:10px;align-items:center}.estate-dialog .check input{width:auto!important}

.achievement-card-number{overflow-wrap:anywhere;line-height:1.8}

.estate-dot{width:18px;height:18px;padding:0;min-height:0;background:#eac98722;border:1px solid #eedbad55;box-shadow:0 0 0 3px #19171422}.estate-dot span{display:block;width:5px;height:5px;margin:auto;border-radius:50%;background:#f4deb0;box-shadow:0 0 5px #ffe0a688}.estate-dot:hover,.estate-dot:focus-visible{background:#d6af5777}.estate-map-arrow{position:absolute;top:46%;width:28px;height:36px;margin:0;padding:0;font-size:30px;line-height:30px;color:#f5ddac;background:#32251acc;border:1px solid #dec79166;pointer-events:auto}.estate-map-arrow.is-left{left:3px}.estate-map-arrow.is-right{right:3px}.estate-hotspots.is-transitioning{visibility:hidden}

.estate-dot,.estate-dot.is-tool{width:32px;height:32px;border:0;box-shadow:none;background:transparent;display:grid;place-items:center}.estate-dot::before{content:"";position:absolute;inset:8px;border:1px solid #eedbad55;border-radius:50%;background:#22181144}.estate-dot span{position:relative;z-index:1}.estate-dot:hover::before,.estate-dot:focus-visible::before{background:#d6af5777}

nav button.has-new-update{position:relative}nav button.has-new-update::after{content:"";position:absolute;right:8px;top:5px;width:7px;height:7px;border-radius:50%;background:#ed5151;box-shadow:0 0 0 2px #131313;pointer-events:none}

button[data-action="update"].has-new-update{position:relative}button[data-action="update"].has-new-update::after{content:"";position:absolute;right:8px;top:5px;width:7px;height:7px;border-radius:50%;background:#ed5151;pointer-events:none}

/* Estate controls and quality cards */
.estate-toolbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 8px 2px}.estate-toolbar button{display:grid;justify-items:center;gap:3px;padding:9px 4px;background:#292722;border:1px solid #645941;border-radius:10px;color:#dfc78f}.estate-toolbar button>span{font-size:24px}.estate-toolbar small{font-size:12px}.estate-shop-tabs{display:flex;flex-wrap:wrap;gap:6px;position:sticky;top:0;background:#272520;z-index:1;padding:8px 0}.estate-shop-list{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.estate-goods-card{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;padding:9px 4px;border:2px solid var(--quality);border-radius:9px;background:#252423;box-shadow:inset 0 0 12px color-mix(in srgb,var(--quality) 15%,transparent)}.estate-goods-card img{width:72px;max-width:100%;image-rendering:pixelated}.estate-goods-card strong{font-size:12px;line-height:1.5}.estate-goods-card small{font-size:10px;color:var(--quality);line-height:1.6}.estate-goods-detail{text-align:center}.estate-goods-detail>img{width:128px;image-rendering:pixelated}.estate-owned-goods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.estate-owned-goods img{width:48px;image-rendering:pixelated}.estate-owned-goods button{display:flex;flex-direction:column;align-items:center;min-width:0;padding:5px}.estate-owned-goods small{font-size:10px}.estate-dialog .estate-avatar-preview canvas{image-rendering:pixelated}

.estate-dresser{width:min(980px,94vw);max-width:94vw;box-sizing:border-box;position:relative}.doll-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.2fr);gap:18px}.doll-left,.doll-bag{min-width:0}.doll-identity{text-align:center;color:#dac9a2;margin:5px 0}.doll-ring{height:310px;position:relative;background:radial-gradient(ellipse,#60594780,transparent 65%);border:1px solid #605741;border-radius:14px}.doll-ring canvas{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:210px;height:262px;max-width:65%;image-rendering:pixelated}.doll-slots{position:absolute;inset:8px;display:grid;grid-template-columns:66px 1fr 66px;grid-template-rows:repeat(5,56px);gap:3px;pointer-events:none}.doll-slot{pointer-events:auto;border:2px solid var(--quality);border-radius:7px;padding:2px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#27282b;color:#e8d8ba;min-width:0}.doll-slot img{width:32px;height:32px;image-rendering:pixelated}.doll-slot small{font-size:10px}.doll-empty{font-size:24px;color:#847e70}.slot-head{grid-column:2;grid-row:1;justify-self:center;width:66px}.slot-glasses{grid-column:1;grid-row:2}.slot-neck,.slot-collar{grid-column:1;grid-row:3}.slot-top{grid-column:1;grid-row:4}.slot-shoes{grid-column:1;grid-row:5}.slot-back{grid-column:3;grid-row:2}.slot-hand{grid-column:3;grid-row:3}.slot-bottom{grid-column:3;grid-row:4}.slot-socks{grid-column:3;grid-row:5}.doll-status{font-size:12px;min-height:32px;color:#d9c394;line-height:1.5;margin:7px 0}.doll-settings{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.doll-settings label{min-width:0;font-size:12px}.doll-settings select{width:100%;min-width:0;box-sizing:border-box}.doll-settings .check,.doll-settings button{grid-column:1/-1}.doll-bag{border-left:1px solid #5c5341;padding-left:14px}.doll-bag h4{margin:4px 0 12px}.doll-bag h4 small{font-size:11px;color:#a89c82}.doll-filters{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.doll-filters button{padding:5px 7px;font-size:11px}.doll-filters button[aria-pressed=true]{border-color:#e8c773;background:#594b31}.doll-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-height:550px;overflow:auto;align-content:start}.doll-item{position:relative;border:2px solid var(--quality);background:#292a2e;border-radius:8px;min-width:0;padding:7px 2px;display:flex;align-items:center;flex-direction:column;color:#e4d5b5;gap:3px}.doll-item img{width:52px;max-width:100%;image-rendering:pixelated}.doll-item strong{font-size:10px;overflow-wrap:anywhere;line-height:1.4}.doll-item small{font-size:9px;color:var(--quality)}.doll-equipped{font-size:8px;background:#344c3b;color:#bed9af;padding:1px 3px;border-radius:3px}.doll-empty-bag{grid-column:1/-1;font-size:12px;color:#aa9e88}.doll-context{position:absolute;z-index:10;background:#24252a;border:1px solid #c5aa6e;box-shadow:0 6px 24px #0009;border-radius:9px;padding:5px;box-sizing:border-box;display:grid;gap:4px}.doll-context button{padding:9px 8px;background:#36352f;border:0;border-radius:4px;text-align:left;font-size:13px;color:#eee0ba}.doll-context button:disabled{opacity:.4}@media(max-width:600px){.estate-dresser{padding:10px}.doll-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px}.doll-bag{padding-left:7px}.doll-ring{height:260px}.doll-slots{inset:5px;grid-template-columns:38px minmax(0,1fr) 38px;grid-template-rows:repeat(5,47px);gap:2px}.doll-slot img{width:23px;height:23px}.doll-slot small{font-size:9px}.slot-head{width:38px}.doll-ring canvas{width:180px;height:225px;max-width:70%;bottom:14px}.doll-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:560px}.doll-item img{width:42px}.doll-filters button{padding:4px;font-size:10px}.doll-settings{grid-template-columns:minmax(0,1fr)}.doll-status{font-size:11px}.doll-identity{font-size:11px}}

.estate-dresser .doll-slot,.estate-dresser .doll-item{border:2px solid var(--quality)}.estate-dresser .doll-ring canvas{width:100%;max-width:264px;height:auto;top:50%;bottom:auto;transform:translate(-50%,-50%)}.estate-dresser .doll-settings label{margin:0}.estate-dresser .doll-settings{row-gap:10px}.estate-dresser .doll-settings select{margin:4px 0 0}@media(max-width:600px){.estate-dresser .doll-ring canvas{width:100%;max-width:180px;height:auto;top:50%;bottom:auto}.estate-dresser .doll-settings{gap:8px}.estate-dresser .doll-slot{padding:1px}}

.estate-dresser .doll-left{padding:0;background:transparent}.estate-dresser .doll-bag{padding:0 0 0 10px;background:transparent}.estate-dresser .doll-slot,.estate-dresser .doll-item{border:2px solid var(--quality)!important;box-shadow:inset 0 0 0 1px #0005}.estate-dresser .doll-bag h4{margin-bottom:12px}@media(max-width:600px){.estate-dresser .doll-bag{padding-left:7px}.estate-dresser .doll-ring{height:260px}}

.doll-quality-0{--quality:#a79985}.doll-quality-1{--quality:#588c79}.doll-quality-2{--quality:#6b9fcc}.doll-quality-3{--quality:#a677c1}.doll-quality-4{--quality:#d6ab52}.doll-quality-5{--quality:#ecce8e}

.doll-detail-quality{color:var(--quality)}

.doll-quality-0{--quality:#eeeeee}.doll-quality-1{--quality:#58cb76}.doll-quality-2{--quality:#579cf0}.doll-quality-3{--quality:#af73e3}.doll-quality-4{--quality:#ffa13b}.doll-quality-5{--quality:#ee5357}

.slot-toy{grid-column:2;grid-row:5;justify-self:center;width:66px}.estate-pair-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.estate-pair-actions button{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0;padding:10px 5px}.estate-pair-actions img{width:42px;height:42px;image-rendering:pixelated}.estate-pair-actions span{font-size:12px}@media(max-width:600px){.slot-toy{width:38px}}

.estate-owned-goods button{border:2px solid var(--quality);border-radius:8px}

/* Global floating notices stay above the content, clear of ritual actions. */
#message,.operation-progress{position:fixed;top:calc(12px + var(--app-safe-top,env(safe-area-inset-top,0px)));bottom:auto;left:50%;transform:translateX(-50%);width:min(420px,calc(100vw - 28px));max-height:calc(50vh - 24px);margin:0;padding:14px 18px;border:1px solid #b69a6080;border-radius:14px;background:#242731f5;color:#f0e4cc;box-shadow:0 8px 28px #0006;text-align:center;line-height:1.6;overflow:auto;z-index:2147483000}
#message{pointer-events:none}
#message:empty{display:none}
#message.message-update{padding:14px 18px;border:1px solid #b69a6080;border-radius:14px;background:#242731f5;box-shadow:0 8px 28px #0006}
.operation-progress{pointer-events:none}
.operation-progress button{pointer-events:auto}

/* Six equipment positions around the model preview. */
.doll-slots{grid-template-rows:repeat(3,76px);gap:18px 3px;padding-top:8px}.doll-slots .slot-head{grid-area:1/1}.doll-slots .slot-glasses{grid-area:1/3}.doll-slots .slot-hair{grid-area:2/1}.doll-slots .slot-outfit{grid-area:2/3}.doll-slots .slot-socks{grid-area:3/1}.doll-slots .slot-shoes{grid-area:3/3}

/* Complete appearance inventory: one outfit slot, plus the servant collar. */
.whole-appearance-layout .whole-preview canvas{display:block;width:100%;max-width:320px;height:auto;margin:auto;background:radial-gradient(ellipse at center,#302d28,#191b20);border:1px solid #76694b;border-radius:12px}.whole-preview-actions{display:flex;justify-content:center;gap:5px;margin:9px 0;flex-wrap:wrap}.whole-preview-actions button{font-size:12px;padding:5px 8px}.whole-appearance-slots{position:static!important;display:flex!important;justify-content:center;gap:12px;margin:12px 0}.whole-appearance-slots .whole-appearance-slot{position:static!important;transform:none!important;width:100px;height:116px;padding:5px;display:flex;flex-direction:column;align-items:center;justify-content:center}.whole-appearance-slot img{width:80px;height:80px;object-fit:contain}.whole-appearance-slot small{display:block;font-size:12px}.whole-collar-note{font-size:12px;color:#d5c9ac;text-align:center}.estate-toolbar-icon{width:32px;height:32px;object-fit:contain}.estate-pair-actions button[data-dress-slave]{display:flex;align-items:center;justify-content:center;gap:8px}.estate-pair-actions button[data-dress-slave] img,button[data-dress-slave]>img{width:32px;height:32px}.whole-appearance-layout .doll-items{margin-top:12px}.whole-appearance-layout .doll-item img{object-fit:contain}.whole-appearance-layout .doll-status{text-align:center}
.character-choices{margin:12px 0;padding:12px;border:1px solid #756238;border-radius:12px;min-width:0}.character-choices legend{color:#e5cea0;padding:0 6px}.character-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.character-choice{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:0!important;padding:12px 8px;border:2px solid #575862;border-radius:12px;background:#22232b;cursor:pointer;min-width:0}.character-choice:has(input:checked){border-color:#efd089;background:#403829}.character-choice:has(input:focus-visible){outline:2px solid #fff;outline-offset:3px}.character-choice input[type=radio]{position:absolute;width:1px!important;height:1px!important;opacity:0;padding:0!important;margin:0!important}.character-choice-avatar{display:flex;width:64px;height:64px;overflow:hidden;border-radius:50%;background:#363846;align-items:center;justify-content:center}.character-choice-avatar img,.character-choice-avatar svg{width:100%;height:100%;object-fit:contain}.character-choice-name{color:#f1e4ce;text-align:center;overflow-wrap:anywhere;font-size:14px}.character-choice:has(input:disabled){cursor:default;opacity:.7}@media(max-width:480px){.character-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.estate-map-arrow.is-up,.estate-map-arrow.is-down{left:12%;top:76%;font-size:24px}.estate-map-arrow.is-bedroom-courtyard{top:35%}.estate-audience-status{margin:0 12px 8px!important;color:#ddc391;font-size:12px;font-variant-numeric:tabular-nums}.estate-toolbar button[hidden],.estate-audience-status[hidden]{display:none}

.estate-camera-tools{position:absolute;right:9px;top:9px;z-index:3;display:flex;gap:6px;align-items:center}.estate-camera{position:static;display:grid;place-items:center;box-sizing:border-box;flex:0 0 34px;width:34px;height:32px;min-height:0;padding:6px;margin:0;border:1px solid #dec79166;border-radius:8px;background:#32251acc;color:#f5ddac;font-size:17px;line-height:1}.estate-camera[hidden]{display:none}.estate-camera[aria-pressed=true]{border-color:#f5ddac;background:#6b4828}.estate-camera:focus-visible{outline:2px solid #f5ddac;outline-offset:2px}.estate-camera svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}

.app-version{margin:2px 0 0;color:#aaa391;font-size:12px;line-height:1.5}

/* Compact task summaries retain full names, deadlines and descriptions on narrow screens. */
.task-summary-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}.task-summary-info strong{font-size:15px;line-height:1.45;white-space:normal}.task-summary-info small{display:block;font-size:12px;line-height:1.6;color:#aaa69d}.task-summary-info .task-summary-description{font-size:11px;color:#c0b7a8;white-space:pre-wrap}.owner-task-row>summary,.task-archive-card>summary{align-items:flex-start}.owner-task-row>summary>em{flex:0 0 auto;white-space:nowrap;font-size:12px;margin-top:3px}
.task-summary-time>span{display:inline-block;white-space:nowrap}
/* Estate relationship register, duties and private gallery. */
.estate-relations,.estate-duty-list{display:grid;gap:12px;margin:16px 0}.estate-relations article,.estate-duty-list article{padding:14px;border:1px solid #8d77534d;border-radius:12px;background:#ac946610}.estate-role-chip{display:inline-block;margin-left:8px;border:1px solid #9d805b66;border-radius:20px;padding:2px 9px;font-size:12px;color:#94723d}.estate-duty-description{white-space:pre-wrap;overflow-wrap:anywhere}.estate-dialog form{display:grid;gap:12px;margin:16px 0}.estate-dialog form label{display:grid;gap:5px}.estate-dialog form input:not([type=radio]),.estate-dialog form textarea{width:100%;max-width:100%;box-sizing:border-box;padding:10px;border:1px solid #9b8d7555;border-radius:8px;background:#242630;color:inherit}.estate-dialog form textarea{min-height:76px;resize:vertical}.estate-dialog .estate-duty-person{display:flex;align-items:center;gap:8px;margin:8px 0}.estate-gallery-detail{max-height:70vh;overflow:auto;touch-action:pan-x pan-y}.estate-gallery-detail img{display:block;width:100%;height:auto;cursor:zoom-in}.estate-gallery-detail img.is-original{width:auto;max-width:none;cursor:zoom-out}.estate-dialog [data-gallery-list]{display:grid;gap:8px}.estate-toolbar{flex-wrap:wrap}

.estate-map-arrow.is-floor-link{width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:22px;line-height:22px}.estate-map-arrow.is-floor-link small{font-size:9px;line-height:12px;white-space:nowrap}.estate-map-arrow.is-lounge-floor.is-up{left:calc(12% + 56px)}



.servant-portrait::after{content:"奴";position:absolute;top:10px;right:16px;width:30px;height:30px;display:grid;place-items:center;border:3px double #c4584b;border-radius:50%;color:#e18673;background:radial-gradient(circle,#57251ed9,#361713e8);font-family:"Kaiti SC","STKaiti","KaiTi","Songti SC",serif;font-size:21px;font-weight:600;line-height:1;transform:rotate(-6deg);text-shadow:0 1px 0 #2c0d09;pointer-events:none;z-index:1}
.approved-default-avatar{width:100%;height:100%;opacity:1;flex-shrink:0;border-radius:50%}
/* Growth tree: horizontally scrollable on iPhone, with explicit state labels. */
.growth-panel{margin:18px 0;padding:16px;border:1px solid #665438;border-radius:12px;background:#191815;color:#eee6d6}
.growth-panel h3,.growth-panel h4{margin:8px 0 12px}.growth-panel p,.growth-panel dd{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}
.growth-current strong{color:#f2cf87}.growth-tree-scroll{overflow:auto;max-height:350px;padding:12px 0 18px;overscroll-behavior:contain}
.growth-tree{display:grid;grid-template-columns:130px 130px 130px 470px 470px;align-items:start;gap:24px;min-width:1426px}
.growth-base{position:relative}.growth-base:after{content:'→';position:absolute;right:-21px;top:40%;color:#beaa83}
.growth-roots,.growth-children{display:grid;gap:18px}.growth-children>div{display:grid;gap:8px}
.growth-route-row{display:flex;align-items:center;gap:5px}.growth-arrow{color:#aa9879}
.growth-node{flex:1;min-width:125px;min-height:76px;padding:10px 8px;border:1px solid #675d4b;border-radius:10px;background:#24221e;color:#e5dbc7;text-align:center;cursor:pointer}
.growth-node strong,.growth-node small{display:block}.growth-node small{margin-top:6px;font-size:12px}.growth-node.is-complete{border-color:#619377;background:#1b3026}
.growth-node.is-current{border:2px solid #e6c37b;background:#3a2f1a}.growth-node.is-available{border-color:#7eaff0;background:#1d2b3c}
.growth-node.is-locked{background:#202020;color:#aaa}.growth-node.is-unselected{border-style:dashed}.growth-node[aria-pressed=true]{outline:2px solid #fff;outline-offset:3px}
.growth-node-detail,.growth-exam{padding:14px;border:1px solid #524938;border-radius:10px;margin:12px 0}.growth-panel form{display:grid;gap:12px;margin:14px 0}
.growth-panel form label{display:grid;gap:6px}.growth-panel .growth-check{display:flex;align-items:flex-start;gap:8px;margin:10px 0;line-height:1.6}
.growth-panel .growth-check input{flex:0 0 auto;width:20px;height:20px;margin-top:3px}.growth-panel input,.growth-panel select,.growth-panel textarea{box-sizing:border-box;width:100%;min-height:44px;max-width:100%}
.growth-panel textarea{min-height:90px}.growth-panel button{min-height:44px;margin:4px 4px 4px 0}.growth-panel details{padding:12px 0;border-bottom:1px solid #423c31}.growth-panel summary{min-height:44px;cursor:pointer;line-height:1.6}
.growth-panel dd{margin:4px 0 12px}.growth-panel dt{color:#bea980}.growth-panel [data-growth-status]{color:#ffd18c}.growth-panel [hidden]{display:none!important}
.growth-panel[aria-busy=true]{opacity:.8}.owner-growth-group>details>summary{padding:12px;min-height:44px}
.growth-panel .growth-node{min-height:58px;padding:8px 6px;font-size:13px;margin:0}.growth-node small{font-size:11px;margin-top:3px}
@media(max-width:600px){.growth-panel{padding:12px 10px}.growth-panel button:not(.growth-node){max-width:100%}.growth-tree{gap:20px}}

/* User-supplied Q/lion wordmark: preserve the complete original artwork. */
#startup-splash{background:#dfd7cb}#startup-splash img{width:100%;height:100%;max-width:100%;object-fit:contain}.family-cover>img{width:min(100%,420px);height:auto;max-height:none;object-fit:contain;border-radius:12px}.site-brand-footer .site-brand-lockup img{width:min(360px,100%);max-width:100%;height:auto;border-radius:10px;opacity:1}

.unlock-symbol img{display:block;width:76px;height:76px;object-fit:contain;border-radius:16px;margin:0 auto}

.site-brand-footer .site-brand-lockup img{border-radius:0}

/* Estate toolbar: matching leather and brass pixel icons. */
.estate-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 8px 2px}.estate-toolbar button{min-height:76px;gap:7px;padding:12px 6px;border-radius:12px;background:#292722;border-color:#645941}.estate-toolbar button>span{display:grid;place-items:center;width:36px;height:36px}.estate-toolbar .estate-toolbar-icon{width:36px;height:36px;image-rendering:pixelated}.estate-toolbar button:active{background:#373026}.estate-toolbar button:focus-visible{outline:2px solid #dbc892;outline-offset:3px}

/* Dynasty signature: fixed gold type and symmetric engraved ornaments. */
.site-brand-footer h2.qian-dynasty{display:flex;align-items:center;justify-content:center;gap:22px;margin:24px auto 14px;max-width:520px;font-family:'STKaiti','KaiTi','Noto Serif CJK TC','PMingLiU',serif;font-size:clamp(38px,6vw,52px);font-weight:700;line-height:1.35;color:#e5c478;letter-spacing:0;text-shadow:0 1px 0 #705022,0 0 22px #b9904520}
.qian-dynasty .dynasty-name{display:block;white-space:nowrap;letter-spacing:.24em;padding-left:.24em}
.qian-dynasty .dynasty-ornament{position:relative;display:block;flex:1;max-width:108px;min-width:35px;height:22px;background:linear-gradient(90deg,transparent,#aa8546 55%,#d5b36d) center/100% 1px no-repeat}
.qian-dynasty .dynasty-ornament:last-child{transform:scaleX(-1)}
.dynasty-ornament:before,.dynasty-ornament:after{content:'';position:absolute;right:10px;width:29px;height:7px;border:1px solid #b99553;border-left:0;border-bottom:0;transform:skewX(-32deg)}
.dynasty-ornament:before{top:2px}.dynasty-ornament:after{bottom:2px;transform:scaleY(-1) skewX(-32deg)}
.dynasty-ornament i{position:absolute;width:6px;height:6px;right:0;top:8px;border:1px solid #e0bf79;transform:rotate(45deg);background:#161512}
.site-brand-footer .site-brand-motto{color:#b69a65;letter-spacing:.12em}
@media(max-width:420px){.site-brand-footer h2.qian-dynasty{gap:16px;margin-top:20px;max-width:330px}.qian-dynasty .dynasty-ornament{max-width:65px}.site-brand-footer .site-brand-motto{font-size:10px;letter-spacing:.08em}}

.estate-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,380px);box-sizing:border-box;margin:0 auto;padding:12px 8px 2px}.estate-toolbar button{min-height:0;gap:3px;padding:9px 4px;border-radius:10px}.estate-toolbar button>span{display:grid;place-items:center;width:32px;height:32px}.estate-toolbar .estate-toolbar-icon{width:32px;height:32px;object-fit:contain;image-rendering:auto}.estate-toolbar button:active{background:#373026}.estate-toolbar button:focus-visible{outline:2px solid #dbc892;outline-offset:3px}

.fixed-profile .owner-archive-photo{display:block;width:100%;height:auto;min-height:0;margin:0 0 20px;padding:0;border:0;border-radius:12px;overflow:hidden;background:#141414;cursor:zoom-in}.fixed-profile .owner-archive-photo img,#profile-portrait .profile-portrait{display:block;width:100%;height:auto;aspect-ratio:auto;max-height:none;object-fit:contain;object-position:center;border-radius:12px;margin:0}

.estate-toolbar{margin-left:0;margin-right:auto}.estate-toolbar button{margin-left:0;margin-right:0}

/* Approved restrained startup design, matching qian-startup-v2 preview. */
html:has(body.startup-active),body.startup-active{overflow:hidden;overscroll-behavior:none}
#startup-splash{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 42%,#21201b 0%,#141412 42%,#101010 76%);color:#c6a75e;font-family:Georgia,'Songti SC','SimSun',serif}
#startup-splash .startup-identity{width:min(79vw,510px);transform:translateY(-24px);text-align:center;flex:none}
#startup-splash .startup-identity img{display:block;width:100%;height:auto;max-width:none;object-fit:contain}
#startup-splash .startup-rule{width:34px;height:1px;background:#8a7549;margin:34px auto 23px;opacity:.7}
#startup-splash .startup-motto{font-size:12px;font-weight:400;line-height:normal;letter-spacing:.24em;color:#9c8e70;margin:0}
#startup-splash .startup-signature{position:absolute;bottom:max(7vh,30px);font-family:Arial,sans-serif;font-size:9px;font-weight:400;line-height:normal;letter-spacing:.3em;color:#6d6759;text-align:center}
#startup-splash .startup-signature span{display:block;margin:13px auto 0;width:18px;height:1px;background:#766344}
@media(min-width:900px){#startup-splash .startup-identity{width:450px}#startup-splash .startup-motto{font-size:13px}#startup-splash .startup-signature{bottom:8vh}}

.estate-goods-card.estate-outfit-card>img{display:block;width:100%;height:140px;max-width:100%;object-fit:contain;object-position:center bottom;image-rendering:auto;margin:0 0 4px}.estate-goods-card.estate-outfit-card>strong{margin-top:0}

/* User-selected typography with original crowned-lion Q crest. */
#startup-splash.startup-integrated{background:#0d0c0a}
#startup-splash.startup-integrated>img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center;flex:none}

/* Fill every viewport; preserve original artwork and typography without cropping the words. */
#startup-splash.startup-fullscreen{width:100%;height:100%;height:100dvh;inset:0;background:radial-gradient(ellipse at 50% 43%,#1c1912 0%,#100f0c 50%,#0b0a09 100%)}
#startup-splash .startup-art-mark,#startup-splash .startup-art-motto{position:absolute;overflow:hidden;flex:none;mix-blend-mode:lighten;mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 98%,transparent)}
#startup-splash .startup-art-mark{width:min(96vw,760px,calc((100dvh - 170px)*2.048));aspect-ratio:1024/500;top:46%;left:50%;transform:translate(-50%,-50%)}
#startup-splash .startup-art-motto{width:min(90vw,680px);aspect-ratio:1024/100;bottom:max(7vh,env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%)}
#startup-splash .startup-art-mark>img,#startup-splash .startup-art-motto>img{position:absolute;display:block;width:100%;height:auto;max-width:none;left:0;object-fit:initial}
#startup-splash .startup-art-mark>img{top:-80%}
#startup-splash .startup-art-motto>img{top:-1350%}

.estate-map-arrow[data-estate-gallery]:disabled{opacity:.3;cursor:default}
