/* The reading room: one photograph, a physical pull control, warm light. */
.reading-room{--brass:#e9be80;--room-ink:#05090e;position:relative;background:var(--room-ink);padding:72px 0 50px;color:#f5f7f8}
.room-overline,.room-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.room-overline{padding-bottom:26px}.room-overline .eyebrow{color:#a3b8c6;font-size:.8125rem}.room-overline>a{font-size:.875rem;display:flex;gap:32px;align-items:center;min-height:44px}
.room-stage{isolation:isolate;position:relative;display:grid;grid-template-areas:"art";width:calc(100% - var(--gutter)*2);max-width:1600px;margin:auto;overflow:hidden;border:1px solid #b6c7d41a}
.room-photograph{display:block;grid-area:art;position:relative;aspect-ratio:16/9;min-height:500px;overflow:hidden}
.room-photograph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:brightness(1) saturate(1);transition:filter 1.25s cubic-bezier(.2,.68,.17,1)}
.reading-room[data-light="off"] .room-photograph img{filter:brightness(.24) saturate(.48)}
.room-shade,.room-light-bloom{grid-area:art;position:relative;pointer-events:none;z-index:1}
.room-shade{background:linear-gradient(90deg,#03070bcf 0%,#03070b80 31%,transparent 58%);transition:background 1s}
.room-light-bloom{background:radial-gradient(ellipse 36% 80% at 66% 28%,#ffe0a32a 0%,#ffc47408 48%,transparent 76%);mix-blend-mode:screen;opacity:1;transform-origin:66% 8%;transition:opacity 1.1s,transform 1.3s var(--ease)}
.reading-room[data-light="off"] .room-light-bloom{opacity:0;transform:scale(.7)}
.room-copy{grid-area:art;position:relative;z-index:3;align-self:center;margin:45px clamp(26px,4vw,72px);width:43%;pointer-events:none}
.room-copy .eyebrow{color:#b5c2ca;letter-spacing:.12em;font-size:.75rem;margin-bottom:22px}
.room-copy h2{font-size:clamp(52px,6.8vw,112px);font-weight:400;letter-spacing:-.065em;line-height:1.02}
.room-copy h2 em{display:inline-block;color:#a9d5e6;transition:color 1s,transform 1s var(--ease);transform:translateY(0)}
.reading-room[data-light="on"] .room-copy h2 em{color:var(--brass)}
.room-introduction{margin-top:28px;font-size:1.0625rem;line-height:1.65;color:#c9d3db}
.room-open{pointer-events:auto;display:inline-flex;gap:25px;align-items:center;min-height:52px;margin-top:32px;padding:8px 0;background:none;font-size:1rem;border-bottom:1px solid #b4cad454;transition:border-color .4s,color .4s}
.room-open i{font-style:normal;display:grid;place-items:center;width:37px;height:37px;border:1px solid #b4cad46b;border-radius:50%;transition:transform .5s var(--ease),background .4s,border-color .4s}
.room-open:hover i{transform:rotate(45deg);background:#e9be801c;border-color:var(--brass)}
.reading-room[data-light="on"] .room-open{border-color:#d7b38188}
.room-corner{position:absolute;bottom:28px;right:32px;z-index:3;text-align:right;font-size:.75rem;line-height:1.6;letter-spacing:.09em;color:#d9e1e7;display:flex;flex-direction:column;pointer-events:none}
.lamp-switch{position:absolute;z-index:5;width:140px;height:320px;pointer-events:none;top:10%;left:72%;overflow:visible}
.lamp-switch[hidden],.room-toggle[hidden]{display:none}
.lamp-cord{position:absolute;inset:0;width:140px;height:320px;overflow:visible;pointer-events:none}
.cord-shadow{stroke:#000;stroke-width:4;opacity:.6;transform:translate(1px,1px)}
.cord-line{stroke:#dec48f;stroke-width:1.5;stroke-linecap:round}
.cord-handle{position:absolute;top:96px;left:38px;width:64px;height:64px;border:0;background:none;border-radius:50%;padding:0;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;display:grid;place-items:center}
.cord-grip{display:block;width:14px;height:30px;border-radius:8px;background:linear-gradient(90deg,#775532,#f8dfa6 46%,#b68546);box-shadow:1px 4px 9px #0008;pointer-events:none}
.cord-handle:before{content:"";position:absolute;inset:5px;border:1px solid #e9be8059;border-radius:50%;transform:scale(.88);opacity:0;transition:opacity .3s,transform .4s}
.cord-handle:is(:hover,:focus-visible):before,.is-pulling .cord-handle:before{opacity:1;transform:scale(1)}
.is-pulling .cord-handle:before{background:conic-gradient(#f5d7a6 calc(var(--cord-pull,0) * 1turn),transparent 0);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0);border:0}
.cord-handle:focus-visible{outline:2px solid #f5d7a6;outline-offset:1px}.is-pulling .cord-handle{cursor:grabbing}
.cord-hint{position:absolute;top:130px;right:90px;white-space:nowrap;font-size:.875rem;letter-spacing:.015em;color:#efd8b2;text-shadow:0 2px 9px #000;transition:opacity .25s,transform .4s;pointer-events:none}
.reading-room[data-light="on"] .cord-hint,.is-pulling .cord-hint{opacity:0;transform:translateY(8px)}
.room-footer{padding-top:20px}.room-instruction{display:flex;gap:12px;align-items:center;font-size:.875rem;color:#c6d3dd}
.room-state{width:9px;height:9px;border:1px solid #9bb6c7;border-radius:50%;flex:none;transition:background .6s,border-color .6s,box-shadow .6s}
.reading-room[data-light="on"] .room-state{background:var(--brass);border-color:var(--brass);box-shadow:0 0 13px #e9be8055}
.room-toggle{padding:10px 0;min-height:44px;max-width:100%;display:flex;gap:20px;align-items:center;text-align:left;background:none;border-bottom:1px solid #8aa1b144;font-size:.875rem}.room-toggle i{font-style:normal;flex:none}
.room-toggle:hover{border-color:var(--brass);color:var(--brass)}
.room-image-error .room-photograph{background:radial-gradient(ellipse at 70% 30%,#132c40,#05090e)}
@media(max-width:1000px) and (min-width:761px){.room-copy{margin-left:28px;width:43%}.room-copy h2{font-size:clamp(44px,6.5vw,66px)}.room-copy .eyebrow{font-size:.75rem}.room-photograph{min-height:470px}.room-introduction{font-size:1rem}.room-corner{display:none}}
@media(max-width:760px){
 .reading-room{padding:34px 0 30px}.room-overline{padding-bottom:4px;gap:12px}.room-overline .eyebrow{font-size:.75rem}.room-overline>a{gap:12px;font-size:.875rem}
 .room-stage{width:100%;border:0;grid-template-areas:"copy" "art"}
 .room-copy{grid-area:copy;width:auto;margin:0;padding:26px var(--gutter) 30px;display:grid;grid-template-columns:1fr;gap:0}
 .room-copy .eyebrow{display:none}.room-copy h2{font-size:clamp(46px,12.8vw,78px);line-height:1.01;letter-spacing:-.065em}.room-copy h2>br{display:none}.room-copy h2>span{display:block}
 .room-introduction{margin-top:18px;font-size:1rem;line-height:1.6}.room-introduction br{display:none}.room-introduction br:after{content:' '}
 .room-open{justify-self:start;margin-top:14px;gap:27px;font-size:1rem;min-height:48px}
 .room-photograph{aspect-ratio:4/5;min-height:0}.room-photograph img{object-position:78% 50%}
 .room-shade{background:linear-gradient(0deg,#05090e8c,transparent 15%,transparent 85%,#05090e4d)}
 .room-light-bloom{background:radial-gradient(ellipse 70% 85% at 56% 23%,#ffe0a32a,transparent 72%);transform-origin:56% 8%}
 .room-corner{display:none}.cord-hint{font-size:.875rem}.room-footer{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:19px}.room-instruction{font-size:.875rem;line-height:1.6}.room-toggle{font-size:.875rem;padding:8px 0;gap:28px}
}
@media(prefers-reduced-motion:reduce){.reading-room *,.reading-room *:before{transition:none!important;animation:none!important}.room-open i{transform:none!important}}
.user-reduced-motion .reading-room *,.user-reduced-motion .reading-room *:before{transition:none!important;animation:none!important}
