/* Torven Commerce — structural CSS only. Colors, fonts, spacing, radius
   and button styles are inherited from the site's own global.css design
   system; this file never redefines them. */

.torven-no-product-notice {
	opacity: .6;
	font-size: var(--torven-fs-small, .8125rem);
}

/* Product Grid / Product Categories: responsive column count driven by
   Elementor's own responsive controls via the --torven-grid-cols var. */
.torven-product-grid,
.torven-product-categories {
	display: grid;
	gap: var(--torven-gutter, 24px);
	grid-template-columns: repeat(var(--torven-grid-cols, 4), 1fr);
}

.torven-product-card__stock {
	font-size: var(--torven-fs-small, .8125rem);
	color: var(--torven-text-muted, inherit);
}

.torven-product-card__cart {
	margin-top: .75rem;
}

/* Product Price: let WooCommerce's own <del>/<ins> markup pick up the
   site's palette instead of the browser default red/black. */
.torven-product-price del {
	color: var(--torven-text-soft, inherit);
	opacity: .6;
}

.torven-product-price ins {
	text-decoration: none;
	color: var(--torven-color-accent-primary, inherit);
}

/* Product Categories tiles: minimal structure, same radius/border as the
   rest of the Torven design system. */
.torven-category-tile {
	display: block;
	text-decoration: none;
	color: inherit;
	border: 1px solid var(--torven-color-border, currentColor);
}

.torven-category-tile__media img {
	display: block;
	width: 100%;
	height: auto;
}

.torven-category-tile__body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: .75rem 1rem;
}

.torven-category-tile__name {
	font-family: var(--torven-font-heading, inherit);
}

.torven-category-tile__count {
	opacity: .6;
	font-size: var(--torven-fs-small, .8125rem);
}

/* Sale badge next to the price — same "-X%" pill the product card uses. */
.torven-product-price {
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}

