@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#090e16;--bg2:#0e1520;--panel:#111b27;--edge:#253241;--ink:#edf3f7;--muted:#9daebb;--muted2:#728998;--teal:#89d7e6;--blue:#508fac;--font: 'DM Sans',system-ui,sans-serif;--display:'Space Grotesk',system-ui,sans-serif;--mono:'DM Mono',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.6}body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 55% 26% at 69% 3%,#16334659,transparent 80%)}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:4px}.skip{position:absolute;z-index:10;top:-100px;left:12px;background:var(--ink);color:#08121d;padding:10px}.skip:focus{top:12px}.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}.site-header{height:82px;padding:0 max(32px,calc((100vw - 1180px)/2));display:flex;align-items:center;gap:40px;border-bottom:1px solid #233240b0;background:#090e16eb;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:.13em}.brand strong{font-weight:700}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border:1px solid #517a91;border-radius:7px;font:700 20px var(--display)}.brand-mark span,.brand-footer span{color:var(--teal)}.navigation{display:flex;align-items:center;gap:28px;margin-left:auto}.navigation a,.nav-github{font-size:12px;color:#a3b4c0;transition:color .2s}.navigation a:hover,.navigation a.active,.nav-github:hover{color:white}.navigation a.active:after{display:block;content:'';background:var(--teal);height:1px;margin-top:8px}.nav-github{border:1px solid #354656;padding:10px 16px;border-radius:5px;margin-left:15px;white-space:nowrap}.eyebrow{font:500 11px var(--mono);letter-spacing:.19em;color:var(--teal);text-transform:uppercase}.pulse{display:inline-block;width:7px;height:7px;background:#86d7d9;border-radius:50%;box-shadow:0 0 12px #86d7d988;margin-right:10px}.hero{min-height:670px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:20px;padding-top:48px;padding-bottom:86px}.hero h1{font:600 clamp(48px,6.3vw,88px)/1.09 var(--display);letter-spacing:-.065em;margin:30px 0 24px}.hero h1 em,.interior-title em,.about-section h2 em,.section h2 em{font-style:normal;color:var(--teal)}.lede{font-size:17px;color:var(--muted);max-width:590px;line-height:1.85}.lede strong{color:#dbeff6}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{min-height:47px;display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:12px 23px;border-radius:5px;font-size:12px;font-weight:700;letter-spacing:.02em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:#adddec;color:#081723}.button.primary:hover{background:#d3f2f9}.button.ghost{border:1px solid #3b5061;color:#d3e3eb;background:#101c2780}.button.ghost:hover{background:#192938}.hero-stats{border-top:1px solid #293743;display:flex;gap:36px;margin-top:72px;padding-top:21px}.hero-stats span{display:flex;flex-direction:column;gap:2px}.hero-stats b{font-size:13px;font-weight:600}.hero-stats small{font-size:11px;color:var(--muted2)}.hero-art{height:490px;position:relative;display:grid;place-items:center;overflow:hidden}.hero-art:after{content:'';position:absolute;bottom:13%;left:3%;right:3%;height:1px;background:linear-gradient(90deg,transparent,#46647744,transparent)}.starfield{position:absolute;inset:10%;background-image:radial-gradient(#8cc9de 1px,transparent 1px),radial-gradient(#cbeafa 1px,transparent 1px);background-size:100px 97px,143px 151px;background-position:8px 22px,82px 80px;opacity:.2}.planet{width:285px;height:285px;border-radius:50%;position:relative;background:radial-gradient(circle at 26% 17%,#d0e5ec 0%,#7eabba 13%,#3e677d 34%,#1f4359 58%,#0a1b2a 78%);box-shadow:inset -35px -13px 48px #02070ba8,0 0 90px #3785a42b,0 0 18px #6cb0c53d;transform:rotate(-12deg)}.planet:before{content:'';position:absolute;inset:0;border-radius:inherit;opacity:.48;background:repeating-linear-gradient(130deg,transparent 0 19px,#a5c0ac36 22px,transparent 32px,transparent 51px);mask-image:radial-gradient(circle at 42% 39%,black,transparent 76%)}.atmosphere{position:absolute;inset:-8px;border:1px solid #91d7e644;border-radius:50%}.orbit{position:absolute;border:1px solid #5e92a53f;border-radius:50%;transform:rotate(-26deg)}.orbit-one{width:420px;height:190px}.orbit-two{width:375px;height:370px;border-style:dashed;opacity:.48}.orbit-label{position:absolute;font:10px var(--mono);color:#7796a6;letter-spacing:.1em}.orbit-label-top{right:4%;top:16%}.orbit-label-bottom{left:1%;bottom:12%}.band{border-top:1px solid #233240;border-bottom:1px solid #233240;background:#111923}.band-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px}.band-inner span{font:10px var(--mono);color:#8093a4;letter-spacing:.12em}.section{padding-block:105px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:36px}.section-heading h2,.feature-body h2,.availability h2{font:600 clamp(31px,3.9vw,54px)/1.15 var(--display);letter-spacing:-.055em;margin:12px 0}.section-heading p:not(.eyebrow){color:var(--muted)}.accent{color:var(--teal)}.text-link{font-size:12px;font-weight:700;color:#c0e7ef;white-space:nowrap}.text-link:hover{text-decoration:underline}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card{min-height:290px;display:flex;flex-direction:column;border:1px solid var(--edge);background:linear-gradient(145deg,#141f2b,#101822);border-radius:8px;padding:25px;transition:border-color .2s,transform .2s}.project-card:hover{border-color:#4c7d94;transform:translateY(-3px)}.project-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-code{font:10px var(--mono);letter-spacing:.16em;color:var(--teal)}.project-status{font:9px var(--mono);letter-spacing:.04em;text-transform:uppercase;border-radius:100px;padding:6px 9px;background:#263845;color:#afcedd;white-space:nowrap}.project-card h3{font:600 22px var(--display);letter-spacing:-.04em;margin:36px 0 10px}.project-card p{color:#9aafbd;font-size:13px;line-height:1.75;margin:0 0 20px}.project-bottom{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto}.project-bottom small{font:10px var(--mono);color:#73909f}.project-open{color:#b6dfeb;font-size:20px}.project-card:not(a) .project-open{opacity:.25}.muted{color:var(--muted2)}.tiny{font-size:12px}.feature-section{display:grid;grid-template-columns:1fr 1fr;background:#121c27;border:1px solid var(--edge);border-radius:10px;overflow:hidden;min-height:400px}.feature-art{min-height:390px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,#1d495b,#0b1726 58%,#09121b)}.feature-grid{position:absolute;inset:0;background-image:linear-gradient(#a3dae311 1px,transparent 1px),linear-gradient(90deg,#a3dae311 1px,transparent 1px);background-size:35px 35px;transform:perspective(300px) rotateX(25deg) scale(1.3)}.feature-orb{position:absolute;width:250px;height:250px;left:calc(50% - 125px);top:16%;border-radius:50%;background:radial-gradient(circle at 28% 23%,#82b4c0,#3e7886 34%,#11374b 66%,#061726 80%);box-shadow:0 0 90px #4c96ab51,inset -30px -23px 34px #03111fbb}.corner-mark{position:absolute;bottom:24px;left:26px;font:10px var(--mono);letter-spacing:.12em;color:#afd9e5}.feature-body{padding:55px 48px;display:flex;flex-direction:column;align-items:start;justify-content:center}.feature-body h2{font-size:59px}.feature-body p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.9;max-width:460px}.feature-chips{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0 28px}.feature-chips span{font:9px var(--mono);color:#a8c5d2;border:1px solid #344e5d;padding:7px 9px}.about-section{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about-section h2{font:600 clamp(36px,4.8vw,66px)/1.17 var(--display);letter-spacing:-.06em;margin:16px 0}.about-copy{color:var(--muted);font-size:15px;line-height:1.9}.about-copy .text-link{display:inline-block;margin-top:10px}.site-footer{border-top:1px solid #23313e;background:#0b111a}.footer-inner{min-height:180px;display:flex;justify-content:space-between;align-items:center;gap:30px}.brand-footer{font:600 14px var(--display);letter-spacing:.11em}.site-footer p{font-size:12px;color:var(--muted2)}.footer-links{display:flex;gap:22px;flex-wrap:wrap}.footer-links a,.copyright{font-size:11px;color:#8fa3af}.footer-links a:hover{color:white}.interior{min-height:70vh;padding-block:85px 110px}.interior-title{font:600 clamp(47px,7vw,83px)/1.13 var(--display);letter-spacing:-.07em;margin:20px 0}.narrow{max-width:650px}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin:52px 0 26px}.filter{border:1px solid var(--edge);background:#111c28;color:#9fb4c3;cursor:pointer;border-radius:5px;font-size:12px;padding:11px 17px}.filter:hover,.filter.active{background:#bedfea;color:#081723;border-color:#bedfea}.empty{border:1px dashed #3e5361;padding:40px;color:var(--muted);text-align:center;border-radius:7px}.work-notice{display:flex;gap:16px;margin-top:50px;border:1px solid #2c4150;background:#111e29;padding:22px;border-radius:6px}.notice-icon{height:25px;width:25px;flex:0 0 25px;border:1px solid #6db7cb;border-radius:50%;display:grid;place-items:center;color:#6db7cb;font:14px Georgia}.work-notice strong{font-size:13px}.work-notice p{font-size:12px;color:var(--muted);margin:4px 0 0}.heaven-hero{min-height:600px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:36px;padding-block:68px}.heaven-hero h1{font:700 clamp(75px,12vw,160px)/1 var(--display);letter-spacing:-.09em;margin:25px 0 18px}.heaven-visual{height:420px;display:grid;place-items:center;position:relative;background:radial-gradient(circle at center,#18374766,transparent 65%)}.heaven-visual:before{content:'';width:410px;height:410px;max-width:90%;position:absolute;border:1px dashed #476a7d55;border-radius:50%}.heaven-visual>span{position:absolute;bottom:18px;font:10px var(--mono);color:#87a4b5;letter-spacing:.07em}.system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.system-card{border:1px solid var(--edge);background:#111b27;padding:27px;min-height:235px;border-radius:6px}.system-card>span{font:10px var(--mono);color:var(--teal)}.system-card h3{font:600 21px var(--display);margin:25px 0 8px}.system-card p{font-size:13px;color:var(--muted);line-height:1.7}.availability{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:50px;border:1px solid var(--edge);background:#131f2b;border-radius:8px}.availability p:not(.eyebrow){color:var(--muted);max-width:640px}.portal-main{min-height:72vh;display:grid;place-items:center;padding-block:60px}.portal-card{text-align:center;max-width:660px;padding:60px 40px;border:1px solid var(--edge);background:#111b27;border-radius:12px}.portal-ring{display:grid;place-items:center;width:75px;height:75px;margin:0 auto 30px;border:1px solid #5a9db8;border-radius:50%;color:var(--teal);font:700 28px var(--display)}.portal-card h1{font:600 clamp(37px,5vw,64px) var(--display);letter-spacing:-.06em;margin:12px 0}.portal-card p:not(.eyebrow){color:var(--muted);line-height:1.9;margin-bottom:32px}
@media(max-width:1020px){.site-header{gap:22px}.navigation{gap:15px}.nav-github{margin-left:0}.hero{grid-template-columns:1fr .75fr}.hero-art{height:385px}.planet{width:230px;height:230px}.orbit-one{width:310px}.orbit-two{width:310px;height:310px}.project-grid{grid-template-columns:repeat(2,1fr)}.band-inner{justify-content:center}}
@media(max-width:730px){.shell{width:calc(100% - 36px)}.site-header{height:auto;min-height:70px;padding:15px 18px;gap:16px;flex-wrap:wrap}.navigation{order:3;width:100%;justify-content:space-between;gap:10px;overflow-x:auto}.navigation a{font-size:11px;white-space:nowrap}.nav-github{margin-left:auto}.hero{display:flex;flex-direction:column-reverse;align-items:stretch;gap:0;padding-block:20px 55px}.hero-art{height:300px}.planet{width:205px;height:205px}.hero h1{font-size:clamp(44px,11vw,70px)}.hero-stats{gap:16px;flex-wrap:wrap;margin-top:43px}.band-inner{gap:15px}.band-inner span{font-size:9px}.section{padding-block:64px}.section-heading{align-items:start}.project-grid,.system-grid{grid-template-columns:1fr}.project-card{min-height:250px}.feature-section{grid-template-columns:1fr}.feature-art{min-height:235px}.feature-orb{width:185px;height:185px;left:calc(50% - 92.5px);top:8%}.feature-body{padding:32px 25px 40px}.about-section{grid-template-columns:1fr;gap:15px}.footer-inner{min-height:200px;align-items:start;flex-wrap:wrap;padding-block:32px}.interior{padding-block:55px}.heaven-hero{grid-template-columns:1fr;padding-top:40px}.heaven-hero h1{font-size:clamp(64px,18vw,125px)}.heaven-visual{height:280px}.heaven-visual .planet{width:195px;height:195px}.availability{padding:28px;align-items:start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Project HEAVEN: approved ringed-planet Home logo, shared across the portfolio navigation. */
.site-header .brand .brand-mark{width:54px;height:52px;flex:0 0 54px;display:block;border:0;border-radius:0;font-size:0;line-height:0;color:transparent;background:transparent url("https://cdn.shopify.com/s/files/1/0827/1295/3078/files/projectheaven-original-purple-ringed-planet-logo.png?v=1793057984") center/contain no-repeat;filter:drop-shadow(0 0 3px #a53df955);transition:filter .2s ease}
.site-header .brand .brand-mark>span{display:none}
.site-header .brand:hover .brand-mark,.site-header .brand:focus-visible .brand-mark{filter:drop-shadow(0 0 7px #ba5dff88)}
@media(max-width:730px){.site-header .brand .brand-mark{width:46px;height:43px;flex-basis:46px}}

/* Project HEAVEN — original-lossless full-resolution design. No sprite upscaling. */
html.portfolio-art-ready body { isolation:isolate; background:#0a0910; }
.portfolio-backdrop {
  position:fixed; inset:0; z-index:-1; width:100%; height:100dvh;
  pointer-events:none; overflow:hidden; background:#0a0910;
}
.portfolio-background-image {
  display:block; width:100%; height:100%;
  object-fit:cover; object-position:center center;
  max-width:none; image-rendering:auto; user-select:none;
}
.portfolio-backdrop::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(7,6,13,.24),rgba(8,7,14,.33) 50%,rgba(8,6,14,.54));
}
html.portfolio-art-ready body::before {display:none}
html.portfolio-art-ready .site-header {
  background:rgba(10,8,17,.87); border-bottom-color:rgba(165,113,223,.24);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
html.portfolio-art-ready .site-footer {
  background:rgba(10,8,17,.91); border-top-color:rgba(165,113,223,.23);
}
html.portfolio-art-ready .pf-card,
html.portfolio-art-ready .pf-block,
html.portfolio-art-ready .system-card { backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
html.portfolio-nav-ready .site-header {
  gap:14px; padding-left:max(18px,calc((100vw - 1540px)/2));
  padding-right:max(18px,calc((100vw - 1540px)/2));
}
html.portfolio-nav-ready .site-header .brand {gap:8px; flex-shrink:0;}
html.portfolio-nav-ready .navigation {
  display:flex; align-items:center; gap:2px; min-width:0;
  justify-content:flex-end; margin-left:auto;
}
html.portfolio-nav-ready .navigation a {
  position:relative; display:block;
  flex:0 0 clamp(154px,12.8vw,224px);
  width:clamp(154px,12.8vw,224px);
  aspect-ratio:3/1;
  height:auto; padding:0;
  color:transparent; font-size:0; line-height:0;
  white-space:nowrap; text-indent:-1000vw; overflow:hidden;
  background-image:none!important;
  opacity:.96; filter:none;
  transition:transform .18s ease,filter .18s ease;
}
html.portfolio-nav-ready .portfolio-nav-art {
  position:absolute; inset:0;
  display:block; width:100%; height:100%; max-width:none;
  object-fit:contain; object-position:center;
  pointer-events:none; user-select:none; image-rendering:auto;
}
html.portfolio-nav-ready .navigation a:hover,
html.portfolio-nav-ready .navigation a:focus-visible,
html.portfolio-nav-ready .navigation a.active {
  opacity:1; filter:brightness(1.16) drop-shadow(0 0 6px rgba(169,88,244,.32));
  transform:translateY(-1px);
}
html.portfolio-nav-ready .navigation a.active::after {display:none}
@media(max-width:1260px) {
  html.portfolio-nav-ready .site-header .brand > span:not(.brand-mark) {display:none}
}
@media(max-width:960px) {
  html.portfolio-nav-ready .site-header {gap:8px}
  html.portfolio-nav-ready .navigation {
    justify-content:flex-start; overflow-x:auto; scrollbar-width:thin;
    scrollbar-color:#8259a8 transparent;
  }
  html.portfolio-nav-ready .navigation a { flex-basis:148px; width:148px; }
}
@media(max-width:730px) {
  html.portfolio-nav-ready .site-header {padding:10px 14px; gap:8px}
  /* Artwork must not restore the horizontal scroll hidden by the mobile text-nav layout. */
  html.portfolio-nav-ready .navigation {
    order:3; width:100%; margin-left:0;
    justify-content:flex-start; flex-wrap:wrap; overflow-x:visible;
    gap:6px; padding-bottom:0;
  }
  html.portfolio-nav-ready .navigation a {
    flex:0 0 calc((100% - 12px)/3);
    width:calc((100% - 12px)/3);
    min-width:0; min-height:44px;
  }
  .portfolio-backdrop::after {
    background:linear-gradient(180deg,rgba(7,6,13,.14),rgba(8,7,14,.36) 50%,rgba(8,6,14,.56));
  }
}
@media(max-width:540px) {
  html.portfolio-nav-ready .navigation {gap:8px}
  html.portfolio-nav-ready .navigation a {
    flex-basis:calc((100% - 8px)/2);
    width:calc((100% - 8px)/2);
  }
}
@media(prefers-reduced-motion:reduce) {
  html.portfolio-nav-ready .navigation a {transition:none; transform:none!important}
}

/* Shared phone navigation: six desktop destinations in a viewport-fit overlay.
   Does not suppress vertical scrolling of real page content. */
@media (max-width:900px){
 html.portfolio-mobile-controls-ready,html.portfolio-mobile-controls-ready body{max-width:100%;overflow-x:clip}
 html.portfolio-mobile-controls-ready .site-header{
   position:sticky!important;top:0;z-index:90;
   width:100%;height:64px!important;min-height:64px!important;
   display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
   justify-content:space-between!important;gap:7px!important;
   padding:6px max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left))!important;
 }
 html.portfolio-mobile-controls-ready .site-header .brand{flex:0 0 auto;min-width:0}
 html.portfolio-mobile-controls-ready .site-header .brand>span:not(.brand-mark){display:none!important}
 html.portfolio-mobile-controls-ready .site-header .brand .brand-mark{width:44px;height:42px;flex-basis:44px}
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle,
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{
   display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
   min-height:40px;border:1px solid #735896;border-radius:8px;
   padding:0 12px;color:#f4ebff;background:#1b1525;
   font:700 11px/1.2 system-ui;letter-spacing:.025em;
   touch-action:manipulation;cursor:pointer;
 }
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{margin-left:auto}
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen:disabled{opacity:.45;cursor:not-allowed}
 html.portfolio-mobile-controls-ready .site-header .nav-github{margin:0!important;font-size:10px!important;padding:9px!important}
 html.portfolio-mobile-controls-ready .site-header .navigation{
   display:none!important;position:fixed!important;top:calc(64px + env(safe-area-inset-top))!important;
   left:max(10px,env(safe-area-inset-left))!important;
   right:max(10px,env(safe-area-inset-right))!important;
   z-index:110!important;width:auto!important;max-width:calc(100vw - 20px)!important;
   max-height:calc(100dvh - 76px - env(safe-area-inset-bottom))!important;
   margin:0!important;padding:12px!important;overflow-y:auto!important;overflow-x:hidden!important;
   grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;
   border:1px solid #745b93;border-radius:12px;
   background:#100d1bed;box-shadow:0 16px 60px #000b;backdrop-filter:blur(20px);
 }
 html.portfolio-mobile-controls-ready.portfolio-mobile-nav-open .site-header .navigation{display:grid!important}
 html.portfolio-mobile-controls-ready .site-header .navigation a,
 html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a{
   box-sizing:border-box!important;display:flex!important;justify-content:center!important;
   align-items:center!important;width:100%!important;min-width:0!important;max-width:none!important;
   height:54px!important;min-height:54px!important;flex:auto!important;
   aspect-ratio:auto!important;overflow:visible!important;
   padding:10px!important;border:1px solid #4e4164!important;border-radius:8px!important;
   background:#211a30!important;color:#f5edff!important;font:700 12px/1.3 system-ui!important;
   text-indent:0!important;white-space:normal!important;text-align:center!important;letter-spacing:.04em!important;
   touch-action:manipulation;opacity:1!important;
 }
 html.portfolio-mobile-controls-ready .site-header .navigation a.active{border-color:#9d76c5!important;background:#3a2856!important}
 /* Show the supplied full-image buttons on phones too, not text-only cards. */
 html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a{
   position:relative!important;width:100%!important;
   height:auto!important;min-height:0!important;aspect-ratio:3/1!important;
   padding:0!important;border:0!important;border-radius:5px!important;
   background:transparent!important;color:transparent!important;
   font-size:0!important;line-height:0!important;text-indent:-200vw!important;
   white-space:nowrap!important;overflow:hidden!important;
   opacity:1!important;touch-action:manipulation;
 }
 html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a img.portfolio-nav-art{
   display:block!important;position:absolute;inset:0;
   width:100%!important;height:100%!important;object-fit:contain!important;
   max-width:100%;pointer-events:none;image-rendering:auto!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a.active{
   filter:brightness(1.19) drop-shadow(0 0 7px #a971ee88)!important;
 }
 html.portfolio-mobile-controls-ready .site-header .navigation a.active::after{display:none!important}
 html.portfolio-mobile-controls-ready .hero-art{max-width:100%;overflow:hidden}
 html.portfolio-mobile-controls-ready .hero{min-height:0}
 html.portfolio-mobile-controls-ready .interior{padding-top:34px}
}
@media(max-width:540px){
 html.portfolio-mobile-controls-ready .site-header .nav-github{display:none!important}
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle,
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{font-size:10px;padding-inline:10px}
}
@media(max-width:900px) and (orientation:landscape){
 html.portfolio-mobile-controls-ready .site-header{height:52px!important;min-height:52px!important}
 html.portfolio-mobile-controls-ready .site-header .navigation{top:calc(52px + env(safe-area-inset-top))!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;max-height:calc(100dvh - 60px)!important}
 html.portfolio-mobile-controls-ready .site-header .navigation a{min-height:44px!important;height:44px!important}
}

/* Phone/PWA header: Android standalone status icons occupy the top inset.
   Reserve that space rather than positioning MENU and FULL SCREEN underneath. */
@media (display-mode:standalone) and (max-width:900px){
 html.portfolio-mobile-controls-ready{--portfolio-system-top:max(28px,env(safe-area-inset-top,0px))}
 html.portfolio-mobile-controls-ready .site-header{
   box-sizing:border-box!important;height:calc(64px + var(--portfolio-system-top))!important;
   min-height:calc(64px + var(--portfolio-system-top))!important;
   padding-top:calc(var(--portfolio-system-top) + 6px)!important;
 }
 html.portfolio-mobile-controls-ready .site-header .navigation{
   top:calc(64px + var(--portfolio-system-top))!important;
   max-height:calc(100dvh - 78px - var(--portfolio-system-top))!important;
 }
}
@media (display-mode:standalone) and (max-width:900px) and (orientation:landscape){
 html.portfolio-mobile-controls-ready .site-header{
   height:calc(52px + var(--portfolio-system-top))!important;
   min-height:calc(52px + var(--portfolio-system-top))!important;
 }
 html.portfolio-mobile-controls-ready .site-header .navigation{
   top:calc(52px + var(--portfolio-system-top))!important;
   max-height:calc(100dvh - 60px - var(--portfolio-system-top))!important;
 }
}
/* Trim oversized landing-page whitespace on narrow devices without hiding
   actual portfolio content, sacrificing readable text, or causing scroll-x. */
@media (max-width:900px) and (pointer:coarse){
 html.portfolio-mobile-controls-ready .pf-hero{
   padding:clamp(21px,4vh,40px) 0 27px!important;gap:9px!important;
 }
 html.portfolio-mobile-controls-ready .pf-hero h1{
   font-size:clamp(32px,8.5vw,46px)!important;line-height:1.08!important;
   letter-spacing:-.055em!important;margin:14px 0!important;
 }
 html.portfolio-mobile-controls-ready .pf-hero .lede{
   font-size:clamp(13px,3.6vw,16px)!important;
   line-height:1.55!important;max-width:65ch;
 }
 html.portfolio-mobile-controls-ready .pf-hero .pf-kicker{font-size:10px!important}
 html.portfolio-mobile-controls-ready .pf-hero .pf-links{
   display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
   gap:9px!important;margin-top:19px!important;
 }
 html.portfolio-mobile-controls-ready .pf-hero .pf-links>a{
   min-width:0!important;font-size:11px!important;text-align:center;
   padding:12px 7px!important;min-height:44px!important;
 }
 html.portfolio-mobile-controls-ready .pf-grid{
   display:grid!important;grid-template-columns:minmax(0,1fr)!important;
   gap:10px!important;padding-bottom:48px!important;
 }
 html.portfolio-mobile-controls-ready .pf-grid .pf-card{
   grid-column:auto!important;min-height:0!important;
   gap:8px!important;padding:17px 18px!important;
 }
 html.portfolio-mobile-controls-ready .pf-card h2{font-size:clamp(19px,5.5vw,24px)!important;margin:0!important}
 html.portfolio-mobile-controls-ready .pf-card p{font-size:12px!important;line-height:1.5!important}
 html.portfolio-mobile-controls-ready .pf-card small{font-size:9px!important}
 html.portfolio-mobile-controls-ready .pf-card .pf-open{padding-top:5px!important;font-size:11px!important}
}
@media (max-width:360px) and (pointer:coarse){
 html.portfolio-mobile-controls-ready .pf-hero .pf-links{grid-template-columns:minmax(0,1fr)!important}
}

/* Cohesive graphical phone tools, replacing oversized purple text rectangles. */
.portfolio-mobile-menu-toggle,.portfolio-mobile-fullscreen,.portfolio-immersive-exit,.portfolio-nav-backdrop{display:none}
@media(max-width:900px){
 html.portfolio-mobile-controls-ready .site-header{z-index:140!important;isolation:isolate}
 html.portfolio-mobile-controls-ready .site-header .brand{margin-right:auto!important}
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle,
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{
  box-sizing:border-box!important;position:relative;display:inline-flex!important;flex:0 0 55px!important;
  width:55px!important;height:49px!important;min-height:49px!important;
  justify-content:center!important;align-items:flex-end!important;
  background-color:#050c16!important;
  background-repeat:no-repeat!important;background-position:center 0px!important;
  background-size:48px 41px!important;
  color:#bceeff!important;border:0!important;border-radius:7px!important;
  box-shadow:none!important;filter:drop-shadow(0 1px 4px #091f2b99);
  padding:0 1px 1px!important;font:700 8px/1.1 system-ui!important;
  letter-spacing:.05em!important;white-space:nowrap!important;
  touch-action:manipulation!important;z-index:2;
 }
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle{
  margin-left:auto!important;
  background-image:url("https://cdn.shopify.com/s/files/1/0827/1295/3078/files/projectheaven-20261027-12_menu.png?v=1793118511")!important;
 }
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{
  margin-left:0!important;
  background-image:url("https://cdn.shopify.com/s/files/1/0827/1295/3078/files/projectheaven-20261027-13_fullscreen.png?v=1793118519")!important;
 }
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle[aria-expanded="true"],
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen[aria-pressed="true"]{
  filter:brightness(1.3) drop-shadow(0 0 5px #4bd9ff7d)!important;
 }
 html.portfolio-mobile-controls-ready .portfolio-nav-backdrop:not([hidden]){
  display:block!important;position:fixed!important;inset:0!important;
  width:100vw;height:100dvh;background:rgba(1,5,11,.77)!important;
  border:0!important;padding:0!important;z-index:120!important;cursor:pointer!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-mobile-nav-open .site-header .navigation{
  display:grid!important;position:fixed!important;z-index:160!important;
  overflow-y:auto!important;overscroll-behavior:contain;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;row-gap:12px!important;
  padding:14px!important;background:#050b1aeF!important;
  border:1px solid #4272aa!important;border-radius:12px!important;
  box-shadow:0 20px 80px #000e,0 0 24px #4255cb40!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a{
  aspect-ratio:4.5/1!important;min-height:44px!important;
 }
 html.portfolio-mobile-controls-ready .site-header .navigation a{
  min-height:44px!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-mobile-immersive .site-header{
  display:none!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-mobile-immersive .portfolio-immersive-exit:not([hidden]){
  display:flex!important;position:fixed;right:max(12px,env(safe-area-inset-right));
  top:max(9px,env(safe-area-inset-top));z-index:210!important;
  justify-content:center;align-items:center;border:1px solid #61bfde;
  border-radius:8px;background:#0b1525eb;color:#d7faff;
  padding:7px 12px;min-height:42px;font:700 11px/1.2 system-ui;
  cursor:pointer;touch-action:manipulation;
 }
}
@media(max-width:900px) and (orientation:landscape){
 html.portfolio-mobile-controls-ready .portfolio-mobile-menu-toggle,
 html.portfolio-mobile-controls-ready .portfolio-mobile-fullscreen{
  flex-basis:51px!important;width:51px!important;height:43px!important;min-height:43px!important;
  background-size:41px 35px!important;font-size:7px!important;
 }
 html.portfolio-mobile-controls-ready.portfolio-mobile-nav-open .site-header .navigation{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
 }
}
@media(min-width:901px){
 html .portfolio-nav-backdrop{display:none!important}
 html .portfolio-immersive-exit{display:none!important}
}

/* Original background pixels without the artificial dark veil or backdrop blur. */
html.portfolio-art-ready .portfolio-backdrop::after{display:none!important}
html.portfolio-art-ready .portfolio-background-image{filter:none!important;opacity:1!important;transform:none!important;image-rendering:auto!important}
html.portfolio-art-ready .site-header,html.portfolio-art-ready .site-footer,html.portfolio-art-ready .pf-card,html.portfolio-art-ready .pf-block,html.portfolio-art-ready .system-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* Native 4:1 individually generated navigation artwork: display every pixel without extra stretching. */
html.portfolio-nav-ready .navigation a{aspect-ratio:4/1}
@media(max-width:900px){html.portfolio-mobile-controls-ready.portfolio-nav-ready .site-header .navigation a{aspect-ratio:4/1!important}}

/* === PROJECT HEAVEN: responsive shared 3D model navigation v56 ===
   Header owns its height. No button can slip underneath the page content.
   Original page link semantics remain intact. */
html.portfolio-model-ready .site-header{
  box-sizing:border-box!important;display:grid!important;
  position:relative!important;height:auto!important;min-height:112px!important;
  grid-template-columns:minmax(130px,185px) minmax(0,1fr)!important;
  align-items:center!important;column-gap:clamp(12px,2vw,26px)!important;
  padding:18px max(18px,calc((100vw - 1580px)/2))!important;
  overflow:visible!important;isolation:isolate!important;z-index:55!important;
}
html.portfolio-model-ready .site-header .brand{
  grid-column:1!important;min-width:0!important;flex-shrink:0!important;
}
html.portfolio-model-ready .site-header .navigation{
  grid-column:2!important;display:grid!important;overflow:visible!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:clamp(5px,.6vw,12px)!important;margin:0!important;
  align-items:center!important;padding:0!important;min-width:0!important;
}
html.portfolio-model-ready .site-header .navigation a{
  box-sizing:border-box!important;position:relative!important;
  display:grid!important;place-items:center!important;
  width:100%!important;height:auto!important;min-height:52px!important;
  flex:none!important;aspect-ratio:3.44 / 1!important;
  color:#ddf8ff!important;font-size:inherit!important;text-indent:0!important;
  white-space:nowrap!important;line-height:1!important;text-decoration:none!important;
  background:none!important;padding:0!important;opacity:1!important;
  border:0!important;overflow:visible!important;isolation:isolate!important;
  touch-action:manipulation;transform-style:preserve-3d;perspective:500px;
}
html.portfolio-model-ready .navigation .portfolio-model-surface{
  position:absolute;inset:0;display:block;pointer-events:none;
  background-size:100% 100%;background-position:center;background-repeat:no-repeat;
  transform:perspective(600px) rotateX(0deg);transition:filter .2s,transform .2s;
  filter:drop-shadow(0 2px 7px #03a3f018);
}
html.portfolio-model-ready .navigation .portfolio-model-label{
  position:relative;display:block;z-index:1;max-width:86%;overflow:hidden;
  color:#e4faff!important;font:700 clamp(8px,.8vw,13px)/1.15 system-ui,sans-serif;
  text-shadow:0 1px 3px #000,0 0 7px #051d2e;
  letter-spacing:.04em;text-align:center;text-transform:uppercase;
  pointer-events:none;
}
html.portfolio-model-ready .navigation a:hover .portfolio-model-surface,
html.portfolio-model-ready .navigation a:focus-visible .portfolio-model-surface{
  filter:brightness(1.22) drop-shadow(0 0 9px #45dcff88);
  transform:perspective(580px) rotateX(-7deg) translateY(-2px);
}
html.portfolio-model-ready .navigation a.active .portfolio-model-surface{
  filter:brightness(1.22) drop-shadow(0 0 8px #6adcff99);
}
html.portfolio-model-ready .navigation a.active::after{display:none!important}
html.portfolio-model-ready main{position:relative;z-index:1}
/* Medium widths: put navigation below the brand rather than shrink six tiles
   into unreadable 70-pixel ribbons. */
@media(min-width:901px) and (max-width:1280px){
 html.portfolio-model-ready .site-header{
   grid-template-columns:minmax(0,1fr)!important;row-gap:9px!important;
   padding:12px 18px 15px!important;
 }
 html.portfolio-model-ready .site-header .brand{grid-column:1!important}
 html.portfolio-model-ready .site-header .navigation{
   grid-column:1!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;
   gap:7px!important;
 }
 html.portfolio-model-ready .site-header .navigation a{min-height:43px!important}
 html.portfolio-model-ready .navigation .portfolio-model-label{font-size:clamp(8px,1.15vw,12px)}
}
/* Mobile keeps the existing working Menu and Full View actions, with a
   properly spaced drawer containing all six model buttons. */
@media(max-width:900px){
 html.portfolio-model-ready .site-header{
   display:flex!important;flex-wrap:nowrap!important;
   width:100%!important;max-width:100vw!important;
   min-height:68px!important;height:auto!important;
   padding:9px max(12px,env(safe-area-inset-right)) 9px max(12px,env(safe-area-inset-left))!important;
   gap:7px!important;
 }
 html.portfolio-model-ready .site-header .brand{
   flex:1 1 auto!important;min-width:0!important;margin-right:auto!important;
 }
 html.portfolio-model-ready .site-header .navigation{
   display:none!important;position:fixed!important;
   left:10px!important;right:10px!important;top:calc(68px + env(safe-area-inset-top,0px))!important;
   bottom:auto!important;max-height:calc(100dvh - 100px - env(safe-area-inset-top,0px))!important;
   width:auto!important;overflow-y:auto!important;overscroll-behavior:contain;
   grid-template-columns:repeat(2,minmax(0,1fr))!important;
   gap:10px!important;padding:14px!important;margin:0!important;
   z-index:160!important;border:1px solid #3c718b!important;
   border-radius:12px!important;background:#071320f5!important;
   box-shadow:0 20px 80px #000e!important;
 }
 html.portfolio-model-ready.portfolio-mobile-nav-open .site-header .navigation{
   display:grid!important;
 }
 html.portfolio-model-ready .site-header .navigation a{
   min-width:0!important;min-height:60px!important;aspect-ratio:3.44/1!important;
 }
 html.portfolio-model-ready .navigation .portfolio-model-label{
   font-size:clamp(10px,2.7vw,15px)!important;
 }
 html.portfolio-model-ready .site-header .portfolio-mobile-menu-toggle,
 html.portfolio-model-ready .site-header .portfolio-mobile-fullscreen{
   flex:0 0 55px!important;min-width:0!important;z-index:70!important;
 }
}
@media(display-mode:standalone) and (max-width:900px){
 html.portfolio-model-ready .site-header{
   padding-top:calc(12px + max(28px,env(safe-area-inset-top,0px)))!important;
   min-height:calc(74px + max(28px,env(safe-area-inset-top,0px)))!important;
 }
 html.portfolio-model-ready .site-header .navigation{
   top:calc(76px + max(28px,env(safe-area-inset-top,0px)))!important;
 }
}
@media(max-width:380px){
 html.portfolio-model-ready .site-header .navigation{grid-template-columns:minmax(0,1fr)!important}
 html.portfolio-model-ready .site-header .navigation a{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
 html.portfolio-model-ready .navigation .portfolio-model-surface{transition:none!important;transform:none!important}
}

/* The drawer must sit above its dismissible full-page backdrop. */
@media(max-width:900px){html.portfolio-model-ready.portfolio-mobile-nav-open .site-header{z-index:190!important}}
