.ih-page{min-height:100vh}.ihp-main{z-index:2;max-width:var(--max);padding:clamp(120px, 16vh, 168px) var(--pad) clamp(72px, 10vh, 120px);margin:0 auto;position:relative}.ih-page .ih-footer{z-index:2;position:relative}.ihp-head{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:clamp(32px,5vh,56px);padding-bottom:clamp(40px,7vh,72px);display:grid}.ihp-head__title{max-width:14em;font-size:clamp(44px,6vw,104px)}.ihp-head__lede{max-width:36em}.ihp-head__row{flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:6px;display:flex}.ihp-rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.ihp-row{border-bottom:1px solid var(--line);color:inherit;transition:padding var(--m-mid) var(--snap);grid-template-columns:64px minmax(0,190px) minmax(0,1fr) 40px;align-items:baseline;gap:8px 28px;padding:28px 0;display:grid;position:relative}.ihp-row:before{content:"";inset:0 calc(var(--pad) * -.5);background:color-mix(in oklab, var(--paper) 55%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;z-index:-1;transition:opacity var(--m-mid) ease;border-radius:3px;position:absolute}.ihp-row__no{font-family:var(--font-technical), monospace;letter-spacing:.12em;color:var(--glacier-ink);font-size:11px}.ihp-row__meta{font-family:var(--font-technical), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);gap:4px;font-size:11px;display:grid}.ihp-row__meta b{color:var(--signal-ink);font-weight:500}.ihp-row__body{gap:10px;display:grid}.ihp-row__title{letter-spacing:-.025em;text-wrap:balance;transition:color var(--m-fast) ease;margin:0;font-size:clamp(22px,2.2vw,34px);font-weight:600;line-height:1.08}.ihp-row__text{max-width:44em;color:var(--mute);margin:0;line-height:1.55}.ihp-row__ar{color:var(--mute);transition:color var(--m-fast) ease, translate var(--m-mid) var(--snap);justify-self:end}.ihp-row__ar .ih-icon{width:16px;height:16px}@media (hover:hover){.ihp-row:hover:before{opacity:1}.ihp-row:hover .ihp-row__title{color:var(--glacier-ink)}.ihp-row:hover .ihp-row__ar{color:var(--ink);translate:3px -3px}}.ihp-row:focus-visible{outline:2px solid var(--glacier-ink);outline-offset:4px}@media (max-width:760px){.ihp-row{grid-template-columns:40px minmax(0,1fr) 24px}.ihp-row__meta{grid-area:1/2/auto/4}.ihp-row__body{grid-column:1/4}.ihp-row__ar{grid-area:1/3}}.ihp-empty{color:var(--mute);padding:32px 0}.ihp-crumbs{font-family:var(--font-technical), monospace;letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:16px;margin-bottom:40px;font-size:11px;display:flex}@media (pointer:coarse){.ihp-crumbs a{margin-block:-13px;padding-block:13px}}.ihp-crumbs a{color:var(--mute);transition:color var(--m-fast) ease;align-items:center;gap:8px;display:inline-flex}.ihp-crumbs a:hover{color:var(--ink)}.ihp-crumbs .ih-icon{width:12px;height:12px}.ihp-post__title{max-width:16em;font-size:clamp(38px,4.6vw,78px)}.ihp-meta{font-family:var(--font-technical), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);flex-wrap:wrap;gap:8px 22px;font-size:11px;display:flex}.ihp-meta b{color:var(--ink);font-weight:500}.ihp-meta a{color:var(--glacier-ink)}.ihp-cover{aspect-ratio:16/9;background:color-mix(in oklab, var(--glacier) 20%, var(--paper));box-shadow:0 30px 70px -40px color-mix(in oklab, var(--ink) 55%, transparent);border-radius:3px;margin:0 0 clamp(40px,7vh,72px);position:relative;overflow:hidden}.ihp-cover img{object-fit:cover;object-position:top}.ihp-post__grid{grid-template-columns:minmax(0,1fr) 240px;gap:64px;display:grid}@media (max-width:1080px){.ihp-post__grid{grid-template-columns:minmax(0,1fr)}.ihp-toc{display:none}}.ihp-toc{border-left:1px solid var(--line);align-self:start;padding-left:20px;position:sticky;top:104px}.ihp-toc .ih-label{margin-bottom:14px;display:block}.ihp-toc ol{gap:10px;margin:0;padding:0;list-style:none;display:grid}.ihp-toc a{color:var(--mute);transition:color var(--m-fast) ease, translate var(--m-mid) var(--snap);font-size:14px;line-height:1.4;display:block;position:relative}.ihp-toc a:hover{color:var(--ink)}.ihp-toc a:before{content:"";background:var(--signal-ink);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);opacity:0;width:7px;height:8px;transition:opacity var(--m-fast) ease, scale var(--m-mid) var(--snap);margin-top:-4px;position:absolute;top:.7em;left:-24px;scale:.3}.ihp-toc a[aria-current]{color:var(--ink);translate:3px}.ihp-toc a[aria-current]:before{opacity:1;scale:1}.ihp-tags{flex-wrap:wrap;gap:8px;margin:48px 0 0;padding:0;list-style:none;display:flex}.ihp-tags li{border:1px solid var(--line);font-family:var(--font-technical), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border-radius:2px;padding:5px 10px;font-size:11px}.ihp-author{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px 32px;max-width:46rem;margin-top:56px;padding-top:32px;display:grid}.ihp-author p{color:var(--mute);margin:0;line-height:1.55}@media (max-width:640px){.ihp-author{grid-template-columns:1fr}}.ihp-more{margin-top:clamp(64px,10vh,112px)}.ihp-more>.ih-label{margin-bottom:18px;display:block}.ihp-prose{max-width:44rem;color:color-mix(in oklab, var(--ink) 86%, transparent);font-size:17px;line-height:1.72}.ihp-prose>*+*{margin-top:1.15em}.ihp-prose>:is(p,ul,ol,blockquote){max-width:36rem}.ihp-prose h2{letter-spacing:-.03em;color:var(--ink);margin-top:2.2em;scroll-margin-top:96px;font-size:clamp(26px,2.4vw,34px);font-weight:600;line-height:1.12}.ihp-prose h3{letter-spacing:-.015em;color:var(--ink);margin-top:1.8em;scroll-margin-top:96px;font-size:21px;font-weight:600;line-height:1.25}.ihp-prose h2+*,.ihp-prose h3+*{margin-top:.7em}.ihp-prose a{color:var(--glacier-ink);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in oklab, var(--glacier-ink) 40%, transparent);text-decoration-color:color-mix(in oklab, var(--glacier-ink) 40%, transparent);transition:text-decoration-color var(--m-fast) ease}.ihp-prose a:hover{text-decoration-color:currentColor}.ihp-prose strong{color:var(--ink);font-weight:600}.ihp-prose ul,.ihp-prose ol{padding-left:1.3em}.ihp-prose li+li{margin-top:.4em}.ihp-prose li::marker{color:var(--glacier-ink)}.ihp-prose blockquote{border-left:2px solid var(--glacier);font-family:var(--font-instrument-serif), Georgia, serif;color:var(--ink);margin-left:0;padding:4px 0 4px 20px;font-size:1.15em;font-style:italic}.ihp-prose :not(pre)>code{background:color-mix(in oklab, var(--glacier) 22%, transparent);font-family:var(--font-technical), monospace;color:var(--ink);border-radius:3px;padding:.12em .38em;font-size:.86em}.ihp-prose pre{background:color-mix(in oklab, var(--ink) 92%, var(--glacier-ink));color:#e8f1f6;border-radius:4px;padding:18px 20px;font-size:14px;line-height:1.6;overflow-x:auto}.ihp-prose pre:focus-visible{outline:2px solid var(--glacier-ink);outline-offset:2px}.ihp-prose .ihp-code{position:relative}.ihp-code__copy{font-family:var(--font-technical), monospace;letter-spacing:.12em;text-transform:uppercase;color:#e8f1f6b8;opacity:0;transition:opacity var(--m-fast) ease, color var(--m-fast) ease, border-color var(--m-fast) ease, background-color var(--m-fast) ease;background:#e8f1f60f;border:1px solid #e8f1f62e;border-radius:0;padding:5px 9px;font-size:11px;position:absolute;top:10px;right:10px}.ihp-code:hover .ihp-code__copy,.ihp-code__copy:focus-visible,.ihp-code__copy[data-done]{opacity:1}@media (hover:none){.ihp-code__copy{opacity:1;padding:9px 12px}.ihp-code pre{padding-top:50px}}.ihp-code__copy:hover{color:#fff;border-color:#e8f1f666}.ihp-code__copy[data-done]{color:var(--glacier);border-color:color-mix(in oklab, var(--glacier) 60%, transparent)}.ihp-prose pre code{font-family:var(--font-technical), monospace;background:0 0}.ihp-prose hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}.ihp-prose table{border-collapse:collapse;width:100%;font-size:15px}.ihp-prose th,.ihp-prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px 12px}.ihp-prose th{font-family:var(--font-technical), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-size:11px;font-weight:500}.ihp-prose img{border-radius:3px;max-width:100%;height:auto}.ihp-works{gap:clamp(56px,10vh,120px);margin:0;padding:0;list-style:none;display:grid}.ihp-work{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;gap:24px;display:grid}.ihp-work__plate{aspect-ratio:1.6;background:color-mix(in oklab, var(--glacier) 20%, var(--paper));box-shadow:0 30px 70px -40px color-mix(in oklab, var(--ink) 55%, transparent);border-radius:3px;grid-column:1/8;position:relative;overflow:hidden}.ihp-work__plate img{object-fit:cover;object-position:top;transition:scale var(--m-slow) var(--snap)}.ihp-work:nth-child(2n) .ihp-work__plate{grid-area:1/6/auto/13}.ihp-work__text{grid-column:9/13;gap:14px;display:grid}.ihp-work:nth-child(2n) .ihp-work__text{grid-area:1/1/auto/5}.ihp-work__no{font-family:var(--font-technical), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--glacier-ink);font-size:11px}.ihp-work__title{letter-spacing:-.035em;margin:0;font-size:clamp(30px,3.2vw,52px);font-weight:600;line-height:1}.ihp-work__text p{color:var(--mute);margin:0;line-height:1.55}.ihp-work__note{color:var(--ink);text-decoration:none;display:block}.ihp-work__note .ih-label{color:var(--dim);margin-bottom:6px;display:block}.ihp-work__note .ih-link{font:inherit;letter-spacing:0;text-transform:none;margin:0;font-size:15px;line-height:1.6;display:inline}.ihp-work__note .ih-arrow{margin-left:6px}@media (hover:hover) and (pointer:fine){.ihp-work__note:hover .ih-link{animation:ih-rule calc(.7s * var(--tempo)) var(--snap);color:var(--glacier-ink)}.ihp-work__note:hover .ih-arrow--e{translate:4px}}.ihp-stack{flex-wrap:wrap;gap:6px;margin:4px 0 6px;padding:0;list-style:none;display:flex}.ihp-stack li{border:1px solid var(--line);font-family:var(--font-technical), monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);border-radius:2px;padding:4px 8px;font-size:11px}@media (hover:hover){.ihp-work__plate:hover img{scale:1.03}}@media (max-width:900px){.ihp-work .ihp-work__plate,.ihp-work:nth-child(2n) .ihp-work__plate,.ihp-work .ihp-work__text,.ihp-work:nth-child(2n) .ihp-work__text{grid-area:auto/1/auto/-1}}.ihp-contact{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:clamp(40px,6vw,96px);display:grid}@media (max-width:960px){.ihp-contact{grid-template-columns:minmax(0,1fr)}}.ihp-contact .ihp-head{border-bottom:0;margin-bottom:0;padding-bottom:0}.ihp-details{border-top:1px solid var(--line);margin:32px 0 0;display:grid}.ihp-details>div{border-bottom:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;display:grid}.ihp-details dt{font-family:var(--font-technical), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-size:11px}.ihp-details dd{margin:0}.ihp-form{border:1px solid var(--line);background:color-mix(in oklab, var(--paper) 62%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);border-radius:4px;gap:18px;padding:clamp(22px,3vw,34px);display:grid;position:relative}.ihp-form>.ih-label{color:var(--glacier-ink)}.ihp-form{--wrong:#c13f29}@supports (color:lab(0% 0 0)){.ihp-form{--wrong:lab(46.2334% 51.9533 42.6581)}}.ihp-field{gap:8px;display:grid;position:relative}.ihp-field label{font-family:var(--font-technical), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);transition:color var(--m-fast) ease;font-size:11px}.ihp-field:after{content:"";background:var(--glacier-ink);transform-origin:0;height:1.5px;transition:transform var(--m-mid) var(--snap), background-color var(--m-fast) ease;pointer-events:none;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.ihp-field:focus-within:after{transform:scaleX(1)}.ihp-field:focus-within label{color:var(--glacier-ink)}.ihp-field:has(:user-invalid):after{background:var(--wrong);transform:scaleX(1)}.ihp-field:has(:user-invalid) label{color:var(--wrong)}.ihp-field input,.ihp-field textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;transition:border-color var(--m-fast) ease;background:0 0;border-radius:0;outline:none;padding:12px 0;font-size:16px}.ihp-field textarea{resize:vertical;min-height:120px}.ihp-form__foot{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.ihp-form__note{color:var(--mute);margin:0;font-size:14px}.ihp-form__note[data-state=sent]{color:var(--glacier-ink)}.ihp-form__note[data-state=error]{color:var(--wrong)}.ihp-form button[disabled]{opacity:.6;pointer-events:none}.ihp-missing{align-content:center;min-height:56vh;display:grid}.ihp-missing .ihp-head{border-bottom:0}.ihp-back{rotate:180deg}.ihp-work__plate--blank{color:var(--ink);background:linear-gradient(135deg, color-mix(in oklab, var(--glacier) 28%, var(--paper)), color-mix(in oklab, var(--air-second) 30%, var(--paper)));place-items:center;display:grid}.ihp-work__mark{opacity:.9;width:22%;height:auto}@media (prefers-reduced-motion:reduce){.ihp-row:hover .ihp-row__ar,.ihp-toc a[aria-current],.ihp-work__note:hover .ih-arrow--e{translate:none}.ihp-work__note:hover .ih-link{animation:none}.ihp-row__ar,.ihp-toc a,.ihp-toc a:before{transition-property:color,opacity}}
