









:root{
  
  --pv-paper:#FFFFFF;
  --pv-band:#EFEFF3;          
  --pv-ink:#0E0E38;
  --pv-body:#3A3A50;
  --pv-muted:#6A6A88;
  --pv-hair:#E2E2EA;
  --pv-rule:#8A8AB0;
  --pv-accent:#2929A0;        
  --pv-on-accent:#FFFFFF;
  --pv-cta-bg:#2929A0; --pv-on-cta:#FFFFFF;   
  --pv-cta-edge:#14146E;      
  --pv-red:#CC0000;           
  --pv-error:#B42318;         

  
  --pv-layer-exp:#072654;
  --pv-layer-con:#5B3DAF;
  --pv-layer-int:#0F8891;
  --pv-layer-4:#21925E;
  --pv-layer-5:#D82618;
  --pv-ghost:#DCDCE6;         

  



  --pv-tint-exp:#D5DAE2; --pv-tint-con:#E8E4F4; --pv-tint-int:#E0F0F1;
  --pv-tint-exp-rule:#B6C0CF; --pv-tint-con-rule:#CEC4EA; --pv-tint-int-rule:#BCDFE1;
  --pv-num-exp:#072654; --pv-num-con:#5B3DAF; --pv-num-int:#0C7078;

  


  
  --pv-focus:#2929A0;         
  --pv-radius:2px;
  --pv-stroke-diagram:1.5px;  



  --pv-disp:"Instrument Serif",Georgia,serif;
  --pv-text:"Newsreader",Georgia,serif;
  --pv-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;

  







  --pv-fs-display:clamp(2.6rem,7.4vw,6rem);     
  --pv-fs-display-split:clamp(2.6rem,4.6vw,4.5rem); 
  --pv-fs-h2:clamp(1.9rem,4vw,2.8rem);
  --pv-fs-h3:clamp(1.5rem,2.4vw,2rem);          
  --pv-fs-card:1.5rem;                          
  --pv-fs-lede:clamp(1.0625rem,1.7vw,1.3125rem);
  --pv-fs-body:1rem;
  --pv-fs-small:.9375rem;
  --pv-fs-meta:.8125rem;
  --pv-fs-micro:.75rem;                         

  
  --pv-ease:cubic-bezier(.22,1,.36,1);
  


  --pv-ease-in:cubic-bezier(.5,0,.75,0);
  --pv-ease-move:cubic-bezier(.45,0,.55,1);
  --pv-ease-pop:cubic-bezier(.34,1.56,.64,1);
  --pv-dur-fast:180ms;
  --pv-dur:320ms;
  --pv-dur-slow:600ms;
  

  --pv-rise:16px;
  --pv-stagger:60ms;
  --pv-rise-far:24px;   

  

  --pv-foot-bg:#0A0A2E;
  --pv-foot-ink:#EEEEF6;
  --pv-foot-body:#C4C4D6;
  --pv-foot-muted:#9A9AB8;
  --pv-foot-hair:#2A2A50;
  --pv-foot-accent:#B4B4F6;
}



@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --pv-paper:#0E1116; --pv-band:#161A21;
  --pv-foot-bg:#1C1F40; --pv-foot-hair:#34375E;
  --pv-ink:#EEEEF6; --pv-body:#C4C4D6; --pv-muted:#8E8EA8;
  --pv-hair:#242833; --pv-rule:#6E6E96;
  --pv-accent:#9A9AF0; --pv-on-accent:#0A0A22;
  --pv-cta-bg:#5252E0; --pv-on-cta:#FFFFFF;   
  --pv-cta-edge:#3A3AA8;
  --pv-red:#FF6B5E; --pv-error:#FF7A70;
  --pv-layer-exp:#0073FF; --pv-layer-con:#C5B1F1; --pv-layer-int:#4DABB2;
  --pv-layer-4:#75D19E; --pv-layer-5:#BD1C0F;
  --pv-ghost:#2C2C31;       
  --pv-focus:#9A9AF0;
  --pv-tint-exp:#0B2340; --pv-tint-con:#2D2353; --pv-tint-int:#0E353B;
  --pv-tint-exp-rule:#1E3D66; --pv-tint-con-rule:#453A72; --pv-tint-int-rule:#1F5058;
  --pv-num-exp:#5AA2FF; --pv-num-con:#C5B1F1; --pv-num-int:#4DABB2;
}}
:root[data-theme="dark"]{
  --pv-paper:#0E1116; --pv-band:#161A21;
  --pv-foot-bg:#1C1F40; --pv-foot-hair:#34375E;
  --pv-ink:#EEEEF6; --pv-body:#C4C4D6; --pv-muted:#8E8EA8;
  --pv-hair:#242833; --pv-rule:#6E6E96;
  --pv-accent:#9A9AF0; --pv-on-accent:#0A0A22;
  --pv-cta-bg:#5252E0; --pv-on-cta:#FFFFFF;   
  --pv-cta-edge:#3A3AA8;
  --pv-red:#FF6B5E; --pv-error:#FF7A70;
  --pv-layer-exp:#0073FF; --pv-layer-con:#C5B1F1; --pv-layer-int:#4DABB2;
  --pv-layer-4:#75D19E; --pv-layer-5:#BD1C0F;
  --pv-ghost:#2C2C31;
  --pv-focus:#9A9AF0;
  --pv-tint-exp:#0B2340; --pv-tint-con:#2D2353; --pv-tint-int:#0E353B;
  --pv-tint-exp-rule:#1E3D66; --pv-tint-con-rule:#453A72; --pv-tint-int-rule:#1F5058;
  --pv-num-exp:#5AA2FF; --pv-num-con:#C5B1F1; --pv-num-int:#4DABB2;
}



















:where(.pv), :where(.pv) *{box-sizing:border-box}








.pv{
  -webkit-text-size-adjust:100%;
  color-scheme:light dark;
  margin:0; background:var(--pv-paper); color:var(--pv-body);
  font-family:var(--pv-text); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}



.pv-surface{background:var(--pv-paper); color:var(--pv-body)}

:where(.pv) h1,:where(.pv) h2,:where(.pv) h3{font-family:var(--pv-disp); color:var(--pv-ink); font-weight:400; letter-spacing:-.02em; line-height:1.2; margin:0; text-wrap:balance}
:where(.pv) h1{font-size:var(--pv-fs-display)}
:where(.pv) h2{font-size:var(--pv-fs-h2)}
:where(.pv) h3{font-size:var(--pv-fs-h3)}
:where(.pv) p{margin:0 0 1.1em}


:where(.pv) a{color:var(--pv-accent)}
:where(.pv) :where(a):focus-visible,:where(.pv) :where(button):focus-visible{outline:2px solid var(--pv-focus); outline-offset:3px; border-radius:var(--pv-radius)}






:where(.pv) .wrap{max-width:1120px; margin:0 auto; padding-inline:clamp(20px,4vw,44px)}
:where(.pv) .eyebrow{
  font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.16em;
  text-transform:uppercase; color:var(--pv-muted); margin:0 0 18px;
}


:where(.pv) header{border-bottom:1px solid var(--pv-hair); background:var(--pv-band)}





:where(.pv) .hd{display:flex; align-items:center; justify-content:space-between; padding-block:22px; gap:20px}
:where(.pv) .mark{font-family:var(--pv-disp); font-size:1.5rem; color:var(--pv-ink); letter-spacing:-.02em; text-decoration:none; white-space:nowrap}
:where(.pv) .mark b{color:var(--pv-accent); font-weight:400}





:where(.pv) :where(.hd) nav{display:flex; gap:clamp(14px,2.4vw,30px); flex-wrap:wrap; min-width:0}
:where(.pv) :where(.hd) nav a{position:relative; font-size:var(--pv-fs-small); color:var(--pv-body); text-decoration:none; padding-bottom:2px}
:where(.pv) :where(.hd) nav a[aria-current]{color:var(--pv-accent)}

:where(.pv) :where(.hd) nav a::after{content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:var(--pv-accent); transform:scaleX(0); transform-origin:left center;
  transition:transform var(--pv-dur) var(--pv-ease)}
:where(.pv) :where(.hd) nav a[aria-current]::after{transform:scaleX(1)}


@media (hover:hover){
  :where(.pv) :where(.hd) nav a:hover{color:var(--pv-accent)}
  :where(.pv) :where(.hd) nav a:hover::after{transform:scaleX(1)}
}


:where(.pv) :where(.hd) nav{position:relative}
:where(.pv) :where(.hd) nav.has-bar a::after{display:none}
:where(.pv) :where(.hd) nav.has-bar a{transition:color 160ms var(--pv-ease) 120ms}
:where(.pv) :where(.hd) nav.has-bar a:not(.on){color:var(--pv-body)}
:where(.pv) :where(.hd) nav.has-bar a.on{color:var(--pv-accent)}
:where(.pv) .nav-bar,:where(.pv) .nav-dot{display:none}
:where(.pv) :where(.hd) nav.has-bar .nav-bar{display:block; position:absolute; left:0; top:0; height:2px; width:100px; margin-top:-1px;
  background:var(--pv-accent); transform-origin:0 0; transform:scaleX(0); pointer-events:none}
:where(.pv) :where(.hd) nav.has-bar .nav-dot{display:block; position:absolute; left:0; top:0; width:12px; height:12px; margin-top:-1px; opacity:0; pointer-events:none;
  background:radial-gradient(circle, var(--pv-accent) 0 2.2px, color-mix(in srgb, var(--pv-accent) 28%, transparent) 2.8px, transparent 6px)}

:where(.pv) .skip{position:absolute; left:12px; top:-80px; z-index:70; padding:10px 14px; font-family:var(--pv-mono); font-size:.875rem;
  color:var(--pv-on-accent); background:var(--pv-accent); border-radius:var(--pv-radius); text-decoration:none}

:where(.pv) .skip:focus-visible{top:12px}


:where(.pv) .hero{padding-block:clamp(64px,11vw,132px) clamp(40px,6vw,70px)}
:where(.pv) .hero h1{max-width:15ch}
:where(.pv) .lede{font-size:var(--pv-fs-lede); color:var(--pv-body); max-width:52ch; margin-top:26px}
:where(.pv) .cue{margin-top:40px; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-muted); display:flex; align-items:center; gap:10px}
:where(.pv) .cue span{display:block; width:44px; height:1px; background:var(--pv-rule)}


:where(.pv) .drawing-sec{padding-block:clamp(30px,6vw,60px) clamp(60px,9vw,110px)}
:where(.pv) .figure{border:1px solid var(--pv-hair); border-radius:var(--pv-radius); background:var(--pv-paper); overflow:hidden}





:where(.pv) .figure:empty{min-height:min(56vw,420px); display:grid; place-items:center; padding:24px}
:where(.pv) .figure:empty::before{
  

  content:"The room drawing has not loaded. Please reload the page.";
  max-width:34ch; text-align:center; font-size:var(--pv-fs-small); color:var(--pv-muted);
}
:where(.pv) .figure[data-failed]:empty::before{content:"This room drawing did not load. Please tell us and we will fix it."}
:where(.pv) .figure-hd{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:14px 18px; border-bottom:1px solid var(--pv-hair); flex-wrap:wrap}
:where(.pv) .figure-hd .t{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-ink)}
:where(.pv) .figure-hd .n{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-muted)}

