.layout-bone .proj-hero{background:var(--color-bone);padding-block:3rem 4rem;padding-inline:1.5rem}@media (width>=768px){.layout-bone .proj-hero{padding-block:4rem 6rem;padding-inline:3rem}}.layout-bone .proj-hero__inner{max-width:1320px;margin-inline:auto}.layout-bone .proj-hero__meta-top{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.layout-bone .proj-hero__back{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-secondary);transition:color .3s, gap .4s var(--ease-out-soft);gap:.4rem;font-size:.72rem;text-decoration:none;display:inline-flex}.layout-bone .proj-hero__back:hover{color:var(--color-ink-primary);gap:.6rem}.layout-bone .proj-hero__type{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-tertiary);font-size:.72rem}.layout-bone .proj-hero__body{grid-template-columns:1fr;align-items:center;gap:3rem;display:grid}@media (width>=1024px){.layout-bone .proj-hero__body{grid-template-columns:7fr 5fr;gap:4rem}}.layout-bone .proj-hero__tags{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.layout-bone .proj-hero__tag{background:var(--color-bone-soft);border:1px solid var(--color-rule-bone);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-secondary);border-radius:999px;padding:.35rem .75rem;font-size:.625rem}.layout-bone .proj-hero__title{font-family:var(--font-sans);letter-spacing:-.04em;color:var(--color-ink-primary);font-size:clamp(3rem,9vw,8rem);font-weight:600;line-height:.94}.layout-bone .proj-hero__title em{color:var(--color-acc-lime-ink);font-family:Instrument Serif,Georgia,serif;font-style:italic}.layout-bone .proj-hero__description{color:var(--color-ink-secondary);max-width:36rem;margin-top:2rem;font-family:Instrument Serif,Georgia,serif;font-size:clamp(1.25rem,1.8vw,1.625rem);font-style:italic;line-height:1.4}.layout-bone .proj-hero__cta{background:var(--color-ink-primary);color:var(--color-bone);font-family:var(--font-sans);border-radius:999px;align-items:center;gap:.5rem;margin-top:2rem;padding:.875rem 1.5rem;font-weight:500;text-decoration:none;transition:transform .4s,background .4s,gap .4s,box-shadow .4s;display:inline-flex}.layout-bone .proj-hero__cta:hover{background:var(--color-acc-lime);color:var(--color-ink-primary);box-shadow:0 12px 28px var(--color-acc-lime-glow);gap:.7rem;transform:translateY(-2px)}.layout-bone .proj-hero__phone{aspect-ratio:1100/2268;filter:drop-shadow(0 32px 64px #100f0d38)drop-shadow(0 4px 12px #100f0d1a);width:100%;max-width:300px;margin-inline:auto;position:relative}.layout-bone .proj-hero__phone:before{content:"";filter:blur(45px);z-index:-1;animation:hero-halo-breathe 8s var(--ease-in-out-soft) infinite;background:radial-gradient(circle,#c8ff3d4d 0%,#0000 60%);position:absolute;inset:-10% -10% 0}.layout-bone .proj-hero__phone .phone-frame__screen{background:#06070e;padding:2.6% 2.2%}.layout-bone .proj-hero__live{z-index:5;background:var(--color-ink-primary);color:var(--color-bone);font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;border-radius:4px;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.625rem;display:inline-flex;position:absolute;top:1.3rem;right:-.5rem;transform:rotate(4deg);box-shadow:0 8px 16px #100f0d2e}.layout-bone .proj-hero__live-dot{background:var(--color-acc-lime);width:.5rem;height:.5rem;box-shadow:0 0 8px var(--color-acc-lime-glow);animation:live-pulse 2s var(--ease-in-out-soft) infinite;border-radius:50%}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.layout-bone .proj-facts{background:var(--color-ink-primary);color:var(--color-ink-inv-primary);padding-block:2rem;padding-inline:1.5rem}@media (width>=768px){.layout-bone .proj-facts{padding-inline:3rem}}.layout-bone .proj-facts__inner{grid-template-columns:repeat(2,1fr);gap:1.5rem 2rem;max-width:1320px;margin-inline:auto;display:grid}@media (width>=768px){.layout-bone .proj-facts__inner{grid-template-columns:repeat(4,1fr)}}.layout-bone .proj-fact{flex-direction:column;gap:.3rem;display:flex}.layout-bone .proj-fact__label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-inv-tertiary);font-size:.625rem}.layout-bone .proj-fact__value{color:var(--color-ink-inv-primary);font-family:Instrument Serif,Georgia,serif;font-size:clamp(1.125rem,1.5vw,1.375rem);font-style:italic}.layout-bone .proj-article{padding-block:5rem 6rem;padding-inline:1.5rem}@media (width>=768px){.layout-bone .proj-article{padding-block:7rem 8rem;padding-inline:3rem}}.layout-bone .proj-article__inner{grid-template-columns:1fr;gap:3rem;max-width:1100px;margin-inline:auto;display:grid}@media (width>=1024px){.layout-bone .proj-article__inner{grid-template-columns:240px 1fr;gap:4rem}}.layout-bone .proj-article__sidebar{flex-direction:column;gap:2rem;display:flex}@media (width>=1024px){.layout-bone .proj-article__sidebar{align-self:start;position:sticky;top:6rem}}.layout-bone .proj-article__sidebar-block{border-bottom:1px solid var(--color-rule-bone);flex-direction:column;gap:.75rem;padding-bottom:1.5rem;display:flex}.layout-bone .proj-article__sidebar-block:last-child{border-bottom:0}.layout-bone .proj-article__sidebar-label{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-tertiary);font-size:.625rem}.layout-bone .proj-article__stack{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.layout-bone .proj-article__stack li{color:var(--color-ink-primary);font-family:Instrument Serif,Georgia,serif;font-size:1.0625rem;font-style:italic}.layout-bone .proj-article__tags{flex-wrap:wrap;gap:.35rem;display:flex}.layout-bone .proj-article__tags span{background:var(--color-bone-soft);font-family:var(--font-mono);color:var(--color-ink-secondary);border-radius:4px;padding:.25rem .6rem;font-size:.625rem}.layout-bone .proj-article__live-link{color:var(--color-ink-primary);border-bottom:1px solid var(--color-rule-bone-strong);align-items:center;gap:.4rem;padding-bottom:.3rem;font-family:Instrument Serif,Georgia,serif;font-size:1.125rem;font-style:italic;text-decoration:none;transition:border-color .3s,gap .4s;display:inline-flex}.layout-bone .proj-article__live-link:hover{border-color:var(--color-acc-lime-ink);gap:.6rem}.layout-bone .proj-article__body{font-family:var(--font-sans);color:var(--color-ink-primary);max-width:56ch;font-size:clamp(1rem,1.15vw,1.0625rem);line-height:1.7}.layout-bone .proj-article__body>*+*{margin-top:1.25rem}.layout-bone .proj-article__body h2{font-family:var(--font-sans);letter-spacing:-.02em;color:var(--color-ink-primary);margin-top:3rem;margin-bottom:.5rem;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:600;line-height:1.15}.layout-bone .proj-article__body h3{font-family:var(--font-sans);letter-spacing:-.015em;color:var(--color-ink-primary);margin-top:2rem;font-size:1.25rem;font-weight:600;line-height:1.25}.layout-bone .proj-article__body p{color:var(--color-ink-secondary)}.layout-bone .proj-article__body strong{color:var(--color-ink-primary);font-weight:600}.layout-bone .proj-article__body ul,.layout-bone .proj-article__body ol{color:var(--color-ink-secondary);padding-left:1.5rem}.layout-bone .proj-article__body ul{padding-left:0;list-style:none}.layout-bone .proj-article__body ul li{margin-bottom:.5rem;padding-left:1.5rem;position:relative}.layout-bone .proj-article__body ul li:before{content:"→";color:var(--color-acc-lime-ink);font-weight:600;position:absolute;left:0}.layout-bone .proj-article__body a{color:var(--color-ink-primary);text-underline-offset:4px;text-decoration:underline;text-decoration-color:var(--color-rule-bone-strong);transition:text-decoration-color .3s}.layout-bone .proj-article__body a:hover{text-decoration-color:var(--color-acc-lime-ink)}.layout-bone .proj-article__body code{font-family:var(--font-mono);background:var(--color-bone-soft);color:var(--color-acc-cobalt);border-radius:4px;padding:.15em .4em;font-size:.875em}.layout-bone .proj-similar{background:var(--color-bone-soft);padding-block:5rem 6rem;padding-inline:1.5rem}@media (width>=768px){.layout-bone .proj-similar{padding-block:7rem 8rem;padding-inline:3rem}}.layout-bone .proj-similar__inner{max-width:1320px;margin-inline:auto}.layout-bone .proj-similar__mono{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-tertiary);margin-bottom:1rem;font-size:.78rem}.layout-bone .proj-similar__title{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--color-ink-primary);margin-bottom:3rem;font-size:clamp(2rem,4.5vw,3.5rem);font-weight:600;line-height:.96}.layout-bone .proj-similar__title em{color:var(--color-acc-lime-ink);font-family:Instrument Serif,Georgia,serif;font-style:italic}.layout-bone .proj-similar__grid{grid-template-columns:1fr 1fr;gap:2rem;display:grid}@media (width>=768px){.layout-bone .proj-similar__grid{grid-template-columns:repeat(4,1fr);gap:2.5rem}}.layout-bone .proj-similar__item{color:inherit;transition:transform .7s var(--ease-out-soft);text-decoration:none;display:block}.layout-bone .proj-similar__item:hover{transform:translateY(-6px)}.layout-bone .proj-similar__phone{aspect-ratio:1100/2268;margin-inline:auto;width:100%;max-width:180px;margin-bottom:1rem}.layout-bone .proj-similar__phone .phone-frame{width:100%;height:100%}.layout-bone .proj-similar__credit{flex-direction:column;gap:.25rem;display:flex}.layout-bone .proj-similar__tag{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-tertiary);font-size:.6875rem}.layout-bone .proj-similar__name{color:var(--color-ink-primary);font-family:Instrument Serif,Georgia,serif;font-size:1.25rem;font-style:italic}
