/* Page compositions built from the shared public components. */
.jp-home{height:calc(100dvh - var(--jp-header));max-width:var(--jp-max-width);margin:0 auto;padding:24px var(--jp-page-gutter) 12px;display:grid;grid-template-rows:minmax(0,1fr) clamp(96px,14vh,144px) 142px 16px;gap:var(--jp-gap)}
.jp-hero{display:grid;grid-template-columns:1.48fr .82fr 1.3fr;gap:var(--jp-gap);min-height:0;min-width:0}
.jp-hero-stack{display:grid;grid-template-rows:1fr 1fr;gap:var(--jp-gap);min-height:0;min-width:0}
.jp-tech .jp-tile-body{top:0;bottom:auto}
.jp-tech::before{background:linear-gradient(110deg,var(--jp-overlay-mid) 0%,var(--jp-overlay-clear) 90%)}
.jp-tech .jp-tile-summary{max-width:270px}
.jp-tech h2{font-size:clamp(28px,2.7vw,48px);max-width:330px}
.jp-destinations{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--jp-gap);min-width:0;min-height:0;padding-top:2px}
.jp-community{min-height:0;display:grid;grid-template-rows:30px minmax(0,1fr);gap:8px}
.jp-posts{display:flex;gap:var(--jp-gap);min-height:0;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px}
.jp-posts::-webkit-scrollbar,.jp-hero::-webkit-scrollbar,.jp-destinations::-webkit-scrollbar{display:none}
.jp-posts .jp-post{flex:0 0 calc(50% - 6px);scroll-snap-align:start}
.jp-home .jp-footer{align-self:end}
.jp-scroll-page{height:calc(100dvh - var(--jp-header));overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:32px var(--jp-page-gutter);outline-offset:-4px!important}
.jp-page-inner{max-width:1300px;margin:0 auto}
.jp-list-heading{margin-top:30px;margin-bottom:30px}
.jp-content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:28px 0}
.jp-content-card{background:var(--jp-paper);border:1px solid var(--jp-line);border-radius:var(--jp-radius);overflow:hidden;min-width:0;position:relative}
.jp-content-card>a{display:block}
.jp-content-card-image{height:190px;width:100%;object-fit:cover;background:var(--jp-gold-soft)}
.jp-content-card-body{padding:22px 22px 52px}
.jp-content-card h2{font-size:20px;letter-spacing:-.035em;line-height:1.3}
.jp-content-card p{font-size:12px;line-height:1.7;color:var(--jp-muted);margin-top:12px}
.jp-content-card small{display:block;color:var(--jp-muted);font-size:10px;margin-top:18px}
.jp-content-card .jp-save{position:absolute;bottom:16px;right:16px}
.jp-list-empty{margin:30px 0}
.jp-article-layout{display:grid;grid-template-columns:minmax(0,720px) 240px;gap:64px;max-width:1060px;margin:32px auto}
.jp-article .jp-page-heading{font-size:clamp(30px,3.5vw,52px);line-height:1.15;margin-bottom:18px}
.jp-article-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--jp-muted);margin:20px 0}
.jp-article-image{width:100%;height:280px;object-fit:cover;border-radius:var(--jp-radius);margin:28px 0}
.jp-article-copy{font-size:var(--jp-editorial-size);line-height:1.9}
.jp-article-copy p{margin:0 0 22px}
.jp-article-note{font-size:11px;line-height:1.8;color:var(--jp-muted);padding-top:20px;border-top:1px solid var(--jp-line)}
.jp-related{border-top:2px solid var(--jp-gold);padding-top:18px;align-self:start;position:sticky;top:0}
.jp-related h2{font-size:14px;margin-bottom:20px}
.jp-related a{display:block;font-size:12px;line-height:1.5;padding:14px 0;border-bottom:1px solid var(--jp-line)}
.jp-systems-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:30px 0}
.jp-system-card{padding:30px;border:1px solid var(--jp-line);border-radius:var(--jp-radius);background:var(--jp-paper);min-width:0}
.jp-system-card>.jp-icon{width:36px;height:36px;color:var(--jp-gold);margin-bottom:26px}
.jp-system-card h2{font-size:26px;letter-spacing:-.04em}
.jp-system-card p{font-size:13px;color:var(--jp-muted);line-height:1.8;margin:12px 0 26px}
.jp-status{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--jp-muted);padding:8px 10px;border:1px solid var(--jp-line);border-radius:var(--jp-radius-small)}
.jp-catalogue{display:grid;gap:24px;margin:30px 0}
.jp-catalogue-colors{display:flex;gap:12px;flex-wrap:wrap}
.jp-swatch{padding:24px;border-radius:var(--jp-radius);background:var(--jp-ink);color:var(--jp-white)}
.jp-swatch-gold{background:var(--jp-gold-deep)}
.jp-swatch-blue{background:var(--jp-blue)}
.jp-swatch-paper{background:var(--jp-paper);color:var(--jp-ink);border:1px solid var(--jp-line)}
@media(min-width:1600px) and (min-height:920px){.jp-home{grid-template-rows:minmax(0,1fr) 144px 158px 16px;padding-top:30px}.jp-community{grid-template-rows:34px minmax(0,1fr)}.jp-post p{font-size:12px}.jp-post h3{font-size:16px}}
@media(max-height:740px) and (min-width:901px){.jp-home{padding-top:16px;grid-template-rows:minmax(0,1fr) 90px 112px 14px;gap:10px}.jp-destination{padding:10px 16px}.jp-destination>.jp-icon{width:22px;height:22px;margin-bottom:7px}.jp-tile-summary{font-size:12px;margin-top:8px!important}.jp-byline{margin-top:10px}.jp-post{padding:8px 14px}.jp-post-avatar{width:42px;height:42px}.jp-post small{margin-top:4px}.jp-post p{-webkit-line-clamp:1}}
@media(max-width:1100px){.jp-header{gap:24px}.jp-nav{gap:24px}.jp-search{width:230px}.jp-header-tools{gap:14px}.jp-destination{padding:14px}.jp-section-head p{display:none}.jp-post-avatar{width:44px;height:44px}.jp-post{gap:10px;padding:9px 12px}.jp-post-link{gap:10px}.jp-post p{-webkit-line-clamp:1}.jp-article-layout{gap:32px;grid-template-columns:minmax(0,1fr) 200px}}
@media(max-width:900px){.jp-header{height:52px;padding:0 18px;gap:20px}.jp-brand,.jp-brand img{width:92px;max-height:44px}.jp-nav{gap:18px}.jp-nav a{font-size:11px}.jp-header-tools{gap:8px}.jp-search{width:190px}.jp-home{height:calc(100dvh - 52px);padding:16px 20px 10px;grid-template-rows:minmax(0,1fr) 100px 126px 14px;gap:10px}.jp-hero{grid-template-columns:1.25fr .85fr}.jp-tech{display:none}.jp-tile h1{font-size:30px}.jp-tile-summary{font-size:12px}.jp-destination{padding:12px}.jp-destination h2{font-size:15px}.jp-destination p{font-size:9px}.jp-destination>.jp-icon{width:26px;height:26px;margin-bottom:8px}.jp-content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.jp-scroll-page{height:calc(100dvh - 52px)}.jp-systems-grid{grid-template-columns:1fr 1fr}.jp-article-layout{grid-template-columns:minmax(0,1fr)}.jp-related{position:static}}
@media(max-width:650px){.jp-header{gap:0}.jp-nav{display:none}.jp-header-tools{gap:4px}.jp-search-toggle{display:inline-flex}.jp-search{display:none;position:absolute;left:14px;right:14px;top:58px;width:auto;height:42px;box-shadow:var(--jp-shadow);z-index:8}.jp-header[data-search-open] .jp-search{display:flex}.jp-search input{font-size:13px}.jp-icon-link,.jp-icon-button{width:38px;height:38px}.jp-dock{height:calc(var(--jp-dock) + env(safe-area-inset-bottom));padding:5px 8px calc(5px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;z-index:5;background:var(--jp-glass);border-top:1px solid var(--jp-line);display:flex;justify-content:space-around}.jp-dock a{min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:9px;color:var(--jp-muted);border-radius:var(--jp-radius)}.jp-dock .jp-icon{width:21px;height:21px}.jp-dock a[aria-current=page]{color:var(--jp-ink);font-weight:700}.jp-dock a[aria-current=page] .jp-icon{stroke-width:2}.jp-home{height:calc(100dvh - 52px - var(--jp-dock) - env(safe-area-inset-bottom));padding:14px 0 8px;grid-template-rows:minmax(0,1fr) 89px 104px 12px;gap:10px}.jp-hero{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;padding:4px 18px 0;scroll-padding-inline:18px}.jp-hero>.jp-tile,.jp-hero-stack{flex:0 0 92%;scroll-snap-align:start;min-width:0}.jp-hero-stack{display:grid;grid-template-rows:1fr 1fr}.jp-tech{display:block}.jp-tile-body{padding:20px}.jp-tile h1{font-size:clamp(25px,7.4vw,34px)}.jp-tile-summary{font-size:11px;line-height:1.5;margin-top:8px!important}.jp-byline{margin-top:12px;font-size:10px}.jp-byline small{font-size:9px}.jp-feature-small{padding:18px}.jp-feature-small h2{font-size:24px}.jp-feature-small p{font-size:11px;max-width:65%}.jp-feature-art{width:44%;max-height:85%}.jp-tech h2{font-size:32px}.jp-tech .jp-tile-summary{max-width:220px}.jp-destinations{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;gap:8px;padding:3px 18px 0;scroll-snap-type:x mandatory;scroll-padding-inline:18px}.jp-destination{flex:0 0 110px;scroll-snap-align:start;padding:10px 12px}.jp-destination>.jp-icon{width:22px;height:22px;margin-bottom:6px}.jp-destination h2{font-size:13px}.jp-destination p{display:none}.jp-community{grid-template-rows:22px minmax(0,1fr);gap:4px}.jp-section-head{padding:0 18px;gap:6px}.jp-section-head h2{font-size:15px}.jp-carousel-controls button{width:24px;height:24px}.jp-posts{padding:1px 18px;scroll-padding-inline:18px;gap:8px}.jp-posts .jp-post{flex-basis:94%;padding:9px 12px}.jp-post-avatar{width:36px;height:36px}.jp-post-avatar .jp-icon{width:20px;height:20px}.jp-post h3{font-size:12px}.jp-post .jp-eyebrow{font-size:7px;margin-bottom:3px}.jp-post p{display:none}.jp-post small{font-size:9px;margin-top:5px}.jp-save{width:28px;height:28px;padding:4px}.jp-home>.jp-footer{padding:0 18px;font-size:7px}.jp-home>.jp-footer .jp-footer-catalogue{display:none}.jp-scroll-page{height:calc(100dvh - 52px - var(--jp-dock) - env(safe-area-inset-bottom));padding:24px 20px}.jp-content-grid,.jp-systems-grid{grid-template-columns:1fr;gap:16px}.jp-content-card-image{height:190px}.jp-content-card-body{padding:20px 20px 52px}.jp-article-layout{margin:26px auto}.jp-article .jp-page-heading{font-size:32px}.jp-article-image{height:220px}.jp-article-copy{font-size:16px}.jp-article-meta{font-size:10px}.jp-page-intro{font-size:13px}.jp-list-heading{margin-top:24px}.jp-toast{bottom:calc(var(--jp-dock) + 14px + env(safe-area-inset-bottom));font-size:11px}.jp-footer{flex-wrap:wrap}}
@media(max-height:650px) and (max-width:650px){.jp-home{grid-template-rows:minmax(0,1fr) 76px 12px;gap:8px;padding-top:8px}.jp-home .jp-community{display:none}.jp-destination{padding:8px 12px}.jp-tile h1{font-size:24px}.jp-byline{margin-top:8px}.jp-tile-body{padding:16px}.jp-feature-small h2{font-size:20px}.jp-feature-small p{font-size:10px}.jp-feature-small{padding:12px}.jp-feature-art{width:40%}}
@media(max-height:500px) and (min-width:651px){.jp-home{grid-template-rows:minmax(0,1fr) 82px 12px;padding-top:10px}.jp-home .jp-community{display:none}.jp-tile-summary,.jp-byline{display:none}.jp-tile h1,.jp-tech h2{font-size:24px}.jp-destination{padding:8px 12px}.jp-destination>.jp-icon{width:22px;height:22px;margin-bottom:4px}.jp-destination h2{font-size:14px}}
/* High zoom / exceptionally short viewports: retain access to every control. */
@media(max-height:420px) and (max-width:650px){.jp-home{overflow-y:auto;grid-template-rows:240px 84px 14px}.jp-hero{overflow-y:hidden}}

.jp-login-page{display:grid;place-items:center}.jp-login-card{width:min(100%,440px);padding:20px 0}.jp-login-card .jp-page-heading{font-size:36px}.jp-login-card .jp-page-intro{font-size:13px}.jp-login-form{margin:28px 0 20px}.jp-login-form .jp-button{width:100%}.jp-login-help{font-size:11px;color:var(--jp-muted);line-height:1.8;margin-bottom:24px!important}@media(max-height:650px){.jp-login-page{display:block}.jp-login-card{margin:0 auto}.jp-login-card .jp-page-heading{font-size:28px}.jp-login-form{margin-top:20px}}

/* Shared portrait product selector, reused by the access entry point. */
.jp-systems-page{height:calc(100dvh - var(--jp-header));max-width:1400px;margin:0 auto;padding:32px var(--jp-page-gutter) 14px;display:grid;grid-template-rows:auto minmax(0,1fr) 16px;gap:24px}
.jp-systems-heading .jp-page-heading{font-size:clamp(26px,2.5vw,38px)}
.jp-systems-heading .jp-page-intro{margin-top:8px!important;font-size:12px}
.jp-systems-heading .jp-eyebrow{margin-bottom:8px}
.jp-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;min-height:0;max-height:650px;min-width:0}
.jp-product-tile{min-height:0;isolation:isolate}
.jp-product-tile::before{background:linear-gradient(0deg,var(--jp-overlay),var(--jp-overlay-mid) 30%,var(--jp-overlay-clear) 75%)}
.jp-product-body{position:absolute;inset:auto 0 0;padding:clamp(22px,2.4vw,36px)}
.jp-product-body h2{font-size:clamp(24px,2.4vw,36px);letter-spacing:-.045em;line-height:1.12}
.jp-product-body p{font-size:12px;line-height:1.6;margin-top:12px;max-width:290px}
.jp-product-body .jp-eyebrow{font-size:9px;color:var(--jp-gold-soft)}
.jp-workspace-preview{max-width:700px;margin:10vh auto}
.jp-preview-links{display:flex;gap:24px;margin-top:28px}
@media(max-width:900px){.jp-systems-page{height:calc(100dvh - 52px);padding-top:24px}.jp-product-grid{gap:12px}.jp-product-body{padding:20px}.jp-product-body h2{font-size:25px}}
@media(max-width:650px){.jp-systems-page{height:calc(100dvh - 52px - var(--jp-dock) - env(safe-area-inset-bottom));padding:22px 0 8px;gap:20px}.jp-systems-heading{padding:0 20px}.jp-systems-heading .jp-page-intro{font-size:11px;max-width:280px}.jp-product-grid{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:20px;padding:4px 20px;gap:12px;scrollbar-width:none}.jp-product-grid::-webkit-scrollbar{display:none}.jp-product-tile{flex:0 0 88%;scroll-snap-align:start}.jp-product-body{padding:24px}.jp-product-body h2{font-size:30px}.jp-product-body p{font-size:12px}.jp-systems-page>.jp-footer{padding:0 20px;font-size:7px}.jp-workspace-preview{margin:6vh auto}}
@media(max-height:600px) and (min-width:651px){.jp-systems-page{padding-top:18px;gap:14px}.jp-systems-heading .jp-page-heading{font-size:26px}.jp-product-body{padding:16px}.jp-product-body h2{font-size:23px}.jp-product-body p{font-size:11px}.jp-product-body .jp-eyebrow{margin-bottom:6px}}
@media(max-height:420px) and (max-width:650px){.jp-systems-page{overflow-y:auto;grid-template-rows:auto 280px 16px}}
