:root{--ink:#172126;--paper:#e5ded0;--quiet:#bbc4c2;--copper:#c3a779;--frame:#344144;--serif:"Instrument Serif",Georgia,serif;--body:"Newsreader",Georgia,serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font:19px/1.5 var(--body);background-image:radial-gradient(ellipse at 65% 32%,#304044 0,transparent 58%)}
button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--copper);outline-offset:7px}button:hover,a:hover{color:#fff6e3}button:disabled{cursor:wait}
.masthead{padding:28px 4.7vw;display:flex;align-items:center;justify-content:space-between;font-size:17px}.masthead>span{font-style:italic}.masthead button{font-size:15px;border-bottom:1px solid #89929070;padding:0 0 3px}
main{max-width:1680px;margin:auto;padding:0 4.7vw;display:grid;grid-template-columns:minmax(190px,.8fr) minmax(0,2.35fr);gap:30px 5vw;align-items:center}
.introduction{align-self:start;padding-top:40px}h1{font-family:var(--serif);font-size:clamp(68px,8.2vw,132px);font-weight:400;line-height:.83;letter-spacing:-.035em;margin:0 0 42px}.invitation>p:first-child{font-size:clamp(22px,2.2vw,34px);line-height:1.2}.instruction{font-size:18px;line-height:1.5;color:var(--quiet);max-width:17ch;margin-top:38px}
.work{min-width:0;margin:0;padding-top:12px}.painting{position:relative;aspect-ratio:1.25;max-height:70vh;min-height:200px;width:100%;overflow:hidden;box-shadow:0 22px 60px #0006,0 0 0 1px #81908e50;background:#111a1e;touch-action:pan-y;cursor:ew-resize}
.painting img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.painting #samaria{position:absolute;inset:0;clip-path:inset(0 0 0 100%)}
#seam{position:absolute;left:100%;top:0;bottom:0;width:1px;background:#f9e6b0b0;pointer-events:none;opacity:0;transition:opacity .3s}#seam span{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:28px;height:48px;border:1px solid #f4e5c3;border-radius:50%;background:#14202a75;backdrop-filter:blur(3px)}#seam span:after{content:"↔";position:absolute;inset:0;display:grid;place-items:center;font:17px Georgia;color:#fff1cf}
.paint-label{position:absolute;top:14px;padding:4px 10px;background:#172126c7;color:#f0e5cd;font-size:15px;pointer-events:none}.first{left:14px}.second{right:14px;opacity:0}.painting[data-state="both"] .second,.painting[data-state="samaria"] .second{opacity:1}.painting[data-state="samaria"] .first{opacity:0}
figcaption{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:25px;align-items:start;padding-top:26px}.story{text-align:left;padding:0}.story:last-child{text-align:right}.story span{font-size:14px;color:var(--quiet)}.story strong{display:block;font:32px/1.2 var(--serif);font-weight:400;margin:3px 0 6px}.story small{display:block;font-size:15px;color:var(--quiet);line-height:1.3}.comparison{display:flex;flex-direction:column;align-items:center;padding-top:16px}.comparison button{font-size:14px;margin-top:6px;padding:6px;white-space:nowrap;color:var(--quiet)}
input[type="range"]{appearance:none;width:100%;height:30px;background:none;cursor:ew-resize;margin:0}input[type="range"]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,#cbba87,#889a9b)}input[type="range"]::-moz-range-track{height:2px;background:#adb0a3}input[type="range"]::-webkit-slider-thumb{appearance:none;width:15px;height:15px;margin-top:-6.5px;background:var(--paper);border:3px solid var(--ink);box-shadow:0 0 0 1px var(--copper);border-radius:50%}input[type="range"]::-moz-range-thumb{width:13px;height:13px;background:var(--paper);border:3px solid var(--ink);border-radius:50%}
.handover{grid-column:2;display:grid;grid-template-columns:1fr auto;gap:5px 25px;align-items:center;padding:20px 0 45px}.handover p{font-size:25px;margin:0}.seat{display:flex;align-items:center;gap:30px;text-decoration:none;font-size:22px;padding:12px 0;border-bottom:1px solid var(--copper)}.seat svg{width:38px;height:20px;fill:none;stroke:currentColor;stroke-width:1}.handover small{font-size:14px;color:var(--quiet)}footer{display:flex;justify-content:space-between;padding:15px 4.7vw 25px;font-size:13px;color:#a3b0b0}
dialog{border:1px solid #697875;padding:0;background:#202d30;color:var(--paper);width:min(820px,92vw);max-height:90dvh;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#050d10c9;backdrop-filter:blur(8px)}dialog #close{position:sticky;top:0;float:right;margin:18px 25px;padding:5px 10px;background:#202d30;z-index:1}dialog .paper{padding:45px clamp(25px,6vw,85px) 65px}dialog h2{font:64px/.95 var(--serif);font-weight:400;margin:15px 0 40px}dialog p{font-size:23px;line-height:1.55}dialog .sources{border-top:1px solid #697875;padding-top:20px;margin-top:40px}dialog .sources p{font-size:17px;line-height:1.6}dialog h3{font-weight:400;font-size:20px}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}#image-error{position:absolute;inset:30%;background:#172126;padding:20px}
@media(min-width:1700px){.painting{max-height:760px}}
@media(max-width:850px){.masthead{padding:22px 6vw}main{padding:0 6vw;display:block}.introduction{display:flex;align-items:flex-end;justify-content:space-between;padding:20px 0 30px;gap:25px}h1{font-size:80px;margin:0}.invitation{max-width:150px}.invitation>p:first-child{font-size:22px;margin:0}.instruction{font-size:15px;margin:14px 0 0}.painting{max-height:none}.work{padding:0}.handover{margin-top:20px;padding-bottom:35px}.handover p{font-size:23px}.handover small{grid-column:1/-1;margin-top:14px}.story strong{font-size:27px}figcaption{gap:12px}.story small{font-size:14px}footer{padding:10px 6vw 22px;display:block}footer span{display:block}dialog h2{font-size:52px}}
@media(max-width:430px){.masthead{font-size:15px}.masthead button{font-size:13px}.introduction{padding-top:15px}h1{font-size:68px}.invitation{max-width:115px}.invitation>p:first-child{font-size:20px}.instruction{font-size:14px}.story strong{font-size:25px}.story small{display:none}.comparison button{font-size:12px}.handover p{font-size:20px}.seat{font-size:19px;gap:16px}.handover{gap:5px 14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* The painting is the room's first surface. Its proportions govern the page. */
body{background:#101a1e;background-image:radial-gradient(ellipse at 50% 45%,#293332 0,transparent 70%)}
main{display:block;max-width:1360px;padding:0 5vw}.masthead{max-width:1360px;margin:auto;padding:24px 5vw;color:#b8b5a9}
.introduction{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:5px 0 25px;max-width:1100px;margin:auto}
h1{font-size:clamp(48px,5.2vw,78px);line-height:1;margin:0;letter-spacing:-.025em}.invitation{text-align:right;max-width:none}.invitation>p:first-child{font-size:22px;margin:0}.instruction{font-size:16px;max-width:none;margin:6px 0 0;color:#b3b9b5}
.work{max-width:1100px;margin:auto;padding:0}.painting{aspect-ratio:1.25;max-height:none;max-width:min(1100px,88vh);margin:auto;background:#0d1518;box-shadow:0 30px 100px #0008,0 0 0 1px #a59d7950}
figcaption{max-width:min(1100px,88vh);margin:auto;padding-top:20px}.story strong{font-size:29px}.story small{font-size:14px}.handover{max-width:1100px;margin:25px auto 0;padding:0 0 35px;border-top:1px solid #afa08340;padding-top:25px}.handover p{font-size:25px}.handover small{font-size:15px}.seat{font-size:24px}footer{max-width:1360px;margin:auto;border-top:1px solid #afa08320}
@media(max-width:650px){.masthead{padding:20px 6vw}.introduction{display:block;padding:12px 0 25px}h1{font-size:54px}.invitation{text-align:left;margin-top:18px}.invitation>p:first-child{font-size:20px}.instruction{font-size:15px;margin-top:4px}.painting{max-width:none;min-height:0}.handover{display:block;margin-top:25px}.handover p{font-size:22px}.seat{width:fit-content;font-size:23px;gap:24px;margin:8px 0 18px}.handover small{display:block;line-height:1.5}.comparison button{font-size:12px}.story strong{font-size:25px}.story small{display:none}}
