@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=DM+Sans:wght@400;500;700&display=swap');
:root{--black:#080808;--off:#f2f0e9;--white:#fff;--red:#ef493d;--yellow:#e8d64f;--line:rgba(242,240,233,.18);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--black);color:var(--off);font-family:"DM Sans",Arial,sans-serif;overflow-x:hidden}
body:before{
	content:"";
	position:fixed;
	inset:0;
	pointer-events:none;
	z-index:20;
	opacity:.055;
	background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")
}

.noise{
	position:fixed;
	z-index:19;
	pointer-events:none;
	inset:0;
	background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(232,214,79,.08),transparent 18%);
	mix-blend-mode:screen
}

.site-header{
	position:fixed;
	z-index:50;
	top:0;
	left:0;
	right:0;
	height:90px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:18px 4vw;
	mix-blend-mode:difference
}

.brand{
	display:block;
	width:190px
}

.brand img{
	width:100%;
	height:auto;
	display:block
}

.nav{
	display:flex;
	gap:32px
}

.nav a{
	color:#fff;
	text-decoration:none;
	text-transform:uppercase;
	font-size:11px;
	letter-spacing:.16em;
	font-weight:700;
	position:relative
}

.nav a:after{
	content:"";
	position:absolute;
	left:0;
	bottom:-8px;
	width:0;
	height:2px;
	background:#fff;
	transition:.35s var(--ease)
}

.nav a:hover:after,.nav a.active:after{
	width:100%;
}

/* VISUAL NOISE CHECKOUT */
.nav-checkout {
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: 0.08em;
  transition: opacity 0.25s ease;
}

.nav-checkout:hover {
  opacity: 0.6;
}

.nav-checkout span {
  display: inline-block;
  transition: transform 0.25s ease;
}

.nav-checkout:hover span {
  transform: translate(3px, -3px);
}

.menu-toggle{
	display:none;
	background:none;
	border:0
}

.hero{
	min-height:100vh;
	position:relative;
	display:flex;
	align-items:center;
	padding:130px 7vw 90px;
	overflow:hidden
}

.hero-grid{
	position:absolute;
	inset:0;
	background:linear-gradient(90deg,transparent 49.8%,rgba(255,255,255,.05) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(255,255,255,.05) 50%,transparent 50.2%);
	background-size:120px 120px;
	mask-image:linear-gradient(to bottom,transparent,black 35%,transparent)
}

.hero-copy{
	position:relative;
	z-index:2;
	max-width:900px
}

.eyebrow,.section-kicker{
	font-size:10px;
	letter-spacing:.22em;
	font-weight:700
}

.eyebrow{
	color:var(--yellow);
	margin-bottom:26px
}

.hero h1,.page-hero h1,.cta h2{
	font-family:"Archivo Black",Impact,sans-serif;
	letter-spacing:-.07em;
	line-height:.86;
	font-size:clamp(64px,11vw,170px);
	margin:0;
	text-transform:uppercase
}

.hero h1 span,.page-hero h1 span,.cta h2 span{
	color:transparent;
	-webkit-text-stroke:1px var(--off)
}

.hero-lede{
	max-width:560px;
	font-size:clamp(17px,2vw,23px);
	line-height:1.35;
	color:#c6c3bb;
	margin:34px 0
}

.hero-actions{
	display:flex;
	align-items:center;
	gap:28px
}

.btn{
	display:inline-flex;
	align-items:center;
	gap:28px;
	border:1px solid var(--off);
	padding:16px 20px;
	color:var(--off);
	text-decoration:none;
	text-transform:uppercase;
	font-size:11px;
	letter-spacing:.12em;
	font-weight:700;
	transition:transform .3s var(--ease),background .3s,color .3s
}

.btn i{
	font-style:normal;
	font-size:18px
}

.btn-fill{
	background:var(--off);
	color:var(--black)
}

.btn-fill:hover{
	background:var(--yellow);
	border-color:var(--yellow)
}

.btn-light{
	background:var(--off);
	color:var(--black)
}

.text-link,.arrow-link{
	color:var(--off);
	text-decoration:none;
	font-weight:700;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.12em
}
	
.text-link span,.arrow-link span{
	display:inline-block;
	margin-left:12px;
	transition:.3s
}

.text-link:hover span,.arrow-link:hover span{
	transform:translateX(7px)
}

