:root{font-family:Arial,Helvetica,sans-serif;color:#20372c;--paper:#f5f4ec;--green:#203d30}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#dce4df}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #bf8b43;outline-offset:4px}button:disabled{opacity:.5}button[hidden],[hidden]{display:none!important}#viewer,canvas{position:fixed;inset:0;width:100%;height:100%;touch-action:none;display:block}header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:26px 32px;pointer-events:none;background:linear-gradient(#f5f4ecdd,transparent)}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none;font-size:18px;letter-spacing:3px;font-weight:600}.monogram{font-family:Georgia,serif;font-size:32px;font-weight:400;letter-spacing:-2px;border:1px solid #53665780;width:48px;height:48px;display:grid;place-items:center}.brand small{display:block;font-size:8px;letter-spacing:2.1px;margin-top:7px}.edition{font-size:9px;letter-spacing:2px}.edition span{margin:0 12px}#help{width:36px;height:36px;border-radius:50%;background:#f5f4eceb;border:1px solid #89978c;color:var(--green);font-size:17px}#loading,#welcome{position:fixed;inset:0;display:flex;align-items:center;padding:8vw;pointer-events:none}#loading{background:var(--paper);z-index:10;justify-content:center;text-align:center}.loader-card{width:400px;max-width:90vw;pointer-events:auto}.eyebrow{font-size:9px;letter-spacing:2.4px;font-weight:600}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,5vw,68px);line-height:1.04;font-weight:400;letter-spacing:-2px;margin:25px 0}p{font-size:14px;line-height:1.7}.subtle,.small{font-size:11px;line-height:1.7;color:#617065}.track{height:2px;background:#d9dfd7;margin:28px 0}#progress{height:100%;width:3%;background:var(--green);transition:width .3s}#welcome{background:linear-gradient(90deg,#f5f4ecf5 0%,#f5f4ecb0 27%,transparent 70%)}.welcome-card{pointer-events:auto}.welcome-card p{margin-bottom:28px}.primary{background:var(--green);color:var(--paper);padding:17px 23px;min-width:220px;display:flex;justify-content:space-between;gap:30px;border-radius:3px;font-size:13px}.primary:hover{background:#365c45}.text-button{display:block;background:none;color:var(--green);padding:18px 0;border-bottom:1px solid #65786970;font-size:12px;margin-bottom:18px}#toolbar{position:fixed;bottom:58px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:#f5f4ecf5;padding:7px;border:1px solid #ffffff80;box-shadow:0 5px 30px #1c2c241a;border-radius:8px;white-space:nowrap}.modes{display:flex;gap:2px}#toolbar button{padding:12px 16px;color:#365443;background:none;border-radius:4px;font-size:12px}#toolbar button.active{background:var(--green);color:white}#toolbar button:hover:not(.active){background:#dfe6dc}.divider{height:20px;width:1px;background:#d0d9cc;margin:0 5px}#hint{position:fixed;bottom:120px;left:50%;transform:translateX(-50%);font-size:11px;background:#f5f4ecd9;padding:9px 16px;border-radius:30px;text-align:center;max-width:90vw;width:max-content;pointer-events:none}.footer{position:fixed;bottom:0;left:0;right:0;padding:19px 32px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;pointer-events:none;background:linear-gradient(transparent,#f5f4ecaa)}.footer b{margin:0 12px;font-weight:400}#crosshair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff9;pointer-events:none;font-size:17px;text-shadow:0 1px 3px #0008}#touchpad{position:fixed;left:20px;bottom:155px;text-align:center;user-select:none}#touchpad button{height:46px;width:46px;background:#f5f4ecdf;color:var(--green);margin:2px;border-radius:8px;font-size:23px;touch-action:none}#touchpad button:active{background:var(--green);color:white}dialog{border:0;border-radius:10px;padding:40px;max-width:510px;width:calc(100vw - 32px);background:var(--paper);color:var(--green);max-height:85vh;overflow:auto;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#17302566;backdrop-filter:blur(5px)}h2{font-family:Georgia,serif;font-size:32px;letter-spacing:-1px;font-weight:400;margin:20px 0}dt{font-size:12px;font-weight:bold;margin-top:18px}dd{margin:6px 0 0;font-size:12px;line-height:1.7;color:#536657}.close{position:absolute;right:16px;top:12px;background:none;color:inherit;font-size:28px}#retry{padding:12px 20px;background:var(--green);color:white;border-radius:4px}@media(max-width:650px){header{padding:18px}.edition{display:none}.brand{font-size:15px}.monogram{width:40px;height:40px;font-size:28px}#welcome{padding:25px;align-items:center;background:linear-gradient(90deg,#f5f4ecee, #f5f4ec88 60%,transparent)}h1{font-size:48px}#toolbar{bottom:54px;gap:2px}#toolbar button{padding:12px}#fullscreen span,#pass span{display:none}.footer{padding:17px 18px;font-size:7px}#modeLabel{display:none}#hint{bottom:114px;font-size:10px;max-width:90vw}dialog{padding:30px}}

.brand-logo{width:108px;height:auto;display:block;margin-right:6px}.footer-brand{display:flex;align-items:center}.footer-brand img{width:58px;height:auto}.panel-logo{display:block;width:108px;height:auto;margin:0 0 28px}.loader-card .panel-logo{margin:0 auto 30px}@media(max-width:650px){.brand-logo{width:84px}.brand{gap:10px;font-size:13px}.brand small{font-size:7px;letter-spacing:1.4px}.footer-brand img{width:48px}}

@font-face{font-family:"DOON Caslon";src:local("Adobe Caslon Pro"),local("ACaslonPro-Regular"),url("assets/libre-caslon-text.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
#welcome{color:#000;font-family:"Avenir Next",Helvetica,Arial,sans-serif;overflow-y:auto}.welcome-card{max-width:620px}.welcome-card h1{font-family:"DOON Caslon",Georgia,serif;font-size:clamp(32px,4.2vw,58px);line-height:1.12;letter-spacing:-1px}.welcome-card .welcome-message{max-width:440px;font-size:16px}.welcome-card .small,.welcome-card .text-button{color:#000}.welcome-card .primary{background:var(--paper);color:#000;border:1px solid #000}.welcome-card .primary:hover{background:#e7e7df}@media(max-height:620px){#welcome{align-items:flex-start;padding-top:100px;padding-bottom:60px}.welcome-card h1{font-size:32px;margin:16px 0}.welcome-card p{margin-bottom:16px}}
