:root{--paper:#f5f2e9;--ink:#283d3b;--muted:#667772;--gold:#b58043;--cold:#718592;--soft:#b6c0b9;--scale:1;--stage-w:1600px;--stage-h:900px}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button:disabled{opacity:.3;cursor:default}#viewport{width:100%;height:100dvh;overflow:hidden;position:relative}#stage{width:1600px;height:900px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--scale));transform-origin:center;overflow:hidden;background:var(--paper)}.paper{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 34%,#fffdf580,transparent 72%);pointer-events:none}.paper:after{content:"";position:absolute;inset:0;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23585950' opacity='.14' filter='url(%23g)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}#world{position:absolute;inset:0;width:100%;height:100%;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.zone{opacity:.16;transition:opacity 1.3s}.zone.current{opacity:1}.zone path,.zone g,.zone circle{transition:opacity 1.2s,transform 2.8s cubic-bezier(.3,0,.15,1),stroke 1s}.world-spine{stroke:var(--gold);stroke-width:1.1;opacity:.35}#world .detail{stroke-width:1.35;opacity:.64}.soft{stroke:var(--soft);stroke-width:1.8}.warm{stroke:var(--gold)}.cold{stroke:var(--cold)}.thick{stroke-width:4.5}.dashed{stroke-dasharray:9 11;stroke:var(--cold);stroke-width:2}.filled,.eye{fill:currentColor;stroke:none}.eye{fill:var(--ink)}.warm.filled{fill:var(--gold)}.cold.filled{fill:var(--cold)}.head{fill:var(--paper)}.record-lines{opacity:0}.topline{position:absolute;top:36px;left:64px;right:64px;display:flex;justify-content:space-between;font-size:17px;letter-spacing:.16em;color:var(--muted);transition:opacity .5s}.topline span:first-child{font-size:15px}#meter{position:absolute;left:64px;right:64px;bottom:31px;height:1px;background:#c8cfca}#meter span{display:block;height:1px;background:var(--gold);transition:width 1.2s}#content{position:absolute;inset:0;z-index:3;pointer-events:none;display:flex;align-items:center;justify-content:center;padding:110px 145px 235px}#content>article{width:100%;max-width:1310px;text-align:center;pointer-events:auto}h1,h2,h3,p{margin:0}h1,h2{font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif;font-weight:500}h1{font-size:64px;line-height:1.58;letter-spacing:.025em;text-wrap:balance;white-space:pre-line}h2{font-size:42px;line-height:1.45;margin-bottom:30px}h3{font-size:24px;font-weight:500;letter-spacing:.1em;color:var(--muted);margin-bottom:24px}.body-lines{margin-top:35px}.body-lines p{font-size:29px;line-height:1.75;margin-top:7px;white-space:pre-line}.body-lines p:first-child{margin-top:0}.eyebrow{font-size:18px;letter-spacing:.22em;color:var(--gold);margin-bottom:28px}.quote{font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif;font-size:34px;line-height:1.95;letter-spacing:.01em;text-align:justify}.quote p+p{margin-top:22px}.quote em{font-style:normal}.emph{border-bottom:2px solid var(--gold);box-shadow:inset 0 -7px #b5804318}.markable{cursor:pointer;border-radius:2px;transition:background .3s}.markable:hover{background:#b580431a}.pair{display:grid;grid-template-columns:1fr 1fr;gap:70px;text-align:left}.pair>div+div{border-left:1px solid #b6c0b9;padding-left:55px}.pair .quote{font-size:30px;line-height:1.84}.pair h3{font-family:"Noto Sans CJK SC",sans-serif;font-size:23px}.pair h3:before{content:"";display:inline-block;width:27px;height:1px;background:var(--gold);margin-right:15px;vertical-align:middle}.reading-layout h2{font-size:36px;margin-bottom:33px}.reading-layout .quote{max-width:1160px;margin:auto}.reading-layout.dense .quote{font-size:29px;line-height:1.68}.reading-layout.dense .quote p+p{margin-top:16px}.reading-layout.anne-reading .quote{font-size:53px;text-align:left;line-height:1.85;max-width:1100px}.cover-layout{text-align:left!important;padding-left:22px}.cover-layout h1{font-size:91px;line-height:1.55;letter-spacing:.045em;max-width:1060px}.cover-layout .body-lines{margin-top:38px}.cover-layout .body-lines p{font-size:24px;letter-spacing:.16em}.cover-layout .eyebrow{margin-bottom:26px}.cover-layout .start-hint{font-size:17px;color:var(--muted);margin-top:58px;letter-spacing:.06em}.cinema-layout h1{font-size:60px}.cinema-layout .body-lines p{font-size:29px}.contrast-layout{max-width:1160px!important}.contrast-layout h2{margin-bottom:55px}.contrast-layout .quote{font-size:43px;text-align:center;line-height:1.8}.contrast-layout .quote p+p{margin-top:34px;padding-top:25px;border-top:1px solid var(--soft)}.rules-layout h1{font-size:56px}.rule-words{display:flex;gap:80px;justify-content:center;margin-top:60px}.rule-words p{font-size:31px}.rule-words small{display:block;color:var(--gold);font-size:19px;margin-bottom:18px}.repair-layout h2{font-size:36px;max-width:1200px;margin:0 auto 30px}.repair-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;text-align:left;align-items:center}.repair-grid .quote{font-size:29px;line-height:1.8}.repair-card{padding:22px 0 22px 40px;border-left:1px solid var(--gold)}.repair-card .card-text{font-size:36px;line-height:1.75;font-family:"Noto Serif CJK SC",serif}.repair-card .card-prompt{font-size:23px;line-height:1.8;color:var(--muted);margin-top:30px}.logic-layout h1{font-size:50px;line-height:1.55}.logic-row{display:grid;grid-template-columns:1fr 80px 1fr 80px 1fr;align-items:center;margin:42px 0 30px;gap:15px}.logic-row .node-label{font-size:31px;line-height:1.65;white-space:pre-line}.arrow-button{border:0;background:none;font-size:48px;color:var(--cold);position:relative;padding:10px}.arrow-button.cut:before{content:"";position:absolute;width:42px;height:2px;left:20px;top:50%;transform:rotate(-54deg);background:var(--gold)}.arrow-button.cut{color:#8b969155}.logic-layout .quote{font-size:24px;line-height:1.75;max-width:1100px;margin:auto;color:#536461}.logic-layout .quote p+p{margin-top:8px}.dialogue-layout h1{font-size:92px;letter-spacing:.07em;margin-bottom:25px}.dialogue-layout .body-lines p{font-family:"Noto Serif CJK SC",serif;font-size:30px;line-height:1.9}.group-layout h2{font-size:39px;margin-bottom:25px}.evidence-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;text-align:left}.evidence{font-size:25px;line-height:1.72;padding:22px 28px;border-top:1px solid var(--gold);background:#fffdf660}.evidence h3{font-size:21px;margin-bottom:16px}.evidence p+p{margin-top:12px}.evidence button{font-size:17px;margin-top:16px;border:0;border-bottom:1px solid #9caba4;background:none;padding:4px 0;color:var(--muted)}.group-layout .body-lines{margin-top:22px;border-top:1px solid #b6c0b9;padding-top:18px}.group-layout .body-lines p{font-size:25px;line-height:1.6}.group-steps{font-size:17px;color:var(--muted);margin-top:18px;word-spacing:14px}.writing-layout{max-width:1120px!important}.writing-layout h1{font-size:52px;margin-bottom:50px}.writing-layout .body-lines{text-align:left}.writing-layout .body-lines p{font-size:35px;margin-top:32px;padding-bottom:15px;border-bottom:1px solid #c7cfc8}.photo-layout{max-width:none!important;text-align:left!important;margin-left:710px;width:620px!important}.photo-layout h1{font-size:43px;line-height:1.65}.photo-layout .body-lines p{font-size:30px;line-height:1.85}.ending-layout h1{font-size:56px;line-height:1.7}.media-frame{position:absolute;z-index:2;overflow:hidden;will-change:transform,opacity}.media-frame img{display:block;width:100%;height:100%;object-fit:contain}.media-frame.art{inset:0;background:#202927}.media-frame.art img{transition:transform 4s cubic-bezier(.2,.5,.2,1)}.media-frame.art.detail img{transform:scale(1.35);transform-origin:42% 55%}.media-frame.photo{left:95px;top:210px;width:650px;height:480px}.media-frame.photo:after{content:"";position:absolute;inset:0;border:1px solid #8a9b8a44;pointer-events:none}.media-frame.closing{pointer-events:none}.media-fallback{display:grid;place-content:center;width:100%;height:100%;background:var(--paper);text-align:center;padding:50px;font-size:27px;line-height:1.8}.art-state .topline,.art-state #meter{opacity:0}.art-state #content{visibility:hidden}#timer{position:absolute;right:70px;bottom:70px;font-variant-numeric:tabular-nums;font-size:25px;letter-spacing:.08em;color:var(--muted);z-index:5}#timer small{font-size:16px;margin-left:16px;color:var(--gold)}#controls{position:absolute;right:22px;bottom:14px;z-index:30;display:flex;gap:5px;align-items:center;padding:7px;background:#f9f7efd9;border:1px solid #bdc7be99;box-shadow:0 5px 25px #283d3b08;border-radius:7px;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}body.show-controls #controls,#controls:focus-within,#controls:hover{opacity:1;transform:none}#controls button{border:0;background:none;padding:7px 13px;font-size:14px;border-radius:4px}#controls button:hover{background:#ced8cf50}#controls #next{background:var(--ink);color:var(--paper);padding:10px 20px;margin-left:6px}#controls #next span{margin-left:18px}#position{font-size:12px;color:var(--muted);min-width:50px;text-align:center;font-variant-numeric:tabular-nums}#panelBackdrop{position:absolute;inset:0;background:#14272645;z-index:49;backdrop-filter:blur(4px)}#panel{position:absolute;z-index:50;right:4vw;top:5vh;width:min(760px,92vw);max-height:88vh;overflow:auto;padding:42px;background:#fcfaf3;box-shadow:0 20px 90px #203b3b30;border:1px solid #c7cec2}#panel[hidden],#panelBackdrop[hidden]{display:none}#panel h2{font-size:27px;margin-bottom:20px}#panel h3{font-size:17px;margin:23px 0 8px;color:var(--gold)}#panel p{font-size:18px;line-height:1.85;white-space:pre-line}#panel .quote p{font-size:23px}#closePanel{position:sticky;top:0;float:right;font-size:29px;padding:0 8px;border:0;background:#fcfaf3}#panel .cue-label{font-size:13px;color:var(--muted);letter-spacing:.08em;margin-bottom:10px}.menu-section{border-top:1px solid var(--soft);padding-top:20px;margin-top:20px}.menu-section h3{margin:0 0 10px!important}.menu-section button{display:block;border:0;background:none;padding:10px 0;font-size:16px;text-align:left;width:100%}.menu-section button.current{color:#976328;font-weight:600}.options{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.options button{padding:9px 12px;font-size:14px;border:1px solid var(--soft);background:none}#toast{position:absolute;top:17px;left:50%;transform:translate(-50%,-12px);opacity:0;transition:opacity .25s,transform .25s;background:#243d39f0;color:var(--paper);padding:10px 23px;font-size:14px;z-index:70;pointer-events:none}#toast.on{opacity:1;transform:translate(-50%,0)}
/* 全屏授课时不把操作提示投给学生 */
:fullscreen .start-hint,body.focus-mode .start-hint{display:none}
#qrOverlay{position:absolute;inset:0;z-index:80;display:grid;place-items:center;background:#14272659;backdrop-filter:blur(3px)}
#qrOverlay[hidden]{display:none!important}
#qrOverlay .qr-card{position:relative;width:min(460px,86vw);padding:34px 34px 28px;background:#fcfaf3;border:1px solid #c7cec2;border-radius:10px;box-shadow:0 20px 90px #203b3b45;text-align:center}
#qrOverlay h2{font-family:"Noto Sans CJK SC","Microsoft YaHei",sans-serif;font-size:21px;font-weight:600;letter-spacing:.04em;margin-bottom:22px}
#qrImage{display:block;width:min(320px,72vw);height:auto;margin:0 auto;image-rendering:pixelated}
#qrImage:not([src]){display:none}
.qr-url{font-size:13px;color:var(--muted);word-break:break-all;margin-top:16px}
.qr-note{font-size:13px;line-height:1.85;color:#5e6b63;margin-top:14px}
#qrClose{position:absolute;top:8px;right:12px;border:0;background:none;font-size:26px;line-height:1;padding:4px 8px;color:var(--muted)}
#qrClose:hover{background:#ced8cf50}

/* Persistent figures evolve. No decorative animation loops run during reading. */
.zone-day .desk-set,.zone-day .listen-set,.zone-day .cover-art{opacity:0}.zone-day .road-set{opacity:1}.zone-day[data-state=cover] .road-set{opacity:.13}.zone-day[data-state=cover] .cover-art{opacity:1}.zone-day[data-state=cover] .day-scenery{opacity:.5}.zone-day[data-state=desk] .road-set,.zone-day[data-state=writing] .road-set{opacity:.06}.zone-day[data-state=desk] .desk-set,.zone-day[data-state=writing] .desk-set{opacity:1;transform:translate(-205px,0)}.zone-day[data-state=desk] .seated .person-body{transform:rotate(3deg);transform-origin:0 -70px}.zone-day[data-state=listening] .road-set{opacity:.07}.zone-day[data-state=listening] .listen-set{opacity:1}.zone-day[data-state=ending] .desk-set{opacity:1;transform:translate(120px,0) scale(.93);transform-origin:1000px 750px}.zone-day[data-state=ending] .road-set{transform:translate(-110px,0) scale(.79);transform-origin:650px 750px}.zone-book .initial-mark,.zone-book .revision-mark{opacity:0}.zone-book[data-state=question] .initial-mark,.zone-book[data-state=revision] .initial-mark,.zone-book[data-state=revision] .revision-mark{opacity:1}.zone-book[data-state=question] .main-book,.zone-book[data-state=revision] .main-book{opacity:.45}.zone-effects .hurt-lines,.zone-effects .warm-lines{opacity:0}.zone-effects[data-state=sensitive] .hurt-lines,.zone-effects[data-state=both] .hurt-lines{opacity:1}.zone-effects[data-state=connected] .warm-lines,.zone-effects[data-state=both] .warm-lines{opacity:1}.zone-effects[data-state=connected] .hurt-lines{opacity:.3}.zone-effects .ripple,.zone-effects .ripple2{opacity:.25;stroke-width:1.2}.zone-effects .effect-child .person-body{transform-origin:0 0}.zone-effects[data-state=sensitive] .effect-child .person-body{transform:rotate(-3deg)}.zone-effects[data-state=both] .hurt-lines{transform:translate(33px,0)}.zone-labor .grandfather-present{opacity:0}.zone-labor[data-state=contradiction] .labor-memory,.zone-labor[data-state=gap] .labor-memory{opacity:.12}.zone-labor[data-state=contradiction] .grandfather-present,.zone-labor[data-state=gap] .grandfather-present{opacity:1}.zone-logic .repair-trace,.zone-logic .logic-nodes{opacity:0}.zone-logic[data-state=repair1] .repair-trace,.zone-logic[data-state=record1] .repair-trace{opacity:1}.zone-logic .missing{opacity:0}.zone-logic[data-state=record1] .missing,.zone-logic[data-state=record1] .record-lines{opacity:1}.zone-logic[data-state=repair1] .tools,.zone-logic[data-state=record1] .tools,.zone-logic[data-state=arrows] .tools,.zone-logic[data-state=cut] .tools{opacity:0}.zone-logic[data-state=arrows] .logic-nodes,.zone-logic[data-state=cut] .logic-nodes{opacity:1}.zone-logic .cut-mark{opacity:0}.zone-logic[data-state=cut] .cut-left{transform:translate(-20px,8px)}.zone-logic[data-state=cut] .cut-right{transform:translate(20px,8px)}.zone-logic[data-state=cut] .uncut-mid{opacity:0}.zone-logic[data-state=cut] .cut-mark{opacity:1}.zone-protect .protect-frame{opacity:.12;transform:translate(0,0)}.zone-protect .protection-limits{opacity:0}.zone-protect .bond{opacity:0}.zone-protect .arm-moving{transform:rotate(62deg);transform-origin:23px -102px}.zone-protect[data-state=arm] .arm-moving,.zone-protect[data-state=question] .arm-moving,.zone-protect[data-state=answer] .arm-moving,.zone-protect[data-state=wide] .arm-moving{transform:rotate(0deg)}.zone-protect[data-state=arm] .bond,.zone-protect[data-state=question] .bond,.zone-protect[data-state=answer] .bond,.zone-protect[data-state=wide] .bond{opacity:1}.zone-protect[data-state=quiet] .protect-pair,.zone-protect[data-state=repair] .protect-pair{opacity:.25}.zone-protect[data-state=answer] .protect-frame{opacity:.65}.zone-protect[data-state=wide] .protect-frame{opacity:1}.zone-protect[data-state=wide] .protect-pair{transform:translate(220px,211px) scale(.73);transform-origin:0 0}.zone-protect[data-state=wide] .protection-limits{opacity:.65}.zone-anne .help-objects,.zone-anne .wishes{opacity:0}.zone-anne .outer-danger{opacity:.15}.zone-anne[data-state=help] .help-objects,.zone-anne[data-state=read] .help-objects,.zone-anne[data-state=wishes] .help-objects,.zone-anne[data-state=blocked] .help-objects{opacity:1}.zone-anne[data-state=read] .anne-room,.zone-anne[data-state=read] .help-objects{opacity:.25}.zone-anne[data-state=wishes] .wishes,.zone-anne[data-state=blocked] .wishes{opacity:.65}.zone-anne[data-state=blocked] .outer-danger{opacity:1}.zone-anne[data-state=blocked] .wish-bike .bike-parts{transform:translate(-35px,0)}.zone-anne[data-state=blocked] .wish-route{stroke-dasharray:5 10}.zone-anne .wishes{stroke-dasharray:4 7;stroke:var(--gold);stroke-width:2}.zone-discussion .first-record,.zone-discussion .second-record,.zone-discussion .check-record{opacity:0}.zone-discussion[data-state=share2] .first-record,.zone-discussion[data-state=checked] .first-record,.zone-discussion[data-state=checked] .second-record,.zone-discussion[data-state=checked] .check-record{opacity:1}.zone-discussion .record-lines{opacity:1}.zone-discussion[data-state=group] .evidence-lines{opacity:.25}.zone-author .new-growth{opacity:0}.zone-author[data-state=roots] .roots{opacity:.3;transform:translate(0,25px)}.zone-author[data-state=roots] .new-growth{opacity:1}.zone-author[data-state=quiet] .roots{opacity:.25}.zone-reality .school-memory,.zone-reality .lamp-memory{opacity:0}.zone-reality[data-state=school] .school-memory,.zone-reality[data-state=varvara] .school-memory,.zone-reality[data-state=lamp] .school-memory,.zone-reality[data-state=lamp] .lamp-memory{opacity:1}.zone-reality[data-state=varvara] .school-memory{opacity:.12}.zone-finale .adults{opacity:0}.zone-finale .final-world{transform-origin:800px 720px;transform:scale(.88)}.zone-finale[data-state=pressure] .roof{transform:translate(0,110px)}.zone-finale[data-state=reveal] .final-world{transform:scale(.78)}.zone-finale[data-state=support] .final-world{transform:scale(.84)}.zone-finale[data-state=support] .adults{opacity:1}.zone-finale[data-state=support] .roof{transform:translate(-100px,-100px) scale(1.125,1.125)}.zone-finale[data-state=support] .support-beam{transform:translate(0,0)}
body.high-contrast{--paper:#fffdf4;--ink:#162725;--muted:#40524b;--gold:#8d591f;--cold:#4c6574;--soft:#7e9185}body.reduced *{animation-duration:.001ms!important;transition-duration:.001ms!important}.reading-state #world{opacity:.65}.art-state #world{opacity:.05}.photo-state #world{opacity:.35}
@media(max-width:620px) and (orientation:portrait){html,body{overflow:auto}#viewport{height:100dvh}#stage{width:100%;height:100%;left:0;top:0;transform:none;overflow-y:auto;padding-bottom:100px}#world{position:fixed;top:auto;bottom:0;height:52vh;opacity:.23!important}#content{position:relative;min-height:calc(100dvh - 125px);padding:85px 24px 45px;align-items:center}#content>article{max-width:100%;width:100%}h1,.cinema-layout h1{font-size:32px;line-height:1.65}h2,.reading-layout h2,.group-layout h2,.repair-layout h2{font-size:25px;margin-bottom:25px}.cover-layout{padding:0!important}.cover-layout h1{font-size:40px}.cover-layout .eyebrow{font-size:13px}.cover-layout .body-lines p{font-size:17px}.cover-layout .start-hint{font-size:13px;margin-top:40px}.body-lines p,.cinema-layout .body-lines p{font-size:21px}.body-lines{margin-top:25px}.quote,.pair .quote,.reading-layout.dense .quote{font-size:21px;line-height:1.9}.reading-layout.anne-reading .quote{font-size:29px}.pair{grid-template-columns:1fr;gap:25px}.pair>div+div{border-left:0;border-top:1px solid var(--soft);padding:25px 0 0}.pair h3{font-size:19px;margin-bottom:14px}.repair-grid{grid-template-columns:1fr;gap:24px}.repair-grid .quote{font-size:20px}.repair-card{padding:15px 0 0;border:0;border-top:1px solid var(--gold)}.repair-card .card-text{font-size:25px}.repair-card .card-prompt{font-size:18px;margin-top:15px}.logic-layout h1{font-size:29px}.logic-row{grid-template-columns:1fr;gap:0;margin:20px 0}.logic-row .node-label{font-size:22px}.arrow-button{font-size:30px;transform:rotate(90deg);padding:0}.logic-layout .quote{font-size:18px}.logic-layout .arrow-button.cut:before{left:calc(50% - 21px)}.evidence-grid{grid-template-columns:1fr;gap:16px}.evidence{font-size:19px;padding:17px}.evidence h3{font-size:18px}.group-layout .body-lines p{font-size:19px}.group-steps{font-size:14px;line-height:1.8}.writing-layout h1{font-size:31px;margin-bottom:20px}.writing-layout .body-lines p{font-size:23px}.dialogue-layout h1{font-size:45px}.dialogue-layout .body-lines p{font-size:23px}.contrast-layout .quote{font-size:26px}.rule-words{gap:17px;margin-top:30px}.rule-words p{font-size:20px}.rule-words small{font-size:15px}.rules-layout h1{font-size:29px}.ending-layout h1{font-size:31px}.topline{left:24px;right:24px;top:24px;font-size:12px}.topline span:first-child{font-size:11px;letter-spacing:.04em}#meter{display:none}#timer{position:fixed;bottom:83px;right:24px;font-size:18px}#timer small{font-size:12px}.media-frame.photo{left:6%;top:80px;width:88%;height:29vh;position:absolute}.photo-layout{margin:calc(29vh + 40px) 0 0!important;width:100%!important}.photo-layout h1{font-size:27px}.photo-layout .body-lines p{font-size:21px}.media-frame.art{position:fixed}.art-state #content{min-height:100dvh}#controls{right:10px;left:10px;bottom:10px;opacity:1;transform:none;justify-content:space-between}#controls button{padding:8px;font-size:12px}#controls #next{padding:10px 12px;margin-left:0}#controls #next span{margin-left:6px}#position{min-width:35px;font-size:10px}#panel{padding:23px;right:4vw}#panel p{font-size:16px}#panel .quote p{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Reading and writing have a guaranteed quiet central field. */
.scene-art{transform-origin:800px 820px}
.reading-state .zone.current>.scene-art{transform:scale(.65)}
.zone-day[data-state=writing] .desk-set{transform:translate(470px,370px) scale(.52);transform-origin:0 0;opacity:.3}
.zone-day[data-state=writing] .day-scenery{opacity:.15}
.cinema-layout h1,.dialogue-layout h1,.question-layout h1,.ending-layout h1{display:inline-block;background:var(--paper);box-shadow:0 0 24px 20px var(--paper);position:relative}
.cinema-layout .body-lines,.dialogue-layout .body-lines{display:table;margin-left:auto;margin-right:auto;background:var(--paper);box-shadow:0 0 20px 16px var(--paper)}
.zone-anne[data-state=wishes] .wishes,.zone-anne[data-state=blocked] .wishes{opacity:.92}
.instant-reset,.instant-reset *{transition:none!important}

.protector .person-body{transform-origin:0 0}
.zone-protect[data-state=arm] .protector .person-body,.zone-protect[data-state=question] .protector .person-body,.zone-protect[data-state=answer] .protector .person-body,.zone-protect[data-state=wide] .protector .person-body{transform:rotate(4deg)}


/* Reading has three deliberate scales: whole passage, a sentence with an action,
   and a return to evidence. Common evidence nodes stay in place between cues. */
#content>article{transition:none}
#content{padding:112px 138px 190px}
.reading-state #content{padding:106px 132px 156px}
.reading-layout.window-reading .quote{font-size:32px;line-height:1.82;max-width:1220px}
.reading-layout.window-reading h2{font-size:36px;margin-bottom:28px}
.reading-layout.anne-reading .quote{font-size:40px;line-height:1.8;max-width:1150px}
.reading-layout.anne-reading .quote p+p{margin-top:28px}
.reading-layout.context-reading .quote{font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",sans-serif;font-size:33px;line-height:1.9;max-width:1180px}
.reading-layout.context-reading .quote p+p{margin-top:28px}
.pair-layout h2{margin-bottom:27px}.pair-layout .pair{gap:54px}.pair-layout .pair>div+div{padding-left:45px}.pair-layout .pair .quote{font-size:30px;line-height:1.78}
.focus-layout{max-width:1180px!important;align-self:flex-start;margin-top:34px}
.focus-layout h2{font-size:29px;color:var(--muted);line-height:1.65;margin-bottom:28px}
.focus-quote{margin:0;font-family:"Noto Serif CJK SC","Songti SC","SimSun",serif;font-size:50px;line-height:1.75;text-wrap:balance;white-space:pre-line;background:var(--paper);box-shadow:0 0 35px 22px var(--paper)}
.focus-layout .body-lines p{font-size:25px}.focus-layout .body-lines{margin-top:20px}
.silent-layout{min-height:1px;pointer-events:none!important}
.recall-layout h1{font-size:56px}.recall-links{display:flex;justify-content:center;gap:22px;margin-top:32px}.recall-links button{font-size:21px;border:0;border-bottom:1px solid var(--soft);background:var(--paper);padding:7px 12px;color:var(--muted)}
.evidence-actions{display:flex;gap:20px;flex-wrap:wrap}
.logic-layout h1{font-size:44px}.logic-layout .logic-row{margin:30px 0 24px}.logic-layout .quote{font-size:26px;line-height:1.72;max-width:1160px}
.logic-layout .node-label{font-size:30px}.logic-layout .quote p+p{margin-top:8px}
.group-layout .evidence{padding:19px 25px}.group-layout .evidence h3{margin-bottom:12px}.group-layout .evidence-grid{gap:42px}
.media-frame.art.detail img{transform:none}.art-state #controls{opacity:0;pointer-events:none}.art-state.show-controls #controls,.art-state #controls:focus-within,.art-state #controls:hover{opacity:1;pointer-events:auto}
@media(max-width:480px) and (orientation:portrait){#controls{gap:2px;padding:6px}#controls button{padding:8px 6px}#controls #next{padding:10px 9px}#controls #next span,#controls #position{display:none}}
#panel.evidence-panel{width:min(1120px,92vw);left:50%;right:auto;transform:translateX(-50%);padding:40px 54px;max-height:88vh;top:6vh}
#panel.evidence-panel .quote p{font-size:26px;line-height:1.9}#panel.evidence-panel h2{font-size:30px;margin-bottom:28px}
#panel.evidence-pair-panel{width:min(1360px,94vw);padding:40px 45px}#panel.evidence-pair-panel .pair{gap:40px}#panel.evidence-pair-panel .pair>div+div{padding-left:35px}#panel.evidence-pair-panel .quote p{font-size:25px}
.node-menu{display:grid;grid-template-columns:1fr 1fr;gap:9px}.node-menu button{display:grid;grid-template-columns:25px 1fr;text-align:left;gap:2px 10px;padding:12px;border:1px solid var(--soft);background:none}.node-menu button>span{color:var(--gold);font-size:12px}.node-menu strong{font-size:15px;font-weight:500}.node-menu small{grid-column:2;font-size:11px;color:var(--muted)}.node-menu button.current{border-color:var(--gold);background:#b5804312}
.cue-directory{border-top:1px solid var(--soft);margin-top:24px;padding-top:18px}.cue-directory summary{cursor:pointer;font-size:15px;color:var(--muted);margin-bottom:13px}.cue-directory button{display:block;border:0;border-bottom:1px solid #dce0d7;background:none;padding:10px 0;font-size:14px;text-align:left;width:100%}.cue-directory button small{display:block;font-size:11px;color:var(--muted);padding-left:32px}.cue-directory button.current{color:var(--gold)}
#blackout{position:fixed;inset:0;z-index:100;background:#101715}#blackout[hidden]{display:none}.is-blackout #controls,.is-blackout #toast{visibility:hidden}.is-blackout #stage,.is-blackout #panel,.is-blackout #panelBackdrop{visibility:hidden}
@media(max-width:620px) and (orientation:portrait){
 #content,.reading-state #content{padding:85px 24px 80px;min-height:calc(100dvh - 110px)}
 .reading-layout.window-reading .quote{font-size:21px;line-height:1.9}.reading-layout.window-reading h2{font-size:25px;margin-bottom:24px}
 .reading-layout.anne-reading .quote{font-size:27px;line-height:1.9}.reading-layout.anne-reading .quote p+p{margin-top:24px}
 .reading-layout.context-reading .quote{font-size:21px;line-height:1.9}
 .pair-layout .pair{gap:24px}.pair-layout .pair>div+div{padding:24px 0 0}.pair-layout .pair .quote{font-size:21px;line-height:1.9}
 .focus-layout{margin-top:20px;align-self:center}.focus-layout h2{font-size:22px;margin-bottom:25px}.focus-quote{font-size:29px;line-height:1.9}.focus-layout .body-lines p{font-size:19px}
 .recall-layout h1{font-size:30px}.recall-links{gap:12px;flex-wrap:wrap;margin-top:24px}.recall-links button{font-size:16px}
 .logic-layout h1{font-size:29px}.logic-layout .node-label{font-size:22px}.logic-layout .quote{font-size:19px;line-height:1.8}.logic-layout .logic-row{margin:24px 0}
 .group-layout .evidence-grid{gap:18px}.group-layout .evidence{padding:17px}
 #panel.evidence-panel{padding:24px;width:94vw;max-height:89vh;top:4vh}#panel.evidence-panel h2{font-size:24px;margin-bottom:24px}#panel.evidence-panel .quote p{font-size:20px;line-height:1.9}
 #panel.evidence-pair-panel .pair{gap:22px}#panel.evidence-pair-panel .pair>div+div{padding:23px 0 0}.node-menu{grid-template-columns:1fr}.node-menu button{padding:10px}
 .art-state #controls{opacity:0;pointer-events:none}.art-state.show-controls #controls,.art-state #controls:focus-within{opacity:1;pointer-events:auto}
}

/* Quiet paper beneath the complete reading area keeps scene strokes out of text.
   This changes only compositing; paragraph positions and type sizes stay intact. */
.reading-state #content>article{position:relative;background:var(--paper);box-shadow:0 0 30px 26px var(--paper)}

/* Keep the two experiences legible while the two unsupported inferences part.
   The closing explanation appears only after the class has made its judgement. */
@media(min-width:621px){#timer{bottom:105px}}
.arrow-button:disabled{opacity:1;cursor:default}
.logic-notes{display:flex;justify-content:center;gap:46px;margin:-4px 0 24px;color:var(--muted);font-size:23px;line-height:1.55}
.logic-notes p{border-bottom:1px solid #b5804359;padding:0 7px 5px;white-space:nowrap}
body[data-cue=g2-cut] .logic-row{margin:20px 0 15px}
body[data-cue=g2-cut] .logic-layout h1{font-size:42px}
/* Anne's tall room remains visible below a quiet, central text field. The
   heading's paper fades with the delayed question, so the moving wish stays
   unobstructed until it has actually reached the boundary. */
body[data-cue=anne-help] .cinema-layout,
body[data-cue=anne-wishes] .cinema-layout,
body[data-cue=anne-blocked] .question-layout{align-self:flex-start;max-width:1120px!important;margin-top:65px}
body[data-cue=anne-help] h1,
body[data-cue=anne-wishes] h1,
body[data-cue=anne-blocked] h1{font-size:52px;line-height:1.65;background:var(--paper);box-shadow:0 0 28px 24px var(--paper)}
@media(max-width:620px) and (orientation:portrait){
 .logic-notes{flex-direction:column;gap:8px;align-items:center;margin:0 0 25px;font-size:18px}
 body[data-cue=g2-cut] .logic-layout h1{font-size:29px}
 body[data-cue=anne-help] .cinema-layout,
 body[data-cue=anne-wishes] .cinema-layout,
 body[data-cue=anne-blocked] .question-layout{margin-top:0;align-self:center}
 body[data-cue=anne-help] h1,
 body[data-cue=anne-wishes] h1,
 body[data-cue=anne-blocked] h1{font-size:29px;box-shadow:0 0 18px 12px var(--paper)}
}
