/* Locked OurClive person-page design. Shared application styles remain in app.css. */
.workspace.person-page-active{grid-template-columns:minmax(0,1fr)}
.workspace.person-page-active>aside{display:none}
.workspace.person-page-active>.workspace-main{width:100%;min-width:0}
.workspace-main.person-view>:not(#personProfile){display:none!important}
.workspace-main.person-view>#personProfile{display:block!important;width:100%}
body.person-route-active{background:linear-gradient(#f8f4ec,#efe8dc)}
body.person-route-active .shell{max-width:1480px;padding:0 6px 18px}
body.person-route-active .shell>.brand,body.person-route-active .shell>.hero{display:none}
body.person-route-active .workspace{margin-top:0}
body.person-route-active .clive-dock{right:auto;left:16px;top:auto;bottom:12px}
.oc-person-page{width:100%;min-width:0}

#oc-person-concept{
  --oc-ink:var(--ink);
  --oc-soft:var(--muted);
  --oc-paper:var(--white);
  --oc-paper-deep:var(--paper);
  --oc-lace:#e7ddd0;
  --oc-line:var(--line);
  --oc-brass:var(--gold);
  --oc-sage:var(--ink2);
  --oc-sage-pale:#edf2ef;
  --oc-shadow:#21362e22;
  width:100%;
  color:var(--oc-ink);
  font-family:Georgia,"Times New Roman",serif;
}
#oc-person-concept *{box-sizing:border-box}
#oc-person-concept .oc-page{
  height:min(720px,calc(100vh - 12px));
  min-height:640px;
  overflow:hidden;
  border:1px solid var(--oc-line);
  border-radius:18px;
  background-color:var(--oc-lace);
  background-image:url("../assets/person-page/lace-background.jpg");
  background-repeat:repeat-y;
  background-position:center top;
  background-size:100% auto;
  box-shadow:0 18px 45px var(--oc-shadow);
}
#oc-person-concept .oc-topbar{
  height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:9px 16px;
  background:var(--oc-paper);
  border-bottom:2px solid color-mix(in srgb,var(--oc-sage) 72%,var(--oc-line));
}
#oc-person-concept .oc-brand,#oc-person-concept .oc-top-actions,#oc-person-concept .oc-person-buttons,#oc-person-concept .oc-story-heading,#oc-person-concept .oc-archive-heading,#oc-person-concept .oc-research-heading{display:flex;align-items:center;gap:9px}
#oc-person-concept .oc-top-actions{margin-right:145px}
#oc-person-concept button.oc-brand{appearance:none;border:0;border-radius:0;padding:0;color:var(--oc-ink);background:transparent;text-align:left;font:inherit}
#oc-person-concept button.oc-brand:hover{background:transparent}
#oc-person-concept .oc-brand>span:last-child{display:grid}
#oc-person-concept .oc-brand strong{font-weight:500}
#oc-person-concept .oc-brand small{color:var(--oc-soft);font:10px/1.2 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-mark,#oc-person-concept .oc-account-mark{display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif;font-weight:500}
#oc-person-concept .oc-mark{width:34px;height:34px;border:2px solid var(--oc-ink);color:var(--oc-brass);background:transparent;font-weight:900}
#oc-person-concept .oc-account-mark{width:28px;height:28px;border:2px solid var(--oc-paper);color:#fff;background:var(--oc-ink);box-shadow:0 0 0 1px var(--oc-line);font:700 9px ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-account-name{max-width:130px;overflow:hidden;color:var(--oc-soft);font:11px/1.2 ui-sans-serif,system-ui,sans-serif;text-overflow:ellipsis;white-space:nowrap}
#oc-person-concept .oc-kicker,#oc-person-concept .oc-meta,#oc-person-concept .oc-status,#oc-person-concept time,#oc-person-concept .oc-action span{color:var(--oc-soft);font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;letter-spacing:.035em}
#oc-person-concept button{appearance:none;border:1px solid var(--oc-line);border-radius:999px;padding:7px 10px;color:var(--oc-ink);background:var(--oc-paper);font:600 11.5px/1 ui-sans-serif,system-ui,sans-serif;cursor:pointer}
#oc-person-concept button:hover{background:var(--oc-paper-deep)}
#oc-person-concept button:focus-visible{outline:3px solid color-mix(in srgb,var(--oc-brass) 55%,transparent);outline-offset:2px}
#oc-person-concept button.oc-primary{color:#fff;background:var(--oc-ink);border-color:var(--oc-ink)}
#oc-person-concept h1,#oc-person-concept h2,#oc-person-concept h3,#oc-person-concept p{margin:0}
#oc-person-concept h2{font-size:16px;font-weight:500}
#oc-person-concept h3{font-size:14px;font-weight:500}