:where(.pv) .ntrace{color:var(--pv-accent); font-weight:500}
:where(.pv) .scroll{overflow-x:auto; -webkit-overflow-scrolling:touch}   
:where(.pv) svg.dwg{display:block; width:100%; height:auto}   









:where(.pv) .fig-strip svg.dwg, :where(.pv) .dwgview-art svg.dwg{min-width:980px}   
:where(.pv) .fig-full{position:relative}
:where(.pv) .fig-full[data-more]::after{
  content:""; position:absolute; inset-block:0; right:0; width:48px; pointer-events:none;
  background:linear-gradient(to right, rgba(0,0,0,0), color-mix(in srgb, var(--pv-ink) 12%, transparent));
}
:where(.pv) .stripcue{display:none; flex-basis:100%; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-accent)}
:where(.pv) .figure:has(.fig-full[data-scrollable]) .stripcue{display:block}





:where(.pv) .dwgview{position:fixed; inset:0; z-index:90; background:var(--pv-paper); color:var(--pv-body); overflow-y:auto; overscroll-behavior:contain}
:where(.pv) .dwgview-hd{display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:12px 16px; border-bottom:1px solid var(--pv-hair);
  font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-ink);
  position:sticky; top:0; background:var(--pv-paper); z-index:1}
:where(.pv) .dwgview-x{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); background:none;
  border:1px solid var(--pv-rule); border-radius:var(--pv-radius); color:var(--pv-accent);
  padding:10px 14px; min-height:44px; cursor:pointer}
:where(.pv) .dwgview-hint{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-accent); margin:12px 16px 6px}
:where(.pv) .dwgview-art{padding:0 8px}
:where(.pv) .dwgview-list{padding:4px 16px 28px}
:where(.pv) .dwgview-lh{font-family:var(--pv-mono); font-size:var(--pv-fs-micro); letter-spacing:.14em;
  text-transform:uppercase; color:var(--pv-muted); margin:18px 0 4px}
:where(.pv) .dwgview-list ul{list-style:none; margin:0; padding:0; font-size:var(--pv-fs-small)}
:where(.pv) .dwgview-list li{display:grid; grid-template-columns:5.5em 1fr auto; gap:10px;
  padding:10px 0; border-top:1px solid var(--pv-hair); align-items:baseline}
:where(.pv) .dwgview-list b{font-family:var(--pv-mono); font-weight:400; font-size:.875rem; color:var(--pv-ink)}
:where(.pv) .dwgview-u{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-muted)}





:where(.pv) .fig-simple{display:none; padding:6px 10px 0}






:where(.pv) .fig-simple svg.dwg{max-width:380px; margin-inline:auto}

:where(.pv) .swapwrap{display:none; padding:12px 18px}
:where(.pv) .swap{
  font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em;
  background:none; border:1px solid var(--pv-rule); border-radius:var(--pv-radius);
  color:var(--pv-accent); padding:11px 14px; cursor:pointer; min-height:44px; width:100%;
}
@media (hover:hover){ :where(.pv) .swap:hover{border-color:var(--pv-accent)} }
@media (max-width:720px){
  :where(.pv) .fig-simple{display:block}
  :where(.pv) .fig-full{display:none}
  :where(.pv) .swapwrap{display:block}
  


}

:where(.pv) .legend{display:flex; flex-wrap:wrap; gap:6px 26px; padding:14px 18px; border-top:1px solid var(--pv-hair)}
:where(.pv) .lg{display:flex; align-items:center; gap:9px; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); color:var(--pv-body)}
:where(.pv) .lg svg{flex:0 0 auto}
:where(.pv) .lg-ctl{display:inline-flex; align-items:center; margin-left:auto}   
:where(.pv) .caption{padding:0 18px 16px; font-size:.875rem; color:var(--pv-muted); max-width:72ch}


:where(.pv) .layers{background:var(--pv-band); border-top:1px solid var(--pv-hair); border-bottom:1px solid var(--pv-hair); padding-block:clamp(56px,8vw,96px)}


:where(.pv) footer{padding-block:clamp(48px,7vw,84px); font-size:var(--pv-fs-small); color:var(--pv-muted)}
:where(.pv) footer a{color:var(--pv-accent)}


@media (max-width:720px){
  :where(.pv) .lede{font-size:1.0625rem}
  :where(.pv) .legend{gap:8px 18px}
}


@media (prefers-reduced-motion:reduce){ :where(.pv), :where(.pv) *{animation:none!important; transition:none!important} }






:where(.pv) .hero-sub{padding-block:clamp(52px,8vw,92px) clamp(24px,3vw,36px)}
:where(.pv) .hero-sub h1{max-width:18ch}

:where(.pv) .roomnav{display:flex; flex-wrap:wrap; gap:8px 10px; padding-block:6px 4px}
:where(.pv) .roomnav a{
  font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em;
  color:var(--pv-body); text-decoration:none; padding:9px 13px; min-height:40px;
  display:inline-flex; align-items:center;
  border:1px solid var(--pv-rule); border-radius:var(--pv-radius);   
  transition:border-color var(--pv-dur) var(--pv-ease), color var(--pv-dur) var(--pv-ease), transform var(--pv-dur) var(--pv-ease);
}
:where(.pv) .roomnav a:active{transform:scale(.985)}
@media (hover:hover){ :where(.pv) .roomnav a:hover{border-color:var(--pv-accent); color:var(--pv-accent)} }

:where(.pv) .room{padding-block:clamp(44px,7vw,84px)}
:where(.pv) .room.band{background:var(--pv-band); border-block:1px solid var(--pv-hair);
  max-width:none; padding-inline:0}







:where(.pv) .room.band > *{
  width:min(1032px, calc(100% - 2 * clamp(20px,4vw,44px)));
  margin-inline:auto;
}
:where(.pv) .room-hd{margin-bottom:clamp(24px,3vw,36px)}
:where(.pv) .room-hd h2{margin-bottom:14px}
:where(.pv) .brief{font-size:var(--pv-fs-lede); max-width:56ch; margin:0}

:where(.pv) .decisions{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(22px,3vw,40px); margin-top:clamp(28px,4vw,44px);
}


@media (max-width:900px){ :where(.pv) .decisions{grid-template-columns:1fr} :where(.pv) .decision > *{max-width:62ch} }   
:where(.pv) .decision{border-top:2px solid var(--pv-rule); padding-top:16px}
:where(.pv) .decision h3{font-size:var(--pv-fs-card); line-height:1.15; margin-bottom:12px; text-wrap:balance}
:where(.pv) .decision p{font-size:var(--pv-fs-body); margin:0 0 .85em}
:where(.pv) .decision p:last-child{margin-bottom:0}
:where(.pv) .cost{color:var(--pv-muted)}
:where(.pv) .costlab{
  font-family:var(--pv-mono); font-size:var(--pv-fs-micro); letter-spacing:.12em;
  text-transform:uppercase; color:var(--pv-accent); display:block; margin-bottom:3px;
}

:where(.pv) .closing{padding-block:clamp(56px,8vw,104px) clamp(20px,3vw,32px)}
:where(.pv) .closing h2{max-width:16ch}
:where(.pv) .cta{
  display:inline-flex; align-items:center; min-height:44px; padding:12px 20px;
  font-family:var(--pv-text); font-weight:500; font-size:var(--pv-fs-body); text-decoration:none;   
  color:var(--pv-on-cta); background:var(--pv-cta-bg);
  border-radius:var(--pv-radius);
  transition:transform var(--pv-dur) var(--pv-ease), filter var(--pv-dur) var(--pv-ease);
}

:where(.pv) .cta::after{content:"\2192"; display:inline-block; margin-left:.5em; transition:transform var(--pv-dur) var(--pv-ease)}
@media (hover:hover){
  :where(.pv) .cta:hover{filter:brightness(1.1)}
  :where(.pv) .cta:hover::after{transform:translateX(4px)}
}

@media (max-width:720px){
  :where(.pv) .decision h3{font-size:1.375rem}   
}





:where(.pv) .sec{padding-block:clamp(44px,7vw,84px)}
:where(.pv) .sec h2{max-width:22ch}
:where(.pv) .pullq{background:var(--pv-band); border-block:1px solid var(--pv-hair); padding-block:clamp(56px,8vw,100px)}
:where(.pv) .pullq figure{margin:0}
:where(.pv) .pullq blockquote{margin:0}



:where(.pv) .pullq blockquote p{
  font-family:var(--pv-disp); font-size:var(--pv-fs-h3); font-style:italic; line-height:1.28;
  letter-spacing:-.02em; color:var(--pv-ink); max-width:34ch; margin:0; text-wrap:balance;
}
:where(.pv) .pullq figcaption{margin-top:22px; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.16em; text-transform:uppercase; color:var(--pv-muted)}
:where(.pv) .pullq .after{margin:34px 0 0; max-width:56ch; font-size:var(--pv-fs-lede)}





:where(.pv) .stages{
  --pv-trace:0;
  list-style:none; margin:clamp(28px,4vw,44px) 0 0; padding:0; position:relative;
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:clamp(18px,2.4vw,30px);
}
:where(.pv) .stages::before,:where(.pv) .stages::after{content:""; position:absolute; left:6px; right:6px; top:5px; height:2px}
:where(.pv) .stages::before{background:var(--pv-hair)}
:where(.pv) .stages::after{background:var(--pv-accent); transform:scaleX(var(--pv-trace)); transform-origin:left center}




:where(.pv) .stages{row-gap:0}
:where(.pv) .stage{position:relative; padding-top:30px; display:grid; grid-row:span 4; grid-template-rows:subgrid}
:where(.pv) .stage .node{
  position:absolute; top:0; left:0; width:12px; height:12px; z-index:1;
  background:var(--pv-paper); border:2px solid var(--pv-rule); border-radius:var(--pv-radius);
  transition:background-color .25s, border-color .25s;
}
:where(.pv) .stage[data-on] .node{background:var(--pv-accent); border-color:var(--pv-accent)}
:where(.pv) .stage .n{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-muted); margin:0 0 6px}
:where(.pv) .stage h3{font-size:var(--pv-fs-card); line-height:1.15; margin-bottom:12px}
:where(.pv) .stage p{font-size:var(--pv-fs-body); margin:0 0 .85em}
:where(.pv) .stage .cost{margin:0}
:where(.pv) .creds{grid-template-columns:repeat(4,minmax(0,1fr))}

