/* Collectanea V4.0 P16 bundled CSS; source files retained separately for audit/handover. */

/* ===== collectanea-design-system.css ===== */
/* Collectanea Redesign V4 · P01 Design Foundation
   Aktiv geladen, aber absichtlich noch ohne Selektoren auf bestehende UI-Komponenten.
   P02–P14 verwenden diese Tokens schrittweise. */

:root {
  /* Surfaces */
  --ct-surface-canvas: #f4f2ec;
  --ct-surface-elevated: #faf9f5;
  --ct-surface-paper: #eee9de;
  --ct-surface-museum: #f7f6f2;
  --ct-surface-stone: #d8d4cb;

  /* Text */
  --ct-text-primary: #252521;
  --ct-text-secondary: #5f5d56;
  --ct-text-muted: #77736b;
  --ct-text-inverse: #f7f5ef;

  /* Heritage accents */
  --ct-accent-heritage: #485649;
  --ct-accent-heritage-hover: #3e4a40;
  --ct-accent-slate: #53626b;
  --ct-accent-slate-hover: #46545c;
  --ct-parchment: #d9d0bc;
  --ct-parchment-light: #ece6d8;

  /* Walnut material scale */
  --ct-walnut-950: #17110d;
  --ct-walnut-900: #211914;
  --ct-walnut-800: #2c2119;
  --ct-walnut-700: #38291e;
  --ct-walnut-600: #4b3829;
  --ct-walnut-500: #6b5038;
  --ct-walnut-400: #82664b;
  --ct-walnut-highlight: #9a7a5b;

  /* Lines */
  --ct-line-subtle: rgba(37,37,33,.10);
  --ct-line-soft: rgba(37,37,33,.16);
  --ct-line-strong: rgba(37,37,33,.28);

  /* Semantic states: subdued, never neon */
  --ct-state-success: #4f6657;
  --ct-state-warning: #7a684a;
  --ct-state-danger: #7a5049;
  --ct-state-info: #53626b;

  /* Shadow hierarchy */
  --ct-shadow-ui: 0 5px 18px rgba(31,27,22,.07);
  --ct-shadow-popup: 0 18px 48px rgba(31,27,22,.15);
  --ct-shadow-object: 0 7px 18px rgba(28,24,20,.14);
  --ct-shadow-book: 2px 3px 7px rgba(24,17,12,.24);
  --ct-shadow-shelf: 0 12px 24px rgba(24,17,12,.22);
  --ct-shadow-exhibit: 0 8px 20px rgba(34,32,29,.14);
  --ct-shadow-focus: 0 7px 22px rgba(238,224,187,.22);

  /* Radius scale: restrained */
  --ct-radius-xs: 4px;
  --ct-radius-sm: 7px;
  --ct-radius-md: 10px;
  --ct-radius-lg: 14px;
  --ct-radius-xl: 18px;

  /* Spacing scale */
  --ct-space-1: 4px;
  --ct-space-2: 8px;
  --ct-space-3: 12px;
  --ct-space-4: 16px;
  --ct-space-5: 24px;
  --ct-space-6: 32px;
  --ct-space-7: 48px;
  --ct-space-8: 64px;

  /* Typography roles. Existing fonts remain untouched in P01. */
  --ct-font-display: Georgia, "Times New Roman", serif;
  --ct-font-content: Georgia, "Times New Roman", serif;
  --ct-font-ui: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --ct-font-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  --ct-type-display-xl: clamp(2rem, 3.5vw, 3.4rem);
  --ct-type-display-lg: clamp(1.65rem, 2.5vw, 2.55rem);
  --ct-type-title: 1.25rem;
  --ct-type-body: .93rem;
  --ct-type-meta: .75rem;
  --ct-type-micro: .675rem;
  --ct-leading-tight: 1.16;
  --ct-leading-body: 1.55;
  --ct-tracking-caps: .12em;

  /* Motion */
  --ct-motion-fast: 140ms;
  --ct-motion-base: 220ms;
  --ct-motion-slow: 360ms;
  --ct-ease-standard: cubic-bezier(.2,.7,.2,1);
  --ct-ease-emphasized: cubic-bezier(.16,1,.3,1);

  /* Responsive layout reference values */
  --ct-breakpoint-mobile: 760px;
  --ct-breakpoint-tablet: 1000px;
  --ct-content-max: 1680px;
  --ct-touch-min: 44px;

  /* Layering */
  --ct-z-base: 0;
  --ct-z-sticky: 20;
  --ct-z-nav: 30;
  --ct-z-overlay: 80;
  --ct-z-modal: 100;
}

/* P01 only establishes motion policy; component overrides arrive in later phases. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --ct-motion-fast: 0ms;
    --ct-motion-base: 0ms;
    --ct-motion-slow: 0ms;
  }
}


/* ===== collectanea-global-ui-p02.css ===== */
/* Collectanea Redesign V4 · P02 Global UI
   Global navigation, utility bar, controls and neutral structural surfaces.
   Room-specific and start-page-specific redesigns intentionally remain for later phases. */

html,body{background:var(--ct-surface-canvas);color:var(--ct-text-primary)}
body{--ct-nav-h:64px;--ct-utility-h:58px}
body.ct-scrolled{--ct-nav-h:54px}

/* Shared controls */
button{transition:background-color var(--ct-motion-fast) var(--ct-ease-standard),color var(--ct-motion-fast) var(--ct-ease-standard),border-color var(--ct-motion-fast) var(--ct-ease-standard),box-shadow var(--ct-motion-fast) var(--ct-ease-standard),transform var(--ct-motion-fast) var(--ct-ease-standard)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid color-mix(in srgb,var(--ct-accent-slate) 72%,transparent);outline-offset:2px}
.primary,.secondary,.danger,.ghost,.sale-btn,.danger-btn{border-radius:var(--ct-radius-sm);font-family:var(--ct-font-ui);font-weight:560;letter-spacing:.005em;min-height:38px}
.primary{background:var(--ct-accent-heritage);color:var(--ct-text-inverse);border:1px solid var(--ct-accent-heritage);padding:8px 13px;box-shadow:none}
.primary:hover{background:var(--ct-accent-heritage-hover);border-color:var(--ct-accent-heritage-hover);text-decoration:none;box-shadow:0 3px 10px rgba(41,52,44,.12)}
.secondary{background:var(--ct-surface-elevated);color:var(--ct-text-primary);border:1px solid var(--ct-line-soft);padding:8px 12px}
.secondary:hover{background:var(--ct-surface-paper);border-color:var(--ct-line-strong)}
.danger,.danger-btn{background:var(--ct-surface-elevated);color:var(--ct-state-danger);border:1px solid color-mix(in srgb,var(--ct-state-danger) 36%,transparent)}
.danger:hover,.danger-btn:hover{background:color-mix(in srgb,var(--ct-state-danger) 7%,var(--ct-surface-elevated));border-color:color-mix(in srgb,var(--ct-state-danger) 52%,transparent)}
.icon-btn{display:inline-grid;place-items:center;min-width:38px;min-height:38px;border:1px solid transparent;border-radius:var(--ct-radius-sm);color:var(--ct-text-secondary);background:transparent;padding:7px 9px;line-height:1}
.icon-btn:hover{background:var(--ct-surface-paper);border-color:var(--ct-line-subtle);color:var(--ct-text-primary)}

input[type="text"],input[type="search"],input[type="number"],input[type="date"],input[type="url"],input[type="email"],select,textarea{border-color:var(--ct-line-soft)!important;background:var(--ct-surface-elevated)!important;color:var(--ct-text-primary);border-radius:var(--ct-radius-sm)!important;box-shadow:none!important}
input::placeholder,textarea::placeholder{color:var(--ct-text-muted);opacity:.82}
input[type="text"]:focus,input[type="search"]:focus,input[type="number"]:focus,input[type="date"]:focus,input[type="url"]:focus,input[type="email"]:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--ct-accent-slate) 58%,var(--ct-line-soft))!important}

/* Quiet structural surfaces: reduce generic card-on-card feeling without deleting information. */
.panel{background:var(--ct-surface-elevated);border-color:var(--ct-line-subtle);border-radius:var(--ct-radius-md);box-shadow:none}
.panel-head{border-bottom:1px solid var(--ct-line-subtle);padding-bottom:10px}
.table-wrap{background:var(--ct-surface-elevated);border-color:var(--ct-line-subtle);border-radius:var(--ct-radius-md)}
th{background:var(--ct-surface-paper);border-bottom-color:var(--ct-line-soft);color:var(--ct-text-secondary);font-size:11px;letter-spacing:.035em;font-weight:650}
td{border-bottom-color:var(--ct-line-subtle)}
tbody tr:hover{background:color-mix(in srgb,var(--ct-parchment-light) 30%,transparent)}
.notice{background:color-mix(in srgb,var(--ct-parchment-light) 55%,var(--ct-surface-elevated));border-left:3px solid var(--ct-accent-heritage);border-radius:var(--ct-radius-xs);color:var(--ct-text-secondary)}

/* Toast / transient system feedback */
#toast{right:22px;bottom:22px;max-width:min(420px,calc(100vw - 30px));background:rgba(37,37,33,.96);color:var(--ct-text-inverse);padding:10px 14px;border-radius:var(--ct-radius-sm);box-shadow:var(--ct-shadow-ui);font:12px/1.4 var(--ct-font-ui);letter-spacing:.01em;transform:translateY(8px);transition:opacity var(--ct-motion-base) var(--ct-ease-standard),transform var(--ct-motion-base) var(--ct-ease-standard)}

/* Desktop top navigation: same routes and buttons, presentation only. */
@media(min-width:761px){
  #appShell{display:block;min-height:100vh}
  #sidebar{position:sticky;top:0;width:100%;height:var(--ct-nav-h);z-index:var(--ct-z-nav);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;padding:0 24px;background:rgba(250,249,245,.98);color:var(--ct-text-primary);border-bottom:1px solid var(--ct-line-subtle);box-shadow:0 2px 12px rgba(31,27,22,.025);transition:height var(--ct-motion-slow) var(--ct-ease-emphasized),box-shadow var(--ct-motion-base) var(--ct-ease-standard)}
  body.ct-scrolled #sidebar{box-shadow:0 4px 18px rgba(31,27,22,.055)}

  .brand{min-width:0;padding:0;gap:9px;white-space:nowrap}
  .brand-mark{width:30px;height:30px;border-radius:var(--ct-radius-xs);border:1px solid var(--ct-line-soft);color:var(--ct-walnut-700);font:18px/1 var(--ct-font-display);background:var(--ct-surface-paper)}
  .brand h1{font:500 17px/1.05 var(--ct-font-display);letter-spacing:.015em;color:var(--ct-text-primary)}
  .brand p{max-width:225px;margin:3px 0 0;font:500 8.5px/1.2 var(--ct-font-ui);letter-spacing:.105em;color:var(--ct-text-muted);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--ct-motion-fast) var(--ct-ease-standard),max-height var(--ct-motion-fast) var(--ct-ease-standard),margin var(--ct-motion-fast) var(--ct-ease-standard)}
  body.ct-scrolled .brand p{opacity:0;max-height:0;margin:0}

  #nav{display:flex;flex-direction:row;align-items:stretch;justify-content:center;gap:1px;min-width:0;height:100%;padding:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  #nav::-webkit-scrollbar{display:none}
  .nav-group-label{display:none}
  .nav-btn{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:5px;height:100%;padding:0 8px;border:0;border-radius:0;background:transparent;color:var(--ct-text-secondary);font:550 11.5px/1 var(--ct-font-ui);white-space:nowrap}
  .nav-btn:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;background:var(--ct-accent-heritage);transform:scaleX(0);transform-origin:center;transition:transform var(--ct-motion-base) var(--ct-ease-standard)}
  .nav-btn:hover{background:transparent;color:var(--ct-text-primary)}
  .nav-btn.active{background:transparent;color:var(--ct-accent-heritage);font-weight:650}
  .nav-btn.active:after{transform:scaleX(1)}
  .nav-btn .count{float:none;display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--ct-surface-paper);color:var(--ct-text-muted);font-size:9px;opacity:1}
  .nav-btn.active .count{background:color-mix(in srgb,var(--ct-accent-heritage) 10%,var(--ct-surface-paper));color:var(--ct-accent-heritage)}

  .sidebar-bottom{display:flex;align-items:center;gap:10px;margin:0;padding:0;white-space:nowrap}
  .sidebar-bottom .ghost{width:auto;border:1px solid var(--ct-line-subtle);background:transparent;color:var(--ct-text-secondary);padding:6px 9px;min-height:32px;font-size:10.5px}
  .sidebar-bottom .ghost:hover{background:var(--ct-surface-paper);border-color:var(--ct-line-soft);color:var(--ct-text-primary)}
  .sidebar-bottom .tiny{margin:0;color:var(--ct-text-muted);opacity:.7;font-size:8.5px}

  #main{min-width:0}
  #topbar{top:var(--ct-nav-h);height:var(--ct-utility-h);padding:0 28px;gap:9px;background:rgba(244,242,236,.97);backdrop-filter:none;border-bottom:1px solid var(--ct-line-subtle);z-index:calc(var(--ct-z-nav) - 1);transition:top var(--ct-motion-slow) var(--ct-ease-emphasized),height var(--ct-motion-base) var(--ct-ease-standard),background-color var(--ct-motion-base) var(--ct-ease-standard)}
  #mobileMenu{display:none}
  .global-search-wrap{max-width:520px;height:38px;border:1px solid var(--ct-line-soft);border-radius:var(--ct-radius-sm);background:var(--ct-surface-elevated);box-shadow:none;transition:border-color var(--ct-motion-fast) var(--ct-ease-standard),box-shadow var(--ct-motion-fast) var(--ct-ease-standard)}
  .global-search-wrap:focus-within{border-color:color-mix(in srgb,var(--ct-accent-slate) 52%,var(--ct-line-soft));box-shadow:0 0 0 3px color-mix(in srgb,var(--ct-accent-slate) 8%,transparent)}
  .global-search-wrap input{font:12.5px var(--ct-font-ui);padding:8px 11px;background:transparent!important;border:0!important;border-radius:0!important}
  #globalSearchBtn{min-width:36px;min-height:36px;border:0;border-left:1px solid var(--ct-line-subtle);border-radius:0;color:var(--ct-text-muted)}
  #globalSearchBtn:hover{background:var(--ct-surface-paper);color:var(--ct-text-primary)}
  #appSettingsBtn{margin-left:auto}
  #addObjectBtn{min-height:36px;padding:7px 12px;font-size:11.5px}

  .global-filterbar{top:calc(var(--ct-nav-h) + var(--ct-utility-h));background:rgba(244,242,236,.97);backdrop-filter:none;border-bottom-color:var(--ct-line-subtle);z-index:calc(var(--ct-z-nav) - 2);transition:top var(--ct-motion-slow) var(--ct-ease-emphasized)}
}

