/* Content-matched architectural illustrations, design 0.16.
   All art is native Container/Image composition with local inert SVGs. */
.jl-site.jl-site .studio-head,.jl-site.jl-site .studio-head>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,30%);align-items:center;gap:clamp(30px,5vw,80px)}
.jl-site.jl-site .studio-head:has(>.e-con-inner){display:block}
.jl-site.jl-site .studio-head-copy{min-width:0}
.jl-site.jl-site .studio-head-copy>.e-con-inner{display:flex;flex-direction:column}
.jl-site.jl-site .studio-head .sub{max-width:720px}
.jl-site.jl-site .studio-art{position:relative;min-width:0;width:100%;max-width:440px;justify-self:end;padding:18px 12px;border-block:1px solid #a68a6b55;background:linear-gradient(90deg,#94704d0a 1px,transparent 1px),linear-gradient(#94704d0a 1px,transparent 1px);background-size:24px 24px;isolation:isolate}
.jl-site.jl-site .studio-art>.e-con-inner{display:block;width:100%;padding:0}
.jl-site.jl-site .studio-art img,.jl-site.jl-site img.studio-line-image{display:block;width:100%;height:auto;max-height:260px;object-fit:contain;opacity:.84}
.jl-site.jl-site .studio-line-image.elementor-widget-image{width:100%;margin:0}
.jl-site.jl-site .studio-line-image>.elementor-widget-container{height:100%;width:100%}
.jl-site.jl-site .studio-line-image img{display:block;width:100%;object-fit:contain;opacity:.84}
.jl-site.jl-site .studio-structure-board{padding:18px;background:#f2ebdf;border:1px solid #a68a6b55}
.jl-site.jl-site .studio-photo-frame{outline:1px solid #a68a6b66;outline-offset:6px}
.jl-site.jl-site .studio-photo-frame.hero-img{outline:none}
/* Kevin remains the actual alpha portrait, with breathing room. */
.jl-site.jl-site.page-home #about{overflow:hidden;padding-bottom:0}
.jl-site.jl-site.page-home #about .split{align-items:end}
.jl-site.jl-site.page-home #about .split:has(>.e-con-inner){display:block}
.jl-site.jl-site.page-home #about .split>.e-con-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(45px,8vw,140px);align-items:end;width:100%;max-width:none;justify-self:stretch}
.jl-site.jl-site.page-home #about .split>div:not(.studio-founder):not(.e-con-inner),.jl-site.jl-site.page-home #about .split>.e-con-inner>div:not(.studio-founder){padding-bottom:clamp(56px,5.5vw,104px)}
.jl-site.jl-site.page-home #about .split>div.studio-founder:last-child,.jl-site.jl-site.page-home #about .split>.e-con-inner>.studio-founder{max-width:560px;align-self:end}
.jl-site.jl-site.page-home #about .studio-founder{position:relative;width:100%;min-width:0;min-height:390px;aspect-ratio:1;display:flex;align-items:flex-end;border-bottom:0;padding-bottom:0}
.jl-site.jl-site .studio-founder>.e-con-inner{position:relative;display:flex;align-items:flex-end;align-self:stretch;width:100%;height:100%;min-height:inherit;padding:0}
.jl-site.jl-site .studio-founder .studio-portrait{position:relative;display:block;align-self:flex-end;width:100%;margin:0;background:transparent}
.jl-site.jl-site .studio-founder img.studio-portrait,.jl-site.jl-site .studio-founder .studio-portrait img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center bottom;aspect-ratio:1/1;min-height:0}
/* A static native Image supplies the biography atmosphere; no motion selectors. */
.jl-site.jl-site .studio-founder{isolation:isolate}
.jl-site.jl-site .studio-founder .studio-portrait{z-index:2}
.jl-site.jl-site .studio-founder>.studio-portrait,.jl-site.jl-site .studio-founder>.e-con-inner>.studio-portrait{width:100%;margin-left:auto}
.jl-site.jl-site .studio-founder img.studio-portrait{width:100%}
.jl-site.jl-site .studio-founder-sketch{position:absolute;left:-18%;bottom:0;width:115%;height:115%;z-index:0;pointer-events:none;opacity:.36;padding:0;margin:0}
.jl-site.jl-site .studio-founder-sketch>.e-con-inner{display:block;position:relative;width:100%;height:100%;padding:0}
.jl-site.jl-site .studio-founder-sketch-image,.jl-site.jl-site .studio-founder-sketch-image>.elementor-widget-container{display:block;width:100%;height:100%;padding:0;margin:0}
.jl-site.jl-site img.studio-founder-sketch-image,.jl-site.jl-site .studio-founder-sketch-image img{display:block;width:100%;height:100%;max-height:none;max-width:none;object-fit:contain;opacity:1}
.jl-site.jl-site .studio-cta::after{display:none}
/* The original material paragraphs each sit beside their corresponding sample. */
.jl-site.jl-site .studio-material-row,.jl-site.jl-site .studio-material-row>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,28%);align-items:center;gap:clamp(24px,5vw,70px);width:100%;min-width:0}
.jl-site.jl-site .studio-material-row:has(>.e-con-inner){display:block}
.jl-site.jl-site .studio-material-row{padding:22px 0;border-top:1px solid var(--line)}
.jl-site.jl-site .studio-material-row .sub{margin:0;max-width:760px}
.jl-site.jl-site .studio-material-image{min-width:0;width:100%;max-width:240px;justify-self:end}
.jl-site.jl-site .studio-material-image>.e-con-inner{display:block;width:100%;padding:0}
.jl-site.jl-site .studio-material-image img{max-height:160px}
/* Small, consistent visual slots live inside their actual process steps. */
.jl-site.jl-site .studio-steps,.jl-site.jl-site .studio-steps>.e-con-inner{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;width:100%;padding-inline:0}
.jl-site.jl-site.page-carpentry .studio-steps,.jl-site.jl-site.page-carpentry .studio-steps>.e-con-inner{grid-template-columns:repeat(4,minmax(0,1fr))}
.jl-site.jl-site .studio-steps:has(>.e-con-inner){display:block}
.jl-site.jl-site .studio-action>.e-con-inner{display:block;width:100%;padding:0}
.jl-site.jl-site .studio-steps .step-num{font-size:36px;margin-bottom:12px}
.jl-site.jl-site .studio-step-art{height:126px;max-width:230px;width:100%;margin:0 0 22px;display:flex;align-items:center;justify-content:flex-start;padding:0;min-width:0}
.jl-site.jl-site .studio-step-art>.e-con-inner{height:100%;width:100%;padding:0;display:flex;align-items:center;justify-content:flex-start}
.jl-site.jl-site .studio-step-art>.studio-line-image,.jl-site.jl-site .studio-step-art>.e-con-inner>.studio-line-image{width:100%;height:100%;max-height:126px;object-fit:contain;object-position:left center}
.jl-site.jl-site .studio-step-art .studio-line-image img{height:100%;max-height:126px;object-position:left center}
.jl-site.jl-site .studio-sample-pair,.jl-site.jl-site .studio-sample-pair>.e-con-inner{display:flex;align-items:center;width:100%;height:100%;gap:0;padding:0}
.jl-site.jl-site .studio-sample-pair:has(>.e-con-inner){display:block}
.jl-site.jl-site .studio-sample-pair>.studio-line-image,.jl-site.jl-site .studio-sample-pair>.e-con-inner>.studio-line-image{flex:0 1 50%;width:50%;min-width:0;max-width:50%;height:auto}
.jl-site.jl-site .studio-sample-pair .studio-line-image img{height:auto}
/* The tape is assembled in one shared coordinate frame; entry never owns the
   hook transform. Drafting tools use separate entrance Containers. */