#oc-person-concept .oc-main{height:calc(100% - 58px);display:grid;grid-template-columns:minmax(104px,.48fr) minmax(330px,1.55fr) minmax(198px,.86fr);gap:8px;padding:9px}
#oc-person-concept .oc-timeline,#oc-person-concept .oc-story,#oc-person-concept .oc-research,#oc-person-concept .oc-archive-card,#oc-person-concept .oc-action{background:color-mix(in srgb,var(--oc-paper) 96%,transparent);border:1px solid var(--oc-line);box-shadow:0 7px 20px var(--oc-shadow)}
#oc-person-concept .oc-timeline,#oc-person-concept .oc-story,#oc-person-concept .oc-research,#oc-person-concept .oc-archive-card{border-radius:13px}

#oc-person-concept .oc-timeline{min-width:0;padding:16px 13px;overflow:hidden}
#oc-person-concept .person-timeline{position:relative;display:grid;gap:0;margin:16px 0 0;padding:0 0 0 17px}
#oc-person-concept .person-timeline::before{content:"";position:absolute;left:4px;top:4px;bottom:5px;width:1px;background:var(--oc-line)}
#oc-person-concept .timeline-event{position:relative;display:block;min-height:0;margin:0 0 clamp(18px,4vh,29px)}
#oc-person-concept .timeline-event:last-child{margin-bottom:0}
#oc-person-concept .timeline-dot{position:absolute;left:-17px;top:3px;width:9px;height:9px;margin:0;border:2px solid var(--oc-sage);border-radius:50%;background:var(--oc-paper);box-shadow:none}
#oc-person-concept .timeline-event time,#oc-person-concept .timeline-event strong,#oc-person-concept .timeline-event small{display:block}
#oc-person-concept .timeline-event time{color:var(--oc-sage);font-size:10px;font-weight:700}
#oc-person-concept .timeline-event strong{margin-top:3px;color:var(--oc-ink);font:500 13px/1.25 Georgia,serif}
#oc-person-concept .timeline-event small{margin-top:2px;color:var(--oc-soft);font:10px/1.25 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .timeline-evidence{display:grid;gap:5px;margin-top:7px;padding:7px;border-left:2px solid var(--oc-sage);background:color-mix(in srgb,var(--oc-sage) 8%,transparent);color:var(--oc-soft);font:9px/1.3 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .timeline-evidence b{font-weight:700;color:var(--oc-ink)}
#oc-person-concept .timeline-evidence button,#oc-person-concept .timeline-evidence a{justify-self:start;padding:4px 7px;font:700 9px/1 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .life-story-empty{color:var(--oc-soft);font:12px/1.4 ui-sans-serif,system-ui,sans-serif}