/* Tablet: keep top navigation, allow natural horizontal scroll instead of squeezing labels. */
@media(min-width:761px) and (max-width:1180px){
  #sidebar{grid-template-columns:auto minmax(0,1fr);gap:14px;padding-inline:16px}
  .sidebar-bottom{display:none}
  .brand p{display:none}
  #nav{justify-content:flex-start}
  .nav-btn{padding-inline:7px;font-size:11px}
  #topbar{padding-inline:18px}
}

/* Existing mobile interaction remains functionally intact until P13. Only visual normalization here. */
@media(max-width:760px){
  .icon-btn,.primary,.secondary,.ghost,.danger-btn,.sale-btn{min-height:44px}
  #topbar{background:rgba(244,242,236,.98);backdrop-filter:none;border-bottom-color:var(--ct-line-subtle)}
  .global-search-wrap{background:var(--ct-surface-elevated);border-color:var(--ct-line-soft);border-radius:var(--ct-radius-sm)}
  .global-search-wrap input{background:transparent!important;border:0!important}
  #toast{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));text-align:center}
}

@media(prefers-reduced-motion:reduce){
  #sidebar,#topbar,.global-filterbar,button,#toast{transition:none!important}
}


/* ===== collectanea-object-ui-p03.css ===== */
/* Collectanea Redesign V4 · P03
   Object interaction: preview dialog, restrained object sheets, modal/drawer and mobile bottom-sheet foundation.
   Presentation only; collection data and canonical object fields are unchanged. */

:root{
  --ct-object-panel-w: 760px;
  --ct-object-panel-max-h: 86dvh;
}

