/* Holly Jolly Engine case study; all page-specific rules stay scoped. */
.holly-case-study{--hje-grid:#c4b5fd0a}.holly-case-study main{overflow:clip}.holly-case-study section[id],.holly-case-study #demo{scroll-margin-top:154px}.holly-case-study .case-hero{grid-template-columns:minmax(0,.88fr) minmax(500px,1.12fr)}.holly-case-study .case-hero h1{font-size:clamp(4rem,7.5vw,7.1rem)}.holly-case-study .case-hero h1 em{display:block}.holly-case-study .case-hero-copy>p:not(.eyebrow,.case-subtitle){font-size:16px;line-height:1.7}.holly-case-study .case-hero-media{padding:12px;border:1px solid var(--line);background:linear-gradient(145deg,#111824,#090d12)}.holly-case-study .case-hero-media:after{inset:26px -18px 30px 28px}.holly-case-study .case-hero-media img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border-color:#ffffff18;background:#080c11}.holly-case-study .media-chrome,.holly-case-study .sequence-head,.holly-case-study .level-file>div{min-height:40px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;color:#9187ad;font:700 15px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.06em}.holly-case-study .case-hero-media figcaption{min-height:50px;padding-bottom:2px}.holly-case-study .case-hero .eyebrow,.holly-case-study .back-link{font-size:15px}.holly-case-study .case-hero .case-subtitle{font-size:15px!important;line-height:1.55!important}.holly-case-study .case-heading>.eyebrow,.holly-case-study .contribution-intro .eyebrow,.holly-case-study .workflow-panel>.eyebrow,.holly-case-study .storage-copy>.eyebrow,.holly-case-study .flow-copy>.eyebrow{font-size:15px;line-height:1.5;letter-spacing:.1em}.holly-case-study .case-jump>.shell>span{min-width:112px;font-size:15px}.holly-case-study .case-jump #case-jump-links{justify-content:flex-end;gap:clamp(18px,3vw,42px)}.holly-case-study .case-jump a{font-size:15px}.holly-case-study figcaption{font-size:14px;line-height:1.5}
.holly-case-study .case-heading{max-width:980px}.holly-case-study #overview .case-heading{max-width:1160px}.holly-case-study #overview .case-heading h2{font-size:clamp(3rem,5.6vw,5rem)}.holly-case-study .case-heading .section-copy{max-width:810px}.holly-case-study .case-heading .section-copy p{color:#aab6c0;font-size:17px;line-height:1.82}.holly-case-study .contribution-intro{max-width:850px;margin:0 0 45px;padding:30px 0;border-block:1px solid var(--line);display:grid;grid-template-columns:175px 1fr;column-gap:32px}.holly-case-study .contribution-intro .eyebrow{margin-top:5px}.holly-case-study .contribution-intro>p:last-child{margin:0;color:var(--muted)}.holly-case-study .contribution-grid-four{grid-template-columns:repeat(4,1fr)}
.holly-case-study .overview-map{margin-top:clamp(55px,8vw,95px);border:1px solid var(--line);background:linear-gradient(var(--hje-grid) 1px,transparent 1px),linear-gradient(90deg,var(--hje-grid) 1px,transparent 1px),#090d12;background-size:32px 32px}.holly-case-study .overview-map>figcaption{padding:15px 18px;border-bottom:1px solid var(--line);color:#b5a9dc;font-size:15px;line-height:1.45;letter-spacing:.07em}.holly-case-study .map-grid{min-height:630px;padding:42px;display:grid;grid-template-columns:1fr 45px 1.18fr 45px 1fr;grid-template-rows:70px 38px 80px clamp(86px,7vw,108px) 70px 38px 70px 38px 70px;align-items:center}.holly-case-study .map-node{min-height:58px;padding:13px 16px;display:grid;place-items:center;border:1px solid #3c4857;background:#0e151d;color:#dce4eb;font:700 15px/1.45 ui-monospace,Consolas,monospace;text-align:center;text-transform:uppercase;letter-spacing:.035em}.holly-case-study .map-node small{margin-bottom:4px;color:#9187ad;font-size:13px;letter-spacing:.06em}.holly-case-study .map-core{min-height:76px;border-color:var(--accent);background:#c4b5fd0c;color:var(--accent)}.holly-case-study .map-arrow{color:var(--accent);font:700 24px/1 ui-monospace,monospace;text-align:center}.holly-case-study .arrow-registry,.holly-case-study .arrow-pools,.holly-case-study .arrow-save{align-self:stretch;min-height:0}.holly-case-study .map-branch-arrow{width:100%;height:calc(100% + 56px);margin-top:-56px;display:block;overflow:visible}.holly-case-study .map-branch-arrow>path,.holly-case-study .map-branch-arrow>line{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.holly-case-study .map-branch-arrow marker path{fill:var(--accent)}.holly-case-study .map-mobile-inputs{display:none}.holly-case-study .map-input{grid-area:1/1}.holly-case-study .arrow-input{grid-area:1/2}.holly-case-study .map-editor{grid-area:3/1}.holly-case-study .arrow-editor{grid-area:3/2}.holly-case-study .map-core{grid-area:1/3/4;align-self:center}.holly-case-study .arrow-registry{grid-area:4/1/5/4}.holly-case-study .map-registry{grid-area:5/1}.holly-case-study .arrow-pools{grid-area:4/3}.holly-case-study .map-pools{grid-area:5/3}.holly-case-study .arrow-save{grid-area:4/3/5/6}.holly-case-study .map-save{grid-area:5/5}.holly-case-study .arrow-objects{grid-area:6/1}.holly-case-study .map-objects{grid-area:7/1}.holly-case-study .arrow-refs{grid-area:8/2}.holly-case-study .arrow-poolrefs{grid-area:6/3}.holly-case-study .map-components{grid-area:7/3}.holly-case-study .arrow-file{grid-area:6/5}.holly-case-study .map-file{grid-area:7/5}.holly-case-study .arrow-runtime{grid-area:8/3}.holly-case-study .map-runtime{grid-area:9/3}
.holly-case-study .editor-layout{display:grid;grid-template-columns:minmax(270px,.62fr) minmax(0,1.38fr);align-items:start;gap:clamp(35px,6vw,75px)}.holly-case-study .workflow-panel{padding:26px;border:1px solid var(--line);background:#090d12}.holly-case-study .workflow-panel ol{padding:0;margin:0;list-style:none}.holly-case-study .workflow-panel li{padding:16px 0;display:grid;grid-template-columns:36px 1fr;gap:12px;border-top:1px solid var(--line)}.holly-case-study .workflow-panel li>span{color:var(--accent);font:700 13px ui-monospace,monospace}.holly-case-study .workflow-panel strong,.holly-case-study .workflow-panel small{display:block}.holly-case-study .workflow-panel strong{font-size:16px}.holly-case-study .workflow-panel small{margin-top:3px;color:var(--muted);font-size:15px;line-height:1.6}.holly-case-study .editor-media{border:1px solid var(--line);background:#fff}.holly-case-study .editor-media img{border:0}.holly-case-study .editor-media figcaption{padding:14px;background:#090d12}.holly-case-study .demo-block{margin-top:clamp(65px,9vw,110px);padding:14px;border:1px solid var(--line);background:#090d12}.holly-case-study .demo-label{padding:2px 4px 14px;display:flex;justify-content:space-between;color:#9187ad;font:700 13px/1.4 ui-monospace,monospace;letter-spacing:.07em}.holly-case-study .demo-block figcaption{padding:14px 5px 2px;text-align:center}
.holly-case-study .component-board{margin-bottom:clamp(70px,9vw,110px);padding:clamp(28px,5vw,50px);display:grid;grid-template-columns:.7fr 70px 1.3fr;align-items:center;border:1px solid var(--line);background:linear-gradient(145deg,#0d141c,#090d12)}.holly-case-study .diagram-title{grid-column:1/-1;margin:0 0 28px;color:#b5a9dc;font:700 15px/1.45 ui-monospace,Consolas,monospace;letter-spacing:.07em}.holly-case-study .object-node{padding:28px;border:1px solid var(--accent);background:#c4b5fd09;text-align:center}.holly-case-study .object-node span,.holly-case-study .object-node small{display:block;color:#9e93bc;font:700 15px/1.45 ui-monospace,monospace;letter-spacing:.055em}.holly-case-study .object-node strong{display:block;margin:12px 0 8px;color:var(--accent);font-size:22px}.holly-case-study .component-rail{width:100%;height:1px;background:var(--accent)}.holly-case-study .component-list{position:relative;display:grid;grid-auto-rows:1fr;gap:9px}.holly-case-study .component-list:before{position:absolute;top:0;bottom:0;left:-1px;width:1px;content:"";background:var(--accent)}.holly-case-study .component-list article{position:relative;padding:13px 16px;display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px;border:1px solid var(--line);background:#0d141c}.holly-case-study .component-list article>span{color:var(--accent);font:700 15px ui-monospace,monospace}.holly-case-study .component-list h3{margin:0 0 3px;font-size:16px}.holly-case-study .component-list p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.holly-case-study .storage-layout{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(45px,7vw,90px)}.holly-case-study .storage-layout figure{border:1px solid var(--line);background:#090d12}.holly-case-study .storage-layout figure img{border:0;object-fit:contain}.holly-case-study .storage-layout figcaption{padding:14px}.holly-case-study .storage-copy h3{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}.holly-case-study .storage-copy>p:not(.eyebrow){color:#aab6c0}.holly-case-study .pool-strip{margin-top:28px;padding:18px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#0d141c}.holly-case-study .pool-strip span{flex:1;color:#c2ccd4;font:650 15px/1.5 ui-monospace,monospace;text-align:center;text-transform:uppercase}.holly-case-study .pool-strip b{color:var(--accent)}.holly-case-study .allocator-note{margin-top:clamp(70px,9vw,110px);padding:clamp(28px,5vw,46px);display:grid;grid-template-columns:220px 1fr;gap:35px;border:1px solid #c4b5fd55;background:#c4b5fd07}.holly-case-study .allocator-note>span{color:var(--accent);font:700 15px/1.45 ui-monospace,monospace;letter-spacing:.055em}.holly-case-study .allocator-note h3{margin-bottom:10px;font-size:24px}.holly-case-study .allocator-note p{max-width:760px;margin:0;color:#aab6c0}
.holly-case-study .runtime-sequence{border:1px solid var(--line);background:#090d12}.holly-case-study .sequence-head{border-bottom:1px solid var(--line)}.holly-case-study .runtime-sequence ol{padding:0;margin:0;display:grid;grid-template-columns:repeat(6,1fr);list-style:none}.holly-case-study .runtime-sequence li{position:relative;min-width:0;padding:24px 18px;border-right:1px solid var(--line)}.holly-case-study .runtime-sequence li:last-child{border:0}.holly-case-study .runtime-sequence li:not(:last-child):after{position:absolute;top:28px;right:-8px;z-index:1;width:15px;height:15px;display:grid;place-items:center;content:"›";background:#090d12;color:var(--accent);font-size:17px}.holly-case-study .runtime-sequence li>span,.holly-case-study .runtime-sequence strong,.holly-case-study .runtime-sequence small{display:block}.holly-case-study .runtime-sequence li>span{margin-bottom:30px;color:var(--accent);font:700 13px ui-monospace,monospace}.holly-case-study .runtime-sequence strong{font-size:16px}.holly-case-study .runtime-sequence small{margin-top:8px;color:var(--muted);font-size:15px;line-height:1.6}.holly-case-study .runtime-media{margin-top:clamp(55px,8vw,90px);display:grid;grid-template-columns:1.35fr .65fr;gap:20px}.holly-case-study .runtime-media figure{border:1px solid var(--line);background:#080c11}.holly-case-study .runtime-media figure img{border:0}.holly-case-study .runtime-media figcaption{padding:14px}.holly-case-study .runtime-facts{display:grid}.holly-case-study .runtime-facts article{padding:20px;border:1px solid var(--line);border-bottom:0;background:#0d141c}.holly-case-study .runtime-facts article:last-child{border-bottom:1px solid var(--line)}.holly-case-study .runtime-facts span{color:var(--accent);font:700 13px ui-monospace,monospace;letter-spacing:.07em}.holly-case-study .runtime-facts p{margin:7px 0 0;color:var(--muted);font-size:15px;line-height:1.6}
.holly-case-study .format-key{margin-bottom:clamp(55px,7vw,80px);padding:22px;border:1px solid var(--line);background:#0d141c}.holly-case-study .format-key>span{display:block;margin-bottom:18px;color:#9e93bc;font:700 13px ui-monospace,monospace;letter-spacing:.08em}.holly-case-study .format-key dl{margin:0;display:grid;grid-template-columns:repeat(5,1fr)}.holly-case-study .format-key dl>div{padding:14px 18px;display:flex;gap:12px;border-left:1px solid var(--line)}.holly-case-study .format-key dt{color:var(--accent);font:700 13px ui-monospace,monospace;white-space:nowrap}.holly-case-study .format-key dd{margin:0;color:#c5ced6;font-size:15px}.holly-case-study .persistence-flow{display:grid;grid-template-columns:.78fr 1.22fr;align-items:center;gap:clamp(45px,7vw,85px)}.holly-case-study .flow-copy h3{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}.holly-case-study .flow-copy ol{padding:0;margin:28px 0 0;list-style:none;border-top:1px solid var(--line)}.holly-case-study .flow-copy li{padding:13px 0;display:flex;gap:18px;border-bottom:1px solid var(--line);color:#b6c0c9;font-size:15px}.holly-case-study .flow-copy li span{color:var(--accent);font:700 13px ui-monospace,monospace}.holly-case-study .persistence-flow figure,.holly-case-study .level-file{border:1px solid var(--line);background:#090d12}.holly-case-study .persistence-flow figure img{border:0}.holly-case-study .persistence-flow figcaption{padding:14px}.holly-case-study .level-file{max-width:640px;margin:clamp(48px,7vw,72px) auto 0}.holly-case-study .level-file>div{border-bottom:1px solid var(--line)}.holly-case-study .level-file img{width:auto;max-width:100%;height:auto;max-height:min(62vh,560px);margin-inline:auto;object-fit:contain;border:0;background:#202020}.holly-case-study .level-file figcaption{padding:10px 14px 12px;text-align:center}
.holly-case-study .takeaway-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(50px,8vw,100px)}.holly-case-study .takeaway-copy p{color:#aab6c0;font-size:17px;line-height:1.85}.holly-case-study .takeaway-layout aside{padding:28px;border:1px solid #c4b5fd55;background:#c4b5fd07}.holly-case-study .takeaway-layout aside>span{color:var(--accent);font:700 15px/1.45 ui-monospace,monospace;letter-spacing:.055em}.holly-case-study .takeaway-layout ul{padding:0;margin:24px 0 0;list-style:none}.holly-case-study .takeaway-layout li{padding:13px 0;border-top:1px solid var(--line);color:#b8c3cc;font-size:16px;line-height:1.55}.holly-case-study .takeaway-layout li:before{content:"→";margin-right:10px;color:var(--accent)}.holly-case-study .contact.section{padding-block:clamp(80px,11vw,145px);border-top:1px solid var(--line)}.holly-case-study .contact h2{margin:0 0 20px;font-size:clamp(2.8rem,6vw,5.5rem)}.holly-case-study .contact-links{margin-top:48px;gap:24px}.holly-case-study .contact-links a{color:#a7b1ba;font-size:15px;font-weight:650}
@media(max-width:1050px){.holly-case-study .case-hero{grid-template-columns:1fr}.holly-case-study .case-hero-media{max-width:850px}.holly-case-study .contribution-grid-four{grid-template-columns:repeat(2,1fr)}.holly-case-study .runtime-sequence ol{grid-template-columns:repeat(3,1fr)}.holly-case-study .runtime-sequence li{border-bottom:1px solid var(--line)}.holly-case-study .runtime-media{grid-template-columns:1fr}.holly-case-study .runtime-facts{grid-template-columns:repeat(2,1fr)}.holly-case-study .runtime-facts article:nth-child(2){border-bottom:1px solid var(--line)}}
@media(max-width:820px){.holly-case-study section[id],.holly-case-study #demo{scroll-margin-top:148px}.holly-case-study .case-jump>.shell{min-height:56px;padding:0;display:flex;overflow:hidden}.holly-case-study .case-jump>.shell>span{display:none}.holly-case-study .case-jump #case-jump-links{width:100%;padding:0 20px;display:flex!important;overflow-x:auto;gap:25px;scrollbar-width:thin}.holly-case-study .case-jump a{padding:18px 0;flex:0 0 auto;font-size:15px}.holly-case-study .contribution-intro{grid-template-columns:1fr}.holly-case-study .contribution-intro .eyebrow{grid-row:auto}.holly-case-study .map-grid{min-height:0;padding:24px;display:flex;flex-direction:column;gap:9px}.holly-case-study .map-arrow{transform:rotate(90deg)}.holly-case-study .map-input,.holly-case-study .map-editor,.holly-case-study .arrow-input,.holly-case-study .arrow-editor{display:none}.holly-case-study .map-mobile-inputs{order:1;width:min(100%,500px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.holly-case-study .map-mobile-inputs>div{display:grid;grid-template-rows:auto 28px;gap:6px;text-align:center}.holly-case-study .map-mobile-inputs span{min-width:0;padding:13px 8px;border:1px solid #3c4857;background:#0e151d;color:#dce4eb;font:700 15px/1.45 ui-monospace,Consolas,monospace;text-transform:uppercase;letter-spacing:.035em}.holly-case-study .map-mobile-inputs b{color:var(--accent);font:700 24px/1 ui-monospace,monospace}.holly-case-study .map-core{order:2;width:min(100%,500px)}.holly-case-study .map-branch-arrow{display:none}.holly-case-study .arrow-registry{order:3;margin-top:clamp(20px,4vw,30px);font-size:0;transform:none}.holly-case-study .arrow-registry:before{content:"↓";font:700 29px/1 ui-monospace,monospace}.holly-case-study .map-registry{order:4;width:min(100%,500px)}.holly-case-study .arrow-objects{order:5}.holly-case-study .map-objects{order:6;width:min(100%,500px)}.holly-case-study .arrow-refs{order:7}.holly-case-study .map-pools{order:8;width:min(100%,500px)}.holly-case-study .arrow-pools,.holly-case-study .arrow-poolrefs{display:none}.holly-case-study .map-components{order:9;width:min(100%,500px)}.holly-case-study .arrow-runtime{order:10}.holly-case-study .map-runtime{order:11;width:min(100%,500px)}.holly-case-study .arrow-save{order:12;font-size:0;transform:none}.holly-case-study .arrow-save:before{content:"↓";font:700 29px/1 ui-monospace,monospace}.holly-case-study .map-save{order:13;width:min(100%,500px)}.holly-case-study .arrow-file{order:14}.holly-case-study .map-file{order:15;width:min(100%,500px)}.holly-case-study .editor-layout,.holly-case-study .storage-layout,.holly-case-study .persistence-flow,.holly-case-study .takeaway-layout{grid-template-columns:1fr}.holly-case-study .component-board{grid-template-columns:1fr;gap:18px}.holly-case-study .diagram-title{margin-bottom:8px}.holly-case-study .component-rail{width:1px;height:28px;justify-self:center}.holly-case-study .pool-strip{align-items:stretch;flex-direction:column}.holly-case-study .pool-strip b{transform:rotate(90deg);text-align:center}.holly-case-study .allocator-note{grid-template-columns:1fr}.holly-case-study .format-key dl{grid-template-columns:repeat(2,1fr)}.holly-case-study .takeaway-layout aside{max-width:620px}}
@media(max-width:560px){.holly-case-study .case-hero h1{font-size:clamp(3.5rem,17vw,5rem)}.holly-case-study .case-heading .section-copy p,.holly-case-study .takeaway-copy p{font-size:16px}.holly-case-study .case-hero .eyebrow,.holly-case-study .case-hero .case-subtitle,.holly-case-study .back-link{font-size:15px}.holly-case-study figcaption{font-size:14px;line-height:1.5}.holly-case-study .case-heading>.eyebrow{font-size:15px}.holly-case-study .contribution-grid-four{grid-template-columns:1fr}.holly-case-study .map-grid{padding:18px}.holly-case-study .runtime-sequence ol{grid-template-columns:1fr}.holly-case-study .runtime-sequence li{border-right:0}.holly-case-study .runtime-sequence li:not(:last-child):after{top:auto;right:50%;bottom:-8px;transform:rotate(90deg)}.holly-case-study .runtime-facts{grid-template-columns:1fr}.holly-case-study .runtime-facts article{border-bottom:0!important}.holly-case-study .runtime-facts article:last-child{border-bottom:1px solid var(--line)!important}.holly-case-study .format-key dl{grid-template-columns:1fr}.holly-case-study .format-key dl>div{border-top:1px solid var(--line);border-left:0}.holly-case-study .case-hero-media{padding:8px}.holly-case-study .level-file img{width:100%;max-height:none}}
.holly-case-study .map-branch-arrow>path,.holly-case-study .map-branch-arrow>line{stroke-width:2.25}.holly-case-study .arrow-registry,.holly-case-study .arrow-save{position:relative}.holly-case-study .arrow-registry:after,.holly-case-study .arrow-save:after{position:absolute;bottom:0;width:12px;height:12px;content:"";background:var(--accent);clip-path:polygon(0 0,100% 0,50% 100%)}.holly-case-study .arrow-registry:after{left:22%;transform:translateX(-50%) rotate(68deg)}.holly-case-study .arrow-save:after{left:78%;transform:translateX(-50%) rotate(-68deg)}
@media(min-width:821px) and (max-width:1050px){.holly-case-study .arrow-registry:after{transform:translateX(-50%) rotate(64deg)}.holly-case-study .arrow-save:after{transform:translateX(-50%) rotate(-64deg)}}
@media(max-width:820px){.holly-case-study .arrow-registry:after,.holly-case-study .arrow-save:after{display:none}}
@media(max-width:820px){.holly-case-study .arrow-objects,.holly-case-study .arrow-refs,.holly-case-study .arrow-runtime,.holly-case-study .arrow-file{font-size:0;transform:none}.holly-case-study .arrow-objects:before,.holly-case-study .arrow-refs:before,.holly-case-study .arrow-runtime:before,.holly-case-study .arrow-file:before{content:"↓";font:700 24px/1 ui-monospace,monospace}}
@media(prefers-reduced-motion:reduce){.holly-case-study *{scroll-behavior:auto}}
