/* Reading panels inherit the accepted studio; they never resize its header or rail. */
html { scrollbar-gutter:stable; }
html.reader-is-open { overflow:hidden; }
[hidden] { display:none !important; }
.reader-is-open .desktop-copy { visibility:hidden !important; pointer-events:none !important; }
.reader-is-open .mobile-content { visibility:hidden; }
.studio-reader { position:fixed; inset:calc(var(--header-height) + 16px) 0 84px; width:min(1120px,calc(100% - 2 * var(--gutter))); height:calc(100dvh - var(--header-height) - 100px); max-width:none; max-height:none; margin:auto; padding:0; border:1px solid rgba(250,246,240,.7); border-radius:8px; background:rgba(250,246,240,.97); color:var(--ink); box-shadow:0 12px 36px rgba(38,42,51,.16); overflow:hidden; }
.studio-reader[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
.studio-reader::backdrop { background:transparent; }
.reader-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:64px; padding:8px 24px; border-bottom:1px solid var(--line); background:var(--paper); }
.reader-location { display:flex; align-items:center; gap:20px; min-width:0; }
#reader-label { font:500 11px/1.4 "IBM Plex Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }
.reader-close,.reader-back { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:0 12px; border:0; color:var(--ink); background:transparent; font:500 14px/1.3 "Instrument Sans",sans-serif; cursor:pointer; }
.reader-close { flex-shrink:0; border:1px solid var(--line); border-radius:4px; }
.reader-close:hover,.reader-back:hover { background:var(--rest); }
.reader-back svg { transform:rotate(180deg); }
.reader-scroll { min-height:0; overflow-y:auto; overflow-anchor:none; overscroll-behavior:contain; scrollbar-color:#8b8d85 var(--rest); scroll-padding:28px; -webkit-overflow-scrolling:touch; }
.reader-article { width:min(980px,100%); margin-inline:auto; padding:44px clamp(24px,4vw,56px) 40px; font:400 17px/1.65 "Instrument Sans",sans-serif; overflow-wrap:anywhere; }
.reader-article h1,.reader-article h2,.reader-article h3 { max-width:none; margin:0; font-weight:600; letter-spacing:-.035em; line-height:1.13; text-wrap:balance; }
.reader-article h1 { max-width:25ch; margin-bottom:24px; font-size:clamp(32px,3.5vw,48px); }
.reader-article h2 { font-size:28px; }
.reader-article h3 { font-size:21px; }
.reader-article p { margin:0; max-width:70ch; }
.reader-article p+p { margin-top:16px; }
.reader-intro > p { max-width:70ch; font-size:18px; line-height:1.65; }
.reader-intro > .button { margin-top:24px; }
.reader-article .button { gap:12px; max-width:100%; min-height:48px; padding:13px 20px; line-height:1.35; }
.reader-article svg { flex-shrink:0; }
.reader-article .text-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; margin-top:20px; font-size:15px; font-weight:500; text-decoration:underline; text-underline-offset:5px; }
.reader-article a:hover { color:var(--deep-orange); }
.reader-article .button:hover { color:var(--paper); }
.reader-index { display:flex; flex-wrap:wrap; gap:4px 22px; padding:22px 0; margin-top:32px; border-block:1px solid var(--line); }
.reader-index a { display:flex; align-items:center; min-height:36px; color:var(--sage); font-size:13px; text-decoration:none; }
.reader-index a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.reader-section { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.6fr); gap:36px; padding:38px 0; scroll-margin-top:20px; }
.reader-section + .reader-section { border-top:1px solid var(--line); }
.reader-section .section-content { min-width:0; }
.reader-article .offerings { margin-top:24px; }
.reader-article .offerings article { padding:20px 0; border-top:1px solid var(--line); }
.reader-article .offerings h3 { margin-bottom:10px; }
.reader-article .offerings article:last-child { padding-bottom:0; }
.reader-article .editorial-list { list-style:none; padding:0; margin:20px 0 0; }
.reader-article .editorial-list:first-child { margin-top:0; }
.reader-article .editorial-list li { padding:12px 0; border-bottom:1px solid var(--line); }
.reader-article .process-list { margin:0; padding-left:24px; }
.reader-article .process-list li { padding-left:8px; margin-bottom:24px; }
.reader-article .process-list li::marker { font-size:13px; color:var(--sage); }
.reader-article .process-list h3 { margin-bottom:12px; }
.reader-article .scope-comparison { display:grid; gap:32px; }
.reader-article .project-index { display:grid; gap:32px; }
.reader-article .project-index h3 { font-size:26px; }
.reader-article .project-relation { display:block; margin:8px 0 16px; color:var(--sage); font-size:13px; }
.reader-article .project-note { margin-top:18px; color:var(--sage); font-size:14px; }
.reader-article .status-label { margin-top:14px; color:var(--sage); font-size:13px; }
.reader-article .editorial-note { margin-top:24px; padding-top:18px; border-top:1px solid var(--line); color:var(--sage); font-size:14px; line-height:1.55; }
.reader-article .faq-list details { border-top:1px solid var(--line); }
.reader-article .faq-list details:last-child { border-bottom:1px solid var(--line); }
.reader-article .faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 0; list-style:none; cursor:pointer; }
.reader-article .faq-list summary::-webkit-details-marker { display:none; }
.reader-article .faq-list summary svg { flex-shrink:0; }
.reader-article .faq-list details[open] summary svg { transform:rotate(45deg); }
.reader-article .faq-list details > div { padding-bottom:24px; }
.reader-ending { padding-top:30px; border-top:1px solid var(--line); }
.reader-ending p { margin-top:16px; }
.reader-ending .button { margin-top:24px; }
.reader-related { display:flex; flex-wrap:wrap; gap:12px 36px; margin-top:24px; }
.reader-footer,.mobile-legal { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 28px; border-top:1px solid var(--line); background:var(--paper); }
.reader-footer nav,.mobile-legal nav { display:flex; gap:20px; }
.reader-footer a,.mobile-legal a,.scene-legal a { display:flex; align-items:center; min-height:32px; font:500 9px/1.5 "IBM Plex Mono",ui-monospace,monospace; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }
.reader-footer a:hover,.mobile-legal a:hover,.scene-legal a:hover { text-decoration:underline; text-underline-offset:4px; }
.scene-legal { display:none; }
.mobile-legal { padding:24px var(--gutter); flex-wrap:wrap; }
.reader-article .preview-notice { margin:24px 0; padding:18px 20px; background:var(--rest); font-size:14px; }
.reader-article .preview-notice p { margin-top:8px; }
.reader-article .form-pair { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.reader-article .form-field { display:grid; gap:8px; margin-bottom:20px; }
.reader-article .form-field label { font-size:15px; font-weight:500; }
.reader-article .form-field label span { font-weight:400; color:var(--sage); }
.reader-article input,.reader-article select,.reader-article textarea { width:100%; min-width:0; min-height:48px; padding:12px; border:1px solid #898c84; border-radius:0; background:var(--paper); color:var(--ink); font:400 16px/1.5 "Instrument Sans",sans-serif; caret-color:var(--deep-blue); }
.reader-article textarea { resize:vertical; }
.reader-article .field-hint,.reader-article .form-privacy { color:var(--sage); font-size:13px; line-height:1.5; }
.reader-article .form-privacy { margin-top:16px; }
.reader-article .field-error { color:#8b2d16; font-size:13px; }
.reader-article .field-error:empty { display:none; }
.reader-article [aria-invalid="true"] { border-color:#8b2d16; }
.reader-article .form-errors { margin-bottom:24px; padding:18px; border:1px solid #8b2d16; color:#8b2d16; font-size:15px; }
.reader-article .form-result { margin-top:24px; padding:22px; background:var(--rest); }
.reader-article .form-result p { margin-top:12px; font-size:15px; }
.reader-article .form-result textarea { margin-top:16px; }
.reader-article ::selection { background:var(--deep-blue); color:var(--paper); }
.reader-article :focus-visible,.reader-toolbar :focus-visible,.reader-footer :focus-visible { outline:3px solid var(--focus-blue); outline-offset:3px; }
.reader-fallback { background:var(--paper); }
.fallback-return { display:block; width:fit-content; margin:24px auto; padding:12px; }
.reader-fallback .reader-article { max-width:1040px; }
@media (min-width:960px) and (prefers-reduced-motion:no-preference) {
  .is-enhanced .mobile-legal { display:none; }
  .scene-legal { position:absolute; z-index:6; inset:auto var(--gutter) 22px; display:flex; justify-content:space-between; align-items:center; pointer-events:none; }
  .scene-legal nav { display:grid; gap:0; }
  .scene-legal a { max-width:calc((100vw - 920px)/2 - var(--gutter) - 18px); min-height:24px; pointer-events:auto; color:var(--paper); text-shadow:0 1px 3px rgba(38,42,51,.55); }
  .scene-legal .copyright-link { text-align:right; justify-content:flex-end; }
}
@media (min-width:960px) and (max-width:1250px) and (prefers-reduced-motion:no-preference) {
  .scene-legal { bottom:0; }
  .scene-legal nav { display:flex; gap:24px; }
  .scene-legal a { max-width:none; min-height:18px; font-size:8px; }
}
@media (max-width:760px) {
  .studio-reader { inset:calc(var(--header-height) + 8px) 8px 8px; width:calc(100% - 16px); height:calc(100dvh - var(--header-height) - 16px); border-radius:7px; }
  .reader-toolbar { min-height:58px; padding:7px 12px; gap:8px; }
  .reader-location { gap:6px; }
  #reader-label { font-size:9px; letter-spacing:.08em; }
  .reader-back { padding:0 6px; gap:6px; font-size:12px; }
  .reader-back svg { width:16px; }
  .reader-close { gap:8px; padding:0 9px; font-size:13px; }
  .reader-close svg { width:20px; }
  .reader-article { padding:28px 22px 32px; font-size:16px; }
  .reader-article h1 { font-size:32px; line-height:1.1; }
  .reader-intro > p { font-size:17px; }
  .reader-section { grid-template-columns:minmax(0,1fr); gap:20px; padding:30px 0; }
  .reader-article h2 { font-size:25px; hyphens:auto; }
  .reader-article h3 { font-size:20px; }
  .reader-index { margin-top:26px; padding-block:16px; gap:4px 18px; }
  .reader-footer { padding:6px 16px max(6px,env(safe-area-inset-bottom)); gap:4px 12px; flex-wrap:wrap; }
  .reader-footer nav { gap:16px; }
  .reader-footer a { font-size:8px; letter-spacing:.06em; min-height:30px; }
  .reader-article .form-pair { grid-template-columns:1fr; gap:0; }
}
@media (prefers-reduced-motion:no-preference) {
  .studio-reader[open] { animation:reader-arrive 220ms cubic-bezier(.16,1,.3,1); }
  @keyframes reader-arrive { from { opacity:.45; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
}
@media print { .reader-toolbar,.reader-footer,.reader-index,.reader-related,.site-header,.desktop-experience,.mobile-experience,.mobile-legal { display:none !important; } .studio-reader[open] { position:static; display:block; width:100%; height:auto; border:0; box-shadow:none; background:white; } .reader-scroll { overflow:visible; } .reader-article { padding:0; width:100%; } }
