#resume-viewer{inset:18px;margin:auto;width:min(1100px,calc(100vw - 36px));height:calc(100dvh - 36px);border:1px solid #725248;border-radius:20px;background:#29130d;color:#f3eadf;overflow:hidden;--accent:#e4c9b5;color-scheme:light}
#resume-viewer[open]{display:flex;flex-direction:column;animation:resume-arrive .3s ease-out}
#resume-viewer::backdrop{background:#160703de;backdrop-filter:blur(7px)}
.resume-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 28px;border-bottom:1px solid #e4d8cc26;flex:none}
.resume-toolbar h2{font-family:Georgia,serif;font-size:28px;line-height:1.15;font-weight:400;letter-spacing:-.03em}
.resume-toolbar p{font-size:12px;color:#d1b8a5;margin-top:7px}
.resume-close{display:flex;align-items:center;gap:14px;min-height:44px;padding:8px;font-size:13px}.resume-close span{font-size:26px;line-height:1}
.resume-tools{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 28px;background:#351a12;flex:none;font-size:13px}
.resume-zoom{display:flex;align-items:center;gap:4px}.resume-zoom button{height:40px;min-width:40px;border-radius:7px;padding:6px 10px}.resume-zoom button:not([data-zoom=fit]){font-size:24px}.resume-zoom [data-zoom=fit]{width:87px;font-size:12px}
.resume-tools button:hover:not(:disabled),.resume-close:hover{background:#f3eadf12}.resume-download{display:flex;align-items:center;gap:12px;min-height:40px;border-bottom:1px solid #b99c87}.resume-download:hover{color:#fff}
.resume-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:28px 24px;scrollbar-gutter:stable;scroll-behavior:auto;outline-offset:-4px;touch-action:pan-x pan-y pinch-zoom}
.resume-pages{display:flex;flex-direction:column;gap:24px;align-items:center;width:max-content;min-width:100%;padding-bottom:8px}
.resume-sheet{position:relative;flex:none;background:#fcfaf6;box-shadow:0 8px 25px #10050140;overflow:hidden;--scale-round-x:1px;--scale-round-y:1px}
.resume-sheet canvas,.resume-sheet>img{display:block;width:100%;height:100%}.resume-sheet>img{height:auto}
.resume-pdf-link{position:absolute;z-index:2;border-bottom:1px solid transparent}.resume-pdf-link:hover{background:#681b1012;border-bottom-color:#681b10}.resume-pdf-link:focus-visible{outline:2px solid #681b10;outline-offset:2px}
/* Text layer sizing follows Mozilla PDF.js 5.6.205 (Apache-2.0). */
.resume-sheet .textLayer{color-scheme:only light;position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;text-size-adjust:none;-webkit-text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:1;--min-font-size:1;--text-scale-factor:calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv:calc(1 / var(--min-font-size))}
.resume-sheet .textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}
.resume-sheet .textLayer>:not(.markedContent),.resume-sheet .textLayer .markedContent span:not(.markedContent){z-index:1;--font-height:0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x:1;--rotate:0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}
.resume-sheet .textLayer .markedContent{display:contents}.resume-sheet .textLayer span[role=img]{user-select:none;cursor:default}.resume-sheet .textLayer ::selection{background:#681b1040;color:transparent}.resume-sheet .textLayer br::selection{background:transparent}
@keyframes resume-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){#resume-viewer{inset:5px;width:calc(100vw - 10px);height:calc(100dvh - 10px);border-radius:14px}.resume-toolbar{padding:16px}.resume-toolbar h2{font-size:25px}.resume-toolbar p{font-size:10px}.resume-tools{padding:6px 10px;gap:8px;font-size:11px}.resume-close{gap:8px;font-size:12px}.resume-scroll{padding:16px 8px;scrollbar-gutter:auto}.resume-pages{gap:16px}.resume-zoom{gap:0}.resume-zoom [data-zoom=fit]{width:75px}.resume-zoom button{min-width:36px}.resume-download{gap:6px}}
@media(prefers-reduced-motion:reduce){#resume-viewer[open]{animation:none}}

.resume-actions{display:flex;align-items:center;gap:20px}.resume-tools{flex-wrap:wrap}.resume-actions a{white-space:nowrap}@media(max-width:600px){.resume-actions{gap:12px}}
