*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080f12;color:#ecd4b2;font-family:Georgia,'Times New Roman',serif}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid #f0d3a4;outline-offset:5px}#experience,.screen{position:absolute;inset:0}.screen{display:grid;place-items:center;animation:appear .8s ease}.screen[hidden]{display:none}.art{display:block;width:100%;height:100%;object-fit:contain}.plate{position:relative;width:min(100vw,133.333vh);height:min(100vh,75vw)}#attraction>.art{position:absolute;inset:0}#start{position:absolute;inset:0;width:100%;border:0;background:transparent}.hand-capture{position:absolute;left:31%;top:23%;width:34%;height:65%;overflow:hidden;opacity:0;transition:opacity 1.6s}.hand-capture.visible{opacity:1}#hand{width:100%;height:100%}.sweep{position:absolute;left:0;right:0;top:0;height:1px;background:#c5a07170;animation:sweep 3s ease-in-out 1}.scan-status{position:absolute;left:22%;bottom:9%;width:48%;text-align:center;background:#081013e8;padding:.4em}.scan-status p{margin:.2em;font-size:clamp(12px,1.6vw,25px);letter-spacing:.12em}.scan-status span{font:10px/1.5 monospace;letter-spacing:.14em}#line-label{min-height:1.3em;font-style:italic;letter-spacing:0}.line{stroke-dasharray:1;stroke-dashoffset:1}.line.drawn{animation:draw 2s ease forwards}.reading-copy{position:absolute;left:29%;top:34%;width:46%;height:48%;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:clamp(8px,.85vw,15px);letter-spacing:.2em;text-align:center;margin-bottom:1.5em}#text{font-size:clamp(12px,1.45vw,26px);line-height:1.42;white-space:pre-line;min-height:12.5em}#text.writing:after{content:'│';animation:blink 1s steps(2) infinite;color:#c9a879}.disclaimer{font-size:clamp(8px,.7vw,13px);line-height:1.5;text-align:center;opacity:.7;margin:1.5em 0 .5em}#actions{text-align:center;min-height:36px}#actions[hidden]{display:none}#actions button{background:transparent;border:0;border-bottom:1px solid #987648;padding:.6em 1em;margin:0 .5em;font-size:clamp(10px,1vw,18px);text-transform:uppercase;letter-spacing:.12em}.tools{position:absolute;bottom:8px;right:12px;display:flex;gap:12px}.tools button{border:1px solid #94795a55;background:#080f12b0;width:40px;height:40px;font-size:24px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes sweep{to{top:100%}}@keyframes blink{50%{opacity:0}}@media(max-aspect-ratio:3/4){.plate{width:100vw;height:100vh}.plate>.art{object-fit:cover;object-position:center}#analysis .plate>.art{opacity:.38}.hand-capture{left:15%;top:20%;width:70%;height:60%}.scan-status{left:8%;width:84%;bottom:15%}.reading-copy{left:10%;top:22%;width:80%;height:65%;padding:20px;background:#080f12e8}#text{font-size:clamp(15px,2.1vh,21px);min-height:0}.eyebrow{font-size:10px}.disclaimer{font-size:10px}#actions button{font-size:12px}#attraction .art{object-fit:contain}.scan-status p{font-size:17px}}@media(prefers-reduced-motion:reduce){.screen{animation:none}.sweep{display:none}.hand-capture{transition:none}.line.drawn{animation-duration:.01s}#text.writing:after{animation:none}}

#experience{overflow:hidden}.reading-copy{top:33%;width:48%;height:55%}#text{font-size:clamp(12px,1.05vw,21px);line-height:1.4;min-height:0;flex:none}.disclaimer{flex:none}#actions{flex:none}@media(max-aspect-ratio:3/4){.reading-copy{left:8%;top:22%;width:84%;height:68%;padding:14px}#text{font-size:clamp(11px,1.8vh,16px);line-height:1.35}.eyebrow{margin-bottom:1em}.disclaimer{margin-top:1em}}

.camera-panel{width:min(94vw,1000px);height:94vh;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.camera-panel h1{font-weight:normal;font-size:clamp(24px,3vw,42px);margin:0}.camera-panel p{margin:0;max-width:700px}.camera-preview{position:relative;flex:1;min-height:140px;width:100%;overflow:hidden;background:#03080b;border:1px solid #967451}.camera-preview video{width:100%;height:100%;object-fit:contain}.palm-guide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:100%;aspect-ratio:550/800;border:2px dashed #e7c792;pointer-events:none}.palm-guide span{position:absolute;bottom:8px;left:0;right:0;font-size:10px;letter-spacing:.1em;background:#080f12b0;padding:8px}.camera-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.camera-actions button,.camera-panel select{border:1px solid #987648;background:#111b20;color:#ecd4b2;padding:12px;font:inherit}.camera-actions button:disabled{opacity:.35;cursor:wait}#camera-error{color:#f1bf9c}.camera-note{font-size:12px;line-height:1.5;opacity:.8}@media(max-width:600px){.camera-panel{height:90vh;gap:8px}.camera-actions button{font-size:13px;padding:10px}.camera-panel #camera-status{font-size:13px}}.palm-outline{width:100%;height:100%;fill:none;stroke:#f4dab0;stroke-width:3;filter:drop-shadow(0 1px 2px #000)}.palm-outline path:first-child{fill:#e6c29112}.palm-outline ellipse{stroke-dasharray:8 10;stroke-width:1.5}.palm-outline .guide-axis{stroke-width:1;opacity:.6}.palm-outline.flipped{transform:scaleX(-1)}#camera-countdown{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(48px,8vw,110px);color:#fff2d6;text-shadow:0 2px 10px #000;background:#080f1290;min-width:1.5em;border-radius:50%;padding:10px}#camera-countdown[hidden]{display:none}.camera-actions #camera-capture{font-weight:bold;background:#d1b080;color:#0b1517;min-width:210px;min-height:50px}.camera-actions #camera-hand{font-size:12px}.camera-panel label{font-size:14px}
.camera-preview video{transform:scaleX(-1)}
.review-panel{width:min(96vw,1200px);height:94vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:24px}.review-photo-wrap{min-height:0;display:flex;align-items:center;justify-content:center;background:#050b0e}#review-photo{width:100%;height:100%;touch-action:none;cursor:crosshair}.review-controls{display:flex;flex-direction:column;justify-content:center;gap:12px;font-size:16px;min-height:0}.review-controls h1{font-size:32px;margin:0}.review-controls p{line-height:1.5;margin:0}.review-controls select,.review-controls button{padding:12px;border:1px solid #ac8860;background:#0b151a;color:#ead2ac;font:inherit;width:100%}.review-controls label{display:grid;gap:6px}.review-controls button:disabled{opacity:.4}.review-controls small{font-size:12px;line-height:1.5}.review-controls #review-confirm{background:#d4b285;color:#111b1e}#review-status{min-height:3em;color:#ffe0aa}@media(max-width:700px){.review-panel{height:95vh;gap:10px;grid-template-columns:1fr;grid-template-rows:minmax(180px,1fr) auto}.review-controls{gap:5px;font-size:12px}.review-controls h1{font-size:20px}.review-controls>p:first-of-type,.review-controls small{display:none}.review-controls label{display:flex;align-items:center;gap:8px}.review-controls select,.review-controls button{padding:8px}.review-controls #review-status{min-height:2.5em}}