.hero-mark{
	position:absolute;
	right:-5vw;
	top:48%;
	transform:translateY(-50%);
	width:min(52vw,720px);
	opacity:.13
}

.hero-mark img{
	width:100%
}

.scroll-cue{
	position:absolute;
	bottom:34px;
	left:7vw;
	font-size:9px;
	letter-spacing:.2em;
	color:#888;
	display:flex;
	align-items:center;
	gap:14px
}

.scroll-cue span{
	display:block;
	width:65px;
	height:1px;
	background:#777
}

.section{
	padding:140px 7vw
}

.statement{
	display:grid;
	grid-template-columns:1fr 2fr;
	gap:6vw;
	border-top:1px solid var(--line)
}

.section-kicker{
	color:#888;
	padding-top:8px
}

.statement h2,.section-top h2,.split h2{
	font-family:"Archivo Black";
	font-size:clamp(45px,6vw,90px);
	line-height:.9;
	letter-spacing:-.055em;
	margin:0 0 35px
}

.statement h2 em,.split h2 em{
	font-style:normal;
	color:var(--red)
}

.statement p,.split p{
	max-width:650px;
	color:#aaa;
	font-size:18px;
	line-height:1.7
}

.arrow-link{
	display:inline-block;
	margin-top:25px
}

.ticker{
	overflow:hidden;
	border-block:1px solid var(--line);
	padding:18px 0;
	white-space:nowrap
}

.ticker-track{
 display:flex;
 width:max-content;
 gap:0;
 animation:marquee 28s linear infinite;
 will-change:transform
}
.ticker-group{
 display:flex;
 align-items:center;
 flex:0 0 auto;
 min-width:100vw;
 gap:35px;
 padding-right:35px;
 box-sizing:border-box;
 justify-content:space-around
}
.ticker.is-paused .ticker-track{animation-play-state:paused}
.ticker-toggle{display:block;margin:12px 16px 0 auto;padding:5px 10px;border:1px solid var(--line);background:transparent;color:var(--off);font:inherit;font-size:11px;cursor:pointer}

.ticker span{
	font-family:"Archivo Black";
	font-size:38px;
	letter-spacing:-.03em
}

.ticker b{
	font-size:20px;
	color:var(--red)}
	@keyframes marquee{
		to{transform:translateX(-50%)
	}
}

.section-top{
	display:flex;
	justify-content:space-between;
	align-items:end;
	margin-bottom:60px
}

.section-top h2{
	margin-top:16px
}

.section-top h2 span{
	color:var(--yellow)
}

.work-grid{
	display:grid;
	grid-template-columns:1.45fr 1fr;
	gap:22px
}

.work-card{
	position:relative;
	overflow:hidden;
	text-decoration:none;
	color:var(--off);
	min-height:340px
}

.work-large{
	grid-row:span 2;
	min-height:700px
}

.work-card img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .8s var(--ease);
	filter:saturate(.85)
}

.work-card:hover img{
	transform:scale(1.045)
}

.work-meta{
	position:absolute;
	left:0;
	right:0;
	bottom:0;
	padding:24px;
	background:linear-gradient(transparent,rgba(0,0,0,.9));
	display:flex;
	justify-content:space-between;
	align-items:end
}

.work-meta strong{
	font-family:"Archivo Black";font-size:22px
}

.work-meta span{
	font-size:9px;
	text-transform:uppercase;
	letter-spacing:.15em;
	color:#bbb
}

.cta{
	position:relative;
	overflow:hidden;
	background:var(--red);
	color:#080808;
	min-height:620px;
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	justify-content:center
}

.cta .section-kicker{
	color:#111
}

.cta h2{
	margin:30px 0 45px
}

.cta h2 span{
	-webkit-text-stroke:1px #111;
	color:transparent
}

.cta-wave{
	position:absolute;
	inset:0;
	opacity:.18;
	background:url("assets/logo-transparent.png") center/65% auto no-repeat;
	filter:invert(1);
	pointer-events:none
}

.footer{
	border-top:1px solid var(--line);
	padding:28px 7vw;
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:.14em;
	color:#888
}

.footer p:last-child{
	text-align:right
}

.footer .dot{
	display:inline-block;
	width:8px;
	height:8px;
	border-radius:50%;
	background:var(--yellow);
	margin-right:9p
}

.page-hero{
	padding:190px 7vw 120px;
	border-bottom:1px solid var(--line)
}

