/* Center the landing page and giveaway controls without narrowing reading text. */
.home-page main{text-align:center}
.home-page .hero-bottom{flex-direction:column;align-items:center;gap:28px}
.home-page .hero-bottom>div{width:100%;max-width:960px}
.home-page .intro{margin:0 auto 24px}
.home-page .comedy-disclaimer{max-width:820px;margin:24px auto}
.home-page figure{margin:0 auto;transform:none}
.home-page .actions,.home-page .crt-controls,.home-page .alley-suggestions{justify-content:center}
.home-page .eyebrow{justify-content:center;flex-wrap:wrap;gap:12px 32px}
.home-page .stencil-title{justify-content:center}
.home-page .music{grid-template-columns:minmax(0,1fr);gap:28px}
.home-page .music-intro{max-width:900px;width:100%;margin:auto}
.home-page .music-intro h2{margin:22px 0}
.home-page .platforms{max-width:760px;width:100%;margin:auto}
.home-page .platforms a{justify-content:center}
.home-page .platforms a>span:first-of-type{flex:0 1 auto}
.home-page .connect-title{justify-content:center;align-items:center}
.home-page .socials a{justify-content:center;align-items:center;gap:10px;padding:23px 12px}
.home-page .socials a .platform-icon{margin:0}
.home-page .section-head{margin-bottom:24px}
.home-page .alley-bezel{justify-content:center;flex-wrap:wrap}
.giveaway-page main{text-align:center}
.giveaway-page .giveaway-top{justify-content:center}
.giveaway-announcement p,.giveaway-legal{margin-left:auto;margin-right:auto}
.giveaway-check,.giveaway-account label{justify-content:center}
.giveaway-check>span{max-width:760px}
.giveaway-account a{margin-left:0}
.giveaway-page .giveaway-checklist{max-width:1100px;margin:30px auto}
.age-locked{overflow:hidden}
.age-locked #site-content{pointer-events:none;user-select:none;filter:blur(4px)}
.age-gate{color:#b8ee98;background:#0d130c;border:12px solid transparent;border-image:none;width:min(680px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:clamp(18px,4vw,32px);margin:auto;overflow:auto;text-align:center;font-family:var(--terminal);font-size:23px;box-shadow:0 0 0 100vmax #000b;position:fixed;inset:0;z-index:10000;height:fit-content}
.age-gate[hidden]{display:none!important}
.age-gate::backdrop{background:#000c}
.age-locked .age-gate{display:block}
.age-gate h2{color:#ffe600;font-size:clamp(36px,7vw,58px);margin:0 0 16px;line-height:1.05}
.age-gate>p{margin:12px 0 22px}
.age-confirm{display:flex;justify-content:center;align-items:flex-start;gap:14px;margin:20px 0;cursor:pointer}
.age-confirm input{width:24px;height:24px;flex-shrink:0;accent-color:#a7fa79;margin-top:4px}
.age-terms{border:1px solid #587341;padding:14px;margin:20px 0}
.age-terms summary{cursor:pointer;color:#ffe600;font-size:24px}
.age-terms div{font:16px/1.6 'Courier New',monospace;text-align:left}
.age-terms h3{font-size:20px;margin:20px 0 8px}
.age-terms p{margin:12px 0}
.age-gate-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.age-gate button{font:23px var(--terminal);min-height:48px;padding:12px 24px;cursor:pointer;background:#b8f476;color:#0a1406;border:2px solid #b8f476}
.age-gate button:disabled{opacity:.4;cursor:not-allowed}
.age-gate #age-leave{background:transparent;color:#b8ee98;border-color:#587341}
.age-gate :focus-visible{outline:3px solid #ffe600;outline-offset:4px}
.age-storage-note{font-size:18px;color:#9fba8d}
.alley-breathing canvas{image-rendering:pixelated}
@media(max-width:600px){.home-page .socials{grid-template-columns:1fr 1fr}.home-page .socials a{font-size:20px;gap:6px}.home-page .alley-bezel{gap:8px}.age-gate{font-size:21px;border-width:9px}.giveaway-check,.giveaway-account label{align-items:flex-start}}
@media print{.age-gate{display:none!important}.age-locked #site-content{filter:none}}

/* Reading layout shared by narrow phones, tablets and desktop browsers. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#site-content,header,main,footer{min-width:0;max-width:100%}
header,main,footer{max-width:1600px}
header nav{min-width:0;-webkit-overflow-scrolling:touch}
.bio-heading,.bio-copy .bio-lead,.bio-copy .government,.bio-copy h2,.bio-copy .bio-punchline,.bio-copy .bio-interlude,.bio-copy .biographer-note,.bio-copy .bio-signoff{text-align:center}
.bio-copy{width:100%;max-width:780px;overflow-wrap:anywhere;text-align:left}
.bio-heading h1{font-size:clamp(38px,7.5vw,110px);overflow-wrap:anywhere;line-height:1.08}
.bio-copy h2{font-size:clamp(34px,6vw,60px);line-height:1.12;text-wrap:balance}
.bio-copy .bio-lead{max-width:700px;margin:0 auto 28px;line-height:1.4}
.bio-copy .bio-punchline{font-size:clamp(27px,4vw,36px);margin:36px auto}
.bio-copy .bio-interlude,.bio-copy .biographer-note{border-width:var(--chain-small) 0;padding:22px clamp(10px,3vw,24px);margin:32px auto;line-height:1.5}
.bio-copy .bio-signoff{line-height:1.5}
.bio-copy .government{line-height:2}
.bio-copy .redacted{display:inline-block;line-height:1.5;max-width:100%}
.bio-end{justify-content:center;align-items:stretch;gap:14px}
.bio-end .button{max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:center;min-height:48px}
.bio-heading .small-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;white-space:normal}
button,input,summary,a{-webkit-tap-highlight-color:#a7fa7930}
button,.button,summary{touch-action:manipulation}
.age-gate{max-height:calc(100vh - 28px);max-height:calc(100dvh - 28px);overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.age-confirm{min-height:44px;align-items:center}
.age-gate-actions button{min-height:48px}
@supports(padding:max(0px)){.age-gate{max-height:calc(100dvh - max(14px,env(safe-area-inset-top)) - max(14px,env(safe-area-inset-bottom)))}}
@media(max-width:600px){
 .bio-page{padding:30px max(18px,5%) 48px}
 .bio-heading{margin-bottom:30px;padding-bottom:28px}
 .bio-copy{font-size:23px;line-height:1.55}
 .bio-copy .bio-lead{font-size:27px}
 .bio-copy .biographer-note{font-size:23px}
 .bio-end{flex-direction:column}
 .bio-end .button{width:100%;font-size:21px;padding:14px 12px}
 .bio-copy .government{font-size:17px}
 .age-gate{width:calc(100% - 20px);padding:18px 14px}
 .age-gate-actions{flex-direction:column}
 .age-gate-actions button{width:100%}
 .age-terms div{overflow-wrap:anywhere}
}

/* Curbside CRT cabinet: physical casing replaces the chain around the television. */
.alley-cabinet{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:0 22px;max-width:900px;padding:34px 30px 24px;border-image:none;border:3px solid #514b3d;border-radius:48px 39px 25px 28px;background:radial-gradient(ellipse at 4% 85%,#090907aa,transparent 38%),repeating-linear-gradient(173deg,transparent 0 43px,#e6d4a514 44px,transparent 45px 76px),linear-gradient(125deg,#736957 0%,#484333 16%,#2c2d25 55%,#514b3c 88%,#22251e);box-shadow:inset 2px 3px 2px #c3b48d66,inset -7px -9px 8px #090b08aa,0 15px 0 -5px #141610,0 27px 38px #000a}
.alley-cabinet:before{content:'';position:absolute;z-index:3;pointer-events:none;left:12px;top:12px;width:82px;height:27px;transform:rotate(-27deg);background:repeating-linear-gradient(90deg,#a6a29466 0 2px,#6b6b6266 2px 4px),linear-gradient(#9f9e8f,#727367);opacity:.8;box-shadow:0 2px 3px #0008;clip-path:polygon(0 5%,98% 0,95% 24%,100% 45%,96% 70%,100% 95%,2% 100%,4% 75%,0 55%,4% 32%)}
.alley-cabinet:after{content:'';position:absolute;inset:8px;border:1px solid #c4b18a22;border-radius:38px 32px 20px 22px;pointer-events:none;background:linear-gradient(151deg,transparent 0 19%,#dfd0a81a 19.1% 19.25%,transparent 19.4% 100%),radial-gradient(ellipse at 96% 6%,#0a09088c,transparent 12%),radial-gradient(ellipse at 4% 97%,#090b08bb,transparent 14%)}
.alley-tv .alley-glass{min-width:0;border-image:none;border:12px solid #171a13;border-top-color:#11140e;border-bottom-color:#5b5b45;border-right-color:#34392a;border-radius:44px / 36px;box-shadow:0 0 0 3px #11140e,inset 0 0 36px 9px #000b,2px 4px 4px #9c937344;background:radial-gradient(ellipse at 45% 38%,#152c13,#061006)}
.alley-tv .alley-glass:after{background:radial-gradient(ellipse at center,transparent 58%,#0008 100%),linear-gradient(130deg,#c0d9ac12,transparent 26% 74%,#a4b48c08),repeating-linear-gradient(0deg,transparent 0 3px,#0003 4px)}
.alley-hardware{display:flex;flex-direction:column;align-items:center;gap:28px;padding:20px 0 10px;border-left:2px groove #68634b66;min-width:0}
.alley-cabinet-badge{color:#d0c4a0;font:14px/1.2 monospace;letter-spacing:1px;text-align:center;text-shadow:1px 2px #000;opacity:.8}
.alley-tuning-dial{display:block;width:66px;height:66px;border:5px solid #292a23;border-radius:50%;background:repeating-conic-gradient(#48483b 0deg 5deg,#282c24 5deg 12deg);box-shadow:0 5px 5px #080a07,inset 1px 1px 2px #ded3ae88;position:relative}
.alley-tuning-dial:after{content:'';position:absolute;inset:9px;border-radius:50%;border:1px solid #77725c;background:linear-gradient(75deg,#30352b 40%,#b9b196 42% 48%,#44483a 50%);transform:rotate(30deg)}
.alley-speaker-grille{display:block;width:76%;min-height:120px;flex:1;border:2px inset #6b665155;border-radius:9px;background:repeating-linear-gradient(0deg,#10150f 0 3px,#65604b 4px,#32372a 5px 9px);box-shadow:inset 3px 0 8px #0009;opacity:.85}
.alley-salvage-label{font:12px/1.3 monospace;color:#3b3529;background:#afa484;padding:8px 4px;transform:rotate(-7deg);box-shadow:1px 2px 3px #0008}
.home-page .alley-tv .alley-bezel{grid-column:1/-1;justify-content:flex-end;padding:22px 6px 0;gap:14px;position:relative;z-index:1}
.alley-tv .alley-bezel>span:last-child{margin-right:auto;order:-1;color:#c3b897;font-size:15px}
.alley-tv .alley-power,.alley-tv .alley-sound{border-image:none;border:2px solid #706950;border-radius:5px;background:linear-gradient(#353b2e,#171d13);color:#e1d6b3;box-shadow:inset 0 1px #a69e7766,0 3px 3px #0008;min-height:48px;padding:12px}
.alley-tv .alley-power:active,.alley-tv .alley-sound:active{box-shadow:inset 0 2px 4px #000}
.alley-tv .alley-form input{font-size:18px}
@media(max-width:600px){
.alley-cabinet{grid-template-columns:minmax(0,1fr);padding:22px 13px 18px;gap:0;border-radius:32px 30px 20px 20px}
.alley-tv .alley-glass{border-width:8px;border-radius:28px / 25px;padding:10px}
.alley-hardware{flex-direction:row;gap:12px;padding:18px 2px 0;border:0;min-height:66px}
.alley-cabinet-badge{font-size:10px;flex:0 0 auto}
.alley-tuning-dial{width:38px;height:38px;border-width:3px;flex:0 0 38px}
.alley-tuning-dial:after{inset:5px}
.alley-speaker-grille{min-height:40px;height:40px;width:auto}
.alley-salvage-label{display:none}
.home-page .alley-tv .alley-bezel{padding-top:16px;gap:8px;justify-content:center}
.alley-tv .alley-bezel>span:last-child{width:100%;margin:0;text-align:center;font-size:12px}
.alley-tv .alley-power,.alley-tv .alley-sound{font-size:16px;letter-spacing:0;padding:10px}
.alley-tv .alley-suggestions button{min-height:44px}
}

/* Water-damaged walnut veneer, chipped edges and grime from a life on the curb. */
.alley-cabinet{border-color:#382418;border-radius:30px 27px 19px 22px;background:radial-gradient(ellipse at 5% 93%,#080b07e6,transparent 31%),radial-gradient(ellipse at 91% 4%,#18130bc9,transparent 24%),repeating-linear-gradient(3deg,#180e0755 0 1px,transparent 2px 7px,#b27c3922 8px 9px,transparent 10px 15px),repeating-radial-gradient(ellipse at 5% 150%,#20140c 0px,#644023 3px,#80512a 5px,#4b2d17 8px,#392310 11px,#734923 16px);box-shadow:inset 2px 3px 2px #c1976566,inset -7px -9px 8px #090b08cc,0 15px 0 -5px #1a130b,0 27px 38px #000c}
.alley-cabinet:after{border-radius:23px 22px 15px 17px;border-color:#ac7c442b;background:linear-gradient(158deg,transparent 0 12%,#c29b6533 12.1% 12.3%,transparent 12.5% 84%,#090a06aa 84.2% 84.5%,transparent 84.7%),radial-gradient(ellipse at 94% 94%,#080b08d9,transparent 19%),radial-gradient(ellipse at 3% 15%,#161710bd,transparent 13%)}
.alley-tv .alley-glass{border-color:#211f15 #39392c #625945 #15170f;box-shadow:0 0 0 3px #13120c,inset 0 0 36px 9px #000c,2px 4px 4px #9c937344}
.alley-portrait:after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:8%;background:radial-gradient(ellipse at 12% 18%,#6d704644,transparent 20%),radial-gradient(ellipse at 80% 74%,#87805c38,transparent 24%),radial-gradient(ellipse at 73% 16%,transparent 5%,#8c885a22 6%,transparent 9%),radial-gradient(ellipse at 23% 72%,transparent 9%,#9d92722b 10%,transparent 13%),repeating-linear-gradient(96deg,transparent 0 39px,#938c6730 40px,transparent 42px 97px),linear-gradient(133deg,transparent 21%,#b2aa7838 21.2%,transparent 21.5% 64%,#b2aa782b 64.2%,transparent 64.5%),radial-gradient(ellipse,transparent 35%,#080b06cc 100%);box-shadow:inset 0 0 28px 9px #16180dcc}
.alley-tv .alley-glass:after{background:radial-gradient(ellipse at center,transparent 52%,#000a 100%),linear-gradient(130deg,#c0d9ac14,transparent 26% 74%,#a4b48c0b),repeating-linear-gradient(0deg,transparent 0 2px,#0004 3px,transparent 4px)}
.alley-vhs-damage{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden;border-radius:inherit}
.alley-vhs-damage:before,.alley-vhs-damage:after{content:'';position:absolute;left:0;width:100%;height:42px;opacity:0;background:repeating-linear-gradient(0deg,transparent 0 4px,#9aaa7733 5px,#060b0766 7px,transparent 9px);box-shadow:0 -2px #c1cfa522,0 4px #020701aa}
.is-on .alley-vhs-damage:before{animation:alley-tracking 7.3s linear infinite}
.is-on .alley-vhs-damage:after{height:12px;animation:alley-tracking 11.7s linear -4s infinite;transform:scaleX(-1);opacity:.45}
@keyframes alley-tracking{0%{top:-50px;opacity:0}8%{opacity:.6}48%{opacity:.35}53%{opacity:.65}91%{opacity:.3}100%{top:110%;opacity:0}}
.alley-roach{position:absolute;left:0;top:0;width:55px;height:30px;z-index:8;pointer-events:none;opacity:0;filter:drop-shadow(2px 4px 2px #000b);will-change:transform}
.alley-roach svg{display:block;width:100%;height:100%}
.alley-roach.is-crawling .roach-legs{transform-origin:35px 24px;animation:roach-scuttle .075s steps(2,end) infinite}
@keyframes roach-scuttle{from{transform:skewX(-12deg)}to{transform:skewX(12deg)}}
@media(max-width:600px){.alley-cabinet{border-radius:25px 22px 18px 18px}.alley-roach{width:40px;height:23px}}
@media(prefers-reduced-motion:reduce){.alley-vhs-damage,.alley-roach{display:none}.is-on .alley-vhs-damage:before,.is-on .alley-vhs-damage:after,.alley-roach.is-crawling .roach-legs{animation:none}}

/* A fixed 4:3 television; the conversation is below the physical set. */
.alley-tv{display:block;max-width:900px;margin:auto;padding:0;border:0;border-image:none;border-radius:0;background:none;box-shadow:none}
.alley-cabinet{aspect-ratio:4 / 3;width:100%;height:auto;min-height:0;grid-template-rows:minmax(0,1fr) auto;box-sizing:border-box}
.alley-cabinet .alley-glass{height:100%;min-height:0;box-sizing:border-box;padding:0}
.alley-cabinet .alley-portrait.alley-breathing{position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;margin:0;background-size:200% 200%;border-radius:inherit}
.alley-cabinet .alley-breathing canvas{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.alley-cabinet .alley-channel{position:absolute;z-index:4;top:10px;left:14px;right:14px;border:0;border-image:none;font-size:12px;text-shadow:0 2px 3px #000}
.alley-cabinet .alley-name{position:absolute;z-index:4;bottom:8px;left:0;right:0;padding:0;text-shadow:0 2px 5px #000,0 0 10px #000}
.alley-cabinet .alley-name strong{font-size:clamp(20px,4vw,38px)}
.alley-cabinet .alley-name span{font-size:10px;letter-spacing:2px}
.alley-cabinet .alley-hardware{min-height:0;gap:18px;padding-top:12px}
.alley-cabinet .alley-speaker-grille{min-height:0}
.alley-chat-console{margin-top:30px;text-align:left;color:#b8e77f}
.alley-tv:not(.is-on) .alley-chat-console{visibility:hidden}
@media(max-width:600px){
.alley-cabinet{grid-template-columns:minmax(0,1fr) 42px;grid-template-rows:minmax(0,1fr) auto;padding:16px 10px 12px;column-gap:10px}
.alley-cabinet .alley-hardware{flex-direction:column;gap:12px;min-height:0;padding:5px 0 0}
.alley-cabinet .alley-cabinet-badge{font-size:7px;letter-spacing:0}
.alley-cabinet .alley-tuning-dial{width:30px;height:30px;flex-basis:30px}
.alley-cabinet .alley-speaker-grille{width:30px;height:auto;min-height:15px}
.home-page .alley-cabinet .alley-bezel{padding:10px 0 0;gap:8px;flex-wrap:nowrap;justify-content:flex-end}
.alley-cabinet .alley-bezel>span:last-child{width:auto;margin-right:auto;font-size:9px}
.alley-cabinet .alley-power,.alley-cabinet .alley-sound{padding:5px;min-height:44px;font-size:12px}
.alley-cabinet .alley-led{width:6px;height:6px;margin-right:4px}
.alley-cabinet .alley-glass{border-width:6px;border-radius:22px / 18px}
.alley-cabinet .alley-channel{font-size:8px;top:7px;left:8px;right:8px;letter-spacing:1px}
.alley-cabinet .alley-name{bottom:6px}
.alley-cabinet .alley-name strong{font-size:19px;letter-spacing:1px}
.alley-cabinet .alley-name span{font-size:7px}
}

/* One centered name, one continuous vertical brand gradient. */
.home-page .music .bob-discography-title{display:table;width:auto;max-width:100%;margin:18px auto;text-align:center;letter-spacing:-.025em;background:var(--ink-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}
.home-page .music .bob-discography-title span{display:block;background:none;color:inherit}