@media (max-width:900px){ :where(.pv) .creds{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ :where(.pv) .creds{grid-template-columns:1fr} }


@media (max-width:900px){
  :where(.pv) .stages{grid-template-columns:1fr; gap:28px}
  :where(.pv) .stages::before,:where(.pv) .stages::after{left:5px; right:auto; top:6px; bottom:6px; width:2px; height:auto}
  :where(.pv) .stages::after{transform:scaleY(var(--pv-trace)); transform-origin:center top}
  :where(.pv) .stage{padding-top:0; padding-left:34px; display:block}   
}








:where(.pv) .lt-exp{--pv-lt-bg:var(--pv-tint-exp); --pv-lt-rule:var(--pv-tint-exp-rule); --pv-lt-num:var(--pv-num-exp); --pv-lt-top:var(--pv-layer-exp)}
:where(.pv) .lt-con{--pv-lt-bg:var(--pv-tint-con); --pv-lt-rule:var(--pv-tint-con-rule); --pv-lt-num:var(--pv-num-con); --pv-lt-top:var(--pv-layer-con)}
:where(.pv) .lt-int{--pv-lt-bg:var(--pv-tint-int); --pv-lt-rule:var(--pv-tint-int-rule); --pv-lt-num:var(--pv-num-int); --pv-lt-top:var(--pv-layer-int)}
:where(.pv) .ltiles{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:44px; border-radius:var(--pv-radius); overflow:hidden}

@media (max-width:760px){ :where(.pv) .ltiles{grid-template-columns:1fr} }


:where(.pv) .ltile{position:relative; background:var(--pv-lt-bg); border-top:3px solid transparent; padding:clamp(24px,3vw,36px)}
:where(.pv) .ltile::before{content:""; position:absolute; left:0; right:0; top:-3px; height:3px; background:var(--pv-lt-top);
  transform-origin:left center; transition:transform var(--pv-dur-slow) var(--pv-ease)}
:where(.pv) .ltiles[data-trace] .ltile:not([data-on])::before{transform:scaleX(0)}
:where(.pv) .ltile .n,:where(.pv) .stratum .n{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-lt-num); margin:0 0 36px}
:where(.pv) .ltile h3{margin:0 0 10px}
:where(.pv) .ltile p:last-child{font-size:var(--pv-fs-small); margin:0}

:where(.pv) .strata{list-style:none; margin:clamp(28px,4vw,44px) 0 0; padding:0; border-radius:var(--pv-radius); overflow:hidden}
:where(.pv) .stratum{position:relative; background:var(--pv-lt-bg); display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(20px,4vw,56px); padding:clamp(30px,4.4vw,56px) clamp(22px,4vw,48px)}



:where(.pv) .stratum::before{content:""; position:absolute; left:0; right:0; top:0; height:3px; background:var(--pv-lt-top);
  transform-origin:left center; transition:transform var(--pv-dur-slow) var(--pv-ease)}
:where(.pv) .strata[data-trace] .stratum:not([data-on])::before{transform:scaleX(0)}
:where(.pv) .stratum .n{margin-bottom:12px}
:where(.pv) .stratum h3{font-size:var(--pv-fs-h2); margin:0 0 12px}
:where(.pv) .stratum .promise{font-family:var(--pv-disp); font-style:italic; font-size:var(--pv-fs-lede); line-height:1.3; color:var(--pv-ink); margin:0; max-width:24ch}
:where(.pv) .stratum ul{list-style:none; margin:0; padding:0; columns:2 220px; column-gap:32px}
:where(.pv) .stratum li{font-size:var(--pv-fs-small); padding:9px 0; border-top:1px solid var(--pv-lt-rule); break-inside:avoid}



:where(.pv) .areas{grid-template-columns:repeat(5,minmax(0,1fr))}


@media (max-width:1000px){ :where(.pv) .areas{grid-template-columns:repeat(6,minmax(0,1fr))} :where(.pv) .areas > *{grid-column:span 2} :where(.pv) .areas > :nth-child(n+4){grid-column:span 3} }
@media (max-width:560px){ :where(.pv) .areas{grid-template-columns:1fr} :where(.pv) .areas > *, :where(.pv) .areas > :nth-child(n+4){grid-column:auto} }




:where(.pv) .spaces{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 28px;
  list-style:none; margin:18px 0 0; padding:0}
:where(.pv) .spaces li{position:relative; padding-left:22px; font-family:var(--pv-text); font-size:var(--pv-fs-body);
  color:var(--pv-body)}
:where(.pv) .spaces li::before{content:""; position:absolute; left:2px; top:.55em; width:7px; height:7px;
  background:var(--pv-rule); border-radius:1px}
@media (max-width:760px){ :where(.pv) .spaces{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:460px){ :where(.pv) .spaces{grid-template-columns:1fr} }
:where(.pv) .spaces-note{margin-top:clamp(28px,4vw,40px); max-width:60ch}


:where(.pv) .names{display:grid; grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr)); gap:6px 24px;
  margin:18px 0 0; max-width:none; font-size:var(--pv-fs-body); line-height:1.5; color:var(--pv-body)}
:where(.pv) .names span:last-child{color:var(--pv-muted); font-style:italic}

@media (max-width:480px){ :where(.pv) .names{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr))} }
:where(.pv) .plats{font-family:var(--pv-disp); font-size:var(--pv-fs-h3); line-height:1.35; color:var(--pv-ink); margin:14px 0 0}
:where(.pv) .plats span{white-space:nowrap}
:where(.pv) .plats span:not(:last-child)::after{content:"·"; color:var(--pv-rule); padding:0 .05em 0 .3em}
@media (max-width:720px){ :where(.pv) .stratum{grid-template-columns:1fr} }

@media (prefers-reduced-motion:reduce){ :where(.pv) .stratum::before{transition:none} }







:where(.pv) .chain{
  --pv-trace:0;
  display:grid; grid-template-columns:minmax(0,1fr) 72px minmax(0,1.4fr) 72px minmax(0,1fr);
  margin-top:clamp(32px,4.4vw,52px);
}
:where(.pv) .cnode{border:1px solid var(--pv-rule); border-radius:var(--pv-radius); background:var(--pv-paper);
  padding:16px 18px; transition:border-color .3s, background-color .4s}
:where(.pv) .cnode .clab{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-muted); margin:0 0 6px; transition:color .4s}
:where(.pv) .cnode .cname{font-size:var(--pv-fs-body); line-height:1.4; color:var(--pv-ink); margin:0; text-wrap:pretty; transition:color .4s}



:where(.pv) .chain > .end,:where(.pv) .chain > .us{align-self:stretch; display:flex; flex-direction:column; justify-content:center}
:where(.pv) .croutes{display:grid}
:where(.pv) .croutes .cnode{display:flex; flex-direction:column; justify-content:center}
:where(.pv) .or-cap{display:none}
:where(.pv) .fan{position:relative}
:where(.pv) .fan svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible}
:where(.pv) .fan path{fill:none; stroke-width:2; vector-effect:non-scaling-stroke}
:where(.pv) .fbase path{stroke:var(--pv-hair)}
:where(.pv) .fdraw path{stroke:var(--pv-accent)}


:where(.pv) .fan-out{--pv-trace-p:clamp(0, var(--pv-trace) * 2, 1)}
:where(.pv) .fan-in{--pv-trace-p:clamp(0, (var(--pv-trace) - .5) * 2, 1)}
:where(.pv) .fdraw{clip-path:inset(0 calc((1 - var(--pv-trace-p)) * 100%) 0 0)}
:where(.pv) .chain > .end[data-on],:where(.pv) .croutes[data-on] .cnode{border-color:var(--pv-accent)}

:where(.pv) .chain > .us{border-width:2px}
:where(.pv) .chain > .us[data-on]{background:var(--pv-accent); border-color:var(--pv-accent)}
:where(.pv) .chain > .us[data-on] .clab,:where(.pv) .chain > .us[data-on] .cname{color:var(--pv-on-accent)}
:where(.pv) .chain-note{margin:clamp(22px,3vw,32px) 0 0; font-size:var(--pv-fs-lede); max-width:56ch}



@media (max-width:900px){
  :where(.pv) .chain{grid-template-columns:1fr; position:relative; padding-left:26px}
  :where(.pv) .chain::before,:where(.pv) .chain::after{content:""; position:absolute; left:5px; top:24px; bottom:24px; width:2px}
  :where(.pv) .chain::before{background:var(--pv-hair)}
  :where(.pv) .chain::after{background:var(--pv-accent); transform:scaleY(var(--pv-trace)); transform-origin:center top}
  :where(.pv) .fan{display:none}
  :where(.pv) .croutes{grid-template-rows:none; gap:10px; margin-block:14px}
  :where(.pv) .croutes .cnode{margin:0}
  :where(.pv) .or-cap{display:block; font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-muted); margin:6px 0 0}
}
@media (prefers-reduced-motion:reduce){ :where(.pv) .cnode,:where(.pv) .cnode .clab,:where(.pv) .cnode .cname{transition:none} }

:where(.pv) .pullq .after a{font-family:var(--pv-mono); font-size:.875rem}

:where(.pv) .close-about h2{max-width:none}
:where(.pv) .close-about h2 span{display:block}
:where(.pv) .close-links{display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:28px}
:where(.pv) .close-links .more{font-family:var(--pv-mono); font-size:.875rem}
:where(.pv) .routes-sec h2{text-wrap:balance}





:where(.pv) .contact-sec{padding-top:clamp(12px,2vw,24px)}
:where(.pv) .contact-grid{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:clamp(32px,6vw,88px); align-items:start}
@media (max-width:820px){ :where(.pv) .contact-grid{grid-template-columns:1fr} }
:where(.pv) .cform{max-width:600px}
:where(.pv) .field{margin-bottom:22px}
:where(.pv) .field label{display:block; font-family:var(--pv-text); font-weight:500; font-size:var(--pv-fs-body); color:var(--pv-ink); margin-bottom:8px}   
:where(.pv) .field input,:where(.pv) .field textarea{
  display:block; width:100%; font-family:var(--pv-text); font-size:var(--pv-fs-body); line-height:1.5; color:var(--pv-ink);
  background:var(--pv-paper); border:1px solid var(--pv-rule); border-radius:var(--pv-radius); padding:12px 14px;
}
:where(.pv) .field textarea{resize:vertical; min-height:132px}
:where(.pv) .field input:focus-visible,:where(.pv) .field textarea:focus-visible{outline:2px solid var(--pv-focus); outline-offset:1px; border-color:var(--pv-accent)}
:where(.pv) .field [aria-invalid="true"]{border-color:var(--pv-error); border-width:2px}

:where(.pv) .field [aria-invalid="true"]:focus-visible{border-color:var(--pv-error)}
:where(.pv) .hint{font-size:.875rem; color:var(--pv-muted); margin:6px 0 0}
:where(.pv) .ferr{font-size:var(--pv-fs-small); color:var(--pv-ink); border-left:2px solid var(--pv-error); padding-left:12px}
:where(.pv) .cta:where(button){border:0; cursor:pointer}

:where(.pv) .cdone:focus{outline:none}
:where(.pv) .cdone:focus-visible{outline:2px solid var(--pv-focus); outline-offset:8px}
:where(.pv) .opt{color:var(--pv-muted)}
:where(.pv) .fmsg{font-size:var(--pv-fs-small); color:var(--pv-ink); margin:8px 0 0; padding-left:12px; border-left:2px solid var(--pv-error)}

:where(.pv) .fmsg::before,:where(.pv) .ferr::before{content:"!"; display:inline-grid; place-items:center; width:1.15em; height:1.15em; margin-right:.5em;
  border-radius:50%; background:var(--pv-error); color:var(--pv-paper); font-family:var(--pv-mono); font-weight:500; font-size:.85em; vertical-align:.08em}

