@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{--ink:#292b25;--paper:#f5f0e7;--cream:#e9dfcf;--muted:#696b60;--gold:#ad7847;--sage:#aeb8a0;--sage-dark:#66745e;--clay:#c78368;--line:#292b252b;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--sans)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.topline{background:var(--ink);color:#e9dfcf;padding:8px 0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.topline .shell{display:flex;justify-content:space-between}.nav{position:sticky;top:0;z-index:20;background:#f5f0e7f5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.navinner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.07em}.brand img{width:52px;height:52px;object-fit:cover;border-radius:50%;background:#f5f0e7;box-shadow:0 0 0 2px #ad7847;animation:seal 7s ease-in-out infinite}.brand small{display:block;color:var(--gold);font-size:.62rem;letter-spacing:.2em}.navlinks{display:flex;gap:18px;font-size:.82rem}.navlinks a:hover{color:var(--gold)}.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;padding:12px 17px;border:1px solid var(--ink);font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;transition:.25s}.button.solid{background:var(--ink);color:var(--paper)}.button:hover,.nav-cta:hover{background:var(--gold);border-color:var(--gold);color:white;transform:translateY(-2px)}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:8px}.hero{position:relative;overflow:hidden;min-height:620px;display:flex;align-items:center;background:linear-gradient(120deg,#e9dfcf,#f5f0e7 60%,#dbe2d5)}.hero-content{max-width:690px;padding:90px 0 110px;position:relative;z-index:2}.eyebrow{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gold);font-weight:700}.hero h1,.page-hero h1{font:500 clamp(3.1rem,7vw,6rem)/1.03 var(--serif);letter-spacing:-.04em;margin:20px 0}.hero h1 em,.page-hero h1 em{color:var(--sage-dark);font-weight:400}.hero p,.intro{max-width:700px;color:#5c5e54;font-size:1.04rem}.hero-mark{position:absolute;right:6%;top:50%;transform:translateY(-50%);width:min(30vw,350px);aspect-ratio:1;display:grid;place-items:center}.hero-mark:before,.hero-mark:after{content:"";position:absolute;inset:0;border:1px solid #ad784477;border-radius:50%;animation:orbit 32s linear infinite}.hero-mark:after{inset:13%;border-color:#66745e66;animation-direction:reverse}.hero-mark img{width:76%;height:76%;object-fit:cover;border-radius:50%;background:#f5f0e7;box-shadow:0 0 0 5px #ad7847,0 0 0 12px #f5f0e7;z-index:1;animation:seal 7s ease-in-out infinite}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.marquee{background:var(--sage);padding:18px 0;overflow:hidden;white-space:nowrap;font:italic 1.3rem var(--serif)}.marquee span{display:inline-block;animation:marquee 35s linear infinite}.section{padding:88px 0}.alt{background:var(--cream)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}.section-head h2,.split h2{font:500 clamp(2.2rem,4vw,3.8rem)/1.1 var(--serif);margin:10px 0}.section-head p{max-width:460px;color:var(--muted)}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr)}.card{background:#fffaf2;border:1px solid var(--line);padding:25px;transition:transform .3s,border-color .3s,box-shadow .3s}.card:hover{transform:translateY(-5px);border-color:#ad7844;box-shadow:0 12px 26px #292b2510}.number{font:italic 1.3rem var(--serif);color:var(--gold)}.card h3,.sample h3{font:500 1.45rem var(--serif);margin:12px 0}.card p,.muted{color:var(--muted);font-size:.9rem}.text-link{display:inline-block;color:var(--gold);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;margin-top:12px}.split{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:center}.split img{width:100%;height:450px;object-fit:cover;filter:saturate(.8)}.caption{background:var(--clay);padding:14px 18px;font:italic 1.05rem var(--serif);display:inline-block;float:right;max-width:230px}.page-hero{padding:88px 0 72px;background:linear-gradient(120deg,#e9dfcf,#f5f0e7 60%,#dbe2d5);border-bottom:1px solid var(--line)}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:5px 10px;border:1px solid var(--line);font-size:.72rem}.sample-slot{background:#f0e6d7;border:1px dashed #ad7844;padding:24px}.sample-slot h3{font:500 1.4rem var(--serif);margin:8px 0}.sample-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.sample{background:#fffaf2;border:1px solid var(--line);padding:18px}.sample p{color:var(--muted);font-size:.84rem}.notice{background:var(--cream);border-left:3px solid var(--gold);padding:17px;color:#4f5147;font-size:.9rem}.team-card{background:#fffaf2;border:1px solid var(--line)}.team-card img{width:100%;height:310px;object-fit:cover}.team-info{padding:20px}.team-info h3{font:500 1.4rem var(--serif);margin:0}.team-info p{color:var(--gold);text-transform:uppercase;font-size:.7rem;letter-spacing:.1em}.form-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:45px}.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em}.field input,.field textarea,.field select{background:#fffaf2;border:1px solid var(--line);padding:13px;color:var(--ink)}.field textarea{min-height:125px}.footer{background:var(--ink);color:var(--paper);padding:52px 0 22px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px}.footer p,.footer a{color:#d0c8bc;font-size:.85rem}.footer h4{color:#e2b78d;text-transform:uppercase;font-size:.72rem;letter-spacing:.12em}.footer-bottom{border-top:1px solid #ffffff33;padding-top:18px;margin-top:30px;font-size:.72rem;color:#c0b6a8;display:flex;justify-content:space-between}.reveal{opacity:0;transform:translateY(18px);transition:.8s}.reveal.visible{opacity:1;transform:none}@keyframes seal{0%,100%{transform:rotate(-1deg) scale(1)}50%{transform:rotate(1deg) scale(1.025)}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@media(max-width:950px){.navlinks{gap:10px}.navlinks a{font-size:.72rem}.nav-cta{display:none}.hero-mark{width:240px;right:2%;opacity:.65}.grid-3{grid-template-columns:repeat(2,1fr)}.split{gap:30px}}@media(max-width:680px){.shell{width:calc(100% - 32px)}.topline .shell span:last-child{display:none}.navinner{min-height:70px}.menu-toggle{display:block}.navlinks{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:20px;flex-direction:column;border-bottom:1px solid var(--line)}.navlinks.open{display:flex}.hero{min-height:640px}.hero-content{padding:75px 0 150px}.hero h1{font-size:3.25rem}.hero-mark{width:145px;top:auto;bottom:10px;right:20px;transform:none}.section{padding:65px 0}.section-head{display:block}.grid-3,.split,.footer-grid,.sample-list,.form-wrap,.form{grid-template-columns:1fr}.field.full{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
.google-samples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.google-sample{display:block;overflow:hidden;background:#fffaf2;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}.google-sample:hover{transform:translateY(-4px);box-shadow:0 12px 26px #292b2518}.google-sample img{width:100%;aspect-ratio:1/1;object-fit:cover}.google-sample span{display:block;padding:12px 14px;font-size:.82rem;color:var(--muted)}@media(max-width:680px){.google-samples{grid-template-columns:repeat(2,minmax(0,1fr))}}

.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-image{display:block;background:#fffaf2;border:1px solid var(--line);overflow:hidden;transition:transform .3s,box-shadow .3s}.audit-image:hover{transform:translateY(-4px);box-shadow:0 14px 28px #292b2515}.audit-image img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:top}.audit-caption{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px}.audit-caption h3{font:500 1.2rem var(--serif);margin:0}.audit-caption span{font-size:.72rem;color:var(--gold);white-space:nowrap}@media(max-width:680px){.grid-2{grid-template-columns:1fr}.audit-caption{display:block}.audit-caption span{display:block;margin-top:7px}}


/* Playable music portfolio */
.audio-library-intro{max-width:760px;margin-bottom:30px}
.audio-track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:26px}
.audio-track-card{display:grid;grid-template-columns:86px minmax(0,1fr);gap:16px;align-items:center;background:var(--paper,#fffdf8);border:1px solid rgba(50,45,38,.13);border-radius:16px;padding:16px;min-width:0;transition:transform .2s ease,box-shadow .2s ease}
.audio-track-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(45,39,31,.08)}
.audio-track-art{height:86px;width:86px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(140deg,#d6c5a7,#8a9b7a 58%,#4e6557);color:#fff;flex-shrink:0}
.audio-track-number{font-size:11px;letter-spacing:.14em;opacity:.9}
.audio-track-note{font-size:31px;line-height:1.1}
.audio-track-info{min-width:0}
.audio-track-info h3{font-size:17px;line-height:1.35;margin:5px 0 12px;overflow-wrap:anywhere}
.audio-track-info audio{display:block;width:100%;height:38px;max-width:100%}
.audio-track-caption{font-size:12px;color:var(--muted,#6c6b64);margin:7px 0 0}
.audio-rights-note{margin-top:24px;padding:18px 20px;border-left:3px solid #82916f;background:rgba(130,145,111,.10);border-radius:0 12px 12px 0;color:var(--ink,#292a25)}
@media(max-width:760px){.audio-track-grid{grid-template-columns:1fr}.audio-track-card{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:13px}.audio-track-art{width:68px;height:68px}}

.audio-track-title-link{color:inherit;text-decoration:none}.audio-track-title-link:hover{text-decoration:underline;text-underline-offset:3px}


/* Site-wide motion and portfolio presentation polish */
@media (prefers-reduced-motion: no-preference) {
  .section > .shell > *, .page-hero .shell > *, .footer-grid > * { animation: rise-in .7s both; }
  .section > .shell > *:nth-child(2) { animation-delay: .06s; }
  .section > .shell > *:nth-child(3) { animation-delay: .12s; }
  .card, .google-sample, .audit-image, .promotion-shot, .team-card { will-change: transform; }
  .card:hover, .promotion-shot:hover { transform: translateY(-6px); }
  .promotion-shot img { transition: transform .55s cubic-bezier(.2,.7,.2,1), filter .55s; }
  .promotion-shot:hover img { transform: scale(1.025); filter: saturate(1.06); }
  .eyebrow { animation: eyebrow-in .7s both; }
  .section-head h2 em { color: var(--sage-dark); }
}
@keyframes rise-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes eyebrow-in { from { opacity: 0; letter-spacing: .32em; } to { opacity: 1; letter-spacing: .2em; } }
.promotion-before-after { display:grid; gap:28px; }
.promotion-case { background:#fffaf2; border:1px solid var(--line); padding:clamp(16px,2.5vw,28px); box-shadow:0 14px 35px #292b2509; }
.promotion-case-head { max-width:780px; margin-bottom:20px; }
.promotion-case-head h3, .promotion-approach h3 { font:500 clamp(1.5rem,2.7vw,2.25rem)/1.15 var(--serif); margin:10px 0; }
.promotion-case-head p, .case-footnote { color:var(--muted); font-size:.88rem; }
.case-label, .shot-tag { display:inline-flex; padding:6px 10px; background:var(--ink); color:var(--paper); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }
.shot-tag.after { background:var(--sage-dark); }
.before-after-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.promotion-shot { display:block; min-width:0; overflow:hidden; border:1px solid var(--line); background:#f2ecdf; transition:transform .3s, box-shadow .3s; }
.promotion-shot:hover { box-shadow:0 16px 30px #292b2518; }
.promotion-shot > img { width:100%; height:auto; display:block; }
.promotion-shot .shot-tag { margin:12px 12px 0; }
.shot-caption { display:flex; flex-direction:column; gap:3px; padding:13px 15px 16px; }
.shot-caption strong { font-size:.98rem; }
.shot-caption small { color:var(--muted); font-size:.77rem; }
.case-footnote { border-top:1px solid var(--line); padding-top:14px; margin:16px 0 0; }
.promotion-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.promotion-shot.compact img { aspect-ratio: 1/1; object-fit:cover; object-position:top; }
.promotion-approach { display:grid; grid-template-columns:1.2fr 1fr; gap:28px; align-items:center; margin-top:26px; padding:clamp(22px,3vw,36px); background:var(--ink); color:var(--paper); }
.promotion-approach p { color:#d0c8bc; max-width:650px; }
.promotion-pill-list { display:flex; flex-wrap:wrap; gap:9px; align-content:center; }
.promotion-pill-list span { border:1px solid #ffffff45; border-radius:99px; padding:9px 13px; font-size:.76rem; }
.promotion-summary-panel { padding:28px; background:var(--cream); border:1px solid var(--line); }
.promotion-summary-panel h3 { font:500 1.8rem/1.2 var(--serif); margin:12px 0; }
.promotion-summary-panel p, .promotion-summary-panel li { color:var(--muted); font-size:.9rem; }
.promotion-summary-panel ul { padding-left:20px; }
@media(max-width:760px) {
  .before-after-grid, .promotion-gallery, .promotion-approach { grid-template-columns:1fr; }
  .promotion-gallery { gap:18px; }
}

.service-summary-panel{padding:28px;background:#fffaf2;border:1px solid var(--line);box-shadow:0 14px 35px #292b2509}
.service-summary-panel h3{font:500 clamp(1.5rem,2.5vw,2rem)/1.15 var(--serif);margin:12px 0}
.service-summary-panel p,.service-summary-panel li{font-size:.9rem;color:var(--muted)}
.service-summary-panel ul{padding-left:20px;margin:15px 0 20px}
.service-summary-panel li{margin:5px 0}
