.ip-viewer{position:relative;width:100%;height:100%;overflow:hidden;background:#1e1915;color:#f0e7d8;isolation:isolate;font-family:'Noto Serif SC','Songti SC',serif}.ip-viewer *{box-sizing:border-box}.ip-viewer button,.ip-viewer a{font:inherit;color:inherit}.ip-viewer button{cursor:pointer}.ip-viewer [hidden]{display:none!important}.ip-viewer button:focus-visible,.ip-viewer a:focus-visible,.ip-viewport:focus-visible{outline:2px solid #f5d7a6;outline-offset:3px}.ip-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline:none;background:#1d1713}.ip-viewport.ip-dragging{cursor:grabbing}.ip-image-plane{position:absolute;left:50%;top:50%;transform-origin:center center;will-change:transform}.ip-image{display:block;width:100%;height:100%;object-fit:fill;user-select:none;pointer-events:none}.ip-hotspots{position:absolute;inset:0;pointer-events:none}.ip-pin{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;width:42px;height:42px;border:1px solid #f7d6a4;border-radius:50%;background:#251b13d9;color:#fff3df;display:grid;place-items:center;font-size:21px;box-shadow:0 0 0 7px #d4af7938,0 4px 16px #0008;transition:background .2s,box-shadow .2s}.ip-pin:hover,.ip-pin[aria-pressed=true]{background:#d4b183;color:#241c15;box-shadow:0 0 0 10px #e6c78c4a,0 5px 20px #000b}.ip-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#110d0aa3,transparent 22%,transparent 65%,#110d0ac7),linear-gradient(90deg,#110d0a45,transparent 25%,transparent 75%,#110d0a45)}.ip-topline{position:absolute;top:26px;left:30px;right:30px;display:flex;justify-content:space-between;gap:15px;pointer-events:none;color:#f2dfc4;text-shadow:0 2px 9px #000;font-size:11px;letter-spacing:.14em}.ip-type{color:#e5c69c}.ip-controls{position:absolute;bottom:36px;right:30px;display:flex;align-items:center;border:1px solid #eed4ab70;background:#1b1510b8;backdrop-filter:blur(12px);box-shadow:0 5px 22px #0005}.ip-controls button{border:0;background:transparent;color:#f5e5ce;height:42px;min-width:42px}.ip-controls button:hover{background:#b18a5c80}.ip-controls .ip-reset{border-left:1px solid #eed4ab50;padding:0 10px;min-width:48px;white-space:nowrap;font-size:11px}.ip-percent{font:10px Arial;letter-spacing:.05em;color:#e5d2b8;min-width:38px;text-align:center}.ip-help{position:absolute;left:30px;bottom:75px;font-size:10px;letter-spacing:.12em;color:#e2d1b9;text-shadow:0 2px 8px #000;pointer-events:none}.ip-credit{position:absolute;left:30px;bottom:36px;display:flex;gap:13px;align-items:center;max-width:60%;font-size:10px;letter-spacing:.04em;color:#d1bfa6;text-shadow:0 1px 6px #000}.ip-credit a{color:#edcf9e;text-underline-offset:3px;white-space:nowrap}.ip-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:13px 18px;background:#211b16ed;border:1px solid #d6b88b55;box-shadow:0 10px 40px #0008;font-size:12px;white-space:nowrap}.ip-story{position:absolute;right:30px;top:88px;width:min(380px,calc(100% - 60px));max-height:calc(100% - 180px);overflow:auto;background:#241d18f2;border:1px solid #cfac7b80;box-shadow:0 20px 80px #000a;backdrop-filter:blur(16px);padding:30px 30px 26px}.ip-story-close{position:absolute;right:19px;top:12px;background:none;border:0;color:#dec7a6;font-size:26px;padding:4px}.ip-story-kicker{font:10px Arial;letter-spacing:.18em;color:#c79e70}.ip-story-title{font-size:27px;font-weight:500;letter-spacing:.07em;line-height:1.5;margin:18px 0 15px;color:#f3e4cc}.ip-story-body{font-size:13px;line-height:2.05;color:#d9cbb7;margin:0}.ip-story-source{display:inline-block;margin-top:22px;padding-bottom:4px;color:#dfbc8d!important;font-size:11px;text-underline-offset:5px}.ip-viewer [hidden]{display:none!important}@media(max-width:700px){.ip-topline{top:18px;left:18px;right:18px;font-size:10px}.ip-controls{right:16px;bottom:20px}.ip-controls button{width:39px;height:39px;min-width:39px}.ip-help{left:18px;bottom:76px;font-size:9px;max-width:80%;line-height:1.6}.ip-credit{left:18px;bottom:20px;max-width:48%;flex-wrap:wrap;gap:3px 9px;font-size:9px;line-height:1.4}.ip-story{top:auto;bottom:75px;right:16px;width:calc(100% - 32px);max-height:60%;padding:23px}.ip-story-title{font-size:22px;margin:13px 0}.ip-story-body{font-size:12px;line-height:1.9}.ip-pin{width:38px;height:38px;font-size:18px}}@media(prefers-reduced-motion:reduce){.ip-pin{transition:none}}
