:root{--sanctuary-ink:#ecf4f0;--sanctuary-muted:#afc2c4;--sanctuary-line:rgba(192,221,220,.23);--sanctuary-surface:#0e252e}
html.sanctuary-scroll-locked,body.sanctuary-scroll-locked{overflow:hidden!important;overscroll-behavior:none}
html.sanctuary-scroll-locked{scrollbar-gutter:stable}
.sanctuary-ready .hero-actions{display:none}
.sanctuary-entry{display:flex;align-items:center;gap:14px;margin-top:32px;pointer-events:auto}
.sanctuary-entry button,.sanctuary button,.sanctuary input,.sanctuary textarea,.sanctuary select{font:inherit}
.sanctuary-entry button,.sanctuary button{min-height:44px;border:0;cursor:pointer;color:var(--sanctuary-ink);background:transparent;font-size:14px;letter-spacing:.05em;transition:background .2s,color .2s,border-color .2s}
.sanctuary-entry button{padding:12px 10px;color:rgb(var(--ink,24,61,69));white-space:nowrap}
.sanctuary-entry .sanctuary-main{padding:15px 22px;border:1px solid rgba(232,245,240,.45);display:flex;gap:36px;background:rgba(12,43,53,.86);color:#eaf4ef}
.sanctuary-entry .sanctuary-main span{font-size:20px;line-height:16px}
.sanctuary-entry button:hover{background:rgba(225,241,235,.13)}
.sanctuary button:focus-visible,.sanctuary-entry button:focus-visible,.sanctuary input:focus-visible,.sanctuary textarea:focus-visible,.sanctuary select:focus-visible{outline:2px solid #d9efe9;outline-offset:4px}
.sanctuary button:disabled{opacity:.45;cursor:wait}
.sanctuary [hidden]{display:none!important}
.sanctuary-dialog{color:var(--sanctuary-ink);background:linear-gradient(155deg,#173741 0%,var(--sanctuary-surface) 60%,#0b2029 100%);border:1px solid var(--sanctuary-line);width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:0;box-shadow:0 24px 100px rgba(0,9,16,.3);overflow:auto;overscroll-behavior:contain;border-radius:4px;scrollbar-color:#506b72 transparent;scrollbar-width:thin;line-height:1.65;font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.sanctuary-dialog::backdrop{background:rgba(2,17,27,.63);backdrop-filter:blur(10px)}
.sanctuary-dialog-body{padding:42px 38px 30px}
.sanctuary-dialog .sanctuary-close{position:absolute;right:12px;top:10px;width:44px;font:300 28px/1 Arial;color:var(--sanctuary-muted)}
.sanctuary-dialog .sanctuary-close:hover{color:#fff;background:rgba(211,239,233,.08)}
.sanctuary-kicker{color:var(--sanctuary-muted);font-size:11px;letter-spacing:.2em;margin:0 0 13px}
.sanctuary-dialog h2{font-family:"Songti SC","STSong","SimSun",serif;font-size:29px;font-weight:400;line-height:1.55;margin:0 0 12px;letter-spacing:.025em;text-wrap:balance}
.sanctuary-intro{font-size:14px;line-height:1.9;color:#c4d4d5;margin:0 0 28px;max-width:34em}
.sanctuary-dialog label,.sanctuary-dialog legend{display:block;font-size:13px;margin-bottom:10px;color:#e2eeea;letter-spacing:.035em}
.sanctuary-dialog textarea,.sanctuary-dialog input:not([type=file]),.sanctuary-dialog select{width:100%;box-sizing:border-box;border:1px solid var(--sanctuary-line);border-radius:2px;background:rgba(0,12,21,.3);color:var(--sanctuary-ink);font-size:16px;line-height:1.7;padding:11px 13px;min-height:46px;box-shadow:none}
.sanctuary-dialog textarea{resize:vertical;max-height:40dvh;display:block;min-height:100px;font-family:"Songti SC","STSong","SimSun",serif;letter-spacing:.03em;line-height:1.9}
.sanctuary-dialog textarea::placeholder{color:#91a9ae}
.sanctuary-dialog select{appearance:auto;font-size:13px;height:48px;padding-right:6px;color-scheme:dark}
.sanctuary-field-note{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;font-size:11px;color:var(--sanctuary-muted);margin:8px 0 23px;line-height:1.6}
.sanctuary-field-note>span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.sanctuary-actions{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:26px;padding-top:20px;border-top:1px solid var(--sanctuary-line)}
.sanctuary-actions button{padding:11px 13px;font-size:13px}
.sanctuary-actions>.sanctuary-small{margin-right:auto}
.sanctuary .sanctuary-primary{background:#d1e5df;color:#163c43;padding:12px 20px;border:1px solid #d1e5df;font-weight:500;display:inline-flex;gap:22px;align-items:center;justify-content:center}
.sanctuary .sanctuary-primary:hover{background:#e5f2ed;border-color:#e5f2ed}
.sanctuary-small,.sanctuary-privacy{font-size:11px;color:var(--sanctuary-muted);line-height:1.85;margin:10px 0}
.sanctuary-privacy{margin-top:22px;padding-left:12px;border-left:1px solid #658a90}
.sanctuary-optional{font-size:11px;color:var(--sanctuary-muted);margin-left:8px}
.sanctuary-error{color:#f5c2af;font-size:13px;line-height:1.8;margin:16px 0 0;padding:10px 12px;border-left:2px solid #bb8d7a;background:rgba(153,82,54,.09)}
.sanctuary-photo{position:relative;border:1px dashed var(--sanctuary-line);margin-top:4px}
.sanctuary-photo .sanctuary-photo-label{min-height:48px;display:flex;align-items:center;gap:10px;padding:9px 14px;margin:0;cursor:pointer}
.sanctuary-photo-label>span{font-size:22px;font-weight:200}.sanctuary-photo-label small{margin-left:auto;color:var(--sanctuary-muted);font-size:10px;letter-spacing:0}
.sanctuary-photo input[type=file]{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;top:12px;left:10px}
.sanctuary-photo:focus-within{outline:2px solid #d9efe9;outline-offset:4px}
.sanctuary-photo-preview{display:flex;align-items:center;gap:14px;padding:0 14px 12px}.sanctuary-photo-preview img{width:72px;height:60px;object-fit:cover;border-radius:2px}.sanctuary-photo-preview button{font-size:12px;text-decoration:underline;text-underline-offset:5px}
.sanctuary-columns{display:grid;grid-template-columns:1.12fr 1fr;gap:24px;margin-top:23px}
.sanctuary-columns fieldset{border:0;padding:0;margin:0;min-width:0}.sanctuary-depth-presets{display:flex;gap:4px;margin:-5px 0 7px;flex-wrap:wrap}.sanctuary-depth-presets button{font-size:10px;letter-spacing:0;padding:0 7px;color:#c6d8d8;border-bottom:1px solid transparent}.sanctuary-depth-presets button:hover,.sanctuary-depth-presets button[aria-pressed=true]{border-bottom-color:#adc9c7;background:rgba(192,221,220,.06)}
.sanctuary-number{display:flex;align-items:center;position:relative}.sanctuary-number input{padding-right:40px!important}.sanctuary-number span{position:absolute;right:14px;font-size:12px;color:var(--sanctuary-muted)}
.sanctuary-link-field{margin:24px 0}.sanctuary-copy{display:flex;gap:8px}.sanctuary-copy input{font-family:ui-monospace,monospace!important;font-size:11px!important;min-width:0}.sanctuary-copy button{flex:none;border:1px solid var(--sanctuary-line);padding:0 12px;font-size:12px}.sanctuary-copy button:hover{background:rgba(210,236,231,.08)}
.sanctuary-memory-content img{display:block;width:100%;max-height:45dvh;object-fit:contain;background:rgba(0,0,0,.12);margin-bottom:24px}.sanctuary-memory-content p{font-family:"Songti SC","STSong","SimSun",serif;font-size:20px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.sanctuary-quiet-controls{position:fixed;bottom:max(30px,env(safe-area-inset-bottom));right:16px;max-width:calc(100vw - 32px);z-index:30;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;background:rgba(4,29,40,.7);border:1px solid rgba(199,226,226,.3);padding:3px 6px;backdrop-filter:blur(10px)}.sanctuary-quiet-controls button{padding:10px 10px;font-size:12px}.sanctuary .sanctuary-return{display:flex;gap:14px;border-left:1px solid var(--sanctuary-line)}
.sanctuary-discard{position:sticky;bottom:0;margin:24px -16px -8px;padding:22px 18px 12px;background:#193944;box-shadow:0 -12px 35px rgba(0,16,23,.4);border:1px solid #6a8c93}.sanctuary-discard>p:first-child{font-family:"Songti SC","STSong","SimSun",serif;font-size:20px;margin:0 0 10px}.sanctuary-discard .sanctuary-actions{margin-top:18px}
.sanctuary-depth-entry{position:fixed;left:50%;bottom:100px;transform:translateX(-50%);z-index:25;display:flex;gap:10px;align-items:center;white-space:nowrap;color:#b7d1d2;background:rgba(5,24,35,.55);backdrop-filter:blur(12px);border:1px solid rgba(185,221,222,.16);padding:3px 10px}.sanctuary-depth-entry button{font-size:12px;padding:10px}.sanctuary-depth-entry button:hover{background:rgba(194,221,219,.09)}
.sanctuary-quiet .sanctuary-depth-entry,.sanctuary-releasing .sanctuary-depth-entry{visibility:hidden;pointer-events:none}
.sanctuary-quiet .header,.sanctuary-quiet .story-shell,.sanctuary-quiet .depth-rail,.sanctuary-quiet .depth-note,.sanctuary-quiet .footer,.sanctuary-releasing .header,.sanctuary-releasing .story-shell,.sanctuary-releasing .depth-rail,.sanctuary-releasing .depth-note,.sanctuary-releasing .footer{visibility:hidden;pointer-events:none}
.sanctuary-release{position:fixed;inset:0;z-index:40;pointer-events:none;background:linear-gradient(transparent,rgba(0,20,34,.12))}.sanctuary-release canvas{position:absolute;inset:0}.sanctuary-release-caption{position:absolute;bottom:135px;left:24px;right:24px;text-align:center;color:#e0eeeb;text-shadow:0 2px 14px #06212e}.sanctuary-release-caption p{font-family:"Songti SC","STSong","SimSun",serif;font-size:17px;letter-spacing:.06em;margin:0 0 10px}.sanctuary-release-caption span{font-size:11px;letter-spacing:.08em;color:#c0d5d7}.sanctuary-release-controls{position:absolute;bottom:max(56px,env(safe-area-inset-bottom));left:0;right:0;display:flex;justify-content:center;gap:20px;pointer-events:auto}.sanctuary-release-controls button{padding:10px 15px;border-bottom:1px solid rgba(211,233,231,.35);background:rgba(3,24,34,.25);font-size:12px}
.sanctuary-toast{position:fixed;z-index:100;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 40px);width:max-content;box-sizing:border-box;color:#edf5f1;background:rgba(10,37,47,.95);border:1px solid var(--sanctuary-line);padding:13px 22px;font-size:13px;line-height:1.8;margin:0;box-shadow:0 10px 40px rgba(0,0,0,.15)}
.sanctuary-approaching .sanctuary-dialog{margin:auto auto 36px;background:rgba(10,33,43,.93);max-width:500px}.sanctuary-approaching .sanctuary-dialog::backdrop{background:rgba(0,10,20,.12);backdrop-filter:none}.sanctuary-approaching .sanctuary-dialog-body{padding:28px}.sanctuary-approaching .sanctuary-dialog h2{font-size:24px}
@media(max-width:640px){.sanctuary-entry{gap:9px;margin-top:27px;flex-wrap:wrap}.sanctuary-entry button{font-size:12px;padding:12px 8px}.sanctuary-entry .sanctuary-main{gap:20px;padding:13px 15px}.sanctuary-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.sanctuary-dialog-body{padding:38px 22px 22px}.sanctuary-dialog h2{font-size:25px}.sanctuary-intro{font-size:13px;margin-bottom:24px}.sanctuary-columns{grid-template-columns:1fr;gap:19px}.sanctuary-depth-presets{gap:8px}.sanctuary-depth-presets button{font-size:11px}.sanctuary-photo-label small{font-size:9px}.sanctuary-photo .sanctuary-photo-label{flex-wrap:wrap;gap:7px}.sanctuary-photo-label small{width:100%;margin-left:29px;margin-top:-5px}.sanctuary-actions{gap:8px}.sanctuary-actions button{font-size:12px}.sanctuary .sanctuary-primary{gap:12px;padding:12px 15px}.sanctuary-field-note{font-size:10px}.sanctuary .sanctuary-return{right:20px;bottom:max(24px,env(safe-area-inset-bottom))}.sanctuary-release-caption{bottom:140px}.sanctuary-release-caption p{font-size:15px}.sanctuary-approaching .sanctuary-dialog{margin:auto auto 20px}.sanctuary-copy button{font-size:11px;padding:0 9px}.sanctuary-memory-content p{font-size:18px}}
@media(prefers-reduced-motion:reduce){.sanctuary *, .sanctuary-entry *{transition:none!important;scroll-behavior:auto!important}}