/* Existing application modal: compact museum/work panel instead of a full-height slab. */
.modal{display:grid;place-items:center;padding:clamp(14px,4vw,44px)}
.modal.hidden{display:none}
.modal-backdrop{background:rgba(31,30,27,.46);backdrop-filter:blur(2px)}
.modal-panel{
  position:relative;right:auto;top:auto;bottom:auto;
  width:min(860px,94vw);max-height:88dvh;
  background:var(--ct-surface-elevated,#faf9f5);
  padding:clamp(22px,3vw,34px);
  overflow:auto;
  border:0;border-radius:var(--ct-radius-lg,16px);
  box-shadow:var(--ct-shadow-popup,0 24px 68px rgba(33,28,23,.18));
  overscroll-behavior:contain;
}
.modal-close{
  position:sticky;top:0;float:right;
  display:grid;place-items:center;
  width:36px;height:36px;min-height:36px;
  border:0;border-radius:50%;
  background:rgba(244,242,236,.94);color:var(--ct-text-primary,#252521);
  box-shadow:0 2px 12px rgba(33,28,23,.08);
  font:400 22px/1 var(--ct-font-ui,system-ui,sans-serif);
  cursor:pointer;z-index:4;
}
.modal-panel .profile-head{padding-right:44px}
.modal-panel .profile-head h2{font-size:clamp(25px,3vw,34px);font-weight:400}
.modal-panel .form-actions{position:sticky;bottom:-1px;background:linear-gradient(180deg,transparent,var(--ct-surface-elevated,#faf9f5) 24%);padding-top:24px}

/* Full object file remains available and keeps every editing/research action. */
.object-page{max-width:1180px;margin:0 auto;padding-bottom:48px}
.object-page-nav{max-width:1180px;margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ct-text-muted,#6b6962);font-size:12px}
.object-page .profile-head{background:transparent;border-bottom:1px solid var(--ct-line-subtle,#dedbd2);padding:8px 0 22px;margin-bottom:8px}
.object-page .profile-head h2{max-width:920px;font-size:clamp(30px,4vw,48px);line-height:1.07;font-weight:400}
.object-page .profile-meta{margin-top:10px}
.object-page .profile-section{margin:0;padding:24px 0;border-bottom:1px solid var(--ct-line-subtle,#dedbd2)}
.object-page .profile-section:last-child{border-bottom:0}
.object-page .profile-section h3{border:0;padding:0;margin:0 0 14px;font-size:20px;font-weight:400}
.object-page .field{border-top:1px solid rgba(116,105,91,.14);padding:10px 0}
.object-page .field .label{color:var(--ct-text-muted,#6b6962);font-size:10px;letter-spacing:.11em}
.object-page .field .value{font-size:13px;line-height:1.55}
.object-page .image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.object-page .image-tile{height:160px;background:var(--ct-parchment-soft,#eee9de);border:0;border-radius:var(--ct-radius-sm,8px);box-shadow:0 5px 18px rgba(33,28,23,.07)}

body.ct-preview-open{overflow:hidden}

/* Quick object preview. */
.ct-object-preview{position:fixed;inset:0;z-index:235;display:grid;place-items:center;padding:clamp(12px,4vw,42px)}
.ct-object-preview[hidden]{display:none}
.ct-object-preview-backdrop{position:absolute;inset:0;background:rgba(31,30,27,.46);backdrop-filter:blur(2px)}
.ct-object-preview-panel{
  position:relative;z-index:1;
  width:min(var(--ct-object-panel-w),94vw);max-height:var(--ct-object-panel-max-h);
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--ct-surface-elevated,#faf9f5);color:var(--ct-text-primary,#252521);
  border-radius:var(--ct-radius-lg,16px);border:0;
  box-shadow:var(--ct-shadow-popup,0 24px 68px rgba(33,28,23,.18));
}
.ct-object-preview-head{display:flex;justify-content:flex-end;align-items:center;min-height:46px;padding:8px 10px 0}
.ct-object-preview-close{width:36px;height:36px;min-height:36px;border:0;border-radius:50%;background:var(--ct-surface-canvas,#f4f2ec);color:inherit;font-size:21px;cursor:pointer}
.ct-object-preview-scroll{overflow:auto;overscroll-behavior:contain;padding:0 clamp(20px,4vw,36px) 28px}
.ct-object-preview-hero{
  position:relative;width:100%;height:clamp(200px,34vh,330px);margin:0 0 22px;
  display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(145deg,var(--ct-parchment-soft,#eee9de),var(--ct-surface-canvas,#f4f2ec));
  background-position:center;background-repeat:no-repeat;background-size:contain;
  border-radius:var(--ct-radius-md,12px);
  box-shadow:inset 0 0 0 1px rgba(87,73,56,.08),0 10px 28px rgba(33,28,23,.07);
}
.ct-object-preview-hero.has-image span{opacity:0}
.ct-object-preview-hero span{font:500 12px/1.2 var(--ct-font-ui,system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--ct-text-muted,#6b6962)}
.ct-object-preview-kicker{font:600 10px/1.3 var(--ct-font-ui,system-ui,sans-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--ct-text-muted,#6b6962)}
.ct-object-preview-title{margin:7px 0 7px;font:400 clamp(27px,4vw,38px)/1.08 var(--ct-font-display,Georgia,serif)}
.ct-object-preview-byline{margin:0 0 15px;color:var(--ct-text-muted,#6b6962);font-size:13px;line-height:1.5}
.ct-object-preview-subjects{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.ct-object-preview-summary{font:400 14px/1.65 var(--ct-font-body,Georgia,serif);margin:0 0 20px;max-width:70ch}
.ct-object-preview-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;border-top:1px solid var(--ct-line-subtle,#dedbd2);margin-top:8px}
.ct-object-preview-fact{padding:11px 0;border-bottom:1px solid var(--ct-line-subtle,#dedbd2)}
.ct-object-preview-fact small{display:block;margin-bottom:3px;font:600 9px/1.3 var(--ct-font-ui,system-ui,sans-serif);letter-spacing:.12em;text-transform:uppercase;color:var(--ct-text-muted,#6b6962)}
.ct-object-preview-fact span{font-size:12px;line-height:1.45}
.ct-object-preview-tabs{display:flex;gap:18px;margin:22px 0 16px;border-bottom:1px solid var(--ct-line-subtle,#dedbd2)}
.ct-object-preview-tab{position:relative;border:0;background:transparent;padding:0 0 9px;color:var(--ct-text-muted,#6b6962);font:600 11px/1.2 var(--ct-font-ui,system-ui,sans-serif);cursor:pointer}
.ct-object-preview-tab[aria-selected="true"]{color:var(--ct-text-primary,#252521)}
.ct-object-preview-tab[aria-selected="true"]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ct-accent-heritage,#485649)}
.ct-object-preview-pane[hidden]{display:none}
.ct-object-preview-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ct-object-preview-thumb{aspect-ratio:4/3;border:0;padding:0;overflow:hidden;border-radius:var(--ct-radius-sm,8px);background:var(--ct-parchment-soft,#eee9de);cursor:pointer}
.ct-object-preview-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ct-object-preview-empty{padding:24px 0;color:var(--ct-text-muted,#6b6962);font-size:12px}
.ct-object-preview-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--ct-line-subtle,#dedbd2)}
.ct-object-preview-actions .secondary,.ct-object-preview-actions .primary{min-height:38px}

/* Mobile: same component becomes a bottom sheet, not a miniature desktop modal. */
@media(max-width:760px){
  .modal{display:flex;align-items:flex-end;padding:0}
  .modal-panel{
    width:100%;max-height:72dvh;margin:0;padding:18px 18px calc(22px + env(safe-area-inset-bottom));
    border-radius:18px 18px 0 0;box-shadow:0 -16px 44px rgba(33,28,23,.18);
    transition:max-height var(--ct-motion-base,220ms) ease;
  }
  .modal-panel:before,.ct-object-preview-panel:before{content:"";display:block;width:42px;height:4px;margin:0 auto 8px;border-radius:9px;background:rgba(63,58,50,.2);flex:0 0 auto}
  .modal-panel.ct-expanded{max-height:94dvh}
  .ct-object-preview{display:flex;align-items:flex-end;padding:0}
  .ct-object-preview[hidden]{display:none}
  .ct-object-preview-panel{
    width:100%;max-height:72dvh;border-radius:18px 18px 0 0;
    box-shadow:0 -16px 44px rgba(33,28,23,.18);
    transition:max-height var(--ct-motion-base,220ms) ease;
  }
  .ct-object-preview-panel.ct-expanded{max-height:94dvh}
  .ct-object-preview-head{padding-top:2px}
  .ct-object-preview-scroll{padding:0 16px calc(18px + env(safe-area-inset-bottom))}
  .ct-object-preview-hero{height:190px;margin-bottom:18px}
  .ct-object-preview-title{font-size:27px}
  .ct-object-preview-facts{grid-template-columns:1fr}
  .ct-object-preview-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ct-object-preview-actions{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--ct-surface-elevated,#faf9f5) 22%);padding:24px 0 calc(6px + env(safe-area-inset-bottom))}
  .object-page .profile-grid{grid-template-columns:1fr}
  .object-page .profile-head h2{font-size:32px}
}

@media(prefers-reduced-motion:reduce){
  .modal-panel,.ct-object-preview-panel{transition:none!important}
}


/* ===== collectanea-home-p04.css ===== */
/* Collectanea V4 · P04 Startseite
   Rein visuelle Startseiten-Schicht. Keine Sammlungs-/Datenlogik. */

#view.collectanea-home{
  max-width:1480px;
  padding-top:30px;
}

#view.collectanea-home .hero{
  min-height:270px;
  grid-template-columns:minmax(0,1fr) 150px;
  align-items:center;
  padding:44px 48px;
  margin:0 0 28px;
  border-radius:14px;
  border:1px solid color-mix(in srgb,var(--ct-line,#d8d3ca) 84%,transparent);
  background:
    linear-gradient(105deg,rgba(250,249,245,.98) 0 62%,rgba(240,235,225,.82) 100%);
  box-shadow:0 12px 34px rgba(45,38,31,.055);
}
#view.collectanea-home .hero:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;width:4px;
  background:var(--ct-accent-green,#485649);
  opacity:.78;
}
#view.collectanea-home .hero h2{
  margin:3px 0 12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(38px,5vw,62px);
  line-height:.98;
  font-weight:400;
  letter-spacing:-.035em;
  color:var(--ct-text,#252521);
}
#view.collectanea-home .hero p{
  max-width:690px;
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:16px;
  line-height:1.62;
  color:#504d46;
}
#view.collectanea-home .hero .eyebrow{
  color:var(--ct-accent-green,#485649);
  letter-spacing:.18em;
  font-size:10px;
}
#view.collectanea-home .hero-emblem{
  font-size:116px;
  line-height:1;
  opacity:.07;
  color:var(--ct-walnut-dark,#38291e);
}
#view.collectanea-home .hero-actions{
  margin-top:22px;
}
#view.collectanea-home .hero-actions .primary,
#view.collectanea-home .hero-actions .secondary{
  min-height:38px;
  padding:8px 13px;
}

/* Redaktioneller Tagesblock – Auswahl/Rotation folgt erst in P05. */
#view.collectanea-home .today-object{
  grid-template-columns:minmax(270px,38%) minmax(0,1fr);
  gap:0;
  margin:0 0 28px;
  border-radius:14px;
  border:1px solid var(--ct-line,#d8d3ca);
  background:var(--ct-surface-elevated,#faf9f5);
  box-shadow:0 15px 38px rgba(45,38,31,.07);
}
#view.collectanea-home .today-object-media{
  min-height:330px;
  padding:14px;
  border-right:1px solid rgba(80,70,58,.10);
  background-color:#e6e0d5;
  background-size:cover;
  background-position:center;
}
#view.collectanea-home .today-object-copy{
  padding:38px 42px;
}
#view.collectanea-home .today-object-copy h3{
  max-width:760px;
  font-size:clamp(28px,3vw,40px);
  line-height:1.06;
  margin:8px 0 11px;
}
#view.collectanea-home .today-object-copy p{
  font-size:13px;
}

/* Raumzugänge: Vorschau der späteren realistischen Räume, noch ohne P07/P09-Raumumbau. */
#view.collectanea-home .room-launch-grid{
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin:0 0 30px;
}
#view.collectanea-home .room-launch{
  min-height:250px;
  padding:28px 30px;
  border-radius:13px;
  box-shadow:0 18px 38px rgba(33,28,23,.12);
  transform:none;
  transition:transform .24s ease,box-shadow .24s ease;
  overflow:hidden;
}
#view.collectanea-home .room-launch:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 48px rgba(33,28,23,.16);
  filter:none;
}
#view.collectanea-home .room-launch strong{
  position:relative;
  z-index:4;
  font-size:32px;
  margin:7px 0 6px;
}
#view.collectanea-home .room-launch small,
#view.collectanea-home .room-launch-kicker{
  position:relative;
  z-index:4;
}
#view.collectanea-home .library-launch{
  color:#f8f3ea;
  background:
    linear-gradient(90deg,rgba(22,15,10,.72) 0 46%,rgba(22,15,10,.18) 70%,rgba(22,15,10,.08)),
    linear-gradient(135deg,#3c291d,#241912 64%,#17110d);
}
#view.collectanea-home .museum-launch{
  color:#2d2d29;
  background:
    linear-gradient(90deg,rgba(248,247,243,.98) 0 46%,rgba(248,247,243,.63) 69%,rgba(248,247,243,.25)),
    linear-gradient(135deg,#eeece6,#d9d5ce);
}
#view.collectanea-home .museum-launch .room-launch-kicker,
#view.collectanea-home .museum-launch small{color:#66625b}

.p04-room-visual{
  position:absolute;
  right:0;top:0;bottom:0;
  width:54%;
  z-index:1;
  pointer-events:none;
}
.p04-library-preview{
  padding:28px 24px 22px 14px;
  background:linear-gradient(90deg,transparent,rgba(0,0,0,.08));
}
.p04-library-case{
  height:100%;
  position:relative;
  border:11px solid #4a3021;
  border-top-width:16px;
  border-bottom-width:18px;
  box-shadow:inset 0 0 0 2px rgba(196,151,106,.18),0 9px 24px rgba(0,0,0,.22);
  background:#261913;
}
.p04-library-case:before{
  content:"";
  position:absolute;
  left:-15px;right:-15px;top:-22px;height:10px;
  background:#5a3a27;
  border-radius:50% 50% 2px 2px / 100% 100% 2px 2px;
  box-shadow:0 3px 0 #2b1c14;
}
.p04-shelf-row{
  height:33.333%;
  position:relative;
  display:flex;
  align-items:flex-end;
  gap:2px;
  padding:7px 6px 8px;
  border-bottom:8px solid #5b3927;
  box-shadow:inset 0 -2px 0 rgba(203,157,111,.16),inset 0 11px 16px rgba(0,0,0,.16);
}
.p04-shelf-row:last-child{border-bottom:0}
.p04-shelf-row i{
  display:block;
  width:7%;
  min-width:6px;
  height:var(--h,65%);
  border-radius:1px 1px 0 0;
  background:linear-gradient(90deg,#49382c,#745c48 55%,#35281f);
  border:1px solid rgba(8,6,5,.52);
  box-shadow:1px 0 2px rgba(0,0,0,.28);
}
.p04-shelf-row i:nth-child(3n){background:linear-gradient(90deg,#2f4437,#556b5a,#293a31)}
.p04-shelf-row i:nth-child(4n){background:linear-gradient(90deg,#544b43,#75685b,#413a33)}
.p04-shelf-row i:nth-child(5n){background:linear-gradient(90deg,#463c52,#655a70,#393243)}

.p04-museum-preview{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:28px 26px 24px 14px;
}
.p04-museum-wall{
  width:100%;height:100%;
  position:relative;
  background:linear-gradient(180deg,#f7f6f2 0 82%,#e5e1d8 82%);
  box-shadow:inset 0 0 0 1px rgba(67,62,55,.12),0 9px 25px rgba(55,50,44,.10);
}
.p04-museum-wall:before{
  content:"";
  position:absolute;inset:0;
  background:
   radial-gradient(ellipse at 25% 2%,rgba(255,255,255,.95),transparent 30%),
   radial-gradient(ellipse at 72% 2%,rgba(255,255,255,.9),transparent 32%);
  opacity:.86;
}
.p04-frame{
  position:absolute;
  background:#ece7da;
  border:4px solid #50463c;
  box-shadow:0 7px 12px rgba(0,0,0,.14);
}
.p04-frame:after{
  content:"";
  position:absolute;
  left:18%;right:18%;bottom:-10px;height:3px;
  background:#d0cbc2;
  border:1px solid rgba(69,65,59,.22);
}
.p04-frame.a{left:10%;top:18%;width:19%;height:39%}
.p04-frame.b{left:39%;top:11%;width:28%;height:49%}
.p04-frame.c{right:8%;top:24%;width:18%;height:32%}
.p04-museum-bench{
  position:absolute;left:16%;right:10%;bottom:8%;height:11px;
  background:#5b402e;
  box-shadow:0 6px 7px rgba(0,0,0,.18);
}
.p04-museum-bench:before,.p04-museum-bench:after{
  content:"";position:absolute;bottom:-22px;width:6px;height:22px;background:#493225;
}
.p04-museum-bench:before{left:8%}.p04-museum-bench:after{right:8%}

/* Zahlen bleiben präsent, wirken aber weniger wie sechs identische KI-Karten. */
#view.collectanea-home > .kpi-grid{
  gap:0;
  margin:0 0 30px;
  border-top:1px solid var(--ct-line,#d8d3ca);
  border-bottom:1px solid var(--ct-line,#d8d3ca);
}
#view.collectanea-home > .kpi-grid .kpi{
  min-height:96px;
  padding:17px 16px;
  border:0;
  border-right:1px solid var(--ct-line,#d8d3ca);
  border-radius:0;
  background:transparent;
}
#view.collectanea-home > .kpi-grid .kpi:last-child{border-right:0}
#view.collectanea-home > .kpi-grid .kpi .num{font-size:31px}

#view.collectanea-home .home-section{
  margin:30px 0;
}
#view.collectanea-home .home-section-head{
  padding-bottom:9px;
  border-bottom:1px solid var(--ct-line,#d8d3ca);
}
#view.collectanea-home .home-section-head h3{
  font-size:26px;
}
#view.collectanea-home .home-recent-image{
  border-radius:8px;
  box-shadow:0 8px 18px rgba(45,38,31,.07);
}

/* Startseiten-Einstiege als Register statt Standardkarten. */
#view.collectanea-home .entry-grid{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:0;
  margin:34px 0 30px;
  border-top:1px solid var(--ct-line,#d8d3ca);
  border-bottom:1px solid var(--ct-line,#d8d3ca);
}
#view.collectanea-home .entry-card{
  min-height:126px;
  padding:20px 18px;
  border:0;
  border-right:1px solid var(--ct-line,#d8d3ca);
  border-radius:0;
  background:transparent;
  box-shadow:none;
  transition:background .18s ease;
}
#view.collectanea-home .entry-card:last-child{border-right:0}
#view.collectanea-home .entry-card:hover{
  box-shadow:none;
  background:rgba(72,86,73,.045);
}
#view.collectanea-home .entry-card h3{
  font-size:19px;
  margin:9px 0 5px;
}
#view.collectanea-home .entry-card p{
  margin:0;
}
#view.collectanea-home .entry-icon{
  font-size:17px;
  color:var(--ct-accent-green,#485649);
}

/* Sekundäre Startseiteninformationen: weniger Rahmen, gleiche Information. */
#view.collectanea-home > .two-col{
  gap:28px;
  margin-top:20px;
  padding-top:6px;
}
#view.collectanea-home > .two-col > .panel{
  margin-top:0;
  padding:18px 0 4px;
  border:0;
  border-top:1px solid var(--ct-line,#d8d3ca);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#view.collectanea-home .todo-rows button{
  border-radius:7px;
  background:rgba(250,249,245,.62);
}

@media(max-width:1100px){
  #view.collectanea-home .room-launch-grid{grid-template-columns:1fr}
  #view.collectanea-home .entry-grid{grid-template-columns:repeat(3,1fr)}
  #view.collectanea-home .entry-card:nth-child(3){border-right:0}
  #view.collectanea-home .entry-card:nth-child(n+4){border-top:1px solid var(--ct-line,#d8d3ca)}
}

@media(max-width:760px){
  #view.collectanea-home{padding-top:18px}
  #view.collectanea-home .hero{
    min-height:0;
    grid-template-columns:1fr;
    padding:30px 24px;
    margin-bottom:20px;
  }
  #view.collectanea-home .hero-emblem{display:none}
  #view.collectanea-home .hero h2{font-size:39px}
  #view.collectanea-home .hero p{font-size:14px}
  #view.collectanea-home .today-object{grid-template-columns:1fr;margin-bottom:20px}
  #view.collectanea-home .today-object-media{min-height:280px;border-right:0;border-bottom:1px solid rgba(80,70,58,.10)}
  #view.collectanea-home .today-object-copy{padding:23px 20px}
  #view.collectanea-home .room-launch{min-height:215px;padding:22px 20px}
  #view.collectanea-home .room-launch strong{font-size:27px}
  .p04-room-visual{width:58%;opacity:.78}
  #view.collectanea-home > .kpi-grid{
    grid-template-columns:repeat(2,1fr);
  }
  #view.collectanea-home > .kpi-grid .kpi{border-bottom:1px solid var(--ct-line,#d8d3ca)}
  #view.collectanea-home > .kpi-grid .kpi:nth-child(2n){border-right:0}
  #view.collectanea-home .entry-grid{grid-template-columns:1fr 1fr}
  #view.collectanea-home .entry-card{border-top:1px solid var(--ct-line,#d8d3ca);border-right:1px solid var(--ct-line,#d8d3ca)}
  #view.collectanea-home .entry-card:nth-child(-n+2){border-top:0}
  #view.collectanea-home .entry-card:nth-child(2n){border-right:0}
  #view.collectanea-home .entry-card:last-child{grid-column:1/-1;border-right:0}
  #view.collectanea-home > .two-col{grid-template-columns:1fr;gap:14px}
}

@media(prefers-reduced-motion:reduce){
  #view.collectanea-home .room-launch{transition:none!important}
}


/* ===== collectanea-daily-p05.css ===== */
/* Collectanea V4 · P05 · Heute in der Sammlung */
#view.collectanea-home .today-object{position:relative}
#view.collectanea-home .today-object:after{
  content:"wechselt täglich · 00:00";
  position:absolute;right:18px;top:14px;
  font-size:9px;letter-spacing:.10em;text-transform:uppercase;
  color:color-mix(in srgb,var(--ct-text-muted,#6d6961) 76%,transparent);
  pointer-events:none;
}
#view.collectanea-home .today-object-media{
  position:relative;overflow:hidden;
  background-repeat:no-repeat;
  background-position:center;
  transition:background-image .2s ease,filter .2s ease;
}
#view.collectanea-home .today-object-media.p05-front-image{
  background-size:contain;
  background-color:#e9e4da;
  box-shadow:inset -18px 0 32px rgba(45,38,31,.035);
}
#view.collectanea-home .today-object-media.p05-spine-fallback{
  background-size:cover;
  background-position:center;
}
#view.collectanea-home .today-object-media.has-image:before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 68%,rgba(24,20,16,.16));
  pointer-events:none;
}
#view.collectanea-home .today-object-media span{position:relative;z-index:1}
@media(max-width:760px){
 #view.collectanea-home .today-object:after{right:14px;top:11px;font-size:8px}
 #view.collectanea-home .today-object-media.p05-front-image{min-height:300px}
}
@media(prefers-reduced-motion:reduce){#view.collectanea-home .today-object-media{transition:none!important}}


/* ===== collectanea-weekly-p06.css ===== */
/* Collectanea V4 · P06 · Personenfoto + Wochenperson */
.p06-person-card-photo{
  width:78px;height:94px;float:left;margin:0 15px 10px 0;overflow:hidden;
  border-radius:8px;background:#e8e3d9;box-shadow:0 5px 14px rgba(45,38,31,.10);
  display:grid;place-items:center;color:#6c665d;font:500 24px/1 Georgia,"Times New Roman",serif;
}
.p06-person-card-photo img,.p06-person-portrait img,.p06-weekly-photo img{width:100%;height:100%;object-fit:cover;display:block}
.compact-person-card:after{content:"";display:block;clear:both}
.p06-person-detail-photo{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:center;margin:0 0 24px;padding:0 0 24px;border-bottom:1px solid var(--ct-line,#d8d3ca)}
.p06-person-portrait{width:180px;aspect-ratio:4/5;overflow:hidden;border-radius:9px;background:#e8e3d9;display:grid;place-items:center;color:#686158;font:500 42px/1 Georgia,"Times New Roman",serif;box-shadow:0 9px 22px rgba(45,38,31,.10)}
.p06-person-photo-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.p06-person-photo-actions small{display:block;flex-basis:100%;max-width:520px;color:var(--ct-text-muted,#6d6961);line-height:1.5}
.p06-photo-upload{display:inline-flex;align-items:center;cursor:pointer}.p06-photo-upload input{display:none}
.p06-person-form-photo{grid-column:1/-1;padding-top:7px;border-top:1px solid var(--ct-line,#d8d3ca)}

#view.collectanea-home .p06-weekly-person{
  display:grid;grid-template-columns:minmax(220px,31%) minmax(0,1fr);margin:-4px 0 30px;
  background:linear-gradient(112deg,#f7f5ef 0 66%,#eeeae0 100%);border:1px solid var(--ct-line,#d8d3ca);border-radius:14px;overflow:hidden;
  box-shadow:0 13px 32px rgba(45,38,31,.055);
}
.p06-weekly-photo{min-height:310px;background:#ded8cc;display:grid;place-items:center;overflow:hidden;color:#686158;font:500 58px/1 Georgia,"Times New Roman",serif}
.p06-weekly-photo img{object-position:center 22%}
.p06-weekly-copy{padding:34px 40px 32px}
.p06-weekly-top{display:flex;justify-content:space-between;gap:20px;align-items:center}
.p06-weekly-top small{font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:var(--ct-text-muted,#6d6961)}
.p06-weekly-copy h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(28px,3vw,39px);line-height:1.08;margin:8px 0 8px;color:var(--ct-text,#252521)}
.p06-weekly-life{font-size:12px;color:var(--ct-text-muted,#6d6961);margin:0 0 18px}
.p06-weekly-excerpt{max-width:760px;font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1.68;margin:0 0 16px;color:#45423d}
.p06-weekly-actions{display:flex;gap:9px;margin-top:22px}

@media(max-width:760px){
 .p06-person-card-photo{width:64px;height:78px;margin-right:12px}
 .p06-person-detail-photo{grid-template-columns:110px minmax(0,1fr);gap:15px}.p06-person-portrait{width:110px}
 #view.collectanea-home .p06-weekly-person{grid-template-columns:1fr;margin-bottom:24px}
 .p06-weekly-photo{min-height:290px;max-height:390px}.p06-weekly-copy{padding:26px 22px 27px}.p06-weekly-top{align-items:flex-start}.p06-weekly-actions{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.p06-weekly-person *{scroll-behavior:auto!important;transition:none!important}}


/* ===== collectanea-library-p07.css ===== */
/* Collectanea V4.0 P07 · Realistischer Bibliotheks-Regalgrundkörper
   Scope: ausschließlich visuelle Architektur des Bibliotheksraums.
   Buchlogik, Maße, Sortierung, Filter, Bilder und Interaktionen bleiben unangetastet. */

:root{
  --p07-walnut-deep:#21170f;
  --p07-walnut-dark:#2f2016;
  --p07-walnut-mid:#4a3425;
  --p07-walnut-warm:#60452f;
  --p07-walnut-edge:#76563b;
  --p07-walnut-highlight:#9a7654;
  --p07-shelf-back:#241912;
  --p07-room-wall:#eee9df;
  --p07-room-wall-deep:#e5ddd0;
}

/* Keine vorgetäuschte ganze Bibliothek: ruhige Wand, das Möbel ist die Bühne. */
.library-room{
  position:relative!important;
  min-height:560px!important;
  padding:48px 34px 64px!important;
  overflow:auto!important;
  background:
    radial-gradient(ellipse 72% 32% at 50% 4%,rgba(255,255,255,.82),transparent 68%),
    linear-gradient(180deg,var(--p07-room-wall) 0%,#ebe5db 70%,var(--p07-room-wall-deep) 100%)!important;
  border:1px solid rgba(67,50,37,.12)!important;
  border-radius:12px!important;
  box-shadow:inset 0 1px rgba(255,255,255,.85),0 14px 36px rgba(38,30,24,.07)!important;
}
.library-room:before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  opacity:.28!important;
  background:
    repeating-linear-gradient(0deg,rgba(67,54,43,.018) 0 1px,transparent 1px 5px),
    radial-gradient(circle at 20% 34%,rgba(90,72,55,.025),transparent 24%),
    radial-gradient(circle at 78% 62%,rgba(90,72,55,.02),transparent 22%)!important;
}
.room-ceiling-light,.room-architecture,.room-dust,.library-rug,.room-floor{display:none!important}
.library-cases{position:relative!important;z-index:2!important;gap:34px!important}

/* Das Gruppenlabel wird als eingelassene Beschriftung im oberen Gesims gelesen. */
.bookcase-section{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  margin:0 0 34px!important;
  padding-top:20px!important;
  filter:drop-shadow(0 18px 18px rgba(25,17,12,.22))!important;
  transform:none!important;
}
.bookcase-section:hover{transform:none!important;filter:drop-shadow(0 20px 21px rgba(25,17,12,.25))!important}

.bookcase-label{
  position:relative!important;
  z-index:6!important;
  width:calc(100% - 54px)!important;
  height:42px!important;
  margin:0 auto -3px!important;
  padding:0 18px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  color:#e1d2bf!important;
  background:
    linear-gradient(90deg,rgba(0,0,0,.24),transparent 9%,transparent 91%,rgba(0,0,0,.28)),
    repeating-linear-gradient(4deg,rgba(255,255,255,.018) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,#513824 0%,#39261a 46%,#2a1c13 100%)!important;
  border:0!important;
  border-top:2px solid rgba(154,118,84,.5)!important;
  border-bottom:1px solid rgba(12,8,5,.92)!important;
  border-radius:3px 3px 0 0!important;
  box-shadow:0 -5px 13px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.08),inset 0 -8px 12px rgba(0,0,0,.14)!important;
}
.bookcase-label:before,.bookcase-label:after{
  content:"";
  position:absolute;
  top:-11px;
  width:42px;
  height:18px;
  background:
    linear-gradient(135deg,transparent 49%,#3d291c 50%) left/50% 100% no-repeat,
    linear-gradient(225deg,transparent 49%,#3d291c 50%) right/50% 100% no-repeat;
  opacity:.95;
  pointer-events:none;
}
.bookcase-label:before{left:18px}
.bookcase-label:after{right:18px}
.bookcase-label span{font:500 15px/1.2 Georgia,"Times New Roman",serif!important;letter-spacing:.035em!important;text-shadow:0 1px 2px rgba(0,0,0,.72)!important}
.bookcase-label small{font-size:9px!important;letter-spacing:.08em!important;color:rgba(225,210,191,.66)!important}

/* Massiver Möbelrahmen: Seitenpfosten, Sockel und Obergesims ohne Fantasy-Ornamentik. */
.bookcase-frame{
  position:relative!important;
  width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  padding:16px 17px 24px!important;
  border:0!important;
  border-radius:2px!important;
  background:
    linear-gradient(90deg,rgba(0,0,0,.42) 0 2px,transparent 4px calc(100% - 4px),rgba(0,0,0,.46) calc(100% - 2px)),
    repeating-linear-gradient(8deg,rgba(225,191,151,.025) 0 1px,transparent 1px 11px),
    linear-gradient(90deg,var(--p07-walnut-deep) 0 1.5%,var(--p07-walnut-dark) 1.5% 4.2%,var(--p07-walnut-mid) 4.2% 95.8%,var(--p07-walnut-dark) 95.8% 98.5%,var(--p07-walnut-deep) 98.5% 100%)!important;
  box-shadow:
    0 22px 34px rgba(24,16,11,.34),
    0 7px 12px rgba(24,16,11,.25),
    inset 7px 0 10px rgba(0,0,0,.27),
    inset -7px 0 10px rgba(0,0,0,.3),
    inset 0 -12px 16px rgba(0,0,0,.24),
    inset 0 1px rgba(188,146,103,.18)!important;
  transform:none!important;
}

/* Feines gotisches Motiv nur im oberen Rahmen: drei abstrahierte Spitzbögen als Schnitzband. */
.bookcase-frame:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  top:3px!important;
  left:54px!important;
  right:54px!important;
  height:13px!important;
  pointer-events:none!important;
  opacity:.42!important;
  background:
    conic-gradient(from 225deg at 16.67% 100%,transparent 0 44deg,rgba(156,119,83,.46) 45deg 47deg,transparent 48deg 360deg),
    conic-gradient(from 225deg at 50% 100%,transparent 0 44deg,rgba(156,119,83,.42) 45deg 47deg,transparent 48deg 360deg),
    conic-gradient(from 225deg at 83.33% 100%,transparent 0 44deg,rgba(156,119,83,.46) 45deg 47deg,transparent 48deg 360deg)!important;
  border-bottom:1px solid rgba(133,98,67,.18)!important;
}
.bookcase-frame:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:5!important;
  left:7px!important;
  right:7px!important;
  bottom:5px!important;
  height:18px!important;
  pointer-events:none!important;
  background:
    linear-gradient(180deg,rgba(139,100,68,.34),rgba(42,28,19,.22) 24%,rgba(20,13,9,.58) 100%)!important;
  border-top:1px solid rgba(170,129,91,.26)!important;
  box-shadow:0 7px 10px rgba(0,0,0,.26),inset 0 1px rgba(255,255,255,.04)!important;
}

/* Regalfächer: dunkle Rückwand, echte Bretttiefe, Schattenwurf unter jedem Brett. */
.real-shelf{
  position:relative!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding-left:13px!important;
  padding-right:13px!important;
  background:
    radial-gradient(ellipse 75% 40% at 50% 0%,rgba(119,82,51,.14),transparent 72%),
    repeating-linear-gradient(2deg,rgba(255,255,255,.013) 0 1px,transparent 1px 9px),
    linear-gradient(90deg,#1c130e 0%,var(--p07-shelf-back) 7%,#2b1e15 50%,var(--p07-shelf-back) 93%,#1a110c 100%)!important;
  border:0!important;
  box-shadow:
    inset 12px 0 18px rgba(0,0,0,.3),
    inset -12px 0 18px rgba(0,0,0,.32),
    inset 0 15px 18px rgba(0,0,0,.2)!important;
  overflow:hidden!important;
  transform:none!important;
}
.real-shelf + .real-shelf{
  border-top:0!important;
  margin-top:0!important;
}
.shelf-back{
  z-index:2!important;
  gap:1px!important;
  overflow:hidden!important;
}
.shelf-plank{
  display:block!important;
  z-index:3!important;
  left:-4px!important;
  right:-4px!important;
  bottom:0!important;
  height:30px!important;
  transform:none!important;
  background:
    linear-gradient(90deg,rgba(0,0,0,.28),transparent 7%,transparent 93%,rgba(0,0,0,.3)),
    repeating-linear-gradient(4deg,rgba(236,201,158,.025) 0 1px,transparent 1px 9px),
    linear-gradient(180deg,var(--p07-walnut-highlight) 0 2%,#6c4b33 4% 13%,#493120 18% 58%,#302016 64% 83%,#21150e 86% 100%)!important;
  border:0!important;
  border-top:1px solid rgba(186,142,99,.48)!important;
  box-shadow:
    0 -9px 14px rgba(0,0,0,.56),
    0 9px 12px rgba(0,0,0,.48),
    inset 0 2px rgba(255,255,255,.055),
    inset 0 -4px 5px rgba(0,0,0,.24)!important;
}

/* Seitenpfosten werden auf großen Displays massiver; die Innenfläche bleibt frei für Bücher. */
@media(min-width:1001px){
  .library-room{padding-left:42px!important;padding-right:42px!important}
  .bookcase-frame{padding-left:20px!important;padding-right:20px!important;padding-top:18px!important;padding-bottom:25px!important}
  .bookcase-label{width:calc(100% - 66px)!important}
  .real-shelf{min-height:260px!important;padding-left:14px!important;padding-right:14px!important}
  .shelf-back{left:14px!important;right:14px!important}
}

/* Mobil: dasselbe Möbel, verdichtet statt neu erfunden. */
@media(max-width:760px){
  .library-room{padding:34px 14px 48px!important;min-height:auto!important}
  .bookcase-section{padding-top:15px!important;margin-bottom:24px!important}
  .bookcase-label{width:calc(100% - 30px)!important;height:38px!important;padding:0 11px!important}
  .bookcase-label:before,.bookcase-label:after{top:-8px;width:28px;height:13px}
  .bookcase-label:before{left:10px}.bookcase-label:after{right:10px}
  .bookcase-label span{font-size:13px!important}.bookcase-label small{font-size:7px!important}
  .bookcase-frame,.bookcase-frame.compact-shelves{
    padding:12px 10px 19px!important;
    border:0!important;
    overflow:hidden!important;
    background:
      linear-gradient(90deg,rgba(0,0,0,.42) 0 2px,transparent 4px calc(100% - 4px),rgba(0,0,0,.46) calc(100% - 2px)),
      repeating-linear-gradient(8deg,rgba(225,191,151,.024) 0 1px,transparent 1px 10px),
      linear-gradient(90deg,var(--p07-walnut-deep) 0 2.5%,var(--p07-walnut-dark) 2.5% 6%,var(--p07-walnut-mid) 6% 94%,var(--p07-walnut-dark) 94% 97.5%,var(--p07-walnut-deep) 97.5% 100%)!important;
    box-shadow:0 15px 24px rgba(24,16,11,.31),inset 5px 0 8px rgba(0,0,0,.25),inset -5px 0 8px rgba(0,0,0,.28)!important;
  }
  .bookcase-frame:before{left:30px!important;right:30px!important;height:10px!important}
  .bookcase-frame:after{left:5px!important;right:5px!important;bottom:4px!important;height:13px!important}
  .bookcase-frame.compact-shelves .real-shelf{
    padding-left:8px!important;padding-right:8px!important;padding-bottom:21px!important;
    margin:0!important;border:0!important;overflow:hidden!important;
    background:
      radial-gradient(ellipse 75% 40% at 50% 0%,rgba(119,82,51,.13),transparent 72%),
      repeating-linear-gradient(2deg,rgba(255,255,255,.012) 0 1px,transparent 1px 8px),
      linear-gradient(90deg,#1c130e 0%,var(--p07-shelf-back) 7%,#2b1e15 50%,var(--p07-shelf-back) 93%,#1a110c 100%)!important;
    box-shadow:inset 8px 0 12px rgba(0,0,0,.28),inset -8px 0 12px rgba(0,0,0,.3),inset 0 12px 16px rgba(0,0,0,.18)!important;
  }
  .bookcase-frame.compact-shelves .real-shelf + .real-shelf{margin-top:0!important;border-top:0!important}
  .bookcase-frame.compact-shelves .shelf-back{left:8px!important;right:8px!important;overflow:visible!important}
  .bookcase-frame.compact-shelves .shelf-plank{display:block!important;left:-3px!important;right:-3px!important;height:22px!important}
}

@media(prefers-reduced-motion:reduce){.bookcase-section,.bookcase-section:hover{transition:none!important}}


/* ===== collectanea-library-p08.css ===== */
/* Collectanea V4.0 P08 · Bücher / adaptive Fachhöhen / Fokuslicht
   Scope: visuelle Buchphysik und abgeleitete Fachhöhe. Keine Katalog-, Filter- oder Sortierlogik. */

:root{
  --p08-book-contact:rgba(10,7,5,.48);
  --p08-book-edge:rgba(25,17,11,.58);
  --p08-focus-light:rgba(246,232,207,.52);
  --p08-focus-light-soft:rgba(246,232,207,.16);
  --p08-focus-housing:#2b211a;
}

/* Das reale Buchfoto bleibt die Oberfläche; CSS gibt nur Kante, Volumen und Kontakt zum Brett. */
.library-room .book-spine-v2{
  position:relative!important;
  flex:none!important;
  align-self:flex-end!important;
  border:1px solid var(--p08-book-edge)!important;
  border-bottom-color:rgba(16,10,7,.82)!important;
  border-radius:2px 3px 1px 1px!important;
  background-clip:padding-box!important;
  box-shadow:
    inset 1px 0 rgba(255,255,255,.12),
    inset -2px 0 rgba(0,0,0,.2),
    inset 0 -2px rgba(0,0,0,.18),
    1px 1px 1px rgba(0,0,0,.25),
    3px 3px 5px var(--p08-book-contact)!important;
  filter:saturate(.96) contrast(1.015)!important;
  transform-origin:50% 100%!important;
  transition:transform .22s cubic-bezier(.2,.75,.25,1),filter .2s ease,box-shadow .22s ease!important;
}
.library-room .book-spine-v2.has-image{
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
.library-room .book-spine-v2:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.12),transparent 9%,transparent 80%,rgba(0,0,0,.18)),
    linear-gradient(180deg,rgba(255,255,255,.035),transparent 12%,transparent 87%,rgba(0,0,0,.1))!important;
  mix-blend-mode:soft-light!important;
  opacity:.82!important;
}
.library-room .book-spine-v2:after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:5%!important;
  right:5%!important;
  bottom:-4px!important;
  height:4px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  background:radial-gradient(ellipse,rgba(0,0,0,.45),transparent 70%)!important;
  filter:blur(1px)!important;
  opacity:.68!important;
}
.library-room .book-spine-v2:hover,
.library-room .book-spine-v2.p08-focused,
.library-room .book-spine-v2.spine-info-open{
  transform:translateY(-3px)!important;
  filter:saturate(1) brightness(1.045) contrast(1.02)!important;
  box-shadow:
    inset 1px 0 rgba(255,255,255,.15),
    inset -2px 0 rgba(0,0,0,.19),
    inset 0 -2px rgba(0,0,0,.16),
    2px 3px 2px rgba(0,0,0,.24),
    5px 7px 9px rgba(0,0,0,.4)!important;
  z-index:14!important;
}
.library-room .book-spine-v2.measure-missing{
  outline:1px dashed rgba(190,164,129,.56)!important;
  outline-offset:-2px!important;
}

/* P08 setzt --p08-book-height anhand des höchsten tatsächlich sichtbaren Buches der Reihe. */
.library-room .real-shelf.p08-adaptive{
  --p08-book-height:220px;
  --p08-headroom:48px;
  height:calc(var(--p08-book-height) + var(--p08-headroom) + 30px)!important;
  min-height:0!important;
  max-height:none!important;
  padding-top:var(--p08-headroom)!important;
  padding-bottom:30px!important;
  transition:height .42s cubic-bezier(.2,.72,.22,1)!important;
}
.library-room .real-shelf.p08-adaptive .shelf-back{
  height:calc(var(--p08-book-height) + var(--p08-headroom) - 8px)!important;
  min-height:0!important;
  max-height:none!important;
  bottom:30px!important;
  align-items:flex-end!important;
  overflow:visible!important;
  transition:height .42s cubic-bezier(.2,.72,.22,1)!important;
}
.library-room .real-shelf.p08-adaptive .shelf-plank{height:30px!important}

/* Kleine integrierte Leuchte: nur bei Fokus sichtbar, nicht als permanente Dekoration. */
.library-room .p08-shelf-lamp{
  position:absolute;
  z-index:12;
  top:9px;
  left:var(--p08-focus-x,50%);
  width:26px;
  height:7px;
  transform:translateX(-50%);
  border-radius:2px 2px 4px 4px;
  background:linear-gradient(180deg,#3c3027,var(--p08-focus-housing));
  box-shadow:0 2px 3px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.055);
  opacity:0;
  pointer-events:none;
  transition:left .28s cubic-bezier(.2,.72,.22,1),opacity .18s ease;
}
.library-room .p08-shelf-lamp:before{
  content:"";
  position:absolute;
  left:5px;
  right:5px;
  bottom:-2px;
  height:2px;
  border-radius:50%;
  background:rgba(246,232,207,.88);
  box-shadow:0 1px 5px rgba(246,232,207,.48);
}
.library-room .p08-shelf-lamp:after{
  content:"";
  position:absolute;
  z-index:-1;
  top:6px;
  left:50%;
  width:86px;
  height:calc(var(--p08-book-height,220px) + 23px);
  transform:translateX(-50%);
  transform-origin:50% 0;
  clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);
  background:linear-gradient(180deg,var(--p08-focus-light) 0%,var(--p08-focus-light-soft) 45%,transparent 100%);
  filter:blur(1.5px);
  opacity:.72;
}
.library-room .real-shelf.p08-focus-active .p08-shelf-lamp{opacity:1}
.library-room .real-shelf.p08-focus-active .book-spine-v2:not(.p08-focused):not(.spine-info-open){filter:saturate(.94) brightness(.975)!important}

/* Die Reihe darf nach Filterung ruhig ihre Höhe wechseln, Bücher bleiben auf dem Brett. */
.library-room .bookcase-frame{align-content:start!important}
.library-room .shelf-back{display:flex!important;align-items:flex-end!important}

@media(max-width:760px){
  .library-room .real-shelf.p08-adaptive{
    --p08-headroom:38px;
    height:calc(var(--p08-book-height) + var(--p08-headroom) + 22px)!important;
    padding-top:var(--p08-headroom)!important;
    padding-bottom:22px!important;
  }
  .library-room .real-shelf.p08-adaptive .shelf-back{
    height:calc(var(--p08-book-height) + var(--p08-headroom) - 6px)!important;
    bottom:22px!important;
  }
  .library-room .real-shelf.p08-adaptive .shelf-plank{height:22px!important}
  .library-room .p08-shelf-lamp{top:7px;width:23px;height:6px}
  .library-room .p08-shelf-lamp:after{width:70px;height:calc(var(--p08-book-height,180px) + 17px)}
  .library-room .book-spine-v2:hover,
  .library-room .book-spine-v2.p08-focused,
  .library-room .book-spine-v2.spine-info-open{transform:translateY(-2px)!important}
}

@media(prefers-reduced-motion:reduce){
  .library-room .real-shelf.p08-adaptive,
  .library-room .real-shelf.p08-adaptive .shelf-back,
  .library-room .book-spine-v2,
  .library-room .p08-shelf-lamp{transition:none!important}
}


/* ===== collectanea-museum-p09.css ===== */
/* Collectanea V4.0 P09 · Museumswand / Licht / Rahmen
   Scope: ausschließlich Museumsgrundraum und allgemeine Wandpräsentation.
   Objektgattungs-spezifische Präsentation (P10) und Museumsschilder (P11) folgen separat. */

:root{
  --p09-wall:#f4f2ec;
  --p09-wall-light:#faf9f5;
  --p09-wall-shadow:#e7e3da;
  --p09-frame:#4f4942;
  --p09-frame-soft:#696158;
  --p09-mat:#ece8de;
  --p09-light:rgba(255,247,226,.52);
  --p09-light-soft:rgba(255,248,229,.18);
  --p09-object-shadow:rgba(45,40,35,.18);
}

/* Keine künstliche Gesamtbibliothek / kein Cabinet-de-curiosités-Raum:
   eine ruhige, glatte Museumswand ist die eigentliche Bühne. */
#museumWrap .museum-room{
  position:relative!important;
  min-height:690px!important;
  padding:72px 34px 88px!important;
  overflow:auto!important;
  border:1px solid rgba(74,69,63,.12)!important;
  border-radius:10px!important;
  background:
    radial-gradient(ellipse 62% 28% at 50% 0%,rgba(255,255,255,.88),transparent 74%),
    linear-gradient(180deg,var(--p09-wall-light) 0%,var(--p09-wall) 48%,#efede7 100%)!important;
  box-shadow:
    inset 0 1px rgba(255,255,255,.94),
    inset 0 -22px 42px rgba(95,88,78,.035),
    0 16px 34px rgba(42,38,33,.055)!important;
}
#museumWrap .museum-room:before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  opacity:.34!important;
  background:
    repeating-linear-gradient(0deg,rgba(72,68,62,.012) 0 1px,transparent 1px 7px),
    radial-gradient(circle at 22% 34%,rgba(78,73,67,.018),transparent 22%),
    radial-gradient(circle at 79% 66%,rgba(78,73,67,.014),transparent 20%)!important;
}

/* Die alten pseudo-architektonischen Säulen/Gesimse bleiben bewusst unsichtbar.
   Eine schmale Sockellinie genügt als reale Raumkante. */
#museumWrap .museum-architecture{display:none!important}
#museumWrap .museum-floor{display:none!important}
#museumWrap .museum-room:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:24px;
  pointer-events:none;
  background:linear-gradient(180deg,#e7e3dc,#ddd8cf);
  border-top:1px solid rgba(87,80,72,.12);
  box-shadow:inset 0 1px rgba(255,255,255,.7);
  z-index:1;
}

/* Drei sehr dezente Wandstrahler. Keine sichtbare Decke, keine Animation. */
#museumWrap .museum-light-cones{
  display:block!important;
  position:absolute!important;
  z-index:2!important;
  top:7px!important;
  left:24px!important;
  right:24px!important;
  height:245px!important;
  pointer-events:none!important;
  opacity:.78!important;
  animation:none!important;
  background:
    radial-gradient(ellipse 8px 4px at 18% 8px,#5d5953 0 54%,#928d84 58%,transparent 68%),
    radial-gradient(ellipse 8px 4px at 50% 8px,#5d5953 0 54%,#928d84 58%,transparent 68%),
    radial-gradient(ellipse 8px 4px at 82% 8px,#5d5953 0 54%,#928d84 58%,transparent 68%),
    radial-gradient(ellipse 17% 96% at 18% 0%,var(--p09-light) 0%,var(--p09-light-soft) 42%,transparent 72%),
    radial-gradient(ellipse 18% 96% at 50% 0%,var(--p09-light) 0%,var(--p09-light-soft) 42%,transparent 72%),
    radial-gradient(ellipse 17% 96% at 82% 0%,var(--p09-light) 0%,var(--p09-light-soft) 42%,transparent 72%)!important;
  filter:none!important;
}

#museumWrap .museum-galleries{
  position:relative!important;
  z-index:3!important;
  transform:none!important;
  transition:none!important;
}
#museumWrap .museum-gallery-section{
  min-width:0!important;
  margin:0 0 48px!important;
  padding:0!important;
}
#museumWrap .gallery-label{
  display:flex!important;
  align-items:baseline!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin:0 0 15px!important;
  padding:0 2px 9px!important;
  color:#55514b!important;
  border:0!important;
  border-bottom:1px solid rgba(73,68,61,.15)!important;
  text-shadow:none!important;
}
#museumWrap .gallery-label span{
  font:500 15px/1.25 Georgia,"Times New Roman",serif!important;
  letter-spacing:.025em!important;
}
#museumWrap .gallery-label small{
  font:500 10px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  color:#777169!important;
  opacity:1!important;
}

/* Dichte, proportional maßbasierte Hängung bleibt bestehen; nur die Wandwirkung ändert sich. */
#museumWrap .museum-display-wall{
  position:relative!important;
  min-width:0!important;
  width:100%!important;
  min-height:300px!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fill,8px)!important;
  grid-auto-rows:8px!important;
  grid-auto-flow:dense!important;
  gap:0!important;
  justify-content:center!important;
  align-content:start!important;
  align-items:start!important;
  padding:38px 26px 42px!important;
  background:
    radial-gradient(ellipse 56% 22% at 50% 0%,rgba(255,255,255,.5),transparent 78%),
    linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0))!important;
  border:0!important;
  box-shadow:none!important;
  perspective:none!important;
  transform:none!important;
}
#museumWrap .museum-display-wall:after{display:none!important}

/* Dünne museale Rahmung statt breiter dunkelbrauner Bilderrahmen. */
#museumWrap .museum-object-v2{
  position:relative!important;
  justify-self:center!important;
  align-self:start!important;
  margin:9px!important;
  overflow:visible!important;
  box-sizing:border-box!important;
  background:var(--p09-mat)!important;
  border:1px solid rgba(67,62,56,.68)!important;
  border-radius:1px!important;
  padding:4px!important;
  transform:none!important;
  filter:none!important;
  box-shadow:
    0 1px 1px rgba(255,255,255,.7) inset,
    0 4px 8px var(--p09-object-shadow),
    0 12px 24px rgba(45,40,35,.075)!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
#museumWrap .museum-object-v2:hover,
#museumWrap .museum-object-v2.museum-info-open{
  transform:translateY(-2px)!important;
  filter:none!important;
  box-shadow:
    0 1px 1px rgba(255,255,255,.72) inset,
    0 7px 13px rgba(45,40,35,.2),
    0 17px 29px rgba(45,40,35,.10)!important;
}
#museumWrap .museum-object-v2 .object-mat{
  width:100%!important;
  height:100%!important;
  padding:2px!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:0!important;
  background:#ded9cf!important;
  transform:none!important;
  box-shadow:inset 0 0 0 1px rgba(65,59,53,.18)!important;
}
#museumWrap .museum-object-v2 .object-face{
  width:100%!important;
  height:100%!important;
  padding:0!important;
  border-radius:0!important;
  background-position:center!important;
  background-size:cover!important;
  box-shadow:inset 0 0 0 1px rgba(47,43,38,.08)!important;
}
#museumWrap .museum-object-v2 .object-face:before,
#museumWrap .museum-object-v2 .object-face:after{display:none!important}
#museumWrap .museum-object-v2 .object-title,
#museumWrap .museum-object-v2 .object-year{display:none!important}
#museumWrap .museum-object-v2 .object-shadow{
  display:block!important;
  left:7%!important;
  right:7%!important;
  height:8px!important;
  bottom:-11px!important;
  opacity:.34!important;
  background:radial-gradient(ellipse,rgba(41,37,32,.46),transparent 72%)!important;
  filter:blur(3px)!important;
}

/* Hover-Titel bleibt funktional, wird aber weniger "Tooltip-App" und mehr dezente Beschriftung. */
#museumWrap .museum-hover-title{
  bottom:calc(100% + 9px)!important;
  padding:6px 9px!important;
  border-radius:4px!important;
  background:rgba(42,39,35,.94)!important;
  box-shadow:0 7px 18px rgba(31,28,25,.18)!important;
  font-size:11px!important;
  letter-spacing:.01em!important;
}
#museumWrap .museum-hover-title:after{border-top-color:rgba(42,39,35,.94)!important}

#museumWrap .museum-side-toggle{
  background:rgba(248,247,243,.96)!important;
  border:1px solid rgba(69,64,58,.16)!important;
  box-shadow:0 3px 8px rgba(43,39,35,.10)!important;
}
#museumWrap .museum-side-toggle button.active{background:#56514b!important;color:#fff!important}

#museumWrap + .room-legend,
#museumWrap .room-legend{
  background:transparent!important;
}

@media(max-width:760px){
  #museumWrap .museum-room{
    min-height:560px!important;
    padding:54px 12px 58px!important;
    border-radius:8px!important;
  }
  #museumWrap .museum-light-cones{
    left:8px!important;right:8px!important;height:180px!important;
    background:
      radial-gradient(ellipse 7px 4px at 26% 7px,#5d5953 0 54%,#928d84 58%,transparent 68%),
      radial-gradient(ellipse 7px 4px at 74% 7px,#5d5953 0 54%,#928d84 58%,transparent 68%),
      radial-gradient(ellipse 28% 92% at 26% 0%,var(--p09-light) 0%,var(--p09-light-soft) 42%,transparent 74%),
      radial-gradient(ellipse 28% 92% at 74% 0%,var(--p09-light) 0%,var(--p09-light-soft) 42%,transparent 74%)!important;
  }
  #museumWrap .museum-gallery-section{margin-bottom:34px!important}
  #museumWrap .gallery-label{padding-left:1px!important;padding-right:1px!important;margin-bottom:10px!important}
  #museumWrap .gallery-label span{font-size:13px!important}
  #museumWrap .gallery-label small{font-size:9px!important}
  #museumWrap .museum-display-wall{
    grid-template-columns:repeat(auto-fill,8px)!important;
    grid-auto-rows:8px!important;
    padding:27px 4px 34px!important;
  }
  #museumWrap .museum-object-v2{margin:6px!important;padding:3px!important}
  #museumWrap .museum-object-v2:hover{transform:none!important}
  #museumWrap .museum-object-v2.museum-info-open{transform:translateY(-1px)!important}
}

@media(prefers-reduced-motion:reduce){
  #museumWrap .museum-object-v2{transition:none!important}
}


/* ===== collectanea-museum-p10.css ===== */
/* Collectanea V4.0 P10 · Objektgattungen / Hängung / Handschriftenbank
   Scope: gattungsspezifische Museumspräsentation. P11 Museumsschilder folgen separat. */

:root{
  --p10-bank-top:#6b5038;
  --p10-bank-front:#4b3728;
  --p10-bank-edge:#2f2219;
  --p10-bank-shadow:rgba(45,36,29,.24);
}

#museumWrap .museum-curated-zone{
  display:block;
  min-width:0;
}

/* Wandobjekte bleiben frei kuratiert und maßstabsbasiert. */
#museumWrap .p10-wall-zone{
  margin-bottom:24px!important;
}

/* Gemälde: etwas klarere, aber weiterhin schlanke museale Rahmung. */
#museumWrap .museum-object-v2.kind-painting{
  padding:3px!important;
  background:#4d4740!important;
  border:1px solid rgba(53,49,44,.86)!important;
  box-shadow:
    0 1px 1px rgba(255,255,255,.34) inset,
    0 5px 10px rgba(40,36,32,.19),
    0 15px 28px rgba(40,36,32,.09)!important;
}
#museumWrap .museum-object-v2.kind-painting .object-mat{
  padding:2px!important;
  background:#e9e5dc!important;
  box-shadow:inset 0 0 0 1px rgba(65,59,53,.14)!important;
}
#museumWrap .museum-object-v2.kind-painting .object-face{
  background:#d9d4ca!important;
  background-size:cover!important;
  background-position:center!important;
}

/* Handschriftliche Bücher hängen nicht an der Wand.
   Sie stehen frontal auf einer niedrigen, massiven Holzbank. */
#museumWrap .museum-manuscript-zone{
  position:relative;
  margin:24px 2% 8px;
  padding:24px 18px 50px;
  min-height:190px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:
    radial-gradient(ellipse 58% 22% at 50% 100%,rgba(56,45,36,.055),transparent 72%);
}
#museumWrap .museum-manuscript-zone:before{
  content:"";
  position:absolute;
  left:5%;
  right:5%;
  bottom:34px;
  height:18px;
  border-radius:2px 2px 1px 1px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),transparent 25%),
    repeating-linear-gradient(92deg,rgba(255,255,255,.018) 0 2px,rgba(45,31,22,.018) 2px 5px),
    linear-gradient(180deg,var(--p10-bank-top),#5a412f 68%,var(--p10-bank-front));
  box-shadow:
    inset 0 1px rgba(255,255,255,.22),
    inset 0 -2px rgba(34,24,18,.34),
    0 9px 17px var(--p10-bank-shadow);
  z-index:1;
}
#museumWrap .museum-manuscript-zone:after{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  bottom:15px;
  height:20px;
  background:
    linear-gradient(90deg,transparent 0 5%,var(--p10-bank-edge) 5% 6.5%,transparent 6.5% 93.5%,var(--p10-bank-edge) 93.5% 95%,transparent 95%),
    linear-gradient(180deg,rgba(61,44,32,.20),transparent);
  opacity:.9;
  z-index:0;
}
#museumWrap .museum-manuscript-bank{
  position:relative;
  z-index:2;
  width:90%;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:center;
  gap:18px 22px;
  padding:0 10px 29px;
}
#museumWrap .museum-manuscript-bank .museum-object-v2.kind-codex{
  grid-column:auto!important;
  grid-row:auto!important;
  align-self:flex-end!important;
  margin:0!important;
  padding:2px!important;
  flex:0 0 auto!important;
  background:#3c3027!important;
  border:1px solid rgba(54,44,36,.74)!important;
  border-radius:2px!important;
  transform:none!important;
  box-shadow:
    inset 2px 0 rgba(255,255,255,.08),
    inset -3px 0 rgba(20,15,12,.22),
    0 5px 8px rgba(42,32,25,.20),
    0 10px 17px rgba(42,32,25,.08)!important;
}
#museumWrap .museum-manuscript-bank .museum-object-v2.kind-codex:hover,
#museumWrap .museum-manuscript-bank .museum-object-v2.kind-codex.museum-info-open{
  transform:translateY(-2px)!important;
  box-shadow:
    inset 2px 0 rgba(255,255,255,.08),
    inset -3px 0 rgba(20,15,12,.22),
    0 8px 13px rgba(42,32,25,.24),
    0 15px 24px rgba(42,32,25,.10)!important;
}
#museumWrap .museum-manuscript-bank .kind-codex .object-mat{
  padding:2px!important;
  background:#4a392e!important;
  box-shadow:
    inset 2px 0 rgba(123,96,76,.42),
    inset -3px 0 rgba(25,19,15,.30)!important;
}
#museumWrap .museum-manuscript-bank .kind-codex .object-face{
  background:#5c4637!important;
  background-size:cover!important;
  background-position:center!important;
}
#museumWrap .museum-manuscript-bank .kind-codex .object-shadow{
  left:3%!important;
  right:3%!important;
  height:7px!important;
  bottom:-9px!important;
  opacity:.32!important;
}

/* Wenn eine Kategorie nur Handschriften enthält, wird keine leere Wandfläche vorgetäuscht. */
#museumWrap .museum-gallery-section.has-manuscript-bank:not(.has-wall-objects) .museum-manuscript-zone{
  margin-top:6px;
}

@media(max-width:760px){
  #museumWrap .museum-manuscript-zone{
    margin:16px 0 4px;
    padding:18px 4px 43px;
    min-height:160px;
    overflow-x:auto;
    justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
  }
  #museumWrap .museum-manuscript-zone:before{left:2%;right:2%;bottom:29px;height:15px}
  #museumWrap .museum-manuscript-zone:after{left:4%;right:4%;bottom:12px;height:17px}
  #museumWrap .museum-manuscript-bank{
    width:max-content;
    min-width:100%;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:14px;
    padding:0 10px 24px;
  }
  #museumWrap .museum-manuscript-bank .museum-object-v2.kind-codex{flex:none!important}
  #museumWrap .p10-wall-zone{margin-bottom:14px!important}
}

@media(prefers-reduced-motion:reduce){
  #museumWrap .museum-manuscript-bank .museum-object-v2.kind-codex{transition:none!important}
}


/* ===== collectanea-museum-p11.css ===== */
/* Collectanea V4.0 P11 · Museumsschilder / Interaktion
   Kleine reale Museumslabels unter jedem ausgestellten Objekt.
   Desktop: Hover/Fokus = Kurzinfo; Klick = bestehende Objektvorschau.
   Mobile: erster Tap = Kurzinfo; zweiter Tap = bestehende Objektvorschau. */

:root{
  --p11-label-paper:#f5f3ed;
  --p11-label-ink:#3f3c37;
  --p11-label-muted:#777169;
  --p11-label-line:rgba(62,58,53,.20);
  --p11-label-shadow:rgba(41,37,32,.12);
  --p11-info-bg:rgba(249,248,244,.985);
}

/* P11 ersetzt den alten schwebenden Objekttitel durch das physische Museumslabel. */
#museumWrap .museum-hover-title{display:none!important}

#museumWrap .museum-label-p11{
  position:absolute;
  z-index:8;
  top:calc(100% + 10px);
  left:50%;
  width:clamp(64px,86%,132px);
  min-height:24px;
  transform:translateX(-50%);
  box-sizing:border-box;
  padding:4px 6px 5px;
  color:var(--p11-label-ink);
  background:
    linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,.08)),
    var(--p11-label-paper);
  border:1px solid var(--p11-label-line);
  border-radius:1px;
  box-shadow:0 2px 5px var(--p11-label-shadow);
  text-align:left;
  cursor:pointer;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
#museumWrap .museum-label-p11:before{
  content:"";
  display:block;
  width:18px;
  height:1px;
  margin:0 0 3px;
  background:rgba(62,58,53,.36);
}
#museumWrap .museum-label-p11-brand{
  display:block;
  margin-bottom:1px;
  font:600 5px/1.05 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#68635c;
}
#museumWrap .museum-label-p11-print{
  display:block;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font:500 6px/1.15 Georgia,"Times New Roman",serif;
  color:#49453f;
}

/* Lesbare Information erscheint erst bei bewusster Interaktion mit dem Schild. */
#museumWrap .museum-label-p11-popover{
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  width:min(238px,72vw);
  transform:translate(-50%,4px);
  padding:10px 11px 9px;
  box-sizing:border-box;
  color:#393631;
  background:var(--p11-info-bg);
  border:1px solid rgba(58,54,49,.14);
  border-radius:4px;
  box-shadow:0 10px 24px rgba(42,38,33,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
  text-align:left;
}
#museumWrap .museum-label-p11-popover:after{
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  width:8px;
  height:8px;
  background:var(--p11-info-bg);
  border-right:1px solid rgba(58,54,49,.14);
  border-bottom:1px solid rgba(58,54,49,.14);
  transform:translate(-50%,-4px) rotate(45deg);
}
#museumWrap .museum-label-p11-popover strong{
  display:block;
  margin:0 0 4px;
  font:600 13px/1.25 Georgia,"Times New Roman",serif;
  color:#302e2a;
}
#museumWrap .museum-label-p11-popover small{
  display:block;
  font:500 10px/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--p11-label-muted);
}
#museumWrap .museum-label-p11-popover em{
  display:block;
  margin-top:6px;
  padding-top:5px;
  border-top:1px solid rgba(58,54,49,.10);
  font:500 9px/1.25 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-style:normal;
  color:#68625b;
}

