/* Floating chrome, original photos, and focused content. */
html { scroll-padding-top: 92px; }
#adaptive-navigation { position: relative; z-index: 2000; }
.studio-brand { position: fixed; left: 32px; top: 23px; z-index: 2001; font: italic bold 36px/1 Georgia, serif; letter-spacing: -2px; color: #703650; text-shadow: 0 1px 12px #fff8; }
.studio-brand span { font: 10px Arial, sans-serif; letter-spacing: 0; vertical-align: top; margin: 3px; }
.adaptive-pill { position: fixed; top: 18px; right: 30px; z-index: 2002; border-radius: 28px; overflow: hidden; color: #51384a; background: linear-gradient(135deg, #fcfafc, #eee7ee 45%, #d9ceda 90%, #e5dce5); box-shadow: 0 3px 6px #43304420,0 10px 24px #43304420,inset 0 2px 1px #ffffffe6,inset 0 -3px 8px #50334b30,inset 3px 3px 8px #50334b13,inset -3px 3px 8px #50334b13; }
.pill-gloss { position: absolute; top: 4px; left: 10%; height: 22px; width: 55%; background: radial-gradient(ellipse, #ffffffe6, transparent 70%); pointer-events: none; filter: blur(4px); }
.pill-toggle { position: relative; z-index: 2; border: 0; background: transparent; color: #593b50; width: 168px; height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; font-size: 14px; font-weight: 600; }
.pill-toggle>span:last-child { font-size: 20px; }
.pill-links { position: absolute; inset: 0 54px 0 0; display: flex; align-items: center; justify-content: space-evenly; gap: 2px; padding-left: 12px; }
.pill-links a { padding: 12px 10px; font-size: 12px; white-space: nowrap; border-radius: 20px; color: #735f70; }
.pill-links a:hover, .pill-links a[aria-current] { background: #fff7; color: #65344f; box-shadow: inset 0 1px 0 #fff8; }
.adaptive-pill[data-expanded=true]>.pill-toggle { width: 50px; margin-left: auto; padding: 0 16px; }
.adaptive-pill[data-expanded=true]>.pill-toggle>span:first-child { display: none; }
.fallback-nav { position: fixed; right: 24px; top: 20px; padding: 16px 24px; background: #eee4eaee; border-radius: 24px; box-shadow: 0 5px 20px #54354e25; }
.fallback-nav nav { display: grid; gap: 15px; padding-top: 20px; }
body:not(:has(.studio-landing)) .page-head { padding-top: 120px; }
.studio-landing { height: 100svh; max-height: none; min-height: 680px; background: #3b0000; }
.studio-scenery { top: 0; height: 100%; object-position: center 67%; filter: none; }
.studio-sunset-wash { display: none; }
.studio-title-layer { top: 16%; z-index: 2; }
.studio-person { width: 100%; height: auto; min-height: 0; bottom: 0; filter: none; }
.studio-bottom-fade { inset: 75% 0 0; background: linear-gradient(transparent, #3b0000); }
.studio-bottom { justify-content: center; bottom: 28px; }
.city-to-intro { height: 150px; margin-top: -1px; background: linear-gradient(#3b0000 0%, #6b3445 24%, #d2b5b8 68%, #eee4d7 100%); }
.studio-landing .studio-person { object-fit: contain; }
.folder-grid .case-folder:last-child:nth-child(odd) { grid-column: 1 / -1; width: calc((100% - 7vw) / 2); justify-self: center; }
.folder-trigger { text-decoration: none; }
.personal-photo { margin: 0; padding: 12px; background: #f6e8d4; transform: rotate(-3deg); box-shadow: 6px 8px 0 #432c3c25; }
.personal-photo img { display: block; width: 100%; height: auto; max-height: 580px; object-fit: cover; }
.creative-section { padding-top: 28px; }
.gallery-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 12px 0 22px; }
.gallery-toolbar p { margin: 0; font-size: 13px; color: #81657a; }
.gallery-toolbar button, .skill-buttons button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(135deg, #fff9, #dbbfd650); border: 1px solid #fff9; box-shadow: inset 0 1px 0 #fff; color: #653e59; border-radius: 24px; padding: 12px 18px; }
.gallery-canvas { height: min(72vh, 740px); min-height: 460px; border: 1px solid #d8bfd2; border-radius: 24px; overflow: hidden; position: relative; isolation: isolate; background: radial-gradient(ellipse at center, #f2e7df, #d7c6d9 80%); }
.gallery-space-card { width: 164px; padding: 9px; background: #f5e8d8; border: 1px solid #fff9; border-radius: 8px; box-shadow: 0 8px 24px #62475d35; color: #634559; transition: box-shadow .2s; }
.gallery-space-card:hover, .gallery-space-card:focus-visible { box-shadow: 0 9px 30px #98557866; }
.gallery-space-card img { display: block; width: 144px; height: 180px; object-fit: cover; }
.gallery-space-card span { display: block; padding: 9px 0 2px; font: 13px Georgia, serif; }
.creative-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.gallery-grid-card { background: #f3e6d7; border: 1px solid #d2b8ce; padding: 12px; color: #634359; border-radius: 9px; text-align: left; }
.creative-grid img { width: 100%; height: auto; display: block; }
.gallery-grid-card span { display: block; padding: 14px 0 4px; font: 21px Georgia, serif; }
.gallery-dialog { border: 0; padding: 0; overflow: visible; width: min(440px,calc(100vw - 40px)); max-height: calc(100svh - 50px); background: transparent; color: #593950; }
.gallery-dialog::backdrop { background: #2d192fcc; backdrop-filter: blur(8px); }
.gallery-dialog-card { position: relative; background: #efe0e7; border: 1px solid #fff8; border-radius: 18px; padding: 18px; max-height: calc(100svh - 50px); overflow: auto; box-shadow: 0 24px 90px #190e2666; }
.gallery-dialog-card>img { width: 100%; height: min(55vh,500px); object-fit: contain; border-radius: 8px; }
.gallery-dialog-card h2 { font: 30px Georgia, serif; letter-spacing: -1px; margin: 18px 0 8px; }
.gallery-dialog-card p { margin: 0; font-size: 14px; }
.gallery-close { position: absolute; top: 22px; right: 22px; z-index: 2; border: 1px solid #fff9; border-radius: 50%; width: 42px; height: 42px; background: #f6eaf0e6; color: #75385c; display: grid; place-items: center; }
.skills-cloud-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 5vw; }
.skills-orbit { min-width: 0; border-radius: 50%; background: radial-gradient(ellipse, #e5ccdf80, transparent 70%); }
.skill-cloud-canvas { display: flex; justify-content: center; width: 100%; }
.skill-cloud-canvas canvas { width: 100% !important; height: auto !important; }
.skill-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.skill-buttons button { font-size: 12px; padding: 9px 12px; }
.skill-buttons button[aria-pressed=true] { background: #ac7397; color: #fff4e8; }
.skill-detail { margin: 25px 0; padding: 18px; border-left: 3px solid #ad7a9d; background: #ead6e4; min-height: 115px; }
.skill-detail h3 { font: 24px Georgia, serif; margin: 0 0 8px; }
.skill-detail p { font-size: 14px; margin: 0; }
.skill-static-marks { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; padding: 45px 20px; }
.skill-static-marks span { font: italic 26px Georgia, serif; color: #8a5075; }
.certification-list { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 65px; }
.certification-list>h2 { grid-column: 1 / -1; font-size: 40px; }
.certification-list article { background: #e4d1e2; border-top: 2px solid #a27098; padding: 25px; }
.certification-list article:nth-of-type(2) { background: #e9d8a8; border-color: #b49b64; }
.certification-list h3 { font: 25px Georgia, serif; }.certification-list p { margin-bottom: 0; }
.skills-finale { display: grid; grid-template-columns: .7fr 2fr; gap: 4vw; padding: 140px 8vw; background: #e6d8e6; color: #5c3a58; }
.skills-finale-heading { position: relative; }.skills-finale-heading h2 { position: sticky; top: 40vh; margin: 0; font: italic clamp(42px,6vw,90px)/1.1 Georgia, serif; letter-spacing: -2px; }
.skills-finale ul { list-style: none; padding: 0; margin: 0; }
.skills-finale li { font: clamp(30px,5vw,72px)/1.12 Georgia, serif; letter-spacing: -2px; padding: 5vh 0; overflow-wrap: anywhere; }
.skills-finale li:first-child { padding-top: 0; }
@media (hover:hover) and (pointer:fine) {
  html, body, body *, a, button, [role=button], summary, .bag-item { cursor: url('assets/star-cursor.svg') 16 16, auto; }
  input, textarea, [contenteditable=true] { cursor: text; }
}
@media (max-width:999px) {
  .studio-brand { left: 20px; top: 25px; font-size: 30px; }
  .adaptive-pill { right: 16px; top: 16px; }
  .adaptive-pill[data-expanded=true]>.pill-toggle { width: 100%; margin: 0; padding: 0 22px; }
  .adaptive-pill[data-expanded=true]>.pill-toggle>span:first-child { display: inline; }
  .pill-links { inset: 56px 12px 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 3px; padding: 0; }
  .pill-links a { text-align: center; }
  .creative-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .studio-landing { min-height: 660px; }
  .studio-title-layer { top: 18%; }
  .studio-person { width: auto; height: 78%; min-width: 100%; }
  .studio-bottom { bottom: 25px; }
  .city-to-intro { height: 110px; }
  .folder-grid .case-folder:last-child:nth-child(odd) { grid-column: auto; width: 100%; }
  .personal-photo { max-width: 340px; margin: 0 auto; }
  .personal-photo img { max-height: 400px; object-position: center 60%; }
  .skills-cloud-layout { grid-template-columns: 1fr; gap: 20px; }
  .skills-evidence h2 { font-size: 43px; }
  .certification-list { grid-template-columns: 1fr; }
  .gallery-toolbar { align-items: start; }.gallery-toolbar p { max-width: 190px; }
  .gallery-toolbar button { padding: 10px 12px; white-space: nowrap; font-size: 12px; }
  .gallery-canvas { min-height: 420px; height: 65vh; }
  .creative-grid { gap: 12px; }.gallery-grid-card { padding: 7px; }.gallery-grid-card span { font-size: 17px; }
  .skills-finale { padding: 80px 24px; grid-template-columns: 1fr; gap: 24px; }
  .skills-finale-heading h2 { position: static; font-size: 48px; }
  .skills-finale li { font-size: 36px; letter-spacing: -1px; }
}
@media (prefers-reduced-motion:reduce) { .skills-finale li { opacity: 1 !important; }.skills-finale-heading h2 { position: static; } }
/* Beach landing, letter lighting, and nested navigation. */
.studio-title-layer { top: 17%; z-index: 4; }
.studio-title-layer h1 { font-size: clamp(62px, 12vw, 180px); }
.studio-title-layer h1 > .studio-letter { display: inline-block; font: inherit; letter-spacing: inherit; vertical-align: baseline; margin: 0; transition: color .2s, text-shadow .2s, translate .3s; }
.studio-letter:hover { color: #fffdf1; text-shadow: 0 0 12px #fff8cc, 0 0 35px #ffc18b, 0 0 70px #ff91b9; translate: 0 -9px; }
.studio-landing .studio-person { width: 76%; height: 61%; min-width: 0; max-height: 61%; bottom: 0; object-fit: contain; object-position: bottom; }
.adaptive-pill { overflow: visible; }
.pill-links[hidden], .pill-submenu[hidden] { display: none; }
.pill-item { position: relative; }
.pill-parent { border: 0; background: transparent; padding: 16px 12px; font-size: 12px; color: #735f70; border-radius: 22px; white-space: nowrap; }
.pill-parent:hover, .pill-parent[aria-expanded=true] { background: #fff8; color: #65344f; }
.pill-submenu { position: absolute; top: 100%; left: 0; min-width: 205px; display: grid; padding: 10px; background: #f4edf5f5; border: 1px solid #fff9; border-radius: 18px; box-shadow: 0 16px 40px #35223930; backdrop-filter: blur(20px); }
.pill-submenu a { display: block; text-align: left; }
.chat-grid { grid-template-columns: 1fr 1fr; }
.chat-grid > div:first-child { min-width: 0; }
.chat .personal-photo { max-width: 390px; margin-bottom: 45px; }
.chat .skills-finale { padding: 20px 0 0; background: transparent; grid-template-columns: 1fr; gap: 35px; }
.chat .skills-finale-heading h2 { position: static; font-style: italic; }
.chat .skills-finale li { font-size: clamp(30px, 3.5vw, 54px); padding: 25px 0; letter-spacing: -1.5px; }
.mini-leya { display: none !important; }
.minion-dialog { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: 0; border: 0; color: #fff9e8; background: #101014; }
.minion-dialog::backdrop { background: #101014; }
.minion-experience { height: 100%; position: relative; overflow: hidden; background: radial-gradient(ellipse at 50% 45%, #30303b, #111116 65%, #09090c); }
.minion-header { position: absolute; z-index: 2; top: 32px; left: 4vw; right: 4vw; display: flex; justify-content: space-between; align-items: start; pointer-events: none; }
.minion-header span { font: 10px monospace; letter-spacing: 2px; color: #aaa6b4; }
.minion-header h2 { font: 36px Georgia, serif; margin: 12px 0; color: #fff6d9; }
.minion-header button { pointer-events: auto; border: 1px solid #ffffff30; border-radius: 50%; background: #ffffff0c; color: #fff; width: 44px; height: 44px; font-size: 24px; }
.minion-viewport { position: absolute; inset: 80px 0 70px; touch-action: none; }
.minion-hint { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); font-size: 11px; color: #c0bbc8; width: max-content; max-width: 90%; text-align: center; }
.minion-controls { position: absolute; z-index: 3; right: 30px; bottom: 80px; width: 230px; padding: 16px; border: 1px solid #ffffff25; border-radius: 18px; background: #23232b99; backdrop-filter: blur(22px); box-shadow: 0 12px 48px #0004; }
.minion-settings-toggle, .minion-reset { color: #f4eddd; border: 0; background: transparent; width: 100%; text-align: left; font-size: 12px; padding: 4px 0; }
.minion-settings-toggle span, .minion-controls output { float: right; color: #f5d76a; }
.minion-controls label { display: block; margin-top: 18px; font-size: 11px; color: #d9d4df; }
.minion-controls input[type=range] { display: block; width: 100%; margin-top: 10px; accent-color: #f5d76a; }
.minion-controls .minion-idle { display: flex; justify-content: space-between; }
.minion-reset { margin-top: 18px; border-top: 1px solid #fff2; padding-top: 14px; }
.minion-play { position: absolute; left: 4vw; bottom: 85px; background: #f5d76a; color: #211e12; border: 0; padding: 14px 20px; border-radius: 30px; font-size: 12px; }
.minion-fallback { position: absolute; top: 45%; width: 100%; padding: 25px; text-align: center; }
.minion-pusher { position: absolute; inset: 0; pointer-events: none; z-index: 6; animation: minion-push 3.1s ease-in-out forwards; }
@keyframes minion-push { 0% { transform: translateX(-65%); } 35% { transform: translateX(-25%); } 70%,100% { transform: translateX(5%); } }
@media (max-width:999px) { .pill-item { text-align: center; }.pill-submenu { z-index: 5; left: auto; right: 0; max-height: 55svh; overflow-y: auto; }.pill-item:nth-child(odd) .pill-submenu { left: 0; right: auto; } }
@media (max-width:700px) {
  .studio-title-layer { top: 23%; }
  .studio-title-layer h1 { font-size: 14vw; }
  .studio-landing .studio-person { width: 120%; height: 54%; max-height: 54%; }
  .chat-grid { grid-template-columns: 1fr; }
  .chat .skills-finale { margin-top: 40px; }
  .minion-header { top: 22px; }.minion-header h2 { font-size: 28px; }.minion-header span { font-size: 8px; }
  .minion-controls { right: 16px; bottom: 78px; width: 190px; padding: 12px; }
  .minion-play { bottom: 82px; left: 16px; padding: 13px; }
  .minion-viewport { inset: 100px 0 130px; }.minion-hint { bottom: 30px; font-size: 10px; }
}
@media (prefers-reduced-motion:reduce) { .studio-letter { transition: none !important; }.minion-pusher { animation: none; } }
@media (max-width:700px) {
  .minion-controls:has([aria-expanded=true]) { width: calc(100% - 32px); }
  .minion-controls > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
  .minion-controls label { margin-top: 8px; }
  .minion-controls .minion-reset { margin-top: 0; }
  .minion-controls .minion-idle { align-items: center; }
  .minion-experience:has(.minion-settings-toggle[aria-expanded=true]) .minion-viewport { bottom: 335px; }
  .minion-experience:has(.minion-settings-toggle[aria-expanded=true]) .minion-play { bottom: 30px; padding: 8px 12px; }
  .minion-experience:has(.minion-settings-toggle[aria-expanded=true]) .minion-hint { display: none; }
}

/* Featured content formats and simplified section headings. */
.selected-work { background: #eee2e8; color: #624659; }
.section-pad h2.portfolio-section-title { font: 400 clamp(48px, 6vw, 86px)/1.05 Georgia, serif; letter-spacing: -.055em; margin: 0 0 36px; text-transform: lowercase; }
.work-section .section-heading { align-items: center; }
.work-section .section-heading .portfolio-section-title { margin-bottom: 0; }
.selected-work > h2 { text-align: center; }
.coverflow-carousel { max-width: 1200px; margin: 0 auto; }
.cf-frame { border-radius: 18px; }
.cf-frame:focus-visible { outline: 2px solid #91637d; outline-offset: -3px; }
.cf-art { display: block; flex: none; max-height: 100%; border: 1px solid #62465920; }
.cf-nav { position: absolute; top: 50%; z-index: 200; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #62465930; border-radius: 50%; background: #f8f0f4e6; color: #624659; }
.cf-prev { left: 0; }.cf-next { right: 0; }
.cf-nav:hover { background: #fff9fc; }.cf-nav:disabled { opacity: .35; }
.cf-caption { text-align: center; padding: 8px 24px 0; }
.cf-caption h3 { margin: 0; font: 28px/1.2 Georgia, serif; }
.cf-caption dl { width: 230px; max-width: 100%; margin: 22px auto 0; font-size: 13px; }
.cf-caption dl > div { display: flex; justify-content: space-between; padding: 7px 0; }
.cf-caption dd { margin: 0; }
.cf-pagination { display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 16px; }
.cf-pagination button { display: grid; place-items: center; width: 28px; height: 32px; background: transparent; border: 0; padding: 0; }
.cf-pagination button::after { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #624659; opacity: .3; }
.cf-pagination button[aria-current=true]::after { opacity: 1; }
@media (max-width:700px) { .selected-work.section-pad { padding-left: 16px; padding-right: 16px; }.cf-caption h3 { font-size: 25px; } }

.cf-image-link { display: block; flex: none; border-radius: 16px; }
.cf-image-link:focus-visible { outline: 3px solid #91637d; outline-offset: 5px; }

/* An unpacked bag: visible work, field notes, and a living toolkit. */
.bag-open.section-pad { padding: 100px 0 0; background: #eee4dc; color: #593e51; }
.bag-intro { padding: 0 8vw 36px; display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.bag-intro > p { font: italic 22px Georgia, serif; padding-bottom: 36px; }
.bag-chapter { padding: 65px 8vw 85px; scroll-margin-top: 100px; }
.bag-creative { background: #e8dae4; }
.bag-experience { background: #e8dfcd; }
.bag-skills { background: #ddd5e5; }
.bag-chapter-heading { display: flex; align-items: center; gap: 30px; margin-bottom: 35px; }
.bag-chapter-heading > img { width: 140px; height: 150px; object-fit: contain; transform: rotate(-9deg); filter: drop-shadow(5px 10px 6px #47333b25); }
.bag-chapter-heading h3 { font: 400 clamp(42px,5vw,68px)/1 Georgia,serif; letter-spacing: -.05em; margin: 12px 0 16px; }
.bag-chapter-heading p { max-width: 470px; margin-bottom: 0; }
.bag-margin-note { margin-left: auto; font: italic 24px/1.3 Georgia,serif; transform: rotate(-7deg); color: #8b526d; }
.bag-experience .bag-chapter-heading > img { order: 3; margin-left: auto; transform: rotate(9deg); }
.bag-experience .bag-margin-note { margin-left: 24px; }
.bag-open .creative-grid { gap: 20px; }
.bag-open .gallery-grid-card { background: #f7efdf; padding: 10px 10px 15px; border-radius: 3px; box-shadow: 0 5px 12px #51344512; }
.bag-open .gallery-grid-card:nth-child(3n+1) { transform: rotate(-1deg); }
.bag-open .gallery-grid-card:nth-child(3n+2) { transform: rotate(1deg); }
.bag-open .gallery-grid-card img { max-height: 220px; object-fit: cover; }
.bag-open .gallery-grid-card span { font-size: 21px; }
.bag-notebook { display: grid; grid-template-columns: 1fr 1fr; background: #fbf5e7; border-radius: 6px 16px 16px 6px; border: 1px solid #cabea5; box-shadow: 0 4px 0 #e0d4bd, 0 7px 0 #f4ecdb, 0 16px 32px #5d4a3920; }
.bag-notebook-page { padding: 30px clamp(24px,4vw,60px); background: repeating-linear-gradient(transparent 0,transparent 31px,#ab9a8014 31px,#ab9a8014 32px); }
.bag-notebook-page:first-child { border-right: 1px solid #cabda8; box-shadow: inset -14px 0 24px -20px #71513e; }
.bag-notebook-page:last-child { box-shadow: inset 14px 0 24px -20px #71513e; }
.bag-page-label { font: 10px/1.5 monospace; letter-spacing: 1px; color: #806d60; }
.bag-role { position: relative; margin: 30px 0 0 8px; padding: 0 0 30px 25px; border-left: 1px solid #c7a9b4; }
.bag-role-number { position: absolute; left: -13px; top: -2px; background: #fbf5e7; color: #965972; padding: 5px 0; font: italic 15px Georgia,serif; }
.bag-role h4 { font: 28px/1.15 Georgia,serif; letter-spacing: -.6px; margin: 10px 0; }
.bag-role-title { font-weight: 600; font-size: 14px; margin: 0 0 12px; }
.bag-role-note { font: italic 14px Georgia,serif; color: #827164; }
.bag-role .text-link { font-size: 12px; margin-top: 8px; }
.bag-open .skills-evidence h2 { font: 40px/1.1 Georgia,serif; letter-spacing: -1px; }
.bag-open .certification-list { padding-top: 35px; }
.bag-open .certification-list > h2, .bag-open .case-block h2 { font: 32px/1.15 Georgia,serif; }
.bag-open .case-block { padding-bottom: 0; }
@media (max-width:700px) {
  .bag-open.section-pad { padding-top: 65px; }
  .bag-intro { display: block; padding: 0 24px 20px; }
  .bag-intro > p { padding: 0; margin: -15px 0 24px; font-size: 20px; }
  .bag-chapter { padding: 40px 24px 55px; }
  .bag-chapter-heading { gap: 15px; flex-wrap: wrap; }
  .bag-chapter-heading > img { width: 85px; height: 105px; }
  .bag-chapter-heading > div { flex: 1; min-width: 180px; }
  .bag-chapter-heading h3 { font-size: 44px; }
  .bag-chapter-heading p { font-size: 13px; }
  .bag-chapter-heading .eyebrow { font-size: 9px; }
  .bag-margin-note { display: none; }
  .bag-open .creative-grid { gap: 14px; }
  .bag-open .gallery-grid-card { padding: 7px; }
  .bag-open .gallery-grid-card span { font-size: 17px; }
  .bag-notebook { grid-template-columns: 1fr; }
  .bag-notebook-page:first-child { border-right: 0; border-bottom: 1px solid #cabda8; }
  .bag-notebook-page { padding: 25px 22px; box-shadow: none !important; }
  .bag-role h4 { font-size: 26px; }
}

/* One creative workspace: the collection beside the toolkit. */
.bag-open.section-pad { background: #e8dae4; padding-bottom: 70px; }
.bag-combined { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 5vw; padding: 0 6vw; }
.bag-combined .bag-chapter { min-width: 0; padding: 24px 0; background: transparent; }
.bag-combined .bag-skills { border-left: 1px solid #93758740; padding-left: 4vw; }
.bag-combined .bag-chapter-heading { gap: 20px; min-height: 150px; }
.bag-combined .bag-chapter-heading > img { width: 95px; height: 120px; }
.bag-combined .bag-chapter-heading h3 { font-size: clamp(38px,4vw,58px); }
.bag-combined .bag-chapter-heading p { font-size: 13px; }
.bag-combined .bag-margin-note { display: none; }
.bag-combined .creative-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.bag-combined .gallery-canvas { height: 600px; min-height: 450px; }
.bag-combined .skills-cloud-layout { display: flex; flex-direction: column; gap: 15px; }
.bag-combined .skills-orbit { width: 100%; max-width: 340px; }
.bag-combined .skills-evidence { width: 100%; }
.bag-combined .skills-evidence h2 { font-size: 32px; }
.bag-combined .certification-list { gap: 12px; }
.bag-combined .certification-list article { padding: 18px; }
.bag-combined .certification-list h3 { font-size: 22px; }
@media (max-width:1000px) {
 .bag-combined { grid-template-columns: 1fr; padding: 0 6vw; gap: 24px; }
 .bag-combined .bag-skills { border-left: 0; border-top: 1px solid #93758740; padding: 35px 0 0; }
 .bag-combined .skills-cloud-layout { display: grid; grid-template-columns: 1fr 1fr; }
 .bag-combined .gallery-canvas { height: 500px; }
}
@media (max-width:700px) {
 .bag-combined { padding: 0 24px; }
 .bag-combined .skills-cloud-layout { display: flex; }
 .bag-combined .bag-chapter-heading { min-height: 0; gap: 15px; }
 .bag-combined .bag-chapter-heading > img { width: 80px; height: 105px; }
 .bag-combined .certification-list { grid-template-columns: 1fr; }
}

/* Scroll-driven bag reveal, preceding the unpacked collection. */
.bag-spill { position: relative; z-index: 30; height: 100svh; pointer-events: none; }
.bag-spill.spill-motion { height: 300svh; margin-bottom: -100svh; }
#bag-spill-root { height: 100%; }
.spill-scene { position: sticky; top: 0; height: 100svh; overflow: hidden; background: #ddc9d5; }
.spill-title { position: absolute; z-index: 2; top: 13%; left: 0; width: 100%; margin: 0; text-align: center; font: 700 clamp(44px,8.7vw,150px)/1 Georgia,serif; letter-spacing: -.065em; color: #723b57; pointer-events: auto; }
.spill-title .studio-letter { display: inline-block; transition: color .2s, text-shadow .2s, translate .3s; }
.spill-title .studio-letter:hover { color: #fff6df; text-shadow: 0 0 14px #fff2cf,0 0 35px #ed9fbd; translate: 0 -9px; }
.spill-bag { position: absolute; z-index: 3; left: 50%; top: 54%; width: min(66vw,680px); height: 76svh; object-fit: contain; transform: translate(-50%,-50%); filter: drop-shadow(0 24px 22px #4d283c30); }
.spill-hint { position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%); font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #723b57; pointer-events: auto; }
.spill-hint span { display: block; text-align: center; margin-top: 12px; }
.spill-extra { position: absolute; left: 50%; top: 57%; width: clamp(65px,12vw,155px); height: clamp(95px,17vw,190px); object-fit: contain; opacity: 0; }
.spill-flight { position: fixed; inset: 0; z-index: 40; pointer-events: none; }
.spill-flight img { position: absolute; object-fit: contain; visibility: hidden; filter: drop-shadow(5px 10px 6px #47333b25); }
@media (max-width:700px) {
 .spill-title { top: 30%; font-size: 9vw; }
 .spill-bag { width: 94vw; height: 65svh; top: 51%; }
}
@media (prefers-reduced-motion:reduce) {
 .bag-spill.spill-motion { height: 100svh; margin-bottom: 0; }
 .spill-title .studio-letter { transition: none; }
 .spill-flight { display: none; }
}
.bag-combined .bag-chapter-heading > img { transform: none; }

/* After-dark skyline and connected handwritten lettering. */
.spill-scene { background: transparent; --city-opacity: 1; --city-scroll: 0px; }
.spill-city { position: absolute; inset: 0; opacity: var(--city-opacity); overflow: hidden; background: #100c18; transform: translateZ(0); }
.spill-city-photo { position: absolute; inset: -9%; background: url('assets/studio/waterfront.jpeg') center 78% / cover no-repeat; filter: brightness(.55) saturate(.65); translate: 0 var(--city-scroll); animation: spill-city-drift 26s ease-in-out infinite alternate; }
.spill-city-shade { position: absolute; inset: 0; background: linear-gradient(180deg,#160c2399,#21102345 45%,#080714b3),radial-gradient(ellipse at 50% 38%,transparent 20%,#09071680 100%); }
.spill-city-lights { position: absolute; inset: 35% -20% -20%; background: radial-gradient(ellipse at 22% 65%,#ed95bd26,transparent 22%),radial-gradient(ellipse at 76% 55%,#d7b78720,transparent 18%); mix-blend-mode: screen; animation: spill-city-reflections 12s ease-in-out infinite alternate; }
.spill-title { top: 10%; padding: 0 15px; font-family: 'Great Vibes', 'Snell Roundhand', 'Brush Script MT', cursive; font-weight: 400; font-size: clamp(62px,10.6vw,170px); line-height: 1.35; letter-spacing: -.025em; color: #f1d1e0; text-shadow: 0 3px 20px #0008,0 0 40px #d48aa333; transform: rotate(-5deg); }
.spill-script-word { display: inline-block; animation: spill-script-float 6s ease-in-out infinite alternate; animation-delay: calc(var(--word) * -1.4s); transition: color .3s,text-shadow .3s; }
.spill-script-word:hover { color: #fff6df; text-shadow: 0 0 12px #ffe4d4,0 0 35px #f193bb,0 0 65px #ed77ba; }
.spill-bag { filter: url('#spill-soft-edge') brightness(.87) saturate(.9) drop-shadow(0 22px 25px #09040b80); }
.spill-hint { color: #ecd2e0; text-shadow: 0 2px 8px #000; }
.spill-filter { position: absolute; pointer-events: none; }
@keyframes spill-city-drift { from { transform: scale(1.03) translateX(-1.5%); } to { transform: scale(1.13) translateX(1.5%); } }
@keyframes spill-city-reflections { from { transform: translateX(-3%); opacity: .5; } to { transform: translateX(4%); opacity: 1; } }
@keyframes spill-script-float { from { transform: translateY(0) rotate(-1deg); } to { transform: translateY(-7px) rotate(1deg); } }
@media (max-width:700px) { .spill-title { top: 25%; font-size: clamp(48px,12vw,76px); padding: 0 8px; }.spill-city-photo { background-position: 50% 85%; } }
@media (prefers-reduced-motion:reduce) { .spill-city-photo,.spill-city-lights,.spill-script-word { animation: none; }.spill-script-word { transition: none; } }

/* Small composition refinements, with burgundy and violet accents. */
.spill-title { top: 14%; transform: none; color: #f3e5ce; }
.spill-script-word { animation: none; }
.spill-script-word:hover { color: #fff4d7; text-shadow: 0 0 12px #ffe8b7,0 0 35px #c5a5de; }
.spill-bag { top: 61%; height: 71svh; }
.spill-hint { top: 10%; bottom: auto; z-index: 4; color: #ead9ba; font-size: 10px; }
.spill-hint span { display: inline; margin: 0 0 0 8px; }
.spill-stars { position: absolute; inset: 0; opacity: var(--city-opacity); pointer-events: none; }
.spill-stars img { position: absolute; width: 45px; height: 45px; filter: drop-shadow(0 0 9px #ead18c26); }
.spill-stars img:nth-child(1) { left: 18%; top: 42%; transform: rotate(-12deg); }
.spill-stars img:nth-child(2) { right: 17%; top: 57%; width: 32px; height: 32px; transform: rotate(16deg); }
.spill-stars img:nth-child(3) { left: 25%; top: 79%; width: 23px; height: 23px; }
.spill-stars img:nth-child(4) { right: 25%; top: 34%; width: 25px; height: 25px; transform: rotate(25deg); }
.selected-work { background: #461627; color: #f0e3cc; }
.selected-work .cf-caption h3 { color: #f5e8cf; }
.selected-work .cf-caption dt { color: #d5c6df; }
.selected-work .cf-caption dd { color: #ead18c; }
.selected-work .cf-nav { background: #f1e6d9; border-color: #dcc8aa; color: #501c31; }
.selected-work .cf-nav:hover { background: #ead18c; }
.selected-work .cf-pagination button::after { background: #f1dfb4; }
.selected-work .cf-frame:focus-visible { outline-color: #ead18c; }
.selected-work .cf-image-link:focus-visible { outline-color: #ead18c; }
.bag-open.section-pad { background: #e2d9e7; }
@media (max-width:700px) {
 .spill-title { top: 23%; }
 .spill-hint { top: 18%; font-size: 9px; white-space: nowrap; }
 .spill-bag { top: 58%; height: 63svh; }
 .spill-stars img:nth-child(1) { left: 7%; top: 38%; width: 28px; height: 28px; }
 .spill-stars img:nth-child(2) { right: 6%; top: 75%; width: 24px; height: 24px; }
 .spill-stars img:nth-child(3) { left: 17%; top: 82%; width: 18px; height: 18px; }
 .spill-stars img:nth-child(4) { right: 8%; top: 35%; width: 19px; height: 19px; }
}

/* A contained phrase scroller against the evening city. */
.chat.section-pad { position: relative; isolation: isolate; background: #211327; color: #f2e6d6; }
.chat.section-pad::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg,#210f21e8,#23132cbd),url('assets/studio/contact-city.gif') center / cover no-repeat; }
.chat .section-index { color: #e6d5bc; border-color: #eadcc533; }
.chat h2, .chat .eyebrow, .chat .opportunity { color: #f1e0c6; }
.chat .tags span { background: #54334e; color: #f4e9d9; border-color: #ac92b14d; }
.chat .contact-actions a { color: #f4e7d3; background: #684057; border-color: #c4a1b06b; }
.chat .contact-actions a:hover { background: #ead18c; color: #461627; }
#skills-finale { min-width: 0; align-self: stretch; }
.capability-panel { position: sticky; top: 20vh; width: 100%; height: 310px; padding: 22px; background: #331c35d9; border: 1px solid #c5a9ce45; border-radius: 24px; backdrop-filter: blur(12px); box-shadow: 0 15px 45px #130b2226; }
.capability-line { display: grid; grid-template-columns: max-content minmax(0,1fr); align-items: center; gap: 15px; }
.capability-prefix { margin: 0; font: 400 clamp(28px,3.1vw,45px)/1.15 Georgia,serif; letter-spacing: -.04em; color: #f4ead9; }
.capability-viewport { height: 210px; overflow-y: auto; scroll-snap-type: y mandatory; scrollbar-width: none; touch-action: pan-y; border-radius: 10px; }
.capability-viewport::-webkit-scrollbar { display: none; }
.capability-viewport:focus-visible { outline: 2px solid #ead18c; outline-offset: 3px; }
.capability-phrase { height: 100%; scroll-snap-align: start; scroll-snap-stop: always; display: flex; align-items: center; font: 400 clamp(30px,3.4vw,49px)/1.13 Georgia,serif; letter-spacing: -.045em; color: #cbb6e2; }
.capability-phrase[data-tone="1"] { color: #ead18c; }
.capability-phrase[data-tone="2"] { color: #f0dfce; }
.capability-controls { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid #dac6df26; }
.capability-controls p { margin: 0 auto 0 0; font-size: 10px; color: #d6c7dc; }
.capability-controls > span { font: 10px monospace; color: #ead18c; white-space: nowrap; }
.capability-controls button { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #bda5cd55; border-radius: 50%; color: #f1e0c6; background: #63364f; }
.capability-controls button:disabled { opacity: .3; }
@media (max-width:700px) { .capability-panel { position: relative; top: auto; margin-top: 30px; padding: 18px; height: 300px; }.capability-phrase { font-size: 32px; }.capability-line { gap: 12px; }.capability-controls p { max-width: 120px; line-height: 1.5; } }
@media (prefers-reduced-motion:reduce) { .chat.section-pad::before { background-image: linear-gradient(110deg,#210f21e8,#23132cbd),url('assets/studio/contact-city-still.jpg'); } }

/* Compact contact layout; preserve the full skyline without cropping. */
.chat.section-pad { padding: 90px 6vw 45px; min-height: 100svh; display: flex; flex-direction: column; justify-content: center; }
.chat.section-pad::before { background: linear-gradient(110deg,#210f2173,#23132c40),url('assets/studio/contact-city.gif') center / contain no-repeat; }
.chat .section-index { padding-bottom: 15px; margin-bottom: 25px; }
.chat-grid { gap: 4vw; align-items: center; }
.contact-bio { padding: 24px; background: #251323d9; border: 1px solid #c5a9ce30; border-radius: 20px; }
.contact-intro { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.chat .contact-intro .personal-photo { width: 120px; min-width: 120px; padding: 6px; margin: 0; transform: rotate(-3deg); }
.chat .contact-intro .personal-photo img { width: 100%; height: 150px; object-fit: cover; }
.chat .contact-intro h2 { font-size: clamp(36px,4.5vw,62px); margin: 0 0 12px; }
.chat .contact-intro p { font-size: 12px; line-height: 1.6; margin: 0; }
.chat .contact-bio > p { font-size: 13px; line-height: 1.65; margin-bottom: 13px; }
.chat .contact-bio > .eyebrow { font-size: 9px; margin: 16px 0 6px; }
.chat .tags { gap: 6px; margin: 0 0 15px; }
.chat .tags span { font-size: 10px; padding: 6px 9px; }
.chat .contact-actions { gap: 8px; margin-top: 18px; }
.chat .contact-actions a { font-size: 12px; padding: 10px 16px; }
.chat #skills-finale { align-self: center; }
.chat .capability-panel { position: relative; top: auto; height: 300px; backdrop-filter: none; background: #331c35e8; }
.capability-line { grid-template-columns: 100px minmax(0,1fr); }
.capability-prefix { font-size: 36px; white-space: nowrap; }
@media (max-width:1000px) and (min-width:701px) { .contact-intro { gap: 14px; }.chat .contact-intro .personal-photo { width: 85px; min-width: 85px; }.chat .contact-intro .personal-photo img { height: 120px; }.contact-bio { padding: 18px; }.capability-line { grid-template-columns: 75px minmax(0,1fr); }.capability-prefix { font-size: 28px; } }
@media (max-width:700px) {
 .chat.section-pad { padding: 85px 20px 35px; }
 .chat-grid { gap: 20px; }
 .contact-bio { padding: 18px; }
 .contact-intro { gap: 15px; }
 .chat .contact-intro .personal-photo { width: 80px; min-width: 80px; }
 .chat .contact-intro .personal-photo img { height: 108px; }
 .chat .contact-intro h2 { font-size: 38px; }
 .chat .contact-intro p { font-size: 10px; }
 .chat .capability-panel { margin-top: 0; height: 270px; padding: 16px; }
 .capability-viewport { height: 185px; }
 .capability-prefix { font-size: 28px; }
 .capability-line { grid-template-columns: 76px minmax(0,1fr); }
 .capability-phrase { font-size: 30px; }
 .chat.section-pad::before { background-position: center,center 30%; }
}
@media (prefers-reduced-motion:reduce) { .chat.section-pad::before { background-image: linear-gradient(110deg,#210f2173,#23132c40),url('assets/studio/contact-city-still.jpg'); } }

/* Extend the city silhouette to the viewport edges without resizing the portrait. */
.studio-skyline-extension { position: absolute; bottom: 0; left: 0; width: 100%; height: 27%; object-fit: fill; z-index: 2; pointer-events: none; }
@media (max-width:700px) { .studio-skyline-extension { height: 20%; } }

/* A continuous, oversized cream photobooth strip. */
#hero-title, #hero-title em { color: #461627; }
.photobooth { --photo-width: clamp(240px,42vw,500px); }
.photobooth-viewport { width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; border-radius: 3px; }
.photobooth-viewport::-webkit-scrollbar { display: none; }
.photobooth-viewport:active { cursor: grabbing; }
.photobooth-viewport:focus-visible { outline: 2px solid #ead18c; outline-offset: 6px; }
.photobooth-track { display: flex; width: max-content; padding: 24px max(0px,calc((100vw - 12vw - var(--photo-width)) / 2)); background: #f3e7cd; box-shadow: inset 0 2px 0 #fff6,inset 0 -2px 0 #c9b38d; }
.photobooth-frame { width: var(--photo-width); flex: none; padding: 0 14px; scroll-snap-align: center; user-select: none; }
.photobooth-frame a { display: grid; place-items: center; height: clamp(270px,31vw,380px); background: #231620; border: 1px solid #baa890; overflow: hidden; }
.photobooth-frame img { display: block; width: 100%; height: 100%; object-fit: contain; min-height: 0; }
.photobooth-number { display: block; margin-top: 16px; text-align: center; font: 10px monospace; letter-spacing: 2px; color: #5d343d; }
.photobooth-caption-row { display: flex; justify-content: center; align-items: center; gap: clamp(15px,5vw,70px); margin-top: 25px; }
.photobooth-arrow { width: 42px; height: 42px; flex: none; border-radius: 50%; display: grid; place-items: center; color: #461627; background: #f3e7cd; border: 1px solid #ead18c; }
.photobooth-arrow:disabled { opacity: .3; }
@media(max-width:700px) { .photobooth-track { padding: 18px max(0px,calc((100vw - 32px - var(--photo-width)) / 2)); }.photobooth-frame { padding: 0 9px; }.photobooth-caption-row { gap: 8px; }.photobooth .cf-caption { padding: 8px; }.photobooth .cf-caption dl { width: 185px; } }
.selected-work h2.portfolio-section-title { font-family: 'Great Vibes', 'Snell Roundhand', 'Brush Script MT', cursive; font-size: clamp(62px,7.5vw,108px); line-height: 1.2; font-weight: 400; letter-spacing: 0; }

.bag-combined { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4vw; }
.bag-combined .bag-chapter { padding: 24px 0; }
.bag-combined .bag-skills { border-left: 0; padding-left: 0; }
.bag-combined .bag-chapter-heading { align-items: center; }
.bag-combined .skills-cloud-layout { display: block; }
.bag-combined .skills-evidence { padding: 0; }
.toolkit-hint { margin: 0 0 20px; font-size: 14px; }
.skill-buttons { gap: 9px; }
.skill-buttons button { font-size: 13px; line-height: 1.4; padding: 10px 14px; }
.skill-buttons button[aria-pressed='true'] { font-weight: 700; }
.skill-detail { min-height: 130px; margin: 22px 0; padding: 20px; border: 1px solid #93758740; border-radius: 12px; background: #ffffff40; }
.skill-detail-title { margin: 0 0 8px; font-size: 17px; }
.skill-detail p:last-child { margin-bottom: 0; font-size: 14px; line-height: 1.65; }
.bag-combined .certification-list { padding-top: 24px; }
.bag-combined .gallery-grid-card:nth-child(n) { transform: none; }
/* Large filtered layers were repainted throughout the bag rotation. */
.spill-bag { filter: none; will-change: transform, opacity; }
.spill-extra { will-change: transform, opacity; }
.spill-flight img { left: 0; top: 0; filter: none; will-change: transform, opacity; }
.spill-city-photo { animation: none; filter: none; }
.spill-city-shade { background: linear-gradient(180deg,#160c23b3,#21102380 45%,#080714cc); }
.spill-city-lights { animation: none; mix-blend-mode: normal; }
.chat .contact-intro .personal-photo { overflow: hidden; padding: 0; transform: none; border: 5px solid #f1e0c6; }
.chat .contact-intro .personal-photo img { transform: scale(1.8); transform-origin: 49% 65%; }
@media (max-width:1000px) {
  .bag-combined { grid-template-columns: 1fr; }
  .bag-combined .bag-skills { border-top: 1px solid #93758740; padding-top: 35px; }
}
@media (prefers-reduced-motion:reduce) {
  .spill-bag, .spill-extra, .spill-flight img { will-change: auto; }
}

/* Retain the requested lowercase navigation labels. */
body .adaptive-pill :is(a, button, span), body .fallback-nav :is(a, summary) {
  text-transform: lowercase;
}

/* A fixed booth outlet feeds a continuous, manually browsed film strip. */
.photobooth { --booth-width: clamp(105px,13vw,175px); --photo-width: clamp(300px,39vw,500px); --film-height: clamp(310px,32vw,410px); }
.photobooth-machine { position: relative; display: grid; grid-template-columns: var(--booth-width) minmax(0,1fr); align-items: center; padding: 26px 0; isolation: isolate; }
.photobooth-housing { position: relative; z-index: 2; height: calc(var(--film-height) + 74px); border: 1px solid #b18d8770; border-radius: 18px 7px 7px 18px; background: linear-gradient(90deg,#2b131c,#60323f 35%,#42212d 82%,#241219); box-shadow: inset 3px 0 1px #d6b8a325,8px 10px 24px #1c081b55; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 25px; color: #edddc3; }
.photobooth-housing::before, .photobooth-housing::after { content: ''; position: absolute; left: 12px; width: 5px; height: 5px; border-radius: 50%; background: #bfae9a; box-shadow: inset 0 1px 2px #1b1018; }
.photobooth-housing::before { top: 15px; }.photobooth-housing::after { bottom: 15px; }
.photobooth-maker { font: italic 19px Georgia,serif; opacity: .8; }
.photobooth-machine-label { font: 600 clamp(16px,2vw,26px)/1.2 Georgia,serif; letter-spacing: .15em; text-align: center; }
.photobooth-indicator { display: flex; align-items: center; gap: 7px; font-size: 10px; letter-spacing: .08em; }
.photobooth-indicator i { width: 5px; height: 5px; border-radius: 50%; background: #d9bd86; box-shadow: 0 0 7px #d9bd8670; }
.photobooth-slot { position: absolute; right: -10px; top: 24px; bottom: 24px; width: 23px; border: 3px solid #9c8c80; border-radius: 7px; background: #110b10; box-shadow: inset 3px 0 5px #000,2px 0 3px #130911; }
.photobooth-output-label { position: absolute; bottom: 19px; font-size: 8px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.photobooth-viewport { position: relative; z-index: 1; min-width: 0; padding: 0; border-radius: 0; overscroll-behavior-x: contain; }
.photobooth-track { width: max-content; padding: 0 max(0px,calc(100% - var(--photo-width))) 0 0; background: #111013; box-shadow: none; }
.photobooth-frame { position: relative; padding: 25px 15px 32px; background: #111013; scroll-snap-align: start; }
.photobooth-frame::before, .photobooth-frame::after { content: ''; position: absolute; left: 16px; right: 16px; height: 8px; background: repeating-linear-gradient(90deg,#eee5d3 0 2px,transparent 2px 4px,#eee5d3 4px 5px,transparent 5px 9px); opacity: .7; }
.photobooth-frame::before { top: 8px; }.photobooth-frame::after { bottom: 10px; left: auto; width: 35px; }
.photobooth-frame a { height: var(--film-height); border: 6px solid #f4eee3; border-radius: 9px; background: #f4eee3; }
.photobooth-frame img { width: 100%; height: 100%; object-fit: contain; background: #f4eee3; }
.photobooth-number { position: absolute; left: 16px; bottom: 9px; margin: 0; color: #eee5d3; font: 8px/1.2 Georgia,serif; letter-spacing: .16em; }
.photobooth-instruction { margin: 4px 0 0; text-align: center; font-size: 11px; color: #e6d3bb; }
.photobooth-instruction span { margin-left: 8px; }
.photobooth-caption-row { margin-top: 15px; }
@media(max-width:700px) {
 .photobooth { --photo-width: 100%; --film-height: clamp(230px,70vw,320px); }
 .photobooth-machine { display: flex; flex-direction: column; padding: 15px 0 0; max-width: 420px; margin: auto; }
 .photobooth-housing { flex: none; width: 100%; height: 112px; flex-direction: row; gap: 18px; border-radius: 14px 14px 6px 6px; padding-bottom: 12px; }
 .photobooth-machine-label { font-size: 16px; letter-spacing: .1em; }
 .photobooth-maker { font-size: 17px; }
 .photobooth-output-label { bottom: 21px; font-size: 7px; }
 .photobooth-slot { top: auto; bottom: -8px; left: 17px; right: 17px; width: auto; height: 19px; }
 .photobooth-housing::after { left: auto; right: 12px; top: 15px; bottom: auto; }
 .photobooth-viewport { width: calc(100% - 44px); height: calc(var(--film-height) + 70px); overflow-x: hidden; overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior-y: contain; touch-action: pan-y; }
 .photobooth-track { width: 100%; flex-direction: column; padding: 0; }
 .photobooth-frame { width: 100%; padding: 22px 13px 32px; }
 .photobooth-frame a { height: var(--film-height); }
 .photobooth-instruction { margin-top: 17px; }
 .photobooth-arrow svg { transform: rotate(90deg); }
}

/* Keep section lettering intact, with a shared hover glow and fine dividers. */
.section-pad h2.portfolio-section-title { text-transform: none; transition: color .2s ease, text-shadow .2s ease; }
@media (hover:hover) {
 .section-pad h2.portfolio-section-title:hover { color: #fff0d5; text-shadow: 0 0 12px #e4b985,0 0 28px #c98daf,0 0 48px #b075a0; }
}
.selected-work > .portfolio-section-title { padding-bottom: 24px; border-bottom: 1px solid #f0e3cc40; }
.bag-intro { border-bottom: 1px solid #93758740; margin: 0 6vw 20px; padding-left: 0; padding-right: 0; }
.chat.section-pad::before { background-image: linear-gradient(110deg,#210f2173,#23132c40),url('assets/studio/contact-city-still.jpg'); }
@media (prefers-reduced-motion:no-preference) {
 .chat.contact-visible::before { background-image: linear-gradient(110deg,#210f2173,#23132c40),url('assets/studio/contact-city.gif'); }
}
/* Avoid repeatedly blurring the moving page behind each folder. */
.folder-glass { backdrop-filter: none; -webkit-backdrop-filter: none; }
@media (prefers-reduced-motion:reduce) { .section-pad h2.portfolio-section-title { transition: none; } }

.minion-playlist { position: absolute; z-index: 3; left: 4vw; bottom: 148px; width: 250px; padding: 16px; border: 1px solid #ffffff25; border-radius: 18px; background: #23232bd9; backdrop-filter: blur(22px); }
.minion-playlist ol { list-style: none; padding: 0; margin: 12px 0 0; max-height: min(48svh, 440px); overflow-y: auto; }
.minion-playlist li + li { border-top: 1px solid #ffffff12; }
.minion-playlist a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 2px; color: #fff6d9; text-decoration: none; font-size: 12px; }
.minion-playlist a:hover { color: #f5d76a; }
.minion-playlist small { display: block; margin-top: 3px; color: #b9b4c1; font-size: 10px; }
.minion-playlist a:focus-visible { outline: 2px solid #f5d76a; outline-offset: -2px; }
@media (max-width: 600px) {
  .minion-playlist { left: 16px; bottom: 140px; width: 190px; padding: 12px; }
  .minion-playlist:has([aria-expanded=true]) { width: calc(100% - 32px); }
  .minion-playlist ol { max-height: 38svh; }
  .minion-experience:has(.minion-controls [aria-expanded=true]) .minion-playlist { bottom: 24px; left: auto; right: 16px; width: 170px; }
  .minion-experience:has(.minion-playlist [aria-expanded=true]) .minion-viewport { opacity: .35; }
}
/* Record collection: a draggable arc beside the resident guitarist. */
.minion-experience { background: radial-gradient(ellipse at 23% 60%, #ffdeb3 0%, transparent 47%), radial-gradient(ellipse at 90% 20%, #e5cdef 0%, transparent 52%), #fff5e6; }
.minion-viewport { width: 48%; left: 0; right: auto; }
.minion-hint { left: 4%; right: auto; max-width: 40%; }
.minion-play { left: 20%; right: auto; }
.music-circle { position: absolute; right: 3%; top: 115px; bottom: 25px; width: 47%; color: #462c25; }
.music-circle header { position: relative; z-index: 8; pointer-events: none; }
.music-circle header > span { font: 10px/1.5 monospace; letter-spacing: .2em; }
.music-circle h3 { font: italic 38px/1.1 Georgia,serif; margin: 8px 0; }
.music-circle header p { font-size: 12px; }
.music-enable { position:absolute; right: 0; top: 8px; z-index: 10; border: 1px solid #a98571; border-radius: 30px; padding: 10px 14px; background: #fff6e9; font-size: 12px; }
.record-orbit { position: absolute; inset: 105px -5% 155px 0; overflow: hidden; cursor: grab; touch-action: none; border-radius: 30px; }
.record-orbit:active { cursor: grabbing; }
.record-card { position: absolute; left: 12%; top: calc(50% - 100px); width: 190px; border: 0; padding: 0; background: none; text-align: left; color: inherit; transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .4s; cursor: pointer; }
.record-sleeve { display: block; position: relative; height: 190px; width: 190px; }
.record-sleeve img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; border-radius: 5px; box-shadow: 0 13px 25px #452c2530; pointer-events: none; }
.record-disc { position: absolute; width: 180px; height: 180px; top: 5px; left: 5px; border-radius: 50%; background: repeating-radial-gradient(circle, #171719 0 2px, #303034 3px 4px); box-shadow: 3px 5px 10px #0003; transition: translate .45s; display: grid; place-items: center; }
.record-disc::after { content: ''; position: absolute; width: 14px; height: 14px; border-radius:50%; background: #fff0df; border: 19px solid #a54431; }
.record-disc > span { font: 8px monospace; color: #fff; position: absolute; top: 48px; }
.record-card:hover .record-disc, .record-card.is-playing .record-disc { translate: 80px 0; animation: record-spin 5s linear infinite; }
.record-caption { display: block; padding: 10px 0; text-shadow: 0 1px 5px #fff5e6; }
.record-caption strong, .record-caption small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.record-caption strong { font-size: 13px; }
.record-caption small { font-size: 11px; margin-top: 3px; }
.music-transport { position: absolute; bottom: 0; left: 0; right: 0; padding: 13px 20px; border: 1px solid #a9857133; border-radius: 20px; background: #fffaf0d9; backdrop-filter: blur(14px); z-index: 8; }
.music-transport > strong,.music-transport > small { display:block; padding-right:50px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.music-transport > strong { font-size: 14px; }.music-transport > small { font-size: 11px; margin-top: 3px; }
.music-counter { float:right; font:10px monospace; }
.music-buttons { display:flex; justify-content:center; gap:24px; margin:8px 0; }
.music-buttons button { border:0; width:32px; height:32px; border-radius:50%; background:#f2dfca; cursor:pointer; }.music-buttons button:nth-child(2) { background:#663628; color:#fff6e9; }
.music-transport input { width:100%; accent-color:#9e4d35; height:4px; display:block; }
.music-times { display:flex; justify-content:space-between; font:9px monospace; margin:5px 0; }
.music-transport a { color:inherit; font-size:10px; }.music-transport p { font-size:11px; margin:3px 0 0; }
.music-notes { position:absolute; inset:0; pointer-events:none; overflow:hidden; }.music-notes span { position:absolute; bottom:32%; color:#955039; font-size:32px; opacity:0; animation: note-flow 3.5s infinite ease-out; }
@keyframes record-spin { to { rotate:360deg; } } @keyframes note-flow { 15% { opacity:.65; } to { transform:translate(55px,-200px) rotate(25deg); opacity:0; } }
@media(max-width:700px) { .minion-viewport { width:100%; height:40%; top:75px; }.minion-hint,.minion-play { display:none; }.music-circle { top:44%; width:94%; right:3%; bottom:12px; }.music-circle h3 { font-size:25px; }.music-circle header p { display:none; }.record-orbit { inset:50px 0 147px; }.record-card { width:110px; left:25%; top:calc(50% - 60px); }.record-sleeve { width:110px; height:110px; }.record-disc { width:104px; height:104px; top:3px; }.record-card:hover .record-disc,.record-card.is-playing .record-disc { translate:48px 0; }.record-disc > span { display:none; }.record-caption { padding:4px 0; }.record-caption strong { font-size:11px; }.record-caption small { font-size:9px; }.music-enable { padding:8px; font-size:10px; }.music-transport { padding:9px 14px; }.music-buttons { margin:4px; } }
@media(prefers-reduced-motion:reduce) { .record-card,.record-disc { transition:none; }.record-disc,.music-notes span { animation:none !important; }.music-notes { display:none; } }
.minion-header h2 { color:#563a30; }.minion-header span { color:#876856; }.minion-header button { color:#563a30; border-color:#87685655; background:#fff6e980; cursor:pointer; }
.minion-hint { transform:none; color:#876856; }
.minion-dialog.is-sequencing { background:transparent; pointer-events:none; overflow:visible; }
.is-sequencing .minion-experience { background:transparent; overflow:visible; }
.is-sequencing .minion-header,.is-sequencing .minion-hint,.is-sequencing .minion-play { display:none; }
.is-finishing .bag-cutout { animation: minion-bag-exit 3.2s ease-in-out forwards; }
@keyframes minion-bag-exit { 0%,39% { transform:translateX(0) rotate(0); } 67%,100% { transform:translateX(100vw) rotate(15deg); } }
@media(prefers-reduced-motion:reduce) { .is-finishing .bag-cutout { animation-duration:.64s; } }
/* Open record arc, inspired by the user's side-entry layout. */
.music-circle { top:32px; right:0; bottom:0; width:50%; }
.music-circle header { margin-left:4%; }
.music-circle h3 { font:36px/1.15 Georgia,serif; margin:12px 0; letter-spacing:-1.4px; }
.music-circle header p { font-size:11px; color:#876856; }
.music-enable { top:auto; bottom:28px; left:4%; right:auto; background:transparent; border-color:#a9857155; }
.record-orbit { inset:135px 0 65px 0; overflow:visible; border-radius:0; }
.record-card { left:16%; top:calc(50% - 90px); width:154px; transform:translate(var(--arc-x),var(--arc-y)); transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .3s; text-decoration:none; }
.record-orbit.is-dragging .record-card { transition:none; cursor:grabbing; }
.record-sleeve { width:154px; height:154px; }
.record-sleeve img { border-radius:3px; box-shadow:0 8px 22px #452c251e; }
.record-disc { width:146px; height:146px; top:4px; left:4px; translate:56px 0; }
.record-card:hover .record-disc,.record-card.is-playing .record-disc { translate:75px 0; }
.record-caption { padding:8px 0 0; width:230px; }
.record-caption strong,.record-caption small { white-space:normal; overflow:visible; line-height:1.2; }
.record-caption strong { font-size:12px; }.record-caption small { font-size:10px; margin-top:3px; }
.music-browse-hint { position:absolute; bottom:29px; right:6%; font:10px monospace; color:#876856; }.music-browse-hint span { font-size:17px; margin-left:12px; }
.record-card:focus-visible { outline:2px solid #9e4d35; outline-offset:8px; border-radius:3px; }
@media(min-width:1000px) and (min-height:800px) { .record-card { width:180px; top:calc(50% - 110px); }.record-sleeve { width:180px; height:180px; }.record-disc { width:172px; height:172px; }.record-card { transform:translate(var(--arc-x),calc(var(--arc-y) * 1.27)); } }
@media(max-width:700px) { .music-circle { top:46%; width:100%; bottom:0; }.music-circle header { margin-left:6%; }.music-circle h3 { font-size:27px; margin:5px 0; }.music-circle header p { display:block; font-size:10px; margin:4px 0; }.record-orbit { inset:100px 0 46px; }.record-card { left:20%; width:105px; top:calc(50% - 65px); transform:translate(calc(var(--arc-x) * .8),calc(var(--arc-y) * .85)); }.record-sleeve { width:105px; height:105px; }.record-disc { width:99px; height:99px; translate:40px 0; }.record-card:hover .record-disc,.record-card.is-playing .record-disc { translate:50px 0; }.record-caption { width:190px; }.record-caption strong { font-size:10px; }.record-caption small { font-size:9px; }.music-enable { bottom:12px; left:6%; }.music-browse-hint { bottom:13px; font-size:8px; } }
@media(max-width:700px) {
  .record-orbit { inset:110px 0 50px; }
  .record-card { width:88px; top:calc(50% - 65px); transform:translate(calc(var(--arc-x) * .8),calc(var(--arc-y) * .57)); }
  .record-sleeve { width:88px; height:88px; }
  .record-disc { width:82px; height:82px; translate:33px 0; }
  .record-caption { padding-top:5px; width:175px; }
  .record-caption strong { font-size:9px; }.record-caption small { font-size:8px; }
}
/* Scroll-operated collection and a tactile tonearm. */
.music-circle header p { line-height:1.65; }
.music-enable { top:143px; bottom:auto; left:4%; padding:12px 20px; background:#6b392d; color:#fff7e9; border:1px solid #6b392d; box-shadow:0 5px 16px #6b392d24; font-weight:600; cursor:pointer; }
.music-enable[aria-pressed=true] { background:#fff5e6; color:#6b392d; }
.record-orbit { inset:205px 0 40px; overflow-y:auto; overflow-x:hidden; scrollbar-width:none; touch-action:pan-y; overscroll-behavior:contain; cursor:auto; }
.record-orbit::-webkit-scrollbar { display:none; }.record-orbit:active { cursor:auto; }
.record-stage { position:sticky; top:0; height:100%; width:100%; pointer-events:none; }
.record-card { pointer-events:auto; left:5%; transition:opacity .2s; }
.record-scroll-space { height:1620px; pointer-events:none; }
.vinyl-player { position:absolute; width:clamp(160px,21vw,310px); aspect-ratio:1; right:1%; top:calc(50% + 40px); transform:translateY(-50%); z-index:7; }
.vinyl-platter { width:100%; height:100%; border-radius:50%; background:repeating-radial-gradient(circle,#171719 0 3px,#414143 4px,#1a1a1c 6px); border:7px solid #adaba6; box-shadow:0 0 0 3px #535050,0 18px 32px #40251d25; display:grid; place-items:center; }
.vinyl-label { width:31%; height:31%; border-radius:50%; background:#b75130; border:4px solid #e6a87f; color:#ffeac9; display:flex; flex-direction:column; align-items:center; justify-content:center; font:9px/1.4 monospace; text-align:center; letter-spacing:1px; }
.vinyl-label span { width:9px; height:9px; background:#d9d6cf; border-radius:50%; margin-top:5px; }
.needle-pivot { position:absolute; right:8%; top:3%; width:28px; height:28px; border-radius:50%; background:radial-gradient(circle,#e9e5de 0 20%,#777 25% 40%,#bab5aa 45%); box-shadow:0 3px 5px #0006; }
.vinyl-needle { position:absolute; top:3%; right:calc(8% - 8px); width:44px; height:70%; transform-origin:50% 14px; touch-action:none; cursor:grab; }
.vinyl-needle:active { cursor:grabbing; }.vinyl-needle:focus-visible { outline:2px dashed #a34d34; outline-offset:5px; border-radius:15px; }
.needle-arm { position:absolute; left:17px; top:14px; width:10px; height:82%; background:linear-gradient(90deg,#777,#f6f3e9 40%,#999); box-shadow:3px 3px 4px #0005; border-radius:5px; }
.needle-head { position:absolute; left:12px; bottom:0; width:20px; height:30px; background:linear-gradient(90deg,#454348,#a5a2a3,#555); border-radius:3px; border-bottom:5px solid #d6b77f; }
.vinyl-state { display:block; text-align:center; margin-top:20px; font:8px monospace; letter-spacing:1.3px; color:#876856; }
@media(min-width:1000px) and (min-height:800px) { .record-card { width:150px; top:calc(50% - 90px); transform:translate(var(--arc-x),var(--arc-y)); }.record-sleeve { width:150px; height:150px; }.record-disc { width:142px; height:142px; } }
@media(max-width:700px) { .music-circle { top:43%; }.music-circle h3 { font-size:25px; }.music-circle header p { font-size:9px; }.music-enable { top:112px; left:6%; bottom:auto; padding:10px 14px; font-size:11px; }.record-orbit { inset:160px 0 32px; }.record-card { left:5%; }.vinyl-player { width:145px; right:5%; top:calc(50% + 78px); }.vinyl-label { font-size:6px; border-width:2px; }.vinyl-platter { border-width:4px; }.vinyl-state { font-size:6px; margin-top:12px; }.record-caption { width:135px; }.music-browse-hint { bottom:5px; } }
.vinyl-player { right:7%; }
@media(min-width:701px) { .record-card { transform:translate(var(--arc-x),calc(var(--arc-y) * 1.12)); } }
@media(max-width:700px) {
  .record-card { top:calc(50% - 48px); width:72px; transform:translate(calc(var(--arc-x) * .8),calc(var(--arc-y) * .53)); }
  .record-sleeve { width:72px; height:72px; }.record-disc { width:66px; height:66px; translate:28px 0; }
  .vinyl-player { right:8%; }
}
.photobooth-frame .photobooth-video{display:block;position:relative;width:100%;height:var(--film-height);padding:0;border:6px solid #f4eee3;border-radius:9px;background:#f4eee3;overflow:hidden;cursor:pointer}.photobooth-video video{display:block;width:100%;height:100%;object-fit:contain}.photobooth-play-label{position:absolute;left:0;right:0;bottom:0;background:#241523dc;color:#fff8ef;padding:8px;font:9px/1.5 monospace}.selected-folder-link{display:inline-block;font:10px monospace;margin-top:12px;border-bottom:1px solid currentColor;padding-bottom:4px}.selected-video-dialog{position:fixed;inset:0;margin:auto;width:min(1000px,94vw);max-width:94vw;height:92vh;max-height:92vh;background:#241523;color:#fff8ef;padding:20px;border:1px solid #fff6}.selected-video-dialog[open]{display:flex;flex-direction:column;gap:15px}.selected-video-dialog::backdrop{background:#160d18e8;backdrop-filter:blur(6px)}.selected-video-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0}.selected-video-toolbar h2{font:14px monospace;letter-spacing:0;margin:0}.selected-video-toolbar button{background:transparent;color:inherit;border:1px solid #fff7;padding:9px 14px}.selected-video-dialog>video{width:100%;flex:1;min-height:0;object-fit:contain}.selected-video-dialog>a{font:11px monospace;align-self:center;flex-shrink:0;padding:8px}.photobooth .cf-caption h3 a:hover,.selected-folder-link:hover{text-decoration:underline}
.gallery-grid-card small{display:block;font:10px/1.7 monospace;margin:8px 12px;color:inherit}.gallery-grid-card .creative-piece-count{opacity:.7}.gallery-dialog .gallery-dialog-card{width:min(1050px,90vw);max-height:90vh;display:flex;flex-direction:column;align-items:center;padding:30px 25px 20px;overflow:hidden}.gallery-dialog .gallery-dialog-card>img{width:auto;height:auto;max-width:100%;max-height:66vh;min-height:0;object-fit:contain}.gallery-dialog .gallery-dialog-card h2{font-size:25px;letter-spacing:-.03em;margin:15px 0 5px}.gallery-dialog .gallery-dialog-card>p{font-size:12px;text-align:center;margin:0;line-height:1.6}.creative-album-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:16px;flex-shrink:0}.creative-album-controls button{background:transparent;color:inherit;border:1px solid currentColor;padding:7px;display:grid;place-items:center}.creative-album-controls button:disabled{opacity:.25}.creative-album-controls span{font:11px monospace}@media(max-width:500px){.gallery-dialog .gallery-dialog-card{padding:40px 12px 18px}.gallery-dialog .gallery-dialog-card>img{max-height:58vh}}
.gallery-space-card img{width:100%;height:auto;object-fit:contain}.bag-open .gallery-grid-card img{width:100%;height:auto;max-height:none;object-fit:contain}.creative-grid{align-items:start}
