:root{--paper:#f9fbfd;--pure:#fff;--ink:#223449;--blue:#4c7cae;--blueDeep:#315c8c;--muted:#71879c;--subtle:#8296ab;--line:#d9e4ee;--light:#e9f1f8;--ease:cubic-bezier(.18,.78,.24,1);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;height:100%;background:#eef3f8}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}[hidden]{display:none!important}body{overflow:hidden}.outer-atmosphere{position:fixed;inset:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse 50% 55% at 50% 45%,#fff 0%,#eef3f8 78%,#e7eef5 100%);color:#93a7bb}.outer-atmosphere:before{content:"";position:absolute;width:55vmin;height:55vmin;border:1px solid #dce6ef;transform:rotate(24deg);left:6vw;top:24vh}.outer-atmosphere:after{content:"";position:absolute;top:13vh;right:10vw;width:16vw;height:1px;background:#b8cddd;transform:rotate(-34deg)}.outer-index,.outer-foot{position:absolute;left:5vw;font-size:10px;letter-spacing:.23em;line-height:2}.outer-index{top:6vh}.outer-foot{bottom:6vh}.site{position:relative;height:100dvh;max-height:920px;width:min(100%,430px);margin:auto;isolation:isolate;background:var(--paper);overflow:hidden;box-shadow:0 4px 42px rgba(53,83,118,.13)}.site:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.28;background-image:radial-gradient(#648ab0 .4px,transparent .7px);background-size:8px 8px;mask-image:linear-gradient(180deg,transparent,#000 34%,transparent 69%)}.site:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-left:1px solid #d2e0ed;border-right:1px solid #d2e0ed}.corner-tick{position:absolute;z-index:3;pointer-events:none;width:17px;height:17px}.top-left{top:20px;left:17px;border-top:1px solid #86a6c5;border-left:1px solid #86a6c5}.bottom-right{bottom:16px;right:15px;border-right:1px solid #86a6c5;border-bottom:1px solid #86a6c5}.stage{position:absolute;inset:0;overflow:hidden;z-index:2;background:linear-gradient(146deg,#fcfdff,#f5f9fc 65%,#fafdff)}.compact-mono,.eyebrow{font:500 10px/1.55 'Courier New',monospace;letter-spacing:.135em;color:var(--blueDeep)}.eyebrow{font-size:10px;letter-spacing:.16em}.dot{color:#82a8d0}.outline-number{-webkit-text-stroke:1px #8bb0d0;color:transparent;font-family:Arial,sans-serif;font-weight:200;letter-spacing:-.11em}.text-action{border:0;background:transparent;font-size:12px;color:#637f9f;letter-spacing:.05em;padding:10px}.text-action span{margin-left:9px;color:#316b9e}.micro-square{display:inline-block;width:5px;height:5px;background:#6196c4;margin-left:7px;vertical-align:middle}.boot-header{position:absolute;top:40px;left:34px;right:34px;display:flex;justify-content:space-between;color:#5e7f9d}.mini-led{display:inline-block;width:5px;height:5px;border-radius:50%;background:#5c94c6;box-shadow:0 0 0 4px #e1ecf7;animation:beacon 3s ease infinite;margin-left:6px}.boot-compose{position:absolute;top:16%;left:7%;right:7%;height:39%;overflow:hidden}.boot-compose .panel{position:absolute;display:block;border:1px solid rgba(115,161,203,.36);background:rgba(133,180,219,.12);transform:translateY(45px) skewX(-12deg);opacity:0}.panel-a{width:58%;height:82%;left:10%;top:-1%;clip-path:polygon(0 0,100% 0,67% 100%,0 83%)}.panel-b{width:41%;height:75%;right:6%;top:9%;clip-path:polygon(21% 0,100% 14%,87% 100%,0 83%);background:linear-gradient(130deg,#dce9f5,#8eb8dc88)!important}.panel-c{width:45%;height:39%;left:27%;bottom:2%;clip-path:polygon(0 40%,84% 0,100% 73%,31% 100%);background:#a9c7e455!important}.boot.play .panel-a{animation:assembleA .9s .22s var(--ease) forwards}.boot.play .panel-b{animation:assembleB .85s .75s var(--ease) forwards}.boot.play .panel-c{animation:assembleA .8s 1.35s var(--ease) forwards}.calibration-cross{position:absolute;right:7%;top:11%;font-size:28px;font-weight:200;color:#326794;animation:floatCross 6s ease-in-out infinite}.calibration-rail{position:absolute;top:51%;left:5%;right:5%;height:1px;background:#8fb1d2;transform-origin:left;transform:scaleX(0)}.boot.play .calibration-rail{animation:drawLine 2s .7s ease-out forwards}.boot-path{position:absolute;left:8%;top:22%;width:1px;height:74%;background:linear-gradient(#6790b7,transparent);transform:rotate(20deg)}.boot-content{position:absolute;top:49%;left:34px;right:34px}.boot-number{font-size:92px;line-height:1;opacity:.42;position:absolute;top:-38px;right:2px}.boot-name{position:relative;padding-left:14px;border-left:2px solid #6b9dc9;color:#35689b}.boot-name span{opacity:.62}.boot-content h1{position:relative;margin:23px 0 5px;font-size:30px;font-weight:500;letter-spacing:.065em;color:#213b56}.boot-content p{font-size:13px;color:#6c859d;margin:6px 0}.boot-meter{position:absolute;left:34px;right:34px;bottom:17%}.boot-readout{display:flex;justify-content:space-between;align-items:baseline}.boot-readout strong{font-size:17px;font-weight:400;letter-spacing:0}.meter-track{margin-top:14px;width:100%;height:2px;background:#dce7f1;overflow:hidden}.meter-track div{width:0;height:100%;background:#4c84bc;transition:width .12s linear}.boot-legend{display:flex;justify-content:space-between;margin-top:13px;opacity:.66;font-size:9px;letter-spacing:.08em}.boot-skip{position:absolute;right:27px;bottom:6%;z-index:4}.entry{background:#f9fbfd}.entry-top{position:absolute;top:41px;left:35px;right:35px;display:flex;justify-content:space-between}.entry-composition{position:absolute;top:10%;left:12%;width:76%;height:35%;animation:entry-arrive .8s var(--ease) both}.entry-image{position:absolute;inset:3% 3% 5% 20%;background: url('assets/entry_fragment.webp') center 55%/cover;clip-path:polygon(3% 0%,100% 0%,80% 88%,14% 100%);animation:slowLift 12s ease-in-out infinite alternate}.entry-glass-outline{position:absolute;left:3%;top:12%;width:87%;height:73%;border:1px solid #a9bfd4;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:rotate(-8deg)}.entry-art-index{position:absolute;bottom:0;right:0;text-align:right;font-size:9px}.plus-point{position:absolute;left:5%;top:4%;font-size:26px;color:#4b81ad}.entry-number{position:absolute;top:40%;right:32px;font-size:94px;opacity:.20}.entry-copy{position:absolute;top:45%;left:39px;right:30px}.entry-copy h1{margin:12px 0 12px;font-weight:500;font-size:clamp(29px,8vw,39px);letter-spacing:.035em;line-height:1.47;color:#213a51}.entry-quote{margin:0;font-size:13px;color:#687f96;letter-spacing:.08em}.entry-controls{position:absolute;left:36px;right:36px;bottom:12%}.hold-top{display:flex;justify-content:space-between;margin-bottom:9px;font-size:10px}.hold-button{display:flex;position:relative;align-items:center;justify-content:space-between;overflow:hidden;width:100%;height:66px;border:1px solid #a9c4dc;background:rgba(250,253,255,.88);text-align:left;padding:0 18px;color:#234c76;touch-action:none;user-select:none;-webkit-user-select:none}.hold-track{position:absolute;inset:0;pointer-events:none}.hold-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#dcebf9,#adcdeb);opacity:.63}.hold-marker,.hold-copy,.hold-arrow{position:relative;z-index:1}.hold-marker{font-size:25px;font-weight:200}.hold-copy{font-size:15px;font-weight:500;letter-spacing:.09em}.hold-arrow{font-size:20px}.hold-button:active{border-color:#517fac}.hold-feedback{text-align:center;font-size:11px;color:#71889f;min-height:18px;margin:11px 0 0}.entry-direct{display:block;margin:12px auto 0;font-size:12px}.entry-last{position:absolute;bottom:26px;left:34px;right:34px;display:flex;justify-content:space-between;font-size:9px;opacity:.65}.reader{display:flex;flex-direction:column}.reader-header{position:relative;display:flex;align-items:center;justify-content:space-between;flex:0 0 78px;padding:23px 24px 11px;z-index:25;background:rgba(249,251,253,.93);border-bottom:1px solid #ecf0f5}.brand{border:0;display:flex;align-items:center;gap:12px;padding:0;background:transparent;text-align:left}.brand-symbol{font:bold 19px/1 Arial,sans-serif;border:1px solid #88aaca;width:37px;height:37px;display:flex;align-items:center;justify-content:center;color:#396995;letter-spacing:-2px}.brand-symbol span{font-size:12px;margin-left:1px;align-self:flex-end;padding-bottom:8px;letter-spacing:0}.brand-type{display:flex;flex-direction:column;gap:5px}.brand-type b{font-size:13px;font-weight:600;letter-spacing:.01em;color:#28445e}.brand-type small{font:9px/1 'Courier New',monospace;letter-spacing:.15em;color:#7390a8}.reader-actions{display:flex;align-items:center;gap:17px}.online-dot{width:5px;height:5px;background:#76a6c9;border-radius:50%;box-shadow:0 0 0 4px #e8f2fa;animation:beacon 3.6s ease-in-out infinite}.menu-button{width:39px;height:39px;display:flex;align-items:flex-end;justify-content:center;flex-direction:column;gap:6px;border:0;background:transparent;padding:8px}.menu-button span{width:20px;height:1px;background:#456c92;transition:transform .3s,width .3s}.menu-button span+span{width:13px}.menu-button[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-button[aria-expanded="true"] span+span{width:20px;transform:translateY(-3.5px) rotate(-45deg)}.index-menu{position:absolute;top:78px;left:0;right:0;bottom:76px;background:#f9fcff;z-index:30;padding:40px 36px 20px;overflow:auto;box-shadow:0 18px 32px #7394b218}.index-menu-head{margin-bottom:24px;font-size:11px}.index-menu button{height:62px;background:transparent;border:0;border-bottom:1px solid var(--line);width:100%;display:flex;gap:24px;align-items:center;font-size:16px;text-align:left;color:#2b4862}.index-menu button span{font:14px 'Courier New',monospace;color:#7a9cbd}.index-menu button i{margin-left:auto;font-style:normal;color:#6b97bd}.index-menu button.index-close{margin-top:18px;font-size:12px;border-bottom:0;color:#697f95}.reading-area{position:relative;z-index:3;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7d8e8 transparent}.reading-area::-webkit-scrollbar{width:3px}.reading-area::-webkit-scrollbar-thumb{background:#c7d8e8}.chapter{position:relative;min-height:100%;padding:27px 31px 64px;isolation:isolate}.chapter:before{content:"";position:absolute;top:8px;right:29px;bottom:26px;width:1px;background:linear-gradient(#d7e2ec00,#dce6ef 20%,#dce6ef00 86%);pointer-events:none}.section-metadata{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;color:#547693;font-size:10px}.chapter h2{color:#203a55;letter-spacing:.06em;font-weight:550}.chapter-header{position:relative;display:flex;align-items:flex-end;min-height:123px;margin-bottom:22px;gap:18px}.chapter-numeral{font-size:94px;line-height:1;white-space:nowrap;opacity:.83}.chapter-header h2{font-size:25px;line-height:1.3;margin:8px 0 4px;white-space:nowrap}.chapter-header .eyebrow{font-size:9px}.id-heading{position:relative;height:131px}.id-overprint{position:absolute;top:-2px;left:-9px;font:200 119px/.95 Arial,sans-serif;letter-spacing:-.08em;color:#7ba5cf40}.id-title-group{position:absolute;top:57px;left:103px}.id-title-group h2{font-size:26px;margin:7px 0}.id-visual{height:235px;width:83%;position:relative;margin-left:auto;overflow:hidden}.id-visual img,.style-visual img,.server-extra img,.notice-document img,.end-image img{width:100%;height:100%;object-fit:cover;display:block}.id-visual img{object-position:52% 44%;filter:saturate(.9) contrast(1.05)}.id-visual:after{content:"";position:absolute;inset:0;border:1px solid #b4cade;pointer-events:none}.visual-slash{position:absolute;left:-22px;top:-40px;width:120px;height:320px;border-left:1px solid #f7fcff;transform:rotate(31deg)}.visual-label{position:absolute;right:13px;bottom:14px;color:#255884;background:#f8fbfcd8;padding:7px 10px;font-size:9px}.visual-bracket{position:absolute;width:20px;height:20px;border-color:#4b83b4}.visual-bracket.a{top:9px;left:9px;border-top:1px solid;border-left:1px solid}.visual-bracket.b{bottom:10px;right:10px;border-bottom:1px solid;border-right:1px solid}.id-name{padding-top:35px}.id-name h3{font-size:33px;font-weight:500;color:#243d56;margin:11px 0 18px;letter-spacing:.06em}.id-tags{display:flex;flex-wrap:wrap;gap:8px}.id-tags span{border:1px solid #d9e6f0;color:#3d668e;padding:7px 9px;font-size:12px;background:#ffffffb8}.id-quote{margin-top:27px;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:11px;align-items:start}.id-quote .compact-mono{font-size:9px;white-space:nowrap}.id-quote p{font-size:13px;color:#637e97;line-height:1.8;letter-spacing:.05em;margin:-4px 0 0;text-align:right}.dual-graphic{height:145px;position:relative;margin:5px 0 23px;display:flex;align-items:center;justify-content:center}.dual-left{width:130px;height:110px;background:linear-gradient(135deg,#b4d0e88c,#e9f4fd4d);clip-path:polygon(0 15%,85% 0,100% 70%,20% 100%);transform:rotate(-8deg);border:1px solid #c0d3e6}.dual-right{width:108px;height:115px;background:url('assets/entry_fragment.webp') center/cover;clip-path:polygon(16% 0,100% 16%,72% 100%,0 88%);margin-left:-25px}.dual-mid{position:absolute;font-size:34px;color:#5f90bd;left:51%;top:31%;font-weight:200}.dual-graphic>.compact-mono{position:absolute;bottom:-7px;right:0;font-size:9px}.server-intro{font-size:15px;color:#3d617e;letter-spacing:.06em;margin:20px 0 15px}.server-choice{display:grid;grid-template-columns:1fr 1fr;gap:9px}.channel{min-width:0;min-height:175px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:1px solid #d4e2ee;background:#fafdff;padding:15px 12px;position:relative;transition:border-color .2s,background .2s,transform .2s}.channel.selected{border-color:#749ac0;background:#e9f2fa}.channel>span{font-size:9px;color:#5e86a7}.channel strong{font-size:19px;font-weight:520;color:#274b6b;margin:20px 0 13px}.channel small{font-size:11px;color:#4c6e8a;line-height:1.5}.channel i{font-style:normal;position:absolute;bottom:12px;right:12px;color:#6b94b6}.channel:active{transform:scale(.98)}.switch-reader{display:flex;justify-content:space-between;align-items:center;padding:19px 0;border-bottom:1px solid #dbe7f0;font-size:9px;gap:10px}.switch-reader b{font-weight:500;font-size:11px}.server-extra{width:58%;height:125px;position:relative;margin:30px 0 0 auto;overflow:hidden}.server-extra span{position:absolute;bottom:0;left:0;background:#f7fbfbe3;padding:8px 10px;font-size:9px}.style-visual{height:168px;width:100%;position:relative;overflow:hidden;margin:5px 0 25px}.style-visual img{object-position:50% 60%}.style-grid{position:absolute;left:0;right:0;bottom:0;top:0;background-image:linear-gradient(#fff5 1px,transparent 1px),linear-gradient(90deg,#fff5 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(90deg,#000,transparent 70%)}.style-label{position:absolute;bottom:9px;right:10px;background:#f7fbfccc;padding:7px}.style-register{padding:16px 0 22px;border-top:1px solid #ccdeea}.register-label{display:flex;align-items:baseline;gap:13px}.register-label span{font:25px Arial,sans-serif;font-weight:300;color:#90aecb}.register-label b{font-size:19px;font-weight:500;color:#2c4c67}.register-label small{font:10px 'Courier New',monospace;letter-spacing:.13em;color:#7a94ab;margin-left:auto}.style-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.style-tags span{font-size:12px;color:#365f85;background:#eaf2f9;padding:8px 12px;min-width:43px;text-align:center}.style-register.secondary{margin-top:3px}.style-reminder{margin-top:11px;display:flex;align-items:start;gap:24px;padding:17px 0;border-top:1px solid var(--line)}.style-reminder span{font-size:9px;max-width:70px}.style-reminder p{font-size:13px;line-height:2;color:#57748e;margin:0}.notice-document{position:relative;height:253px;margin:16px 0 28px}.notice-document img{position:absolute;width:61%;height:92%;right:0;top:0;object-fit:cover;opacity:.9}.notice-paper{position:absolute;left:0;top:35px;width:72%;height:190px;background:#fdfefeef;z-index:1;border:1px solid #cadce9;padding:20px;box-shadow:10px 13px 0 #dfeaf46c}.notice-paper>.compact-mono{font-size:10px}.document-slats{display:grid;gap:12px;margin-top:28px}.document-slats i{width:90%;height:1px;background:#c5d5e4}.document-slats i:nth-child(2){width:70%}.document-slats i:nth-child(3){width:81%}.document-slats i:nth-child(4){width:51%}.doc-stamp{position:absolute;right:22px;bottom:15px;font-size:34px;font-weight:200;color:#90aed0}.doc-small{position:absolute;left:20px;bottom:16px;font-size:9px!important}.notice-text p{font-size:17px;font-weight:500;letter-spacing:.03em;color:#2c4a67;margin:0 0 13px}.notice-text span{font-size:12px;line-height:1.8;color:#70869b;display:block}.large-action{width:100%;min-height:77px;background:#f3f8fc;border:1px solid #b8cfe2;display:flex;align-items:center;gap:17px;padding:16px 17px;text-align:left;color:#315b80;margin-top:24px;transition:background .2s,border-color .2s}.large-action:hover,.large-action:focus-visible{background:#e7f2fa;border-color:#78a6c9}.action-symbol{display:grid;place-items:center;width:32px;height:32px;border:1px solid #8cb1cf;border-radius:50%;font-size:17px;transition:transform .24s}.large-action:hover .action-symbol{transform:translate(2px,-2px)}.large-action>span:nth-child(2){display:flex;flex-direction:column;gap:6px}.large-action b{font-size:15px;font-weight:550;letter-spacing:.03em}.large-action small{font:10px 'Courier New',monospace;letter-spacing:.08em;color:#668ba9}.large-action>i{margin-left:auto;font-size:20px;font-style:normal}.notice-hint{display:flex;justify-content:space-between;margin-top:16px;font-size:9px}.links-design{height:203px;position:relative;margin:15px 0 29px;overflow:hidden;border-bottom:1px solid #d8e4ec}.links-design .big-outline{position:absolute;left:8px;top:-54px;font:200 240px/1 Arial,sans-serif;color:#b1c9df42}.links-shard{position:absolute;right:9%;top:15%;width:46%;height:76%;background:url('assets/links_fragment.webp') 55%/cover;clip-path:polygon(22% 0,100% 14%,77% 100%,0 77%)}.links-design>.compact-mono{position:absolute;left:10px;bottom:13px;font-size:9px}.links-list{display:grid;gap:10px}.external-action{display:flex;align-items:center;text-align:left;width:100%;min-height:90px;background:#fdfefe;border:1px solid #cddfec;padding:0 18px;gap:18px;transition:background .2s}.external-action:focus-visible,.external-action:hover{background:#ecf5fc}.external-action>.compact-mono{font-size:10px;align-self:start;margin-top:22px}.external-copy{display:flex;flex-direction:column;gap:6px}.external-copy b{font-size:19px;font-weight:500;color:#355779}.external-copy small{font:9px 'Courier New',monospace;letter-spacing:.07em;color:#7693aa}.external-action>i{font-style:normal;font-size:20px;margin-left:auto;color:#4e82ad}.links-caption{font-size:12px;color:#7b92a5;margin-top:21px}.end-image{position:relative;height:265px;overflow:hidden;margin:7px -31px 18px -31px}.end-image img{object-position:50% 50%;opacity:.9}.end-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#f9fbfd 0%,transparent 50%)}.end-outline{position:absolute;left:22px;bottom:0;font:200 120px/1 Arial,sans-serif;color:#315d8e32;letter-spacing:-.07em;z-index:1}.end-locator{position:absolute;right:40px;top:30px;font-size:32px;color:#4e7aaa}.end-copy h2{font-size:34px;font-weight:500;line-height:1.4;margin:9px 0 19px}.end-english{font-family:Georgia,'Times New Roman',serif;color:#4a779f;font-size:23px;line-height:1.55;margin:0}.end-english em{font-weight:400}.end-note{display:flex;justify-content:space-between;align-items:start;gap:12px;border-top:1px solid #d7e3ed;margin:26px 0 0;padding-top:18px}.end-note span{font-size:9px;max-width:80px}.end-note p{text-align:right;color:#71899f;font-size:12px;margin:0;line-height:1.8}.ending-actions{margin-top:10px}.ending-actions .large-action{margin-top:25px}.thin-action{font-size:12px;color:#6b8eaf;background:transparent;border:0;padding:15px 1px}.thin-action span{margin-left:9px}.reader-footer{height:76px;flex:0 0 76px;position:relative;z-index:21;display:flex;align-items:center;justify-content:space-between;background:#f9fcff;border-top:1px solid #dce8f2;padding:9px 22px calc(9px + env(safe-area-inset-bottom)*.22)}.chapter-nav{width:48px;height:48px;border:1px solid #d2e2ee;background:#fbfdff;color:#426c95;font-size:23px;font-weight:300;display:grid;place-items:center}.chapter-nav:disabled{opacity:.22;cursor:default}.chapter-forward{background:#e9f3fb;border-color:#b8d0e4}.footer-middle{flex:1;max-width:180px;padding:0 20px}.footer-progress{display:flex;gap:5px;margin-bottom:6px}.footer-progress i{display:block;flex:1;height:2px;background:#e1eaf3;transition:background .24s}.footer-progress i.active{background:#4f86b6}.footer-count{display:flex;align-items:baseline;gap:6px}.footer-count b{font:500 19px Arial,sans-serif;color:#35628c}.footer-count span{font:10px 'Courier New',monospace;color:#7d9bb5}.footer-count em{font-size:10px;font-style:normal;color:#6685a1;margin-left:auto;white-space:nowrap}.scene-transition{pointer-events:none;position:absolute;inset:78px 0 76px;z-index:20;overflow:hidden;visibility:hidden}.scene-transition .trans-one,.scene-transition .trans-two{position:absolute;inset:0;background:#e8f2f9;transform:translateX(-103%)}.scene-transition .trans-two{background:#f8fbfe;clip-path:polygon(19% 0,100% 0,82% 100%,0 100%)}.scene-transition .trans-cross{position:absolute;left:46%;top:44%;font-style:normal;font-size:28px;color:#6b96bb;opacity:0}.scene-transition.is-playing{visibility:visible}.scene-transition.is-playing .trans-one{animation:transIn .33s var(--ease) forwards}.scene-transition.is-playing .trans-two{animation:transIn .35s .06s var(--ease) forwards}.scene-transition.is-opening .trans-one{animation:transOut .34s ease-in forwards;transform:translateX(0)}.scene-transition.is-opening .trans-two{animation:transOut .33s .02s ease-in forwards;transform:translateX(0)}.scene-transition.is-playing .trans-cross{animation:crossPop .5s ease both}.scroll-cue{position:absolute;z-index:18;bottom:87px;right:29px;font-size:10px;color:#6f8da8;white-space:nowrap;padding:4px 0;background:none;border:0;pointer-events:none;animation:cue 1.8s ease-in-out infinite}.scroll-cue span{font-size:14px;margin-left:6px}.toast{position:absolute;z-index:60;bottom:102px;left:34px;right:34px;background:#315775;color:white;padding:14px 16px;font-size:12px;text-align:center;box-shadow:0 9px 20px #2d638826;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .22s,transform .22s}.toast.is-visible{opacity:1;transform:translateY(0)}
/* Each category gets a distinct entrance, with content staying stable after it lands. */
.reveal{opacity:1}.chapter:not(.is-entering) .reveal{transform:none;clip-path:none}.chapter.is-entering .reveal{animation-fill-mode:both}.chapter.is-entering .rise{animation:revealUp .53s var(--ease) both}.chapter.is-entering .image-cut{animation:revealClip .7s var(--ease) both}.chapter.is-entering .digit-in{animation:revealDigit .61s var(--ease) both}.chapter.is-entering .line-in{animation:revealLine .65s var(--ease) both}.chapter.is-entering .reveal:nth-child(1){animation-delay:0ms}.chapter.is-entering .reveal:nth-child(2){animation-delay:65ms}.chapter.is-entering .reveal:nth-child(3){animation-delay:130ms}.chapter.is-entering .reveal:nth-child(4){animation-delay:190ms}.chapter.is-entering .reveal:nth-child(5){animation-delay:245ms}.chapter.is-entering .reveal:nth-child(n+6){animation-delay:285ms}
@keyframes assembleA{0%{transform:translate(-55px,70px) skewX(-16deg);opacity:0}100%{transform:translate(0,0) skewX(0);opacity:1}}@keyframes assembleB{0%{transform:translate(80px,-60px) skewX(9deg);opacity:0}100%{transform:translate(0,0) skewX(0);opacity:1}}@keyframes drawLine{to{transform:scaleX(1)}}@keyframes beacon{0%,100%{opacity:.35}50%{opacity:1}}@keyframes floatCross{50%{transform:translate(0,8px) rotate(15deg)}}@keyframes slowLift{to{transform:translateY(-9px) scale(1.03)}}@keyframes entry-arrive{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes revealUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes revealClip{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes revealDigit{from{opacity:0;transform:translateX(-22px) scale(.96)}to{opacity:1;transform:none}}@keyframes revealLine{from{opacity:0;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1)}}@keyframes transIn{to{transform:translateX(0)}}@keyframes transOut{to{transform:translateX(103%)}}@keyframes crossPop{0%,100%{opacity:0}50%{opacity:1}}@keyframes cue{50%{opacity:.48;transform:translateY(3px)}}
@media(max-width:359px){.entry-copy{left:28px}.entry-controls{left:28px;right:28px}.chapter{padding-left:24px;padding-right:24px}.chapter-header{gap:13px}.chapter-numeral{font-size:78px}.chapter-header h2{font-size:23px}.id-title-group{left:91px}.id-visual{height:190px}.id-name{padding-top:21px}.end-image{margin-left:-24px;margin-right:-24px}.channel{padding:12px 9px;min-height:166px}.server-extra{margin-top:15px}.reader-header{padding-left:18px;padding-right:18px}.reader-footer{padding-left:17px;padding-right:17px}.footer-middle{padding:0 12px}}
@media(max-height:740px){.entry-composition{top:8%;height:28%}.entry-copy{top:38%}.entry-controls{bottom:9%}.boot-compose{height:34%;top:12%}.boot-content{top:45%}.boot-meter{bottom:15%}.id-visual{height:190px}}
@media(min-width:600px){.site{margin-top:max(0px,calc((100dvh - min(100dvh,920px))/2))}.outer-index{font-size:13px}.outer-foot{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.boot .panel{transform:none;opacity:1}.boot .calibration-rail{transform:none}.scene-transition{display:none!important}.chapter .reveal{opacity:1!important;transform:none!important;clip-path:none!important}}


/* =======================================================================
   V7 / CONSTRUCTED PROFILE — supplied-background integration
   All eight backdrops are derived directly from the supplied ZIP.
   The background paintings establish the composition; UI remains separate.
   ======================================================================= */
:root{--paper:#f8fbff;--ink:#223b57;--blue:#477db6;--blueDeep:#315b87;--muted:#627e9d;--line:#d1dfed}
.site{background:#f9fcff}
.site:before{opacity:.095;background-size:13px 13px;mask-image:linear-gradient(180deg,transparent 17%,#000 52%,transparent 88%)}
.outer-atmosphere{background:radial-gradient(ellipse at 50% 55%,#fff 10%,#edf4fa 72%,#e5edf6 100%)}
.stage{background-color:#f9fcff}
/* Backgrounds are intentionally separate from live content. */
.boot{background:#f8fbff url('assets/bg_07.webp') center top/100% auto no-repeat}
.entry{background:#f8fbff url('assets/bg_01.webp') center top/100% auto no-repeat}
.chapter-id{background:#f8fbff url('assets/bg_03.webp') center top/100% auto no-repeat}
.chapter-server{background:#f8fbff url('assets/bg_02.webp') center top/100% auto no-repeat}
.chapter-style{background:#f8fbff url('assets/bg_05.webp') center top/100% auto no-repeat}
.chapter-notice{background:#f8fbff url('assets/bg_04.webp') center top/100% auto no-repeat}
.chapter-links{background:#f8fbff url('assets/bg_06.webp') center top/100% auto no-repeat}
.chapter-end{background:#f8fbff url('assets/bg_08.webp') center top/100% auto no-repeat}
.reader{background:#f9fcff}
.reader-header{background:rgba(250,252,255,.96);border-bottom-color:#cbddec}
.reader-footer{background:rgba(250,252,255,.98);border-top-color:#c3d8e9}
.chapter{padding-top:29px}
.chapter:before{display:none}
/* Give information its own readable plane without hiding the artwork. */
.id-name{background:rgba(251,253,255,.85);border-left:2px solid #8cafd2;padding-left:20px;padding-right:14px;backdrop-filter:blur(5px)}
.id-quote{background:rgba(255,255,255,.8);padding:15px 13px;margin-top:22px}
.server-intro{background:rgba(255,255,255,.74);padding:9px 12px;border-left:2px solid #94b4d2}
.channel,.style-register,.external-action,.notice-paper{background:rgba(251,253,255,.91);backdrop-filter:blur(5px)}
.channel.selected{background:rgba(229,241,252,.94)}
.style-reminder{background:rgba(255,255,255,.8);padding:14px;border-left:1px solid #7aa2c9}
.style-register{padding:16px 12px 18px}
.notice-text{background:rgba(255,255,255,.84);padding:14px 13px}
.notice-document img{opacity:.93}
.large-action{background:rgba(241,248,254,.91);backdrop-filter:blur(4px)}
.links-list{position:relative;z-index:1}
.links-caption{background:rgba(255,255,255,.8);display:inline-block;padding:7px 10px}
.end-note{background:rgba(255,255,255,.78);padding:17px 9px 4px}
.end-copy{background:linear-gradient(90deg,rgba(251,253,255,.97),rgba(251,253,255,.34));padding:13px 10px}
/* Optional cropped image windows, each taken from a supplied background. */
.id-visual{height:205px;width:77%;margin-left:auto;margin-top:9px;margin-bottom:8px;clip-path:polygon(0 0,100% 0,100% 94%,9% 100%);box-shadow:0 5px 22px #38689b18}
.id-visual img{object-position:55% 50%}
.id-visual:after{border-color:#87a9c9}
.dual-graphic{height:139px;justify-content:flex-start;padding-left:13px}
.dual-left{background:rgba(206,228,247,.48)}
.dual-right{background-image:url('assets/server_fragment.webp')}
.server-extra{height:160px;max-width:78%;margin-left:auto}
.style-visual{height:158px;width:78%;margin-left:auto}
.style-visual img{object-position:center bottom}
.notice-document{height:218px;margin-top:8px;margin-bottom:20px}
.notice-document img{height:94%;width:57%}
.notice-paper{height:175px;top:21px}
.links-design{height:182px;margin-bottom:19px}
.links-shard{background-image:url('assets/links_fragment.webp')}
.end-image{height:235px}
.end-image img{object-position:center 58%}
/* Wide spacing stays intentional, while headings remain immediately visible. */
.section-metadata{font-size:10px;color:#416789}
.compact-mono,.eyebrow{color:#3b678f}
.boot-header,.entry-top{color:#315f89}
/* Boot / 4-step fragment assembly (3.9 seconds). */
.boot-compose{top:12%;height:39%;left:4%;right:4%;overflow:visible;isolation:isolate}
.boot-fragments{position:absolute;inset:0;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 96%,0 96%)}
.boot-fragments .frag{position:absolute;top:3%;height:91%;width:20%;background-image:url('assets/bg_07.webp');background-size:500% 100%;background-repeat:no-repeat;opacity:0;filter:saturate(1.18) contrast(1.02);transform:translateY(45px) skewX(-7deg)}
.boot-fragments .frag-1{left:0;background-position:0% center}
.boot-fragments .frag-2{left:20%;background-position:25% center}
.boot-fragments .frag-3{left:40%;background-position:50% center}
.boot-fragments .frag-4{left:60%;background-position:75% center}
.boot-fragments .frag-5{left:80%;background-position:100% center}
.boot.play .frag{animation:fragJoin 820ms cubic-bezier(.12,.78,.15,1) both}
.boot.play .frag-1{animation-delay:.14s}.boot.play .frag-2{animation-delay:.34s}.boot.play .frag-3{animation-delay:.58s}.boot.play .frag-4{animation-delay:.78s}.boot.play .frag-5{animation-delay:.98s}
.boot-compose .panel{display:none}
.boot-scan{position:absolute;z-index:2;left:3%;top:10%;height:90%;width:1px;background:linear-gradient(transparent,#3f78b2,transparent);box-shadow:0 0 17px #3a80c04d;opacity:0}
.boot.play .boot-scan{animation:scanAssemble 1450ms 1.25s ease-in-out both}
.boot-square{position:absolute;z-index:2;width:13px;height:13px;border:1px solid #5081ae;opacity:0}
.sq-a{top:0;left:9%;border-right:0;border-bottom:0}.sq-b{bottom:8%;right:10%;border-left:0;border-top:0}
.boot.play .boot-square{animation:locatorArrive .4s 2.25s ease-out forwards}
.calibration-cross{z-index:3}
.boot-content{top:50%;background:linear-gradient(90deg,rgba(252,254,255,.95),rgba(255,255,255,.16));padding:9px 0}
.boot-content h1{font-size:29px}
.boot-meter{bottom:17%;background:rgba(250,253,255,.79);padding:12px 6px 10px;left:29px;right:29px}
.meter-track{height:3px;background:rgba(150,186,219,.35)}
.meter-track div{background:linear-gradient(90deg,#bad2e8,#407aaf);box-shadow:0 0 8px #417baa44}
.boot-legend{opacity:.83}
/* Entry must feel calm compared to boot; asymmetric light shard and hold are focal points. */
.entry-composition{top:11%;left:11%;width:78%;height:31%}
.entry-image{inset:6% 1% 2% 13%;background-image:url('assets/entry_fragment.webp');clip-path:polygon(0 3%,100% 0,74% 97%,8% 91%);opacity:.93}
.entry-glass-outline{border-color:#759dc4}
.entry-copy{top:44%;left:33px;right:25px;background:linear-gradient(90deg,rgba(255,255,255,.9),rgba(255,255,255,.25));padding:13px 7px}
.entry-copy h1{font-size:clamp(28px,8vw,37px);color:#1c3753}
.entry-controls{bottom:12%;left:32px;right:32px}
.hold-button{background:rgba(251,253,255,.94);border-color:#94b5d4;box-shadow:0 8px 27px rgba(61,105,145,.08)}
.hold-button:before{content:"";position:absolute;width:6px;height:6px;border:1px solid #4778aa;top:5px;right:6px}
.entry-last{background:rgba(255,255,255,.52);padding:5px}
/* Page transitions borrow a diagonal from the background's construction lines. */
.scene-transition .trans-one{background:linear-gradient(145deg,#e4f0fb 5%,#b0d0ed 40%,#f8fcff 100%)}
.scene-transition .trans-two{background:#fafdff url('assets/bg_01.webp') center center/cover;clip-path:polygon(8% 0,100% 0,92% 100%,0 100%)}
@keyframes fragJoin{0%{opacity:0;transform:translateY(51px) skewX(-7deg)}70%{opacity:1}100%{opacity:1;transform:none}}
@keyframes scanAssemble{0%{opacity:0;transform:translateX(0)}15%,80%{opacity:.9}100%{opacity:0;transform:translateX(290px)}}
@keyframes locatorArrive{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:359px){.boot-content{top:46%}.entry-controls{bottom:9%}.entry-copy{top:42%}.id-visual{height:190px}}
@media(max-height:740px){.boot-compose{top:10%;height:33%}.boot-content{top:46%}.entry-composition{top:8%;height:27%}.entry-copy{top:40%}.entry-controls{bottom:8%}}
@media(prefers-reduced-motion:reduce){.boot-fragments .frag{opacity:1;transform:none!important}.boot-scan{display:none}.boot-square{opacity:1}}
/* V8: independent entrances, calm autonomous movement, responsive text geometry */
:root{--small-label:#426787;--hair:#c6d9e9}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #326fa6;outline-offset:3px}
button, a{transition:background-color .32s ease,border-color .32s ease,color .32s ease,box-shadow .32s ease}
.site{--pointer-x:50%;--pointer-y:50%;background:#f9fcff}
.ambient-lights{position:absolute;inset:0;z-index:4;overflow:hidden;pointer-events:none;opacity:.55}
.ambient-glow{position:absolute;inset:-20%;background:radial-gradient(200px 200px at var(--pointer-x) var(--pointer-y),rgba(127,183,235,.09),transparent 85%);transition:background-position .28s}
.ambient-line{position:absolute;left:-45%;top:0;height:100%;width:20%;transform:skew(-15deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:v8AmbientPass 18s linear infinite}
.ambient-dot{position:absolute;right:18px;bottom:101px;width:3px;height:3px;background:#85b5df;box-shadow:0 0 0 3px #c7e0f450;animation:v8Beacon 4.8s ease-in-out infinite}
.compact-mono,.eyebrow{letter-spacing:.095em;line-height:1.55}
.section-metadata{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;font-size:10px;line-height:1.35;letter-spacing:.03em;white-space:normal}
.section-metadata>span{min-width:0;max-width:54%;overflow-wrap:anywhere}
.section-metadata>span:last-child{text-align:right}
.chapter{padding:25px clamp(20px,7vw,31px) 76px;min-width:0;overflow-wrap:break-word}
.chapter-header{display:grid;grid-template-columns:minmax(67px,27%) minmax(0,1fr);gap:clamp(10px,4vw,17px);align-items:end;min-height:112px;margin-bottom:20px}
.chapter-numeral{font-size:clamp(69px,21vw,92px);line-height:.86;white-space:nowrap;letter-spacing:-.09em;min-width:0}
.chapter-header>div:last-child{min-width:0}
.chapter-header h2{font-size:clamp(22px,6.7vw,28px);white-space:normal;overflow-wrap:normal;line-height:1.25;margin:7px 0 2px;letter-spacing:.02em}
.chapter-header .eyebrow{font-size:9px;line-height:1.45;letter-spacing:.035em;overflow-wrap:anywhere}
.id-heading{height:auto;min-height:129px;display:grid;grid-template-columns:clamp(85px,28%,110px) minmax(0,1fr);gap:12px;align-items:end;padding-bottom:21px}
.id-overprint{position:relative;left:0;top:0;font-size:clamp(88px,26vw,116px);line-height:.89;letter-spacing:-.11em;white-space:nowrap;z-index:0;animation:v8NumeralDrift 11s ease-in-out infinite alternate}
.id-title-group{position:relative;top:auto;left:auto;z-index:2;min-width:0;align-self:end;padding-bottom:7px}
.id-title-group h2{font-size:clamp(23px,6.5vw,28px);line-height:1.24;letter-spacing:.015em;white-space:nowrap;margin:9px 0 0}
.id-title-group .eyebrow{font-size:9px;line-height:1.4;letter-spacing:.02em;overflow-wrap:anywhere}
.id-visual{margin-top:4px;margin-bottom:15px}
.reader-header{gap:12px}.brand{min-width:0;flex:1;max-width:calc(100% - 85px)}
.brand-type{min-width:0}.brand-type b{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.brand-type small{letter-spacing:.09em;white-space:nowrap}
.reader-footer{gap:12px;padding-left:clamp(14px,5vw,22px);padding-right:clamp(14px,5vw,22px)}
.footer-middle{min-width:0;flex:1;max-width:none;padding:0 7px}
.footer-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;min-width:0;margin-bottom:7px}
.footer-progress button{height:12px;min-width:0;padding:0;border:0;background:transparent;position:relative;border-radius:1px}
.footer-progress button:before{content:"";position:absolute;left:0;right:0;top:5px;height:2px;background:#d5e2ee;transition:background .3s,transform .3s}
.footer-progress button.active:before{background:#447bad;animation:v8ProgressBreathe 4.2s ease-in-out infinite}
.footer-progress button:hover:before,.footer-progress button:focus-visible:before{background:#6999c4;transform:scaleY(1.6)}
.footer-count{gap:5px;min-width:0;white-space:nowrap;line-height:1.2;align-items:center}
.footer-count em{overflow:hidden;text-overflow:ellipsis;min-width:0;margin-left:auto;letter-spacing:0;font-size:10px}
.chapter-nav{flex:0 0 auto}
/* Eliminate percentage-position collision in shorter viewports: boot & entry are flow layouts */
.boot{display:flex;flex-direction:column;align-items:stretch;overflow-y:auto;overscroll-behavior:contain;padding:calc(26px + env(safe-area-inset-top,0px)) 30px calc(26px + env(safe-area-inset-bottom,0px));gap:0}
.boot-header{position:relative;inset:auto;left:auto;right:auto;top:auto;flex:0 0 auto;gap:14px;font-size:10px}
.boot-compose{position:relative;top:auto;left:auto;right:auto;width:100%;height:clamp(140px,31dvh,278px);min-height:125px;flex:0 0 auto;margin:clamp(18px,3.5dvh,34px) auto 0}
.boot-content{position:relative;top:auto;left:auto;right:auto;flex:0 0 auto;margin:clamp(8px,2dvh,20px) 0 0;padding:10px 0 0;background:linear-gradient(90deg,rgba(255,255,255,.92),transparent)}
.boot-number{top:-12px;right:0;font-size:clamp(56px,15vw,82px);opacity:.18;pointer-events:none}
.boot-content h1{font-size:clamp(25px,7vw,30px);margin:16px 0 7px;max-width:95%}
.boot-content p{margin:0;min-height:20px}
.boot-meter{position:relative;left:auto;right:auto;bottom:auto;flex:0 0 auto;margin-top:auto;padding:clamp(18px,3dvh,32px) 2px 10px;background:rgba(250,253,255,.58)}
.boot-skip{position:relative;right:auto;bottom:auto;flex:0 0 auto;align-self:flex-end;margin-top:clamp(10px,2dvh,23px);padding:6px 0}
.entry{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:calc(24px + env(safe-area-inset-top,0px)) 30px calc(24px + env(safe-area-inset-bottom,0px))}
.entry-top{position:relative;top:auto;left:auto;right:auto;flex:0 0 auto;font-size:9px;gap:12px}
.entry-composition{position:relative;inset:auto;left:auto;top:auto;width:100%;height:clamp(125px,29dvh,230px);min-height:125px;flex:0 0 auto;margin:clamp(14px,3dvh,29px) auto 5px}
.entry-number{top:auto;right:28px;bottom:47%;opacity:.11;z-index:0;pointer-events:none;font-size:72px}
.entry-copy{position:relative;left:auto;right:auto;top:auto;flex:0 0 auto;min-width:0;margin:clamp(0px,1.7dvh,14px) 0 0;padding:11px 0 6px;z-index:1}
.entry-copy h1{font-size:clamp(28px,7vw,35px);margin:9px 0 10px;line-height:1.34}
.entry-controls{position:relative;left:auto;right:auto;bottom:auto;flex:0 0 auto;margin-top:auto;padding-top:clamp(14px,2.3dvh,23px)}
.entry-last{position:relative;bottom:auto;left:auto;right:auto;margin-top:clamp(15px,2dvh,26px);flex:0 0 auto;gap:5px;font-size:9px;white-space:normal}
.entry-last>span{text-align:right}
.hold-button{min-height:62px;max-height:68px}
.hold-button:hover,.hold-button:focus-visible{background:#f0f7fd;box-shadow:0 6px 25px rgba(42,96,151,.13)}
.hold-button.is-holding{border-color:#397ab0;box-shadow:0 0 0 3px #bdddf288}
.hold-button.is-holding .hold-marker{animation:v8HoldPulse .55s ease infinite alternate}
.hold-button.is-holding .hold-arrow{transform:translateX(4px)}
.hold-arrow{transition:transform .4s ease}
/* Clipped proof lines on chip/tag interactions. */
.info-chip{position:relative;isolation:isolate;border:1px solid #d5e3ef;background:rgba(250,253,255,.9);font-family:inherit;font-weight:500;font-size:12px;line-height:1.2;color:#365f85;padding:8px 11px;min-width:0;min-height:34px;overflow:hidden;border-radius:0}
.info-chip::before{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:#6a9fc9;transform:scaleX(0);transform-origin:left;transition:transform .32s}
.info-chip:hover,.info-chip:focus-visible,.info-chip[aria-pressed="true"]{background:#e7f3fd;border-color:#8eb9dd;color:#245784}
.info-chip[aria-pressed="true"]::before{transform:scaleX(1)}
.id-tags,.style-tags{display:flex;flex-wrap:wrap;gap:8px}
.id-tags .info-chip,.style-tags .info-chip{font-size:12px;min-width:43px}
.identity-name-line{display:flex;justify-content:space-between;align-items:end;gap:12px}
.identity-name-line h3{min-width:0;margin-right:auto}
.copy-id{flex:0 0 auto;border:0;background:transparent;color:#4a7eab;font-size:10px;padding:8px 1px;letter-spacing:.04em}
.copy-id:hover{color:#1e527f;transform:translateY(-2px)}
.id-name{padding-top:22px}
/* Individual entrance signatures, assigned by JS. Images, lines, digits, chips, headings, actions. */
.chapter.is-entering .reveal[data-enter="split"]{animation:v8SplitIn .72s var(--ease) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="pixel"]{animation:v8PixelIn .76s cubic-bezier(.2,.85,.25,1) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="stamp"]{animation:v8StampIn .58s cubic-bezier(.13,1,.4,1) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="line"]{animation:v8LineIn .72s ease-out both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="slide"]{animation:v8SlideIn .67s var(--ease) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="focus"]{animation:v8FocusIn .79s ease both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="clip"]{animation:v8ClipIn .9s cubic-bezier(.11,.7,.23,1) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .reveal[data-enter="rise"]{animation:v8RiseIn .66s var(--ease) both!important;animation-delay:var(--delay,0ms)!important}
.chapter.is-entering .info-chip{animation:v8StampIn .48s ease both!important;animation-delay:var(--chip-delay,250ms)!important}
.chapter.is-entering .section-metadata span{animation:v8LineIn .6s ease both;animation-delay:var(--chip-delay,0ms)}
.chapter.is-entering .chapter-header .eyebrow,.chapter.is-entering .id-title-group .eyebrow{animation:v8SplitIn .52s ease both;animation-delay:.18s}
.chapter.is-entering .chapter-header h2,.chapter.is-entering .id-title-group h2{animation:v8FocusIn .7s ease both;animation-delay:.26s}
.chapter.is-entering .external-action{animation:v8SlideIn .62s ease both!important;animation-delay:var(--delay,150ms)!important}
/* autonomous movement per element family, subtle and readable */
.reader-header .brand-symbol{animation:v8BrandTrace 12s ease-in-out infinite}
.reader-header .online-dot{animation:v8Beacon 3.9s ease-in-out infinite}
.chapter.is-active .visual-slash{animation:v8GlassSweep 11s ease-in-out infinite}
.chapter.is-active .id-visual img,.chapter.is-active .style-visual img,.chapter.is-active .end-image img{animation:v8PhotoDrift 14s ease-in-out infinite alternate;transform-origin:center}
.chapter.is-active .dual-mid{animation:v8PlusSpin 18s linear infinite}
.chapter.is-active .dual-left{animation:v8DualShift 10s ease-in-out infinite alternate}
.chapter.is-active .style-grid{animation:v8GridDrift 20s linear infinite}
.chapter.is-active .notice-paper .doc-stamp{animation:v8DocumentMarker 7.5s ease-in-out infinite}
.chapter.is-active .document-slats i{animation:v8SlatBreathe 6s ease-in-out infinite alternate}
.chapter.is-active .document-slats i:nth-child(2){animation-delay:1.1s}.chapter.is-active .document-slats i:nth-child(3){animation-delay:2.1s}
.chapter.is-active .links-shard{animation:v8PhotoDrift 16s ease-in-out infinite alternate}
.chapter.is-active .end-locator{animation:v8PlusSpin 28s linear infinite}
.chapter.is-active .end-outline{animation:v8NumeralDrift 13s ease-in-out infinite alternate}
.chapter.is-active .action-symbol{animation:v8ActionBreathe 6.5s ease-in-out infinite}
.chapter.is-active .large-action i,.chapter.is-active .external-action i{animation:v8Arrow 3.8s ease-in-out infinite}
.chapter.is-active .switch-reader b{animation:v8ActionBreathe 9s ease-in-out infinite}
.chapter.is-active .section-metadata .micro-square{animation:v8Beacon 4s ease-in-out infinite}
.chapter.is-active .style-reminder{border-left:2px solid #7aa2c9;animation:v8SoftBorder 9s ease-in-out infinite}
.chapter.is-active .id-quote{border-left:2px solid transparent;animation:v8SoftBorder 13s ease-in-out infinite}
.chapter.is-active .id-name h3{animation:v8TextGlow 12s ease-in-out infinite}
.chapter.is-active .style-tags .info-chip[aria-pressed="true"]{box-shadow:inset 0 0 10px #bdd9ee70}
.chapter.is-active .style-tags .info-chip:hover{transform:translateY(-3px)}
.chapter.is-active .channel:hover,.chapter.is-active .external-action:hover,.chapter.is-active .large-action:hover{transform:translateY(-3px);box-shadow:0 9px 25px #7b9cb028}
.channel,.external-action,.large-action{transition:transform .35s var(--ease),background-color .35s,border-color .35s,box-shadow .35s}
.chapter.is-active .viewer-trigger{cursor:zoom-in;transition:box-shadow .45s ease,filter .45s ease}
.viewer-trigger::after{content:"↗";position:absolute;right:13px;top:13px;font:13px/1 'Courier New',monospace;color:#244f78;background:rgba(255,255,255,.75);border:1px solid #caddec;width:25px;height:25px;display:grid;place-items:center;opacity:.75;z-index:4;transform:translateY(2px);transition:opacity .3s,transform .3s;pointer-events:none}
.viewer-trigger:hover::after,.viewer-trigger:focus-visible::after{opacity:1;transform:translateY(0) rotate(45deg)}
.viewer-trigger:hover{filter:contrast(1.035)}
/* Chapter menu behaves like assembled index cards */
.index-menu:not([hidden]){animation:v8MenuIn .38s var(--ease) both}
.index-menu:not([hidden]) button[data-goto]{animation:v8SlideIn .42s var(--ease) both;animation-delay:calc(var(--menu-index,0) * 65ms)}
.index-menu button[data-goto]:hover{background:linear-gradient(90deg,#e5f2fd80,transparent);padding-left:9px}
.index-menu .motion-setting{font-size:12px;color:#3e698d;height:48px;margin-top:18px;border:1px solid #d7e3ed;padding:0 12px;display:flex;gap:18px;align-items:center}
.index-menu .motion-setting i{margin-left:auto}
.index-menu .motion-setting[aria-pressed="true"]{background:#e9f3fc}
/* Canvas viewer: meaningful interaction, no navigation change */
.image-viewer{position:absolute;inset:0;z-index:85;background:rgba(239,246,252,.985);display:flex;flex-direction:column;gap:12px;padding:calc(32px + env(safe-area-inset-top,0px)) 22px calc(25px + env(safe-area-inset-bottom,0px));animation:v8ViewerIn .36s ease both}
.viewer-top,.viewer-controls{display:flex;align-items:center;justify-content:space-between;gap:15px}
.viewer-top button{font-size:26px;line-height:1;min-width:44px;min-height:44px;background:#ffffffb8;border:1px solid #d1e1ef;color:#315d87}
.viewer-picture{position:relative;flex:1;min-height:100px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #d6e5f2;background:linear-gradient(120deg,#f8fcff,#e4f1fd,#fff)}
.viewer-picture::after{content:"";position:absolute;inset:9px;pointer-events:none;border:1px solid #ffffff91}
.viewer-picture img{width:100%;height:100%;object-fit:contain;animation:v8ViewerImage .6s ease both}
.viewer-controls button{font-size:21px;min-width:56px;min-height:45px;border:1px solid #bbd5e9;background:#ffffffc9;color:#315f8a}
.viewer-caption{font-size:11px;color:#587898;text-align:center;margin:0}
/* Interactive pointer ripple: tiny graphic click feedback */
.v8-ripple{position:absolute;left:0;top:0;z-index:9;border-radius:50%;width:12px;height:12px;border:1px solid #4d91c7;pointer-events:none;animation:v8Ripple .65s ease-out forwards}
/* Animated shape cut over transitions; mounted outside scroll */
.scene-transition .trans-one::after{content:"";position:absolute;left:13%;top:-25%;width:1px;height:150%;background:#739dbe90;transform:rotate(16deg)}
.scene-transition .trans-two::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,#ffffff75 49%,transparent 56%);animation:v8GlassSweep 5s ease-in-out infinite}
.scroll-cue{animation:v8Cue 2.6s ease-in-out infinite}
@keyframes v8AmbientPass{0%{transform:translateX(-220%) skewX(-15deg)}100%{transform:translateX(850%) skewX(-15deg)}}
@keyframes v8Beacon{0%,100%{opacity:.3;box-shadow:0 0 0 2px #d6eaf500}48%{opacity:1;box-shadow:0 0 0 5px #a6d3ee55}}
@keyframes v8ProgressBreathe{0%,100%{opacity:.55;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.5)}}
@keyframes v8NumeralDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-4px,0)}}
@keyframes v8BrandTrace{0%,100%{box-shadow:inset 0 0 0 #b5d3ec00}48%{box-shadow:inset -3px -3px 0 #b5d3ec55}}
@keyframes v8GlassSweep{0%,22%,100%{opacity:.25;transform:translateX(-110%)}48%{opacity:1;transform:translateX(110%)}}
@keyframes v8PhotoDrift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.04) translate3d(-1.2%,.9%,0)}}
@keyframes v8PlusSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes v8DualShift{from{filter:brightness(1)}to{filter:brightness(1.08)}}
@keyframes v8GridDrift{from{background-position:0 0}to{background-position:18px 18px}}
@keyframes v8DocumentMarker{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(6deg)}}
@keyframes v8SlatBreathe{from{opacity:.6}to{opacity:1}}
@keyframes v8ActionBreathe{0%,100%{opacity:.72}50%{opacity:1}}
@keyframes v8Arrow{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@keyframes v8SoftBorder{0%,100%{border-left-color:#9ebfd9}50%{border-left-color:#4983b8}}
@keyframes v8TextGlow{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 15px #9ac9ea4f}}
@keyframes v8HoldPulse{from{transform:scale(.92)}to{transform:scale(1.14)}}
@keyframes v8SplitIn{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(14px)}100%{opacity:1;clip-path:inset(0);transform:none}}
@keyframes v8PixelIn{0%{opacity:0;filter:blur(9px);transform:translateY(13px) scale(.97)}50%{opacity:.75;filter:blur(3px)}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes v8StampIn{0%{opacity:0;transform:translateY(9px) scale(1.065)}65%{opacity:1;transform:translateY(-2px) scale(.985)}100%{opacity:1;transform:none}}
@keyframes v8LineIn{0%{opacity:0;transform:scaleX(.56);transform-origin:left}100%{opacity:1;transform:scaleX(1)}}
@keyframes v8SlideIn{0%{opacity:0;transform:translateX(28px)}100%{opacity:1;transform:translateX(0)}}
@keyframes v8FocusIn{0%{opacity:0;filter:blur(8px);transform:translateY(5px)}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes v8ClipIn{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%,0 100%);filter:brightness(1.5)}100%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);filter:brightness(1)}}
@keyframes v8RiseIn{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes v8MenuIn{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes v8ViewerIn{from{opacity:0}to{opacity:1}}
@keyframes v8ViewerImage{from{opacity:0;transform:scale(1.03);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes v8Ripple{from{opacity:.75;transform:scale(.2)}to{opacity:0;transform:scale(5)}}
@keyframes v8Cue{0%,100%{opacity:.8}50%{opacity:1}}
@media(max-width:359px){.chapter-header{grid-template-columns:69px minmax(0,1fr);gap:10px}.chapter-numeral{font-size:72px}.chapter-header h2{font-size:23px}.id-heading{grid-template-columns:78px minmax(0,1fr);gap:10px;min-height:114px}.id-overprint{font-size:84px}.id-title-group h2{font-size:23px}.id-title-group .eyebrow{font-size:8.5px}.reader-header{padding-left:16px;padding-right:16px}.reader-footer{gap:8px}.footer-middle{padding:0 2px}.entry,.boot{padding-left:23px;padding-right:23px}.brand-type small{font-size:8px}.entry-copy h1{font-size:28px}}
@media(max-height:650px){.entry-composition{height:112px;min-height:112px;margin-top:12px}.entry-copy{margin-top:0}.entry-copy h1{font-size:27px;margin:6px 0}.entry-controls{padding-top:12px}.entry-last{margin-top:10px}.boot-compose{height:125px;min-height:125px;margin-top:14px}.boot-content{margin-top:9px}.boot-content h1{margin-top:10px}.boot-meter{padding-top:12px}.entry-direct{margin:6px auto 0}}
@media(prefers-reduced-motion:reduce){.ambient-lights{display:none!important}.image-viewer,.viewer-picture img,.index-menu:not([hidden]){animation:none!important}.chapter.is-entering .reveal,.chapter.is-entering .info-chip,.chapter.is-entering .section-metadata span,.chapter.is-entering .chapter-header h2{animation:none!important;opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important}}
html.motion-off .ambient-lights,html.motion-off .scene-transition .trans-two::after{display:none!important}
html.motion-off .chapter.is-active :is(img,.visual-slash,.dual-mid,.dual-left,.style-grid,.doc-stamp,.document-slats i,.links-shard,.end-locator,.end-outline,.action-symbol,.large-action i,.external-action i,.switch-reader b,.style-reminder,.id-quote,.id-name h3,.micro-square),html.motion-off .reader-header .online-dot,html.motion-off .reader-header .brand-symbol,html.motion-off .footer-progress button.active:before{animation:none!important}
/* Stage entrance motifs independent of chapter transitions */
.boot.play .boot-header{animation:v8LineIn .65s ease both}
.boot.play .boot-name{animation:v8SlideIn .7s .7s ease both}
.boot.play .boot-number{animation:v8StampIn .9s 1.3s ease both}
.boot.play .boot-content h1{animation:v8FocusIn .8s 1.6s ease both}
.boot.play .boot-content p{animation:v8PixelIn .5s 1.9s ease both}
.boot.play .boot-meter{animation:v8SlideIn .65s .8s ease both}
.entry:not([hidden]) .entry-top{animation:v8LineIn .62s both}
.entry:not([hidden]) .entry-composition{animation:v8ClipIn .82s .09s both}
.entry:not([hidden]) .entry-copy .eyebrow{animation:v8SplitIn .6s .16s both}
.entry:not([hidden]) .entry-copy h1{animation:v8FocusIn .7s .31s both}
.entry:not([hidden]) .entry-quote{animation:v8LineIn .67s .55s both}
.entry:not([hidden]) .entry-controls{animation:v8SlideIn .66s .61s both}
.entry:not([hidden]) .entry-last{animation:v8LineIn .55s .7s both}
.entry:not([hidden]) .hold-button:not(.is-holding){animation:v8BreatheOutline 6.2s ease-in-out 2s infinite}
@keyframes v8BreatheOutline{0%,100%{border-color:#9bbbd8}50%{border-color:#4d88ba}}


/* V8.1 / Directional optical chapter transition.
   A single anchored reveal edge moves left -> right, pauses with the entire
   image visible, then travels right -> left to uncover the next chapter.
   The overlay belongs to .reader (not the scrollable .reading-area). */
.scene-transition {
  z-index:40;
  isolation:isolate;
  background:transparent;
  visibility:hidden;
  pointer-events:none;
}
.scene-transition:is(.is-expanding,.is-holding,.is-retracting) { visibility:visible; }
.scene-transition .trans-one,
.scene-transition .trans-two {
  position:absolute;
  inset:0;
  transform:none;
  clip-path:inset(0 100% 0 0);
  will-change:clip-path;
}
.scene-transition .trans-one {
  z-index:0;
  background:linear-gradient(120deg,#d6e9f7,#8cb7dc 52%,#f6fbff);
}
.scene-transition .trans-two {
  z-index:1;
  background:linear-gradient(100deg,rgba(241,248,255,.06),rgba(186,220,249,.16)),url('assets/bg_01.webp') center center/cover no-repeat;
  clip-path:inset(0 100% 0 0);
}
.scene-transition .trans-two::before {
  content:"";
  position:absolute;
  inset:0;
  border-top:1px solid rgba(69,121,173,.5);
  border-bottom:1px solid rgba(69,121,173,.5);
  background:linear-gradient(100deg,rgba(77,137,190,.14),transparent 42%,rgba(255,255,255,.12));
}
.scene-transition .trans-two::after { animation:none!important; }
.scene-transition .trans-one::after { opacity:.35; }
.scene-transition.is-expanding .trans-one {
  animation:archiveExpand 700ms cubic-bezier(.45,0,.55,1) both;
}
.scene-transition.is-expanding .trans-two {
  animation:archiveExpand 700ms cubic-bezier(.45,0,.55,1) both;
}
.scene-transition.is-holding .trans-one,
.scene-transition.is-holding .trans-two { animation:none;clip-path:inset(0 0 0 0); }
.scene-transition.is-retracting .trans-one,
.scene-transition.is-retracting .trans-two {
  animation:archiveRetract 700ms cubic-bezier(.45,0,.55,1) both;
}
@keyframes archiveExpand {
  0% {clip-path:inset(0 100% 0 0)}
  100% {clip-path:inset(0 0 0 0)}
}
@keyframes archiveRetract {
  0% {clip-path:inset(0 0 0 0)}
  100% {clip-path:inset(0 100% 0 0)}
}
/* Edge follows the moving right boundary of the revealed image. */
.scene-transition .trans-edge {
  position:absolute;
  z-index:4;
  inset:0 auto 0 0;
  width:2px;
  background:linear-gradient(180deg,transparent,#4c80b4 18%,#ffffff 49%,#4c80b4 82%,transparent);
  box-shadow:0 0 14px 2px rgba(93,152,207,.31);
  opacity:0;
  pointer-events:none;
}
.scene-transition.is-expanding .trans-edge {
  animation:archiveEdgeRight 700ms cubic-bezier(.45,0,.55,1) both;
}
.scene-transition.is-retracting .trans-edge {
  animation:archiveEdgeLeft 700ms cubic-bezier(.45,0,.55,1) both;
}
@keyframes archiveEdgeRight {
  0% {left:0%;opacity:0}
  10% {opacity:.95}
  95% {opacity:.95}
  100% {left:100%;opacity:0}
}
@keyframes archiveEdgeLeft {
  0% {left:100%;opacity:0}
  10% {opacity:.95}
  90% {opacity:.95}
  100% {left:0%;opacity:0}
}
.scene-transition .trans-caption {
  position:absolute;
  z-index:5;
  bottom:28px;
  left:27px;
  right:27px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
  padding:10px 0;
  color:#2a527a;
  border-top:1px solid rgba(88,139,181,.56);
  pointer-events:none;
  opacity:0;
  font-size:11px;
  background:linear-gradient(90deg,rgba(250,253,255,.7),transparent);
}
.scene-transition .trans-caption b{font-weight:600;font-size:13px;letter-spacing:.15em;white-space:nowrap}
.scene-transition .trans-caption small{font:9px/1.2 'Courier New',monospace;letter-spacing:.08em;text-align:right}
.scene-transition.is-expanding .trans-caption {animation:archiveCaptionIn 700ms ease both;}
.scene-transition.is-holding .trans-caption {opacity:1;}
.scene-transition.is-retracting .trans-caption {animation:archiveCaptionOut 430ms ease both;}
@keyframes archiveCaptionIn {0%,55%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@keyframes archiveCaptionOut {from{opacity:1}to{opacity:0}}
.scene-transition .trans-cross{z-index:4;left:calc(50% - 14px);top:calc(43% - 14px);}
.scene-transition.is-expanding .trans-cross{animation:archiveCrossIn 700ms ease both}
.scene-transition.is-holding .trans-cross{opacity:.64}
.scene-transition.is-retracting .trans-cross{animation:archiveCrossOut 420ms ease both}
@keyframes archiveCrossIn {0%,55%{opacity:0;transform:rotate(-40deg) scale(.7)}100%{opacity:.64;transform:none}}
@keyframes archiveCrossOut {from{opacity:.64}to{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .scene-transition{display:none!important}
}


/* =======================================================================
   V8.2 / ASSEMBLY INTERACTION + AUDIO FINISH
   Fixed photographic background; translucent copy panel over 3-D fragments.
   ======================================================================= */
.entry {--merge:0; background:#f9fcff url('assets/bg_01.webp') center top / 100% auto no-repeat;}
.entry-composition {height:clamp(204px,36dvh,292px);min-height:204px;width:100%;max-width:360px;margin:clamp(18px,3.3dvh,30px) auto 0;position:relative;isolation:isolate;overflow:visible;z-index:1;flex-shrink:0;animation:none!important;}
.assembly-viewport {position:absolute;inset:-8% -5% 0;perspective:850px;pointer-events:none;overflow:visible;}
.assembly-plane {position:absolute;left:50%;top:48%;width:min(64vw,228px);aspect-ratio:1;transform-style:preserve-3d;transform:translate(-50%,-50%) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));will-change:transform;transition:filter .25s ease;filter:drop-shadow(0 14px 18px rgba(50,100,145,.13));}
.assembly-tile {position:absolute;width:33.33334%;height:33.33334%;transform-style:preserve-3d;will-change:transform;transition:transform .38s cubic-bezier(.18,.75,.28,1);}
.assembly-surface {position:absolute;inset:0;background-image:url('assets/entry_fragment.webp');background-size:300% 300%;background-repeat:no-repeat;border:1px solid rgba(209,230,248,.35);box-shadow:0 0 16px rgba(86,137,187,.12);animation:shardLevitation 5.3s ease-in-out infinite alternate;transform-style:preserve-3d;backface-visibility:hidden;}
.assembly-plane.is-aligned .assembly-surface{animation-play-state:paused;border-color:transparent;box-shadow:none;transform:translate3d(0,0,0)!important;}
.assembly-hairline {position:absolute;left:9%;right:9%;top:44%;height:1px;background:linear-gradient(90deg,transparent,#8faccc,transparent);transform-origin:center;opacity:.62;animation:assemblyRail 7.8s ease-in-out infinite;}
.assembly-hairline.vertical {left:50%;right:auto;top:3%;bottom:9%;height:auto;width:1px;background:linear-gradient(transparent,#9ab9d6,transparent);animation-delay:-3s;}
.assembly-outline{position:absolute;left:9%;top:3%;width:82%;height:89%;border:1px solid rgba(122,166,206,.38);transform:rotate(-7deg);animation:outlinePulse 9.5s ease-in-out infinite;}
.assembly-outline:before,.assembly-outline:after{content:'';position:absolute;width:9px;height:9px;border-color:#6e98bf;border-style:solid;opacity:.7;}
.assembly-outline:before{top:-2px;left:-2px;border-width:1px 0 0 1px;}.assembly-outline:after{bottom:-2px;right:-2px;border-width:0 1px 1px 0;}
.assembly-cross{position:absolute;color:#4f85b5;font:200 22px/1 Arial,sans-serif;animation:crossCalibrate 13s steps(1,end) infinite;}
.cross-a{top:9%;left:6%}.cross-b{right:4%;bottom:19%;font-size:15px;animation-delay:-6s}
.assembly-index{position:absolute;right:3%;bottom:4%;text-align:right;font-size:9px;letter-spacing:.08em;background:rgba(250,253,255,.7);padding:4px 6px;}
.assembly-index b{font-weight:600;min-width:3ch;display:inline-block;}
.sensor-button{position:absolute;left:5%;bottom:0;z-index:4;padding:8px 7px;font-size:10px;border:0;border-bottom:1px solid #acc6db;background:rgba(250,253,255,.69);color:#537b9d;letter-spacing:.04em;touch-action:manipulation;}
.sensor-button span{margin-left:4px}.sensor-button.sensor-active{border-bottom-color:#6c9aca;color:#275e8d}
.entry-copy {position:relative;z-index:3;margin:-48px 0 0;padding:21px 22px 19px;min-width:0;background:linear-gradient(118deg,rgba(251,253,255,.83),rgba(250,252,255,.58));border:1px solid rgba(148,181,210,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 28px rgba(61,105,147,.035);animation:none!important;}
.entry-copy:before,.entry-copy:after{content:'';position:absolute;width:15px;height:15px;border-color:#7fa6c8;border-style:solid;opacity:.56;}
.entry-copy:before{left:-1px;top:-1px;border-width:1px 0 0 1px}.entry-copy:after{right:-1px;bottom:-1px;border-width:0 1px 1px 0}
.entry-copy .eyebrow{font-size:10px;letter-spacing:.105em;line-height:1.5;}
.entry-copy h1{position:relative;margin:13px 0 13px;font-size:clamp(24px,6.8vw,34px);line-height:1.4;letter-spacing:.025em;word-break:keep-all;overflow-wrap:normal;}
.entry-quote{padding-top:10px;margin:0;border-top:1px solid rgba(127,168,205,.55);font-size:12px;font-weight:500;letter-spacing:.16em;}
.entry-controls{z-index:4;position:relative;margin-top:auto;padding-top:clamp(20px,3dvh,31px);}
.hold-button {overflow:visible;isolation:isolate;box-shadow:0 8px 21px rgba(61,105,145,.035);min-height:66px;transition:border-color .2s ease,box-shadow .25s ease,background .25s ease;}
.hold-button::before{display:none;}
.hold-track{overflow:hidden;z-index:0;}
.hold-track span{background:linear-gradient(90deg,rgba(206,226,247,.34),rgba(141,187,228,.65));opacity:1;transition:width .32s cubic-bezier(.2,.8,.25,1);}
.hold-button.is-holding .hold-track span{transition:none;}
.hold-marker{font-size:24px;transition:transform .3s ease}.hold-copy{font-size:clamp(13px,3.9vw,16px)}
.hold-line{position:absolute;height:1px;width:28%;background:#7da6cb;top:50%;z-index:0;transform:scaleX(0);opacity:.8;transition:transform .45s cubic-bezier(.2,.8,.2,1);pointer-events:none;}
.hold-line-left{left:0;transform-origin:left;}.hold-line-right{right:0;transform-origin:right;}
.hold-corner{position:absolute;width:11px;height:11px;border-color:#3f7eb5;border-style:solid;opacity:0;transform:scale(.6);transition:opacity .24s,transform .32s;pointer-events:none;z-index:2;}
.hc-tl{left:-2px;top:-2px;border-width:2px 0 0 2px}.hc-tr{right:-2px;top:-2px;border-width:2px 2px 0 0}.hc-bl{left:-2px;bottom:-2px;border-width:0 0 2px 2px}.hc-br{right:-2px;bottom:-2px;border-width:0 2px 2px 0}
.hold-button:is(:hover,:focus-visible,.is-holding) .hold-corner{opacity:1;transform:scale(1)}
.hold-button:is(:hover,:focus-visible,.is-holding) .hold-line-left,.hold-button:is(:hover,:focus-visible,.is-holding) .hold-line-right{transform:scaleX(1)}
.hold-button.is-holding{background:rgba(237,247,255,.95);border-color:#477ea9;box-shadow:0 0 0 4px rgba(114,161,206,.13)}
.hold-button.is-holding .hold-marker{transform:rotate(90deg)}
.hold-feedback{font-size:11px;line-height:1.55;}
.entry-direct{position:relative;margin:12px auto 0;}
.entry-last{margin-top:clamp(18px,3dvh,29px);}
.entry.is-assembled .entry-copy{border-color:#6e9ac0;background:rgba(251,253,255,.76)}
.entry.is-assembled .assembly-outline{animation:none;transform:rotate(0);opacity:.45;}
.entry.is-reassembling .assembly-tile{transition:transform .42s cubic-bezier(.15,.7,.22,1.1)}
@keyframes shardLevitation{0%{transform:translate3d(-1px,3px,0) rotateX(-4deg);opacity:.83}50%{transform:translate3d(3px,-4px,10px) rotateY(5deg);opacity:1}100%{transform:translate3d(-2px,1px,0) rotateX(3deg);opacity:.89}}
@keyframes crossCalibrate{0%,71%,100%{transform:translate(0,0);opacity:.38}72%,76%{transform:translate(8px,-5px);opacity:.94}78%,82%{transform:translate(-4px,2px);opacity:.63}}
@keyframes outlinePulse{0%,100%{transform:rotate(-7deg) scale(.98);opacity:.4}50%{transform:rotate(-6deg) scale(1.035);opacity:.81}}
@keyframes assemblyRail{0%,100%{transform:scaleX(.72);opacity:.32}50%{transform:scaleX(1);opacity:.65}}
/* Whole composition becomes fullscreen before its quick, restrained white flicker. */
.entry-zoom{position:absolute;inset:0;z-index:82;pointer-events:none;overflow:hidden;background:#edf5fd;opacity:1;}
.entry-zoom-picture{position:absolute;inset:-6%;background:url('assets/entry_fragment.webp') center center/cover no-repeat;transform:scale(.34);opacity:.96;box-shadow:0 0 0 1px #c6deef;}
.entry-zoom-grid{position:absolute;inset:0;opacity:.43;background-image:linear-gradient(#c8dbee 1px,transparent 1px),linear-gradient(90deg,#c8dbee 1px,transparent 1px);background-size:45px 45px;mask-image:linear-gradient(90deg,transparent,#000,transparent);}
.entry-zoom.is-zooming .entry-zoom-picture{animation:assemblyFullscreen .95s cubic-bezier(.2,.78,.2,1) forwards;}
.entry-zoom.is-flashing .entry-zoom-flash{position:absolute;inset:0;background:#fff;animation:assemblyFlash .25s steps(1,end) both;}
.entry-zoom.is-fading{animation:assemblyFade .7s ease forwards;}
@keyframes assemblyFullscreen{from{transform:scale(.34);filter:brightness(1.08) blur(1px)}72%{transform:scale(1.03);filter:brightness(1.03) blur(0)}to{transform:scale(1.09);filter:brightness(1) blur(0)}}
@keyframes assemblyFlash{0%,30%,55%,78%{opacity:0}17%,44%,68%{opacity:.62}100%{opacity:0}}
@keyframes assemblyFade{0%{opacity:1}100%{opacity:0}}
/* The next page reveals softly after the assembled image flashes away. */
.reader.stage.is-after-assembly{animation:archiveReaderRise .85s ease both;}
@keyframes archiveReaderRise{from{opacity:.05;filter:blur(10px)}to{opacity:1;filter:blur(0)}}
/* END RECORD / SOUND MODULE */
.music-module{margin:26px 0 25px;position:relative;border:1px solid #b3cce3;background:linear-gradient(135deg,rgba(252,254,255,.97),rgba(229,241,252,.92));padding:18px 18px 13px;box-shadow:0 9px 28px rgba(57,100,143,.08);isolation:isolate;overflow:hidden;}
.music-module:after{content:'';position:absolute;right:-42px;top:-32px;width:95px;height:95px;border:1px solid #a1bfdb;border-radius:50%;opacity:.45;pointer-events:none;}
.music-header{display:flex;justify-content:space-between;align-items:center;color:#47739c;letter-spacing:.15em;font-size:10px;}
.music-led{width:5px;height:5px;border-radius:50%;background:#6498c2;box-shadow:0 0 0 4px rgba(122,166,205,.13)}
.music-main{display:flex;gap:14px;align-items:center;margin:16px 0 13px;position:relative;z-index:1;}
.music-play{height:49px;width:49px;border:1px solid #6d9abb;background:#e9f3fc;color:#2d6396;font-size:19px;font-family:Arial,sans-serif;display:grid;place-items:center;flex:0 0 49px;transition:background .2s,transform .25s,box-shadow .25s;}
.music-play:active{transform:scale(.94)}.music-play:hover,.music-play:focus-visible{background:#dcecfb;box-shadow:0 0 0 4px rgba(115,158,196,.15)}
.music-info{display:flex;flex-direction:column;gap:7px;min-width:0;flex:1;}
.music-info b{font-weight:600;font-size:15px;letter-spacing:.035em;color:#294765;}
.music-info span{font:9px/1.5 'Courier New',monospace;color:#607f9d;letter-spacing:.07em}
.music-disc{width:18px;height:18px;border:1px solid #7da5c7;border-radius:50%;position:relative;flex:0 0 18px;}
.music-disc:after{content:'';position:absolute;inset:6px;background:#5587b5;border-radius:50%;}
.music-disc.is-playing{animation:musicDiscPulse 1.8s ease-in-out infinite}
.music-wave{height:40px;display:flex;align-items:center;gap:2px;width:100%;overflow:hidden;}
.music-wave i{flex:1;min-width:1px;max-width:5px;display:block;background:#b7d1e7;transform-origin:center;opacity:.9;transition:background .18s,opacity .18s;}
.music-wave i.has-played{background:#4e84b4;}
.music-wave.is-playing i{animation:musicWaveBreathe 1.25s ease-in-out infinite alternate;animation-delay:var(--wave-delay)}
.music-seek{-webkit-appearance:none;appearance:none;display:block;width:100%;margin:5px 0 13px;height:18px;cursor:pointer;background:linear-gradient(90deg,#5186b6 var(--played,0%),#d0e1ef var(--played,0%)) center/100% 2px no-repeat;border:0;}
.music-seek::-webkit-slider-thumb{-webkit-appearance:none;width:9px;height:9px;border:1px solid #4e85b7;background:#fff;border-radius:0;}
.music-seek::-moz-range-thumb{width:9px;height:9px;border:1px solid #4e85b7;background:#fff;border-radius:0;}
.music-footer{display:flex;align-items:center;gap:8px;font-size:10px;color:#537b9d;}
.music-footer>span{white-space:nowrap}.music-options{margin-left:auto;display:flex;gap:11px;}
.music-options button{font:10px/1 'Courier New',monospace;letter-spacing:.03em;color:#46749c;border:0;background:transparent;padding:8px 1px;min-width:46px;}
.music-options button:focus-visible{outline:2px solid #477eae;outline-offset:3px}
@keyframes musicDiscPulse{50%{box-shadow:0 0 0 7px rgba(83,133,179,.07)}}
@keyframes musicWaveBreathe{from{transform:scaleY(.85)}to{transform:scaleY(1.07)}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:359px){.entry-composition{height:clamp(170px,30dvh,214px);min-height:170px;margin-top:8px}.entry-copy{margin-top:-35px;padding:15px 16px}.entry-copy h1{font-size:25px}.entry-controls{padding-top:14px}.music-module{padding:14px 12px}.music-info b{font-size:13px}.music-info span{font-size:8px}}
@media(max-height:680px){.entry-composition{height:clamp(162px,30dvh,205px);min-height:162px;margin-top:8px}.entry-copy{margin-top:-30px;padding-top:14px;padding-bottom:13px}.entry-copy h1{font-size:25px;margin:7px 0}.entry-controls{padding-top:12px}.entry-last{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.assembly-plane,.assembly-surface,.assembly-outline,.assembly-cross,.assembly-hairline,.entry-zoom,.reader.stage.is-after-assembly,.music-wave i,.music-disc{animation:none!important;transition:none!important}.assembly-plane{transform:translate(-50%,-50%)!important}}
html.motion-off .music-wave i,html.motion-off .music-disc{animation:none!important}
/* V8.2 short-screen correction: older width media-query must not offset the controls. */
.entry-controls{left:auto;right:auto;width:100%;}
@keyframes v82ControlsEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.entry:not([hidden]) .entry-controls{animation:v82ControlsEnter .65s .55s ease both;}

/* V8.3: The final soundtrack rests directly beneath the return/review button,
   without an opaque card or painted background. */
.chapter-end .ending-actions .music-module {
  margin:18px 0 9px;
  padding:17px 0 11px;
  background:transparent;
  box-shadow:none;
  border:0;
  border-top:1px solid rgba(102,146,186,.40);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  overflow:visible;
  isolation:auto;
}
.chapter-end .ending-actions .music-module::after { display:none; }
.chapter-end .ending-actions .music-play { background:transparent; }
.chapter-end .ending-actions .music-play:is(:hover,:focus-visible) { background:rgba(232,243,252,.40); }
.chapter-end .ending-actions .thin-action { margin-top:4px; }
/* Keep the enlarged optical cut inside the narrow reading viewport. */
.chapter-end { overflow-x:clip; }
