:root{--paper:#f6f2e9;--ink:#263d31;--muted:#73796e;--line:#dcded1;--accent:#a65f3f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);font-family:Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:15px}
*{box-sizing:border-box}body{margin:0;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(42px,6vw,65px);line-height:1.07;letter-spacing:-1.8px;margin-bottom:24px}h2{font-size:28px;margin:0}h3{font-size:21px;margin:0}p{line-height:1.7}.app-header{height:calc(62px + var(--safe-top));padding:var(--safe-top) 24px 0;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);flex-shrink:0}.brand{font:24px Georgia,serif;white-space:nowrap}.brand span{color:var(--accent);padding:0 4px}.app-title{font-size:11px;letter-spacing:.5px}.app-header>.icon-button{margin-left:auto}.icon-button{border:0;background:transparent;min-width:44px;height:44px;padding:5px;font-size:24px;display:inline-grid;place-items:center;border-radius:50%;flex-shrink:0}.icon-button:hover:not(:disabled){background:#263d310a}.primary,.secondary{border:1px solid var(--ink);padding:15px 25px;min-height:50px;border-radius:8px;background:var(--ink);color:var(--paper);font-size:14px}.primary:hover{background:#3c5744}.secondary{background:transparent;color:var(--ink)}.text-button{border:0;background:transparent;min-height:44px;padding:10px;font-size:13px}.eyebrow{display:block;color:var(--accent);font-size:10px;font-weight:600;letter-spacing:2px;margin-bottom:20px}.signature{font:italic 23px Georgia,serif;color:var(--accent);margin:24px 0 0}#app{flex:1;min-height:0;overflow:auto;outline:none;overscroll-behavior:contain}.letter{max-width:640px;margin:auto;padding:46px 28px calc(32px + var(--safe-bottom))}.letter-body{font-size:15px}.letter-body p{margin-bottom:19px}#story-actions{margin-top:30px}#story-actions button{width:100%}.inventory{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;padding:10px 22px 8px;width:min(100%,600px);margin:auto}.inventory-slot{border:1px dashed #cdd1c2;border-radius:13px;background:#eeeee3;width:54px;height:54px;display:grid;place-items:center;position:relative}.inventory-slot:disabled{opacity:1;color:#a8ad9d}.inventory-slot span{font-size:11px}.inventory-slot.collected{background:#fffdf6;border:1px solid #cfd6c5}.inventory-slot img{width:42px;height:44px;object-fit:contain}.inventory-count{font-size:11px;letter-spacing:1px;color:var(--muted);margin-left:4px;white-space:nowrap}.playing #app{overflow:hidden}.game-shell{height:100%;max-width:1000px;margin:auto;display:flex;flex-direction:column;position:relative;padding-bottom:var(--safe-bottom)}.game-topline{display:flex;align-items:center;gap:16px;padding:0 24px;height:35px;flex-shrink:0;font-size:10px;letter-spacing:1.7px;color:var(--muted)}#painting-label{margin-left:auto;letter-spacing:1px}#hint{font:16px Georgia,serif;border:1px solid var(--line);min-width:27px;width:27px;height:27px}.carousel{flex:1;min-height:0;overflow:hidden;position:relative;touch-action:none;user-select:none}.carousel-track{height:100%;display:flex;transition:transform .32s cubic-bezier(.22,.7,.2,1);will-change:transform}.slide{width:100%;height:100%;flex:0 0 100%;min-width:0;padding:0 12px}.painting-scroll{height:100%;width:100%;overflow:hidden;overscroll-behavior:contain;scrollbar-width:none;cursor:grab}.painting-scroll::-webkit-scrollbar{display:none}.zoomed .painting-scroll{overflow:auto}.painting-scroll:active{cursor:grabbing}.image-stage{position:relative;min-width:100%;min-height:100%}.painting{position:absolute;display:block;max-width:none;box-shadow:0 3px 14px #263d3120;-webkit-user-drag:none}.carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;height:42px;flex-shrink:0}.arrow{font-size:30px}.dots{display:flex;align-items:center;justify-content:center;gap:0}.dot{border:0;background:transparent;width:24px;height:40px;padding:0;position:relative}.dot::after{content:'';position:absolute;width:6px;height:6px;left:9px;top:17px;border-radius:50%;background:#c9cdbf;transition:transform .2s,background .2s}.dot.selected::after{background:var(--ink);transform:scale(1.4)}.game-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 24px;padding:4px 0 7px;border-top:1px solid var(--line);flex-shrink:0}.zoom-controls{display:flex;align-items:center;border:1px solid var(--line);border-radius:30px;background:#fffdf6}.zoom-level{font-size:11px;font-variant-numeric:tabular-nums;min-width:58px;height:42px;border:0;background:transparent}.gesture-tip{position:absolute;left:50%;bottom:calc(114px + var(--safe-bottom));transform:translateX(-50%);margin:0;padding:9px 13px;background:#263d31ec;color:var(--paper);border-radius:30px;font-size:11px;white-space:nowrap;pointer-events:none;animation:tip-away .4s 4s forwards}.image-error{position:absolute;top:40%;left:10%;width:80%;padding:20px;background:var(--paper);border:1px solid var(--line);text-align:center}.flying-clue{transform:translate(-50%,-50%);position:fixed;z-index:50;width:100px;height:110px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 5px 6px #263d3125)}#wrong-feedback{position:fixed;inset:0;z-index:40;display:grid;place-items:center;pointer-events:none;opacity:0;background:#7b241b12}#wrong-feedback svg{width:min(46vw,210px);height:min(46vw,210px);filter:drop-shadow(0 5px 14px #843c2c35)}#wrong-feedback path{fill:none;stroke:#b34d3b;stroke-width:9;stroke-linecap:round}#wrong-feedback.visible{animation:wrong .65s ease-out}.summary{max-width:580px;padding:32px 28px calc(32px + var(--safe-bottom));margin:auto}.summary h1{font-size:50px;margin-bottom:14px}.summary>p{color:var(--muted);font-size:14px;margin-bottom:22px}.clue-list{display:flex;flex-direction:column;gap:4px}.clue-card{display:flex;align-items:center;gap:20px;padding:10px 12px;border-bottom:1px solid var(--line);border-radius:7px}.clue-number{font-size:10px;color:var(--muted)}.clue-card img{width:56px;height:63px;object-fit:contain}.clue-card.highlight{background:#e8ebdf}.summary-actions{display:flex;flex-direction:column;gap:8px;margin-top:25px}dialog{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:24px;width:min(92vw,460px);max-height:85dvh;overflow:auto;box-shadow:0 15px 70px #10201655}dialog::backdrop{background:#15271fa6;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.hint-text{font:italic 23px/1.5 Georgia,serif;margin:20px 0}.reset-actions{display:flex;flex-direction:column;gap:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes wrong{0%{opacity:0;transform:scale(.8)}18%,65%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.04)}}@keyframes slot-in{0%{transform:scale(.9)}60%{transform:scale(1.08)}100%{transform:scale(1)}}@keyframes tip-away{to{opacity:0;visibility:hidden}}@media(min-width:700px){.app-header{padding-right:40px;padding-left:40px}.inventory{gap:16px;padding-top:14px;padding-bottom:12px}.inventory-slot{width:62px;height:62px}.inventory-slot img{width:49px;height:50px}.game-toolbar{max-width:470px;width:100%;align-self:center}.summary{padding-top:35px}}@media(max-width:360px){.app-header{padding-left:16px;padding-right:12px;gap:12px;height:calc(54px + var(--safe-top))}.app-title{font-size:10px}.inventory{gap:6px;padding:8px 12px}.inventory-slot{width:45px;height:48px}.inventory-slot img{width:36px;height:39px}.inventory-count{font-size:10px}.game-topline{padding:0 18px}.game-toolbar{margin:0 18px}.gesture-tip{font-size:10px;padding:8px 10px}.letter{padding:32px 22px}.summary{padding:24px 22px}.clue-card{gap:15px}}@media(max-height:550px) and (min-width:600px){.app-header{height:44px}.inventory{position:absolute;right:10px;top:50px;flex-direction:column;width:70px;z-index:2;padding:0}.inventory-slot{width:45px;height:45px}.inventory-slot img{width:35px;height:35px}.game-shell{padding-right:78px}.game-topline{height:28px}.game-toolbar{padding:0}.carousel-nav{height:34px}.gesture-tip{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}#wrong-feedback.visible{animation:none!important;opacity:1}.gesture-tip{display:none}}

/* The final screen is a compact, single reference for all five clues. */
.summary{padding-top:22px;padding-bottom:calc(22px + var(--safe-bottom))}.summary .eyebrow{margin-bottom:10px}.summary h1{font-size:40px;margin-bottom:10px}.summary>p{margin-bottom:14px}.summary .clue-card{padding:5px 12px}.summary .clue-card img{width:46px;height:48px}.summary-actions{margin-top:16px;gap:4px}.summary .secondary{min-height:46px;padding:12px 20px}@media(max-width:360px){.summary{padding-top:20px;padding-bottom:20px}.summary h1{font-size:36px}.summary .clue-card{gap:14px}.summary .clue-card h3{font-size:19px}}

.confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:45}.confetti span{position:absolute;width:6px;height:9px;will-change:transform,opacity}