:where(.pv) .cdone h2{margin-bottom:12px}
:where(.pv) .cdone .lede{text-wrap:balance}   
:where(.pv) .cdetails{border-top:2px solid var(--pv-rule); padding-top:20px}
:where(.pv) .cd{margin-bottom:24px}
:where(.pv) .cd .eyebrow{margin-bottom:6px}
:where(.pv) .cval{font-family:var(--pv-disp); font-size:var(--pv-fs-h3); line-height:1.2; color:var(--pv-ink); margin:0; overflow-wrap:anywhere}

:where(.pv) :where(.cval a){text-decoration-thickness:1px; text-underline-offset:4px}
:where(.pv) .cexisting{font-size:var(--pv-fs-small); color:var(--pv-body); margin:0; max-width:36ch}
:where(.pv) .cert-note{margin-top:18px; max-width:56ch}



:where(.pv) .home-hero{padding-block:44px 16px}
:where(.pv) .home-drawing{padding-block:0px clamp(20px,3vw,32px)}
:where(.pv) .home-hero .cue{margin-top:12px}

:where(.pv) .home-hero .home-identity{margin-top:0; margin-bottom:22px; color:var(--pv-body); align-items:flex-start}
:where(.pv) .home-identity > span:first-child{margin-top:1em}



:where(.pv) .home-identity .idn-items{display:flex; flex-wrap:wrap; column-gap:1.08em; row-gap:.6em;
  width:auto; height:auto; background:none; overflow:hidden; padding-block:.25em}
:where(.pv) .home-identity .idn-item{display:inline; width:auto; max-width:100%; min-width:0;
  height:auto; background:none; position:relative}
:where(.pv) .home-identity .idn-item:not(:first-child)::before{content:"·"; content:"·" / ""; position:absolute;
  left:-.84em; top:0; color:inherit}


:where(.pv) .home-identity .idn-break{flex-basis:100%; height:0}

:where(.pv) .home-identity .idn-items:has(.idn-break){row-gap:.3em}

:where(.pv) .home-identity .idn-sep-sr{position:absolute; width:1px; height:1px; margin:-1px;
  padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}








:root{
  --pv-card-pad:clamp(20px,2.2vw,28px);
  --pv-icon:56px;  
  --pv-card-gap:clamp(14px,1.8vw,22px);
}



:where(.pv) .dcards{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--pv-card-gap);
  list-style:none; margin:0; padding:0; counter-reset:dcard}
@media (max-width:900px){ :where(.pv) .dcards{grid-template-columns:1fr} }
:where(.pv) .dcards.dcards-4{grid-template-columns:repeat(2,minmax(0,1fr))}   
:where(.pv) .dcards-4 .dcard.has-icon::before{content:counter(dcard,decimal-leading-zero)}   
@media (max-width:900px){ :where(.pv) .dcards.dcards-4{grid-template-columns:1fr} }
:where(.pv) .dcard{counter-increment:dcard; position:relative; display:flex; flex-direction:column;
  background:var(--pv-band); border-top:2px solid transparent;   
  border-radius:var(--pv-radius); padding:var(--pv-card-pad)}



:where(.pv) .dcard::after{content:""; position:absolute; left:0; right:0; top:-2px; height:2px; background:var(--pv-accent);
  border-radius:var(--pv-radius) var(--pv-radius) 0 0; transform-origin:left center; transition:transform var(--pv-dur-slow) var(--pv-ease)}
:where(.pv) .dcards[data-trace] .dcard:not([data-on])::after{transform:scaleX(0)}
:where(.pv) .room.band .dcard, :where(.pv) .layers .dcard{background:var(--pv-paper)}
:where(.pv) .dcard::before{content:counter(dcard,decimal-leading-zero); font-family:var(--pv-mono);
  font-size:var(--pv-fs-meta); letter-spacing:.04em; color:var(--pv-accent); margin-bottom:14px}
:where(.pv) .dcard h3{font-size:var(--pv-fs-card); line-height:1.15; margin:0 0 12px; text-wrap:balance}
:where(.pv) .dcard .dwhy{font-size:var(--pv-fs-body); margin:0 0 18px; max-width:40ch}
:where(.pv) .dcard .cost{margin:auto 0 0; padding-top:14px; border-top:1px dashed var(--pv-rule);
  font-size:var(--pv-fs-small)}
@media (max-width:720px){ :where(.pv) .dcard h3{font-size:1.375rem} }


:where(.pv) .sec h2 + .dcards{margin-top:clamp(28px,4vw,44px)}


:where(.pv) .dcard.has-icon::before{content:none}
:where(.pv) .dicon{width:var(--pv-icon); height:var(--pv-icon); margin-bottom:16px; color:var(--pv-accent)}
:where(.pv) .dicon *{fill:none; stroke:currentColor; stroke-width:var(--pv-stroke-diagram); stroke-linecap:square; stroke-linejoin:miter}
:where(.pv) .dicon .fill{fill:currentColor; stroke:none}




:where(.pv) .dicon *{vector-effect:non-scaling-stroke}
:where(.pv) .dicon .bx{fill:var(--pv-band); stroke:var(--pv-rule); stroke-width:1.25}
:where(.pv) .dicon .un{fill:var(--pv-paper); stroke:var(--pv-rule); stroke-width:1.25}
:where(.pv) .dicon .rk{stroke:var(--pv-rule); stroke-width:1.25}
:where(.pv) .dicon .zn{stroke:var(--pv-rule); stroke-width:1; stroke-dasharray:2 1.5}
:where(.pv) .dicon .c-vid,:where(.pv) .dicon .c-net,:where(.pv) .dicon .c-aud,:where(.pv) .dicon .c-ctl{stroke:currentColor; stroke-width:1.5; stroke-linecap:butt}
:where(.pv) .dicon .c-net{stroke-dasharray:3.5 1.75}
:where(.pv) .dicon .c-aud{stroke-dasharray:4.5 1.5 1.25 1.5}
:where(.pv) .dicon .c-ctl{stroke-dasharray:1.1 2.1}
:where(.pv) .dicon .tx{stroke:var(--pv-rule); stroke-width:1.25}
:where(.pv) .dicon .tx.tag{stroke:currentColor; stroke-width:2}
:where(.pv) .dicon .chk{stroke:currentColor; stroke-width:1.5; stroke-linecap:square}
:where(.pv) .dicon .lit{fill:color-mix(in srgb, var(--pv-accent) 14%, var(--pv-paper)); stroke:var(--pv-accent)}


:where(.pv) .room-hd .brief{max-width:44ch}


:where(.pv) .stage .sline{font-size:var(--pv-fs-body); margin:0 0 .85em; max-width:28ch}


:where(.pv) .badges{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--pv-card-gap);
  list-style:none; margin:clamp(24px,3vw,36px) 0 0; padding:0}
@media (max-width:900px){ :where(.pv) .badges{grid-template-columns:repeat(2,minmax(0,1fr))} }
:where(.pv) .badge{background:var(--pv-paper); border:1px solid var(--pv-hair); border-radius:var(--pv-radius);
  padding:var(--pv-card-pad)}
:where(.pv) .badge .code{font-family:var(--pv-disp); font-size:var(--pv-fs-h2); line-height:1; color:var(--pv-ink); margin:0 0 12px}

:where(.pv) .badge-hd{display:flex; align-items:center; gap:14px; margin:0 0 12px}
:where(.pv) .badge-hd .code{margin:0}
:where(.pv) .badge-logo{width:56px; height:56px; flex:none; display:block}
:where(.pv) .badge-hd .code{white-space:nowrap}
@media (max-width:560px){ :where(.pv) .badge-hd{flex-direction:column; align-items:flex-start; gap:10px} :where(.pv) .badge-logo{width:44px; height:44px} }
:where(.pv) .badge .what{font-size:var(--pv-fs-small); color:var(--pv-body); margin:0}


:where(.pv) .areas.acards .decision{border-top:2px solid var(--pv-rule); padding-top:18px}
:where(.pv) .areas .dicon{color:var(--pv-ink)}
:where(.pv) .aitems{list-style:none; margin:0; padding:0}
:where(.pv) .aitems li{font-size:var(--pv-fs-small); padding:7px 0; border-top:1px solid var(--pv-hair)}
:where(.pv) .aitems li:first-child{border-top:0; padding-top:0}


:where(.pv) .more-names{margin-top:14px}
:where(.pv) .more-names > summary{display:inline-flex; align-items:center; gap:10px; min-height:44px; cursor:pointer;
  font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.02em; color:var(--pv-accent);
  list-style:none}
:where(.pv) .more-names > summary::-webkit-details-marker{display:none}
:where(.pv) .more-names > summary::before{content:"+"; display:inline-grid; place-items:center; width:22px; height:22px;
  border:1px solid var(--pv-rule); border-radius:var(--pv-radius)}
:where(.pv) .more-names[open] > summary::before{content:"\2212"}
:where(.pv) .more-names .names{margin-top:6px}

:where(.pv) .names.names-first span:last-child{color:var(--pv-body); font-style:normal}



:where(.pv) .mark-h3{display:flex; align-items:center; gap:10px}
:where(.pv) .mark-h3 .mark-mono{height:30px; width:auto}
:where(.pv) .mark-h3 .mark-word{font-family:var(--pv-disp); font-size:1.5rem; color:var(--pv-ink); letter-spacing:-.02em; white-space:nowrap; line-height:1}

:where(.pv) .logo-dark{display:none}
:root[data-theme="dark"] :where(.pv) .logo-light{display:none}
:root[data-theme="dark"] :where(.pv) .logo-dark{display:inline-block}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) :where(.pv) .logo-light{display:none}
  :root:not([data-theme="light"]) :where(.pv) .logo-dark{display:inline-block}
}


:where(.pv) .pv-header{position:sticky; top:0; z-index:55;
  transition:background-color var(--pv-dur) var(--pv-ease), border-color var(--pv-dur) var(--pv-ease)}
:where(.pv) .pv-header .hd{transition:padding var(--pv-dur) var(--pv-ease)}
:where(.pv) .pv-header.is-scrolled{background:color-mix(in srgb, var(--pv-band) 86%, transparent);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom-color:var(--pv-rule)}
:where(.pv) .pv-header.is-scrolled .hd{padding-block:12px}
:where(.pv) .hd-end{display:flex; align-items:center; gap:22px; min-width:0}


:where(.pv) .theme-pill{display:inline-flex; align-items:center; flex:0 0 auto; padding:2px; gap:0;
  border:1px solid var(--pv-hair); border-radius:999px;
  background:color-mix(in srgb, var(--pv-paper) 60%, transparent);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px)}

:where(.pv) .theme-pill button{display:inline-flex; align-items:center; gap:5px; min-height:24px; padding:3px 8px;
  border:0; border-radius:999px; background:none; cursor:pointer;
  font-family:var(--pv-text); font-size:var(--pv-fs-micro); line-height:1; color:var(--pv-muted);
  transition:background-color var(--pv-dur) var(--pv-ease), color var(--pv-dur) var(--pv-ease)}
:where(.pv) .theme-pill button[aria-pressed="true"]{background:color-mix(in srgb, var(--pv-ink) 10%, var(--pv-paper)); color:var(--pv-ink)}
@media (hover:hover){ :where(.pv) .theme-pill button[aria-pressed="false"]:hover{color:var(--pv-body)} }
:where(.pv) .theme-pill svg{width:11px; height:11px}



