


.site-header {
	position:sticky;
	top:0;
	z-index:100;
	height:var(--header-height);
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
	transition:transform var(--dur-base) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision);
	width:100%;
}


/* Slide out on scroll down, slide in on scroll up */
.site-header.header-hidden {
	transform:translateY(-100%);
}


.header-inner {
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:100%;
	padding-left:clamp(16px, 3vw, 32px);
	padding-right:clamp(16px, 3vw, 32px);
	gap:var(--space-md);
	max-width:var(--site-max-width);
	margin:0 auto;
}


.brand {
	display:inline-flex;
	align-items:center;
	flex-shrink:0;
	height:100%;
	text-decoration:none;
}


.brand img {
	height:2.1rem;
	width:auto;
	max-width:38vw; 
	object-fit:contain;
	transition:opacity var(--dur-fast) var(--ease-precision);
}


.brand:hover img {
	opacity:0.9;
}


.brand:active img {
	opacity:0.8;
}


.brand:focus-visible {

	outline:2px solid var(--hairline);
	outline-offset:4px;
}


/* Desktop Navigation Row (hidden on phone, shown when links fit) */
.header-nav {
	display:none;
	align-items:center;
	gap:clamp(12px, 2vw, 28px);
	height:100%;
}


@media (min-width: 1024px) {
	.header-nav {
		display:flex;
	}
}


.nav-link {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	height:100%;
	padding:0 4px;
	position:relative;
	transition:color var(--dur-fast) var(--ease-precision);
}


.nav-link::after {
	content:'';
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:2px;
	background-color:transparent;
	transition:background-color var(--dur-fast) var(--ease-precision);
}


.nav-link:hover {
	color:var(--ink);
}


.nav-link:active {
	color:var(--hairline);
}


.nav-link:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:2px;
}


.nav-link[aria-current="page"] {
	color:var(--ink);
	font-weight:500;
}


.nav-link[aria-current="page"]::after {
	background-color:var(--hairline);
}


.header-action {
	display:none;
	align-items:center;
	flex-shrink:0;
}


@media (min-width: 1024px) {
	.header-action {
		display:flex;
	}
}



.mobile-dock {
	position:fixed;
	inset:auto 0 0 0;
	height:var(--dock-height);
	background-color:rgba(20, 18, 18, 0.96);
	backdrop-filter:blur(12px);
	-webkit-backdrop-filter:blur(12px);
	border-top:1px solid var(--line);
	z-index:95;
	display:flex;
	align-items:stretch;
	padding-bottom:env(safe-area-inset-bottom, 0px);
}


@media (min-width: 1024px) {
	.mobile-dock {
		display:none !important;
	}
}


.dock-item {
	flex:1 1 0;
	min-width:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:3px;
	color:var(--ink-soft);
	text-decoration:none;
	appearance:none;
	background:none;
	border:0;
	font:inherit;
	cursor:pointer;
	padding:4px 2px;
	transition:color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision);
}


.dock-item .icon {
	width:22px;
	height:22px;
}


.dock-label {
	font-family:var(--doci-049);
	font-size:11px;
	line-height:1;
	text-transform:uppercase;
	letter-spacing:0.02em;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	max-width:100%;
}


.dock-item:hover {
	color:var(--ink);
	background-color:var(--surface);
}


.dock-item:active {
	color:var(--hairline);
	background-color:var(--surface-2);
}


.dock-item:focus-visible {

	outline:2px solid var(--hairline);
	outline-offset:-2px;
}


.dock-item[aria-current="page"] {
	color:var(--hairline);
}


.dock-item[aria-current="page"] .dock-label {
	font-weight:600;
}


.nav-drawer {
	position:fixed;
	inset:0;
	background-color:rgba(10, 9, 9, 0.85);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	z-index:150;
	display:flex;
	flex-direction:column;
	justify-content:flex-end;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity var(--dur-base) var(--ease-precision),
							visibility var(--dur-base) var(--ease-precision);
}


.nav-drawer.is-open {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}


.drawer-panel {
	background-color:var(--surface);
	border-top:1px solid var(--hairline);
	padding:var(--space-lg) clamp(20px, 5vw, 40px);
	display:flex;
	flex-direction:column;
	gap:var(--space-lg);
	max-height:85vh;
	max-height:85dvh;
	overflow-y:auto;
	transform:translateY(100%);
	transition:transform var(--dur-settle) var(--ease-settle);
}