#oc-person-concept .oc-centre{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:10px}
#oc-person-concept .oc-story{min-height:0;overflow:hidden;padding:15px}
#oc-person-concept .oc-portrait-row{display:grid;grid-template-columns:106px minmax(0,1fr);align-items:center;gap:15px;padding-bottom:13px;border-bottom:1px solid var(--oc-line)}
#oc-person-concept .oc-portrait{position:relative;width:106px;height:126px;min-height:0;border:7px solid var(--oc-paper-deep);border-radius:0;background:linear-gradient(135deg,var(--oc-paper-deep),var(--oc-line));outline:1px solid var(--oc-line);box-shadow:0 7px 16px var(--oc-shadow);filter:sepia(.23);overflow:hidden}
#oc-person-concept .oc-portrait .profile-photo-placeholder{font:500 34px Georgia,serif;color:var(--oc-soft);letter-spacing:-1px}
#oc-person-concept .oc-portrait img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
#oc-person-concept .oc-person-intro{position:relative;min-width:0;padding-right:34px}
#oc-person-concept .oc-album-toggle{position:absolute;right:8px;top:7px;z-index:3;display:block;width:27px;height:33px;cursor:pointer}
#oc-person-concept .oc-album-toggle input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
#oc-person-concept .oc-album-toggle img{width:27px;height:33px;display:block;object-fit:contain;filter:drop-shadow(1px 2px 2px #3e35293d);transition:filter .18s ease,opacity .18s ease,transform .18s ease}
#oc-person-concept .oc-album-toggle:hover img{transform:translateY(-1px)}
#oc-person-concept .oc-album-toggle.is-excluded img{filter:grayscale(1) contrast(.82);opacity:.42}
#oc-person-concept .oc-album-toggle.is-automatic{cursor:help}
#oc-person-concept .oc-album-toggle input:focus-visible+img{outline:3px solid color-mix(in srgb,var(--oc-brass) 58%,transparent);outline-offset:3px;border-radius:3px}
#oc-person-concept .oc-album-toggle span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
#oc-person-concept .oc-person-name{margin:2px 0 4px;font-size:clamp(23px,2.6vw,30px);font-weight:500;line-height:1}
#oc-person-concept .oc-alternate-names{margin-bottom:4px;color:var(--oc-soft);font:italic 11px/1.25 Georgia,serif}
#oc-person-concept .oc-lifespan{margin-bottom:5px;color:var(--oc-soft);font-size:13px}
#oc-person-concept .oc-relationship-mini{margin-bottom:6px;color:var(--oc-soft);font:italic 11px/1.2 Georgia,serif}
#oc-person-concept .oc-evidence-chip{display:inline-flex;margin:0 0 8px;font-size:9px}
#oc-person-concept .oc-life-story-actions{display:flex;gap:5px}
#oc-person-concept .oc-life-story-actions button{padding:7px 9px}
#oc-person-concept .oc-story-body{padding-top:12px}
#oc-person-concept .oc-story-heading{justify-content:space-between;margin-bottom:7px}
#oc-person-concept .oc-story-heading .oc-kicker{max-width:48%;text-align:right}
#oc-person-concept .oc-life-copy{min-height:108px;max-height:clamp(116px,21vh,205px);overflow:auto;padding:8px;border:1px dashed transparent;border-radius:8px;font-size:13.5px;line-height:1.52}
#oc-person-concept .oc-life-copy p{margin:0 0 10px}
#oc-person-concept .oc-life-copy p:last-child{margin-bottom:0}
#oc-person-concept .life-story-invitation>span{display:none}
#oc-person-concept .life-story-invitation h3{margin-bottom:5px}

#oc-person-concept .oc-research{padding:11px 13px;border-left:5px solid var(--oc-sage)}
#oc-person-concept .oc-research-heading{justify-content:space-between;margin-bottom:7px}
#oc-person-concept .oc-jeanie-heading{display:flex;align-items:center;gap:8px;min-width:0}#oc-person-concept .oc-jeanie-heading img{width:38px;height:38px;flex:0 0 38px;border:2px solid #fff;border-radius:50%;object-fit:cover;object-position:50% 24%;box-shadow:0 3px 9px var(--oc-shadow)}
#oc-person-concept .oc-research-heading .oc-status{max-width:58%;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}
#oc-person-concept .oc-research-body{display:block}
#oc-person-concept .oc-question{padding:8px 9px;border-left:3px solid var(--oc-brass);background:var(--oc-paper-deep);font-size:12.5px;line-height:1.35}
#oc-person-concept .oc-research-boundary{margin:7px 0 0;color:var(--oc-soft);font:10px/1.35 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-research-buttons{display:flex;gap:7px;margin-top:8px}
#oc-person-concept .oc-research-buttons button.oc-primary{background:var(--oc-sage);border-color:var(--oc-sage)}

#oc-person-concept .oc-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
#oc-person-concept .oc-action{min-width:0;border-radius:10px;padding:9px 8px;text-align:left}
#oc-person-concept .oc-action:hover{border-color:var(--oc-sage);box-shadow:0 7px 20px color-mix(in srgb,var(--oc-sage) 18%,transparent)}
#oc-person-concept .oc-action strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}
#oc-person-concept .oc-action span{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px}

