:root{--forest:#14221e;--deep:#0b1714;--gold:#d5ad75;--cream:#f7f3e9;--ink:#203029}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}img{display:block;max-width:100%}.container{width:min(1280px,calc(100% - 96px));margin:auto}.skip{position:absolute;top:-100px;left:20px;z-index:100;padding:12px 16px;background:#fff;color:#111}.skip:focus{top:20px}:focus-visible{outline:3px solid #e2b26c;outline-offset:4px}
.site-header{position:absolute;z-index:20;top:0;left:0;right:0;height:76px;padding:0 clamp(24px,4vw,65px);display:flex;justify-content:space-between;align-items:center;gap:24px;color:#fbf6ec;border-bottom:1px solid #f5ecdd28}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.16em;white-space:nowrap}.brand-mark{width:37px;height:37px;display:grid;place-items:center;border:1px solid currentColor;font:normal 14px Georgia,serif;letter-spacing:0}.site-header nav{display:flex;align-items:center;gap:34px}.site-header nav a{text-decoration:none;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.14em}.site-header nav a:hover{color:#e7c895}.site-header nav .nav-feature{padding:12px 16px;border:1px solid #e9c795a6;color:#f5d6a6}
.hero{position:relative;isolation:isolate;min-height:760px;overflow:hidden;background:radial-gradient(ellipse at 81% 35%,#3b4b3c 0%,#172821 47%,#0d1a17 86%);color:#f8f4ea}.hero:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(0deg,#0d1916 0%,transparent 35%),linear-gradient(90deg,#0d1916b5 0%,transparent 72%)}.hero-atmosphere{position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 75% 45%,#c99e6048,transparent 30%),radial-gradient(circle at 20% 80%,#44635556,transparent 38%);animation:atmosphere 12s ease-in-out infinite alternate}.hero-ring{position:absolute;z-index:-1;border:1px solid #e7c68d30;border-radius:50%;aspect-ratio:1;pointer-events:none}.ring-one{width:min(56vw,770px);top:5%;right:2%;animation:orbit 10s ease-in-out infinite alternate}.ring-two{width:min(72vw,990px);top:-12%;right:-7%;animation:orbit 12s ease-in-out -4s infinite alternate}.hero-grid{min-height:760px;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,7vw,110px);align-items:center;padding-top:125px;padding-bottom:93px}.hero-copy{position:relative;z-index:3;animation:rise .85s ease-out both}.eyebrow,.section-label,.article-kicker{margin:0;font-size:10px;font-weight:800;letter-spacing:.19em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:14px;color:#e7ca99}.eyebrow span{width:31px;height:1px;background:#e7ca99}.hero h1{font:normal clamp(76px,7.4vw,119px)/.88 "Libre Caslon Display",Georgia,serif;letter-spacing:-.055em;margin:48px 0 28px}.hero h1 em{font-style:normal;color:#e7c58e}.hero-headline{font:normal clamp(25px,2.6vw,38px)/1.16 "Libre Caslon Display",Georgia,serif;letter-spacing:-.02em;margin:0 0 17px;color:#fff}.hero-intro{font-size:16px;line-height:1.6;color:#d5ded5;margin:0;max-width:430px}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px}.button{min-height:59px;display:inline-flex;align-items:center;justify-content:space-between;gap:29px;padding:16px 20px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.035em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-gold{background:#e4bd83;color:#17221d;box-shadow:0 14px 32px #0004}.button-gold:hover{background:#f0d3a3}.hero-scroll{font-size:11px;font-weight:700;text-decoration:none;border-bottom:1px solid #d8c3a577;padding-bottom:7px}.hero-portrait{position:relative;margin:0;justify-self:center;width:min(100%,480px);aspect-ratio:.79;transform:rotate(2deg);animation:portrait .9s ease-out both}.portrait-mat{position:absolute;inset:0;border:10px solid #efe4d0;box-shadow:24px 29px 80px #0007;background:#766c5d;overflow:hidden}.portrait-mat img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.78) contrast(1.05)}.hero-portrait:after{content:"";position:absolute;inset:10px;border:1px solid #f4d8a85c;pointer-events:none}.hero-portrait figcaption{position:absolute;z-index:2;left:10px;right:10px;bottom:10px;background:linear-gradient(0deg,#0a1514f5,#0a1514bd 75%,transparent);padding:45px 25px 20px;font-size:12px;font-weight:800;letter-spacing:.15em}.hero-portrait figcaption span{display:block;margin-top:5px;font-size:8px;font-weight:600;letter-spacing:.2em;color:#edcf9e}.hero-bottom{position:absolute;bottom:23px;left:clamp(48px,4vw,66px);right:clamp(48px,4vw,66px);display:flex;justify-content:space-between;gap:20px;color:#d3dfd1;font-size:9px;font-weight:800;letter-spacing:.16em}.hero-bottom a{text-decoration:none}
.story{padding:130px 0 135px;background:#faf8f2}.story-grid{display:grid;grid-template-columns:.28fr .72fr;gap:clamp(65px,10vw,160px)}.story-side{padding-top:10px}.section-label{color:#ab8153}.side-rule{display:block;width:56px;height:2px;background:#bc9565;margin:28px 0}.story-side p:not(.section-label){font:normal 27px/1.3 "Libre Caslon Display",Georgia,serif;color:#526057;margin:0 0 32px}.story-side a{font-size:11px;font-weight:800;color:#4e6b58;text-underline-offset:5px}.article-kicker{color:#a58054}.story-body h2{font:normal clamp(55px,5.5vw,86px)/1 "Libre Caslon Display",Georgia,serif;letter-spacing:-.045em;margin:21px 0 34px}.story-body h2 em{font-style:normal;color:#a67b4c}.story-body p:not(.article-kicker){max-width:760px;font-size:17px;line-height:1.75;color:#39473e;margin:0 0 21px}.story-body .lead{font:normal clamp(26px,2.7vw,36px)/1.28 "Libre Caslon Display",Georgia,serif!important;letter-spacing:-.02em;color:#203029!important;margin-bottom:30px!important}.story-body a{color:#355947;text-underline-offset:4px}.article-end{display:flex;justify-content:space-between;gap:18px;margin-top:53px;padding-top:18px;border-top:1px solid #ded8cd;font-size:9px;font-weight:800;letter-spacing:.14em;color:#8f826d}
.music{padding:115px 0 115px;background:#e9e6dc}.music-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:41px}.music-heading h2{font:normal clamp(54px,5.5vw,83px)/1 "Libre Caslon Display",Georgia,serif;letter-spacing:-.045em;margin:18px 0 0}.music-heading h2 em{font-style:normal;color:#a67b4c}.music-heading>p{max-width:285px;font-size:14px;line-height:1.6;color:#616a61;margin:0 0 5px}.music-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.song-card{display:block;text-decoration:none;background:#faf8f2;border:1px solid #d5d0c3;padding:12px 12px 24px;transition:transform .25s,box-shadow .25s}.song-card:hover{transform:translateY(-5px);box-shadow:0 20px 35px #14211e1a}.song-art{aspect-ratio:1.2;overflow:hidden;background:#172820}.song-art img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.song-card:hover img{transform:scale(1.05)}.song-detail{display:block;margin:23px 13px 9px;color:#98744d;font-size:9px;font-weight:800;letter-spacing:.16em}.song-card h3{font:normal clamp(27px,2.8vw,43px)/1.05 "Libre Caslon Display",Georgia,serif;letter-spacing:-.025em;margin:0 13px 21px}.song-link{display:inline-block;margin:0 13px;color:#3f654c;font-size:11px;font-weight:800;border-bottom:1px solid #9aaa97;padding-bottom:5px}.music-next{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #c7c3b7;margin-top:30px;padding-top:22px}.music-next p{font:normal 25px "Libre Caslon Display",Georgia,serif;margin:0}.music-next a{font-size:11px;font-weight:800;color:#3d6148;text-underline-offset:5px}
.closing{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 0%,#415c43,#14251e 56%,#0e1b17);color:#fbf6ec;text-align:center}.closing-glow{position:absolute;z-index:-1;inset:0;background:radial-gradient(circle at 50% 100%,#d0a36442,transparent 55%);animation:atmosphere 11s ease-in-out infinite alternate}.closing-content{padding:122px 0 132px}.closing .section-label{color:#dfc194}.closing h2{font:normal clamp(72px,8vw,125px)/.91 "Libre Caslon Display",Georgia,serif;letter-spacing:-.055em;margin:23px 0}.closing h2 em{font-style:normal;color:#e4be85}.closing-content>p:not(.section-label){font-size:16px;color:#d8e2d6}.closing-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:35px}.button-line{border:1px solid #f6e4c98c;color:#fff}.button-line:hover{background:#ffffff16}.footer{background:#0b1714;color:#f8f1e6}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:55px 0}.footer-row p{color:#c1c9bd;font-size:13px}.footer-row>a:last-child{color:#e1c392;font-size:11px;text-decoration:none}.footer-fine{display:flex;justify-content:space-between;gap:20px;padding:20px 0 25px;border-top:1px solid #ffffff30;color:#aebcaf;font-size:9px;font-weight:800;letter-spacing:.14em}
@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait{from{opacity:0;transform:translateY(22px) rotate(5deg) scale(.95)}to{opacity:1;transform:translateY(0) rotate(2deg) scale(1)}}@keyframes atmosphere{from{opacity:.57;transform:scale(.95) translate(-2%,2%)}to{opacity:1;transform:scale(1.08) translate(2%,-2%)}}@keyframes orbit{from{opacity:.36;transform:scale(.98)}to{opacity:.8;transform:scale(1.04)}}
@media(max-width:920px){.site-header nav a:not(.nav-feature){display:none}.hero-grid{gap:35px}.hero h1{font-size:clamp(70px,8.7vw,95px)}.story-grid{grid-template-columns:.3fr .7fr;gap:45px}.story-side p:not(.section-label){font-size:23px}}
@media(max-width:700px){.container{width:calc(100% - 42px)}.site-header{height:65px;padding:0 21px}.brand{font-size:9px;gap:8px}.brand-mark{width:32px;height:32px}.site-header nav .nav-feature{font-size:8px;letter-spacing:.06em;padding:10px}.hero{min-height:0}.hero-grid{min-height:0;display:flex;flex-direction:column;gap:28px;padding-top:91px;padding-bottom:85px}.hero-portrait{order:-1;width:min(67%,270px);aspect-ratio:.92;align-self:center}.portrait-mat{border-width:6px}.hero-portrait:after{inset:6px}.hero-portrait figcaption{left:6px;right:6px;bottom:6px;padding:28px 11px 10px;font-size:8px}.hero-portrait figcaption span{font-size:6px}.hero-copy{text-align:center}.eyebrow{justify-content:center;font-size:8px}.hero h1{font-size:clamp(61px,13vw,91px);margin:23px 0 21px}.hero-headline{font-size:clamp(24px,6vw,33px)}.hero-intro{font-size:14px;margin:auto}.hero-actions{justify-content:center;gap:18px;margin-top:25px}.hero-actions .button{min-width:225px}.hero-bottom{left:21px;right:21px;bottom:18px;font-size:7px;justify-content:center}.hero-bottom span{display:none}.hero-ring{opacity:.5}.ring-one{width:105vw;right:-5%;top:2%}.ring-two{width:130vw;right:-18%;top:-8%}.story{padding:82px 0 90px}.story-grid{display:block}.story-side{display:none}.story-body h2{font-size:clamp(50px,10vw,70px)}.story-body p:not(.article-kicker){font-size:15px;line-height:1.72}.story-body .lead{font-size:27px!important}.article-end{display:block;font-size:8px}.article-end span{display:block;margin-top:7px}.music{padding:80px 0 85px}.music-heading{display:block;margin-bottom:25px}.music-heading h2{font-size:clamp(50px,10vw,68px)}.music-heading>p{margin-top:16px}.music-grid{display:block}.song-card{margin-bottom:15px;padding:10px 10px 20px}.song-art{aspect-ratio:1.55}.song-card h3{font-size:37px}.music-next{display:block}.music-next a{display:inline-block;margin-top:10px}.closing-content{padding:93px 0 100px}.closing h2{font-size:clamp(68px,13vw,94px)}.closing-actions{display:grid}.closing-actions .button{justify-content:space-between}.footer-row{display:block;padding:43px 0}.footer-row p{margin:20px 0}.footer-fine{display:block}.footer-fine span{display:block;margin-bottom:7px}}
@media(max-width:390px){.hero-portrait{width:70%}.hero h1{font-size:58px}.hero-headline{font-size:23px}.eyebrow{letter-spacing:.12em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Portrait-led announcement theme: espresso, warm stone, and copper. */
:root{--forest:#211914;--deep:#17110e;--gold:#e4ba8d;--cream:#f7f0e7;--ink:#302620}
body{background:var(--cream)}
.site-header{border-bottom-color:#f3dcc325}
.site-header nav a:hover{color:#f2cda9}
.site-header nav .nav-feature{border-color:#f2cda987;color:#f6dfc6}
.hero{
  min-height:720px;
  background:radial-gradient(ellipse at 79% 35%,#795a49 0%,#3b2a22 38%,#211914 75%,#17110e 100%);
  color:#fff9f2;
}
.hero:before{
  content:"";position:absolute;z-index:-1;inset:-10%;pointer-events:none;
  background:linear-gradient(90deg,#1a130fe8 10%,#1a130f59 62%,#1a130f20 100%),url("./assets/graham-guy-portrait.jpg") center 34%/cover no-repeat;
  filter:blur(55px) saturate(.65);opacity:.24;
  animation:portrait-glow 14s ease-in-out infinite alternate;
}
.hero:after{background:linear-gradient(0deg,#17110edb 0%,transparent 30%),linear-gradient(90deg,#17110e87 0%,transparent 75%)}
.hero-atmosphere{background:radial-gradient(circle at 78% 40%,#e7ae7a43,transparent 34%),radial-gradient(circle at 18% 83%,#a2694f31,transparent 41%)}
.hero-ring{border-color:#f0bf9830}
.hero-grid{min-height:720px;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,82px);padding-top:78px;padding-bottom:65px}
.eyebrow{color:#f0c8a4}.eyebrow span{background:#f0c8a4}
.hero h1{font-size:clamp(62px,5.8vw,82px);line-height:.92;letter-spacing:-.057em;margin:24px 0 18px}
.hero h1 em{color:#f1c39b}
.hero-headline{font-size:clamp(27px,2.8vw,40px);color:#fff7ef}
.hero-intro{color:#e8d9cd;max-width:490px}
.hero-actions{align-items:flex-start;flex-direction:column;gap:18px;margin-top:31px}
.spotify-hero-button{
  position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;
  gap:15px;width:min(100%,475px);min-height:82px;padding:12px 18px;
  border-radius:17px;border:1px solid #ffe5c7;
  background:linear-gradient(110deg,#fff1db 0%,#e8b486 58%,#d9906d 100%);
  color:#241a15;text-decoration:none;box-shadow:0 18px 42px #100b0970,0 0 0 5px #ffffff0a;
  transition:transform .25s ease,box-shadow .25s ease;
}
.spotify-hero-button:before{
  content:"";position:absolute;z-index:-1;top:-100%;bottom:-100%;left:-70%;width:45%;
  transform:rotate(18deg);background:linear-gradient(90deg,transparent,#ffffff70,transparent);
  animation:spotify-shine 5s ease-in-out infinite;
}
.spotify-hero-button:hover{transform:translateY(-4px);box-shadow:0 23px 51px #100b0980,0 0 0 5px #ffffff19}
.spotify-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:#211914;color:#f5d3ae}
.spotify-icon svg{width:27px;height:27px}
.spotify-button-text{display:grid;gap:4px;min-width:0}
.spotify-button-text small{font-size:9px;font-weight:800;letter-spacing:.17em}
.spotify-button-text strong{font-size:20px;font-weight:800;line-height:1.1;letter-spacing:-.035em}
.spotify-arrow{display:grid;place-items:center;margin-left:auto;flex:none;width:31px;height:31px;border:1px solid #39241e66;border-radius:50%;font-size:17px}
.hero-scroll{color:#f7e2cf;border-bottom-color:#ecc49f70}
.portrait-mat{border-color:#e3c6a4;background:#493b32;box-shadow:24px 29px 80px #0c080780}
.portrait-mat img{filter:saturate(.93) contrast(1.04)}
.hero-portrait:after{border-color:#ffdbb779}
.hero-portrait figcaption{background:linear-gradient(0deg,#17110ef5,#17110eb8 75%,transparent)}
.hero-portrait figcaption span{color:#ecc7a3}
.hero-bottom{color:#e5cdb9}
.story{background:#f8f3ec}
.section-label,.article-kicker{color:#9b6749}
.side-rule{background:#bc8463}
.story-side p:not(.section-label){color:#78675b}
.story-side a,.story-body a{color:#7e4c38}
.story-body h2 em,.music-heading h2 em{color:#ad6d4e}
.story-body p:not(.article-kicker){color:#4a3e35}
.story-body .lead{color:#2c221d!important}
.article-end{border-top-color:#d8c9ba;color:#876f5f}
.music{background:#eee2d5}
.music-heading>p{color:#6d5b50}
.song-card{background:#fcf8f2;border-color:#ddcabb}
.song-card:hover{box-shadow:0 20px 35px #42291924}
.song-art{background:#30241f}
.song-detail{color:#9b6448}
.song-link,.music-next a{color:#8c5035}
.music-next{border-top-color:#ceb8a6}
.closing{background:radial-gradient(circle at 50% 0%,#74513c,#2a1d17 54%,#17110e)}
.closing-glow{background:radial-gradient(circle at 50% 100%,#d69c6b4f,transparent 55%)}
.closing .section-label{color:#edbe93}
.closing h2 em{color:#f0bd91}
.closing-content>p:not(.section-label){color:#ead9cb}
.button-gold{background:#ecc198;color:#291d16}.button-gold:hover{background:#ffdbb4}
.button-line{border-color:#f7d5b58c}
.footer{background:#17110e;color:#fbf1e7}
.footer-row p{color:#d4bfb0}.footer-row>a:last-child{color:#e8b88f}
.footer-fine{color:#c5ac9a}
@keyframes spotify-shine{0%,63%{left:-70%}85%,100%{left:150%}}
@keyframes portrait-glow{from{opacity:.17;transform:scale(1)}to{opacity:.31;transform:scale(1.09)}}
@media(max-width:920px){.hero h1{font-size:clamp(54px,6.5vw,68px)}}
@media(max-width:700px){
  .hero{min-height:0}
  .hero-grid{min-height:0;gap:26px;padding-top:90px;padding-bottom:87px}
  .hero:before{filter:blur(43px);opacity:.18}
  .hero-portrait{width:min(67%,270px)}
  .hero h1{font-size:clamp(44px,9vw,54px);line-height:.96;margin:20px 0 17px}
  .hero-headline{font-size:clamp(25px,5.9vw,33px)}
  .hero-actions{align-items:center;gap:17px;margin-top:25px}
  .spotify-hero-button{width:min(100%,430px);min-height:77px;text-align:left}
  .spotify-button-text strong{font-size:18px}
}
@media(max-width:390px){
  .hero h1{font-size:clamp(41px,10.8vw,44px)}
  .spotify-hero-button{gap:10px;padding:11px 12px}
  .spotify-icon{width:41px;height:41px}.spotify-button-text strong{font-size:16px}
  .spotify-arrow{width:27px;height:27px}
}
@media(prefers-reduced-motion:reduce){.hero:before,.spotify-hero-button:before{animation:none!important}}

/* In-page music and video player. Plain links remain the no-JavaScript fallback. */
.video-watch{display:flex;align-items:center;gap:18px;margin-top:22px;padding:19px 24px;background:#342720;color:#fff4e9;text-decoration:none;border:1px solid #a77c62;transition:background .2s ease,transform .2s ease}
.video-watch:hover{background:#51382b;transform:translateY(-2px)}
.video-watch>span:nth-child(2){display:grid;gap:5px}.video-watch small{font-size:9px;font-weight:800;letter-spacing:.16em;color:#eac09e}.video-watch strong{font-size:17px;line-height:1.2}.video-watch>span:last-child{margin-left:auto;font-size:23px}
.video-play{display:grid;place-items:center;flex:none;width:46px;height:46px;border:1px solid #f6d7b8;border-radius:50%;font-size:15px;padding-left:2px}
.media-dialog{width:min(760px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);margin:auto;padding:0;border:1px solid #b98865;border-radius:19px;background:#211914;color:#fff6eb;box-shadow:0 32px 90px #0009;overflow:auto}
.media-dialog::backdrop{background:#090705d9;backdrop-filter:blur(9px)}
.media-panel{padding:clamp(17px,3vw,30px)}.media-top{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px;padding:3px 0;background:#211914}.media-kicker{margin:0 0 8px;color:#e8b88e;font-size:10px;font-weight:800;letter-spacing:.16em}.media-top h2{margin:0;font:normal clamp(29px,4vw,43px)/1.08 "Libre Caslon Display",Georgia,serif}
.media-close{display:grid;place-items:center;flex:none;width:43px;height:43px;border:1px solid #e5c0a2;border-radius:50%;background:#ffffff0e;color:#fff7ef;font:normal 28px/1 Arial,sans-serif;cursor:pointer}.media-close:hover{background:#ffffff2a}
.media-frame{height:min(480px,55dvh);overflow:hidden;border-radius:12px;background:#0b0b0b}.media-dialog[data-kind="spotify-track"] .media-frame{height:min(352px,50dvh)}.media-dialog[data-kind="youtube-video"] .media-frame{height:auto;min-height:200px;aspect-ratio:16/9}.media-frame iframe{display:block;width:100%;height:100%;border:0}.media-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:17px}.media-bottom p{max-width:440px;margin:0;color:#d5c4b6;font-size:12px;line-height:1.5}.media-bottom a{flex:none;color:#f3caa6;font-size:12px;font-weight:800;text-underline-offset:5px}
@media(max-width:700px){.video-watch{gap:12px;padding:15px}.video-play{width:38px;height:38px}.video-watch strong{font-size:15px}.media-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:15px}.media-panel{padding:16px}.media-frame{height:min(460px,58dvh)}.media-bottom{display:block}.media-bottom a{display:inline-block;margin-top:10px}}
@media(prefers-reduced-motion:reduce){.video-watch{transition:none!important}}