#museumWrap .museum-label-p11:hover .museum-label-p11-popover,
#museumWrap .museum-label-p11:focus-visible .museum-label-p11-popover,
#museumWrap .museum-object-v2.museum-label-open .museum-label-p11-popover{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}
#museumWrap .museum-label-p11:focus-visible{
  outline:1px solid rgba(72,86,73,.66);
  outline-offset:2px;
}

/* Ein geöffnetes Schild hebt nur das Label minimal hervor, nicht das ganze Objekt. */
#museumWrap .museum-object-v2.museum-label-open .museum-label-p11{
  box-shadow:0 3px 8px rgba(41,37,32,.16);
}

/* Auf der Handschriftenbank sitzen die Schilder wie kleine Objektetiketten vor dem Buch. */
#museumWrap .museum-manuscript-bank{
  padding-bottom:58px!important;
}
#museumWrap .museum-manuscript-bank .museum-label-p11{
  top:calc(100% + 9px);
  width:clamp(68px,92%,128px);
}

@media(max-width:760px){
  #museumWrap .museum-label-p11{
    top:calc(100% + 8px);
    width:clamp(62px,92%,118px);
    min-height:23px;
    padding:4px 5px;
  }
  #museumWrap .museum-label-p11-brand{font-size:4.5px}
  #museumWrap .museum-label-p11-print{font-size:5.5px}
  #museumWrap .museum-label-p11-popover{
    width:min(220px,76vw);
    padding:9px 10px 8px;
  }
  #museumWrap .museum-label-p11-popover strong{font-size:12px}
  #museumWrap .museum-label-p11-popover small{font-size:9px}
  #museumWrap .museum-manuscript-bank{padding-bottom:54px!important}
}