#oc-person-concept .oc-archive-column{min-width:0;min-height:0;display:grid;grid-template-rows:.93fr 1.07fr;gap:10px}
#oc-person-concept .oc-archive-card{position:relative;min-height:0;overflow:hidden;padding:11px 12px;border-top:3px solid color-mix(in srgb,var(--oc-sage) 72%,var(--oc-line))}
#oc-person-concept .oc-archive-heading{justify-content:space-between}
#oc-person-concept .oc-archive-heading .oc-status{padding:3px 6px;border-radius:999px;color:var(--oc-sage);background:var(--oc-sage-pale);font-weight:800}
#oc-person-concept .oc-archive-copy{margin-top:3px;color:var(--oc-soft);font:10.5px/1.25 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-archive-card>button{position:absolute;right:11px;bottom:9px;z-index:10}
#oc-person-concept .oc-memory-stage,#oc-person-concept .oc-cabinet-stage{position:absolute;left:9px;right:9px;top:54px;bottom:35px;overflow:hidden;border:1px solid color-mix(in srgb,var(--oc-line) 75%,transparent);border-radius:10px;background:linear-gradient(145deg,var(--oc-paper-deep),var(--oc-paper));cursor:pointer}
#oc-person-concept .oc-memory-object{position:absolute;left:50%;top:50%;width:164px;height:104px;transform:translate(-50%,-50%);transition:left .42s ease,transform .42s ease}
#oc-person-concept .oc-memory-image{position:absolute;inset:0;width:100%;height:100%;border-radius:7px;background-image:url("../assets/person-page/memory-box.jpg");background-repeat:no-repeat;background-position:76% 57%;background-size:cover;transform:scale(1.16);box-shadow:0 8px 14px var(--oc-shadow);filter:saturate(.78) contrast(1.04)}
#oc-person-concept .oc-memory-stage.is-suggested .oc-memory-object{animation:oc-memory-invitation 3.2s ease-in-out 1}
#oc-person-concept .oc-memory-stage.is-open .oc-memory-object{left:28%;transform:translate(-50%,-50%) scale(.72)}
#oc-person-concept .oc-memory-stage.is-open .oc-memory-image{animation:none}
#oc-person-concept .oc-suggestion-ribbon{position:absolute;left:8px;bottom:8px;z-index:3;padding:5px 7px;border:1px solid color-mix(in srgb,var(--oc-brass) 60%,var(--oc-paper));border-radius:999px;color:#463520;background:#f4e6c5;box-shadow:0 3px 10px rgba(54,38,25,.18);font:700 9.5px/1 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .is-open .oc-suggestion-ribbon{display:none}

#oc-person-concept .oc-cabinet-stage{display:grid;place-items:center;perspective:680px}
#oc-person-concept .oc-cabinet-object{position:relative;width:min(142px,76%);height:min(184px,90%);overflow:hidden;border-radius:7px;background:var(--oc-paper-deep);box-shadow:0 9px 18px var(--oc-shadow);transition:transform .42s ease,margin .42s ease}
#oc-person-concept .oc-cabinet-photo{position:absolute;inset:0;transform:scaleX(-1);background-image:url("../assets/person-page/filing-cabinet.jpg");background-repeat:no-repeat;background-position:center 48%;background-size:cover}
#oc-person-concept .oc-cabinet-stage.is-suggested .oc-cabinet-object{animation:oc-cabinet-invitation 3.2s ease-in-out 1}
#oc-person-concept .oc-cabinet-stage.is-open .oc-cabinet-object{margin-left:-90px;transform:scale(.68);animation:none}

#oc-person-concept .oc-storage-contents{position:absolute;z-index:8;top:7px;right:7px;bottom:7px;width:120px;overflow:hidden;padding:8px;transform:translateX(12px);opacity:0;pointer-events:none;border:1px solid var(--oc-line);border-radius:8px;background:var(--oc-paper);box-shadow:0 7px 15px var(--oc-shadow);transition:transform .35s ease,opacity .25s ease}
#oc-person-concept .is-open>.oc-storage-contents{transform:translateX(0);opacity:1;pointer-events:auto}
#oc-person-concept .is-suggested>.oc-storage-contents{animation:oc-contents-invitation 3.2s ease-in-out 1}
#oc-person-concept .oc-storage-contents strong{display:block;margin-bottom:5px;font-size:11px;font-weight:500}
#oc-person-concept .oc-content-list{list-style:none;margin:0 0 6px;padding:0}
#oc-person-concept .oc-content-list li{overflow:hidden;padding:3px 0;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid color-mix(in srgb,var(--oc-line) 55%,transparent);color:var(--oc-soft);font:9.5px/1.2 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-content-list li.oc-empty-item{white-space:normal}
#oc-person-concept .oc-content-list li.oc-pending-item{white-space:normal;color:var(--oc-sage);font-weight:700}
#oc-person-concept .oc-add-label{margin:5px 0 4px;color:var(--oc-soft);font:9.5px/1 ui-sans-serif,system-ui,sans-serif}
#oc-person-concept .oc-add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
#oc-person-concept .oc-add-grid button{min-width:0;padding:5px 3px;border-radius:5px;font-size:8.5px}