:where(.pv) .menu-btn{display:none; align-items:center; justify-content:center; width:36px; height:36px; flex:0 0 auto;
  background:none; border:1px solid color-mix(in srgb, var(--pv-rule) 45%, transparent); border-radius:8px; cursor:pointer; color:var(--pv-ink)}
:where(.pv) .menu-btn .bars{position:relative; width:14px; height:10px}
:where(.pv) .menu-btn .bars span{position:absolute; inset-inline:0; height:1.25px; background:currentColor;
  transition:transform var(--pv-dur) var(--pv-ease), opacity var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) .menu-btn .bars span:nth-child(1){top:0}
:where(.pv) .menu-btn .bars span:nth-child(2){top:calc(50% - .625px)}
:where(.pv) .menu-btn .bars span:nth-child(3){bottom:0}
:where(.pv) .menu-btn[aria-expanded="true"] .bars span:nth-child(1){transform:translateY(4.4px) rotate(45deg)}
:where(.pv) .menu-btn[aria-expanded="true"] .bars span:nth-child(2){opacity:0}
:where(.pv) .menu-btn[aria-expanded="true"] .bars span:nth-child(3){transform:translateY(-4.4px) rotate(-45deg)}




:where(.pv) .menu-panel{position:absolute; left:0; right:0; top:100%; overflow:hidden}
:where(.pv) .menu-panel[hidden]{display:none}
:where(.pv) .menu-panel .wrap{display:flex; flex-direction:column; padding-block:6px 14px; background:var(--pv-paper);
  border-bottom:1px solid var(--pv-rule); animation:pv-menu-drop 420ms var(--pv-ease) both}
:where(.pv) .menu-panel a{position:relative; display:flex; align-items:center; min-height:52px;
  font-family:var(--pv-disp); font-size:var(--pv-fs-h3); line-height:1.1; color:var(--pv-ink); text-decoration:none;
  animation:pv-menu-item 380ms var(--pv-ease) both}
:where(.pv) .menu-panel a::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--pv-hair);
  transform-origin:left center; animation:pv-menu-line 320ms var(--pv-ease) both}
:where(.pv) .menu-panel a:last-child::after{display:none}
:where(.pv) .menu-panel a[aria-current]{color:var(--pv-accent)}
:where(.pv) .menu-panel a:nth-child(1){animation-delay:40ms}  :where(.pv) .menu-panel a:nth-child(1)::after{animation-delay:140ms}
:where(.pv) .menu-panel a:nth-child(2){animation-delay:80ms}  :where(.pv) .menu-panel a:nth-child(2)::after{animation-delay:180ms}
:where(.pv) .menu-panel a:nth-child(3){animation-delay:120ms} :where(.pv) .menu-panel a:nth-child(3)::after{animation-delay:220ms}
:where(.pv) .menu-panel a:nth-child(4){animation-delay:160ms} :where(.pv) .menu-panel a:nth-child(4)::after{animation-delay:260ms}
:where(.pv) .menu-panel a:nth-child(5){animation-delay:200ms} :where(.pv) .menu-panel a:nth-child(5)::after{animation-delay:300ms}
:where(.pv) .menu-panel a:nth-child(6){animation-delay:240ms}


:where(.pv) .menu-panel.is-closing{pointer-events:none}
:where(.pv) .menu-panel.is-closing .wrap{animation:pv-menu-rise 220ms var(--pv-ease-in) 80ms both}
:where(.pv) .menu-panel.is-closing a{animation:pv-menu-leave 160ms var(--pv-ease-in) both}
:where(.pv) .menu-panel.is-closing a::after{animation:none}
:where(.pv) .menu-panel.is-closing a:nth-child(6){animation-delay:0ms}  :where(.pv) .menu-panel.is-closing a:nth-child(5){animation-delay:15ms}
:where(.pv) .menu-panel.is-closing a:nth-child(4){animation-delay:30ms} :where(.pv) .menu-panel.is-closing a:nth-child(3){animation-delay:45ms}
:where(.pv) .menu-panel.is-closing a:nth-child(2){animation-delay:60ms} :where(.pv) .menu-panel.is-closing a:nth-child(1){animation-delay:75ms}
@keyframes pv-menu-rise{to{transform:translateY(-100%)}}
@keyframes pv-menu-leave{to{opacity:0; transform:translateY(calc(-1 * var(--pv-rise) / 2))}}

@media (max-width:999px){ :where(html).pv-menu-lock{overflow:hidden} }   
:where(.pv) .menu-scrim{overscroll-behavior:contain; touch-action:none}
@keyframes pv-menu-drop{from{transform:translateY(-100%)}}
@keyframes pv-menu-item{from{opacity:0; transform:translateY(var(--pv-rise))}}
@keyframes pv-menu-line{from{transform:scaleX(0)}}

:where(.pv) .menu-scrim{position:fixed; inset:0; z-index:54; background:rgba(10,10,46,.5); opacity:0; pointer-events:none;
  transition:opacity 300ms var(--pv-ease-in)}
:where(html).pv-menu-open :where(.pv) .menu-scrim{opacity:1; pointer-events:auto; transition:opacity 420ms var(--pv-ease)}
@media (min-width:1000px){ :where(.pv) .menu-scrim{display:none} }



@media (max-width:999px){ :where(.pv) .hd-end nav{display:none} :where(.pv) .menu-btn{display:inline-flex} }
@media (max-width:720px){
  :where(.pv) .hd{flex-direction:row; flex-wrap:nowrap; align-items:center; padding-block:10px; gap:10px}
  :where(.pv) .pv-header.is-scrolled .hd{padding-block:8px}
  :where(.pv) .hd-end{gap:8px}
  :where(.pv) .hd-end nav{display:none}
  :where(.pv) .menu-btn{display:inline-flex}
  :where(.pv) .mark-h3{gap:8px}
  :where(.pv) .mark-h3 .mark-mono{height:24px}
  :where(.pv) .mark-h3 .mark-word{font-size:1.2rem}
}

@media (max-width:370px){
  :where(.pv) .theme-pill button span{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap}
  :where(.pv) .theme-pill button{padding:4px 8px}
}


:where(.pv) .backtop{position:fixed; z-index:60; right:28px; bottom:calc(28px + env(safe-area-inset-bottom, 0px));
  width:48px; height:48px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  
  background:color-mix(in srgb, var(--pv-paper) 55%, transparent);
  -webkit-backdrop-filter:blur(14px) saturate(1.4); backdrop-filter:blur(14px) saturate(1.4);
  color:var(--pv-ink); border:1px solid color-mix(in srgb, var(--pv-rule) 70%, transparent);
  box-shadow:0 8px 24px rgba(0,0,0,.14), inset 0 1px 0 color-mix(in srgb, var(--pv-paper) 70%, transparent);
  cursor:pointer; opacity:0; pointer-events:none; transform:translateY(var(--pv-rise));
  

  visibility:hidden;
  transition:opacity var(--pv-dur-slow) var(--pv-ease), transform var(--pv-dur-slow) var(--pv-ease), border-color var(--pv-dur) var(--pv-ease),
    background-color var(--pv-dur) var(--pv-ease), color var(--pv-dur) var(--pv-ease), visibility 0s linear var(--pv-dur-slow)}
:where(.pv) .backtop.is-shown{opacity:1; pointer-events:auto; transform:none; visibility:visible; transition-delay:0s}

:where(.pv) .backtop.on-foot{background:color-mix(in srgb, var(--pv-foot-bg) 55%, transparent);
  border-color:var(--pv-foot-body); color:var(--pv-foot-accent);
  box-shadow:0 8px 24px rgba(0,0,0,.28), inset 0 1px 0 color-mix(in srgb, var(--pv-foot-ink) 18%, transparent)}
:where(.pv) .backtop .bt-arrow{width:18px; height:18px; overflow:visible; transition:transform var(--pv-dur) var(--pv-ease)}
@media (hover:hover){ :where(.pv) .backtop:hover{border-color:var(--pv-accent); color:var(--pv-accent)} :where(.pv) .backtop:hover .bt-arrow{transform:translateY(-2px)}
  :where(.pv) .backtop.on-foot:hover{border-color:var(--pv-foot-accent); color:var(--pv-foot-ink)} }


:where(.pv) .backtop.is-shown.is-down{transform:translateY(3px); transition-duration:50ms}
:where(.pv) .backtop .bt-up{transition:opacity var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) .backtop .bt-ok{opacity:0; stroke-dasharray:24; stroke-dashoffset:24;
  transition:opacity 120ms linear, stroke-dashoffset var(--pv-dur) var(--pv-ease)}
:where(.pv) .backtop.is-done .bt-up{opacity:0}
:where(.pv) .backtop.is-done .bt-ok{opacity:1; stroke-dashoffset:0}
@media (max-width:720px){
  :where(.pv) .backtop{left:50%; right:auto; bottom:calc(20px + env(safe-area-inset-bottom, 0px)); transform:translate(-50%,var(--pv-rise))}
  :where(.pv) .backtop.is-shown{transform:translate(-50%,0)}
  :where(.pv) .backtop.is-shown.is-down{transform:translate(-50%,3px)}
}
:where(.pv) .backtop:focus-visible,:where(.pv) .theme-pill button:focus-visible,:where(.pv) .menu-btn:focus-visible,:where(.pv) .menu-panel a:focus-visible{outline:2px solid var(--pv-focus); outline-offset:3px}
:where(.pv) .backtop:focus-visible{border-radius:50%}

:where(.pv) main#main:focus, :where(.pv) [data-pv-anchor]:focus{outline:none}
:where(.pv) .backtop,:where(.pv) .menu-btn,:where(.pv) .flow-toggle,:where(.pv) .theme-pill button,:where(.pv) .cta{-webkit-tap-highlight-color:transparent}   



:where(html).pv-sticky{scroll-padding-top:calc(var(--pv-hd-h, 72px) + var(--pv-rn-h, 0px) + 16px)}   


:where(.pv) footer.site-footer{background:var(--pv-foot-bg); color:var(--pv-foot-body); padding-block:clamp(48px,7vw,80px) 28px}


@media (max-width:720px){ :where(.pv) footer.site-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))} }
:where(.pv) .site-footer a{color:var(--pv-foot-body); text-decoration:none; transition:color var(--pv-dur) var(--pv-ease)}
@media (hover:hover){ :where(.pv) .site-footer a:hover{color:var(--pv-foot-accent)} }
:where(.pv) .site-footer a:focus-visible{outline-color:var(--pv-foot-accent)}
:where(.pv) .sf-top{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start}
:where(.pv) .sf-brand{display:flex; flex-direction:column; align-items:flex-start; gap:12px}
:where(.pv) .sf-logo{height:38px; width:auto}
:where(.pv) .sf-word{font-family:var(--pv-disp); font-size:1.75rem; line-height:1; color:var(--pv-foot-ink); margin:0}
:where(.pv) .sf-tagline{font-family:var(--pv-disp); font-style:italic; font-size:var(--pv-fs-lede); color:var(--pv-foot-body); margin:0}
:where(.pv) .sf-h{font-family:var(--pv-mono); font-size:var(--pv-fs-meta); letter-spacing:.16em; text-transform:uppercase; color:var(--pv-foot-muted); margin:0 0 14px}
:where(.pv) .sf-links{list-style:none; margin:0; padding:0; display:grid; gap:10px; font-size:var(--pv-fs-small)}
:where(.pv) .sf-links a{display:inline-block; padding-block:2px}
:where(.pv) .sf-bottom{margin-top:clamp(36px,5vw,56px); padding-top:20px; border-top:1px solid var(--pv-foot-hair); font-size:var(--pv-fs-meta); color:var(--pv-foot-muted)}
:where(.pv) .sf-bottom p{margin:0}







