:root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;background:#161410;color:#f4eddd;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100svh;position:relative}button,a,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit}.workshop{position:fixed;inset:0 0 0 30%;z-index:-3;overflow:hidden}.workshop img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.8s ease,object-position 1.8s ease;transform:scale(1.025)}.shade{position:fixed;inset:0;z-index:-2;background:linear-gradient(90deg,#161410 15%,#161410f5 32%,#1614108f 48%,#16141010 70%),linear-gradient(0deg,#161410c9,transparent 38%)}body[data-scene=gaze] .workshop img,body[data-scene=revelation] .workshop img{transform:scale(1.14);object-position:70% 40%}header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:30px 4vw;font:10px system-ui;letter-spacing:.17em;color:#d6c8a9}header a{text-decoration:none}.brand{font-size:12px;font-weight:650}.brand span{font-weight:400;border-left:1px solid #938166;margin-left:13px;padding-left:13px}.edition{color:#dfd1b8}#chapter{color:#b8aa90}main{min-height:calc(100svh - 150px);display:flex;flex-direction:column;justify-content:center;width:min(600px,47vw);padding:35px 0 40px 5vw}#scene{animation:arrive .5s ease}.eyebrow{font:10px system-ui;text-transform:uppercase;letter-spacing:.19em;color:#d1b57e;margin:0 0 22px}h1{font-size:clamp(42px,4.4vw,72px);font-weight:400;line-height:1.06;letter-spacing:-.04em;margin:0 0 26px;white-space:pre-line}h2{font-weight:400;font-size:clamp(26px,2.35vw,36px);line-height:1.25;letter-spacing:-.015em;white-space:pre-line;margin:0 0 26px}.narration{color:#b9af9e;font-size:15px;line-height:1.65;font-style:italic;margin:0 0 23px;max-width:440px}.description{font:16px/1.7 system-ui;color:#c7bdac;max-width:420px;margin-bottom:28px}.choices{display:flex;flex-direction:column;gap:10px;margin:24px 0}.choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#1c1a15ba;border:1px solid #a18d6447;color:#eee4cf;padding:16px 19px;border-radius:3px;cursor:pointer;transition:background .15s,border-color .15s}.choice:hover{background:#3a3026dd;border-color:#c5a770}.choice strong{font:20px Georgia,serif;font-weight:400}.choice small{font:12px/1.5 system-ui;color:#b9af9e;margin-top:5px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:#dcc18b;border:1px solid #dcc18b;border-radius:3px;color:#201a12;padding:17px 23px;font:14px system-ui;text-decoration:none;cursor:pointer;min-height:52px}.primary:hover{background:#efd59f}.primary span{font-size:21px}.secondary{background:transparent;color:#dec595;border:none;padding:13px 0;font:13px system-ui;cursor:pointer;text-decoration:underline;text-underline-offset:5px}.meta{font:11px system-ui;color:#a89d8a;margin-top:16px}.reply{font-size:clamp(25px,2.4vw,37px);line-height:1.38;white-space:pre-wrap;margin:20px 0 30px}.visitor{color:#ae9d80;font:13px/1.55 system-ui;border-left:1px solid #b79a64;padding-left:15px;margin:0 0 25px;max-width:420px}label{display:block;font:12px system-ui;color:#cdbb9a;margin-bottom:10px}textarea{display:block;width:100%;min-height:100px;resize:vertical;background:#151410dc;color:#f5e7d0;border:1px solid #9b886056;border-radius:3px;padding:14px;font:15px/1.6 system-ui}textarea::placeholder{color:#8b8171}.actions{display:flex;align-items:center;gap:20px;margin-top:12px;flex-wrap:wrap}.suggestions{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.suggestions button{background:#181712ad;border:1px solid #7c725a55;color:#bbad95;border-radius:20px;padding:8px 11px;font:11px system-ui;cursor:pointer}.suggestions button:hover{color:#f8e6c8;border-color:#c1a472}.ending{color:#e0c38c;font-style:italic;font-size:23px;line-height:1.45;margin:24px 0}.painting-detail{width:100%;height:210px;object-fit:cover;object-position:72% 33%;border:1px solid #bca57342;margin-bottom:25px}#status,#error{font:13px/1.5 system-ui;margin:8px 0}#status{color:#ddc391;min-height:20px}#error{color:#ffd0ac}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #ead298;outline-offset:4px}footer{padding:16px 4vw 22px;display:flex;justify-content:space-between;gap:20px;font:10px/1.5 system-ui;color:#908572}footer a{text-decoration:none;color:#baab8e}body[data-scene=end] main{width:min(620px,49vw)}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){.workshop{inset:0 0 auto;height:46svh;position:absolute}.workshop img{object-position:50% 25%}.shade{position:absolute;background:linear-gradient(0deg,#161410 0%,#1614100d 55%);height:47svh;bottom:auto}header{padding:20px 22px;position:relative;background:linear-gradient(#0008,transparent)}.edition{display:none}#chapter{font-size:8px;color:#e9d6ae}main,body[data-scene=end] main{padding:0 24px 20px;width:100%;min-height:0;margin-top:calc(38svh - 35px)}h1{font-size:45px;max-width:460px}h2{font-size:29px}.narration{font-size:14px}.eyebrow{margin-bottom:15px}.description{font-size:14px}.reply{font-size:29px}.choices{margin:20px 0}.choice{padding:14px 16px}.choice strong{font-size:19px}footer{padding:22px 24px;flex-direction:column;gap:9px}#status{min-height:0}.primary{padding:15px 20px}.painting-detail{height:190px}}
.institution-title{font:600 12px/1.4 system-ui;text-transform:uppercase;letter-spacing:.14em;color:#d1b57e;margin:28px 0 8px}.institution-value{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #a18d6447;margin:0 0 24px}.institution-value div{display:grid;grid-template-columns:22px 1fr;column-gap:8px;padding:13px 12px 13px 0;border-bottom:1px solid #a18d6447}.institution-value div:nth-child(odd){margin-right:14px}.institution-value span{grid-row:1/3;color:#dcc18b;font:700 13px system-ui}.institution-value strong{font:600 13px/1.35 system-ui}.institution-value small{font:11px/1.45 system-ui;color:#aa9f8c;margin-top:3px}body[data-scene=impact] .workshop img,body[data-scene=end] .workshop img{transform:scale(1.08);filter:saturate(.72)}
@media(max-width:760px){body[data-scene=end] main{margin-top:22svh}.institution-value{grid-template-columns:1fr}.institution-value div:nth-child(odd){margin-right:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.workshop img{transform:none!important}}

/* Keep video and its extracted last frame in the exact same viewport geometry. */
.workshop{inset:0;position:fixed;height:100svh}
.workshop img,.workshop video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform:none;transition:none}
.workshop video[hidden]{display:none}
.workshop video{opacity:0}
.workshop video.is-playing{opacity:1;animation:video-reveal .9s ease-out both}
@keyframes video-reveal{from{opacity:0}to{opacity:1}}
.shade{transition:opacity .9s ease-out}
body[data-scene=video] .shade{opacity:0}
body[data-scene=video] header,body[data-scene=video] footer{visibility:hidden}
body[data-scene=video] main{justify-content:flex-end}
body[data-scene=video] #scene{position:fixed;bottom:24px;left:5vw;animation:none}
body[data-scene=video] .secondary{background:#161410aa;padding:14px 20px;border-radius:3px;color:#f4eddd}
body[data-scene=threshold] .shade{background:linear-gradient(90deg,#161410d9,transparent 80%)}
body[data-scene=gaze] .workshop img,body[data-scene=revelation] .workshop img{transform:none;object-position:50% 30%}
@media(max-width:760px){
 .workshop{height:46svh;position:fixed}
 .workshop img,.workshop video{object-position:50% 30%}
 body[data-scene=video] .workshop,body[data-scene=threshold] .workshop{height:46svh}
 body[data-scene=threshold] .shade{background:linear-gradient(0deg,#161410,transparent 60%)}
 body[data-scene=video] #scene{position:static;margin-top:20px}
}

header .brand{display:flex;align-items:center;flex-shrink:0}
header .brand .logo-window{display:block;position:relative;width:112px;height:100px;overflow:hidden;background:transparent;border:0;padding:0;margin:0}
.logo-window img{position:absolute;left:-61px;top:-14px;width:234px;height:132px;max-width:none;filter:url(#logo-cutout)}
@media(max-width:760px){header{gap:12px}header .brand>span:last-child{margin-left:10px;padding-left:10px}#chapter{text-align:right}}

/* Compact dialogue typography; preserve the cinematic opening title. */
body[data-scene=conversation] h2,
body[data-scene=threshold] h2{font-size:clamp(20px,1.5vw,22px);line-height:1.45;margin-bottom:16px}
.reply{font-size:clamp(18px,1.4vw,20px);line-height:1.6;margin:16px 0 20px}
.conversation-invitation{font:16px/1.55 system-ui;color:#c7bdac;margin:0 0 18px}
body[data-scene=conversation] .narration{margin-bottom:16px}
@media(max-width:760px){
 body[data-scene=conversation] h2,body[data-scene=threshold] h2{font-size:18px}
 .reply{font-size:17px}
}

/* Leonardo: a quiet visitor view, explicit pacing and a close look at the smile. */
header{flex-wrap:wrap}.voice-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font:12px system-ui;letter-spacing:0}.voice-controls button{background:#161410bb;border:1px solid #a18d6480;color:#f4eddd;padding:10px 12px;border-radius:4px;cursor:pointer}.voice-controls [hidden]{display:none}#sound-status{max-width:190px;color:#d6c8a9}.conversation-actions{display:flex;gap:12px;flex-wrap:wrap}.conversation-actions .primary{flex:1;min-width:190px;font-size:13px;padding:14px}.painting-focus{position:relative;width:min(100%,420px);height:210px;overflow:hidden;margin:0 0 24px;border:1px solid #bca57370;border-radius:4px;background:#302719}.painting-focus img{position:absolute;width:500%;max-width:none;height:auto;left:-300%;top:0;transform:translateY(-19%);}body[data-scene=gaze] main,body[data-scene=revelation] main{padding-top:12px}.voice-controls button:focus-visible{outline:2px solid #ead298;outline-offset:4px}@media(max-width:760px){header .voice-controls{order:3;width:100%;gap:8px}#sound-status{max-width:none;font-size:11px}.painting-focus{height:180px}.conversation-actions{flex-direction:column}.conversation-actions .primary{width:100%}main{margin-top:max(30px,calc(38svh - 100px))}}
