/* One existing screen becomes the viewport. Nothing is added to the room. */
.jc-workroom[data-mode="carrier"] { overflow: hidden; --wb-paper: #f3f5f4; --wb-ink: #252b2d; }
.jc-workroom[data-mode="carrier"] .jc-workbench,
.jc-workroom[data-mode="carrier"] .jc-workroom__anchor { display: none; }
.jc-workroom[data-mode="carrier"] .jc-workroom__bar { z-index: 5; pointer-events: none; }
.jc-workroom[data-mode="carrier"] .jc-workroom__bar > div { opacity: 0; background: none; padding: 0; transform: translateY(-4px); transition: opacity 220ms ease, transform 320ms cubic-bezier(.22,1,.36,1); }
.jc-workroom[data-mode="carrier"] .jc-workroom__return { pointer-events: auto; background: #f3f5f4; border: 0; }
.jc-workroom[data-mode="carrier"][data-phase="open"] .jc-workroom__bar > div { opacity: 1; transform: none; }
.jc-workroom[data-mode="carrier"] .jc-workroom__location { display: none; }
.jc-carrier { position: absolute; left: 0; top: 0; width: 100vw; height: 100dvh; transform-origin: 0 0; visibility: hidden; background: #f3f5f4; overflow: hidden; will-change: transform; }
.jc-carrier__picture { position: absolute; inset: 82px 20px 90px; display: grid; grid-template: minmax(0,1fr) / minmax(0,1fr); place-items: center; }
.jc-carrier__image { display: block; min-width: 0; min-height: 0; width: 100%; height: 100%; object-fit: contain; }
.jc-carrier__controls { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 220ms ease; }
.jc-carrier__footer { transform: translateY(6px); transition: transform 360ms cubic-bezier(.22,1,.36,1); }
.jc-carrier.is-open .jc-carrier__footer { transform: none; }
.jc-carrier.is-open { will-change: auto; }
.jc-workroom .jc-carrier:focus { outline: none; }
.jc-carrier.is-open .jc-carrier__controls { opacity: 1; visibility: visible; }
.jc-carrier__selection { position: absolute; top: 28px; left: 50%; transform: translateX(-50%); pointer-events: auto; min-height: 44px; padding: 8px 30px 8px 12px; max-width: 42vw; color: #252b2d; background: #f3f5f4; border: 0; font: inherit; cursor: pointer; }
.jc-carrier__selection:focus-visible { outline: 2px solid #214fc4; outline-offset: 3px; }
.jc-carrier__footer { position: absolute; left: 28px; right: 28px; bottom: 20px; display: flex; gap: 16px; align-items: center; pointer-events: auto; padding: 8px 12px; background: #f3f5f4; }
.jc-carrier__caption { margin-right: auto !important; font-size: 12px; max-width: 65%; }
.jc-carrier button { background: #f3f5f4; border: 0; min-width: 44px; min-height: 44px; padding: 8px; }
.jc-carrier button:hover { color: #214fc4; }
.jc-carrier button { transition: color 160ms ease, background-color 160ms ease; }
.jc-carrier button:active { background: #e4e9ee; }
.jc-carrier__count { white-space: nowrap; font: 11px 'Jiancheng Mono', monospace; }
.jc-carrier__record { position: absolute; inset: 82px 0 0; background: #f3f5f4; overflow: auto; pointer-events: auto; padding: 20px max(24px,calc((100vw - 760px)/2)) 70px; }
.jc-carrier__record-close { display: block; margin-left: auto !important; }
.jc-carrier__record h1 { font-size: clamp(30px,4vw,52px); padding: 30px 0 20px; }
.jc-carrier__record section { margin-top: 32px; }
.jc-carrier__record h2 { font-size: 17px; margin-bottom: 10px; }
.jc-carrier__record p { line-height: 1.9; }
.jc-carrier__unavailable { padding: 70px 24px; max-width: 540px; }
.jc-carrier__unavailable h1 { font-size: 36px; margin-bottom: 24px; }
.jc-carrier-loading { position: absolute; bottom: 24px; left: 28px; padding: 10px 14px !important; background: #f3f5f4; }
.jc-carrier.is-collection .jc-carrier__picture,
.jc-carrier.is-collection .jc-carrier__footer,
.jc-carrier.is-collection .jc-carrier__selection { display: none; }
/* Spatial project browser styles live separately from the accepted carrier. */
.jc-carrier.is-navigating .jc-carrier__controls { opacity: 0; pointer-events: none; }
@media (max-width:700px) {
  .jc-carrier__picture { inset: 78px 16px 118px; }
  .jc-workroom[data-mode="carrier"] .jc-workroom__bar { left: 12px; right: 12px; }
  .jc-workroom[data-mode="carrier"] .jc-workroom__brand { font-size: 17px; }
  .jc-carrier__selection { top: 14px; max-width: 38vw; font-size: 12px; }
  .jc-carrier__footer { left: 12px; right: 12px; bottom: max(10px,env(safe-area-inset-bottom)); flex-wrap: wrap; gap: 6px; padding: 6px; }
  .jc-carrier__caption { flex-basis: 100%; max-width: 100%; }
  .jc-carrier__footer button:last-child { margin-left: auto; }
}
/* Continuous case reading: the evidence stays in the room's fullscreen carrier. */
.jc-carrier { --detail-rail: clamp(340px,36vw,520px); }
.jc-carrier__picture { inset:110px calc(var(--detail-rail) + 64px) 145px 40px; transition:inset 480ms cubic-bezier(.22,1,.36,1); }
.jc-carrier__picture::before { content:''; position:absolute; inset:8% 0; box-shadow:0 38px 62px -48px #30475080; pointer-events:none; }
.jc-carrier__caption { position:absolute; bottom:78px; left:0; width:calc(100vw - var(--detail-rail) - 104px); max-width:none; line-height:1.65; color:#59636a; }
.jc-carrier__caption::before { content:attr(data-kind); display:block; font:10px 'Jiancheng Mono',monospace; color:#59636a; margin-bottom:7px; }
.jc-carrier__footer { left:40px; right:40px; bottom:18px; border-top:1px solid #d8dedf; padding:12px 0 0; gap:12px; }
.jc-carrier__footer .jc-carrier__all { order:-2; margin-right:auto; }
.jc-carrier__footer .jc-motion__toggle { order:-1; }
.jc-carrier:not(.is-inspecting) .jc-carrier__material-step,
.jc-carrier:not(.is-inspecting) .jc-carrier__count { display:none; }
.jc-story { position:absolute; top:104px; right:40px; bottom:99px; width:var(--detail-rail); display:flex; flex-direction:column; pointer-events:auto; overflow:hidden; transition:opacity 260ms ease,transform 400ms ease; }
.jc-story__heading { flex-shrink:0; padding:0 12px 0 22px; }
.jc-story__name { font-size:18px; font-weight:550; line-height:1.4; }
.jc-story__hint { font-size:11px; color:#59636a; margin-top:7px!important; }
.jc-story__nav { display:flex; gap:6px; margin-top:22px; border-bottom:1px solid #d8dedf; }
.jc-carrier .jc-story__nav button { padding:8px 4px 12px; background:transparent; color:#59636a; font-size:11px; flex:1; white-space:nowrap; border-bottom:2px solid transparent; }
.jc-carrier .jc-story__nav button[aria-current="true"] { color:#214fc4; border-bottom-color:#214fc4; }
.jc-story__scroll { position:relative; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#bbc5c9 transparent; padding:0 20px 0 22px; flex:1; min-height:0; scroll-behavior:smooth; }
.jc-story__chapter { padding:38px 0 64px; }
.jc-story__chapter + .jc-story__chapter { border-top:1px solid #d8dedf; }
.jc-story__chapter:last-child { padding-bottom:140px; }
.jc-story__label { font:10px 'Jiancheng Mono',monospace; color:#59636a; margin-bottom:17px!important; }
.jc-story__chapter h2 { white-space:pre-line; font-size:clamp(26px,2.3vw,35px); line-height:1.42; letter-spacing:-.04em; font-weight:520; }
.jc-story__text { font-size:14px; line-height:1.95; color:#48575e; margin-top:24px!important; }
.jc-story__chapter h3 { font-size:13px; font-weight:550; margin-top:32px; }
.jc-story__chapter h3 + p { margin-top:10px!important; }
.jc-story__evidence-note { font-size:11px; line-height:1.8; color:#59636a; margin-top:26px!important; padding-left:12px; border-left:2px solid #a8b8c0; }
.jc-story__contribution { margin-top:24px; font-size:12px; color:#48575e; }
.jc-story__contribution summary { padding:10px 0; cursor:pointer; }
.jc-story__contribution p { font-size:12px; line-height:1.85; margin-top:10px!important; }
.jc-carrier.is-collection .jc-story { display:none; }
.jc-carrier.is-inspecting .jc-story { visibility:hidden; opacity:0; transform:translateX(20px); pointer-events:none; }
.jc-carrier.is-inspecting .jc-carrier__picture { inset:82px 20px 150px; }
.jc-carrier.is-inspecting .jc-carrier__caption { width:calc(100vw - 80px); bottom:76px; }
.jc-carrier__record { z-index:3; }
.jc-carrier :is(button,summary,.jc-story__scroll):focus-visible { outline:2px solid #214fc4; outline-offset:3px; }
@media(max-width:700px) {
 .jc-carrier__picture { inset:76px 16px calc(100dvh - 76px - min(30dvh,260px)); }
 .jc-story { top:calc(76px + min(30dvh,260px) + 50px); left:16px; right:16px; bottom:81px; width:auto; }
 .jc-story__heading { padding:0 8px; }
 .jc-story__name { font-size:15px; }
 .jc-story__hint { display:none; }
 .jc-story__nav { margin-top:8px; gap:2px; }
 .jc-carrier .jc-story__nav button { min-height:40px; padding:5px 2px; font-size:10px; }
 .jc-story__scroll { padding:0 8px; }
 .jc-story__chapter { padding:24px 0 42px; }
 .jc-story__chapter h2 { font-size:26px; }
 .jc-story__label { margin-bottom:10px!important; }
 .jc-story__text { margin-top:17px!important; font-size:13px; }
 .jc-carrier__footer { left:16px; right:16px; bottom:max(10px,env(safe-area-inset-bottom)); flex-wrap:nowrap; gap:4px; padding-top:8px; }
 .jc-carrier__footer button { font-size:11px; padding:6px; }
 .jc-carrier__footer .jc-motion__toggle { padding:6px 2px; font-size:10px; }
 .jc-carrier__caption { position:fixed; top:calc(76px + min(30dvh,260px) + 10px); left:24px; right:24px; bottom:auto; width:auto; font-size:10px; margin:0!important; }
 .jc-carrier__caption::before { display:none; }
 .jc-carrier.is-inspecting .jc-carrier__picture { inset:78px 16px 180px; }
 .jc-carrier.is-inspecting .jc-carrier__caption { top:auto; bottom:138px; width:auto; }
 .jc-carrier.is-inspecting .jc-carrier__footer { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
 .jc-carrier__picture,.jc-story { transition:none; }
 .jc-story__scroll { scroll-behavior:auto; }
}
@media(max-width:700px) {
 .jc-story__heading { position:relative; }
 .jc-story__hint { display:block; position:absolute; top:0; right:8px; font-size:10px; margin:2px 0 0!important; }
}
/* A phone cannot enlarge a landscape screenshot merely by hiding its text. */
.jc-carrier.is-inspecting .jc-carrier__picture:not(:has(video:not([hidden]))) { display:block; overflow:auto; overscroll-behavior:contain; }
.jc-carrier.is-inspecting .jc-carrier__picture:not(:has(video:not([hidden]))) .jc-carrier__image { width:auto; height:auto; min-width:100%; max-width:none; max-height:none; }
.jc-carrier.is-inspecting .jc-carrier__picture::before { display:none; }
.jc-carrier.is-inspecting:has(.jc-carrier__picture:not(:has(video:not([hidden])))) .jc-carrier__caption::after { content:'原始尺寸 · 可滚动查看细节'; display:block; margin-top:5px; font-size:10px; }
/* Evidence-led hiring narrative: semantic excerpts, never imitation screenshots. */
.jc-story__outcomes { margin:22px 0 10px; }
.jc-story__outcomes > div { display:grid; grid-template-columns:66px 1fr; gap:12px; padding:10px 0; border-bottom:1px solid #d8dedf; }
.jc-story__outcomes dt { font-size:11px; color:#59636a; }
.jc-story__outcomes dd { margin:0; font-size:12px; color:#252b2d; line-height:1.7; }
.jc-engineering { display:block; width:100%; height:100%; min-height:0; overflow:auto; overscroll-behavior:contain; padding:clamp(24px,3vw,44px); background:#e8edef; color:#252b2d; scrollbar-width:thin; }
.jc-engineering__label { font:11px 'Jiancheng Mono',monospace; color:#59636a; margin-bottom:24px!important; }
.jc-engineering h2 { font-size:clamp(22px,2.2vw,32px); line-height:1.5; font-weight:550; max-width:540px; }
.jc-engineering__readings { display:flex; gap:clamp(24px,5vw,80px); margin:32px 0 18px; }
.jc-engineering__readings dt { font-size:11px; color:#59636a; }
.jc-engineering__readings dd { margin:8px 0 0; font:clamp(30px,4vw,58px)/1.1 'Jiancheng Mono',monospace; letter-spacing:-.05em; }
.jc-engineering__context { font-size:11px; line-height:1.8; color:#59636a; max-width:580px; }
.jc-engineering__steps { list-style:none; padding:0; margin:25px 0; counter-reset:evidence; }
.jc-engineering__steps li { counter-increment:evidence; display:flex; gap:15px; padding:14px 0; font-size:13px; line-height:1.8; border-top:1px solid #cbd4d8; }
.jc-engineering__steps li::before { content:counter(evidence,decimal-leading-zero); font:10px/2.3 'Jiancheng Mono',monospace; color:#59636a; flex-shrink:0; }
.jc-engineering__source { font-size:11px; line-height:1.85; color:#48575e; }
.jc-engineering__source summary { cursor:pointer; padding:10px 0; color:#214fc4; }
.jc-engineering__source pre { white-space:pre-wrap; overflow-wrap:anywhere; margin:15px 0; padding:16px; background:#f3f5f4; font:11px/1.9 'Jiancheng Mono',monospace; }
.jc-engineering__source p { overflow-wrap:anywhere; margin-top:10px!important; }
.jc-carrier.is-inspecting .has-engineering { display:grid!important; overflow:hidden!important; }
.jc-carrier.is-inspecting:has(.has-engineering) .jc-carrier__caption::after { content:'工程摘录 · 可滚动阅读与展开来源'; }
@media(max-width:700px) {
 .jc-engineering { padding:16px 20px; }
 .jc-engineering__label { font-size:9px; margin-bottom:12px!important; }
 .jc-engineering h2 { font-size:18px; }
 .jc-engineering__readings { margin:14px 0 12px; gap:32px; }
 .jc-engineering__readings dd { font-size:32px; }
 .jc-engineering__steps li { font-size:11px; padding:10px 0; }
 .jc-story__outcomes { margin-top:14px; }
 .jc-story__outcomes > div { padding:8px 0; }
}
/* Short final chapters must still reach the reading activation line. */
.jc-story__chapter:last-child { min-height:100%; }
.jc-engineering__quote { margin:18px 0; padding:8px 0 8px 15px; border-left:2px solid #879da8; }
.jc-engineering__quote p { font-size:15px; line-height:1.7; }
.jc-engineering__quote cite { display:block; margin-top:6px; font-size:10px; font-style:normal; color:#59636a; }
/* Official product links remain visible while reading each case. */
.jc-story__titlebar { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; }
.jc-story__titlebar .jc-story__name { min-width:0; }
.jc-carrier a.jc-story__website { display:inline-flex; align-items:center; justify-content:center; min-height:44px; flex-shrink:0; padding:8px 14px; color:#f3f5f4; background:#214fc4; font-size:12px; line-height:1.5; text-decoration:none; border-radius:2px; transition:background-color 160ms ease; }
.jc-carrier a.jc-story__website:hover { background:#183c96; }
.jc-carrier a.jc-story__website:focus-visible { outline:2px solid #214fc4; outline-offset:4px; }
@media(max-width:700px) {
 .jc-story__titlebar { gap:8px; }
 .jc-carrier a.jc-story__website { font-size:11px; padding:8px 12px; }
 .jc-story:has(.jc-story__website:not([hidden])) .jc-story__hint { display:none; }
 .jc-story:not(:has(.jc-story__website:not([hidden]))) .jc-story__hint { top:10px; }
}

/* Gallery cards unfold in place; the room camera stays at the browsing pose. */
.jc-gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 24px; font:12px/1.5 "Jiancheng Sans",sans-serif; }
.jc-gallery-toolbar[hidden] { display:none; }
.jc-gallery-toggle { min-height:44px; padding:8px 12px; border:1px solid currentColor; color:inherit; background:transparent; cursor:pointer; font:inherit; }
.jc-gallery-toggle:focus-visible { outline:2px solid #214fc4; outline-offset:4px; }
.jc-gallery-paper { position:absolute; inset:0; z-index:2; background:#f3f5f4; pointer-events:none; will-change:clip-path,opacity; }
.jc-gallery-flight { position:absolute; z-index:3; object-fit:cover; pointer-events:none; max-width:none; max-height:none; will-change:left,top,width,height,opacity; }
.jc-workroom[data-entry="gallery"][data-phase="open"] :is(.jc-gallery-paper,.jc-gallery-flight) { visibility:hidden; will-change:auto; }
@media(max-width:700px) { .jc-gallery-toolbar { font-size:11px; gap:10px; margin-bottom:16px; } }

@media(max-width:700px) {
 .jc-workroom[data-entry="gallery"] .jc-carrier__selection { left:43%; max-width:28vw; padding-right:22px; }
 .jc-workroom[data-entry="gallery"] .jc-workroom__return { font-size:11px; }
}