.nav-drawer.is-open .drawer-panel {
	transform:translateY(0);
}


.drawer-header {
	display:flex;
	align-items:center;
	justify-content:space-between;
	border-bottom:1px solid var(--line);
	padding-bottom:var(--space-sm);
}


.drawer-close {
	appearance:none;
	background:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	padding:8px 14px;
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	gap:8px;
	min-height:44px;
	transition:border-color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision),
							color var(--dur-fast) var(--ease-precision);
}


.drawer-close:hover {
	background-color:var(--line);
	border-color:var(--ink-soft);
}


.drawer-close:active {
	background-color:var(--hairline);
	color:var(--ground);
}


.drawer-close:focus-visible {
	outline:2px solid var(--hairline);
}


.drawer-links {
	display:flex;
	flex-direction:column;
	gap:var(--space-xs);
	list-style:none;
}


.drawer-link {
	font-family:var(--doci-1c9);
	font-size:var(--fs-md);
	color:var(--ink);
	text-transform:uppercase;
	letter-spacing:var(--tracking-chiseled);
	padding:12px 0;
	border-bottom:1px solid rgba(70, 70, 70, 0.4);
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:44px;
	transition:color var(--dur-fast) var(--ease-precision),
							padding-left var(--dur-fast) var(--ease-precision);
}


.drawer-link:hover {
	color:var(--hairline);
	padding-left:8px;
}


.drawer-link:active {
	color:var(--accent);
}


.drawer-link[aria-current="page"] {
	color:var(--hairline);

	font-weight:700;
}


.drawer-meta {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	line-height:1.6;
}



.btn {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:var(--space-xs);
	padding:12px 24px;
	min-height:44px;
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	font-weight:500;
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	border-radius:0;
	cursor:pointer;
	text-decoration:none;
	white-space:nowrap;
	border:1px solid transparent;
	transition:background-color var(--dur-fast) var(--ease-precision),
							border-color var(--dur-fast) var(--ease-precision),
							color var(--dur-fast) var(--ease-precision),
							box-shadow var(--dur-fast) var(--ease-precision);
}


/* Primary Jewel Accent Button (Emerald) */
.btn-primary {
	background-color:var(--accent);
	color:var(--accent-ink);
	border-color:var(--accent);
}


.btn-primary:hover {
	background-color:var(--accent-hover);
	border-color:var(--accent-hover);
	box-shadow:0 0 12px rgba(38, 133, 81, 0.35);
}


.btn-primary:active {
	background-color:var(--accent-active);
	border-color:var(--accent-active);
	transform:translateY(1px);
}


.btn-primary:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:3px;
}


.btn-outline {
	background-color:transparent;
	color:var(--ink);
	border-color:var(--line);
}


.btn-outline:hover {
	border-color:var(--hairline);
	color:var(--hairline);
	background-color:rgba(176, 141, 87, 0.08);
}


.btn-outline:active {
	background-color:rgba(176, 141, 87, 0.18);
	border-color:var(--hairline);
	transform:translateY(1px);
}


.btn-outline:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:3px;
}


/* Subtle Action Button */
.btn-subtle {
	background-color:var(--surface-2);
	color:var(--ink-soft);
	border-color:var(--line);
}


.btn-subtle:hover {
	background-color:var(--surface-hover);
	color:var(--ink);
	border-color:var(--line-strong);
}


.btn-subtle:active {
	background-color:var(--line);
	color:var(--ink);
	transform:translateY(1px);
}


.btn-subtle:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:2px;
}


/* Small Tag / Filter Chip */
.filter-chip {
	appearance:none;
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:6px 14px;
	min-height:36px;
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	background-color:var(--surface);
	color:var(--ink-soft);
	border:1px solid var(--line);
	cursor:pointer;
	transition:border-color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision),
							color var(--dur-fast) var(--ease-precision);
}


.filter-chip:hover {
	border-color:var(--line-strong);
	color:var(--ink);
}


.filter-chip:active {
	background-color:var(--surface-2);
}


