/* Bibliotecarul Portable — product surface */
:root{
  --lib-bg:#11110f;
  --lib-surface:#1a1916;
  --lib-surface-raised:#211f1b;
  --lib-surface-soft:#27241f;
  --lib-border:rgba(238,230,215,.13);
  --lib-border-strong:rgba(238,230,215,.22);
  --lib-text:#f4efe5;
  --lib-text-muted:#aaa397;
  --lib-text-soft:#d0c8bb;
  --lib-accent:#c9a86a;
  --lib-accent-strong:#dfbf7c;
  --lib-accent-ink:#1a160f;
  --lib-avatar-blue:#43626f;
  --lib-avatar-blue-strong:#5f8693;
  --lib-avatar-blue-soft:rgba(95,134,147,.12);
  --lib-avatar-blue-border:rgba(95,134,147,.42);
  --lib-success:#a9c89e;
  --lib-danger:#d7a09a;
  --lib-radius:18px;
  --lib-shadow:0 26px 80px rgba(0,0,0,.48);
}

*{box-sizing:border-box}

body.librarian-widget-open{overflow:hidden!important}

.librarian-widget-overlay{
  position:fixed;
  inset:0;
  z-index:1000020;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
  background:rgba(5,5,4,.72);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.librarian-widget-overlay.open{display:flex}

.librarian-widget-shell{
  width:min(820px, 100%);
  height:min(78dvh, 760px);
  min-height:520px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--lib-border);
  border-radius:22px;
  background:
    radial-gradient(circle at 8% 0%, rgba(201,168,106,.09), transparent 28%),
    linear-gradient(180deg, #1b1a17 0%, var(--lib-bg) 100%);
  box-shadow:var(--lib-shadow);
  color:var(--lib-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.librarian-widget-header{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 16px;
  border-bottom:1px solid var(--lib-border);
  background:rgba(255,255,255,.018);
}

.librarian-widget-avatar{
  width:46px;
  height:46px;
  flex:0 0 46px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  border:1px solid var(--lib-border-strong);
  background:var(--lib-surface-raised);
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  font-size:24px;
}

.librarian-widget-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.librarian-widget-heading{min-width:0;flex:1 1 auto}

.librarian-widget-title{
  margin:0;
  font-size:20px;
  line-height:1.2;
  font-weight:760;
  letter-spacing:-.02em;
  color:var(--lib-text);
}

.librarian-widget-subtitle{
  margin-top:2px;
  font-size:12px;
  line-height:1.4;
  color:var(--lib-text-muted);
}

.librarian-widget-close{
  appearance:none;
  width:38px;
  height:38px;
  min-height:38px;
  flex:0 0 38px;
  padding:0;
  border-radius:11px;
  border:1px solid transparent;
  background:transparent;
  color:var(--lib-text-muted);
  font-size:22px;
  line-height:1;
  cursor:pointer;
  transition:background 140ms ease,color 140ms ease,border-color 140ms ease,transform 90ms ease;
}

.librarian-widget-close:hover{background:var(--lib-surface-soft);color:var(--lib-text);border-color:var(--lib-border)}
.librarian-widget-close:active{transform:translateY(1px)}

.librarian-widget-messages{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  width:100%;
  max-width:720px;
  margin:0 auto;
  padding:28px 28px 18px;
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:rgba(201,168,106,.28) transparent;
}

.librarian-widget-message-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  max-width:100%;
  margin:0 0 16px;
}

.librarian-widget-message-row.user{justify-content:flex-end;background:transparent!important}

.librarian-widget-message-avatar{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:block;
  object-fit:cover;
  border-radius:9px;
  border:1px solid var(--lib-border);
  background:var(--lib-surface-raised);
  margin-top:2px;
}

.librarian-widget-message{
  width:fit-content;
  max-width:min(620px, 86%);
  margin:0;
  padding:10px 13px;
  border-radius:14px;
  font-size:15px;
  line-height:1.58;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:var(--lib-text-soft);
}

.librarian-widget-message.assistant{
  background:transparent;
  border:0;
  padding:6px 2px 8px;
  color:var(--lib-text);
}

.librarian-widget-message.assistant strong{color:var(--lib-accent-strong);font-weight:720}

.librarian-widget-message.user{
  margin-left:auto;
  background:var(--lib-surface-soft);
  border:1px solid var(--lib-border);
  border-bottom-right-radius:5px;
  box-shadow:0 5px 18px rgba(0,0,0,.15);
  color:var(--lib-text);
}

.librarian-widget-message.loading{opacity:.62;font-style:italic}

.librarian-widget-suggestions{
  flex:0 0 auto;
  display:flex;
  gap:7px;
  overflow-x:auto;
  max-width:720px;
  width:100%;
  margin:0 auto;
  padding:0 28px 12px;
  scrollbar-width:none;
}
.librarian-widget-suggestions::-webkit-scrollbar{display:none}

.librarian-widget-suggestion{
  appearance:none;
  flex:0 0 auto;
  min-height:36px;
  padding:0 12px;
  border-radius:11px;
  border:1px solid var(--lib-border);
  background:transparent;
  color:var(--lib-text-muted);
  font-size:12px;
  cursor:pointer;
  transition:background 140ms ease,color 140ms ease,border-color 140ms ease,transform 90ms ease;
}
.librarian-widget-suggestion:hover{background:var(--lib-surface-soft);color:var(--lib-text);border-color:var(--lib-border-strong)}
.librarian-widget-suggestion:active{transform:translateY(1px)}

.librarian-widget-composer{
  flex:0 0 auto;
  display:flex;
  align-items:flex-end;
  gap:9px;
  width:100%;
  max-width:720px;
  margin:0 auto 16px;
  padding:10px 12px;
  border:1px solid var(--lib-border);
  border-radius:16px;
  background:rgba(30,29,25,.82);
  box-shadow:0 12px 34px rgba(0,0,0,.26);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.librarian-widget-input{
  flex:1 1 auto;
  min-width:0;
  min-height:44px;
  max-height:150px;
  resize:none;
  overflow-y:auto;
  padding:11px 12px;
  border-radius:11px;
  border:1px solid transparent;
  background:transparent;
  color:var(--lib-text);
  font:inherit;
  font-size:15px;
  line-height:1.42;
  outline:none;
}
.librarian-widget-input::placeholder{color:#777168}
.librarian-widget-input:focus{border-color:rgba(201,168,106,.28);background:rgba(255,255,255,.018)}

.librarian-widget-send{
  appearance:none;
  width:36px;
  height:36px;
  min-height:36px;
  flex:0 0 36px;
  margin:4px 2px 4px 0;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  border:1px solid var(--lib-avatar-blue-border);
  background:var(--lib-avatar-blue);
  color:#eef6f8;
  font-size:14px;
  line-height:1;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 5px 14px rgba(0,0,0,.20);
  transition:background 140ms ease,border-color 140ms ease,transform 90ms ease,box-shadow 140ms ease;
}
.librarian-widget-send:hover{background:var(--lib-avatar-blue-strong);border-color:rgba(111,157,171,.58);box-shadow:0 7px 18px rgba(0,0,0,.26)}
.librarian-widget-send:active{transform:translateY(1px)}
.librarian-widget-send:disabled,.librarian-widget-input:disabled{cursor:not-allowed;opacity:.48}

/* Onboarding */
.librarian-widget-onboarding-actions{
  display:flex;
  align-items:stretch;
  flex-direction:column;
  gap:12px;
  width:min(520px,calc(100% - 40px));
  max-width:min(520px,calc(100% - 40px));
  margin:6px 0 18px 40px;
  padding:18px;
  border:1px solid var(--lib-border);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));
  box-shadow:0 14px 34px rgba(0,0,0,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.librarian-widget-onboarding-import{
  appearance:none;
  min-height:46px;
  padding:0 16px;
  border-radius:12px;
  border:1px solid rgba(201,168,106,.55);
  background:var(--lib-accent);
  color:var(--lib-accent-ink);
  font:inherit;
  font-size:14px;
  font-weight:780;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.22);
  transition:background 140ms ease,transform 90ms ease,box-shadow 140ms ease;
}
.librarian-widget-onboarding-import:hover{background:var(--lib-accent-strong);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.librarian-widget-onboarding-import:active{transform:translateY(1px)}

.librarian-widget-onboarding-maintenance{
  display:contents;
}

.librarian-widget-onboarding-field{display:flex;flex-direction:column;gap:7px;width:100%}
.librarian-widget-onboarding-label{color:var(--lib-text-soft);font-size:12px;font-weight:720;letter-spacing:.01em}

.librarian-widget-onboarding-select{
  width:100%;
  min-height:48px;
  padding:0 38px 0 12px;
  border-radius:11px;
  border:1px solid var(--lib-border-strong);
  background:var(--lib-surface-raised);
  color:var(--lib-text);
  font:inherit;
  font-size:14px;
  outline:none;
  cursor:pointer;
  transition:border-color 140ms ease,box-shadow 140ms ease,background 140ms ease;
}
.librarian-widget-onboarding-select:hover{background:var(--lib-surface-soft)}
.librarian-widget-onboarding-select:focus{border-color:rgba(201,168,106,.62);box-shadow:0 0 0 3px rgba(201,168,106,.12)}

.librarian-widget-onboarding-status{
  width:100%;
  padding:10px 12px;
  border-radius:11px;
  border:1px solid transparent;
  background:rgba(255,255,255,.025);
  color:var(--lib-text-muted);
  font-size:13px;
  line-height:1.45;
}
.librarian-widget-onboarding-status-success{background:rgba(169,200,158,.06);border-color:rgba(169,200,158,.18);color:#c4d8bc}

.librarian-widget-onboarding-secondary{
  appearance:none;
  min-height:38px;
  padding:0 2px;
  border-radius:8px;
  border:0;
  background:transparent;
  color:var(--lib-text-muted);
  font:inherit;
  font-size:12px;
  font-weight:680;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-color:rgba(201,168,106,.28);
  text-underline-offset:4px;
  transition:color 140ms ease,background 140ms ease,transform 90ms ease;
}
.librarian-widget-onboarding-secondary:hover{color:var(--lib-accent-strong);background:rgba(201,168,106,.035)}
.librarian-widget-onboarding-secondary:active{transform:translateY(1px)}

.librarian-widget-onboarding-busy{position:relative;opacity:.72;pointer-events:none}
.librarian-widget-onboarding-busy::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  width:34%;
  height:2px;
  border-radius:999px;
  background:var(--lib-accent);
  animation:librarian-progress 1.05s ease-in-out infinite;
}
.librarian-widget-onboarding-busy::after{content:'Se procesează…';color:var(--lib-text-muted);font-size:12px}

@keyframes librarian-progress{
  0%{left:0;width:22%;opacity:.45}
  50%{left:38%;width:44%;opacity:1}
  100%{left:78%;width:22%;opacity:.45}
}

.librarian-widget-onboarding-import:disabled,
.librarian-widget-onboarding-secondary:disabled,
.librarian-widget-onboarding-select:disabled{cursor:not-allowed;opacity:.42}

button:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid var(--lib-accent-strong);
  outline-offset:3px;
}

body.librarian-widget-open .bscr-quick-actions{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 160ms ease,visibility 160ms ease}
body:not(.librarian-widget-open) .bscr-quick-actions{opacity:1;visibility:visible;transition:opacity 160ms ease,visibility 160ms ease}

@media (max-width:720px){
  .librarian-widget-overlay{
    inset:auto 0 auto 0;
    top:var(--librarian-widget-viewport-top,0px);
    width:100vw;
    height:var(--librarian-widget-viewport-height,100dvh);
    padding:0;
    align-items:stretch;
    justify-content:stretch;
    overflow:hidden;
  }

  .librarian-widget-shell{width:100vw;height:100%;min-height:0;max-height:100%;border:0;border-radius:0}
  .librarian-widget-header{padding:calc(9px + env(safe-area-inset-top)) 12px 9px}
  .librarian-widget-avatar{width:42px;height:42px;flex-basis:42px;border-radius:12px}
  .librarian-widget-title{font-size:19px}
  .librarian-widget-subtitle{font-size:11px}
  .librarian-widget-messages{max-width:100%;padding:20px 14px 14px}
  .librarian-widget-message{max-width:90%;font-size:15px}
  .librarian-widget-message-avatar{width:28px;height:28px;flex-basis:28px}
  .librarian-widget-suggestions{max-width:100%;padding:0 14px 10px}
  .librarian-widget-composer{max-width:calc(100% - 20px);margin:0 10px calc(10px + env(safe-area-inset-bottom));padding:8px 9px;border-radius:14px}
  .librarian-widget-onboarding-actions,
  .librarian-widget-onboarding-maintenance{margin-left:0;width:100%;max-width:100%}
  .librarian-widget-onboarding-actions{padding:15px}
}

@media (prefers-reduced-motion:reduce){
  .librarian-widget-messages{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Gate 18 — conversational operations: every catalog action lives inside the assistant lane. */
.librarian-widget-conversational-operation{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
  min-width:0;
  width:min(560px,calc(100vw - 150px));
  max-width:100%;
}

.librarian-widget-conversational-operation > .librarian-widget-message.assistant{
  width:auto;
  max-width:100%;
  margin:0;
}

.librarian-widget-conversational-operation-controls{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:9px;
  width:100%;
  max-width:440px;
  margin:0 0 6px 0;
  padding:0 0 0 2px;
  background:transparent;
  border:0;
  box-shadow:none;
}

.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-field{
  gap:6px;
}

.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-select{
  min-height:42px;
  border-radius:10px;
  background:rgba(255,255,255,.025);
}

.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-import{
  align-self:flex-start;
  min-height:40px;
  padding:0 15px;
  border-radius:10px;
  box-shadow:none;
}

.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-secondary{
  align-self:flex-start;
  min-height:34px;
  padding:0 11px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  text-decoration:none;
  border:1px solid var(--lib-avatar-blue-border);
  border-radius:9px;
  background:var(--lib-avatar-blue-soft);
  color:#9db9c3;
  font-size:12px;
  font-weight:720;
}
.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-secondary::before{
  content:'↻';
  display:inline-block;
  font-size:14px;
  line-height:1;
  color:var(--lib-avatar-blue-strong);
}
.librarian-widget-conversational-operation-controls .librarian-widget-onboarding-secondary:hover{
  color:#c5d7dd;
  background:rgba(95,134,147,.18);
  border-color:rgba(111,157,171,.58);
}

.librarian-widget-conversational-operation-status{
  width:auto;
  max-width:100%;
  padding:2px 0;
  color:var(--lib-text-muted);
  font-size:12px;
  line-height:1.45;
}

.librarian-widget-conversational-operation-status[data-kind="success"]{color:#bfd2b8}
.librarian-widget-conversational-operation-status[data-kind="error"]{color:#d6aaa1}

.librarian-widget-conversational-operation-controls.librarian-widget-onboarding-busy::before{
  top:auto;
  bottom:-5px;
  height:1px;
}
.librarian-widget-conversational-operation-controls.librarian-widget-onboarding-busy::after{display:none}

/* Legacy shells are deliberately neutralized; operations no longer depend on them. */
.librarian-widget-onboarding-actions{display:contents}
.librarian-widget-onboarding-maintenance{display:contents}

@media (max-width:720px){
  .librarian-widget-conversational-operation{width:calc(100vw - 82px);max-width:100%}
  .librarian-widget-conversational-operation-controls{max-width:100%;margin-left:0}
}

/* Gate 19 — reader/maintenance separation. */
.librarian-widget-maintenance-entry{
  appearance:none;
  width:32px;
  height:32px;
  margin-left:auto;
  margin-right:3px;
  padding:0;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:var(--lib-avatar-blue-strong);
  font:inherit;
  font-size:17px;
  line-height:1;
  cursor:pointer;
  display:inline-grid;
  place-items:center;
  transition:background 140ms ease,border-color 140ms ease,color 140ms ease;
}
.librarian-widget-maintenance-entry:hover{background:var(--lib-avatar-blue-soft);border-color:var(--lib-avatar-blue-border);color:#b7cbd2}
.librarian-widget-maintenance-entry:active{transform:translateY(1px)}
.librarian-widget-maintenance-pin{
  width:100%;
  min-height:42px;
  box-sizing:border-box;
  padding:0 12px;
  border-radius:10px;
  border:1px solid var(--lib-border-strong);
  background:rgba(255,255,255,.025);
  color:var(--lib-text);
  font:inherit;
  letter-spacing:.12em;
  outline:none;
}
.librarian-widget-maintenance-pin:focus{border-color:var(--lib-avatar-blue-border);box-shadow:0 0 0 3px var(--lib-avatar-blue-soft)}

/* Gate 19 — maintenance lock microcopy/CTA polish. */
.librarian-widget-maintenance-confirm{
  appearance:none;
  align-self:flex-start;
  min-height:40px;
  padding:0 15px;
  border:1px solid var(--lib-avatar-blue-border);
  border-radius:10px;
  background:var(--lib-avatar-blue-soft);
  color:#a9c2cb;
  font:inherit;
  font-size:14px;
  font-weight:760;
  cursor:pointer;
  box-shadow:none;
  transition:background 140ms ease,border-color 140ms ease,color 140ms ease,transform 90ms ease;
}
.librarian-widget-maintenance-confirm:hover{background:rgba(103,139,151,.22);border-color:#7697a2;color:#c0d2d8}
.librarian-widget-maintenance-confirm:active{transform:translateY(1px)}
.librarian-widget-maintenance-confirm:disabled{opacity:.55;cursor:default;transform:none}

/* Gate 19 — generic maintenance CTA palette.
   All action buttons attached to a maintenance conversational turn share the
   avatar-blue family; reader/chat controls and first-run onboarding remain untouched. */
.librarian-widget-maintenance-turn .librarian-widget-conversational-operation-controls button{
  appearance:none;
  align-self:flex-start;
  min-height:40px;
  padding:0 15px;
  border:1px solid var(--lib-avatar-blue-border);
  border-radius:10px;
  background:var(--lib-avatar-blue-soft);
  color:#a9c2cb;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  box-shadow:none;
  transition:background 140ms ease,border-color 140ms ease,color 140ms ease,transform 90ms ease;
}
.librarian-widget-maintenance-turn .librarian-widget-conversational-operation-controls button:hover{background:rgba(103,139,151,.22);border-color:#7697a2;color:#c0d2d8}
.librarian-widget-maintenance-turn .librarian-widget-conversational-operation-controls button:active{transform:translateY(1px)}
.librarian-widget-maintenance-turn .librarian-widget-conversational-operation-controls button:disabled{opacity:.55;cursor:default;transform:none}

/* Reading room — handwritten quotations around the original Bursa central hub. */
body.portable-reading-page{margin:0;background:#eaeae2;color:#2c3b38;font-family:'Segoe UI',Arial,sans-serif;-webkit-font-smoothing:antialiased}
.portable-home{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#f3f1e8 0%,#eaeae1 56%,#e1e6dc 100%)}
.portable-home::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23837259' filter='url(%23n)' opacity='.45' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.portable-masthead{position:relative;z-index:2;height:76px;margin:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #43534917}
.portable-wordmark{display:flex;align-items:center;gap:16px;font-family:Georgia,serif;font-size:23px;letter-spacing:-.5px;color:#3e514b;text-decoration:none}
.portable-wordmark>span{font:9px 'Segoe UI',sans-serif;letter-spacing:2.5px;border-left:1px solid #43534930;padding-left:16px}
.portable-header-note{font-size:11px;color:#6c766b;letter-spacing:.5px}
.portable-reading-room{position:relative;min-height:680px;height:calc(100svh - 124px);max-width:1760px;margin:auto}
.portable-hub{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:38%;text-align:center;display:flex;flex-direction:column;align-items:center}
.portable-eyebrow{font-size:9px;letter-spacing:2.3px;color:#64756d;line-height:1.8;margin:0 0 21px}
.portable-launcher{display:flex;flex-direction:column;align-items:center;position:relative;appearance:none;border:0;padding:0;background:transparent;color:#37524e;cursor:pointer;font:inherit;max-width:100%;transition:opacity .2s}
.portable-launcher:disabled{opacity:.55;cursor:wait}
.portable-avatar-halo{position:relative;width:clamp(245px,25vw,360px);height:clamp(245px,25vw,360px);display:grid;place-items:center;border-radius:50%;isolation:isolate;background:#345e67;box-shadow:0 0 0 1px #799ea040,0 12px 36px #4a686422;font:100px Georgia,serif;color:#e5ece6}
.portable-avatar-halo::before,.portable-avatar-halo::after{content:'';position:absolute;border:1px solid #719e9c25;border-radius:50%;pointer-events:none;inset:-13px;z-index:-1}
.portable-avatar-halo::after{inset:-27px;border-color:#719e9c12}
.portable-launcher-avatar{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;pointer-events:none;user-select:none}
.portable-pulse .portable-launcher-avatar{animation:portable-librarian-pulse 2.4s ease-in-out infinite}
@keyframes portable-librarian-pulse{0%,100%{filter:drop-shadow(0 0 12px rgba(106,180,198,.22));transform:scale(1)}50%{filter:brightness(1.06) drop-shadow(0 0 27px rgba(106,180,198,.43));transform:scale(1.025)}}
.portable-launcher:hover .portable-avatar-halo{box-shadow:0 0 0 1px #799ea080,0 12px 45px #3e768942}
.portable-hub-invitation{font-size:13px;letter-spacing:.15px;margin-top:34px;border-bottom:1px solid #47655c50;padding-bottom:7px;line-height:1.5}
.portable-hub-invitation>span{margin-left:9px}
.portable-hub h1{font:normal clamp(30px,3vw,43px)/1.2 Georgia,serif;letter-spacing:-1px;margin:14px 0 0;order:2;color:#304b44}
.portable-home-status{font-size:12px;line-height:1.6;color:#596a60;max-width:340px;min-height:20px;margin:12px 0 0;order:3}
.portable-quote-field{position:absolute;inset:0;z-index:1}
.portable-handwritten{position:absolute;margin:0;width:25%;max-width:380px;color:#626f62;transform:rotate(var(--tilt,0deg))}
.portable-handwritten blockquote{font-family:'Segoe Print','Ink Free','Bradley Hand',cursive;font-size:clamp(18px,1.55vw,26px);font-weight:400;line-height:1.65;margin:0;letter-spacing:-.5px}
.portable-handwritten figcaption{font-family:'Segoe Print','Ink Free',cursive;font-size:clamp(11px,.85vw,14px);text-align:right;margin-top:10px;color:#627369}
.portable-handwritten figcaption::before{content:'— ';color:#829184}
.portable-handwritten a{color:inherit;text-decoration:none;text-underline-offset:4px}
.portable-handwritten a:hover{text-decoration:underline}
.portable-note-1{left:5%;top:8%;--tilt:-6deg}
.portable-note-2{left:39%;top:1%;width:24%;--tilt:3deg;color:#6b7160}
.portable-note-2 blockquote{font-size:clamp(16px,1.35vw,22px)}
.portable-note-3{right:5%;top:10%;--tilt:5deg;color:#586e68}
.portable-note-4{left:4%;top:40%;--tilt:3deg;width:24%;color:#6b7162}
.portable-note-5{right:3%;top:43%;--tilt:-5deg;width:26%;color:#61756d}
.portable-note-5 blockquote{font-size:clamp(17px,1.45vw,24px)}
.portable-note-6{left:7%;bottom:12%;--tilt:-4deg;width:26%}
.portable-note-7{right:5%;bottom:13%;--tilt:5deg;width:23%;color:#586e68}
.portable-note-8{left:38%;bottom:2%;--tilt:-3deg;width:26%;text-align:center;color:#737362}
.portable-note-8 blockquote{font-size:clamp(16px,1.35vw,21px)}
.portable-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;height:48px;margin:0 4vw;border-top:1px solid #43534917;font-size:10px;letter-spacing:.5px;color:#6c766b}
.portable-home :focus-visible{outline:2px solid #416e77;outline-offset:7px;border-radius:4px}
.portable-launcher:focus-visible{border-radius:50% 50% 8px 8px}
.portable-reading-page .librarian-widget-overlay{background:#17272185}
@media(min-width:1600px){.portable-reading-room{max-height:1050px}.portable-handwritten{max-width:none}.portable-note-2{top:4%}.portable-note-8{bottom:5%}}
@media(min-width:761px) and (max-width:1100px){.portable-reading-room{min-height:720px}.portable-handwritten blockquote{font-size:18px}.portable-note-4{left:3%;width:25%}.portable-note-5{right:2%;width:24%}.portable-note-6{left:4%;width:30%;bottom:10%}.portable-note-7{right:3%;width:25%;bottom:10%}.portable-note-2{top:2%;width:28%;left:37%}.portable-note-8{bottom:0%;width:32%;left:34%}.portable-eyebrow{font-size:8px;letter-spacing:1.5px}.portable-hub-invitation{font-size:11px}}
@media(max-width:760px){
 .portable-masthead{height:64px;margin:0 22px}.portable-wordmark{font-size:21px;gap:12px}.portable-wordmark>span{padding-left:12px;font-size:8px;letter-spacing:2px}.portable-header-note{display:none}
 .portable-reading-room{height:1080px;min-height:0;max-width:560px}
 .portable-hub{top:218px;transform:translateX(-50%);width:90%}
 .portable-eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:22px}
 .portable-avatar-halo{width:250px;height:250px}
 .portable-hub h1{font-size:36px}.portable-hub-invitation{font-size:12px;margin-top:30px}.portable-home-status{font-size:11px;margin-top:10px}
 .portable-handwritten{width:43%;max-width:none}.portable-handwritten blockquote{font-size:17px;line-height:1.65;letter-spacing:-.6px}.portable-handwritten figcaption{font-size:10px;margin-top:7px}
 .portable-note-1{left:6%;top:22px;width:57%;--tilt:-5deg}.portable-note-3{right:5%;top:113px;width:57%;--tilt:4deg}
 .portable-note-2{left:5%;top:681px;width:43%;--tilt:-4deg}.portable-note-4{right:5%;left:auto;top:715px;width:40%;--tilt:5deg}
 .portable-note-5{right:5%;top:853px;width:41%;--tilt:3deg}.portable-note-6{left:5%;top:816px;bottom:auto;width:44%;--tilt:-5deg}
 .portable-note-7{left:7%;right:auto;bottom:auto;top:959px;width:42%;--tilt:3deg}.portable-note-8{left:auto;right:5%;bottom:auto;top:991px;width:42%;--tilt:-4deg;text-align:left}
 .portable-note-2 blockquote,.portable-note-5 blockquote,.portable-note-8 blockquote{font-size:16px}
 .portable-footer{height:52px;margin:0 22px;font-size:9px;letter-spacing:.1px}
}
@media(max-width:360px){.portable-reading-room{height:1160px}.portable-handwritten blockquote{font-size:16px}.portable-avatar-halo{width:230px;height:230px}.portable-hub-invitation{font-size:11px}.portable-note-5{top:894px}.portable-note-6{top:836px}.portable-note-7{top:1023px}.portable-note-8{top:1072px}.portable-note-2 blockquote,.portable-note-5 blockquote,.portable-note-8 blockquote{font-size:15px}.portable-footer{font-size:8px;gap:8px}}
@media(prefers-reduced-motion:reduce){.portable-pulse .portable-launcher-avatar{animation:none}.portable-launcher{transition:none}}
@media(max-height:650px) and (min-width:721px){.portable-reading-page .librarian-widget-shell{height:calc(100dvh - 40px);min-height:0}}
/* Let the original circular portrait fill the hub, without a second solid disk. */
.portable-avatar-halo{background:transparent}
.portable-launcher-avatar{position:absolute;left:-15%;top:-10%;width:130%;height:130%;max-width:none;border-radius:0;clip-path:circle(38% at 50% 46%);object-fit:contain}
@media(min-width:761px) and (max-height:820px){.portable-avatar-halo{width:280px;height:280px}.portable-eyebrow{margin-bottom:19px}.portable-hub-invitation{margin-top:28px}.portable-hub h1{font-size:36px}.portable-hub{top:49%}}
/* Keep the hub dominant and leave breathing room between handwritten fragments. */
.portable-hub{width:32%;min-width:310px}
.portable-note-2{top:0}
@media(min-width:761px) and (max-height:820px){.portable-reading-room{min-height:620px}.portable-hub{top:50%}}
@media(min-width:761px) and (max-width:1100px){.portable-reading-room{min-height:720px}.portable-note-6{left:3%;width:27%;bottom:13%}.portable-note-8{bottom:1%;width:31%;left:35%}}
@media(max-width:760px){.portable-reading-room{height:1120px}.portable-hub{top:242px;width:90%;min-width:0}.portable-note-1{width:54%}.portable-note-3{top:127px}.portable-note-2{top:681px}.portable-note-6{top:848px}.portable-note-5{top:881px}.portable-note-7{top:1008px}.portable-note-8{top:1030px}}
@media(max-width:360px){.portable-reading-room{height:1170px}.portable-note-6{top:858px}.portable-note-5{top:906px}.portable-note-7{top:1040px}.portable-note-8{top:1080px}}
@media(min-width:1101px) and (max-height:820px){.portable-note-2 blockquote{font-size:18px}.portable-note-2 figcaption{font-size:11px;margin-top:7px}}
@media(min-width:761px) and (max-width:850px){.portable-note-6{left:2%;width:25%}}

/* The single mounted demo catalog is selected explicitly before opening chat. */
.portable-library-field{order:2;width:100%;max-width:340px;margin-top:20px;text-align:left}
.portable-library-field label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.portable-library-select{display:block;width:100%;min-height:48px;padding:10px 14px;border:1px solid #70827870;border-radius:9px;background:#f3f2e9;color:#304b44;font:14px 'Segoe UI',Arial,sans-serif;cursor:pointer}
.portable-library-select:focus-visible{outline:2px solid #416e77;outline-offset:4px}
@media(max-width:760px){.portable-library-field{max-width:300px;margin-top:18px}.portable-library-select{font-size:13px}}
@media(max-width:360px){.portable-library-field{max-width:280px}}

.portable-brand{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.portable-header-invitation{appearance:none;border:0;padding:0;background:transparent;color:#506c62;font:12px/1.5 'Segoe UI',Arial,sans-serif;cursor:pointer;text-align:left;text-underline-offset:3px}
.portable-header-invitation:hover{text-decoration:underline;color:#304b44}
.portable-header-invitation:disabled{opacity:.6;cursor:wait}
.portable-library-field{margin-top:40px}
@media(max-width:760px){.portable-header-invitation{font-size:11px}.portable-brand{gap:3px}.portable-library-field{margin-top:38px}}