.jl-site.jl-site .studio-tool-scene{position:relative;isolation:isolate;display:block;width:100%;max-width:230px;min-width:0;aspect-ratio:360/200;margin:0;padding:0;pointer-events:none}
.jl-site.jl-site .studio-tool-measure{aspect-ratio:2/1}
.jl-site.jl-site .studio-tool-scene>.e-con-inner{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;display:block}
.jl-site.jl-site .studio-tool-scene .studio-tool-layer{position:absolute;inset:0;display:block;width:100%;max-width:none;height:100%;max-height:none;min-height:0;margin:0;padding:0;opacity:1;object-fit:contain;pointer-events:none;transform-origin:50% 50%}
.jl-site.jl-site .studio-tool-scene .studio-tool-layer>.elementor-widget-container{height:100%;width:100%}
.jl-site.jl-site .studio-tool-scene .studio-tool-layer img{display:block;width:100%;height:100%;max-height:none;max-width:none;margin:0;object-fit:contain;opacity:1}
.jl-site.jl-site .studio-tool-scene .tool-tape-blade{clip-path:inset(0 0 0 55%)}
.jl-site.jl-site .studio-tool-scene .tool-tape-hook{transform:translateX(47.5%)}
.jl-site.jl-site .studio-tool-scene .tool-tape-body{z-index:2}
@media(hover:hover) and (pointer:fine){
 .jl-site.jl-site:not(.motion-paused) .studio-action:hover .tool-drafting-pencil{animation:jl-tool-pencil 1.7s ease-in-out both}
 .jl-site.jl-site:not(.motion-paused) .studio-action:hover .tool-drafting-triangle{animation:jl-tool-square 1.7s ease-in-out both}
 .jl-site.jl-site:not(.motion-paused) .studio-action:hover .tool-tape-blade{animation:jl-tool-measure-blade 2.2s ease-in-out both}
 .jl-site.jl-site:not(.motion-paused) .studio-action:hover .tool-tape-hook{animation:jl-tool-measure-hook 2.2s ease-in-out both}
}
@keyframes jl-tool-pencil{0%,100%{transform:none}35%,60%{transform:translate(-5px,-3px) rotate(-3deg)}}
@keyframes jl-tool-square{0%,100%{transform:none}35%,60%{transform:translate(2px,0) rotate(2deg)}}
@keyframes jl-tool-measure-blade{0%,100%{clip-path:inset(0 0 0 55%)}38%,64%{clip-path:inset(0 0 0 7.5%)}}
@keyframes jl-tool-measure-hook{0%,100%{transform:translateX(47.5%)}38%,64%{transform:translateX(0)}}
@media(max-width:1100px){.jl-site.jl-site .studio-head,.jl-site.jl-site .studio-head>.e-con-inner{grid-template-columns:minmax(0,1fr) minmax(180px,28%);gap:32px}.jl-site.jl-site.page-home #about .studio-founder{min-height:320px}.jl-site.jl-site .studio-steps,.jl-site.jl-site .studio-steps>.e-con-inner,.jl-site.jl-site.page-carpentry .studio-steps,.jl-site.jl-site.page-carpentry .studio-steps>.e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 30px}}
@media(max-width:760px){
 .jl-site.jl-site .studio-head,.jl-site.jl-site .studio-head>.e-con-inner{grid-template-columns:1fr;gap:25px}
 .jl-site.jl-site .studio-art{justify-self:start;width:min(100%,340px);padding:10px 8px}.jl-site.jl-site .studio-art img{max-height:185px}
 .jl-site.jl-site .studio-structure-board{padding:16px}
 .jl-site.jl-site.page-home #about .split>.e-con-inner{grid-template-columns:1fr;gap:32px}
 .jl-site.jl-site.page-home #about .split>div:not(.studio-founder):not(.e-con-inner),.jl-site.jl-site.page-home #about .split>.e-con-inner>div:not(.studio-founder){padding-bottom:0}
 .jl-site.jl-site.page-home #about .split>div.studio-founder:last-child,.jl-site.jl-site.page-home #about .split>.e-con-inner>.studio-founder{width:94%;max-width:400px;min-height:0;justify-self:center;margin-top:18px}
 .jl-site.jl-site .studio-founder-sketch{left:-14%;width:112%;height:112%;opacity:.32}
 .jl-site.jl-site .studio-photo-frame{outline-offset:4px}
 .jl-site.jl-site .studio-material-row,.jl-site.jl-site .studio-material-row>.e-con-inner{grid-template-columns:minmax(0,1fr) 110px;gap:16px}
 .jl-site.jl-site .studio-step-art{height:106px;margin-bottom:18px}
 .jl-site.jl-site .studio-step-art>.studio-line-image,.jl-site.jl-site .studio-step-art>.e-con-inner>.studio-line-image,.jl-site.jl-site .studio-step-art .studio-line-image img{max-height:106px}
}
@media(max-width:520px){
 .jl-site.jl-site .studio-material-row,.jl-site.jl-site .studio-material-row>.e-con-inner{grid-template-columns:1fr;gap:14px}
 .jl-site.jl-site .studio-material-image{width:180px;justify-self:start}
 .jl-site.jl-site .studio-steps,.jl-site.jl-site .studio-steps>.e-con-inner,.jl-site.jl-site.page-carpentry .studio-steps,.jl-site.jl-site.page-carpentry .studio-steps>.e-con-inner{grid-template-columns:1fr;gap:28px}
 .jl-site.jl-site .studio-steps .step,.jl-site.jl-site .studio-steps .step>.e-con-inner{display:grid;grid-template-columns:minmax(0,1fr) 135px;column-gap:16px}
 .jl-site.jl-site .studio-steps .step:has(>.e-con-inner){display:block}
 .jl-site.jl-site .studio-steps .step-num{grid-column:1;grid-row:1;margin-bottom:8px}
 .jl-site.jl-site .studio-steps .studio-step-art{grid-column:2;grid-row:1/3;height:90px;margin:0;align-self:center}
 .jl-site.jl-site .studio-steps .step h3,.jl-site.jl-site .studio-steps .step .elementor-widget-heading{grid-column:1;grid-row:2}
 .jl-site.jl-site .studio-steps .step p,.jl-site.jl-site .studio-steps .step .elementor-widget-text-editor:not(.step-num){grid-column:1/-1;grid-row:3;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.jl-site.jl-site .studio-tool-scene .studio-tool-layer{animation:none!important}}
.jl-site.jl-site.motion-paused .studio-tool-scene .studio-tool-layer,.elementor-editor-active .jl-site.jl-site .studio-tool-scene .studio-tool-layer,.jl-site.jl-site.elementor-editor-active .studio-tool-scene .studio-tool-layer{animation:none!important}

/* Viewport entrances own these outer Containers only. Their native Image
   children keep the existing hover motion and tape-hook resting transform. */
.jl-site.jl-site .studio-tool-scene .studio-tool-entry,
.jl-site.jl-site .studio-tool-scene .studio-tool-entry>.e-con-inner{position:absolute;inset:0;display:block;width:100%;max-width:none;min-width:0;height:100%;max-height:none;min-height:0;margin:0;padding:0;box-sizing:border-box;pointer-events:none}
.jl-site.jl-site .studio-tool-entry{--studio-entry-rise:12px;--studio-entry-duration:600ms;opacity:1;transform:none}
.jl-site.jl-site .studio-entry-1{--studio-entry-delay:90ms}
.jl-site.jl-site .studio-entry-2{--studio-entry-delay:180ms}
.jl-site.jl-site .studio-entry-3{--studio-entry-delay:270ms}
.jl-site.jl-site .studio-line-image{--studio-entry-rise:8px;--studio-entry-duration:550ms}
.jl-site.jl-site img.studio-line-image{--studio-entry-opacity:.84}
.jl-site.jl-site .studio-line-image.studio-pending,
.jl-site.jl-site .studio-tool-scene.studio-pending .studio-tool-entry{opacity:0;transform:translateY(var(--studio-entry-rise,12px))}
.jl-site.jl-site .studio-line-image.studio-entering{animation:jl-studio-entry var(--studio-entry-duration,550ms) cubic-bezier(.2,.65,.25,1) both}
.jl-site.jl-site .studio-tool-scene.studio-entering .studio-tool-entry{animation:jl-studio-entry var(--studio-entry-duration,600ms) cubic-bezier(.2,.65,.25,1) var(--studio-entry-delay,90ms) both}
@keyframes jl-studio-entry{from{opacity:0;transform:translateY(var(--studio-entry-rise,12px))}to{opacity:var(--studio-entry-opacity,1);transform:none}}
@media(max-width:760px){.jl-site.jl-site .studio-line-image,.jl-site.jl-site .studio-tool-entry{--studio-entry-rise:6px;--studio-entry-duration:450ms}}
@media(prefers-reduced-motion:reduce){.jl-site.jl-site :is(.studio-line-image,.studio-tool-entry){opacity:var(--studio-entry-opacity,1)!important;transform:none!important;animation:none!important;transition:none!important}}
.jl-site.jl-site.motion-paused :is(.studio-line-image,.studio-tool-entry),
.elementor-editor-active .jl-site.jl-site :is(.studio-line-image,.studio-tool-entry),
.jl-site.jl-site.elementor-editor-active :is(.studio-line-image,.studio-tool-entry){opacity:var(--studio-entry-opacity,1)!important;transform:none!important;animation:none!important;transition:none!important}
