/* Actual nested 3D planes. No opacity/filter/isolation on the shared stage. */
:root{--ease:cubic-bezier(.25,.1,.16,1)}
body{background:#782a27;background-image:radial-gradient(ellipse at center,#a44b35 0,#782a27 72%)}
#impress,#impress>div{transition-timing-function:cubic-bezier(.35,.04,.18,1)!important}
.step{transform-style:preserve-3d}.stage{overflow:visible;isolation:auto;transform-style:preserve-3d}
.stage:before{content:"";position:absolute;inset:0;background:#c69853;transform:translateZ(-9px);pointer-events:none}
.paper-rim{position:absolute;left:0;top:720px;width:1280px;height:9px;background:#cfb887;transform:rotateX(-90deg);transform-origin:top;pointer-events:none}
.depth-layer{position:absolute;inset:0;transform:translateZ(var(--depth));transform-style:preserve-3d;pointer-events:none}.depth-layer>*{pointer-events:auto}
.lift{transition-duration:1050ms,850ms}.reveal{transition-duration:1150ms,850ms}.initial{transition-duration:800ms,650ms}.pop{transition-duration:1150ms,750ms}
.sun-disc,.cover-stripe{display:none}.red-stage{background-color:#a3352e}.cover-paper{top:54px;height:586px;transform:translate3d(0,175px,0) rotate(-4deg)}
.entered .cover-paper{transform:translate3d(0,0,0) rotate(-2deg);transition-delay:650ms;transition-duration:1600ms,1000ms}
.letter-texture{position:absolute;inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px);object-fit:fill;z-index:-1;pointer-events:none}.cover-paper,.closing-letter{background:none;border-top:0}.cover-paper>*:not(.letter-texture),.closing-letter>*:not(.letter-texture){position:relative}
.envelope-back{left:31px;top:280px;width:755px;height:420px;transform:translateZ(8px) rotate(-2deg);background:none}.back-art{width:100%;height:100%;object-fit:fill}.envelope-front{left:34px;bottom:-8px;height:143px;width:757px;clip-path:none;background:none;transform:translateZ(90px);pointer-events:none;overflow:hidden}.front-art{position:absolute;left:0;top:0;width:100%;height:355px;object-fit:fill}.envelope-flap{position:absolute;left:34px;top:565px;width:757px;height:245px;transform:translateZ(90px) rotateX(0deg);transform-origin:50% 0;pointer-events:none}.flap-art{width:100%;height:100%;object-fit:fill}.entered .envelope-flap{animation:open-flap 1800ms 250ms var(--ease) both}
@keyframes open-flap{0%{transform:translateZ(95px) rotateX(0deg);opacity:1}70%{opacity:1}100%{transform:translateZ(12px) rotateX(170deg);opacity:0}}
.wax-seal{padding:0;border:0;background:none;left:645px;bottom:30px;transform-style:preserve-3d}.seal-art{width:100%;height:100%}.entered .wax-seal{transform:translateZ(115px) rotate(-10deg);transition-delay:2200ms}
.cover-person{left:820px;top:196px;width:390px;height:445px;--rig-scale:.94}.cover-desk{left:802px;top:579px;width:478px;transform:translate3d(60px,30px,0)}.entered .cover-desk{transition-delay:80ms}.cover-side-note{right:56px;top:60px;transform:translateZ(30px)}
.theatre-leaves{position:absolute;width:185px;height:250px;object-fit:contain;right:-30px;bottom:-20px;transform:translateZ(118px) rotate(-18deg);pointer-events:none;opacity:.95}.cover .theatre-leaves{left:-48px;right:auto;bottom:30px;width:178px;transform:translateZ(120px) rotate(-15deg)}.theatre-bookmark{position:absolute;right:37px;top:-27px;width:57px;height:172px;object-fit:fill;transform:translateZ(12px) rotate(-3deg);pointer-events:none}.cover .theatre-bookmark{left:634px;right:auto;top:-16px;height:148px;transform:translateZ(48px) rotate(2deg)}.corner-notes{position:absolute;right:52px;bottom:20px;width:95px;height:100px;object-fit:contain;opacity:.8;transform:translateZ(15px) rotate(7deg);pointer-events:none}.page-number{right:106px;top:42px;font-size:18px}.chapter{transform:translateZ(15px)}
.chapter-medallion{position:absolute;right:70px;top:82px;width:86px;height:86px;transform:translateZ(100px) rotateY(-90deg) scale(.75);opacity:0;transition:transform 1400ms var(--ease),opacity 700ms;pointer-events:none}.entered .chapter-medallion{transform:translateZ(100px) rotateY(-8deg) rotateZ(7deg);opacity:1;transition-delay:900ms}.medallion-art{width:100%;height:100%;object-fit:contain}
.thought .chapter-medallion{right:85px;top:510px}.practice .chapter-medallion{right:87px;top:552px;width:65px;height:65px}.practice.revealed .chapter-medallion{opacity:0;transform:translateZ(100px) translateY(35px)}.service .chapter-medallion{right:59px;top:84px;width:72px;height:72px}.organize .chapter-medallion{right:70px;top:95px}.life .chapter-medallion{right:60px;top:73px}
.reading-books{transform-style:preserve-3d}.qingma figcaption{font-size:19px;min-width:148px}.dialogue-paper{background:transparent;border:0;padding:37px 35px;font-size:25px;top:115px;left:649px;width:452px}.note-texture{position:absolute;inset:-22px;width:calc(100% + 44px);height:calc(100% + 44px);object-fit:fill;z-index:-1}.dialogue-paper:after{display:none}.dialogue .listener{left:946px;top:297px;width:240px;height:350px;--rig-scale:.58}.dialogue .elder{left:626px;top:328px;width:255px;height:310px;--rig-scale:.67}.listener img{transform:none}.table-round{left:755px;top:579px;width:270px}.dialogue-thread{top:515px}
.monitor-group{transform:translate3d(0,30px,0) rotateY(-13deg);transition:transform 1600ms var(--ease),opacity 900ms}.entered .monitor-group{transform:rotateY(-7deg)}.practice.revealed .monitor-group{transform:translate3d(-8px,-20px,40px) rotateY(0deg) scale(1.015);transition-duration:1600ms}.monitor{box-shadow:8px 10px 0 #485c5b}.system-flow{top:577px;right:84px}.system-flow div{transition-duration:950ms,1100ms}.revealed .system-flow div{transition-delay:calc(var(--order)*240ms)}.developer{--rig-scale:.59;left:105px;top:313px;width:260px;height:365px}.practice.revealed .developer{transform:translate3d(-17px,0,0) scale(.96)}
.learning .scholar-disc{z-index:0;transform:translateZ(8px)}.awards{transform-style:preserve-3d;top:348px}.award{transition-duration:1350ms,850ms;transform:translate3d(277px,70px,-150px) rotateY(65deg) rotateZ(-5deg) scale(.75);backface-visibility:hidden;box-shadow:5px 7px 0 #d1b887}.revealed .award{transform:translate3d(var(--x),0,0) rotateY(var(--yaw,0deg)) rotateZ(var(--angle));transition-delay:calc(var(--order)*230ms)}.award:first-child{--yaw:6deg}.award:last-child{--yaw:-6deg}.achievement-summary{transition-duration:1150ms}.learning .theatre-leaves{width:120px;bottom:19px;right:-15px}
.help-scene{transform-style:preserve-3d}.helper{--rig-scale:.65;left:5px;top:27px;width:255px;height:307px}.help-desk{top:245px}.work-evidence{transform-style:preserve-3d}.work-evidence figure{box-shadow:5px 7px 0 #dccba6;transition-duration:1300ms}.tutorial{transform:translate3d(30px,45px,-50px) rotateY(30deg)}.support{transition-delay:280ms;transform:translate3d(10px,60px,-75px) rotateY(-30deg)}.revealed .tutorial{transform:rotateZ(-2deg) rotateY(3deg)}.revealed .support{transform:rotateZ(2deg) rotateY(-3deg)}
.organizer{--rig-scale:.59;left:47px;top:287px;width:265px;height:371px}.organizer img{transform:none}.workflow{transform-style:preserve-3d;top:334px}.work-node{transform:translate3d(0,35px,-40px) rotateY(-12deg);transition-duration:1000ms,900ms}.entered .work-node{transition-delay:calc(200ms + var(--order)*400ms)}.entered .stamp{animation:stamp-down 1500ms 1250ms both}.entered .stamp-mark{animation:mark-in 700ms 2050ms forwards}.entered .chat-prop b{animation:answer-in 900ms 2200ms both}.entered .folder-prop>i{animation:file-in 1100ms 2600ms both}.entered .folder-prop>i:nth-child(2){animation-delay:2820ms}.entered .flying-sheet{animation:deliver-paper 2700ms 700ms both}.flow-line{transition-duration:2100ms}.organize .theatre-leaves{width:120px;height:170px;bottom:-20px}
.photo-album{transform-style:preserve-3d}.photo{transition-duration:1550ms;background:none;border:0;padding:17px 17px 5px}.photo>img:not(.photo-frame-art){height:227px}.photo-frame-art{position:absolute;inset:0;width:100%;height:100%!important;object-fit:fill;pointer-events:none;z-index:3}.photo figcaption{position:relative;z-index:4;background:#fff6de;display:inline-block;left:50%;transform:translateX(-50%);padding:4px 7px;margin-top:7px;white-space:nowrap;font-size:13px}.photo:before{display:none}.life.revealed .photo-a{transform:translate3d(-90px,-81px,-30px) rotateZ(-9deg) rotateY(8deg) scale(.76)}.life.revealed .photo-b{transform:translate3d(173px,148px,-20px) rotateZ(7deg) rotateY(-8deg) scale(.72);transition-delay:300ms}.life.revealed .photo-main{transform:translate3d(0,43px,20px) rotateZ(-2deg) scale(1.02);transition-delay:150ms}.life .exercise{left:146px;top:276px;width:270px;height:376px;--rig-scale:.61}.life .month-thread{top:663px;left:110px}.life .theatre-leaves{width:100px;height:140px;right:-15px}.exercise-ground{top:636px}.life-ending{bottom:37px;font-size:28px}
/* A real nested shoulder -> elbow rig; images are reconstructed independent parts. */
.puppet-host{pointer-events:none!important}.puppet-host .puppet{position:absolute;left:50%;top:0;width:400px;height:620px;margin-left:-200px;transform:scale(var(--rig-scale,1));transform-origin:50% 0}.rig-torso{position:absolute;inset:0;transform-origin:50% 80%}.puppet .rig-body{position:absolute;left:113px;top:164px;width:174px;height:425px;object-fit:fill!important;z-index:1}.joint-head{position:absolute;left:110px;top:0;width:180px;height:186px;transform:rotate(-3deg);transform-origin:50% 92%;z-index:5}.rig-head{width:100%;height:100%;object-fit:fill!important}.joint-upper{position:absolute;top:186px;width:64px;height:124px;transform-origin:50% 12%;transform:rotate(var(--rest));z-index:3}.joint-upper.left{left:85px;--rest:15deg}.joint-upper.right{left:251px;--rest:-18deg}.part-upper{position:absolute;inset:0;width:100%;height:100%;object-fit:fill!important}.joint-lower{position:absolute;left:4px;top:98px;width:57px;height:139px;transform-origin:50% 12%;transform:rotate(var(--rest));z-index:2}.joint-lower.left{--rest:-15deg}.joint-lower.right{--rest:10deg}.part-lower{width:100%;height:100%;object-fit:fill!important}
.rig-writer .rig-body,.rig-elder .rig-body{left:100px;top:171px;width:200px;height:247px}.rig-writer .joint-head,.rig-elder .joint-head{left:104px;top:0;width:192px;height:196px}.rig-writer .joint-upper,.rig-elder .joint-upper{top:190px}.rig-writer .joint-upper.left{left:79px;--rest:25deg}.rig-writer .joint-upper.right{left:258px;--rest:-24deg}.rig-writer .joint-lower.left{--rest:-76deg}.rig-writer .joint-lower.right{--rest:63deg}.rig-elder .joint-upper.left{left:83px;--rest:18deg}.rig-elder .joint-upper.right{left:252px;--rest:-27deg}.rig-elder .joint-lower.left{--rest:-33deg}.rig-elder .joint-lower.right{--rest:-57deg}
.pose-point .joint-upper.right{--rest:-52deg}.pose-point .joint-lower.right{--rest:-49deg}.pose-point .joint-lower.left{--rest:-47deg}.pose-listen .joint-upper.left{--rest:35deg}.pose-listen .joint-lower.left{--rest:50deg}.pose-listen .joint-upper.right{--rest:-8deg}.pose-listen .joint-lower.right{--rest:8deg}
.rig-exercise .joint-upper.left{--rest:7deg}.rig-exercise .joint-upper.right{--rest:-7deg}.rig-exercise .joint-lower.left{--rest:-6deg}.rig-exercise .joint-lower.right{--rest:6deg}.rig-exercise .rig-body{height:425px}.rig-exercise .joint-head{transform:rotate(0deg)}
.acting .pose-write .joint-lower.left,.acting .pose-help .joint-lower.left{animation:write-forearm 2500ms 900ms 2 ease-in-out}.acting .pose-write .joint-upper.left,.acting .pose-help .joint-upper.left{animation:small-shoulder 5000ms 900ms 1 ease-in-out}.acting .pose-write .joint-head{animation:nod 5100ms 600ms both ease-in-out}.acting .pose-point .joint-upper.right{animation:point-shoulder 4400ms 450ms both ease-in-out}.acting .pose-point .joint-lower.right{animation:point-elbow 4400ms 450ms both ease-in-out}.acting .pose-point .joint-head{animation:nod 4400ms 450ms both ease-in-out}
.thought.revealed.acting .pose-talk .joint-upper.right{animation:point-shoulder 4600ms 200ms both ease-in-out}.thought.revealed.acting .pose-talk .joint-lower.right{animation:point-elbow 4600ms 200ms both ease-in-out}.thought.revealed.acting .pose-listen .joint-head{animation:nod 3500ms 1400ms both ease-in-out}.thought.revealed.acting .pose-listen .joint-upper.left{animation:small-shoulder 3600ms 2000ms both ease-in-out}
.acting .pose-stretch .joint-upper.left{animation:stretch-left 6500ms 700ms both ease-in-out}.acting .pose-stretch .joint-upper.right{animation:stretch-right 6500ms 700ms both ease-in-out}.acting .pose-stretch .joint-lower.left{animation:stretch-elbow-left 6500ms 700ms both ease-in-out}.acting .pose-stretch .joint-lower.right{animation:stretch-elbow-right 6500ms 700ms both ease-in-out}.acting .pose-stretch .joint-head{animation:nod 6500ms 700ms both ease-in-out}
@keyframes write-forearm{0%,100%{transform:rotate(var(--rest))}25%{transform:rotate(calc(var(--rest) - 6deg))}55%{transform:rotate(calc(var(--rest) + 3deg))}75%{transform:rotate(calc(var(--rest) - 3deg))}}@keyframes small-shoulder{0%,100%{transform:rotate(var(--rest))}45%{transform:rotate(calc(var(--rest) + 5deg))}}@keyframes nod{0%,100%{transform:rotate(-3deg)}35%{transform:rotate(4deg)}60%{transform:rotate(-5deg)}}@keyframes point-shoulder{0%,100%{transform:rotate(calc(var(--rest) + 13deg))}40%,70%{transform:rotate(calc(var(--rest) - 8deg))}}@keyframes point-elbow{0%,100%{transform:rotate(calc(var(--rest) + 15deg))}40%,70%{transform:rotate(calc(var(--rest) - 12deg))}}@keyframes stretch-left{0%,100%{transform:rotate(7deg)}38%,70%{transform:rotate(151deg)}}@keyframes stretch-right{0%,100%{transform:rotate(-7deg)}38%,70%{transform:rotate(-151deg)}}@keyframes stretch-elbow-left{0%,100%{transform:rotate(-6deg)}38%,70%{transform:rotate(25deg)}}@keyframes stretch-elbow-right{0%,100%{transform:rotate(6deg)}38%,70%{transform:rotate(-25deg)}}
.camera-stop{pointer-events:none!important;visibility:hidden!important}.map-label{display:none;position:absolute;left:0;top:-84px;width:1280px;text-align:center;color:#ffe6ab;font:56px "KaiTi",serif;transform:translateZ(5px)}.global-view .step:not(.closing-page):not(.camera-stop){visibility:visible!important}.global-view .map-label{display:block}.global-view .puppet *{animation-play-state:paused!important}.global-view .closing-page{visibility:hidden!important}.global-view .theatre-leaves{display:none}.global-view .lift{opacity:1}.global-view .chapter-medallion{opacity:1;transform:translateZ(100px)}
.closing-page .closing-letter{left:150px;top:46px;width:770px;height:615px;padding:30px 48px}.closing-page .closing-letter h1{font-size:52px}.closing-page .reflection{font-size:16px}.closing-page .next-plans li{font-size:20px}.closing-page .closing{font-size:15px}.closing-page .signature{margin-top:15px}.closing-page .closing-seal{display:none}.closing-page .closing-envelope{left:170px;top:146px;width:785px;height:502px}.closing-page .theatre-leaves{width:160px;right:-20px;bottom:-20px}.badge-collection{position:absolute;right:88px;top:90px;width:170px;display:grid;grid-template-columns:1fr;gap:3px}.badge-collection figure{display:flex;align-items:center;gap:16px;opacity:0;transform:translate3d(80px,0,0) rotateY(-70deg);transition:transform 1500ms var(--ease),opacity 900ms}.entered .badge-collection figure{opacity:1;transform:translateZ(0) rotateY(0);transition-delay:calc(700ms + var(--order)*340ms)}.collected-art{width:108px;height:108px;object-fit:contain}.badge-collection figcaption{font:22px "KaiTi",serif;color:#f7dfa6;writing-mode:vertical-rl;letter-spacing:.15em}.closing-page .theatre-bookmark{right:68px}
.motion-status{color:#e8c18c}.in-motion #next,.in-motion #prev{opacity:.4;cursor:wait}.in-motion .puppet *{animation-play-state:paused!important}.motion-reduced .puppet *{animation:none!important}.motion-reduced .envelope-flap{animation:none!important;transform:translateZ(12px) rotateX(170deg)}
@media(prefers-reduced-motion:reduce){.puppet *{animation:none!important}}
.cover .theatre-bookmark{left:752px;top:-8px;width:44px;height:130px}.cover-desk .desk-paper{left:155px;width:190px}.cover-desk .mug{right:20px}.cover-desk .book-stack{left:10px;right:auto}

.qingma figcaption{min-width:205px;white-space:nowrap;font-size:18px}.puppet .joint-upper.left{left:101px}.puppet .joint-upper.right{left:235px}.rig-writer .joint-upper.left,.rig-elder .joint-upper.left{left:98px}.rig-writer .joint-upper.right,.rig-elder .joint-upper.right{left:242px}
.global-view.closing-view .closing-page{visibility:visible!important}.practice .title-block,.practice .developer{transition:opacity 1000ms,transform 1600ms var(--ease)}.practice.revealed .title-block,.practice.revealed .developer{opacity:0}.motion-reduced .practice.revealed .title-block,.motion-reduced .practice.revealed .developer{opacity:1}.cover.entered .stage{animation:desk-orbit 3500ms var(--ease) both}@keyframes desk-orbit{from{transform:rotateY(-13deg) rotateX(6deg) scale(.92)}to{transform:rotateY(0deg) rotateX(0deg) scale(1)}}.next-plans li{transition-duration:1050ms,800ms}.entered .next-plans li{transition-delay:calc(600ms + var(--order)*320ms)}
.practice.revealed .theatre-leaves,.practice.revealed .corner-notes,.practice.revealed .theatre-bookmark{opacity:0;transition:opacity 800ms}.practice .stage:before{inset:-100px -200px -100px -100px;background:var(--paper);background-image:url(assets/paper-grain.svg)}
.rig-writer .joint-upper{top:217px}.rig-writer .joint-lower.left{--rest:-110deg}.rig-writer .joint-lower.right{--rest:92deg}.cover-person{top:238px}.dialogue .elder:before{content:"";position:absolute;left:78px;top:140px;width:118px;height:170px;border:12px solid #a67a50;border-bottom-width:22px;border-radius:14px 14px 0 0;transform:translateZ(-2px)}
.photo>img:not(.photo-frame-art){position:absolute;left:31px;top:41px;width:270px;height:198px;object-fit:cover}.photo figcaption{position:absolute;bottom:16px;left:50%;margin:0;font-size:12px;padding:2px 5px}.rig-exercise .joint-upper{top:199px}.life .exercise{top:280px}
.rig-exercise .joint-upper.left{left:113px}.rig-exercise .joint-upper.right{left:223px}.rig-exercise .rig-body{z-index:4}.rig-exercise .joint-upper:before{content:"";position:absolute;left:9px;top:1px;width:46px;height:43px;border-radius:50%;background:#fff4dc url(assets/paper-grain.svg);z-index:1}.rig-exercise .part-upper{clip-path:inset(12% 0 0 0)}
.cover-paper h1{margin-top:45px}.closing-page .closing-letter h1{margin-top:52px}.closing-page .next-plans{margin-top:15px}.closing-page .next-plans li{padding:13px 0}.global-view .work-node{opacity:1;transform:none}.global-view .cover-paper{transform:rotate(-2deg)}.global-view .envelope-flap{opacity:0!important;animation:none!important}.global-view .cover-desk{transform:none}.journey-route{position:absolute;left:-900px;top:-700px;width:7600px;height:3500px;transform:translateZ(-400px);visibility:hidden;pointer-events:none}.global-view .journey-route{visibility:visible}.journey-route svg{width:100%;height:100%}
.puppet .joint-upper:before{content:"";position:absolute;left:8px;top:0;width:48px;height:43px;border-radius:50%;background:#f5ecd8 url(assets/paper-grain.svg);z-index:1}.puppet .part-upper{clip-path:inset(12% 0 0 0)}.rig-elder .joint-upper:before{background-color:#a4adb0}.cover .rig-writer .joint-lower.left{--rest:-90deg}.cover-desk .mug{right:60px}
.paper,.practice .stage:before{background-image:url(assets/theatre/paper-tile.webp);background-size:180px 180px}.red-stage,.puppet .joint-upper:before{background-image:none}.stage{will-change:transform}.in-motion .onstage .stage{backface-visibility:hidden}.cover-desk .desk-paper{left:125px}
