:root{--dc-ink: #1a1008;--dc-parchment: #f5efd6;--dc-parchment-2: #ede0b0;--dc-gold: #e8c96a;--dc-gold-line: #c9a24a;--dc-brown: #2b1d0e;--dc-brown-soft: #5a3e1e;--dc-bg: #d8c79a;--dc-font-serif: "Inknut Antiqua", serif;--dc-font-display: "Pirata One", serif;--dc-font-title: "DonjonChaton", "Pirata One", serif;--dc-shadow-stamp-sm: 2px 2px 0 var(--dc-ink);--dc-shadow-stamp: 3px 3px 0 var(--dc-ink);--dc-shadow-stamp-lg: 6px 6px 0 var(--dc-ink)}@font-face{font-family:Inknut Antiqua;src:url(/assets/inknut-antiqua-300-Cmir0Hxi.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Inknut Antiqua;src:url(/assets/inknut-antiqua-400-BVBDQMlS.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inknut Antiqua;src:url(/assets/inknut-antiqua-500-ceud5lAU.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inknut Antiqua;src:url(/assets/inknut-antiqua-600-CLn8jVtP.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inknut Antiqua;src:url(/assets/inknut-antiqua-700-Dy8SYkPL.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Pirata One;src:url(/assets/pirata-one-400-VXwhLJdJ.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DonjonChaton;src:url(/assets/donjon-chaton-regular-CLyWooY-.otf) format("opentype");font-weight:400;font-style:normal;font-display:block}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #1a1a1a;--color-surface: #2a2a2a;--color-surface-2: #363636;--color-border: #444;--color-text: #e8e8e8;--color-text-muted: #888;--color-accent: #4f8ef7;--color-accent-hover: #3a7de8;--color-danger: #e05252;--color-marker: #f59e0b;--color-marker-border: #fff;--color-debug-badge: #f59e0b;--radius: 8px;--radius-sm: 4px}body{background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,sans-serif;font-size:14px;overflow:hidden;height:100dvh;width:100dvw}#app{width:100%;height:100%;display:flex;flex-direction:column}#viewport{flex:1;overflow:hidden;position:relative;cursor:grab;background:var(--color-bg)}#viewport.dragging{cursor:grabbing}#viewport.debug-placing{cursor:crosshair}#canvas-container{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}#pdf-canvas{display:block;box-shadow:0 4px 32px #0009}#overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}#overlay.interactive{pointer-events:all}.marker{position:absolute;transform:translate(-50%,-50%);pointer-events:all;cursor:pointer}.marker-inner{display:flex;flex-direction:column;align-items:center;gap:5px;transform-origin:center center;transform:scale(var(--s, 1));transition:transform .2s ease;position:relative}.marker-ribbon{position:relative;pointer-events:none;transition:transform .15s}.marker-label{display:block;font-family:var(--dc-font-serif);font-weight:500;font-size:11px;white-space:nowrap;color:var(--dc-brown);background:var(--dc-parchment);border:2.5px solid var(--dc-ink);padding:4px 14px;letter-spacing:.04em;line-height:1.5;position:relative;z-index:1}.marker-tail{position:absolute;top:100%;z-index:0;overflow:visible}.marker-tail--left{left:8px;top:calc(100% - 10px)}.marker-tail--right{right:8px;top:calc(100% - 10px)}.marker-tail-shape{fill:#ddd4b0;stroke:var(--dc-ink);stroke-width:2.5;stroke-linejoin:round}#controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:8px;z-index:10}.btn{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:var(--radius);padding:8px 12px;cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px;transition:background .15s,border-color .15s;white-space:nowrap}.btn:hover{background:var(--color-surface-2);border-color:var(--color-accent)}.btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.btn-danger{color:var(--color-danger)}.btn-danger:hover{border-color:var(--color-danger)}#debug-controls{position:absolute;bottom:16px;left:12px;z-index:10;display:none;gap:6px}#debug-controls.visible{display:flex}#zoom-controls{position:absolute;bottom:16px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:10}#btn-wiki{position:fixed;top:12px;left:12px;z-index:10;font-family:var(--dc-font-serif);font-weight:500;font-size:11px;color:var(--dc-brown);background:var(--dc-gold);border:2px solid var(--dc-ink);padding:6px 12px;cursor:pointer;text-decoration:none;letter-spacing:.04em;box-shadow:var(--dc-shadow-stamp-sm);transition:box-shadow .1s,transform .1s;display:block}#btn-wiki:hover{box-shadow:var(--dc-shadow-stamp);transform:translate(-1px,-1px)}#btn-wiki:active{box-shadow:1px 1px 0 var(--dc-ink);transform:translate(1px,1px)}.zoom-btn{width:36px;height:36px;justify-content:center;padding:0;font-size:18px;font-weight:300}#zoom-label{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 6px;text-align:center;font-size:11px;color:var(--color-text-muted)}#debug-badge{position:absolute;top:12px;left:12px;background:var(--color-debug-badge);color:#000;font-size:11px;font-weight:700;padding:4px 8px;border-radius:var(--radius-sm);letter-spacing:.05em;z-index:10;display:none}#points-dialog{position:absolute;top:12px;right:12px;width:240px;background:var(--dc-parchment);border:2px solid var(--dc-ink);z-index:20;display:none;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 120px);box-shadow:4px 4px 0 var(--dc-ink)}#points-dialog.open{display:flex}#btn-toggle-dialog{display:none;position:absolute;top:12px;right:12px;z-index:21;font-family:var(--dc-font-serif);font-weight:500;font-size:11px;color:var(--dc-brown);background:var(--dc-gold);border:2px solid var(--dc-ink);padding:6px 12px;cursor:pointer;letter-spacing:.04em;box-shadow:var(--dc-shadow-stamp-sm)}@media (max-width: 1024px){#points-dialog{display:none;top:62px}#points-dialog.open{display:flex}#btn-toggle-dialog{display:block}}.dialog-header{padding:10px 14px 8px;border-bottom:2px solid var(--dc-ink);flex-shrink:0;background:var(--dc-gold)}.dialog-header-title{font-family:var(--dc-font-title);font-size:20px;color:var(--dc-brown);letter-spacing:.03em;line-height:1}.dialog-header-subtitle{font-family:var(--dc-font-serif);font-weight:500;font-size:10px;color:var(--dc-brown-soft);letter-spacing:.08em;text-transform:uppercase;margin-top:3px}#points-list{overflow-y:auto;flex:1}.point-item{padding:9px 14px;border-bottom:1px solid var(--dc-gold-line);cursor:pointer;display:flex;align-items:center;gap:8px;transition:background .1s}.point-item:last-child{border-bottom:none}.point-item:hover{background:var(--dc-parchment-2)}.point-item-dot{width:7px;height:7px;border-radius:50%;background:#8a5c10;flex-shrink:0}.point-item-name{flex:1;font-family:var(--dc-font-serif);font-weight:400;font-size:11px;color:var(--dc-brown);line-height:1.4}.points-empty{padding:20px 14px;color:#7a6040;text-align:center;font-size:12px;font-family:var(--dc-font-serif)}#dialog-debug-footer{padding:8px 14px;border-top:1px solid var(--color-border);display:none;flex-direction:column;gap:6px;flex-shrink:0}#dialog-debug-footer.visible{display:flex}#inline-popup{position:absolute;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 8px 24px #0009;padding:12px;z-index:30;display:none;flex-direction:column;gap:8px;width:200px}#inline-popup.open{display:flex}#inline-popup input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:6px 8px;font-size:13px;outline:none;width:100%}#inline-popup input:focus{border-color:var(--color-accent)}.popup-row{display:flex;gap:6px}.popup-row .btn{flex:1;justify-content:center;font-size:12px;padding:6px 8px}#debug-info-panel{position:absolute;bottom:56px;left:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 4px 16px #00000080;z-index:20;display:none;flex-direction:column;min-width:240px;overflow:hidden}#debug-info-panel.open{display:flex}.info-panel-header{padding:8px 12px;border-bottom:1px solid var(--color-border);font-size:11px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;display:flex;justify-content:space-between;align-items:center}#debug-info-content{padding:10px 12px;font-family:SF Mono,Fira Mono,monospace;font-size:11px;line-height:1.8;color:var(--color-text);white-space:pre}.info-val{color:var(--color-accent)}.info-panel-footer{padding:6px 12px;border-top:1px solid var(--color-border)}.info-panel-footer .btn{width:100%;justify-content:center;font-size:11px;padding:5px 8px}#btn-copy-info.copied{color:#4ade80;border-color:#4ade80}#loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--dc-parchment);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(12px,3vw,28px);padding:24px 16px;transition:opacity .6s ease;text-align:center}#loading-screen.fade-out{opacity:0;pointer-events:none}#loading-title{display:flex;flex-direction:column;align-items:center;gap:2px}#loading-title-label{font-family:var(--dc-font-serif);font-weight:500;font-size:clamp(12px,3vw,18px);color:var(--dc-brown);letter-spacing:.08em;text-transform:uppercase}#loading-title-name{font-family:var(--dc-font-display);font-size:clamp(40px,12vw,64px);color:var(--dc-brown);letter-spacing:.03em;line-height:1}#loading-text{font-family:var(--dc-font-serif);font-weight:500;font-size:clamp(12px,2.5vw,16px);color:#3a2e1e;letter-spacing:.04em;transition:opacity .2s ease;min-height:1.6em;padding:0 8px}#loading-text.loading-text--fade{opacity:0}#loading-image{width:min(340px,75vw);height:auto;flex-shrink:1;min-height:0}