@media(prefers-reduced-motion:reduce){
  #museumWrap .museum-label-p11-popover{transition:none!important}
}


/* ===== collectanea-filters-p12.css ===== */
/* Collectanea V4.0 P12 · Filter & Kategorien
   Presentation-only layer. Existing filter/select logic remains canonical. */

:root{
  --ct-filter-rail-w:248px;
  --ct-filter-sheet-gap:72px;
}

.ct-filter-resultline{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 0 10px;margin:0 0 10px;border-bottom:1px solid var(--ct-line-subtle);color:var(--ct-text-secondary)}
.ct-filter-resultline strong{font:600 13px/1.2 var(--ct-font-ui);color:var(--ct-text-primary)}
.ct-filter-resultline span{font:10px/1.35 var(--ct-font-ui);color:var(--ct-text-muted)}

.ct-filter-register{display:grid;gap:12px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--ct-line-subtle)}
.ct-filter-register-group{display:grid;gap:6px}
.ct-filter-register-title{font:650 9px/1.2 var(--ct-font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--ct-text-muted)}
.ct-filter-register-list{display:flex;gap:0;flex-wrap:wrap}
.ct-filter-register button{appearance:none;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--ct-text-secondary);font:550 10.5px/1.25 var(--ct-font-ui);padding:5px 0;margin:0 11px 0 0;border-radius:0;min-height:0;box-shadow:none;cursor:pointer;text-align:left}
.ct-filter-register button:hover{color:var(--ct-text-primary);border-bottom-color:var(--ct-line-strong)}
.ct-filter-register button.active{color:var(--ct-accent-heritage);border-bottom-color:var(--ct-accent-heritage);font-weight:700}
.ct-filter-register-subjects .ct-filter-register-list{display:grid;grid-template-columns:1fr;gap:0;max-height:248px;overflow:auto;padding-right:5px;scrollbar-width:thin}
.ct-filter-register-subjects button{width:100%;margin:0;padding:5px 0;border-bottom:1px solid color-mix(in srgb,var(--ct-line-subtle) 72%,transparent);white-space:normal}
.ct-filter-register-subjects button:last-child{border-bottom-color:transparent}

