.home-hero *{box-sizing:border-box}
.home-hero{margin:0;background:var(--page);color:var(--ink);font:500 18px/1.5 Manrope,Arial,sans-serif}
.home-hero a{color:inherit;text-decoration:none}
.home-hero a:hover{text-decoration:underline;text-underline-offset:5px}
.home-hero a:focus-visible,.home-hero button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.home-hero h1,.home-hero p,.home-hero figure{margin:0}
.home-hero button{font:inherit}
.home-hero{display:grid;grid-template-columns:minmax(0,.833fr) minmax(0,1fr);gap:7.5vw;margin:3.55vw 4.5vw 4vw 7.3vw;align-items:stretch}
.home-hero .hero-copy{display:flex;flex-direction:column;padding:4.65vw 0 2.8vw;min-width:0}
.home-hero h1{font-size:clamp(64px,8.25vw,174px);font-weight:600;line-height:1.025;letter-spacing:-.055em}
.home-hero h1>span{display:block}
.home-hero .dotted-o{position:relative;display:inline-block;line-height:1}
.home-hero .dotted-o:after{content:"";position:absolute;left:.304em;top:.6125em;width:.13em;height:.13em;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}
.home-hero .tagline{font-size:clamp(22px,2.05vw,43px);line-height:1.4;letter-spacing:-.04em;border-left:4px solid var(--gold);padding-left:1.6vw;margin-top:1.85vw;white-space:nowrap}
.home-hero .actions{display:flex;gap:.85vw;margin-top:auto;padding-top:44px}
.home-hero .button{display:inline-flex;align-items:center;justify-content:center;min-height:64px;padding:1.25vw 1.85vw;font-size:clamp(16px,1.55vw,30px);letter-spacing:-.035em;white-space:nowrap;border:1px solid var(--ink);line-height:1.5}
.home-hero .button.primary{background:var(--ink);color:var(--page)}
.home-hero .button:hover{text-decoration:none;box-shadow:inset 0 0 0 1px currentColor}
.home-hero .home-portrait{position:relative;min-width:0}
.home-hero .home-portrait:before{content:"";position:absolute;inset:-3% -3.8% 3.7% 3.4%;background:var(--ink)}
.home-hero .portrait-stage{position:relative;isolation:isolate;aspect-ratio:1}
.home-hero .portrait{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.home-hero .puzzle-field{position:absolute;inset:0;container-type:size;--tw:min(calc((100cqw - (var(--cols) - 1)*5px)/var(--cols)),calc((100cqh - (var(--rows) - 1)*5px)/var(--rows)*16/9));--th:calc(var(--tw)*9/16);--pitch-x:calc(var(--tw) + 5px);--pitch-y:calc(var(--th) + 5px);--start-x:calc((100cqw - var(--cols)*var(--tw) - (var(--cols) - 1)*5px)/2);--start-y:calc((100cqh - var(--rows)*var(--th) - (var(--rows) - 1)*5px)/2)}
@media(min-width:2100px){.home-hero{max-width:1800px;margin:74px auto 80px;gap:156px}
.home-hero .hero-copy{padding:98px 0 59px}
.home-hero .tagline{margin-top:39px;padding-left:34px}
.home-hero .button{padding:26px 39px}
.home-hero .actions{gap:18px}
}
@media(min-width:761px) and (max-width:1150px){.home-hero{gap:5vw;margin-left:5vw}
.home-hero .hero-copy{padding-top:3vw;padding-bottom:0}
.home-hero h1{font-size:8.15vw}
.home-hero .tagline{white-space:normal;font-size:23px;padding-left:18px;margin-top:24px}
.home-hero .actions{flex-wrap:wrap;gap:10px;padding-top:24px}
.home-hero .button{min-height:48px;padding:10px 18px}
}
@media(max-width:760px){.home-hero{display:flex;flex-direction:column;gap:30px;margin:30px 28px 36px}
.home-hero .hero-copy{display:contents}
.home-hero .hero-heading{order:0}
.home-hero h1{font-size:clamp(52px,12.5vw,92px);line-height:1.02}
.home-hero .tagline{white-space:normal;font-size:clamp(22px,4.2vw,28px);margin-top:22px;padding-left:16px;border-left-width:3px}
.home-hero .home-portrait{order:1;margin-top:5px}
.home-hero .actions{order:2;margin-top:0;padding-top:0;gap:12px;flex-wrap:wrap}
.home-hero .button{min-height:52px;padding:12px 18px;font-size:17px;flex:1 1 200px}
}
.home-hero .puzzle-tile,.home-hero .puzzle-gap{position:absolute;left:calc(var(--start-x) + var(--col)*var(--pitch-x));top:calc(var(--start-y) + var(--row)*var(--pitch-y));width:var(--tw);height:var(--th);border:0;border-radius:0;margin:0;padding:0;box-sizing:border-box}
.home-hero .puzzle-tile{display:block;background-image:url('assets/portrait-mosaic-atlas-v03.webp');background-repeat:no-repeat;background-color:transparent;opacity:1;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:default}
.home-hero .puzzle-tile.is-movable{cursor:grab;touch-action:none}
.home-hero .puzzle-tile.is-dragging{cursor:grabbing;z-index:3}
.home-hero .puzzle-tile.is-selected{outline:1px solid #fbf8f0e6;outline-offset:-1px;z-index:2}
.home-hero .puzzle-tile.is-movable:hover{box-shadow:inset 0 0 0 1px #fbf8f0c0}
.home-hero .puzzle-tile:focus-visible,.home-hero .puzzle-gap:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.home-hero .puzzle-gap{background:transparent;pointer-events:none}
.home-hero .puzzle-gap.is-target{pointer-events:auto;cursor:pointer;background:#fbf8f012;box-shadow:inset 0 0 0 1px #fbf8f0a6}
.home-hero .puzzle-gap[hidden]{display:none}
.home-hero .puzzle-tile:disabled{cursor:default}
.home-hero .puzzle-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-hero .puzzle-tile{background-image:none}
.home-hero .puzzle-tile::before{content:"";position:absolute;pointer-events:none;left:0;top:50%;width:100%;height:calc(100% * 16/9 / var(--frame-ratio));transform:translateY(-50%);background-image:var(--frame-source,url('assets/portrait-mosaic-atlas-v03.webp'));background-repeat:no-repeat;background-size:var(--frame-size);background-position:var(--frame-position)}
.home-hero .dotted-o.is-blinking::after{transform-origin:center;animation:name-dot-blink var(--blink-duration,260ms) cubic-bezier(.4,0,.2,1) both}
@keyframes name-dot-blink{0%,100%{transform:translate(-50%,-50%) scaleY(1)}36%{transform:translate(-50%,-50%) scaleY(.06)}44%,57%{transform:translate(-50%,-50%) scaleY(0)}}
@media(prefers-reduced-motion:reduce){.home-hero .dotted-o.is-blinking::after{animation:none}
}

.home-hero{--gold:#e2b85f}.home-hero .tagline{max-width:none}.home-hero .actions{flex-wrap:nowrap}@media(max-width:1150px){.home-hero .actions{flex-wrap:wrap}}