.page-hero h1{
	font-size:clamp(70px,12vw,180px);
	margin:25px 0 35px
}

.page-hero .hero-lede{
	max-width:680px
}

.split{
	display:grid;
	grid-template-columns:1fr 2fr;
	gap:6vw
}

.manifesto{
	padding:150px 7vw;
	background:var(--off);
	color:var(--black);
	overflow:hidden
}

.manifesto-inner{
	display:flex;
	flex-direction:column;
	font-family:"Archivo Black";
	font-size:clamp(50px,8vw,120px);
	line-height:.84;
	letter-spacing:-.06em
}

.manifesto-inner strong{
	color:var(--red);
	align-self:center
}

.manifesto-inner span:last-child{
	align-self:end
}

.services{
	display:grid;
	grid-template-columns:1fr 2fr;
	gap:6vw
}

.service-list{
	border-top:1px solid var(--line)
}
.service{
	display:grid;
	grid-template-columns:70px 1fr 1.2fr;
	gap:25px;
	padding:30px 0;
	border-bottom:1px solid var(--line);
	align-items:center
}

.service span{
	color:#666;
	font-size:11px
}

.service h3{
	font-family:"Archivo Black";
	font-size:25px;
	margin:0
}

.service p{
	color:#999;
	line-height:1.5;
	margin:0
}

.about-image{
	margin:0 7vw 140px;
	height:65vh;
	overflow:hidden
}

.about-image img{
	width:100%;
	height:100%;
	object-fit:cover
}

.gallery-head{
	position:relative
}

.filters{
	display:flex;
	gap:10px;
	flex-wrap:wrap
}

.filter{
	border:1px solid #444;
	background:transparent;
	color:#aaa;
	padding:10px 14px;
	text-transform:uppercase;
	font-size:9px;
	letter-spacing:.15em;
	cursor:pointer
}

.filter.active,.filter:hover{
	background:var(--off);
	color:var(--black);
	border-color:var(--off)
}

.gallery-grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	grid-auto-rows:300px;
	gap:18px
}

.gallery-item{
	display:block;
	overflow:hidden;
	cursor:zoom-in
}

.gallery-item.tall{
	grid-row:span 2
}

.gallery-item.wide{
	grid-column:span 2
}

.gallery-item img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .7s var(--ease);
	filter:contrast(1.03)
}

.gallery-item:hover img{
	transform:scale(1.05)
}

.lightbox{
	position:fixed;
	inset:0;
	background:rgba(0,0,0,.94);
	z-index:100;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-direction:column;
	padding:40px;
	opacity:0;
	pointer-events:none;
	transition:.35s
}
	
.lightbox.open{
	opacity:1;
	pointer-events:auto
}

.lightbox img{
	max-width:90vw;
	max-height:78vh;
	object-fit:contain
}

.lightbox-title{
	margin-top:18px;
	text-transform:uppercase;
	letter-spacing:.2em;
	font-size:10px
}

.lightbox-close{
	position:absolute;
	right:35px;
	top:25px;
	color:#fff;
	background:none;
	border:0;
	font-size:40px;
	cursor:pointer
}

.contact-head{
	background:linear-gradient(120deg,rgba(239,73,61,.13),transparent 50%)
}

.contact-layout{
	display:grid;
	grid-template-columns:1fr 1.1fr;
	gap:10vw
}

.big-email{
	display:inline-block;
	color:var(--off);
	font-family:"Archivo Black";
	font-size:clamp(24px,3vw,46px);
	letter-spacing:-.05em;
	margin:30px 0 60px;
	text-decoration:none;
	border-bottom:2px solid var(--red)
}

.detail-row{
	display:grid;
	grid-template-columns:120px 1fr;
	border-top:1px solid var(--line);
	padding:18px 0;
	font-size:11px
}

.detail-row span{
	color:#666
}

.detail-row strong{
	font-weight:500
}

.contact-form{
	display:flex;
	flex-direction:column;
	gap:26px
}

.contact-form label{
	text-transform:uppercase;
	font-size:9px;
	letter-spacing:.16em;
	color:#888
}

.contact-form input,.contact-form textarea,.contact-form select{
	display:block;width:100%;
	margin-top:10px;
	background:transparent;
	border:0;
	border-bottom:1px solid #444;
	color:var(--off);
	padding:14px 0;
	font:inherit;
	outline:0;
	border-radius:0
}