/* Desktop: compact permanent rail. Detailed selects stay collapsible. */
@media(min-width:761px){
  body.ct-p12-filter-visible #view{margin-left:var(--ct-filter-rail-w);max-width:calc(1680px + var(--ct-filter-rail-w));padding-left:30px}
  .global-filterbar{position:fixed!important;left:0;right:auto;top:calc(var(--ct-nav-h) + var(--ct-utility-h))!important;bottom:0;width:var(--ct-filter-rail-w);z-index:calc(var(--ct-z-nav) - 2);overflow:auto;padding:18px 16px 28px!important;background:rgba(250,249,245,.985)!important;border-right:1px solid var(--ct-line-subtle)!important;border-bottom:0!important;box-shadow:5px 0 18px rgba(31,27,22,.025);backdrop-filter:none!important}
  .global-filter-main{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:0!important;margin-bottom:12px}
  .global-filter-main #globalFilterToggle{justify-self:start;border:0!important;background:transparent!important;padding:0!important;min-height:30px!important;color:var(--ct-text-primary)!important;font-weight:650!important}
  .global-filter-main #globalFilterToggle b{border-radius:3px!important;background:var(--ct-surface-paper)!important;color:var(--ct-accent-heritage)!important;border:1px solid var(--ct-line-subtle);box-shadow:none!important}
  .global-filter-chips{grid-column:1/-1;display:grid!important;gap:3px!important;min-width:0}
  .global-filter-empty{padding:0!important;font-size:10px!important}
  .global-filter-chip{width:100%;text-align:left;border:0!important;border-left:2px solid var(--ct-accent-heritage)!important;background:transparent!important;border-radius:0!important;padding:4px 7px!important;font-size:10px!important;box-shadow:none!important}
  .filter-clear{grid-column:1/-1;justify-self:start;padding:3px 0!important;font-size:10px!important}
  .global-filter-export{grid-column:2;grid-row:1;margin:0!important;padding:5px 7px!important;min-height:30px!important;font-size:10px!important;background:transparent!important;border-color:var(--ct-line-subtle)!important;box-shadow:none!important}
  .global-filter-controls{display:none!important;grid-template-columns:1fr!important;gap:7px!important;padding:12px 0 0!important;border-top:1px solid var(--ct-line-subtle)}
  .global-filter-controls.open{display:grid!important}
  .global-filter-controls input,.global-filter-controls select{width:100%;min-width:0!important;padding:7px 8px!important;font-size:11px!important;border-radius:4px!important}
  body.ct-scrolled .global-filterbar{top:calc(var(--ct-nav-h-collapsed, 52px) + var(--ct-utility-h))!important}
}