:where(.pv) .sf-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 24px}
:where(.pv) .sf-credit{white-space:nowrap}
:where(.pv) .sf-heart{display:inline-block; width:.95em; height:.95em; vertical-align:-.1em; fill:var(--pv-foot-accent)}
:where(.pv) .sf-credit a{position:relative; text-decoration:underline; text-decoration-color:var(--pv-foot-hair); text-underline-offset:4px}


:where(.pv) .sf-credit a::after{content:""; position:absolute; inset:calc(50% - 22px) 0}
@media (hover:hover){ :where(.pv) .sf-credit a:hover{text-decoration-color:currentColor} }
@keyframes pv-heart-beat{0%,70%,100%{transform:scale(1)} 78%{transform:scale(1.22)} 86%{transform:scale(1)} 92%{transform:scale(1.12)}}
:where(.pv) .sf-heart{transform-origin:center; transform-box:fill-box}
@media (prefers-reduced-motion:no-preference){ :where(.pv) .sf-heart{animation:pv-heart-beat 2.8s ease-in-out infinite} }
@media (max-width:720px){ :where(.pv) .sf-bottom{flex-direction:column; align-items:flex-start} }


@media (min-width:721px){ :where(.pv) .sf-bottom{padding-right:max(0px, calc(92px - (100vw - 100%) / 2))} }
@media (max-width:720px){ :where(.pv) .sf-top{grid-template-columns:1fr 1fr} :where(.pv) .sf-brand{grid-column:1 / -1} }


:where(.pv) .hero-split{display:grid; grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:clamp(28px,4vw,64px); align-items:center}
:where(.pv) .home-hero.hero-split{padding-block:clamp(40px,6vw,72px) clamp(40px,6vw,72px)}
:where(.pv) .hero-split h1{font-size:var(--pv-fs-display-split); line-height:1.04; letter-spacing:-.03em; max-width:none}
@media (max-width:860px){ :where(.pv) .hero-split h1{text-wrap:pretty} }   
:where(.pv) .hero-simple .fig-full{display:none}
:where(.pv) .hero-simple .fig-simple{display:block; padding:14px 22px 4px}
:where(.pv) .hero-simple .fig-simple svg.dwg{max-width:460px; width:100%; margin-inline:auto}
@media (max-width:860px){ :where(.pv) .hero-split{grid-template-columns:1fr; gap:28px} }


:where(.pv) h1{line-height:1.04; letter-spacing:-.03em}


:where(.pv) .rn-sticky{position:sticky; top:var(--pv-hd-h, 0px); z-index:40; background:var(--pv-paper); border-bottom:1px solid var(--pv-hair)}
:where(.pv) .rn-sticky .roomnav{padding-block:10px}
:where(.pv) .room{scroll-margin-top:0}   


:where(.pv) .roomnav a.current{color:var(--pv-accent)}
@media (max-width:720px){
  



  :where(.pv) .rn-sticky .roomnav{flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; padding-block:8px;
    scroll-snap-type:x proximity; scroll-padding-inline:20px;
    --pv-fade-l:0px; --pv-fade-r:68px;
    -webkit-mask-image:linear-gradient(to right, transparent 0, #000 var(--pv-fade-l), #000 calc(100% - var(--pv-fade-r)), transparent 100%);
            mask-image:linear-gradient(to right, transparent 0, #000 var(--pv-fade-l), #000 calc(100% - var(--pv-fade-r)), transparent 100%);
    transition:--pv-fade-l var(--pv-dur) var(--pv-ease), --pv-fade-r var(--pv-dur) var(--pv-ease)}
  :where(.pv) .rn-sticky .roomnav.has-fades:not(.more-r){--pv-fade-r:0px}
  :where(.pv) .rn-sticky .roomnav.more-l{--pv-fade-l:32px}   
  :where(.pv) .rn-sticky .roomnav::-webkit-scrollbar{display:none}
  :where(.pv) .rn-sticky .roomnav a{flex:0 0 auto; white-space:nowrap; scroll-snap-align:start}
}


@property --pv-fade-l{syntax:'<length>'; inherits:false; initial-value:0px}
@property --pv-fade-r{syntax:'<length>'; inherits:false; initial-value:0px}


@keyframes pv-dwgview-in{from{opacity:0; transform:translateY(var(--pv-rise))} to{opacity:1; transform:none}}
:where(.pv) .dwgview{animation:pv-dwgview-in var(--pv-dur-slow) var(--pv-ease) both}

:where(.pv) .reveal.is-armed > *{opacity:0; transform:translateY(var(--pv-rise));
  transition:opacity var(--pv-dur-slow) var(--pv-ease), transform var(--pv-dur-slow) var(--pv-ease);
  transition-delay:calc(var(--i, 0) * var(--pv-stagger))}
:where(.pv) .reveal.is-armed.is-visible > *{opacity:1; transform:none}



:where(.pv) .reveal.is-armed > .pv-lines{opacity:1; transform:none; transition:none}
:where(.pv) .pv-lines .pv-ln{display:block; overflow:hidden; padding-block:.06em .18em; margin-block:-.06em -.18em}
:where(.pv) .pv-lines .pv-ln-t{display:block}






:where(.pv) .dwg .sig{pointer-events:none}
:where(.pv) .flow-toggle{position:relative; margin-left:auto; align-self:center; display:inline-grid; place-items:center; width:32px; height:32px; padding:0;
  color:var(--pv-muted); background:transparent; border:1px solid var(--pv-hair); border-radius:50%; cursor:pointer}
:where(.pv) .flow-toggle::before{content:""; position:absolute; inset:-6px}
:where(.pv) .flow-toggle svg{fill:currentColor}
@media (hover:hover){ :where(.pv) .flow-toggle:hover{color:var(--pv-ink); border-color:var(--pv-rule)} }
:where(.pv) .flow-toggle:focus-visible{outline:2px solid var(--pv-focus); outline-offset:3px}
@media (prefers-reduced-motion:reduce){ :where(.pv) .flow-toggle{display:none} }






:where(.pv) .dwgview.is-grow{animation:none}
:where(.pv) .dwgview.is-grow .dwgview-art{transform-origin:0 0}
:where(.pv) .dwgview.is-busy{pointer-events:none}

:where(.pv) .swap, :where(.pv) .dwgview-x{-webkit-tap-highlight-color:transparent}
:where(.pv) .swap{transition:transform var(--pv-dur-fast) var(--pv-ease), border-color var(--pv-dur) var(--pv-ease)}
:where(.pv) .swap:active{transform:scale(.985)}
:where(.pv) .dwgview-x{transition:transform var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) .dwgview-x:active{transform:scale(.97)}
:where(.pv) .fig-hold{display:block}
:where(.pv) .fig-expand{position:relative; display:none; place-items:center; width:32px; height:32px; padding:0; margin-left:8px; align-self:center;
  color:var(--pv-muted); background:transparent; border:1px solid var(--pv-hair); border-radius:50%; cursor:pointer;
  -webkit-tap-highlight-color:transparent; transition:color var(--pv-dur-fast) var(--pv-ease), border-color var(--pv-dur-fast) var(--pv-ease), transform var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) .fig-expand::before{content:""; position:absolute; inset:-6px}
:where(.pv) .fig-expand svg{fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round}
:where(.pv) .fig-expand:active{transform:scale(.94)}
:where(.pv) .fig-expand:focus-visible{outline:2px solid var(--pv-focus); outline-offset:3px}
@media (hover:hover){ :where(.pv) .fig-expand:hover{color:var(--pv-ink); border-color:var(--pv-rule)} }
@media (min-width:721px){ :where(.pv) .fig-expand{display:inline-grid} }
@media (prefers-reduced-motion:reduce){ :where(.pv) .fig-expand{margin-left:auto} }   
@media (min-width:1000px){
  :where(.pv) .dwgview-hint{display:none}
  :where(.pv) .dwgview-art{padding:clamp(12px,2vw,28px) clamp(12px,2vw,28px) 4px}
  :where(.pv) .dwgview-art svg.dwg{display:block; width:min(100%, calc((100dvh - 150px) * var(--pv-ar, 1.96))); margin-inline:auto}   
}






:where(.pv) .dwg [data-dev]{cursor:pointer}
:where(.pv) .dwg .is-dim{opacity:.22; transition:opacity var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) .dwg text.is-dim{opacity:.8}


:root[data-theme="dark"] :where(.pv) .dwg rect.is-dim:not([stroke-dasharray]){fill:var(--pv-paper)}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) :where(.pv) .dwg rect.is-dim:not([stroke-dasharray]){fill:var(--pv-paper)} }
:where(.pv) .dwg .is-lit{stroke-width:3.2px}
:where(.pv) .dwg rect.is-on-box{fill:color-mix(in srgb, var(--pv-lit, var(--pv-accent)) 16%, var(--pv-paper)); stroke:var(--pv-lit, var(--pv-accent)); stroke-width:2}
:where(.pv) .dwg rect{transition:fill .5s var(--pv-ease), stroke .5s var(--pv-ease)}   
:where(.pv) .dwg rect.is-flash{fill:color-mix(in srgb, var(--pv-lit) 16%, var(--pv-paper)); stroke:var(--pv-lit)}
:where(.pv) .dwg rect[data-dev]:focus{outline:none}
:where(.pv) .dwg rect[data-dev]:focus-visible{stroke:var(--pv-focus); stroke-width:3}
:where(.pv) .pv-vh{position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0}









:where(.pv) .hero h1,:where(.pv) .hero-sub h1{max-width:none}
:where(.pv) .sec h2,:where(.pv) .closing h2,:where(.pv) .layers h2{max-width:none}
:where(.pv) .lede,:where(.pv) .brief,:where(.pv) .room-hd .brief,:where(.pv) .spaces-note,:where(.pv) .cert-note,:where(.pv) .pullq .after{max-width:none}
:where(.pv) .pullq blockquote p{max-width:none}
:where(.pv) .dcard .dwhy,:where(.pv) .stage .sline,:where(.pv) .cexisting{max-width:none}
:where(.pv) .stratum .promise{max-width:none}
@media (min-width:1000px){
  :where(.pv) .lede,:where(.pv) .brief,:where(.pv) .spaces-note,:where(.pv) .cert-note,:where(.pv) .pullq .after{font-size:clamp(1.3125rem,1.75vw,1.625rem); line-height:1.55}
  :where(.pv) .pullq blockquote p{font-size:clamp(1.75rem,2.1vw,2.125rem)}   
  
}
:where(.pv) .h-accent{color:var(--pv-red); display:block; font-size:var(--pv-fs-h3); margin-top:.35em}   