.filter-chip:focus-visible {
	outline:2px solid var(--hairline);
}


.filter-chip.is-active,
.filter-chip[aria-pressed='true'] {
	background-color:var(--surface-2);
	border-color:var(--hairline);
	color:var(--hairline);
	font-weight:500;
}



.ledger-table-wrap {
	width:100%;
	overflow-x:auto;
	border:1px solid var(--line);
	background-color:var(--surface);
	margin:var(--space-md) 0;
	-webkit-overflow-scrolling:touch;
}


.ledger-table {
	width:100%;
	border-collapse:collapse;
	text-align:left;
	font-size:var(--fs-sm);
	min-width:620px;
}


.ledger-table th,
.ledger-table td {
	padding:14px 18px;
	border-bottom:1px solid var(--line);
}


.ledger-table th {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	color:var(--ink-soft);
	background-color:rgba(20, 18, 18, 0.6);
	font-weight:500;
}


.ledger-table tbody tr {
	transition:background-color var(--dur-fast) var(--ease-precision);
}


.ledger-table tbody tr:hover {
	background-color:var(--surface-hover);
}


.ledger-table tbody tr:last-child td {
	border-bottom:none;
}


.product-plate {
	border:1px solid var(--line);
	background-color:var(--surface);
	padding:var(--space-lg);
	margin-bottom:var(--space-lg);
	position:relative;
}


.product-plate-header {
	display:flex;
	flex-wrap:wrap;
	align-items:baseline;
	justify-content:space-between;
	gap:var(--space-sm);
	border-bottom:1px solid var(--line);
	padding-bottom:var(--space-sm);
	margin-bottom:var(--space-md);
}


.product-plate-title {
	font-size:var(--fs-lg);
	color:var(--ink);
	margin-bottom:0;
}


.product-plate-price {
	font-family:var(--doci-049);
	font-size:var(--fs-md);
	color:var(--hairline);
	font-weight:500;
}


.product-meta-list {
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
	gap:var(--space-sm);
	padding:var(--space-md) 0;
	border-top:1px solid var(--line);
	border-bottom:1px solid var(--line);
	margin:var(--space-md) 0;
	font-size:var(--fs-sm);
}


.product-meta-item {
	display:flex;
	flex-direction:column;
	gap:2px;
}


.product-meta-key {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
}


.product-meta-val {
	color:var(--ink);
	font-family:var(--doci-049);
}



.tabs-nav {
	display:flex;
	border-bottom:1px solid var(--line);
	background-color:var(--surface);
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}


.tab-btn {
	appearance:none;
	background:none;
	border:none;
	border-right:1px solid var(--line);
	border-bottom:2px solid transparent;
	color:var(--ink-soft);
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	padding:16px 24px;
	cursor:pointer;
	white-space:nowrap;
	min-height:48px;
	display:inline-flex;
	align-items:center;
	gap:8px;
	transition:color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision),
							border-color var(--dur-fast) var(--ease-precision);
}


.tab-btn:hover {
	color:var(--ink);
	background-color:var(--surface-hover);
}


.tab-btn:active {
	background-color:var(--surface-2);
}


.tab-btn:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:-2px;
}


.tab-btn[aria-selected='true'] {
	color:var(--accent-ink);
	background-color:var(--ground);
	border-bottom-color:var(--hairline);
	font-weight:500;
}


.tab-panel {
	display:block;
}


.tab-panel[hidden] {
	display:none;
}



.form-shell {
	background-color:var(--surface);
	border:1px solid var(--line);
	padding:clamp(20px, 4vw, 40px);
}


.form-grid {
	display:grid;
	grid-template-columns:1fr;
	gap:var(--space-md);
}


@media (min-width: 768px) {
	.form-grid-2 {
		grid-template-columns:1fr 1fr;
	}
}


.form-group {
	display:flex;
	flex-direction:column;
	gap:6px;
	position:relative;
}


.form-label {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	color:var(--ink);
	display:flex;
	align-items:baseline;
	justify-content:space-between;
}


.form-label .optional {
	color:var(--ink-soft);
	font-size:0.85em;
	text-transform:none;
}