/* Mobile: compact launcher above bottom nav, expanded as a true bottom sheet. */
@media(max-width:760px){
  body.ct-p12-filter-visible #view{padding-bottom:150px!important}
  .global-filterbar{position:fixed!important;left:8px;right:8px;top:auto!important;bottom:calc(var(--ct-filter-sheet-gap) + env(safe-area-inset-bottom));z-index:69;padding:8px 10px!important;border:1px solid var(--ct-line-soft)!important;border-radius:12px!important;background:rgba(250,249,245,.985)!important;box-shadow:0 8px 30px rgba(31,27,22,.12)!important;backdrop-filter:none!important;max-height:calc(70dvh - env(safe-area-inset-bottom));overflow:hidden}
  .global-filter-main{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:7px!important;min-height:38px!important;overflow:visible!important}
  .global-filter-main #globalFilterToggle{min-height:36px!important;padding:6px 9px!important}
  .global-filter-chips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;min-width:0!important;scrollbar-width:none;align-items:center}
  .global-filter-chip{white-space:nowrap;border-radius:4px!important;padding:5px 7px!important}
  .global-filter-empty{white-space:nowrap;padding:5px 0!important}
  .filter-clear{display:none}
  .global-filter-export{position:static!important;margin:0!important;min-height:36px!important;padding:6px 8px!important;box-shadow:none!important;background:transparent!important}
  .ct-filter-resultline,.ct-filter-register,.global-filter-controls{display:none}
  .global-filterbar:has(.global-filter-controls.open){overflow:auto;padding:12px 12px 14px!important;border-radius:14px 14px 8px 8px!important}
  .global-filterbar:has(.global-filter-controls.open) .ct-filter-resultline{display:flex;margin-top:8px}
  .global-filterbar:has(.global-filter-controls.open) .ct-filter-register{display:grid}
  .global-filterbar:has(.global-filter-controls.open) .global-filter-controls.open{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;max-height:none!important;overflow:visible!important;padding:10px 0 0!important;border-top:1px solid var(--ct-line-subtle)}
  .global-filterbar:has(.global-filter-controls.open) .global-filter-controls input,.global-filterbar:has(.global-filter-controls.open) .global-filter-controls select{min-width:0!important;width:100%!important}
  .ct-filter-register-list{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .ct-filter-register button{white-space:nowrap;flex:0 0 auto}
  .ct-filter-register-subjects .ct-filter-register-list{display:flex;max-height:none;overflow-x:auto;overflow-y:hidden}
  .ct-filter-register-subjects button{width:auto;border-bottom:1px solid transparent;margin-right:12px}
}

@media(prefers-reduced-motion:reduce){.global-filterbar,.ct-filter-register button{transition:none!important}}


/* ===== collectanea-mobile-p13.css ===== */
/* Collectanea V4.0 P13 · Mobile Gesamtintegration
   Mobile-only orchestration layer. Desktop behavior, canonical data and core app logic stay unchanged. */

:root{
  --ct-p13-mobile-nav-h:64px;
  --ct-p13-mobile-header-h:54px;
  --ct-p13-touch:44px;
}