.torven-product-price__badge {
	display: inline-flex;
	align-items: center;
	padding: .25rem .6rem;
	background: var(--torven-color-accent-red, #891a1a);
	color: var(--torven-white, #fff);
	font-family: var(--torven-font-body);
	font-size: var(--torven-fs-label, .625rem);
	font-weight: var(--torven-weight-bold, 700);
	letter-spacing: .1em;
	text-transform: uppercase;
	border-radius: var(--torven-button-radius, 0);
}

/* Add to Cart: make the native WooCommerce button and quantity input look
   like the site's own primary button and form fields, without touching
   WooCommerce's markup — same tokens as .torven-button--dark. */
.torven-add-to-cart {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.torven-add-to-cart form.cart {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.torven-add-to-cart .quantity {
	margin: 0;
}

.torven-add-to-cart .quantity .qty {
	min-height: var(--torven-button-height, 52px);
	width: 4.5rem;
	padding: 0 .75rem;
	border: 1px solid var(--torven-color-border, #c8c0b1);
	border-radius: var(--torven-button-radius, 0);
	background: var(--torven-color-page, #fff);
	color: var(--torven-text, inherit);
	font-family: var(--torven-font-body);
	font-size: 1rem;
	text-align: center;
}

.torven-add-to-cart .single_add_to_cart_button {
	min-height: var(--torven-button-height, 52px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 0 2rem;
	border: 1px solid var(--torven-green, #071710);
	border-radius: var(--torven-button-radius, 0);
	background: var(--torven-green-bar, #173327);
	color: var(--torven-white, #fff);
	font-family: var(--torven-font-body);
	font-size: var(--torven-button-font-size, 12.5px);
	font-weight: var(--torven-button-font-weight, 600);
	letter-spacing: var(--torven-button-letter-spacing, 3px);
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--torven-transition, .28s cubic-bezier(.22, 1, .36, 1));
}

.torven-add-to-cart .single_add_to_cart_button:hover {
	color: var(--torven-green, #071710);
	background: transparent;
}

.torven-add-to-cart .single_add_to_cart_button.disabled,
.torven-add-to-cart .single_add_to_cart_button[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

.torven-product-short-description {
	color: var(--torven-text-muted, inherit);
}

/* Cart keeps the same primary button treatment as the product page. */
body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-button {
	min-height: var(--torven-button-height, 52px);
	padding: 12px 24px;
	background: var(--torven-color-accent-red, #891a1a);
	border: 1px solid var(--torven-color-accent-red, #891a1a);
	border-radius: var(--torven-button-radius, 0);
	color: var(--torven-button-primary-text, #fff);
	font-family: var(--torven-font-body, sans-serif);
	font-size: var(--torven-button-font-size, 12.5px);
	font-weight: var(--torven-button-font-weight, 600);
	letter-spacing: var(--torven-button-letter-spacing, 3px);
	text-transform: uppercase;
	text-decoration: none;
	transition: var(--torven-transition);
}
body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-button:focus-visible {
	background: var(--torven-color-accent-red-hover, #a32626);
	border-color: var(--torven-color-accent-red-hover, #a32626);
	color: var(--torven-button-primary-text, #fff);
	transform: translateY(-2px);
}

/* ===== Mini cart inside header drawer (#torvenCartDrawer) ===== */
#torvenCartDrawer .torven-cart-drawer__content.is-filled {
	justify-content: flex-start;
	align-items: stretch;
	padding: 10px 0 0;
	text-align: left;
}
#torvenCartDrawer.is-busy .torven-mini-cart__list { opacity: .5; pointer-events: none; }
#torvenCartDrawer .torven-mini-cart__list { list-style: none; margin: 0; padding: 0; flex: 1; }
#torvenCartDrawer .torven-mini-cart__item {
	display: grid;
	grid-template-columns: 76px 1fr auto;
	gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid rgba(231, 222, 207, .2);
	margin: 0;
}
#torvenCartDrawer .torven-mini-cart__thumb { display: block; width: 76px; height: 76px; background: rgba(255, 255, 255, .06); }
#torvenCartDrawer .torven-mini-cart__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
#torvenCartDrawer .torven-mini-cart__info { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
#torvenCartDrawer .torven-mini-cart__name {
	color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 1px; text-decoration: none; text-transform: uppercase;
}
#torvenCartDrawer .torven-mini-cart__unit { color: rgba(231, 222, 207, .6); font-size: 12px; }
#torvenCartDrawer .torven-mini-cart__qty { display: inline-flex; align-items: center; margin-top: 4px; border: 1px solid rgba(231, 222, 207, .3); width: max-content; }
#torvenCartDrawer .torven-mini-cart__qty-val { min-width: 30px; text-align: center; font-size: 13px; color: #fff; }
#torvenCartDrawer button.torven-mini-cart__qty-btn,
#torvenCartDrawer button.torven-mini-cart__qty-btn:hover,
#torvenCartDrawer button.torven-mini-cart__qty-btn:focus {
	width: 32px; height: 32px; padding: 0; color: #fff !important; background: transparent !important;
	border: 0 !important; box-shadow: none !important; font-size: 16px; line-height: 1; cursor: pointer;
}
#torvenCartDrawer button.torven-mini-cart__qty-btn:disabled { opacity: .35; cursor: default; }
#torvenCartDrawer .torven-mini-cart__side { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; }
#torvenCartDrawer .torven-mini-cart__line { color: #fff; font-size: 14px; font-weight: 600; white-space: nowrap; }
#torvenCartDrawer button.torven-mini-cart__remove,
#torvenCartDrawer button.torven-mini-cart__remove:hover,
#torvenCartDrawer button.torven-mini-cart__remove:focus {
	padding: 0; color: rgba(231, 222, 207, .6) !important; background: transparent !important; border: 0 !important;
	box-shadow: none !important; font-size: 11px; text-decoration: underline; text-transform: none; letter-spacing: 0; cursor: pointer;
}
#torvenCartDrawer .torven-mini-cart__foot { padding-top: 22px; display: flex; flex-direction: column; gap: 10px; }
#torvenCartDrawer .torven-mini-cart__sum { display: flex; justify-content: space-between; align-items: baseline; color: #fff; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; }
#torvenCartDrawer .torven-mini-cart__sum strong { font-size: 18px; letter-spacing: 0; }
#torvenCartDrawer .torven-mini-cart__note { margin: 0 0 6px; color: rgba(231, 222, 207, .58); font-size: 11px; }
#torvenCartDrawer a.torven-mini-cart__checkout,
#torvenCartDrawer a.torven-mini-cart__checkout:hover,
#torvenCartDrawer a.torven-mini-cart__checkout:focus {
	display: block; padding: 15px 24px; text-align: center; color: #fff !important; background: #891a1a; border: 1px solid #891a1a;
	font-size: 12.5px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; text-decoration: none;
}
#torvenCartDrawer a.torven-mini-cart__checkout:hover { background: #a32626; border-color: #a32626; }
#torvenCartDrawer a.torven-mini-cart__view,
#torvenCartDrawer a.torven-mini-cart__view:hover {
	display: block; padding: 12px; text-align: center; color: rgba(231, 222, 207, .8) !important; font-size: 11px;
	letter-spacing: 2px; text-transform: uppercase; text-decoration: underline;
}


/* ===== Other models carousel ===== */
.torven-models-carousel { width: 100%; }
.torven-models-carousel__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.torven-models-carousel__head h2 { margin: 0; font-size: 22px; letter-spacing: 3px; text-transform: uppercase; }
.torven-models-carousel__nav { display: flex; gap: 8px; }
.torven-models-carousel__track { overflow: hidden; touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; outline: none; }
.torven-models-carousel__track.is-dragging { cursor: grabbing; }
.torven-models-carousel__rail { display: flex; gap: 16px; width: max-content; will-change: transform; }
.torven-models-carousel__card {
	flex: 0 0 var(--torven-card-w, 240px); display: flex; flex-direction: column; gap: 6px;
	color: inherit; text-decoration: none;
}
.torven-models-carousel__media { display: block; aspect-ratio: 1 / 1; background: #f2f0ec; overflow: hidden; }
.torven-models-carousel__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.torven-models-carousel__card:hover .torven-models-carousel__media img { transform: scale(1.04); }
.torven-models-carousel__name { font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.torven-models-carousel__price { font-size: 13px; opacity: .75; }

/* Card widths for the infinite carousel: 4 / 2 / ~1.4 cards in view. */
.torven-models-carousel { --torven-card-w: calc((min(100vw, 1200px) - 48px) / 4); }
.torven-models-carousel__card { width: var(--torven-card-w); }
@media (max-width: 900px) { .torven-models-carousel { --torven-card-w: 44vw; } }
@media (max-width: 480px) { .torven-models-carousel { --torven-card-w: 68vw; } }

/* Bigger stars everywhere (cap-height of the neighbouring text or more). */
.torven-reviews__stars { font-size: 1.8rem !important; }
.torven-review-card__rating > span { font-size: 1.5rem !important; }

/* ===== Rating row: 5,00 [gold stars] 23 oceny ===== */
.torven-rating { display: inline-flex; align-items: center; gap: 10px; line-height: 1; white-space: nowrap; }
.torven-rating__value { font-size: 17px; font-weight: 400; color: #1a1a1a; }
.torven-rating__stars { display: inline-flex; gap: 2px; }
.torven-rating__star { width: 24px; height: 24px; fill: #f7b500; stroke: #f7b500; stroke-width: 1.4; stroke-linejoin: round; display: block; }
.torven-rating__count { font-size: 17px; color: #0c8a86; }
.torven-rating--card .torven-rating__value,
.torven-rating--card .torven-rating__count { font-size: 14px; }
.torven-rating--card .torven-rating__star { width: 19px; height: 19px; }
.torven-product-card__rating { display: inline-flex; }

/* ===== Rating link + reviews section ===== */
html:has(#opinie) { scroll-behavior: smooth; }
#opinie { scroll-margin-top: 140px; }
a.torven-product-rating__link { display: inline-block; color: inherit; text-decoration: none; }
a.torven-product-rating__link:hover .torven-rating__count { text-decoration: underline; }
.torven-reviews-block { width: 100%; }
.torven-reviews-block > h2 { margin: 0 0 20px; font-size: 22px; letter-spacing: 3px; text-transform: uppercase; }
.torven-reviews-block__summary { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; padding: 20px 0; border-top: 1px solid rgba(0,0,0,.12); border-bottom: 1px solid rgba(0,0,0,.12); }
.torven-rating--large .torven-rating__value { font-size: 30px; font-weight: 600; }
.torven-rating--large .torven-rating__star { width: 30px; height: 30px; }
.torven-rating--large .torven-rating__count { font-size: 18px; }
.torven-reviews-block__name { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; opacity: .6; }
.torven-reviews-block__list { padding-top: 24px; }
.torven-reviews-block__list #reviews > h2,
.torven-reviews-block__list .woocommerce-Reviews-title,
.torven-reviews-block__list .woocommerce-noreviews { display: none; }
.torven-reviews-block__list ol.commentlist { list-style: none; margin: 0 0 32px; padding: 0; display: grid; gap: 16px; }
.torven-reviews-block__list ol.commentlist li .comment_container { display: flex; gap: 16px; padding: 20px; border: 1px solid rgba(0,0,0,.12); }
.torven-reviews-block__list ol.commentlist li img.avatar { width: 48px; height: 48px; border-radius: 50%; }
.torven-reviews-block__list .comment-respond { max-width: 640px; }
.torven-reviews-block__list .comment-reply-title { display: block; margin-bottom: 12px; font-size: 16px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.torven-reviews-block__list .comment-form label { display: block; margin-bottom: 6px; font-size: 13px; }
.torven-reviews-block__list .comment-form input[type=text],
.torven-reviews-block__list .comment-form input[type=email],
.torven-reviews-block__list .comment-form textarea { width: 100%; padding: 12px; border: 1px solid rgba(0,0,0,.25); border-radius: 0; }
.torven-reviews-block__list .comment-form .submit { padding: 14px 28px; color: #fff; background: #891a1a; border: 0; border-radius: 0; letter-spacing: 3px; text-transform: uppercase; cursor: pointer; }

/* Reviews carousel tiles (same mechanism as the models carousel) */
.torven-reviews-carousel .torven-models-carousel__head { align-items: flex-end; }
.torven-reviews-carousel .torven-models-carousel__head h2 { margin-bottom: 12px; }
.torven-reviews-carousel .torven-reviews-block__summary { padding: 0; border: 0; }
.torven-reviews-block > .torven-models-carousel + .torven-reviews-block__list { margin-top: 40px; }
.torven-review-tile { justify-content: space-between; gap: 14px; min-height: 220px; padding: 24px; background: #f6f4f0; border: 1px solid rgba(0,0,0,.1); box-sizing: border-box; }
.torven-review-tile__stars { color: #f7b500; font-size: 26px; letter-spacing: 3px; line-height: 1; }
.torven-review-tile p { flex: 1; margin: 0; font-size: 15px; line-height: 1.6; }
.torven-review-tile footer { display: flex; flex-direction: column; gap: 2px; }
.torven-review-tile footer strong { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; }
.torven-review-tile footer small { font-size: 12px; opacity: .6; }

/* Discount draw ("Losuj zniżkę"): button under Add to Cart + centered popup. */
.torven-draw { flex: 0 0 100%; width: 100%; }
/* Secondary button: same metrics as Add to Cart, outline colors. Selectors are
   prefixed with the element name to beat the theme's pink button/hover rules. */
.torven-draw button.torven-draw__open {
	width: 100%;
	min-height: var(--torven-button-height, 52px);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 0 2rem;
	border: 1px solid var(--torven-green, #071710);
	border-radius: var(--torven-button-radius, 0);
	background: transparent;
	color: var(--torven-green, #071710);
	font-family: var(--torven-font-body);
	font-size: var(--torven-button-font-size, 12.5px);
	font-weight: var(--torven-button-font-weight, 600);
	letter-spacing: var(--torven-button-letter-spacing, 3px);
	text-transform: uppercase;
	cursor: pointer;
	transition: var(--torven-transition, .28s cubic-bezier(.22, 1, .36, 1));
}
.torven-draw button.torven-draw__open:hover,
.torven-draw button.torven-draw__open:focus,
.torven-draw button.torven-draw__open:active {
	color: var(--torven-white, #fff);
	background: var(--torven-green, #071710);
	border-color: var(--torven-green, #071710);
}
.torven-draw__overlay {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	background: rgba(3, 9, 6, .6);
}
.torven-draw__overlay[hidden] { display: none; }
.torven-draw__dialog {
	position: relative;
	width: min(460px, 100%);
	max-height: 90vh;
	overflow: auto;
	padding: 28px 22px 24px;
	text-align: center;
	background: var(--torven-color-page, #fff);
	color: var(--torven-color-text-primary, inherit);
	border-radius: var(--torven-radius, 12px);
}
.torven-draw__dialog h3 { margin: 0 0 .4rem; }
.torven-draw__hint { margin: 0 0 1rem; font-size: var(--torven-fs-small, .875rem); color: var(--torven-text-muted, inherit); }
.torven-draw__chests { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 1rem; }
.torven-draw__chest {
	position: relative;
	padding: 10px 4px;
	cursor: pointer;
	background: var(--torven-color-surface-light, #f3eee4);
	border: 1px solid var(--torven-color-border, #c8c0b1);
	border-radius: var(--torven-radius, 10px);
	}
.torven-draw__chest:not(:disabled):hover { border-color: var(--torven-green, #071710); }
.torven-draw__chest svg { width: 100%; max-width: 72px; height: auto; display: block; margin: 0 auto; }
.torven-draw__body { fill: var(--torven-green-bar, #173327); }
.torven-draw__lock { fill: var(--torven-paper, #e7dfcf); }
.torven-draw__win { margin: 0 0 .6rem; font-weight: 700; font-size: 1.1rem; }
.torven-draw__code-row { display: flex; gap: 8px; justify-content: center; align-items: stretch; margin-bottom: .8rem; }
.torven-draw__code {
	padding: .6rem 1rem;
	font-size: 1.15rem;
	letter-spacing: .06em;
	background: var(--torven-color-surface-light, #f3eee4);
	border: 1px dashed var(--torven-color-accent-primary, currentColor);
	border-radius: var(--torven-radius, 8px);
}
.torven-draw__copy {
	padding: 0 1rem;
	cursor: pointer;
	color: var(--torven-text-on-dark, #fff);
	background: var(--torven-color-accent-primary, #173327);
	border: 0;
	border-radius: var(--torven-radius, 8px);
	font: inherit;
}

.torven-draw button.torven-draw__chest,
.torven-draw button.torven-draw__chest:hover,
.torven-draw button.torven-draw__chest:focus { background: var(--torven-color-surface-light, #f3eee4); color: var(--torven-green, #071710); border: 1px solid var(--torven-color-border, #c8c0b1); }
.torven-draw button.torven-draw__copy,
.torven-draw button.torven-draw__copy:hover,
.torven-draw button.torven-draw__copy:focus { background: var(--torven-green, #071710); color: #fff; border: 0; }

/* ---- Icon buttons: one system (close / prev / next) for the whole site ----
   48px square, 1px outline, 24px stroke icon centered by grid. Selectors carry
   `html body` (and #torvenSiteHeader for the header drawers) to beat the theme's
   pink button styles. */
html body button.torven-gallery-dialog__close,
html body button.torven-gallery-dialog__prev,
html body button.torven-gallery-dialog__next,
html body button.torven-models-carousel__arrow,
html body button.torven-draw__close,
html body #torvenSiteHeader button.torven-cart-close[type="button"],
html body #torvenSiteHeader button.torven-mobile-close[type="button"] {
	--torven-ib-fg: var(--torven-green, #071710);
	--torven-ib-bg: transparent;
	--torven-ib-hover-fg: #fff;
	--torven-ib-hover-bg: var(--torven-green, #071710);
	box-sizing: border-box;
	display: grid;
	place-items: center;
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	min-width: 48px;
	min-height: 48px;
	padding: 0;
	margin: 0;
	color: var(--torven-ib-fg) !important;
	background: var(--torven-ib-bg) !important;
	border: 1px solid var(--torven-ib-fg) !important;
	border-radius: var(--torven-button-radius, 0) !important;
	box-shadow: none !important;
	line-height: 0;
	font-size: 0;
	cursor: pointer;
	transition: color .2s ease, background .2s ease, border-color .2s ease;
}
html body button.torven-gallery-dialog__close:hover,
html body button.torven-gallery-dialog__close:focus-visible,
html body button.torven-gallery-dialog__prev:hover,
html body button.torven-gallery-dialog__prev:focus-visible,
html body button.torven-gallery-dialog__next:hover,
html body button.torven-gallery-dialog__next:focus-visible,
html body button.torven-models-carousel__arrow:hover:not(:disabled),
html body button.torven-models-carousel__arrow:focus-visible,
html body button.torven-draw__close:hover,
html body button.torven-draw__close:focus-visible,
html body #torvenSiteHeader button.torven-cart-close[type="button"]:hover,
html body #torvenSiteHeader button.torven-cart-close[type="button"]:focus-visible,
html body #torvenSiteHeader button.torven-mobile-close[type="button"]:hover,
html body #torvenSiteHeader button.torven-mobile-close[type="button"]:focus-visible {
	color: var(--torven-ib-hover-fg) !important;
	background: var(--torven-ib-hover-bg) !important;
	border-color: var(--torven-ib-hover-bg) !important;
}
html body button.torven-models-carousel__arrow:disabled { opacity: .3; cursor: default; }
/* Dark header drawers: light outline, inverted hover. */
html body #torvenSiteHeader button.torven-cart-close[type="button"],
html body #torvenSiteHeader button.torven-mobile-close[type="button"] {
	--torven-ib-fg: #fff;
	--torven-ib-hover-fg: var(--torven-green, #071710);
	--torven-ib-hover-bg: #fff;
	border-color: rgba(255, 255, 255, .5) !important;
}
html body button.torven-gallery-dialog__close .torven-icon,
html body button.torven-gallery-dialog__prev .torven-icon,
html body button.torven-gallery-dialog__next .torven-icon,
html body button.torven-models-carousel__arrow .torven-icon,
html body button.torven-draw__close .torven-icon,
html body #torvenSiteHeader button.torven-cart-close[type="button"] svg,
html body #torvenSiteHeader button.torven-mobile-close[type="button"] svg {
	display: block;
	width: 24px;
	height: 24px;
	fill: none !important;
	stroke: currentColor !important;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
	pointer-events: none;
}
.torven-draw button.torven-draw__close { position: absolute; top: 12px; right: 12px; }
.torven-draw__dialog { padding-top: 64px; }
.torven-draw button.torven-draw__chest.is-open { border-color: var(--torven-green, #071710); }

/* Draw animation: everything below runs at once (lid, prize, result) on transform/opacity only,
   so it stays smooth and never shifts the layout (result space is reserved up front). */
.torven-draw__chest { overflow: visible; transition: opacity .25s ease, border-color .25s ease, background .25s ease; }
.torven-draw__chest svg { overflow: visible; }
.torven-draw__lid { fill: var(--torven-green-soft, #10291d); transform-origin: 8px 28px; transition: transform .25s ease-out; }
.torven-draw__chest.is-open .torven-draw__lid { transform: rotate(-32deg); }
.torven-draw__chest.is-dim { opacity: .35; }
.torven-draw__prize {
	display: block;
	min-height: 1.6em;
	margin-top: 8px;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.6;
	opacity: 0;
	transform: translateY(6px) scale(.9);
	transition: opacity .25s ease-out, transform .25s ease-out;
}
.torven-draw__chest.is-open .torven-draw__prize { opacity: 1; transform: none; }
.torven-draw__result {
	min-height: 150px;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .25s ease-out, transform .25s ease-out;
	pointer-events: none;
}
.torven-draw__result.is-shown { opacity: 1; transform: none; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) {
	.torven-draw__chest, .torven-draw__lid, .torven-draw__prize, .torven-draw__result { transition: none; }
}

/* ---- Scrollbar: slim, on-brand, and always present ----
   The bar is never hidden (popups and the gallery no longer set overflow:hidden), and
   scrollbar-gutter keeps its space reserved so the page cannot shift sideways. */
html {
	scrollbar-gutter: stable;
	scrollbar-width: thin;
	scrollbar-color: var(--torven-green-bar, #173327) var(--torven-paper-light, #f3eee4);
}
html::-webkit-scrollbar { width: 10px; height: 10px; }
html::-webkit-scrollbar-track { background: var(--torven-paper-light, #f3eee4); }
html::-webkit-scrollbar-thumb {
	background: var(--torven-green-bar, #173327);
	border: 2px solid var(--torven-paper-light, #f3eee4);
	border-radius: 10px;
}
html::-webkit-scrollbar-thumb:hover { background: var(--torven-green, #071710); }
