.study{background:var(--color-espresso);color:var(--color-ivory);position:fixed;inset:0;overflow:hidden}.study-stage{position:absolute;inset:0}.study-bar{z-index:40;pointer-events:none;background:linear-gradient(#140c07c7,#140c0700);align-items:center;gap:16px 28px;padding:18px clamp(16px,3vw,40px) 40px;display:flex;position:absolute;inset:0 0 auto}.study-bar>*{pointer-events:auto}.study-bar__mark{font-family:var(--font-display);color:var(--color-ivory);flex-direction:column;font-size:clamp(22px,2vw,28px);font-weight:600;line-height:1;display:flex}.study-bar__role{font-family:var(--font-body);font-variant:all-small-caps;letter-spacing:.16em;color:var(--color-brass-light);margin-top:4px;font-size:13px}.study-bar__nav{margin-left:auto}.study-bar__nav ul{gap:clamp(10px,2vw,28px);display:flex}.study-bar__nav a,.study-bar__tool{font-family:var(--font-body);font-variant:all-small-caps;letter-spacing:.16em;color:var(--color-ivory);cursor:pointer;background:0 0;border:0;padding:6px 2px;font-size:16px;position:relative}.study-bar__nav a:after,.study-bar__tool:after{content:"";background:var(--color-brass-light);transform-origin:0;height:1px;transition:transform .4s var(--ease-page);position:absolute;inset:auto 0 2px;transform:scaleX(0)}.study-bar__nav a:hover:after,.study-bar__tool:hover:after,.study-bar__tool[aria-expanded=true]:after,.study-bar__tool[aria-pressed=true]:after{transform:scaleX(1)}.study-bar__tools{border-left:1px solid #dcc28c59;gap:18px;padding-left:clamp(10px,2vw,28px);display:flex}.study :focus-visible{outline:2px solid var(--color-brass-light);outline-offset:4px}@media (width<=640px){.study-bar{flex-wrap:wrap;padding-bottom:28px}.study-bar__nav{order:3;width:100%;margin-left:0}.study-bar__tools{border-left:0;margin-left:auto;padding-left:0}}.scene-hint{font-family:var(--font-display);color:var(--color-ivory);white-space:nowrap;text-shadow:0 1px 12px #000000d9;opacity:0;transition:opacity .9s var(--ease-page);align-items:center;gap:10px;margin:0;font-size:clamp(16px,1.3vw,19px);font-style:italic;font-weight:500;display:flex}.scene-hint.is-visible{opacity:.92;transition-delay:.6s}.scene-hint__dot{background:var(--color-amber);border-radius:50%;flex:none;width:7px;height:7px;animation:2.4s ease-out infinite hint-pulse;box-shadow:0 0 #d9a24c99}@keyframes hint-pulse{0%{box-shadow:0 0 #d9a24c8c}70%,to{box-shadow:0 0 0 10px #d9a24c00}}.study-glance{right:16px;bottom:max(20px, env(safe-area-inset-bottom));z-index:35;position:absolute}.study-glance__btn{color:var(--color-ivory);font-family:var(--font-body);backdrop-filter:blur(4px);background:#1f140dbf;border:1px solid #dcc28c99;border-radius:999px;padding:10px 16px;font-size:16px;font-style:italic}.study-loader{z-index:50;background:radial-gradient(ellipse at 50% 40%, #d9a24c2e, transparent 60%), var(--color-espresso);transition:opacity 1.2s var(--ease-page), visibility 0s linear 0s;place-items:center;display:grid;position:absolute;inset:0}.study-loader.is-done{opacity:0;visibility:hidden;transition:opacity 1.2s var(--ease-page), visibility 0s linear 1.2s}.study-loader__card{flex-direction:column;align-items:center;gap:14px;display:flex}.study-loader__flame{background:radial-gradient(circle at 50% 70%, #fff3d0, var(--color-amber) 60%, transparent 75%);border-radius:50% 50% 45% 45%/65% 65% 35% 35%;width:10px;height:16px;animation:1.8s ease-in-out infinite alternate flame;box-shadow:0 0 30px 10px #d9a24c59}@keyframes flame{0%{transform:scale(1)translateY(0)}to{transform:scale(1.08,.94)translateY(1px)}}.study-loader__text{font-family:var(--font-display);color:var(--color-brass-light);font-size:22px;font-style:italic}.study-loader__bar{background:#dcc28c40;width:120px;height:1px;position:relative;overflow:hidden}.study-loader__bar:after{content:"";background:var(--color-brass-light);width:40%;animation:loader-sweep 1.6s var(--ease-page) infinite;position:absolute;inset:0}@keyframes loader-sweep{0%{transform:translate(-100%)}to{transform:translate(260%)}}.lighting-plate{z-index:45;background:var(--paper-grain), linear-gradient(160deg, #f4ead4, #e6d6b4);width:min(320px,100vw - 32px);color:var(--color-ink);transform-origin:0 100%;border-radius:6px;padding:16px 16px 12px;position:absolute;bottom:clamp(20px,6vh,64px);left:clamp(16px,4vw,56px);box-shadow:0 0 0 1px #b08d57e6,0 0 0 4px #2a1c13d9,0 0 0 5px #b08d57b3,0 24px 50px -10px #000000b3}.lighting-plate__head{border-bottom:1px solid #b08d5799;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:8px;display:flex}.lighting-plate__title{font-family:var(--font-display);letter-spacing:.08em;font-variant:small-caps;font-size:20px;font-weight:600}.lighting-plate__close{width:28px;height:28px;color:var(--color-ink-soft);cursor:pointer;border-radius:50%;font-size:22px;line-height:1}.lighting-plate__close:hover{background:#b08d5733}.lighting-plate :focus-visible{outline-color:var(--color-burgundy)}.lighting-plate__options{border:0;gap:2px;display:grid}.lighting-option{cursor:pointer;border-radius:4px;align-items:center;gap:12px;padding:8px 10px;transition:background-color .25s;display:flex;position:relative}.lighting-option input{opacity:0;cursor:pointer;position:absolute;inset:0}.lighting-option:hover{background:#b08d5724}.lighting-option.is-on{background:#6f2b2a1a}.lighting-option:has(input:focus-visible){outline:2px solid var(--color-burgundy);outline-offset:1px}.lighting-option__icon{width:36px;height:36px;color:var(--color-ink);background:radial-gradient(circle at 35% 30%,#f7e7c0,#c9a565);border:1px solid #b08d57cc;border-radius:50%;flex:none;place-items:center;display:grid}.lighting-option.is-on .lighting-option__icon{background:radial-gradient(circle at 35% 30%, #ffe9b8, var(--color-amber));box-shadow:0 0 14px #d9a24cb3}.lighting-option__icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.lighting-option__text{flex-direction:column;display:flex}.lighting-option__label{font-family:var(--font-display);font-size:19px;font-weight:600;line-height:1.1}.lighting-option.is-on .lighting-option__label{color:var(--color-burgundy)}.lighting-option__desc{color:var(--color-ink-soft);font-size:14px;font-style:italic}@media (width<=640px){.lighting-plate{width:auto;left:16px;right:16px}}.photo-viewport{background:var(--color-espresso);position:absolute;inset:0;overflow:hidden}.photo-camera{transform-origin:0 0;transition:transform 1.3s cubic-bezier(.65,0,.35,1);position:absolute;inset:0}.photo-parallax{transform:translate(var(--px,0px), var(--py,0px)) scale(1.03);transition:transform .9s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.photo-stage{transition:transform 1.1s cubic-bezier(.65,0,.35,1);position:absolute;top:0;left:0}.photo-image{opacity:0;user-select:none;width:100%;max-width:none;height:100%;position:absolute;inset:0}.photo-image.is-on{opacity:1}.photo-image,.photo-spine{transition:opacity 1.4s,filter 1.4s}[data-preset=golden] .photo-image,[data-preset=golden] .photo-spine{filter:brightness(.9)sepia(.16)saturate(1.12)contrast(1.03)}[data-grade=evening] .photo-image,[data-grade=evening] .photo-spine{filter:brightness(.42)saturate(.85)contrast(1.1)sepia(.12)}[data-grade=evening] .photo-leaf>*{filter:brightness(.55)sepia(.45)saturate(1.2)}[data-preset=golden] .photo-leaf>*{filter:brightness(.9)sepia(.16)}[data-grade=reading] .photo-image,[data-grade=reading] .photo-spine{filter:brightness(1.12)contrast(.94)saturate(.92)}.photo-dusk,.photo-lamplight{pointer-events:none;opacity:0;transition:opacity 1.4s;position:absolute}.photo-dusk{mix-blend-mode:color;background:linear-gradient(#46468cbf,#78506e8c 70%,#3c283200)}[data-grade=evening] .photo-dusk{opacity:1}.photo-lamplight{mix-blend-mode:screen;background:radial-gradient(circle,#ffbe6ebf,#ffa05040 35%,#0000 65%);width:34vmax;height:34vmax;transform:translate(-50%,-50%)}.photo-lamplight--pool{background:radial-gradient(#ffaa5a8c,#ff96462e 40%,#0000 70%);width:60vmax;height:30vmax}[data-grade=evening] .photo-lamplight{opacity:1}[data-grade=reading] .photo-lamplight{opacity:.45}.photo-grade{pointer-events:none;background:radial-gradient(at 50% 55%,#0000 55%,#140c0773 100%);transition:opacity 1.4s;position:absolute;inset:0}.photo-grade:after{content:"";opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");animation:.9s steps(4,end) infinite grain;position:absolute;inset:-50%}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}.photo-page{transform-origin:0 0;transform-style:preserve-3d;position:absolute;top:0;left:0}.photo-print{color:#2a1c13;text-align:center;mix-blend-mode:multiply;opacity:.9;flex-direction:column;align-items:center;padding:92px 70px 60px;display:flex;position:absolute;inset:0}.photo-print p{margin:0}.photo-print__kicker{font-family:var(--font-body);letter-spacing:.32em;text-transform:uppercase;color:#5c4838;font-size:22px}.photo-print__name{font-family:var(--font-display);font-size:84px;font-weight:600;line-height:1;margin-top:26px!important}.photo-print__fleuron{font-family:var(--font-display);color:#9a7640;font-size:36px;margin-top:28px!important}.photo-print__role{font-family:var(--font-body);font-size:34px;font-style:italic;margin-top:28px!important}.photo-print__year{font-family:var(--font-body);letter-spacing:.3em;color:#5c4838;font-size:19px;margin-top:auto!important}.photo-print__heading{font-family:var(--font-display);letter-spacing:.32em;text-transform:uppercase;text-indent:.32em;border-bottom:2px solid #b08d57;padding-bottom:18px;font-size:42px;font-weight:600;margin-bottom:44px!important}.photo-print--contents ol{width:100%;margin:0;padding:0;list-style:none}.photo-print--contents a{color:inherit;border-radius:3px;align-items:baseline;gap:16px;margin-inline:-18px;padding:14px 18px;text-decoration:none;transition:background-color .4s,color .3s;display:flex;position:relative}.photo-print--contents a.is-active,.photo-print--contents a:focus-visible{color:#6f2b2a;background:#d9a24c52;outline:none}.photo-print__num{font-family:var(--font-body);color:#8a6f55;font-size:26px}.photo-print__label{font-family:var(--font-display);font-size:50px;font-weight:600;line-height:1.1;position:relative}.photo-print__label:after{content:"";transform-origin:0;background:currentColor;border-radius:2px;height:3px;transition:transform .45s cubic-bezier(.22,1,.36,1);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.photo-print--contents a.is-active .photo-print__label,.photo-print--contents a:focus-visible .photo-print__label{font-style:italic}.photo-print--contents a.is-active .photo-print__label:after,.photo-print--contents a:focus-visible .photo-print__label:after{transform:scaleX(1)}.photo-print__dots{border-bottom:3px dotted #5c48388c;flex:1;transform:translateY(-8px)}.photo-print__pg{font-family:var(--font-body);font-size:26px}.photo-print__foot{font-family:var(--font-body);color:#8a6f55;font-size:22px;font-style:italic;margin-top:auto!important}.photo-print--opening{justify-content:center;gap:18px}.photo-print__chapter{font-family:var(--font-display);font-size:104px;font-style:italic;font-weight:600;line-height:1}.photo-leaf{transform-origin:0;transform-style:preserve-3d;animation:.95s cubic-bezier(.45,0,.25,1) forwards leaf-turn;position:absolute;inset:0}.photo-leaf__front,.photo-leaf__back{backface-visibility:hidden;background:linear-gradient(90deg,#6e4b2347,#0000 18%),#ece0c4;position:absolute;inset:0}.photo-leaf__back{background:linear-gradient(270deg,#6e4b234d,#0000 20%),#e9dcbf;transform:rotateY(180deg)}@keyframes leaf-turn{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}.photo-hotspot{cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0;position:absolute}.photo-hotspot:disabled{cursor:default}.photo-hotspot:focus-visible{outline:2px solid var(--color-brass-light);outline-offset:4px}.photo-hotspot:before{content:"";mix-blend-mode:screen;opacity:0;pointer-events:none;background:radial-gradient(#ffc47859,#0000 65%);transition:opacity .5s;position:absolute;inset:-20%}.photo-hotspot.is-active:before{opacity:1}.photo-hotspot__dot{background:#f0c070;border-radius:50%;width:9px;height:9px;transition:opacity .3s;animation:2.4s ease-out infinite hint-pulse;position:absolute;top:22%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px 2px #f0b45abf}.photo-hotspot.is-active .photo-hotspot__dot,[data-leaving] .photo-hotspot__dot{opacity:0}.photo-hotspot__label{color:var(--color-ivory);font-family:var(--font-body);white-space:nowrap;opacity:0;backdrop-filter:blur(4px);pointer-events:none;background:#1f140dd1;border:1px solid #dcc28cb3;border-radius:999px;padding:5px 12px 6px;font-size:15px;font-style:italic;transition:opacity .3s,transform .3s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,4px)}.photo-hotspot.is-active .photo-hotspot__label{opacity:1;transform:translate(-50%)}.photo-spine{transform-origin:50% 100%;opacity:0;background-repeat:no-repeat;transition:transform .55s cubic-bezier(.22,1,.36,1),filter .55s,opacity .2s;position:absolute;inset:0}.photo-hotspot.is-active .photo-spine,[data-leaving=book] .photo-hotspot:disabled .photo-spine{opacity:1;filter:brightness(1.18)drop-shadow(0 10px 12px #0009);transform:perspective(500px)translateY(-3%)rotateX(9deg)scale(1.04)}.photo-hint{pointer-events:none;position:absolute;transform:translate(-50%,-100%)}.photo-titlepage{z-index:55;background:var(--paper-grain), radial-gradient(ellipse at 50% 40%, #f6eedb, #e6d6b6 80%);color:var(--color-ink);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:18px;animation:.8s cubic-bezier(.22,1,.36,1) .95s both titlepage-in;display:flex;position:absolute;inset:0}@keyframes titlepage-in{0%{opacity:0;transform:scale(1.06)}}.photo-titlepage__kicker{letter-spacing:.32em;text-transform:uppercase;color:var(--color-ink-soft);font-size:16px}.photo-titlepage__title{font-family:var(--font-display);font-size:clamp(52px,8vw,104px);font-weight:600;line-height:1}.photo-titlepage__subtitle{font-size:var(--fs-lg);color:var(--color-ink-soft);font-style:italic}.photo-titlepage__fleuron{font-family:var(--font-display);color:var(--color-brass);font-size:34px}.photo-calibrate{z-index:20;cursor:crosshair;position:absolute;inset:0}.photo-calibrate__box{pointer-events:none;outline:1px dashed #7df;position:absolute}.photo-calibrate__read{color:#7df;background:#000c;padding:6px 10px;font:14px ui-monospace,monospace;position:fixed;bottom:16px;left:16px}[data-leaving] .photo-hint{opacity:0!important}[data-grade=evening] .photo-hotspot.is-active .photo-spine{filter:brightness(.6)saturate(.85)drop-shadow(0 10px 12px #0009)}[data-grade=reading] .photo-hotspot.is-active .photo-spine{filter:brightness(1.3)drop-shadow(0 10px 12px #0009)}.photo-tag{z-index:1;color:#2a1c13;text-align:center;white-space:nowrap;cursor:pointer;background:linear-gradient(#e8cf94,#b08d57);border:1px solid #8a6a3c;border-radius:2px;flex-direction:column;align-items:center;gap:2px;padding:7px 20px 8px;text-decoration:none;transition:box-shadow .4s,filter .4s;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 2px 6px #0000008c,inset 0 1px #fff5d799}.photo-tag:focus-visible{outline-offset:3px;outline:2px solid #f0c070}.photo-tag:hover,.photo-tag:focus-visible,.photo-tag.is-lit{filter:brightness(1.12);box-shadow:0 2px 6px #0000008c,0 0 18px #ffc8788c,inset 0 1px #fff5d799}.photo-tag__arrow{color:#f0c070;text-shadow:0 0 8px #f0b45acc;font-size:16px;line-height:1;animation:2.4s ease-in-out infinite tag-nudge;position:absolute;top:-22px;left:50%;transform:translate(-50%)}@keyframes tag-nudge{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-4px)}}.photo-tag__title{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;font-size:16px;font-weight:700;line-height:1.2}.photo-tag__hint{font-family:var(--font-body);color:#3a2818;font-size:15px;font-weight:500;line-height:1.25}[data-leaving] .photo-tag{opacity:0;transition:opacity .3s}.photo-hotspot[aria-label*=Case\ study]:after{content:"";mix-blend-mode:screen;pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffdca073 50%,#0000 70%) 0 0/300% 100%;animation:6s ease-in-out infinite spine-shimmer;position:absolute;inset:0}.photo-hotspot[aria-label*=Case\ study]+.photo-hotspot[aria-label*=Case\ study]:after{animation-delay:.35s}@keyframes spine-shimmer{0%,60%{background-position:100% 0}85%,to{background-position:0 0}}.photo-hotspot.is-active:after,[data-leaving] .photo-hotspot:after{opacity:0;animation:none}