.form-control {
	appearance:none;
	width:100%;
	background-color:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	padding:12px 14px;
	font-family:var(--doci-527);
	font-size:var(--fs-base);
	min-height:44px;
	border-radius:0;
	transition:border-color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision),
							box-shadow var(--dur-fast) var(--ease-precision);
}


.form-control:hover {
	border-color:var(--line-strong);
}


.form-control:focus {
	outline:none;
	border-color:var(--hairline);
	box-shadow:0 0 0 2px var(--focus-ring);
	background-color:#2E2E2E;
}


textarea.form-control {
	min-height:120px;
	resize:vertical;
}


/* Custom Checkbox */
.form-checkbox-label {
	display:flex;
	align-items:flex-start;
	gap:12px;
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	cursor:pointer;
	line-height:1.45;
	user-select:none;
}


.form-checkbox-label input[type='checkbox'] {
	appearance:none;
	width:20px;
	height:20px;
	margin-top:2px;
	background-color:var(--surface-2);
	border:1px solid var(--line);
	flex-shrink:0;
	cursor:pointer;
	position:relative;
	transition:border-color var(--dur-fast) var(--ease-precision),
							background-color var(--dur-fast) var(--ease-precision);
}


.form-checkbox-label input[type='checkbox']:hover {
	border-color:var(--hairline);
}


.form-checkbox-label input[type='checkbox']:checked {
	background-color:var(--accent);
	border-color:var(--accent);
}


.form-checkbox-label input[type='checkbox']:checked::after {
	content:'';
	position:absolute;
	top:2px;
	left:6px;
	width:5px;
	height:10px;
	border:solid var(--accent-ink);
	border-width:0 2px 2px 0;
	transform:rotate(45deg);
}


.form-checkbox-label input[type='checkbox']:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:2px;
}


.field-error {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	color:var(--error-ink);
	display:none;
	margin-top:2px;
}


.has-error .form-control {
	border-color:var(--error-border);
	background-color:var(--error-surface);
}


.has-error .field-error {
	display:block;
}


.form-feedback {
	padding:16px;
	border:1px solid transparent;
	font-family:var(--doci-049);
	font-size:var(--fs-sm);
	display:none;
	margin-top:var(--space-md);
}


.form-feedback.is-success {
	display:block;
	background-color:rgba(38, 133, 81, 0.15);
	border-color:var(--accent);
	color:var(--success-ink);
}


.form-feedback.is-error {
	display:block;
	background-color:var(--error-surface);
	border-color:var(--error-border);
	color:var(--error-ink);
}


/* Visually Hidden Honeypot */
.form-hp {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	border:0;
}



.site-footer {
	background-color:var(--surface);
	border-top:1px solid var(--line);
	padding-top:clamp(48px, 6vw, 80px);
	padding-bottom:clamp(32px, 4vw, 56px);
	margin-top:auto;
}


.footer-grid {
	display:flex;
	flex-direction:column;
	gap:var(--space-xl);
	margin-bottom:var(--space-xl);
}


@media (min-width: 768px) {
	.footer-grid {
		display:grid;
		grid-template-columns:2fr 1fr 1fr;
	}
}


.footer-brand-col {
	display:flex;
	flex-direction:column;
	gap:var(--space-md);
	min-width:0;
}


.footer-brand-col img {
	height:2.6rem;
	width:auto;
	max-width:100%;
	object-fit:contain;
}


.footer-brand-col .tech-meta-bar {
	display:block;
}


.footer-summary {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	max-width:44ch;
	position:static;
	clear:both;
	display:block;
	margin-bottom:var(--space-md);
}


.footer-legal-bar {
	border-top:1px solid var(--line);
	padding-top:var(--space-md);
	margin-top:var(--space-xl);
	display:flex;
	flex-direction:column;
	gap:var(--space-sm);
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	color:var(--ink-soft);
	position:relative;
	clear:both;
	width:100%;
}


.footer-legal-bar > div:first-child {
	position:relative;
	display:block;
	max-width:100%;
	clear:both;
}


.footer-heading {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	color:var(--hairline);
	margin-bottom:var(--space-sm);
}


.footer-nav-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:10px;
}


.footer-link {
	font-size:var(--fs-sm);
	color:var(--ink-soft);
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	gap:6px;
	transition:color var(--dur-fast) var(--ease-precision);
}


