@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#111410;color:#f1f2e9;font:16px/1.6 'DM Sans',system-ui,sans-serif}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #c3f65b;outline-offset:5px}.skip{position:absolute;left:1rem;top:-6rem}.skip:focus{top:1rem;z-index:9;background:#111;padding:1rem}header,footer,main{padding-inline:max(5vw,1rem)}header,footer{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding-block:1.25rem;border-bottom:1px solid #353c31}footer{border-top:1px solid #353c31;flex-wrap:wrap;color:#cbd1c3}footer p{margin:.25rem 0}nav,.actions{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}nav a,.brand{text-decoration:none}.brand{font-weight:700;white-space:nowrap}.brand b{background:#c3f65b;color:#111410;padding:.35rem .5rem;margin-right:.35rem}.brand small{font-size:.65rem}.button,button{display:inline-block;background:#c3f65b;color:#111410;border:0;border-radius:4px;font:700 .9rem 'DM Sans',sans-serif;padding:.85rem 1.05rem;text-decoration:none;cursor:pointer}.secondary{font-weight:700;text-underline-offset:.25em}main{max-width:1600px;margin:auto}section{padding-block:clamp(1.75rem,4vw,4rem)}.intro{padding-bottom:.25rem}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:center;min-height:65vh}.eyebrow{font:700 .78rem 'Space Mono',monospace;text-transform:uppercase;letter-spacing:.12em;color:#c3f65b}h1,h2,h3{line-height:1.02;margin:.35em 0;letter-spacing:-.045em}h1{font-size:clamp(2.55rem,6.5vw,6.5rem);max-width:15ch}h2{font-size:clamp(2rem,4.5vw,4rem)}h3{font-size:1.45rem}.lede{font-size:clamp(1rem,2vw,1.25rem);max-width:58ch;color:#cbd1c3}.hero-art{position:relative;display:block;min-height:390px;background:#24291f;border-radius:8px;overflow:hidden}.hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-art div{position:absolute;inset:auto 0 0;padding:3rem 1.5rem 1.25rem;background:linear-gradient(transparent,#111);display:grid}.hero-art strong{font-size:1.85rem}.grid{display:grid;gap:1rem}.work{grid-template-columns:repeat(2,1fr)}.services{grid-template-columns:repeat(3,1fr)}.card{display:block;border:1px solid #353c31;border-radius:8px;background:#1b2019;overflow:hidden;text-decoration:none}.card:hover{border-color:#c3f65b}.card p{color:#cbd1c3}.card span:not(.art span){color:#c3f65b}.pad{padding:1.25rem}.art{min-height:clamp(160px,24vw,350px);display:grid;place-items:center;text-align:center;font:clamp(1.8rem,5vw,5rem)/.95 Georgia,serif}.fashion-art{background:#e5d3c2;color:#24201f;letter-spacing:.08em}.jazz-art{background:#322318 url('/armstrong.jpg') center/cover;color:white;text-shadow:0 2px 18px #000,0 2px 8px #000}.band{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid #353c31}.feature{width:min(100%,650px);height:auto}.intro+section{padding-top:1rem}blockquote{margin:0;font-size:1.3rem}cite{font-size:.9rem}
@media(max-width:820px){header{flex-wrap:wrap}header nav{order:3;width:100%}.hero{grid-template-columns:1fr}.hero-art{min-height:310px}.services{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.work,.services{grid-template-columns:1fr}header .button{font-size:.75rem;padding:.65rem}.brand small{display:none}.hero-art{min-height:260px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Cognac leather palette and concert artwork */
body{background:#5c311e url('/cognac-grain.jpg') repeat;color:#fff6e9}
header,footer{background:#32190f;border-color:#aa7351}
.lede,.card p,footer{color:#f4dfcb}
.card{background:#462417;border-color:#a66c47}
.band{border-color:#ab7453}
.hero-art,.jazz-art{background:#32190f}
.hero-art img{object-fit:contain;object-position:center top;position:relative;display:block;height:clamp(310px,43vw,550px)}
.hero-art div{position:static;background:#32190f;padding:.85rem 1.2rem}
.jazz-art img{display:block;width:100%;height:clamp(230px,30vw,400px);object-fit:contain}
.listen{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-block:.75rem;color:#fff6e9}
.listen label{font-weight:700}
.listen audio{max-width:100%}

.bee-art{background:#e6b768;color:#32190f}
@media(min-width:1000px){.work{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Brand and heading hierarchy */
header .brand{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:center;column-gap:.65rem;color:#fff8ee;font-size:clamp(1.45rem,3vw,2.05rem);line-height:1.08;letter-spacing:.04em}
header .brand b{grid-row:1 / span 2;margin:0;border-radius:4px;font-size:1.35rem;letter-spacing:0;padding:.55rem .65rem}
header .brand small{display:block;grid-column:2;font-size:.7rem;line-height:1.4;letter-spacing:.11em;color:#f4dfcb}
h1,h2,h3{color:#fff8ee;font-weight:700;line-height:1.15;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2.35rem,5.2vw,5.4rem);max-width:19ch}
h2{font-size:clamp(1.9rem,4vw,3.35rem)}
h3{font-size:clamp(1.25rem,2vw,1.6rem)}
.hero-art strong{line-height:1.2}
@media(max-width:480px){header .brand small{font-size:.63rem}header{column-gap:.75rem}}
/* Navigation and motion */
header{position:sticky;top:0;z-index:5;isolation:isolate;background:#32190f;border-bottom:1px solid #d8a77c;box-shadow:0 5px 24px #160a0759}
header nav{gap:.25rem;padding:.25rem;border:1px solid #ad7854;border-radius:.65rem;background:#231109}
header nav a{display:block;padding:.55rem .85rem;border-radius:.4rem;color:#fff6e9;font-weight:700;line-height:1.45}
header nav a:hover,header nav a:focus-visible{color:#281309;background:#f0c797}
body:has(.hero) .skip{z-index:10}
section[id]{scroll-margin-top:9rem}
@media(max-width:820px){header nav{width:100%;justify-content:space-between}}
@media(max-width:480px){header nav a{padding:.48rem .5rem}}
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:150ms ease-out both quest-fade-out}
  ::view-transition-new(root){animation:240ms ease-out both quest-fade-in}
  header nav a,.button,button,.card,.hero-art{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s}
  .button:hover,button:hover{transform:translateY(-2px);box-shadow:0 5px 18px #170a0659}
  .card:hover,.hero-art:hover{transform:translateY(-4px);box-shadow:0 12px 28px #170a0670}
  @supports(animation-timeline:view()){
    main section:not(:first-child) > h2,main .card{animation:quest-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
  }
}
@keyframes quest-reveal{from{opacity:.45;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes quest-fade-out{to{opacity:0}}
@keyframes quest-fade-in{from{opacity:0}}
/* Graphite background with a blueprint grid */
body{
  background-color:#101722;
  background-image:radial-gradient(ellipse at 76% 0%,#234664 0%,transparent 48rem),linear-gradient(#91bdea13 1px,transparent 1px),linear-gradient(90deg,#91bdea13 1px,transparent 1px);
  background-size:100% 58rem,48px 48px,48px 48px;
  background-repeat:no-repeat,repeat,repeat;
}
header,footer{background:#111c2b;border-color:#405974}
header nav,.hero-art,.jazz-art,.hero-art div{background:#142233}
header nav,.card,.band{border-color:#405974}
.card{background:#162334}
header nav a:hover,header nav a:focus-visible{background:#b9dcff;color:#122033}
.about-copy{max-width:74ch}
.about-copy p{font-size:1.08rem;line-height:1.75}
.review-rating h2{font-size:clamp(1.65rem,3vw,2.65rem)}
.review-source{font-size:.86rem;font-weight:700}

/* Page wipes, scroll entrances, and light sweeps */
@media(prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:220ms ease-in both quest-page-out}
  ::view-transition-new(root){animation:520ms cubic-bezier(.19,1,.22,1) both quest-page-in}
  main > :first-child h1{animation:650ms cubic-bezier(.19,1,.22,1) both quest-title}
  .hero-art{animation:750ms cubic-bezier(.19,1,.22,1) both quest-title}
  .card,.button,.hero-art{position:relative;overflow:hidden}
  .card::after,.button::after,.hero-art::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(112deg,transparent 30%,#a4ddff55 50%,transparent 70%);
    transform:translateX(-115%);transition:transform .65s ease;
  }
  :is(.card,.button,.hero-art):is(:hover,:focus-visible)::after{transform:translateX(115%)}
  :is(.card,.hero-art):is(:hover,:focus-visible){box-shadow:0 12px 32px #071421,0 0 24px #54a9ea55}
  @supports(animation-timeline:view()){
    main section:not(:first-child) > h2,main .card{
      animation-name:quest-scroll-in;animation-range:entry 0% entry 42%;
    }
    main .card:nth-child(3n+2){animation-range:entry 5% entry 52%}
    main .card:nth-child(3n+3){animation-range:entry 10% entry 62%}
  }
  main .card:focus-visible{animation:none}
}
@keyframes quest-page-out{to{opacity:0;transform:scale(.985)}}
@keyframes quest-page-in{from{clip-path:inset(0 100% 0 0);opacity:.65}to{clip-path:inset(0);opacity:1}}
@keyframes quest-title{from{opacity:.3;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes quest-scroll-in{from{opacity:.35;translate:0 26px;scale:.975}to{opacity:1;translate:0 0;scale:1}}
/* Featured project artwork */
.work .art{height:clamp(230px,29vw,380px);min-height:0}
.work .art img{display:block;width:100%;height:100%;min-height:0;object-fit:contain}
.work .fashion-art{background:#171413}
.work .bee-art{background:#f7ebd4;padding:clamp(1rem,3vw,2.5rem)}

.services .service-photo{display:block;width:calc(100% + 2.5rem);max-width:none;height:auto;aspect-ratio:16/9;object-fit:cover;margin:-1.25rem -1.25rem 1.1rem}
.illustrated-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.25rem,5vw,5rem);align-items:center}
.intro-photo{display:block;width:100%;height:auto;border:1px solid #405974;border-radius:.75rem;box-shadow:0 14px 36px #08101c80}
.bio-photo{width:min(100%,370px);justify-self:center;aspect-ratio:3/4;object-fit:cover}
@media(max-width:760px){.illustrated-intro{grid-template-columns:1fr}.bio-photo{justify-self:start;width:min(100%,290px)}}

.quest-contact{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:1rem;align-items:start}
.quest-contact h2{font-size:clamp(1.55rem,3vw,2.25rem)}
.quest-contact form{display:grid;gap:.9rem}
.quest-contact label{display:grid;gap:.3rem;font-weight:700}
.quest-contact label small{display:inline;font-weight:400}
.quest-contact input,.quest-contact select,.quest-contact textarea{width:100%;min-width:0;border:1px solid #6889a9;border-radius:.35rem;background:#101a28;color:#fff8ee;font:inherit;padding:.65rem}
.quest-contact :is(input,select,textarea):focus-visible{outline:2px solid #b9dcff;outline-offset:3px}
.quest-contact form>.button{justify-self:start}
.chat-log{height:17rem;overflow:auto;padding:.75rem;background:#101a28;border:1px solid #405974;border-radius:.5rem}
.chat-log p{padding:.55rem .75rem;background:#203651;border-radius:.45rem;overflow-wrap:anywhere}
.chat-prompts{gap:.5rem;margin:1rem 0}
.chat-input{display:flex;gap:.5rem}
@media(max-width:760px){.quest-contact{grid-template-columns:1fr}}

/* Quest logo interactions */
header .brand b{position:relative;overflow:hidden}
header .brand:is(:hover,:focus-visible) b{background:#d8f2ff;box-shadow:0 0 18px #7ac9ff90}
header .brand:active b{background:#a9dcff;box-shadow:inset 0 2px 6px #14223370}
@media(prefers-reduced-motion:no-preference){
  header .brand b{transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
  header .brand b::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffffb0 50%,transparent 70%);transform:translateX(-110%);pointer-events:none}
  header .brand:is(:hover,:focus-visible) b{transform:translateY(-2px) rotate(-5deg)}
  header .brand:is(:hover,:focus-visible) b::after{animation:quest-logo-sweep .65s ease-out}
  header .brand:active b{transform:translateY(1px) scale(.88)}
}
@keyframes quest-logo-sweep{to{transform:translateX(110%)}}