:where(.pv) .mark-lockup{display:flex; align-items:center; text-decoration:none; line-height:0}
:where(.pv) .mark-lockup .lockup{height:44px; width:auto}
:where(.pv) .sf-lockup{height:44px; width:auto; display:block}
@media (max-width:720px){ :where(.pv) .mark-lockup .lockup{height:30px} }




:where(.pv) .sample{margin:0 0 clamp(24px,3vw,36px)}
:where(.pv) .sample img{display:block; width:100%; max-width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:var(--pv-radius); background:var(--pv-band)}
:where(.pv) .sample-panel{max-width:min(100%,720px); margin-top:clamp(24px,3vw,36px); margin-inline:auto}
:where(.pv) .sample-sec{padding-block:clamp(32px,5vw,56px) 0}












:where(.pv-arrive) :where(.pv) .pv-header .mark-lockup .lockup{opacity:0; animation:pv-arrive-fallback 1ms linear 3s forwards}
@keyframes pv-arrive-fallback{to{opacity:1}}
:where(.pv) .mark-lockup{position:relative}
:where(.pv) .pv-arrive-stage{position:absolute; inset:0; pointer-events:none}
:where(.pv) .pv-arrive-stage svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible}

:where(.pv) .pv-arrive-mark{clip-path:inset(-500% 78% -10% -5%)}
:where(.pv) .pv-arrive-word{clip-path:inset(0 0 0 22%)}





:root.pv-hold :where(.pv) > main{visibility:hidden; animation:pv-unhold 1ms linear 2s forwards}
@keyframes pv-unhold{to{visibility:visible}}





:where(.pv) .cta{position:relative; overflow:hidden; isolation:isolate; touch-action:manipulation;
  box-shadow:4px 4px 0 var(--pv-cta-edge);
  transition:transform 50ms linear, box-shadow 50ms linear, filter var(--pv-dur) var(--pv-ease)}
:where(.pv) .cta:active,:where(.pv) .cta.is-down{transform:translate(4px,4px); box-shadow:0 0 0 var(--pv-cta-edge)}
:where(.pv) .cta::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.34) 50%,transparent 65%); transform:translateX(-130%)}
:where(.pv) .cta.is-swept::before{animation:pv-sheen 900ms var(--pv-ease) both}
@keyframes pv-sheen{from{transform:translateX(-130%)} to{transform:translateX(130%)}}








:where(.pv) :where(a:not([class])){text-decoration-line:underline; text-decoration-thickness:1px; text-underline-offset:4px;
  transition:text-decoration-thickness var(--pv-dur-fast) var(--pv-ease)}
:where(.pv) :where(a:not([class])):is(:hover,:focus-visible){text-decoration-thickness:2px}
:where(.pv) :is(.pv-ulink, .close-links .more){position:relative; display:inline-block; text-decoration:none; padding-bottom:4px;
  background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat; transition:background-size var(--pv-dur) var(--pv-ease)}   
:where(.pv) :is(.pv-ulink, .close-links .more)::before{content:""; position:absolute; left:-7px; right:7px; bottom:-6px; height:14px; pointer-events:none; opacity:0;
  background:radial-gradient(circle at 7px 50%, currentColor 0 2.6px, color-mix(in srgb, currentColor 28%, transparent) 3.2px, transparent 7px) no-repeat;
  transition:transform var(--pv-dur) var(--pv-ease), opacity 80ms linear}   
:where(.pv) :is(.pv-ulink, .close-links .more)::after{content:"\2192"; display:inline-block; margin-left:.4em; transition:transform 180ms var(--pv-ease) 120ms}
:where(.pv) :is(.pv-ulink, .close-links .more):focus-visible{background-size:100% 2px}
:where(.pv) :is(.pv-ulink, .close-links .more):focus-visible::before{opacity:1; transform:translateX(calc(100% - 6px))}
:where(.pv) :is(.pv-ulink, .close-links .more):focus-visible::after{transform:translateX(6px)}
@media (hover:hover){
  :where(.pv) :is(.pv-ulink, .close-links .more):hover{background-size:100% 2px}
  :where(.pv) :is(.pv-ulink, .close-links .more):hover::before{opacity:1; transform:translateX(calc(100% - 6px))}
  :where(.pv) :is(.pv-ulink, .close-links .more):hover::after{transform:translateX(6px)}
}








:where(.pv) .split{display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:0;
  border:1px solid var(--pv-hair); background:var(--pv-paper); margin-top:clamp(20px,3vw,32px); overflow:hidden}
:where(.pv) .split.flip{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
:where(.pv) .split.flip .split-pic{order:2}
:where(.pv) .split-pic{margin:0; position:relative; min-height:clamp(260px,34vw,520px); overflow:hidden; background:var(--pv-band)}
:where(.pv) .split-pic img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 900ms var(--pv-ease), opacity 600ms var(--pv-ease)}
:where(.pv.js-motion) .split:not(.is-in) .split-pic img{transform:scale(1.04); opacity:0}
:where(.pv) .split-pic.contain{background:#fff}
:where(.pv) .split-pic.contain img{object-fit:contain; padding:clamp(12px,2vw,24px)}
:where(.pv) .split-txt{padding:clamp(22px,3.4vw,48px); display:flex; flex-direction:column; justify-content:center; gap:14px}
:where(.pv) .split-txt > *{transition:opacity var(--pv-dur-slow) var(--pv-ease), transform var(--pv-dur-slow) var(--pv-ease)}   
:where(.pv.js-motion) .split:not(.is-in) .split-txt > *{opacity:0; transform:translateY(var(--pv-rise))}

:where(.pv) .split.is-in .split-txt > *:nth-child(2){transition-delay:var(--pv-stagger)}
:where(.pv) .split.is-in .split-txt > *:nth-child(3){transition-delay:calc(2 * var(--pv-stagger))}
:where(.pv) .split.is-in .split-txt > *:nth-child(4){transition-delay:calc(3 * var(--pv-stagger))}
:where(.pv) .split .room-hd{margin:0}
:where(.pv) .split .room-hd h2{margin:6px 0 10px}
:where(.pv) .dl-lab{font-family:"IBM Plex Mono",monospace; font-size:var(--pv-fs-micro); letter-spacing:.08em; text-transform:uppercase; color:var(--pv-muted); margin:6px 0 0}
:where(.pv) .dlist{list-style:none; margin:0; padding:0; counter-reset:d; display:grid; gap:14px}
:where(.pv) .ditem{counter-increment:d; padding-left:34px; position:relative; border-top:1px solid var(--pv-hair); padding-top:12px}
:where(.pv) .ditem::before{content:counter(d,decimal-leading-zero); position:absolute; left:0; top:14px;
  font-family:"IBM Plex Mono",monospace; font-size:var(--pv-fs-micro); color:var(--pv-accent)}
:where(.pv) .ditem h3{font-size:1.125rem; line-height:1.3; margin:0 0 4px}
:where(.pv) .ditem .dwhy{font-size:var(--pv-fs-small); margin:0 0 4px}
:where(.pv) .ditem .cost{font-size:var(--pv-fs-meta); color:var(--pv-muted); margin:0}
:where(.pv) .room.band .split{background:var(--pv-paper)}

:where(.pv) .fold{margin-top:0; border:1px solid var(--pv-hair); border-top:0; background:var(--pv-paper)}
:where(.pv) .fold-btn{all:unset; box-sizing:border-box; width:100%; cursor:pointer; display:flex; align-items:center; gap:12px;
  padding:16px clamp(18px,3vw,28px); font-family:"IBM Plex Mono",monospace; font-size:var(--pv-fs-meta); letter-spacing:.04em; color:var(--pv-red); 
  transition:background 90ms var(--pv-ease)}
:where(.pv) .fold-btn:hover{background:var(--pv-band)}
:where(.pv) .fold-btn:active{transform:translateY(1px)}
:where(.pv) .fold-btn:focus-visible{outline:2px solid var(--pv-focus); outline-offset:-2px}
:where(.pv) .fold-ic{width:18px; height:18px; border:1px solid currentColor; position:relative; flex:none}   
:where(.pv) .fold-ic::before, :where(.pv) .fold-ic::after{content:""; position:absolute; left:4px; right:4px; top:8px; height:1px; background:currentColor; transition:transform 300ms var(--pv-ease)}
:where(.pv) .fold-ic::after{transform:rotate(90deg)}
:where(.pv) .fold.open .fold-ic::after{transform:rotate(0)}
:where(.pv) .fold-body{display:grid; grid-template-rows:0fr; transition:grid-template-rows 320ms var(--pv-ease)}
:where(.pv) .fold.open .fold-body{grid-template-rows:1fr}
:where(.pv) .fold-in{overflow:hidden; min-height:0}



:where(.pv) .fold:not(.open) .fold-in{visibility:hidden; transition:visibility 0s linear var(--pv-fold-dur, 320ms)}
:where(.pv) .fold-in > .figure{margin:0; border:0}

:where(.pv) .steps{display:grid; gap:0; margin-top:clamp(28px,4vw,44px)}
:where(.pv) .steps .split{margin-top:-1px}
:where(.pv) .steps .split.band-row .split-txt{background:var(--pv-band)}
:where(.pv) .step-n{font-family:"IBM Plex Mono",monospace; font-size:var(--pv-fs-meta); color:var(--pv-accent); margin:0}
:where(.pv) .step-h{font-size:var(--pv-fs-h3); line-height:1.15; margin:0}
:where(.pv) .step-p{font-size:var(--pv-fs-lede); margin:0; color:var(--pv-body)}
@media (max-width:820px){
  :where(.pv) .split, :where(.pv) .split.flip{grid-template-columns:1fr}
  :where(.pv) .split.flip .split-pic{order:0}
  :where(.pv) .split-pic{min-height:0; aspect-ratio:16/10}
}
@media (prefers-reduced-motion:reduce){
  :where(.pv) .split-pic img, :where(.pv) .split-txt > *{transition:none; transform:none; opacity:1}
  :where(.pv) .fold-body, :where(.pv) .fold-ic::after{transition:none}
}






:where(.pv) .room2{border-top:1px solid var(--pv-hair); scroll-margin-top:-16px}   
:where(.pv) .room2 + .room2{margin-top:0}

:where(.pv.pv-arming) :is(.rhero, .pcards, .split), :where(.pv.pv-arming) :is(.rhero, .pcards, .split) *{transition:none !important}

:where(.pv) .rhero{margin:0; position:relative; height:clamp(340px,62vw,720px); overflow:hidden; background:var(--pv-band)}
:where(.pv) .rhero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 800ms var(--pv-ease)}
:where(.pv.js-motion) .rhero:not(.is-in) img{transform:scale(1.06)}
:where(.pv) .rhero.is-in img{transform:none}
:where(.pv) .rhero::after{content:""; position:absolute; inset:auto 0 0 0; height:70%; background:linear-gradient(to top,rgba(10,10,46,.88) 0%,rgba(10,10,46,.62) 45%,rgba(10,10,46,0) 100%)}
:where(.pv) .rhero-cap{position:absolute; left:0; right:0; bottom:clamp(20px,4vw,48px); z-index:1; display:flex; flex-direction:column; gap:8px; color:#fff}
:where(.pv) .rhero-eb{font-family:var(--pv-mono); font-size:var(--pv-fs-micro); letter-spacing:.12em; text-transform:uppercase; text-shadow:0 1px 8px rgba(0,0,0,.45)}
:where(.pv) .rhero-h{text-shadow:0 2px 18px rgba(0,0,0,.35)}
:where(.pv) .rhero-h{font-family:var(--pv-disp); font-size:var(--pv-fs-display-split); line-height:1; letter-spacing:-.01em}
:where(.pv) .rhero-cap > *{transition:opacity var(--pv-dur-slow) var(--pv-ease) calc(3 * var(--pv-stagger)), transform var(--pv-dur-slow) var(--pv-ease) calc(3 * var(--pv-stagger))}   
:where(.pv.js-motion) .rhero:not(.is-in) .rhero-cap > *{opacity:0; transform:translateY(var(--pv-rise))}
:where(.pv) .room2-body{padding-block:clamp(36px,5vw,64px) clamp(28px,4vw,48px)}
:where(.pv) .room2-brief{font-family:var(--pv-disp); font-size:var(--pv-fs-h3); line-height:1.2; color:var(--pv-ink); max-width:30ch; margin:0 0 clamp(24px,3.4vw,40px); text-wrap:balance}

:where(.pv) .pcards{list-style:none; margin:16px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,28px)}
:where(.pv) .pcard{display:flex; flex-direction:column; background:var(--pv-paper); border-top:2px solid var(--pv-accent)}
:where(.pv) .pcard-pic{margin:0; aspect-ratio:4/3; overflow:hidden; background:var(--pv-band)}
:where(.pv) .pcard-pic img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 600ms var(--pv-ease)}
@media (hover:hover){ :where(.pv) .pcard:hover .pcard-pic img{transform:scale(1.035)} }
:where(.pv) .pcard-txt{padding:16px 0 0}   
:where(.pv) .pcard-n{font-family:var(--pv-mono); font-size:var(--pv-fs-micro); color:var(--pv-accent); margin:0 0 8px}
:where(.pv) .pcard h3{font-size:var(--pv-fs-card); line-height:1.15; margin:0 0 10px; text-wrap:balance}   
:where(.pv) .pcard .dwhy{margin:0 0 10px}
:where(.pv) .pcard .cost{font-size:var(--pv-fs-small); color:var(--pv-muted); margin:0}
:where(.pv) .pcards > *{transition:opacity var(--pv-dur-slow) var(--pv-ease), transform var(--pv-dur-slow) var(--pv-ease)}
:where(.pv.js-motion) .pcards:not(.is-in) > *{opacity:0; transform:translateY(var(--pv-rise))}