.footer-link:hover {
	color:var(--ink);
}


.footer-link:active {
	color:var(--hairline);
}


.footer-link:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:2px;
}


.footer-contact-list {
	list-style:none;
	display:flex;
	flex-direction:column;
	gap:12px;
	font-size:var(--fs-sm);
	color:var(--ink-soft);
}


.footer-contact-item {
	display:flex;
	align-items:flex-start;
	gap:10px;
}


.footer-contact-item .icon {
	color:var(--hairline);
	margin-top:3px;
}


.footer-contact-item a {
	color:var(--ink);
	transition:color var(--dur-fast) var(--ease-precision);
}


.footer-contact-item a:hover {
	color:var(--hairline);
}


.footer-contact-item a:active {
	color:var(--accent);
}


.footer-contact-item a:focus-visible {
	outline:2px solid var(--hairline);
}


/* Mandatory Footer Legal Bar */


@media (min-width: 768px) {
	.footer-legal-bar {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
	}
}


.footer-legal-links {
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:clamp(12px, 2vw, 20px);
}


.footer-legal-links a,
.footer-legal-links button {
	color:var(--ink-soft);
	text-decoration:none;
	appearance:none;
	background:none;
	border:0;
	font:inherit;
	cursor:pointer;
	padding:0;
	transition:color var(--dur-fast) var(--ease-precision);
}


.footer-legal-links a:hover,
.footer-legal-links button:hover {
	color:var(--ink);
}


.footer-legal-links a:active,
.footer-legal-links button:active {
	color:var(--hairline);
}


.footer-legal-links a:focus-visible,
.footer-legal-links button:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:2px;
}



.cookie-bar {
	position:fixed;
	bottom:0;
	left:0;
	right:0;
	z-index:999;
	background-color:#1A1A1A;
	border-top:1px solid var(--hairline);
	padding:12px clamp(16px, 4vw, 32px);
	box-shadow:0 -4px 20px rgba(0, 0, 0, 0.85);
	transition:transform var(--dur-base) var(--ease-precision),
							opacity var(--dur-base) var(--ease-precision);
}


@media (max-width: 1023px) {
	body.consent-banner-open .mobile-dock {
		display:none;
	}
	.cookie-bar {
		bottom:0;
	}
}


@media (min-width: 1024px) {
	.cookie-bar {
		bottom:0;
	}
}


.cookie-bar.is-hidden {
	transform:translateY(120%);
	opacity:0;
	pointer-events:none;
}


.cookie-bar-inner {
	max-width:var(--site-max-width);
	margin:0 auto;
	display:flex;
	flex-direction:column;
	gap:12px;
}


@media (min-width: 768px) {
	.cookie-bar-inner {
		flex-direction:row;
		align-items:center;
		justify-content:space-between;
	}
}


.cookie-bar-text {
	font-family:var(--doci-527);
	font-size:var(--fs-xs);
	line-height:1.45;
	color:var(--ink);
	margin-bottom:0;
}


.cookie-bar-text a {
	color:var(--hairline);
	text-decoration:underline;
	text-underline-offset:3px;
}


.cookie-bar-text a:hover {
	color:var(--ink);
}


.cookie-bar-text a:focus-visible {
	outline:2px solid var(--hairline);
}


.cookie-bar-actions {
	display:flex;
	align-items:center;
	gap:10px;
	flex-shrink:0;
}


.cookie-bar-actions .btn {
	padding:8px 16px;
	min-height:38px;
	font-size:11px;
}



.chat-launcher {
	position:fixed;
	bottom:calc(var(--dock-height) + 16px);
	right:16px;
	z-index:85;
	width:52px;
	height:52px;
	background-color:var(--surface);
	border:1px solid var(--hairline);
	color:var(--hairline);
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	box-shadow:0 4px 18px rgba(0, 0, 0, 0.4);
	transition:background-color var(--dur-fast) var(--ease-precision),
							border-color var(--dur-fast) var(--ease-precision),
							color var(--dur-fast) var(--ease-precision),
							transform var(--dur-fast) var(--ease-precision);
}


@media (max-width: 1023px) {
	body.consent-banner-open .chat-launcher {
		display:none;
	}
}