.contact-form textarea{
	resize:vertical
}

.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
	border-color:var(--yellow)
}

.contact-form select option{
	background:#111
}

.form-note{
	font-size:10px;
	color:#666;
	line-height:1.5
}

.reveal{
	opacity:0;
	transform:translateY(35px);
	transition:opacity .8s var(--ease),transform .8s var(--ease)
}

.reveal.visible{
	opacity:1;
	transform:none
}

.glitch{
	position:relative
}

.glitch:before,.glitch:after{
	content:attr(data-text);
	position:absolute;
	inset:0;
	opacity:0;
	pointer-events:none
}

.glitch:hover:before{
	opacity:.6;
	color:var(--red);
	transform:translate(4px,0);clip-path:inset(30% 0 48% 0);
	animation:glitch .22s steps(2) infinite
}

.glitch:hover:after{
	opacity:.55;
	color:var(--yellow);
	transform:translate(-4px,0);
	clip-path:inset(58% 0 15% 0);
	animation:glitch .18s steps(2) infinite
}

@keyframes glitch{
	50%{transform:translate(-6px,2px)}
}

.checkout-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
}

.checkout-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.checkout-modal {
  position: relative;
  width: min(100%, 580px);
  padding: clamp(30px, 7vw, 64px);
  color: #fff;
  background: #080808;
  border: 1px solid #353535;
  transform: translateY(28px) scale(0.97);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1);
}

.checkout-overlay.is-open .checkout-modal {
  transform: translateY(0) scale(1);
}

.checkout-close {
  position: absolute;
  top: 16px;
  right: 20px;
  border: 0;
  background: transparent;
  color: white;
  font-size: 36px;
  cursor: pointer;
}

.checkout-kicker {
  font-size: 11px;
  letter-spacing: 0.2em;
  color: #aaa;
}

.checkout-modal h2 {
  margin: 35px 0 20px;
  font-size: clamp(40px, 8vw, 68px);
  font-weight: 900;
  line-height: 0.95;
  letter-spacing: -0.06em;
}

.checkout-modal h2 span {
  color: #888;
}

.checkout-description {
  max-width: 350px;
  color: #bcbcbc;
  line-height: 1.7;
  font-size: 14px;
  margin-bottom: 32px;
}

.checkout-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 20px 22px;
  background: #fff;
  color: #000;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.07em;
  text-decoration: none;
  transition: background 0.25s, color 0.25s;
}

.checkout-button:hover {
  background: #c9ff38;
  color: #000;
}

.checkout-button span {
  font-size: 20px;
}

.checkout-secure {
  margin-top: 24px;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: #888;
}

.checkout-secure span {
  color: #c9ff38;
}

body.checkout-locked {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .checkout-overlay,
  .checkout-modal,
  .checkout-button,
  .nav-checkout span {
    transition: none;
  }
}

@media(max-width:800px){
	.site-header{
		height:75px
	}
	
	.brand{
		width:145px
	}
	
	.menu-toggle{
		display:flex;
		flex-direction:column;
		gap:6px;
		z-index:60
	}
	
	.menu-toggle span{
		width:28px;
		height:2px;
		background:#fff
	}
	
	.nav{
		position:fixed;
		inset:0;
		background:#080808;
		display:flex;
		flex-direction:column;
		align-items:center;
		justify-content:center;
		gap:28px;
		transform:translateX(100%);
		transition:.45s var(--ease)
	}
	
	.nav.open{
		transform:none
	}
	
	.nav a{
		font-size:18px
	}
	
	.hero{
		padding:130px 7vw 80px
	}
	
	.hero-mark{
		width:90vw;
		opacity:.08
	}
	
	.hero-actions{
		align-items:flex-start;
		flex-direction:column;
		gap:20px
	}
	
	.section{
		padding:90px 7vw
	}
	
	.statement,.split,.services,.contact-layout{
		grid-template-columns:1fr;
		gap:35px
	}
	
	.work-grid{
		grid-template-columns:1fr
	}
	
	.work-large{
		grid-row:auto;
		min-height:500px
	}
	
	.section-top{
		display:block
	}
	
	.section-top .arrow-link{
		margin-top:25px
	}
	
	.gallery-grid{
		grid-template-columns:1fr 1fr;
		grid-auto-rows:220px
	}
	
	.gallery-item.tall{
		grid-row:span 2
	}
	
	.gallery-item.wide{
		grid-column:span 2
	}
	
	.service{
		grid-template-columns:40px 1fr
	}
	
	.service p{
		grid-column:2
	}
	
	.about-image{
		margin:0 7vw 90px;
		height:45vh
	}
	
	.footer{
		grid-template-columns:1fr;
		gap:12px
	}
	
	.footer p:last-child{
		text-align:left
	}
	
	.manifesto{
		padding:100px 7vw
	}
	
	.manifesto-inner strong,.manifesto-inner span:last-child{
		align-self:auto
	}
	
	.page-hero{
		padding-top:150px
	}
	
	.big-email{
		word-break:break-word
	}
	
	.lightbox img{
		max-width:96vw
	}
}
/* Gallery shop and shared basket */
.site-header{
	mix-blend-mode:normal;
	background:rgba(8,8,8,.94);
	backdrop-filter:blur(14px);
	gap:22px
}
	
