.resume-desk { background: #76523b; color: #f4eee5; }
.resume-page { background: transparent; isolation: isolate; }
.resume-page::before { content: ""; position: fixed; inset: 0; z-index: -2; background: linear-gradient(115deg,rgba(42,24,13,.08),rgba(31,18,10,.25)), url('/assets/resume-walnut.jpg') center / cover; }
.resume-page::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1; background: radial-gradient(ellipse at 40% 30%,rgba(255,239,207,.09),transparent 65%), linear-gradient(0deg,rgba(25,16,10,.16),transparent 25%); }
.resume-page .site-header::before { background: linear-gradient(rgba(37,25,17,.24),transparent); inset: 0 0 -30px; }
.resume-page .resume-link { opacity: .8; }
.resume-page :focus-visible { outline-color: #f7ebd7; }
.resume-main { --paper-width: clamp(300px, calc((100svh - 208px) * .772727), 570px); min-height: 100svh; padding: 100px 32px 108px; display: grid; align-items: center; overflow: hidden; }
.desk-composition { width: 100%; max-width: 1280px; margin: auto; position: relative; display: grid; grid-template-columns: 1fr var(--paper-width) 1fr; align-items: center; gap: 0; }
.paper-wrap { grid-column: 2; position: relative; z-index: 3; }
.resume-paper { display: block; position: relative; background: #fff; aspect-ratio: 612 / 792; border: 1px solid rgba(244,232,210,.8); box-shadow: 0 1px 2px #24150a70, 0 10px 18px -10px #24150a70, 0 24px 55px -18px #1e100da6; transition: transform 500ms cubic-bezier(.2,.7,.2,1),box-shadow 500ms ease; cursor: zoom-in; }
.resume-paper img, .resume-paper canvas { display: block; width: 100%; height: 100%; }
.resume-paper canvas { position: absolute; inset: 0; opacity: 0; }
.resume-paper canvas[data-rendered] { opacity: 1; }
.paper-caption { position: absolute; top: calc(100% + 18px); width: 100%; text-align: center; font-size: 10px; letter-spacing: .045em; color: #f4e8d3bf; pointer-events: none; }
.resume-actions { grid-column: 3; margin-left: clamp(26px,4vw,70px); position: relative; z-index: 4; display: flex; flex-direction: column; align-items: center; text-align: center; }
.resume-eyebrow { font-size: 8px; letter-spacing: .15em; margin: 0 0 14px; opacity: .65; }
.resume-note { font: 400 clamp(21px,2vw,29px)/1.25 Georgia,serif; letter-spacing: -.025em; margin: 0 0 27px; text-shadow: 0 1px 8px #30201520; }
.download-resume { display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 14px 19px; min-height: 48px; font-size: 12px; color: #392f27; background: #f2ebdd; border: 1px solid #ffffff50; border-radius: 4px; box-shadow: 0 2px 3px #24170d35,0 10px 20px -10px #23140866; white-space: nowrap; transition: background 200ms,transform 250ms,box-shadow 250ms; }
.download-resume svg { transition: transform 250ms; }
.download-resume:active { transform: translateY(1px); }
.resume-folder { position: absolute; z-index: 1; width: calc(var(--paper-width) * .83); height: calc(var(--paper-width) * .98); right: calc(50% + var(--paper-width) * .36); top: 50%; transform: translateY(-44%) rotate(-11deg); filter: drop-shadow(2px 13px 10px #24140766); pointer-events: none; }
.folder-back { position: absolute; inset: 0; border-radius: 3px 7px 6px 4px; background: linear-gradient(105deg,#ddc49e,#d3b88e 50%,#c2a279); box-shadow: inset 0 1px #f4e0bf, inset -1px 0 #82624040; }
.folder-back::after, .folder-open-leaf::after { content: ""; position: absolute; inset: 0; background: url('/assets/film-grain.svg'); opacity: .23; mix-blend-mode: multiply; pointer-events: none; }
.folder-tab { position: absolute; left: 19px; top: -23px; padding: 10px 19px 8px; border-radius: 5px 9px 0 0; color: #67543e; font: 8px/1 monospace; letter-spacing: .13em; background: #dec6a2; }
.folder-open-leaf { position: absolute; left: -36%; top: 6%; width: 77%; height: 94%; transform: perspective(900px) rotateY(-19deg) rotate(-2deg); transform-origin: right center; border-radius: 6px 1px 2px 5px; background: linear-gradient(100deg,#e3cfac,#dfc7a0 80%,#b69a72); box-shadow: inset 0 1px #f7e5c5, -7px 11px 16px #2e1b1026; }
.folder-crease { position: absolute; left: 39%; top: 7%; bottom: 0; width: 3px; background: linear-gradient(90deg,#8b6a4744,#f7e4c166); transform: rotate(-1deg); }
.folder-label { position: absolute; left: 18%; top: 29%; display: flex; flex-direction: column; gap: 13px; color: #5a4b38; }
.folder-label span { font: 7px/1.4 monospace; letter-spacing: .09em; }
.folder-label strong { font: 400 21px/1.2 Georgia,serif; letter-spacing: -.03em; }
.folder-rule { position: absolute; left: 18%; right: 22%; bottom: 25%; height: 1px; background: #80674d30; }
.resume-page .works-footer { color: #f4eee5; }
.resume-page .works-footer::before { background: linear-gradient(transparent,rgba(41,26,16,.25)); }
.resume-page .works-navigation a { color: #f6ecdda6; }
.resume-page .works-navigation a:hover { color: #fff7e9; }
.paper-wrap { animation: paper-settle 700ms cubic-bezier(.16,1,.3,1) both; }
.resume-actions { animation: desk-reveal 600ms 100ms both; }
@keyframes paper-settle { from { opacity: 0; transform: translate3d(0,14px,0) rotate(.7deg); } to { opacity: 1; transform: none; } }
@keyframes desk-reveal { from { opacity: 0; } to { opacity: 1; } }
@media (hover:hover) { .resume-paper:hover { transform: translateY(-3px); box-shadow: 0 2px 3px #24150a60,0 20px 24px -15px #24150a80,0 32px 60px -16px #1e100d9c; } .download-resume:hover { background: #fff9ef; transform: translateY(-2px); } .download-resume:hover svg { transform: translateY(2px); } }
/* The reading surface is independent of the decorative desk. */
.resume-reader { width: min(1180px,calc(100vw - 64px)); height: calc(100dvh - 64px); max-width: none; max-height: none; padding: 0; border: 1px solid #e6dfd4; border-radius: 9px; color: #302d29; background: #e9e5de; box-shadow: 0 30px 100px #1b100b70; overflow: hidden; }
.resume-reader[open] { display: flex; flex-direction: column; }
.resume-reader::backdrop { background: #20170fb0; backdrop-filter: blur(9px); }
.reader-toolbar { flex-shrink: 0; display: flex; align-items: center; gap: 20px; min-height: 64px; padding: 8px 20px; background: #faf7f1; border-bottom: 1px solid #ded8cf; }
.reader-toolbar h2 { margin: 0 auto 0 0; font-size: 13px; font-weight: 500; white-space: nowrap; }
.reader-toolbar h2 span { font-weight: 400; color: #868078; margin-left: 8px; }
.reader-toolbar button { border: 0; background: transparent; color: inherit; min-width: 44px; min-height: 44px; cursor: pointer; border-radius: 4px; }
.reader-toolbar button:hover { background: #e8e3d9; }
.reader-toolbar button:disabled { opacity: .35; cursor: default; }
.reader-zoom { display: flex; align-items: center; font-size: 17px; }
.reader-zoom [data-zoom="fit"] { font-size: 11px; }
.reader-download { font-size: 11px; padding: 14px 7px; }
.reader-close { font-size: 25px; font-weight: 300; }
.reader-scroll { flex: 1; min-height: 0; overflow: auto; padding: 30px; overscroll-behavior: contain; }
.reader-paper { position: relative; width: min(100%,850px); margin: 0 auto; background: #fff; aspect-ratio: 612 / 792; box-shadow: 0 4px 20px #30231720; }
.reader-paper img { display: block; width: 100%; height: 100%; }
.reader-paper canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
.reader-paper canvas[data-rendered] { opacity: 1; }
.reader-status { margin: 0; padding: 8px 20px; background: #faf7f1; font-size: 10px; color: #777067; min-height: 29px; }
.reader-status a { text-decoration: underline; }
.resume-reader :focus-visible { outline-color: #4b4438; outline-offset: 2px; }
body.reader-open { overflow: hidden; }
/* Mozilla PDF.js text layer: selectable text aligned to the actual PDF canvas. */
.textLayer { position:absolute; inset:0; overflow:clip; text-align:initial; line-height:1; transform-origin:0 0; -webkit-text-size-adjust:none; text-size-adjust:none; forced-color-adjust:none; --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)); }
.textLayer :is(span,br) { color:transparent; position:absolute; white-space:pre; cursor:text; transform-origin:0 0; }
.textLayer > :not(.markedContent),.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)); }
.textLayer .markedContent { display:contents; }
.textLayer ::selection { background: #b6c9e880; color: transparent; }
@media (max-width:1000px) { .resume-actions { margin-left: 28px; } .resume-note { font-size: 23px; } .resume-folder { right: calc(50% + var(--paper-width) * .28); } .folder-open-leaf { left: -18%; } }
@media (max-width:900px) {
  .resume-main { --paper-width: min(76vw, max(210px, calc((100svh - 320px) * .772727)), 430px); padding: 106px 24px 124px; }
  .desk-composition { grid-template-columns: 1fr; gap: 32px; }
  .paper-wrap { grid-column: 1; width: var(--paper-width); margin: 0 auto; }
  .resume-actions { grid-column: 1; margin: 0; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; column-gap: 23px; row-gap: 0; }
  .resume-eyebrow,.resume-note { display: none; }
  .paper-caption { font-size: 9px; top: calc(100% + 12px); }
  .resume-folder { right: calc(50% - var(--paper-width) * .3); top: 34%; width: calc(var(--paper-width)*1.03); height: calc(var(--paper-width)*1.10); transform: translateY(-44%) rotate(-8deg); }
  .folder-open-leaf { left: -5%; width: 66%; }
  .folder-label { opacity: 0; }
  .resume-reader { width: 100%; height: 100dvh; border: 0; border-radius: 0; margin: 0; }
  .reader-toolbar { gap: 3px; padding: max(8px,env(safe-area-inset-top)) 8px 8px; flex-wrap: wrap; }
  .reader-toolbar h2 { font-size: 12px; }
  .reader-toolbar h2 span { display: none; }
  .reader-scroll { padding: 14px; }
  .reader-download { padding: 14px 6px; }
  .reader-status { padding-bottom: max(8px,env(safe-area-inset-bottom)); }
}
@media (max-width:380px) { .resume-main { --paper-width: min(79vw, max(210px, calc((100svh - 320px) * .772727))); padding-left: 16px; padding-right: 16px; } .download-resume { padding: 12px 15px; } .resume-actions { column-gap: 15px; } }
@media (prefers-reduced-motion:reduce) { .paper-wrap,.resume-actions { animation: none; } .resume-paper:hover,.download-resume:hover { transform: none; } }

/* Ambient desk light falls across the paper; the enlarged reader stays neutral. */
.resume-paper::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(118deg, rgba(249,231,193,.06) 0%, rgba(197,161,111,.075) 42%, rgba(92,61,37,.16) 100%); mix-blend-mode: multiply; box-shadow: inset -12px -5px 32px rgba(71,44,24,.025); }