@media (min-width: 1024px) {
	.chat-launcher {
		bottom:24px;
		right:24px;
		width:56px;
		height:56px;
	}
}


.chat-launcher:hover {
	background-color:var(--surface-2);
	border-color:var(--ink);
	color:var(--ink);
	transform:translateY(-2px);
}


.chat-launcher:active {
	background-color:var(--accent);
	border-color:var(--accent);
	color:var(--accent-ink);
	transform:translateY(1px);
}


.chat-launcher:focus-visible {
	outline:2px solid var(--hairline);
	outline-offset:3px;
}


.chat-launcher .icon {
	width:24px;
	height:24px;
}


.chat-badge {
	position:absolute;
	top:-4px;
	right:-4px;
	background-color:var(--accent);
	color:var(--accent-ink);
	font-family:var(--doci-049);
	font-size:11px;
	font-weight:700;
	width:20px;
	height:20px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border:1px solid var(--ground);
}


/* Chat Dialogue Window */
.chat-window {
	position:fixed;
	bottom:calc(var(--dock-height) + 12px);
	right:12px;
	width:calc(100vw - 24px);
	max-width:380px;
	height:480px;
	max-height:calc(100vh - var(--dock-height) - 32px);
	background-color:var(--surface);
	border:1px solid var(--hairline);
	box-shadow:0 12px 36px rgba(0, 0, 0, 0.7);
	z-index:92;
	display:flex;
	flex-direction:column;
	transform:translateY(20px);
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:transform var(--dur-base) var(--ease-settle),
							opacity var(--dur-base) var(--ease-precision),
							visibility var(--dur-base) var(--ease-precision);
}


@media (min-width: 1024px) {
	.chat-window {
		bottom:24px;
		right:24px;
	}
}


.chat-window.is-open {
	transform:translateY(0);
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}


.chat-head {
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:12px 16px;
	background-color:var(--ground);
	border-bottom:1px solid var(--line);
}


.chat-title {
	font-family:var(--doci-049);
	font-size:var(--fs-xs);
	text-transform:uppercase;
	letter-spacing:var(--tracking-mono);
	color:var(--ink);
	margin-bottom:0;
	display:flex;
	align-items:center;
	gap:8px;
}


.chat-close-btn {
	appearance:none;
	background:none;
	border:none;
	color:var(--ink-soft);
	cursor:pointer;
	padding:4px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:color var(--dur-fast) var(--ease-precision);
}


.chat-close-btn:hover {
	color:var(--ink);
}


.chat-close-btn:active {
	color:var(--hairline);
}


.chat-close-btn:focus-visible {
	outline:2px solid var(--hairline);
}


.chat-body {
	flex-grow:1;
	overflow-y:auto;
	padding:16px;
	display:flex;
	flex-direction:column;
	gap:12px;
}


.chat-msg {
	max-width:82%;
	padding:10px 14px;
	font-size:var(--fs-sm);
	line-height:1.4;
}


.chat-msg-desk {
	align-self:flex-start;
	background-color:var(--surface-2);
	border-left:2px solid var(--hairline);
	color:var(--ink);
}


.chat-msg-user {
	align-self:flex-end;
	background-color:var(--accent);
	color:var(--accent-ink);
}


.chat-foot {
	padding:12px;
	border-top:1px solid var(--line);
	background-color:var(--ground);
}


.chat-input-row {
	display:flex;
	gap:8px;
}


.chat-input {
	flex-grow:1;
	background-color:var(--surface-2);
	border:1px solid var(--line);
	color:var(--ink);
	padding:8px 12px;
	font-size:var(--fs-sm);
	min-height:38px;
	border-radius:0;
}


.chat-input:focus {
	outline:none;
	border-color:var(--hairline);
}


.chat-send-btn {
	appearance:none;
	background-color:var(--accent);
	border:1px solid var(--accent);
	color:var(--accent-ink);
	padding:0 14px;
	min-height:38px;
	cursor:pointer;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	transition:background-color var(--dur-fast) var(--ease-precision);
}


.chat-send-btn:hover {
	background-color:var(--accent-hover);
}


.chat-send-btn:active {
	background-color:var(--accent-active);
}


.chat-send-btn:focus-visible {
	outline:2px solid var(--hairline);
}