.nav{
	margin-left:auto;
	align-items:center
}

.basket-menu{
	position:relative;
	flex:none
}

.basket-toggle{
	display:flex;
	align-items:center;
	gap:9px;
	border:1px solid var(--line);
	background:transparent;
	color:var(--off);
	padding:10px 12px;
	font:inherit;
	font-size:11px;
	text-transform:uppercase;
	letter-spacing:.08em;
	cursor:pointer
}

.basket-toggle svg{
	width:22px;
	height:22px;
	fill:none;
	stroke:currentColor;
	stroke-width:1.5
}

.basket-toggle #basketCount{
	background:var(--yellow);
	color:var(--black);
	border-radius:50%;
	min-width:21px;
	min-height:21px;
	display:grid;
	place-items:center;
	font-weight:700
}

.basket-panel{
	position:absolute;
	top:calc(100% + 20px);
	right:0;
	width:min(480px,92vw);
	background:#101010;
	border:1px solid #444;
	padding:24px;
	box-shadow:0 24px 70px #000b;
	max-height:calc(100svh - 120px);
	overflow-y:auto
}

.basket-panel[hidden]{
	display:none
}

.basket-heading{
	display:flex;
	align-items:center;
	justify-content:space-between
}

.basket-heading h2{
	font-size:24px;
	margin:0 0 20px
}

.basket-heading button{
	border:0;
	background:none;
	color:white;
	font-size:30px;
	cursor:pointer
}

.basket-item{
	display:grid;
	grid-template-columns:64px 1fr auto;
	gap:14px;
	padding:18px 0;
	border-bottom:1px solid var(--line)
}

.basket-item img{
	width:64px;
	height:80px;
	object-fit:cover
}

.basket-item-detail{
	min-width:0;
	display:grid;
	gap:8px;
	font-size:12px
}

.basket-item-detail strong{
	overflow-wrap:anywhere
}

.basket-item-detail>span{
	color:#aaa
}

.quantity-controls{
	display:flex;
	gap:8px;
	align-items:center;
	flex-wrap:wrap
}

.quantity-button{
	padding:5px 9px;
	border:1px solid #555;
	background:none;
	color:white;
	font:inherit;
	cursor:pointer
}