:where(.pv) .pcards.is-in > *:nth-child(2){transition-delay:var(--pv-stagger)}
:where(.pv) .pcards.is-in > *:nth-child(3){transition-delay:calc(2 * var(--pv-stagger))}
:where(.pv) .dwg-band{background:var(--pv-band); border-block:1px solid var(--pv-hair); padding-block:clamp(20px,3vw,32px)}
:where(.pv) .dwg-band .fold{border-top:1px solid var(--pv-hair)}
:where(.pv) .pager{display:flex; justify-content:space-between; gap:16px; padding-block:22px clamp(64px,8vw,112px); font-family:var(--pv-mono); font-size:var(--pv-fs-meta)}
:where(.pv) .pager a{color:var(--pv-ink); text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat; transition:background-size var(--pv-dur) var(--pv-ease)}
:where(.pv) .pager a:hover{background-size:100% 1px}



:where(.pv) .ltile.has-pic{padding-top:0}
:where(.pv) .lt-pic{margin:0 calc(-1 * clamp(24px,3vw,36px)) 18px; aspect-ratio:16/10; overflow:hidden}
:where(.pv) .lt-pic img{width:100%; height:100%; object-fit:cover; display:block}
:where(.pv) .bleed{margin-block:clamp(40px,6vw,80px) 0}
:where(.pv) .bleed-pic{margin:0; height:clamp(320px,56vw,760px); overflow:hidden; position:relative}
:where(.pv) .bleed-pic img{position:absolute; inset:-6% 0; width:100%; height:112%; object-fit:cover; will-change:transform}

:where(.pv) .photo-cards .decision.has-pic{padding-top:0; overflow:hidden}
:where(.pv) .a-pic{margin:0 0 16px; aspect-ratio:4/5; overflow:hidden}
:where(.pv) .a-pic img{width:100%; height:100%; object-fit:cover; display:block; transition:transform 600ms var(--pv-ease), opacity 300ms linear}
@media (hover:hover){
  :where(.pv) .photo-cards:hover .decision .a-pic img{opacity:.55}
  :where(.pv) .photo-cards .decision:hover .a-pic img{opacity:1; transform:scale(1.035)}
}
@media (max-width:900px){ :where(.pv) .pcards{grid-template-columns:1fr} :where(.pv) .a-pic{aspect-ratio:16/10} }
@media (prefers-reduced-motion:reduce){
  :where(.pv) .rhero img, :where(.pv) .rhero-cap > *, :where(.pv) .pcards > *, :where(.pv) .bleed-pic img{transition:none; transform:none; opacity:1}
}

@media (hover:none){
  :where(.pv) .pv-header.is-scrolled{-webkit-backdrop-filter:none; backdrop-filter:none; background:var(--pv-band)}
  :where(.pv) .theme-pill, :where(.pv) .backtop{-webkit-backdrop-filter:none; backdrop-filter:none; background:var(--pv-paper)}
  :where(.pv) .backtop.on-foot{background:var(--pv-foot-bg)}   
}



:where(.pv) .split:has(.split-pic.live){grid-template-columns:minmax(0,1fr)}
:where(.pv) .split:has(.split-pic.live) .split-txt{order:-1}
:where(.pv) .split-pic.live{background:var(--pv-paper); display:block; min-height:0; aspect-ratio:auto; overflow:visible; padding:clamp(12px,2vw,24px)}
:where(.pv) .split-pic.live .figure{width:100%; margin:0}













@media (prefers-reduced-motion: no-preference){
  @view-transition{navigation:auto}
  


  ::view-transition-old(root){animation:pv-vt-out 160ms var(--pv-ease-in) both}
  ::view-transition-new(root){animation:pv-vt-in 440ms var(--pv-ease) 150ms both}
  
  :where(.pv) .pv-header{view-transition-name:pv-header}
  ::view-transition-group(pv-header){animation:none}
  
  ::view-transition-group(pv-photo){animation-duration:420ms; animation-timing-function:var(--pv-ease)}
  

  ::view-transition-old(pv-photo), ::view-transition-new(pv-photo){height:100%; object-fit:cover; overflow:clip}
  





  ::view-transition-new(pv-photo){animation:none; mix-blend-mode:normal}
  ::view-transition-old(pv-photo){z-index:1; mix-blend-mode:normal; animation:pv-photo-let-go 420ms var(--pv-ease) both}
}
@keyframes pv-photo-let-go{0%, 72%{opacity:1} 100%{opacity:0}}
@keyframes pv-vt-out{0%{opacity:1; transform:none} 100%{opacity:0; transform:scale(.97)}}
@keyframes pv-vt-in{0%{opacity:0; transform:translateY(var(--pv-rise, 16px))} 35%{opacity:1} 100%{opacity:1; transform:none}}





:where(html).pv-theme-vt :where(.pv) .pv-header{view-transition-name:none}
html.pv-theme-vt::view-transition-old(root){animation:none}


html.pv-theme-vt::view-transition-new(root){animation:pv-wash var(--pv-dur-slow) var(--pv-ease-move) both}
@keyframes pv-wash{from{clip-path:circle(0 at var(--pv-wash-x, 90%) var(--pv-wash-y, 32px))}
  to{clip-path:circle(var(--pv-wash-r, 150vmax) at var(--pv-wash-x, 90%) var(--pv-wash-y, 32px))}}




:where(.pv) .cnext{margin:6px 0 0; color:var(--pv-muted); font-size:var(--pv-fs-small)}
:where(.pv) .cnext b{color:var(--pv-ink); font-weight:500}


:where(.pv) .home-what{font-family:var(--pv-disp); font-size:var(--pv-fs-h3); line-height:1.2; color:var(--pv-ink); margin:18px 0 0; text-wrap:balance}
:where(.pv) .home-areas{list-style:none; margin:14px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px}
:where(.pv) .home-areas a{display:inline-block; padding:6px 12px; border:1px solid var(--pv-hair); color:var(--pv-ink); text-decoration:none; font-size:var(--pv-fs-small)}

@media (hover:hover){ :where(.pv) .home-areas a:hover{border-color:var(--pv-accent); color:var(--pv-accent)} }
:where(.pv) .home-areas a:focus-visible{outline:2px solid var(--pv-accent); outline-offset:2px}
:where(.pv) .home-first{margin-top:22px}
:where(.pv) .home-first + .home-what{margin-top:30px}


:where(.pv) .about-hero-sec{border-top:0}
:where(.pv) .about-lede{padding-top:clamp(28px,4vw,48px)}
:where(.pv) .cpic{margin:0 0 22px; aspect-ratio:3/2; overflow:hidden; background:var(--pv-band); max-width:100%}
:where(.pv) .cpic img{width:100%; height:100%; object-fit:cover; display:block}

:where(.pv) .about-hero-sec .rhero-h{color:inherit; margin:0; font-weight:400}
:where(.pv) .about-hero-sec .rhero-eb{margin:0}







:where(.pv) .pv-temp-fig{position:relative}
:where(.pv) .pv-temp{position:absolute; right:8px; bottom:8px; z-index:2; box-sizing:border-box; max-width:calc(100% - 16px);
  padding:3px 8px 4px; border-radius:2px; pointer-events:none; user-select:none;
  font-family:var(--pv-text); font-size:var(--pv-fs-micro); line-height:1.25; letter-spacing:.01em; text-align:right;
  color:var(--pv-foot-ink);
  background:var(--pv-foot-bg); background:color-mix(in srgb, var(--pv-foot-bg) 66%, transparent)}
:where(.pv) .rhero > .pv-temp{top:clamp(10px,1.6vw,18px); right:clamp(10px,1.6vw,18px); bottom:auto}

:where(.pv) .pg-thumb > .pv-temp{right:4px; bottom:4px; max-width:calc(100% - 8px); padding:2px 5px 3px;
  font-size:.5625rem}










@media print{
  :where(.pv) .rev{display:none}
  :where(.pv) .dwgview{position:static; overflow:visible; z-index:auto}
  :where(.pv) .dwgview-hd{position:static}
  :where(.pv) .dwgview-x, :where(.pv) .dwgview-hint, :where(.pv) .stripcue{display:none}   
  :where(.pv) .pv-header, :where(.pv) .rn-sticky{position:static}
  :where(.pv) .menu-panel, :where(.pv) .backtop, :where(.pv) .theme-pill, :where(.pv) .menu-btn{display:none}
  :where(.pv) .dcard{break-inside:avoid}
  :where(.pv) .more-names > summary::before{content:none}
  :where(.pv) .reveal.is-armed > *{opacity:1; transform:none}
  :where(.pv) .menu-scrim, :where(.pv) .pv-arrive-stage{display:none}
  :where(.pv-arrive) :where(.pv) .pv-header .mark-lockup .lockup{opacity:1}
  :where(.pv) .cta{box-shadow:none}
}
