/* V29 — a composed S-curve, a winding intake and an open discipline stage. */
#home .opening-copy{opacity:var(--hero-copy-presence,1)!important}
.storycraft{--journey-paper:#eeeae3;--journey-muted:#c0c6c9;--journey-accent:#c8ac89;position:relative;margin-top:-100svh;color:var(--journey-paper);isolation:isolate;z-index:3;pointer-events:none}
.journey-stage{position:sticky;top:0;height:100svh;margin-bottom:-100svh;overflow:clip;opacity:0;z-index:0;pointer-events:none;background:#0c1015}
.journey-stage canvas,.journey-poster,.workbench-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.journey-poster{object-position:70% 50%}.journey-stage canvas{opacity:0}.journey-ready .journey-stage canvas{opacity:1}.journey-ready .journey-poster{visibility:hidden}
.workbench-placeholder{object-position:70% 50%;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;pointer-events:none}
.model-pending .workbench-placeholder{opacity:1;visibility:visible;transition:none}
.journey-shade{position:absolute;inset:0;background:linear-gradient(90deg,#080c11b3,transparent 48%);opacity:var(--shade,1)}
.storycraft[data-side="right"] .journey-shade{background:linear-gradient(270deg,#080c11b3,transparent 48%)}
.journey-stage:after{content:'';display:none;position:absolute;inset:0;pointer-events:none}
.journey-registration{position:absolute;left:var(--pad);right:var(--pad);bottom:29px;display:flex;justify-content:flex-end;font-size:9px;letter-spacing:.1em;color:#aeb3b6;opacity:var(--registration,0);font-variant-numeric:tabular-nums}
.projection-credit{position:absolute;left:57%;right:var(--pad);bottom:6svh;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#c5c5bf;opacity:var(--projection-credit,0)}
.projection-credit>span:last-child{font-size:8px;letter-spacing:.1em;color:#8e9aa1}
.journey-entry{height:115svh;pointer-events:none}
.story-panel{position:relative;scroll-margin-top:0;pointer-events:none}
.journey-heading{position:absolute;left:var(--pad);top:9svh;z-index:3;pointer-events:auto;display:block;width:auto;margin:0}
.journey-heading .section-label,.craft-heading .section-label{font-size:10px;letter-spacing:.1em;color:var(--journey-accent);margin-bottom:24px}
.journey-heading h2{font-size:clamp(52px,5.4vw,82px);font-weight:450;letter-spacing:-.06em;line-height:1.04}
.journey-chapters{position:relative;z-index:2}
.journey-chapter{position:relative;min-height:104svh;display:flex;align-items:center;padding:12svh var(--pad);pointer-events:none;width:100%;max-width:none;margin:0}
.journey-chapter:first-child{min-height:95svh;align-items:flex-end;padding-bottom:18svh}
.story-copy{width:31%;max-width:410px;outline:none;pointer-events:auto;scroll-margin-top:38svh}
.journey-chapter:nth-child(2) .story-copy{margin-left:auto}
.story-label{font-size:10px;letter-spacing:.1em;line-height:1.6;color:var(--journey-accent);margin-bottom:20px}
.story-copy h3{font-size:clamp(34px,2.9vw,45px);line-height:1.14;font-weight:450;letter-spacing:-.045em;margin:0 0 23px}
.story-copy>p:last-child{font-size:17px;line-height:1.8;color:var(--journey-muted)}
.story-stops{position:absolute;left:var(--pad);bottom:0;display:flex;gap:26px;z-index:4;pointer-events:auto}
.story-stops a{display:flex;align-items:center;min-height:46px;font-size:11px;color:#adb5b8;border-bottom:1px solid transparent}
.story-stops a:hover,.story-stops a[aria-current]{color:#e7c9a4;border-bottom-color:#b7a079}
.journey-dock{height:110svh;pointer-events:none}
.craft-studio{position:relative;min-height:240svh;scroll-margin-top:0;pointer-events:none}
.craft-content{position:sticky;top:0;min-height:100svh;padding:110px var(--pad) 55px;pointer-events:none}
.craft-heading{width:45%;position:static;background:none;height:auto;display:block;padding:0;pointer-events:auto}
.craft-heading h2{font-size:34px;font-weight:450;line-height:1.1;letter-spacing:-.04em}.craft-heading .section-label{margin-bottom:16px}
.craft-index{display:flex;gap:30px;align-items:center;margin-top:32px;width:45%;max-width:520px;pointer-events:auto}
.craft-index button{position:relative;display:flex;gap:9px;align-items:center;min-height:48px;padding:0 0 10px;color:#919da5;font-size:14px;text-align:left}
.craft-index small{font-size:9px;color:#697b86;letter-spacing:.06em}.craft-index button:after{content:'';position:absolute;bottom:0;height:1px;left:0;right:0;background:#c8ac89;transform:scaleX(0);transform-origin:left;transition:transform .4s}
.craft-index button[aria-pressed="true"]{color:#e4d0b4}.craft-index button[aria-pressed="true"]:after{transform:scaleX(1)}
.skill-groups{width:45%;max-width:560px;margin-top:55px;pointer-events:auto}
.skill-group{position:relative}.skill-group+.skill-group{margin-top:70px}
.skill-group h3{margin:0;font-size:clamp(56px,5.5vw,84px);font-weight:450;line-height:1.04;letter-spacing:-.06em}
.skill-list{list-style:none;display:flex;flex-wrap:wrap;gap:4px 0;padding:0;margin:24px 0 0;font-size:18px;line-height:1.65;color:#bdc6ca}
.skill-list li:not(:last-child):after{content:'·';font-size:13px;margin:0 13px;color:#6d7b83}
.skill-software{list-style:none;display:flex;flex-wrap:wrap;gap:24px 34px;padding:0;margin:43px 0 0;color:#b7c0c4;font-size:13px;line-height:1.5}
.skill-software li{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:85px}
.skill-group[data-skill="2"] .skill-software{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.skill-group[data-skill="2"] .skill-software li{min-width:0}
.tool-mark{display:block;width:35px;height:35px;background:#d4d9d9;mask:var(--mark) center/contain no-repeat}
.tool-mark.pr{--mark:url('assets/cinema29/tools/adobepremierepro.svg');background:#bbb6dc}.tool-mark.resolve{--mark:url('assets/cinema29/tools/davinciresolve.svg')}
.tool-mark.ae{--mark:url('assets/cinema29/tools/adobeaftereffects.svg');background:#bbb6dc}.tool-mark.remotion{--mark:url('assets/cinema29/tools/remotion.svg');background:#a8cbdc}
.tool-mark.blender{--mark:url('assets/cinema29/tools/blender.svg');background:#d2bba3}.tool-mark.unreal{--mark:url('assets/cinema29/tools/unrealengine.svg')}.tool-mark.unity{--mark:url('assets/cinema29/tools/unity.svg')}
.craft-work-link{pointer-events:auto;margin-top:40px;font-size:12px;min-height:44px;display:inline-flex;align-items:center;color:#d1b99c}
.cinema-source{position:fixed;width:1px;height:1px;left:-10px;top:-10px;opacity:0;pointer-events:none}
.photo-section{z-index:4}.photo-section .photo-curve{fill:#10151a}
.storycraft :focus-visible{outline:1px solid #dfba84;outline-offset:8px;border-radius:2px}
@media(min-width:801px){
 .journey-enhanced:not(.is-reading) .skill-groups{position:relative;height:320px}
 .journey-enhanced:not(.is-reading) .skill-group{position:absolute;inset:0;opacity:0;margin:0;pointer-events:none;will-change:opacity,transform}
 .journey-enhanced:not(.is-reading) .skill-group.is-current{pointer-events:auto}
}
@media(min-width:981px) and (max-height:780px){.craft-content{padding-top:92px;padding-bottom:30px}.craft-heading h2{font-size:30px}.craft-index{margin-top:22px}.skill-groups{margin-top:35px}.skill-group h3{font-size:63px}.skill-software{margin-top:30px}.craft-work-link{margin-top:20px}.journey-enhanced:not(.is-reading) .skill-groups{height:275px}}
@media(min-width:801px) and (max-width:980px){.story-copy{width:36%}.story-copy>p:last-child{font-size:16px}.craft-heading,.craft-index,.skill-groups{width:48%}.craft-index{gap:18px}.skill-group h3{font-size:clamp(39px,5.5vw,56px)}.skill-list{font-size:16px}.skill-software{gap:22px}.projection-credit{font-size:9px}.projection-credit>span:last-child{display:none}}
@media(min-width:801px) and (max-aspect-ratio:1/1){.projection-credit{top:72%;bottom:auto}.journey-chapter:first-child{min-height:85svh}.craft-content{padding-top:115px}.skill-group h3{font-size:clamp(39px,5.5vw,65px)}}
@media(max-width:800px){
 .journey-stage:after{display:block;z-index:1;background:linear-gradient(180deg,transparent calc(34svh - var(--craft-shift,0px)),#10151a calc(54svh - var(--craft-shift,0px)),#10151a 100%);opacity:var(--room-shade,0)}
 .journey-shade,.storycraft[data-side="right"] .journey-shade{z-index:2;background:linear-gradient(0deg,#080c11 0%,#080c11f2 27%,#080c1155 50%,transparent 64%),linear-gradient(180deg,#080c11c9,#080c1144 24%,transparent 38%)}
 .journey-registration,.projection-credit{z-index:3}.journey-registration{bottom:21px;font-size:8px}.journey-heading{top:9svh}.journey-heading h2{font-size:49px}.journey-heading .section-label{font-size:8px;margin-bottom:17px}
 .journey-chapter,.journey-chapter:first-child{min-height:103svh;align-items:flex-end;padding:0 var(--pad) 17svh}
 .story-copy,.journey-chapter:nth-child(2) .story-copy{width:100%;max-width:410px;margin-left:0;scroll-margin-top:58svh}
 .story-label{font-size:9px;margin-bottom:13px}.story-copy h3{font-size:33px;margin-bottom:16px}.story-copy>p:last-child{font-size:15.5px;line-height:1.75;max-width:365px}
 .story-stops{gap:24px;bottom:2svh}.story-stops a{font-size:10px}.journey-dock{height:90svh}
 .craft-studio{min-height:0;padding-bottom:85px}.craft-content{position:relative;min-height:0;padding:53svh var(--pad) 0}.craft-heading,.skill-groups{width:100%;max-width:unset}
 .craft-heading .section-label{font-size:8px}.craft-heading h2{font-size:31px}.craft-index{display:none}
 .skill-groups{margin-top:50px}.skill-group+.skill-group{margin-top:78px}.skill-group h3{font-size:clamp(36px,11vw,47px)}.skill-list{margin-top:19px;font-size:16px}.skill-list li:not(:last-child):after{margin:0 10px}
 .skill-software{margin-top:29px;gap:24px 30px;font-size:13px}.skill-software li{min-width:70px;gap:12px}.tool-mark{width:31px;height:31px}.craft-work-link{margin-top:45px}
 .projection-credit{left:var(--pad);right:var(--pad);top:45svh;bottom:auto;font-size:10px;transform:translateY(calc(var(--craft-shift,0px)*-1))}.projection-credit>span:last-child{font-size:7px}.workbench-placeholder{object-position:center top}
}
/* Complete unpinned content for native/reduced/off/short-screen modes. */
.storycraft.is-reading{margin-top:0;background:#0d1218;pointer-events:auto}
.is-reading .journey-stage{position:relative;opacity:1!important;height:430px;margin:0}
.is-reading .journey-stage canvas{visibility:hidden}.is-reading .journey-poster{visibility:visible;opacity:.9}.is-reading .workbench-placeholder,.is-reading .journey-shade,.is-reading .journey-entry,.is-reading .journey-dock,.is-reading .journey-registration,.is-reading .projection-credit{display:none}
.is-reading .story-panel{scroll-margin-top:45px}.is-reading .journey-heading{position:relative;top:auto;left:auto;padding:60px var(--pad) 0}.is-reading .journey-heading h2 br{display:none}
.is-reading .journey-chapters{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding:60px var(--pad) 85px}
.is-reading .journey-chapter,.is-reading .journey-chapter:first-child{min-height:0;padding:0;display:block}
.is-reading .story-copy,.is-reading .journey-chapter:nth-child(2) .story-copy{opacity:1!important;transform:none!important;width:100%;max-width:unset;margin:0}.is-reading .story-stops{display:none}
.is-reading .craft-studio{min-height:0;background:#10151a;padding:0}.is-reading .craft-studio:before{content:'';display:block;height:clamp(280px,42vw,560px);background:url('assets/cinema29/workbench-poster.webp') center/contain no-repeat}
.is-reading .craft-content{position:relative;min-height:0;padding:55px var(--pad) 85px}.is-reading .craft-heading{width:100%}.is-reading .craft-index{display:none}
.is-reading .skill-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px;width:100%;max-width:none;margin-top:48px}
.is-reading .skill-group{opacity:1!important;transform:none!important;margin:0}.is-reading .skill-group h3{font-size:39px}.is-reading .skill-list{font-size:15px}.is-reading .skill-software{font-size:12px;gap:22px}.is-reading .craft-work-link{margin-top:50px}
@media(max-width:800px){.is-reading .journey-stage{height:300px}.is-reading .journey-chapters{display:block;padding-top:40px;padding-bottom:60px}.is-reading .journey-chapter+.journey-chapter{margin-top:50px}.is-reading .craft-studio:before{height:400px;background:url('assets/cinema29/workbench-poster-phone.webp') center top/100% auto no-repeat}.is-reading .craft-content{padding-top:50px;padding-bottom:70px}.is-reading .skill-groups{display:block}.is-reading .skill-group+.skill-group{margin-top:78px}.is-reading .skill-group h3{font-size:clamp(36px,11vw,47px)}}
@media(prefers-reduced-motion:reduce){.craft-index button:after{transition:none}.skill-group{will-change:auto}}