.basket-line-price{font-size:12px;white-space:nowrap}.basket-total{display:flex;justify-content:space-between;padding:24px 0 6px}.basket-note,.basket-empty{font-size:13px;color:#bbb;line-height:1.6}.checkout-button{width:100%;border:0;cursor:pointer;font-family:inherit}.checkout-button:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;align-items:start}.shop-artwork{position:relative;display:block;width:100%;padding:0;background:#111;border:1px solid var(--line);color:var(--off);font:inherit;text-align:left}.shop-artwork img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;background:#090909;display:block}.gallery-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:18px 18px 10px;font-size:13px}.gallery-meta strong{max-width:100%;overflow-wrap:anywhere}.gallery-meta span{color:#ccc}.view-artwork{display:block;padding:0 18px 18px;color:var(--yellow);font-size:10px;letter-spacing:.1em}.gallery-empty{grid-column:1/-1;padding:40px 0;color:#aaa}.artwork-dialog,.checkout-dialog{border:1px solid #444;background:#080808;color:var(--off);padding:0;max-height:92svh;max-width:92vw;overflow:auto}.artwork-dialog::backdrop,.checkout-dialog::backdrop{background:rgba(0,0,0,.9);backdrop-filter:blur(10px)}.artwork-dialog[open],.checkout-dialog[open]{animation:shop-enter .25s var(--ease)}.artwork-dialog{width:1000px}.artwork-dialog>img{display:block;width:100%;height:65svh;object-fit:contain;background:#000}.dialog-close{position:absolute;top:12px;right:16px;background:#080808;border:1px solid #555;border-radius:50%;width:44px;height:44px;color:white;font-size:28px;cursor:pointer}.artwork-details{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;gap:24px}.artwork-details h2{font-size:clamp(24px,4vw,38px);margin:8px 0;overflow-wrap:anywhere}.artwork-details .section-kicker{margin:0}.artwork-details p{margin:8px 0}.artwork-details .btn{border:0;cursor:pointer;white-space:nowrap}.preview-caption{font-size:10px;color:#888;text-transform:uppercase;letter-spacing:.14em;margin:0;padding:0 32px 24px}.checkout-dialog{width:580px}.checkout-dialog .checkout-modal{transform:none;width:100%;border:0;padding:clamp(26px,5vw,48px)}.checkout-summary-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #333;font-size:13px}.checkout-summary-row span{overflow-wrap:anywhere}.checkout-summary-row strong{white-space:nowrap}.checkout-summary-total{font-size:20px;margin-bottom:24px}.checkout-modal #checkoutError{font-size:13px;line-height:1.6;color:#ff9c90}.shop-toast{position:fixed;z-index:10001;bottom:24px;left:50%;transform:translate(-50%,20px);max-width:90vw;width:max-content;background:var(--yellow);color:#080808;padding:14px 20px;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;font-size:13px}.shop-toast.visible{opacity:1;transform:translate(-50%,0)}button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}@keyframes shop-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.nav{gap:18px}.site-header{padding:14px 20px}.brand{width:150px}}@media(max-width:760px){.site-header{height:84px}.menu-toggle{order:3}.basket-menu{margin-left:auto;order:2}.brand{width:130px}.nav{margin:0}.basket-toggle>span:first-of-type{display:none}.basket-panel{position:fixed;top:84px;right:12px;width:calc(100vw - 24px)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.artwork-details{padding:20px;flex-direction:column;align-items:stretch;gap:12px}.artwork-details .btn{justify-content:center}.artwork-dialog>img{height:55svh}.preview-caption{padding:0 20px 20px}}@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.basket-panel{padding:18px}.basket-item{grid-template-columns:52px 1fr;gap:12px}.basket-item img{width:52px;height:68px}.basket-line-price{grid-column:2}.gallery-meta{font-size:14px}}@media(prefers-reduced-motion:reduce){.artwork-dialog[open],.checkout-dialog[open]{animation:none}.shop-toast,.shop-artwork img{transition:none}}
/* Explicit viewport height keeps the mobile menu full-screen inside the blurred header. */
@media(max-width:900px){.nav{width:100vw;height:100svh;margin:0}.basket-menu{z-index:61}}

/* Accessible navigation and server-rendered artwork pages. */
.skip-link{position:fixed;top:-100px;left:16px;z-index:9999;background:#f2ff00;color:#000;padding:12px}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid #f2ff00;outline-offset:4px}
a.shop-artwork{color:inherit;text-decoration:none}
.artwork-page{padding-top:150px}
.artwork-page h1{font-size:clamp(2rem,6vw,5rem);margin:24px 0}
.artwork-page-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:start}
.artwork-page-layout>img{width:100%;height:auto}
.artwork-page-layout p{margin-bottom:24px}
.artwork-page-price{font-size:2rem}
/* Content remains readable when JavaScript fails or is disabled. */
.reveal{opacity:1;transform:none}
.js-animations .reveal{opacity:0;transform:translateY(35px)}
.js-animations .reveal.visible{opacity:1;transform:none}
@media(max-width:700px){.artwork-page-layout{grid-template-columns:1fr}.artwork-page{padding-top:110px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(prefers-reduced-motion:reduce){
 .ticker-track{animation:none;width:100%}
 .ticker-group{min-width:0;width:100%;flex-wrap:wrap;white-space:normal;padding:0 16px;gap:16px;justify-content:center}
 .ticker-group[aria-hidden="true"],.ticker-toggle{display:none}
 .js-animations .reveal{opacity:1;transform:none}
}
