/* Light-mode product direction: same design system as Building Now, expressed in white. */
body:not(.building-page){background:
  radial-gradient(900px 500px at 88% -8%, rgba(174,191,216,.16), transparent 68%),
  linear-gradient(180deg,#fcfcfb 0%,#f8f8f5 100%);}
body:not(.building-page) .topline{background:rgba(252,252,250,.74);box-shadow:0 1px 0 rgba(17,17,17,.045)}

/* Cover */
.home-cover-page .cover-hero{position:relative;min-height:calc(100vh - 66px);padding-top:8vh;padding-bottom:8vh;grid-template-rows:1fr auto auto}
.home-cover-page .cover-hero::after{content:"JC";position:absolute;right:-1vw;top:7vh;font-family:var(--serif);font-size:clamp(180px,26vw,420px);line-height:.75;letter-spacing:-.08em;color:rgba(85,104,132,.035);pointer-events:none;z-index:-1}
.home-cover-page .cover-copy{padding-bottom:34px}
.home-cover-page .cover-copy h1{max-width:950px}
.home-cover-page .cover-second-line{margin-top:34px}
.home-cover-page .cover-bottom{position:relative;margin-top:24px;padding-top:52px}
.home-cover-page .cover-bottom::before{content:"01";position:absolute;right:0;bottom:56px;font-family:var(--serif);font-size:84px;color:rgba(17,17,17,.04);line-height:1}
.home-utility-row{grid-column:2;display:flex;align-items:center;gap:26px;margin-top:34px;padding-top:18px;border-top:1px solid rgba(17,17,17,.09);font-size:11px;color:#77746f}
.home-utility-row a{text-decoration:none;color:#4a4844;transition:opacity .2s ease,transform .2s ease}.home-utility-row a:hover{opacity:.6;transform:translateY(-1px)}
.resume-slot{margin-right:auto;display:inline-flex;align-items:baseline;gap:10px;color:#252522}.resume-slot small{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#9a9791}

/* Contact popout */
.contact-popover{position:relative;display:inline-block}
.contact-popover summary{list-style:none;cursor:pointer;user-select:none}
.contact-popover summary::-webkit-details-marker{display:none}
.contact-popover summary:focus-visible{outline:1px solid #6f6c66;outline-offset:5px}
.topline nav .contact-popover>summary{font-family:var(--sans);font-size:12px;font-weight:400;line-height:normal;color:#6a6863;transition:color .2s ease,transform .2s ease}
.topline nav .contact-popover>summary:hover{color:var(--ink);transform:translateY(-1px)}
.contact-menu{position:absolute;right:0;top:calc(100% + 14px);width:250px;padding:8px;border:1px solid rgba(17,17,17,.10);border-radius:18px;background:rgba(250,250,248,.94);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 18px 50px rgba(17,17,17,.10);z-index:20}
.contact-menu a{display:flex!important;flex-direction:column;gap:4px;padding:13px 14px!important;border-radius:12px;text-decoration:none!important;color:#1f1f1d!important}
.contact-menu a:hover{background:rgba(216,222,230,.42)}
.contact-menu span{font-size:12px;font-weight:500}
.contact-menu small{font-size:10px;color:#827f79;font-weight:400;letter-spacing:0}
.contact-popover[open] summary{opacity:.55}

/* Shared light product-stage treatment */
.about-profile-page .about-spread,
.portfolio-casebook-page .casebook-intro,
.lab.page-first,
.approach.page-first{position:relative;isolation:isolate}
.about-profile-page .about-spread::before,
.portfolio-casebook-page .casebook-intro::before,
.lab.page-first::before,
.approach.page-first::before{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(1px);background:radial-gradient(circle,rgba(164,183,210,.14),rgba(164,183,210,.045) 45%,transparent 72%)}
.about-profile-page .about-spread::before{width:560px;height:560px;left:-240px;top:-110px}
.portfolio-casebook-page .casebook-intro::before{width:620px;height:620px;right:-270px;top:-250px}
.lab.page-first::before{width:590px;height:590px;right:-260px;top:-210px}
.approach.page-first::before{width:540px;height:540px;left:-250px;top:-160px}

/* About: quiet Apple profile page */
.about-profile-page .about-spread-left{padding-top:18px}
.about-profile-page .about-spread-left::after{content:"PROFILE / 2026";display:block;margin-top:38px;padding-top:16px;border-top:1px solid rgba(17,17,17,.14);font-size:9px;letter-spacing:.19em;color:#8a8882}
.about-profile-page .about-spread-right{padding-top:6vh}
.about-profile-page .about-spread-right p:first-child{font-size:22px;line-height:1.66;color:#1e1e1c}

/* Portfolio: light product casebook */
.portfolio-casebook-page .casebook-intro{min-height:52vh;align-items:end;padding-top:8vh;padding-bottom:6vh}
.portfolio-casebook-page .casebook-count{align-self:start;padding-top:10px}
.portfolio-casebook-page .casebook-count span{font-size:clamp(120px,16vw,230px);color:rgba(42,56,76,.08)}
.portfolio-casebook-page .casebook-metrics{background:rgba(255,255,255,.44);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid rgba(17,17,17,.08);border-bottom:1px solid rgba(17,17,17,.08)}
.portfolio-casebook-page .casebook-case{transition:background .25s ease,transform .25s ease}
.portfolio-casebook-page .casebook-case:hover{background:linear-gradient(90deg,rgba(207,218,232,.25),rgba(255,255,255,0));transform:translateX(4px)}

/* Solutions Lab: actual build proof */
.lab.page-first{padding-top:8vh}
.lab .split-intro{min-height:36vh;align-items:end;border-bottom:1px solid rgba(17,17,17,.14);padding-bottom:42px;margin-bottom:0}
.lab .section-intro h2{font-size:clamp(58px,7vw,100px);line-height:.9;max-width:760px}
.lab .intro-stack{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.lab .lab-repo-link{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-size:12px;padding:10px 14px;border:1px solid rgba(17,17,17,.16);border-radius:999px;background:rgba(255,255,255,.46);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:transform .2s ease,background .2s ease}
.lab .lab-repo-link:hover{transform:translateY(-2px);background:rgba(255,255,255,.8)}
.lab .lab-repo-link span{font-family:var(--serif);font-size:18px;line-height:1}
.lab .lab-grid{margin-top:54px}
.lab .lab-grid article{min-height:160px;padding:34px 6px 32px}
.lab .lab-grid article:hover{background:linear-gradient(90deg,rgba(207,218,232,.22),transparent 82%)}
.lab .lab-grid span{font-size:72px;color:rgba(68,85,110,.07);top:2px}

/* Approach: make the method feel like a product sequence */
.approach.page-first .split-intro{min-height:34vh;align-items:end;border-bottom:1px solid rgba(17,17,17,.14);padding-bottom:42px}
.approach.page-first .section-intro h2{font-size:clamp(58px,7vw,98px);line-height:.9;max-width:800px}
.approach .flow{counter-reset:step}
.approach .flow li{min-height:112px;align-items:center;padding-top:28px;padding-bottom:28px}
.approach .flow li>span{font-size:28px;color:rgba(39,56,80,.34)}
.approach .flow li strong{font-size:17px}
.approach .playbook-note{background:rgba(255,255,255,.45);padding:28px 28px 30px;border:1px solid rgba(17,17,17,.10);border-radius:22px;box-shadow:0 18px 50px rgba(17,17,17,.035)}

/* Contact page exists as an optional future destination, but Contact is currently a utility link. */
.contact-page main{width:min(1280px,calc(100% - 64px))}
.contact-stage{min-height:calc(100vh - 66px);display:grid;grid-template-rows:auto 1fr auto;padding:34px 0 54px;position:relative;isolation:isolate}
.contact-stage::before{content:"";position:absolute;right:-180px;top:8vh;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(157,177,208,.18),rgba(157,177,208,.05) 44%,transparent 72%);z-index:-1}
.contact-kicker{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:#817e78}
.contact-main{align-self:center;max-width:920px}
.contact-main h1{font-family:var(--serif);font-weight:400;font-size:clamp(94px,14vw,210px);line-height:.78;letter-spacing:-.065em}
.contact-copy{margin-top:34px;max-width:650px;font-size:19px;line-height:1.58;color:#46443f}
.contact-actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(17,17,17,.14)}
.contact-actions a{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 20px;padding:24px 28px 10px 0;text-decoration:none;border-right:1px solid rgba(17,17,17,.10);transition:transform .2s ease,background .2s ease,padding-left .2s ease}
.contact-actions a:nth-child(n+2){padding-left:28px}.contact-actions a:last-child{border-right:0}.contact-actions a:hover{background:rgba(255,255,255,.44);transform:translateY(-3px)}
.contact-actions span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#88857f}.contact-actions strong{font-size:14px;font-weight:500}.contact-actions i{grid-column:2;grid-row:1/3;align-self:center;font-family:var(--serif);font-size:26px;font-style:normal;color:#77736c}

@media(max-width:850px){
  .about-profile-page .about-spread-right{padding-top:0}
  .lab .split-intro,.approach.page-first .split-intro{min-height:0;padding-bottom:32px}
  .lab .intro-stack{margin-top:24px}
  .contact-actions{grid-template-columns:1fr}.contact-actions a{border-right:0;border-bottom:1px solid rgba(17,17,17,.10);padding-left:0!important}
}
@media(max-width:600px){
  .home-cover-page .cover-hero{padding-top:9vh;padding-bottom:9vh}
  .home-cover-page .cover-copy{padding-bottom:44px}
  .home-cover-page .cover-second-line{margin-top:28px}
  .home-cover-page .cover-bottom{margin-top:30px;padding-top:42px}
  .home-cover-page .cover-hero::after{font-size:220px;right:-70px;top:18vh}
  .home-utility-row{grid-column:1/3;gap:16px;margin-top:26px;padding-top:14px}.resume-slot small{display:none}
  .topline nav .contact-popover>summary{font-size:10px}
  .contact-menu{right:-6px;width:220px}
  .about-profile-page .about-spread-left::after{margin-top:24px}
  .portfolio-casebook-page .casebook-intro{min-height:0;padding-top:54px}
  .lab .section-intro h2,.approach.page-first .section-intro h2{font-size:52px}
  .lab .lab-grid article{min-height:0}
  .contact-page main{width:calc(100% - 36px)}.contact-stage{padding-top:24px}.contact-kicker span:last-child{display:none}.contact-main h1{font-size:clamp(84px,25vw,126px)}.contact-copy{font-size:17px}
}