@media(max-width:760px){
  html{scroll-padding-top:calc(var(--ct-p13-mobile-header-h) + 10px)}
  body{overscroll-behavior-y:none;background:var(--ct-surface-canvas,#f4f2ec)}
  body.ct-mobile-drawer-open{overflow:hidden}

  /* Compact, control-first header. Search remains globally available. */
  #topbar{
    height:var(--ct-p13-mobile-header-h)!important;
    min-height:var(--ct-p13-mobile-header-h)!important;
    padding:0 9px!important;
    gap:6px!important;
    position:sticky!important;top:0!important;z-index:74!important;
    background:rgba(250,249,245,.985)!important;
    border-bottom:1px solid var(--ct-line-subtle)!important;
    box-shadow:0 2px 12px rgba(31,27,22,.035)!important;
    backdrop-filter:none!important;
  }
  #mobileMenu{display:grid!important;flex:0 0 var(--ct-p13-touch);width:var(--ct-p13-touch);height:var(--ct-p13-touch);min-height:var(--ct-p13-touch)!important;padding:0!important;font-size:18px!important}
  .global-search-wrap{height:40px!important;min-width:0!important;flex:1 1 auto!important;border-radius:6px!important;background:var(--ct-surface-elevated,#faf9f5)!important}
  .global-search-wrap input{min-width:0!important;padding:8px 9px!important;font-size:12px!important}
  #globalSearchBtn{min-width:38px!important;width:38px!important;min-height:38px!important;height:38px!important;padding:0!important}
  #appSettingsBtn{display:none!important}
  #addObjectBtn{
    flex:0 0 var(--ct-p13-touch);width:var(--ct-p13-touch);height:var(--ct-p13-touch);min-height:var(--ct-p13-touch)!important;
    padding:0!important;border-radius:6px!important;font-size:0!important;box-shadow:none!important
  }
  #addObjectBtn:before{content:"+";font:500 23px/1 var(--ct-font-ui,system-ui,sans-serif)}

  /* Drawer = secondary navigation only; bottom nav carries the five primary areas. */
  #sidebar{
    width:min(318px,88vw)!important;height:100dvh!important;padding:18px 14px calc(20px + env(safe-area-inset-bottom))!important;
    background:rgba(247,245,239,.995)!important;color:var(--ct-text-primary,#252521)!important;
    border-right:1px solid var(--ct-line-subtle)!important;box-shadow:16px 0 40px rgba(31,27,22,.16)!important;
    transform:translateX(-104%)!important;transition:transform var(--ct-motion-base,220ms) var(--ct-ease-emphasized,ease)!important;
  }
  #sidebar.open{transform:translateX(0)!important}
  #sidebar .brand{padding:0 4px 16px!important;border-bottom:1px solid var(--ct-line-subtle);margin-bottom:8px}
  #sidebar .brand-mark{background:var(--ct-surface-paper,#f4f2ec)!important;border-color:var(--ct-line-soft)!important;color:var(--ct-walnut-700,#5a402c)!important}
  #sidebar .brand h1{color:var(--ct-text-primary,#252521)!important}
  #sidebar .brand p{color:var(--ct-text-muted,#6b6962)!important;opacity:1!important;white-space:normal!important}
  #sidebar #nav{gap:0!important;padding:4px 0 16px!important}
  #sidebar .nav-group-label{display:block!important;color:var(--ct-text-muted,#6b6962)!important;opacity:1!important;padding:13px 8px 5px!important}
  #sidebar .nav-btn{min-height:42px!important;padding:9px 8px!important;border-radius:5px!important;color:var(--ct-text-secondary,#4e4c47)!important;border-bottom:1px solid rgba(116,105,91,.09)!important}
  #sidebar .nav-btn.active{background:transparent!important;color:var(--ct-accent-heritage,#485649)!important;border-left:2px solid var(--ct-accent-heritage,#485649)!important;padding-left:10px!important}
  #sidebar .sidebar-bottom{margin-top:auto!important;padding-top:12px!important;border-top:1px solid var(--ct-line-subtle)}
  #sidebar .sidebar-bottom .ghost{color:var(--ct-text-secondary,#4e4c47)!important;border-color:var(--ct-line-soft)!important;background:transparent!important}
  #sidebar .tiny{color:var(--ct-text-muted,#6b6962)!important;opacity:.8!important}
  #ctMobileDrawerBackdrop{position:fixed;inset:0;z-index:79;background:rgba(31,30,27,.34);opacity:0;pointer-events:none;transition:opacity var(--ct-motion-base,220ms) ease}
  body.ct-mobile-drawer-open #ctMobileDrawerBackdrop{opacity:1;pointer-events:auto}

  /* Primary mobile navigation: the five areas selected for the redesign. */
  .mobile-bottom-nav{
    display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;
    left:7px!important;right:7px!important;bottom:calc(7px + env(safe-area-inset-bottom))!important;
    min-height:var(--ct-p13-mobile-nav-h)!important;
    padding:5px!important;
    background:rgba(250,249,245,.985)!important;backdrop-filter:none!important;
    border:1px solid var(--ct-line-soft)!important;border-radius:13px!important;
    box-shadow:0 8px 26px rgba(31,27,22,.12)!important;z-index:72!important;
  }
  .mobile-bottom-nav button{
    position:relative;min-width:0;min-height:52px!important;padding:5px 2px!important;border:0!important;border-radius:8px!important;
    color:var(--ct-text-muted,#6b6962)!important;background:transparent!important;gap:3px!important
  }
  .mobile-bottom-nav button span{font-size:17px!important;line-height:1!important}
  .mobile-bottom-nav button small{font:550 8.5px/1.05 var(--ct-font-ui,system-ui,sans-serif)!important;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .mobile-bottom-nav button.active{color:var(--ct-accent-heritage,#485649)!important;background:color-mix(in srgb,var(--ct-accent-heritage,#485649) 7%,transparent)!important;font-weight:650!important}
  .mobile-bottom-nav button.active:after{content:"";position:absolute;left:23%;right:23%;bottom:2px;height:1px;background:var(--ct-accent-heritage,#485649)}

  /* Content spacing respects the fixed primary navigation and safe area. */
  #view{padding:16px 12px calc(var(--ct-p13-mobile-nav-h) + 32px + env(safe-area-inset-bottom))!important;max-width:none!important}
  .page-head{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-bottom:16px!important}
  .page-head>div:last-child{max-width:none!important;display:flex;gap:6px;flex-wrap:wrap}
  .page-head h2{font-size:28px!important;line-height:1.08!important}
  .page-head p{font-size:12px!important;line-height:1.5!important}
  .page-head .eyebrow{font-size:9px!important}

  /* Touch targets and horizontal control strips. */
  button,.secondary,.primary,.ghost,.danger,.danger-btn,.sale-btn{min-height:var(--ct-p13-touch)!important}
  .room-toolbar,.filters{gap:7px!important}
  .room-toolbar.compact,.collection-quicktypes,.segmented,.discover-actions{scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .room-toolbar.compact::-webkit-scrollbar,.collection-quicktypes::-webkit-scrollbar{display:none}
  .filter-details>summary{min-height:44px;display:flex;align-items:center}
  .table-wrap{border-radius:7px!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}

  /* P12 filter sheet aligns with the new bottom navigation. */
  body.ct-p12-filter-visible #view{padding-bottom:calc(var(--ct-p13-mobile-nav-h) + 94px + env(safe-area-inset-bottom))!important}
  .global-filterbar{
    left:7px!important;right:7px!important;
    bottom:calc(var(--ct-p13-mobile-nav-h) + 18px + env(safe-area-inset-bottom))!important;
    z-index:71!important;border-radius:12px!important
  }
  .global-filterbar:has(.global-filter-controls.open){max-height:68dvh!important;border-radius:14px 14px 10px 10px!important}
  .global-filterbar:has(.global-filter-controls.open):before{content:"";display:block;width:38px;height:4px;border-radius:5px;background:rgba(63,58,50,.18);margin:0 auto 8px}

  /* All sheets share the same mobile depth and expansion language. */
  .modal-panel,.ct-object-preview-panel{max-height:70dvh!important;border-radius:17px 17px 0 0!important}
  .modal-panel.ct-expanded,.ct-object-preview-panel.ct-expanded{max-height:94dvh!important}
  .modal-panel{padding-left:16px!important;padding-right:16px!important}
  .ct-object-preview-scroll{padding-left:15px!important;padding-right:15px!important}

  /* Library: portrait-first, but rows remain horizontally pannable instead of being squeezed. */
  .library-room{min-height:auto!important;padding-left:8px!important;padding-right:8px!important;overflow:visible!important}
  .library-cases{min-width:0!important;width:100%!important}
  .bookcase-section{min-width:0!important;width:100%!important}
  .bookcase-frame,.bookcase-frame.compact-shelves{width:100%!important;max-width:100%!important;overflow:hidden!important}
  .real-shelf{width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-x:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .shelf-back{min-width:max-content!important;width:max-content!important;padding-right:14px!important}
  .book-spine-v2{touch-action:manipulation}

  /* Museum: portrait layout with horizontal freedom only where object size requires it. */
  #museumWrap{overflow:visible!important}
  #museumWrap .museum-gallery-section{min-width:0!important}
  #museumWrap .museum-display-wall{min-width:100%!important;width:100%!important;overflow:visible!important}
  #museumWrap .p10-wall-zone{overflow-x:auto!important;overflow-y:visible!important;overscroll-behavior-x:contain;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
  #museumWrap .museum-manuscript-zone{touch-action:pan-x pan-y}
  #museumWrap .museum-object-v2{touch-action:manipulation}

  /* Image viewer and sheets never hide critical controls behind bottom navigation. */
  .image-viewer-panel{max-height:calc(100dvh - env(safe-area-inset-top) - 10px)!important}
  #toast{bottom:calc(var(--ct-p13-mobile-nav-h) + 25px + env(safe-area-inset-bottom))!important}
}

@media(max-width:390px){
  .mobile-bottom-nav{left:5px!important;right:5px!important}
  .mobile-bottom-nav button small{font-size:8px!important}
  #topbar{padding-inline:6px!important}
  #view{padding-left:10px!important;padding-right:10px!important}
}

@media(prefers-reduced-motion:reduce){
  #sidebar,#ctMobileDrawerBackdrop,.mobile-bottom-nav button{transition:none!important}
}


/* ===== collectanea-polish-p14.css ===== */
/* Collectanea V4.0 P14 · Animation & Feinschliff
   Short, non-continuous motion only. No data/state changes. */

:root{
  --ct-p14-fast:160ms;
  --ct-p14-base:280ms;
  --ct-p14-slow:420ms;
  --ct-p14-ease:cubic-bezier(.16,1,.3,1);
}

/* Controls: quieter, tactile, never bouncy. */
button,.primary,.secondary,.ghost,.icon-btn,
input,select,textarea,
.nav-btn,.mobile-bottom-nav button,
.room-launch,.entry-card,.kpi.clickable{
  transition-property:color,background-color,border-color,box-shadow,opacity,transform;
  transition-duration:var(--ct-p14-fast);
  transition-timing-function:var(--ct-p14-ease);
}

@media (hover:hover) and (pointer:fine){
  button:not(:disabled):hover,.primary:not(:disabled):hover,.secondary:not(:disabled):hover,.ghost:not(:disabled):hover{
    transform:translateY(-1px);
  }
  .room-launch:hover,.entry-card:hover,.kpi.clickable:hover{
    transform:translateY(-2px);
  }
}

button:active,.primary:active,.secondary:active,.ghost:active,
.mobile-bottom-nav button:active{
  transform:translateY(0) scale(.985);
  transition-duration:90ms;
}

/* One-time page/view entrance. JS adds these classes only to newly rendered nodes. */
.ct-p14-reveal{
  animation:ctP14Reveal var(--ct-p14-base) var(--ct-p14-ease) both;
  animation-delay:var(--ct-p14-delay,0ms);
}
@keyframes ctP14Reveal{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:none}
}

/* Physical collection objects get an even subtler entrance after re-render/filter. */
.library-room .book-spine-v2.ct-p14-object-in{
  animation:ctP14ObjectIn 260ms var(--ct-p14-ease) both;
  animation-delay:var(--ct-p14-delay,0ms);
}
#museumWrap .museum-object-v2.ct-p14-object-in{
  animation:ctP14ObjectIn 300ms var(--ct-p14-ease) both;
  animation-delay:var(--ct-p14-delay,0ms);
}
@keyframes ctP14ObjectIn{
  from{opacity:.35;transform:translateY(3px)}
  to{opacity:1;transform:none}
}

/* Preserve P08 scale/geometry while making shelf adjustment feel deliberate. */
.library-room .real-shelf.p08-adaptive,
.library-room .real-shelf.p08-adaptive .shelf-back{
  transition-duration:var(--ct-p14-slow)!important;
  transition-timing-function:var(--ct-p14-ease)!important;
}
.library-room .p08-shelf-lamp{
  transition:left var(--ct-p14-base) var(--ct-p14-ease),opacity var(--ct-p14-fast) ease!important;
}

/* Museum: tiny depth response, no dramatic motion. */
@media (hover:hover) and (pointer:fine){
  #museumWrap .museum-object-v2:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 11px 25px rgba(34,32,29,.16)!important;
  }
}

/* Modal / preview / filter sheet and drawer share one restrained movement language. */
.modal:not(.hidden) .modal-panel,
#ctObjectPreview:not(.hidden) .ct-object-preview-panel,
#globalFilterBar.ct-p12-open{
  animation:ctP14PanelIn var(--ct-p14-base) var(--ct-p14-ease) both;
}
@keyframes ctP14PanelIn{
  from{opacity:.65;transform:translateY(10px)}
  to{opacity:1;transform:none}
}

#sidebar,
#ctMobileDrawerBackdrop,
.mobile-bottom-nav,
#topbar{
  transition-timing-function:var(--ct-p14-ease)!important;
}

/* Focus is visible but soft. */
:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid color-mix(in srgb,var(--ct-accent-heritage,#485649) 55%,transparent);
  outline-offset:2px;
  transition:outline-color var(--ct-p14-fast) ease,box-shadow var(--ct-p14-fast) ease;
}

/* No permanent loading-style motion. */
.ct-p14-motion-ready #view{scroll-behavior:smooth}

@media(max-width:760px){
  /* Touch: keep motion shorter and avoid hover-style lift. */
  .ct-p14-reveal{animation-duration:220ms}
  .library-room .book-spine-v2.ct-p14-object-in,
  #museumWrap .museum-object-v2.ct-p14-object-in{animation-duration:220ms}
  .modal:not(.hidden) .modal-panel,
  #ctObjectPreview:not(.hidden) .ct-object-preview-panel,
  #globalFilterBar.ct-p12-open{animation-duration:240ms}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .ct-p14-reveal,.ct-p14-object-in{opacity:1!important;transform:none!important}
}