@keyframes oc-memory-invitation{0%,18%,82%,100%{left:50%;transform:translate(-50%,-50%) scale(1)}38%,62%{left:28%;transform:translate(-50%,-50%) scale(.72)}}
@keyframes oc-cabinet-invitation{0%,18%,82%,100%{margin-left:0;transform:scale(1)}38%,62%{margin-left:-90px;transform:scale(.68)}}
@keyframes oc-contents-invitation{0%,22%,78%,100%{transform:translateX(12px);opacity:0}40%,60%{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){#oc-person-concept .is-suggested .oc-memory-object,#oc-person-concept .is-suggested .oc-cabinet-object,#oc-person-concept .is-suggested>.oc-storage-contents{animation:none}}

.oc-person-page>.person-record-details{margin:14px 2px;border:1px solid var(--line);border-radius:15px;background:var(--white);overflow:hidden}
.oc-person-page>.person-record-details>summary{list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--ink);background:var(--paper)}
.oc-person-page>.person-record-details>summary::-webkit-details-marker{display:none}
.oc-person-page>.person-record-details>summary strong{font:500 18px Georgia,serif}
.oc-person-page>.person-record-details>summary span{color:var(--muted);font-size:11px;text-align:right}
.oc-person-page>.person-record-details[open]>summary{border-bottom:1px solid var(--line)}
.oc-person-page>.person-record-details .person-record-grid{padding:18px 18px 0}
.oc-person-page>.person-record-details .profile-evidence-area{padding:0 18px 20px}
.oc-person-page>.person-record-details .profile-clive-note{margin:16px 18px 20px}

@media(max-width:850px){
  #oc-person-concept .oc-main{grid-template-columns:minmax(98px,.48fr) minmax(318px,1.55fr) minmax(190px,.86fr);gap:7px;padding:8px}
  #oc-person-concept .oc-timeline{padding:13px 10px}
  #oc-person-concept .oc-story{padding:12px}
  #oc-person-concept .oc-portrait-row{grid-template-columns:88px minmax(0,1fr);gap:11px}
  #oc-person-concept .oc-portrait{width:88px;height:108px}
  #oc-person-concept .oc-person-name{font-size:23px}
  #oc-person-concept .oc-person-buttons{gap:5px}
  #oc-person-concept .oc-person-buttons button{padding:6px 8px;font-size:10.5px}
  #oc-person-concept .oc-archive-card{padding:9px}
  #oc-person-concept .oc-archive-heading{gap:4px}
  #oc-person-concept .oc-archive-heading h2{font-size:14px}
  #oc-person-concept .oc-status{font-size:9.5px}
  #oc-person-concept .oc-top-actions{margin-right:132px}
  #oc-person-concept .oc-account-name{display:none}
  #oc-person-concept .oc-memory-object{width:138px;height:88px}
  #oc-person-concept .oc-storage-contents{width:106px;padding:6px}
  #oc-person-concept .oc-content-list li{font-size:9px}
  #oc-person-concept .oc-add-grid button{font-size:8px}
}
@media(max-width:590px){
  body.person-route-active .shell{padding:0 4px 14px}
  #oc-person-concept .oc-page{height:auto;min-height:0;overflow:visible}
  body.person-route-active .clive-dock{left:8px;bottom:8px}
  #oc-person-concept .oc-top-actions{margin-right:108px}
  #oc-person-concept .oc-top-actions .oc-account-mark,#oc-person-concept .oc-top-actions .oc-account-name,#oc-person-concept .oc-top-actions button:first-child{display:none}
  #oc-person-concept .oc-main{height:auto;display:flex;flex-direction:column;padding:10px}
  #oc-person-concept .oc-timeline{order:2;max-height:320px;overflow:auto}
  #oc-person-concept .oc-centre{order:1}
  #oc-person-concept .oc-archive-column{order:3;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2,300px)}
  #oc-person-concept .oc-portrait-row{grid-template-columns:88px minmax(0,1fr)}
  #oc-person-concept .oc-portrait{width:88px;height:108px;min-height:0}
  #oc-person-concept .oc-person-buttons{flex-wrap:wrap}
  #oc-person-concept .oc-research-body{grid-template-columns:1fr}
  #oc-person-concept .oc-investigation-hint-list{grid-template-columns:1fr}
  #oc-person-concept .oc-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
