/* Original hemlock.inc hero and closing, adapted only to scoped names/local assets.
 * Source: assets/refresh.css?v=15, captured 2026-10-09. */
:is(#original-hero,#original-closing) {
  --ink:#101b2d; --muted:#435771; --paper:#dfeafb; --line:rgba(67,104,157,.22);
  --accent:#087dff; --accent-dark:#0864d0; --white:#fff; --radius:24px;
  --header:var(--original-header,96px);
  --glass:linear-gradient(145deg,rgba(255,255,255,.97),rgba(244,249,255,.91));
  --glass-border:rgba(106,149,205,.42);
  --shadow:0 30px 65px -28px rgba(31,74,137,.34),0 7px 18px rgba(48,91,154,.09),inset 0 1px 0 #fff;
  font-family:'Space Grotesk',Arial,sans-serif; color:var(--ink); font-synthesis:none;
  -webkit-font-smoothing:antialiased;
}
:is(#original-hero,#original-closing) * { box-sizing:border-box; }
:is(#original-hero,#original-closing) :is(h1,h2,p) { margin:0; }
:is(#original-hero,#original-closing) :is(h1,h2) { font-weight:500; letter-spacing:-.055em; line-height:1.06; }
:is(#original-hero,#original-closing) p { line-height:1.7; }
:is(#original-hero,#original-closing) em { color:var(--accent); font-style:normal; }
:is(#original-hero,#original-closing) a { color:inherit; text-decoration:none; }
:is(#original-hero,#original-closing) button { font:inherit; cursor:pointer; }
:is(#original-hero,#original-closing) :is(button,a) { touch-action:manipulation; }
:is(#original-hero,#original-closing) img { display:block; max-width:100%; }
:is(#original-hero,#original-closing) :focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
:is(#original-hero,#original-closing) [hidden] { display:none!important; }
:is(#original-hero,#original-closing) .oh-container { width:min(100% - 96px,1320px); margin-inline:auto; }
:is(#original-hero,#original-closing) .oh-button { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; padding:15px 22px; border:1px solid transparent; border-radius:999px; font-size:13px; font-weight:500; line-height:1.3; transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s; }
:is(#original-hero,#original-closing) .oh-button span { font-size:19px; line-height:1; }
:is(#original-hero,#original-closing) .oh-button:hover { transform:translateY(-2px); }
:is(#original-hero,#original-closing) .oh-button-dark,
:is(#original-hero,#original-closing) .oh-button-light { background:linear-gradient(135deg,#1473db,#0864d0); color:#fff; border-color:#ffffff5c; box-shadow:0 6px 22px #168aff2b,inset 0 1px 0 #ffffff4d; }
:is(#original-hero,#original-closing) .oh-button-dark:hover,
:is(#original-hero,#original-closing) .oh-button-light:hover { background:linear-gradient(135deg,#0864d0,#0756b2); color:white; box-shadow:0 8px 28px #168aff3d,inset 0 1px 0 #ffffff4d; }
#original-hero { position:relative; overflow-x:clip; }
#original-hero .oh-hero-sticky { min-height:min(810px,calc(100svh - var(--header))); display:flex; flex-direction:column; justify-content:space-between; }
#original-hero .oh-hero-main { display:grid; grid-template-columns:1fr 1.1fr; gap:36px; align-items:center; flex:1; padding:38px 0 44px; }
#original-hero .oh-hero-copy { position:relative; z-index:3; padding-block:25px; min-width:0; container-type:inline-size; }
#original-hero h1 { font-size:clamp(52px,5.65vw,82px); font-weight:600; margin:26px -55px 25px 0; letter-spacing:-.065em; }
#original-hero .oh-hero-description { margin:0; padding:0; font-size:min(21px,3.65cqi); line-height:1.55; color:var(--muted); }
#original-hero .oh-hero-description span { display:block; white-space:nowrap; }
#original-hero .oh-hero-description span + span { margin-top:6px; }
#original-hero .oh-hero-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:28px; }
#original-hero .oh-hero-actions .oh-button { gap:16px; }
#original-hero .oh-hero-animation-track { display:contents; }
#original-hero .oh-hero-visual { position:relative; align-self:stretch; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:460px; isolation:isolate; }
#original-hero .oh-hero-render { position:relative; z-index:1; height:min(78svh,720px); width:auto; max-width:100%; aspect-ratio:504/720; mask-image:linear-gradient(to bottom,#000 82%,transparent 100%); -webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent 100%); }
#original-hero .oh-hero-render img,
#original-hero .oh-hero-render canvas { width:100%; height:100%; object-fit:contain; object-position:50% 100%; }
#original-hero .oh-hero-render canvas { position:absolute; inset:0; opacity:0; }
#original-hero.has-frame canvas { opacity:1; }
#original-hero.has-frame .oh-hero-render img { visibility:hidden; }
/* After the hand closes, the next half screen of scrolling fades it out (the mask hides the cut forearm).
   Applied only while exiting, so the animation itself composites without a mask. */
#original-hero.motion-enabled.hero-exiting .oh-hero-render { opacity:calc(1 - var(--hero-exit,0)); mask-image:linear-gradient(to bottom,#000 calc(100% - var(--hero-exit,0) * 50%),transparent 100%); -webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--hero-exit,0) * 50%),transparent 100%); }
#original-hero .oh-hero-orb { position:absolute; pointer-events:none; z-index:-2; border-radius:50%; }
#original-hero .oh-hero-orb-one { width:100%; aspect-ratio:1; top:4%; left:5%; background:radial-gradient(circle,#c0dcff85,#dfecff50 46%,transparent 70%); }
#original-hero .oh-hero-orb-two { width:58%; aspect-ratio:1; bottom:6%; left:-15%; background:radial-gradient(circle,#c8e8ff65,transparent 70%); }
#original-hero .oh-hero-orbit { position:absolute; inset:15% 0 14%; z-index:-1; border:1px solid #a4c8ff24; border-radius:50%; transform:rotate(-25deg); pointer-events:none; }
#original-hero .oh-hero-orbit-two { inset:7% 7% 7%; transform:rotate(30deg); border-color:#a4c8ff1c; }
#original-hero .oh-hero-progress { position:absolute; bottom:0; left:10%; right:0; height:1px; background:#a6c3e630; }
#original-hero .oh-hero-progress-fill { height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,#abd4ff,#087dff); }
#original-hero .oh-hero-bottom { border-top:1px solid var(--line); display:flex; justify-content:flex-end; align-items:center; gap:20px; padding:23px 0; color:#7d8ba0; font-size:11px; }
#original-hero .oh-hero-tools { display:flex; align-items:center; gap:30px; }
#original-hero .oh-scroll-link { display:flex; align-items:center; gap:22px; color:#4f729c; }
#original-hero .oh-scroll-link span { font-size:18px; }
#original-hero .oh-motion-toggle { border:0; padding:8px 4px; background:transparent; color:#72849a; font-size:10px; text-decoration:underline; text-underline-offset:4px; }
@media(prefers-reduced-motion:no-preference) and (min-height:541px) and (min-width:701px) {
#original-hero.motion-enabled { height:210svh; }
#original-hero.motion-enabled .oh-hero-sticky { position:sticky; top:var(--header); height:calc(100svh - var(--header)); min-height:0; }
#original-hero.motion-enabled .oh-hero-main { min-height:0; padding-bottom:0; }
#original-hero.motion-enabled .oh-hero-visual { min-height:0; }
#original-hero.motion-enabled .oh-hero-render { position:absolute; bottom:0; left:50%; translate:-50% 0; height:calc((100svh - var(--header)) * 1.05); width:auto; max-width:115%; mask-image:none; -webkit-mask-image:none; }
}
#original-closing { position:relative; width:min(100% - 64px,1400px); margin:0 auto 36px; padding:85px 0 90px; border-radius:36px; border:1px solid var(--glass-border); background:radial-gradient(ellipse at 83% 35%,#c8e1ff6e,transparent 65%),linear-gradient(130deg,#fff,#ecf4ffd4); box-shadow:var(--shadow); }
#original-closing .oh-closing-inner { width:calc(100% - 100px); }
#original-closing h2 { font-size:clamp(48px,6.2vw,88px); letter-spacing:-.06em; }
#original-closing h2 em { color:var(--accent); }
#original-closing .oh-closing-actions { display:flex; gap:12px; margin-top:30px; }
@media(max-width:1100px) {
:is(#original-hero,#original-closing) .oh-container { width:calc(100% - 64px); }
#original-hero h1 { font-size:61px; margin-right:-28px; }
#original-hero .oh-hero-main { grid-template-columns:1fr 1fr; gap:30px; }
#original-hero .oh-hero-actions .oh-button { padding:14px 15px; font-size:12px; gap:11px; }
#original-hero .oh-hero-visual { min-height:400px; }
}
@media(max-width:899px) {
#original-hero .oh-hero-main { gap:20px; padding-block:30px; }
#original-hero h1 { font-size:50px; margin-block:22px; }
#original-hero .oh-hero-copy { padding:0; }
#original-hero .oh-hero-actions { flex-direction:column; align-items:flex-start; }
#original-hero .oh-hero-actions .oh-button { min-width:210px; }
#original-hero .oh-hero-visual { min-height:360px; }
#original-hero .oh-hero-render { height:min(70svh,640px); width:auto; }
#original-hero .oh-hero-bottom { font-size:10px; }
#original-hero .oh-hero-tools { gap:15px; }
#original-closing .oh-closing-inner { width:calc(100% - 60px); }
}
@media(max-width:700px) {
:is(#original-hero,#original-closing) .oh-container { width:calc(100% - 40px); }
#original-hero .oh-hero-main { grid-template-columns:1fr; gap:10px; padding:30px 0 14px; }
#original-hero .oh-hero-sticky { min-height:0; }
#original-hero h1 { font-size:clamp(43px,9.5vw,64px); margin:23px 0; }
#original-hero .oh-hero-actions { flex-direction:row; margin-top:25px; gap:9px; }
#original-hero .oh-hero-actions .oh-button { min-width:0; padding:15px 24px; gap:24px; font-size:14px; white-space:nowrap; }
#original-hero .oh-hero-visual { min-height:0; height:auto; aspect-ratio:1.05; margin-top:12px; }
#original-hero .oh-hero-render { height:min(62svh,560px); width:auto; }
#original-hero .oh-hero-progress { display:none; }
#original-hero .oh-hero-orbit { inset:10% 5%; }
#original-hero .oh-hero-bottom { margin-top:10px; padding-block:22px; align-items:flex-start; font-size:9px; }
#original-hero .oh-hero-bottom>p { max-width:150px; }
#original-hero .oh-hero-tools { align-items:center; flex-direction:row; gap:24px; min-height:44px; }
#original-hero .oh-scroll-link { gap:12px; font-size:11px; }
#original-hero .oh-motion-toggle { font-size:11px; padding:5px 2px; }
#original-closing { width:calc(100% - 24px); border-radius:28px; }
#original-closing .oh-closing-inner { width:calc(100% - 44px); }
#original-closing { padding:50px 0; margin-bottom:25px; }
#original-closing h2 { font-size:clamp(40px,10vw,60px); }
#original-closing .oh-closing-actions { gap:9px; flex-wrap:wrap; }
#original-closing .oh-closing-actions .oh-button { font-size:12px; padding:14px; gap:12px; }
}
@media(max-width:370px) {
:is(#original-hero,#original-closing) .oh-container { width:calc(100% - 32px); }
#original-hero h1 { font-size:42px; }
#original-hero .oh-hero-actions { flex-direction:column; }
#original-hero .oh-hero-actions .oh-button { width:100%; justify-content:space-between; }
#original-closing .oh-closing-actions { flex-direction:column; align-items:flex-start; }
}
@media(max-height:740px) and (min-width:701px) {
#original-hero .oh-hero-main { padding-block:22px; }
#original-hero .oh-hero-copy { padding:0; }
#original-hero h1 { font-size:clamp(45px,5vw,65px); margin-block:18px; }
#original-hero .oh-hero-actions { margin-top:22px; }
#original-hero .oh-hero-bottom { padding-block:16px; }
}
@media(prefers-reduced-motion:reduce) {
#original-hero .oh-hero-progress,
#original-hero .oh-motion-toggle { display:none; }
#original-hero.motion-enabled { height:auto; }
#original-hero .oh-hero-sticky { position:static; }
}
@media(max-width:700px), (max-width:1100px) and (max-height:540px) {
:is(#original-hero,#original-closing) .oh-button,
#original-hero .oh-hero-actions .oh-button,
#original-closing .oh-closing-actions .oh-button { justify-content:center; gap:0; text-align:center; }
:is(#original-hero,#original-closing) .oh-button>span[aria-hidden=true] { display:none; }
}
@media(prefers-reduced-motion:no-preference) and (max-width:700px), (prefers-reduced-motion:no-preference) and (max-height:540px) {
#original-hero.motion-enabled { height:auto; }
#original-hero.motion-enabled .oh-hero-sticky { position:static; height:auto; min-height:0; }
#original-hero.motion-enabled .oh-hero-main { display:block; padding-bottom:14px; }
#original-hero.motion-enabled .oh-hero-animation-track { --hero-stage-height:calc(100svh - var(--header) - 12px); display:block; position:relative; height:calc(var(--hero-stage-height) + 100svh); margin-top:12px; }
#original-hero.motion-enabled .oh-hero-visual { position:sticky; top:calc(var(--header) + 12px); height:var(--hero-stage-height); min-height:0; aspect-ratio:auto; margin:0; }
#original-hero.motion-enabled .oh-hero-render { position:absolute; bottom:0; left:50%; translate:-50% 0; height:min(100%,160vw); width:auto; max-width:none; mask-image:none; -webkit-mask-image:none; }
}
/* The site header remains owned by the page shell. Match its original offsets. */
@media(max-width:899px) {
  :is(#original-hero,#original-closing) { --header:var(--original-header,86px); }
}
@media(prefers-reduced-motion:reduce) {
  :is(#original-hero,#original-closing) *, :is(#original-hero,#original-closing) *::before, :is(#original-hero,#original-closing) *::after { animation:none!important; transition:none!important; }
}
