/* Space, reading and writing have separate destinations without changing access rules. */
.space-mobile-nav { display:none; }
.space-copy-desktop { display:contents; }
.space-copy-mobile,.space-read-toggle { display:none; }
.space-content-menu { width:min(480px,calc(100% - 24px)); max-height:calc(100dvh - 40px); margin:auto; padding:0; overflow:auto; overscroll-behavior:contain; border:1px solid #dce2d7; border-radius:24px; background:#fffdf8; color:#344b3d; box-shadow:0 24px 80px #16271e33; }
.space-content-menu::backdrop { background:#182b2266; backdrop-filter:blur(5px); }
.space-content-menu header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:22px; border-bottom:1px solid #e5e7df; }
.space-content-menu header small { color:#6c786d; font-size:12px; }
.space-content-menu h2 { margin:6px 0 0; font:700 21px/1.5 'Gowun Batang',serif; }
.space-content-menu header button { display:grid; place-items:center; flex:none; width:44px; height:44px; border:1px solid #dce2d7; border-radius:50%; background:#fff; color:#344b3d; }
.space-content-menu svg { width:20px; height:20px; }
.space-content-menu nav { display:grid; padding:8px 22px 22px; }
.space-content-menu nav a { display:flex; justify-content:space-between; align-items:center; min-height:54px; padding:12px 2px; border-bottom:1px solid #e5e7df; color:#344b3d; font-size:15px; text-decoration:none; }
.space-content-menu nav a::after { content:'→'; }
@media(max-width:820px) {
  body:has([data-space-navigation]) { --space-nav-height:calc(60px + env(safe-area-inset-bottom,0px)); --space-header-height:60px; padding-bottom:var(--space-nav-height); }
  body:has([data-space-navigation]) .site-navbar { height:var(--space-header-height); min-height:0; padding-inline:16px; }
  body:has([data-space-navigation]) #main-content { padding-top:var(--space-header-height)!important; }
  body:has([data-space-navigation]) .site-navbar .site-brand { height:44px; }
  body:has([data-space-navigation]) .site-navbar #auth-user-chip { display:none; }
  .space-mobile-nav { position:fixed; z-index:80; inset:auto 0 0; display:grid; grid-template-columns:1fr 1.25fr 1.25fr; gap:6px; padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px)); border-top:1px solid #dfe5dc; background:#fffdf8f5; backdrop-filter:blur(12px); }
  .space-mobile-nav > :is(a,button) { display:flex; min-width:0; min-height:46px; flex-direction:row; align-items:center; justify-content:center; gap:5px; padding:5px 2px; border:0; border-radius:10px; background:transparent; color:#4b6151; font:600 12px/1.4 'Noto Sans KR',sans-serif; text-decoration:none; white-space:nowrap; }
  .space-mobile-nav svg { flex:none; width:18px; height:18px; }
  .space-mobile-nav > .space-mobile-write { background:#355845; color:#fff; }
  .space-mobile-nav > :is(a,button):focus-visible { outline:3px solid #b58b4e; outline-offset:-3px; }
  body.space-is-editing .space-mobile-nav, body:has(.cs-modal.open) .space-mobile-nav, body:has(.cs-letter-reader.open) .space-mobile-nav, body:has(.m-portrait-viewer.open) .space-mobile-nav, body:has(.cs-hero-viewer.open) .space-mobile-nav { display:none; }
  body:has([data-space-navigation]) :is(.cs-mobile-actions,.pa-mobile-dock,.fs-mobile-actions) { display:none!important; }
  .memorial-page { padding-bottom:24px; }
  .memorial-page #memorial-template-stage { width:100%; height:auto!important; min-height:0!important; aspect-ratio:16/9!important; background-size:cover; }
  .memorial-page .m-template-shell { padding-top:0!important; }
  .memorial-page .m-hero-copy,.sample-preview .m-hero-copy { padding:26px 22px 32px; }
  .memorial-page .m-hero-copy h1 { font-size:29px; }
  .memorial-page .m-quote-layout { margin-top:22px; }
  .memorial-page .m-section { padding-block:42px; }
  .memorial-page :is(.m-story-narrative,.m-letter blockquote,.m-guest blockquote) { font-size:16px; line-height:1.95; overflow-wrap:anywhere; }
  .memorial-page .m-guest { padding:20px 16px; }
  .memorial-page .m-condolence-card { margin-top:18px; }
  .memorial-page .m-tribute-body { padding:24px 18px; }
  .memorial-page .m-compose-close { position:relative; z-index:3; flex:0 0 44px; width:44px; height:44px; min-width:44px; min-height:44px; }
  .memorial-page .m-tribute-prompt:focus:not(:focus-visible) { outline:none; }
  .memorial-page .m-tribute-prompt:focus-visible { outline:2px solid #b58b4e; outline-offset:5px; }
  .memorial-page #condolence-message { min-height:190px; font-size:16px; line-height:1.9; }
  .memorial-page :is(#online-condolence,#tribute,#guestbook) { scroll-margin-top:80px; }
  .service-active .m-music-dock { bottom:calc(var(--space-nav-height) + 8px); }
  .memorial-page .m-content-rail { bottom:calc(var(--space-nav-height) + 10px); }
  body:has([data-space-navigation]) .cs-page { padding-bottom:24px; }
  .cs-page .cs-topbar { position:relative; top:auto; }
  .cs-page .cs-topbar-inner { flex-wrap:nowrap; min-height:58px; padding:8px 0; gap:8px; }
  .cs-page .cs-topbar-tools { width:auto; margin-left:auto; gap:5px; }
  .cs-page .cs-brand { min-width:0; font-size:12px; }
  .cs-page .cs-topbar-tools :is(button,a) { min-width:38px; min-height:40px; }
  .cs-page .cs-topbar-tools :is(.cs-edit-action,.cs-layout-button) span { display:none; }
  .cs-page .cs-hero { padding-bottom:34px; }
  .cs-page .cs-template-badge { display:none; }
  .cs-page .cs-hero-image { border-radius:0; }
  .cs-page .cs-marble-tabs-wrap { top:var(--space-header-height); margin-top:0; padding:0; }
  .cs-page .cs-marble-tabs { gap:6px; padding:8px 12px; scrollbar-width:none; }
  .cs-page .cs-marble-tab,.cs-page .cs-marble-tab[aria-selected="true"] { min-width:112px; min-height:48px; flex-basis:auto; padding:9px 12px; border-radius:12px; }
  .cs-page .cs-marble-tab-copy strong { font-size:13px; }
  .cs-page .cs-marble-tab-copy small { display:none; }
  .cs-page .cs-section,.cs-page #memories { padding-block:36px; }
  .cs-page .cs-shell { width:calc(100% - 36px); }
  .cs-page :is(.cs-head p,.cs-memory-intro,.cs-memory-content > p,.cs-life-story-body p) { font-size:16px; line-height:1.95; }
  .cs-page #memories .cs-memory-content { padding:24px; }
  .cs-page .cs-add { padding:22px; gap:16px; }
  .cs-page .cs-add .cs-btn { width:100%; justify-content:center; }
  .cs-page .cs-ambient-dock { position:relative; inset:auto; width:calc(100% - 36px); max-width:540px; margin:0 auto 18px; padding:12px; transform:none; }
  .cs-page .cs-ambient-dock-label { display:none; }
  .cs-page .cs-ambient-status { font-size:12px; }
  .cs-modal { padding:8px; }
  .cs-modal .cs-modal-card { width:100%; max-height:calc(100dvh - 16px); overflow-y:auto; overscroll-behavior:contain; padding:22px 18px max(22px,env(safe-area-inset-bottom)); }
  .cs-modal :is(input,select,textarea) { font-size:16px; }
  .cs-modal textarea { min-height:190px; line-height:1.9; }
  .space-content-menu { max-height:calc(100dvh - 32px); margin:auto 12px 12px; width:calc(100% - 24px); }
  [data-contribution-page] { padding-top:20px; }
  [data-contribution-page] .memory-hero { padding:22px; border-radius:20px; }
  [data-contribution-page] .memory-hero h1 { font-size:25px; line-height:1.5; }
  [data-contribution-page] .memory-surface { padding:22px 18px; }
  [data-contribution-page] textarea#content { min-height:250px; font-size:16px; line-height:1.95; }
  [data-contribution-form] { scroll-margin-top:84px; }

  /* Keep the room and its records in view; optional tools open on demand. */
  .personal-space :is(.cs-marble-tabs-wrap,.cs-quick-rail,.m-content-rail,.m-music-dock,.cs-usage-guide,.pa-demo-cta) { display:none!important; }
  .personal-space :is(.m-hero-copy>.m-eyebrow,.pa-kicker,.cs-eyebrow) { display:none!important; }
  .personal-space .cs-page :is(.cs-content-title,#keepsakes>.cs-shell>.cs-head,#stewardship>.cs-shell>.cs-head,#family-network>.cs-shell>.cs-family-network-head) { position:static!important; display:block; width:auto!important; height:auto!important; margin:0 0 20px!important; padding:0; border:0; overflow:visible!important; clip:auto!important; clip-path:none!important; white-space:normal!important; }
  .personal-space .cs-page :is(.cs-content-title,#keepsakes>.cs-shell>.cs-head,#stewardship>.cs-shell>.cs-head,#family-network>.cs-shell>.cs-family-network-head) > p { display:none; }
  .personal-space .cs-memory-editorial::before { display:none; }
  .personal-space .cs-content-title h2 { margin:0; font-size:23px; line-height:1.5; }
  .personal-space .cs-page #memories .cs-memory-content::before { display:none; }
  .personal-space .cs-page .cs-memory-visual.is-quiet { display:none; }
  .personal-space .cs-page .cs-memory-tools { display:flex; flex-direction:row; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:8px; }
  .personal-space .cs-page .cs-memory-controls { width:auto; align-self:auto; }
  .personal-space .cs-page .cs-memory-pager { gap:4px; }
  .personal-space .cs-page .cs-memory-page { min-width:44px; font-size:10px; }
  .space-record-options { flex:1; min-width:92px; color:#52664f; font-size:12px; }
  .space-record-options > summary { min-height:44px; padding:12px 8px; border:1px solid #dce2d5; border-radius:10px; background:transparent; cursor:pointer; }
  .space-record-options[open] { flex-basis:100%; }
  .space-record-options-fields { display:grid; gap:12px; padding:16px 0 8px; }
  .space-record-options-fields .cs-memory-discovery { display:grid; gap:12px; width:100%; }
  .space-record-options-fields .cs-memory-sort { width:fit-content; }

  /* Compact the tools around a record, keeping reading and touch targets roomy. */
  .personal-space .m-hall-actions { padding-top:8px; padding-bottom:8px; gap:6px; }
  .personal-space .m-hall-actions:not(:has(> *)) { display:none; }
  .personal-space .m-hall-actions .m-quote-funeral-button { width:auto; min-height:44px; gap:8px; padding:7px 12px; border-radius:10px; box-shadow:none; }
  .personal-space .m-hall-actions .m-quote-funeral-icon { width:26px; height:26px; }
  .personal-space .m-hall-actions .m-quote-funeral-copy>span { display:none; }
  .personal-space .memorial-page :is(#video,#gallery) { padding-block:32px; }
  .personal-space .memorial-page :is(.m-head small,.m-eyebrow) { display:none; }
  .personal-space .memorial-page #video .m-video-head { margin-bottom:18px; }
  .personal-space .memorial-page #video .m-video-head h2 { margin-top:0!important; }
  .personal-space .memorial-page .m-video-note { padding-top:14px; gap:8px; }
  .personal-space .m-album-controls { gap:8px; margin-top:10px; }
  .personal-space .m-album-controls>.m-album-enlarge { border-color:transparent; padding-inline:8px; }
  .personal-space .m-album-controls>.m-album-enlarge>span { display:none; }
  .personal-space .m-album-thumbnails:not([hidden]) { gap:6px; }
  .personal-space .space-content-menu header { padding:16px 18px; }
  .personal-space .space-content-menu h2 { margin:0; font-size:20px; }
  .personal-space .space-content-menu nav { padding:4px 18px 18px; }
  .personal-space .space-content-menu nav a { min-height:48px; padding-block:10px; }
  .personal-space .space-footer { padding-block:26px 22px; }

  /* The chosen material becomes a quiet nameplate on small screens. */
  .personal-space .cs-page .cs-profile-wrap { margin-top:20px; padding:0; }
  .personal-space .cs-page .cs-profile-wrap::before,
  .personal-space .cs-page :is(.cs-inscription-ground,.cs-inscription-flower-bridge) { display:none; }
  .personal-space .cs-page .cs-inscription {
    --nameplate-ink:#343c39;
    --nameplate-muted:#59625c;
    --nameplate-rule:#9ba49a;
    box-sizing:border-box;
    width:100%; max-width:540px; min-width:0; min-height:0; height:auto;
    aspect-ratio:auto; margin:0 auto; padding:24px 22px;
    gap:0; overflow:hidden;
    border:1px solid #d2d7d0; border-radius:16px;
    color:var(--nameplate-ink); background-color:#e8ebe5;
    background-image:linear-gradient(#e8ebe5d9,#e8ebe5d9),url('/static/textures/memorial-natural-honed-granite-v3.png?v=20260821-1');
    background-position:center; background-size:auto,240% auto; background-repeat:no-repeat;
    box-shadow:none; filter:none;
  }
  .personal-space .cs-page .cs-inscription[data-material-style="marble"] {
    --nameplate-ink:#3d3932;
    --nameplate-muted:#6a655b;
    --nameplate-rule:#b6ab94;
    border-color:#e0d9ca; background-color:#f4f0e6;
    background-image:linear-gradient(#f7f4edbf,#f7f4edbf),url('/static/textures/memorial-ivory-marble-v1.png?v=20260826-1');
    background-size:cover;
  }
  .personal-space .cs-page .cs-inscription[data-material-style="wood"] {
    --nameplate-ink:#fff4e2;
    --nameplate-muted:#ebd7ba;
    --nameplate-rule:#bda079;
    border-color:#73503b; background-color:#65432e;
    background-image:linear-gradient(#42271966,#42271966),url('/static/textures/memorial-premium-walnut-v1.png?v=20260826-1');
    background-size:cover;
  }
  .personal-space .cs-page .cs-inscription::before,
  .personal-space .cs-page .cs-inscription::after,
  .personal-space .cs-page .cs-inscription-rule::after { display:none; }
  .personal-space .cs-page .cs-inscription :is(.cs-inscription-name,.cs-inscription-years,.cs-inscription-quote) {
    max-width:100%; min-width:0; margin:0;
    color:var(--nameplate-ink); -webkit-text-stroke:0;
    text-shadow:none; mix-blend-mode:normal; transform:none;
    overflow-wrap:anywhere; word-break:normal;
  }
  .personal-space .cs-page .cs-hero .cs-inscription-name { font-size:28px; font-weight:700; line-height:1.45; letter-spacing:.04em; }
  .personal-space .cs-page .cs-inscription .cs-inscription-years { margin-top:7px; color:var(--nameplate-muted); font-size:13px; line-height:1.6; letter-spacing:.08em; }
  .personal-space .cs-page .cs-inscription-rule { flex:none; width:40px; height:1px; margin:17px auto; background:var(--nameplate-rule); box-shadow:none; transform:none; }
  .personal-space .cs-page .cs-inscription .cs-inscription-quote { width:100%; font-size:16px; font-weight:500; line-height:1.8; letter-spacing:0; }
  .personal-space #layout-panel :is(.cs-layout-help,.cs-marker-picker>p:not(.cs-marker-status),.cs-marker-option small,.cs-ground-picker) { display:none; }
  .personal-space #layout-panel .cs-marker-option-copy { min-height:0; padding:2px 0 5px; text-align:center; }
  .personal-space #layout-panel .cs-marker-preview { height:56px; background:#f4f3ed; }
  .personal-space #layout-panel .cs-marker-preview::after { display:none; }
  .personal-space #layout-panel .cs-marker-preview .cs-marker-mini { width:82%; height:32px; border-radius:6px; box-shadow:none; filter:none; }
  .personal-space #layout-panel .cs-marker-preview.natural .cs-marker-mini { border:1px solid #cdd3ca; background:linear-gradient(#e8ebe5d9,#e8ebe5d9),url('/static/textures/memorial-natural-honed-granite-v3.png?v=20260821-1') center/240% auto; }

  /* Interface prose gives way to short labels; records expand in their own place. */
  .space-copy-desktop { display:none; }
  .space-copy-mobile { display:contents; }
  .personal-space :is(.m-head>small,.m-head>p,.m-achievement-head>p,.m-story-note,.m-letter-subtitle,.m-tribute-kicker,.m-tribute-guide,.m-guest-section-tools>p,.m-guest-section-head>div>span,.m-gallery-caption-label,.cs-life-hint,.cs-add>div>b,.cs-add>div>p:not(.cs-demo-hint),.cs-final,.space-footer>p:not(.space-footer-name),#condolence-message-help) { display:none!important; }
  .personal-space .m-guest-section-head h3 { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  .personal-space .cs-add { padding:12px 0; border:0; background:transparent; }
  .personal-space .cs-add>div:not(:has(.cs-demo-hint)) { display:none; }
  .personal-space :is(.mo-heading>p,.mo-footnote,.mo-copy small) { display:none; }
  .personal-space .m-quote-label { display:none; }
  .personal-space .space-content-menu header small { display:none; }
  .personal-space :is(.cs-welcome-visual,.cs-welcome-label,.cs-welcome-copy,.cs-welcome-rule,.m-sample-welcome-label,.m-sample-welcome-copy,.m-sample-welcome-rule) { display:none!important; }
  .personal-space .cs-welcome-card { display:block; }
  .personal-space .cs-welcome-content { padding:28px 24px; }
  .personal-space :is(.cs-welcome-content h2,.m-sample-welcome-card h2) { margin:16px 0 20px; font-size:25px; line-height:1.5; }
  .personal-space .cs-welcome-note { margin-top:16px; }
  .personal-space .m-sample-welcome-card { padding:28px 24px; }
  .personal-space .m-head { margin-bottom:20px; }
  .personal-space .m-head h2 { margin:0; font-size:24px; }
  .personal-space .m-story-narrative { padding:0; border:0; background:transparent; }
  .personal-space .m-story-narrative::before { display:none; }
  .personal-space [data-space-preview] { scroll-margin-top:80px; }
  .personal-space [data-space-preview][data-space-collapsed="true"] { display:block!important; max-height:var(--space-preview-height,calc(var(--space-preview-lines) * 1.95em))!important; overflow:hidden!important; }
  .personal-space .space-read-toggle:not([hidden]) { display:inline-flex; align-items:center; justify-content:center; min-height:44px; align-self:flex-start; margin-top:8px; padding:6px 0; border:0; background:transparent; color:#52684f; font:600 13px/1.5 'Noto Sans KR',sans-serif; text-decoration:underline; text-underline-offset:4px; }
  .personal-space .space-read-toggle:focus-visible { outline:2px solid #a98b52; outline-offset:4px; }
}
@media print {
  .space-mobile-nav,.space-content-menu,.space-read-toggle,.space-copy-mobile { display:none!important; }
  .space-copy-desktop { display:contents!important; }
  .personal-space [data-space-preview] { display:block!important; max-height:none!important; overflow:visible!important; }
}
