/* Illustrated paper study. Decorative surfaces move; readable content does not. */
body.paper-stack {
  background-color: #dce0dc;
  background-image: linear-gradient(#dce0dce8, #dce0dce8), url('/assets/paper.webp');
  background-size: auto, 1500px;
  background-attachment: fixed;
}
.paper-scene{position:absolute;top:0;left:0;width:100%;height:100vh;z-index:0;pointer-events:none}
.paper-stack main,.paper-stack header,.paper-stack footer,.paper-stack .review-bar{position:relative;z-index:1}
.paper-stack.paper-webgl-ready .role-section::before,
.paper-stack.paper-webgl-ready .role-section::after,
.paper-stack.paper-webgl-ready :is(.booking-note,[data-paper-sheet])::before,
.paper-stack.paper-webgl-ready :is(.booking-note,[data-paper-sheet])::after{visibility:hidden}
.paper-stack.paper-webgl-ready .paper-edge{display:none}
.paper-stack header { background: #f6f6ef55; }
.paper-stack .role-hero { padding-bottom: 80px; }
.paper-stack .role-body { column-gap: 48px; }
.paper-stack .role-content { padding: 8px 10px 28px; }
.paper-stack .role-section,
.paper-stack :is(.booking-note,[data-paper-sheet]) {
  --paper-tone: #f7f5ec;
  --paper-wash: #f7f5ecdd;
  --paper-position: 18% 31%;
  --paper-scale: 1100px;
  --paper-angle: -.24deg;
  --curl: 2deg;
  --curl-side: 0deg;
  --curl-shadow: .09;
  --surface-shift: 0px;
  position: relative;
  isolation: isolate;
  perspective: 1100px;
  border: 0;
  padding: 44px clamp(24px, 4vw, 52px) 88px;
  margin: 0 0 26px;
  scroll-margin-top: 28px;
}
.paper-stack .role-section::before,
.paper-stack :is(.booking-note,[data-paper-sheet])::before {
  content: '';
  position: absolute;
  inset: 9px -6px -6px 7px;
  z-index: -2;
  pointer-events: none;
  background: #e9ece6;
  border: 1px solid #78807924;
  transform: rotate(.34deg);
  box-shadow: 0 2px 3px #3b443b12;
}
.paper-stack .role-section::after,
.paper-stack :is(.booking-note,[data-paper-sheet])::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-color: var(--paper-tone);
  background-image: linear-gradient(var(--paper-wash), var(--paper-wash)), url('/assets/paper.webp');
  background-size: auto, var(--paper-scale);
  background-position: center, var(--paper-position);
  border: 1px solid #727b7026;
  border-radius: 1px 2px 3px 1px;
  box-shadow: 1px 2px 4px #353e3517, 0 13px 22px -17px #26352e66;
  transform: translateY(var(--surface-shift)) rotate(var(--paper-angle));
}
.paper-stack #work {
  --paper-tone: #edf2f2;
  --paper-wash: #edf2f2d6;
  --paper-position: 67% 81%;
  --paper-scale: 920px;
  --paper-angle: .18deg;
}
.paper-stack #process {
  --paper-tone: #f6f6f0;
  --paper-wash: #f6f6f0de;
  --paper-position: 93% 8%;
  --paper-scale: 1300px;
  --paper-angle: -.2deg;
}
.paper-stack #gear {
  --paper-tone: #edf0e7;
  --paper-wash: #edf0e7dc;
  --paper-position: 30% 72%;
  --paper-scale: 1050px;
  --paper-angle: .22deg;
}
.paper-stack #rates {
  --paper-tone: #f3f1ec;
  --paper-wash: #f3f1ecdf;
  --paper-position: 80% 32%;
  --paper-scale: 1180px;
  --paper-angle: -.16deg;
}
.paper-stack #booking {
  --paper-tone: #eff2ef;
  --paper-wash: #eff2efdf;
  --paper-position: 38% 67%;
  --paper-scale: 970px;
  --paper-angle: .2deg;
}
.paper-stack .paper-edge {
  display: block;
  position: absolute;
  z-index: 1;
  pointer-events: none;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 50px;
  background-color: var(--paper-tone);
  background-image: linear-gradient(180deg, #ffffff00 0%, #ffffff22 63%, #727b7015 100%), linear-gradient(var(--paper-wash), var(--paper-wash)), url('/assets/paper.webp');
  background-size: auto, auto, var(--paper-scale);
  background-position: center, center, var(--paper-position);
  border-bottom: 1px solid #6c756d33;
  border-radius: 0 0 45% 4% / 0 0 7px 3px;
  transform-origin: 50% 0;
  transform: rotateX(var(--curl)) rotateY(var(--curl-side));
  box-shadow: 0 12px 12px -9px rgb(45 55 49 / var(--curl-shadow));
  backface-visibility: hidden;
}
.paper-stack .role-jumps { padding-top: 42px; }
.paper-stack .role-jumps a { width: fit-content; }
.paper-stack .section-title { margin-bottom: 25px; }
.paper-stack .section-title h2 { font-size: clamp(30px, 3.1vw, 40px); line-height: 1.12; }
.paper-stack .personal-note { font-size: 16px; line-height: 1.82; }
.paper-stack .sample-stage { transform: none; box-shadow: 0 3px 8px #26353618; }
.paper-stack .sample-stage:has(.sample-idle) { min-height: 180px; }
.paper-stack .sample-choices { gap: 12px 22px; }
.paper-stack .sample-credit { gap: 12px; flex-wrap: wrap; }
.paper-stack .role-rate-sheet { grid-template-columns: 1fr; }
.paper-stack .role-rate-sheet > div p { margin-bottom: 0; }
.paper-stack .related-roles { border-top: 0; padding-inline: 32px; }

@media (max-width: 800px) {
  .paper-stack .role-content { padding-inline: 4px; }
  .paper-stack .role-jumps { padding-top: 18px; }
  .paper-stack .role-hero { padding-bottom: 36px; }
  .paper-stack .role-section, .paper-stack :is(.booking-note,[data-paper-sheet]) { padding: 32px 26px 76px; margin-bottom: 21px; }
}
@media (max-width: 560px) {
  .paper-stack .role-body.wrap { width: 92%; }
  .paper-stack .role-jumps { gap: 16px; padding-inline: 9px; }
  .paper-stack .role-content { padding-inline: 3px; }
  .paper-stack .role-section, .paper-stack :is(.booking-note,[data-paper-sheet]) { padding: 28px 22px 66px; }
  .paper-stack .role-section::before, .paper-stack :is(.booking-note,[data-paper-sheet])::before { inset: 6px -3px -4px 4px; }
  .paper-stack .section-title { gap: 8px; margin-bottom: 23px; }
  .paper-stack .section-title h2 { font-size: 31px; }
  .paper-stack .copy-url { flex-shrink: 0; }
  .paper-stack .paper-edge { height: 36px; }
  .paper-stack .personal-note { font-size: 15px; }
  .paper-stack .sample-stage:has(.sample-idle) { min-height: 145px; }
  .paper-stack .sample-idle h3 { font-size: 23px; }
  .paper-stack .sample-choices { grid-template-columns: 1fr; gap: 0; }
  .paper-stack .sample-choice { padding: 14px 0; font-size: 14px; }
  .paper-stack .sample-choice small { font-size: 11px; }
  .paper-stack .sample-stage.audio-stage { padding: 24px 12px; min-height: 175px; }
  .paper-stack .rate-rows > div { gap: 12px; }
  .paper-stack .rate-rows dd { white-space: normal; text-align: right; max-width: 90px; flex-shrink: 0; }
  .paper-stack .role-process li { gap: 16px; }
  .paper-stack .role-process h3 { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .paper-stack .paper-edge { transform: none; }
  .paper-stack .role-section::after, .paper-stack :is(.booking-note,[data-paper-sheet])::after { transform: none; }
}
/* Shared role content retains its layout within the paper surfaces. */
.role-photo-grid,.role-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.role-photo-grid figure,.role-example-grid article{margin:0;min-width:0}
.role-photo-grid img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain;background:#202522}
.role-photo-grid figcaption{font:12px/1.6 var(--sans);padding:12px 0}
.role-example-grid img{display:block;width:100%;height:150px;object-fit:contain;margin-bottom:20px}
.role-example-grid h3,.music-examples h3,.credit-strip h3,.setup-note h3{font:26px/1.2 var(--serif);margin-bottom:14px}
.role-example-grid p,.music-examples p,.credit-strip p,.setup-note p{font-size:14px;line-height:1.8}
.music-examples,.credit-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.music-examples iframe{margin-top:20px;max-width:100%}
.film-example video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#1c2420}
.film-example>div{padding-top:22px}.film-example h3{font:30px var(--serif)}
.training-note{margin-top:28px;border-top:1px solid #2b39332b;padding-top:20px}.training-note summary{cursor:pointer}.training-note p,.training-note li{font-size:14px;line-height:1.8;margin-top:15px}
.rate-flexibility{margin-top:32px;padding-top:24px;border-top:1px solid #46574c33;font-size:14px;line-height:1.8;color:#38463d}
.rate-flexibility p{margin:0 0 16px;max-width:70ch}.rate-contact{display:flex;flex-wrap:wrap;gap:14px 28px;padding-top:4px}
.rate-contact a{font-size:13px;border-bottom:1px solid currentColor;text-decoration:none;padding:8px 0}
footer.wrap.service-footer{display:flex;align-items:center;justify-content:flex-start;gap:22px;padding-block:28px;flex-wrap:wrap}
.service-footer .footer-brand{margin-right:clamp(12px,3vw,48px)}
.service-footer .service-footer-cutout{display:block;width:72px;height:96px;object-fit:contain;flex:none}
.service-footer>a:last-child{margin-left:auto}.service-footer a{font-size:12px}
@media(max-width:700px){.role-photo-grid,.role-example-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.music-examples,.credit-strip{grid-template-columns:1fr}}
@media(max-width:560px){.role-example-grid{grid-template-columns:1fr}.service-footer .footer-brand{flex-basis:100%;margin:0}footer.wrap.service-footer{gap:15px 18px}.service-footer .service-footer-cutout{width:53px;height:76px}.service-footer>a:last-child{margin-left:0}.rate-flexibility{font-size:14px}}

.paper-anchor{position:relative;display:flow-root;transform-style:preserve-3d;overflow:visible}
.paper-anchor>.role-section,.paper-anchor>.booking-note,.paper-anchor>[data-paper-sheet]{transform-origin:50% 50%;backface-visibility:hidden}
body.paper-stack{overflow-x:clip}
@media(prefers-reduced-motion:reduce){.paper-anchor>*{transform:none!important}}

.paper-audio-toggle{position:fixed;right:16px;bottom:14px;z-index:50;border:1px solid #77877755;border-radius:20px;background:#f7f8eff0;color:#35473b;font:12px/1.3 var(--sans);padding:10px 14px;box-shadow:0 3px 12px #27352c15}.paper-audio-toggle[aria-pressed=true]{background:#dce8df}.paper-audio-toggle:focus-visible{outline:2px solid #35473b;outline-offset:3px}
/* The red control is deliberately small, with a comfortable touch target. */
.paper-secret{position:fixed;left:12px;bottom:12px;z-index:55;width:44px;height:44px;padding:12px;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 2px 3px #0004)}
.paper-secret-cap{display:grid;place-items:center;width:20px;height:20px;border:2px solid #7c858c;border-radius:50%;background:radial-gradient(circle at 35% 28%,#ff7162,#ce2327 53%,#6b0e15);box-shadow:0 0 0 2px #323b42,inset 0 1px 1px #fff9,0 3px 0 #4d1016;transition:transform .18s}
.paper-secret svg{width:11px;height:11px;fill:#ffe4c7}.paper-secret:hover .paper-secret-cap{transform:translateY(-2px)}.paper-secret:active .paper-secret-cap{transform:translateY(2px)}
.paper-secret:focus-visible,.paper-repair:focus-visible{outline:3px solid #315fbe;outline-offset:3px}
.paper-repair{position:fixed;z-index:56;bottom:22px;left:50%;transform:translateX(-50%);border:1px solid #587fcb;border-radius:7px;padding:13px 23px;color:#fff;background:linear-gradient(#3268c5,#194585);font:600 15px/1.2 sans-serif;box-shadow:0 3px 0 #102e5b,0 6px 18px #18345b28;cursor:pointer}
.paper-repair span{font-size:20px;margin-right:8px}.paper-repair:disabled{opacity:.65;cursor:wait}
.paper-beacon{position:fixed;inset:0;z-index:54;pointer-events:none;opacity:0;overflow:hidden;transition:opacity .16s;--beacon-x:34px;--beacon-y:calc(100% - 34px)}
.paper-beacon::before{content:"";position:absolute;width:140vmax;height:140vmax;left:var(--beacon-x);top:var(--beacon-y);background:conic-gradient(from 0deg,transparent 0deg,transparent 284deg,#ffd64d06 295deg,#ffd64d8a 320deg,#ff413b99 337deg,transparent 354deg);mask-image:radial-gradient(circle,#000 0%,#000 14%,transparent 63%);transform:translate(-50%,-50%) rotate(0);transform-origin:50% 50%}
.paper-beacon::after{content:"";position:absolute;width:min(850px,120vw);height:min(850px,120vw);left:var(--beacon-x);top:var(--beacon-y);transform:translate(-50%,-50%);background:radial-gradient(circle,#fff4a7b0 0,#ffcf4f78 9%,#ffc44123 29%,transparent 64%)}
.paper-beacon.active{opacity:1;box-shadow:none}.paper-beacon.active::before{animation:paper-warning-beacon .85s linear infinite}
body[data-paper-effect=warning] .paper-secret-cap{transform:none;box-shadow:0 0 0 2px #323b42,0 0 15px 6px #ff4545b3,0 0 50px 20px #ffd64d80}
@keyframes paper-warning-beacon{to{transform:translate(-50%,-50%) rotate(360deg)}}
.paper-secret[hidden],.paper-repair[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.paper-beacon.active::before{animation:none;transform:translate(-50%,-50%) rotate(-45deg)}.paper-secret-cap{transition:none}}

/* Navigation must stay above the paper's 3D stacking contexts. */
.paper-stack header{position:relative;z-index:80;background:#f3f4ec;isolation:isolate}
@media(max-width:760px){
 .paper-stack header #main-nav{top:100%;z-index:1;background:#f3f4ec;box-shadow:0 12px 24px #26322d1a;border-bottom:1px solid #c5ccc3;padding:12px 5% 18px}
 .paper-stack header #main-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .paper-stack header #main-nav a{display:block;padding:13px 0;min-height:46px;border-bottom:1px solid #26322d18;font-size:15px}
 .paper-stack header #main-nav a:last-child{border-bottom:0}
 .paper-stack header .menu-toggle{min-height:44px;min-width:88px;justify-content:space-between}
}
