.skip-link {
    position:fixed;
    top:0.75rem;
    left:0.75rem;
    z-index:var(--z-skip);
    display:inline-flex;
    align-items:center;
    min-height:var(--tap);
    padding:0.75rem 1.25rem;
    background:var(--acid);
    color:var(--acid-ink);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--1);
    letter-spacing:var(--track-mono);
    text-decoration:none;
    transform:translateY(-160%);
    transition:transform var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.skip-link:focus,
.skip-link:focus-visible {
    transform:translateY(0);
    outline:none;
    box-shadow:var(--ring);
}

.skip-link:hover {
    background:var(--chalk);
}

.skip-link:active {
    background:var(--acid-press);
}

.site-header {
    position:sticky;
    top:0;
    z-index:var(--z-header);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--s-4);
    min-height:var(--header-h);
    padding:0.75rem var(--pad-x);
    background:var(--ink);
    border-bottom:1px solid transparent;
    transition:min-height var(--dur-mid) var(--ease-out), padding var(--dur-mid) var(--ease-out), border-color var(--dur-mid) var(--ease-out), background-color var(--dur-mid) var(--ease-out);
}

.site-header.is-condensed,
.site-header[data-condensed="true"] {
    min-height:4rem;
    padding-block:0.5rem;
    border-bottom-color:var(--slab);
    background:var(--ink-2);
}

.brand {
    display:inline-flex;
    align-items:center;
    flex:none;
    min-height:var(--tap);
    min-width:var(--tap);
    padding:0.25rem;
    margin-left:-0.25rem;
    text-decoration:none;
    transition:opacity var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.brand img {
    height:3.2rem;
    width:auto;
    background:none;
    transition:height var(--dur-mid) var(--ease-out);
}

.site-header.is-condensed .brand img,
.site-header[data-condensed="true"] .brand img {
    height:2.6rem;
}

.brand:hover {
    opacity:0.82;
}

.brand:active {
    opacity:0.66;
}

.brand:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.nav-toggle {
    position:relative;
    z-index:var(--z-toggle);
    display:inline-flex;
    align-items:center;
    gap:0.6rem;

    min-height:var(--tap);
    min-width:var(--tap);
    padding:0.6rem 0.9rem;
    border:1px solid var(--violet);
    background:var(--plum);
    color:var(--chalk);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.nav-toggle .icon {
    width:1.3rem;
    height:1.3rem;
}

.nav-toggle__close {
    display:none;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__open {
    display:none;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__close {
    display:block;
}

.nav-toggle:hover {
    background:var(--violet);
    border-color:var(--violet-3);
}

.nav-toggle:active {
    transform:translateY(1px);
    background:var(--slab);
}

.nav-toggle:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.nav-toggle[aria-expanded="true"] {
    border-color:var(--acid);
    color:var(--acid);
}

html:not(.js) .nav-toggle {
    display:none;
}

.rail {
    display:flex;
    flex-direction:column;
    min-width:0;
    background:var(--plum);
    color:var(--chalk);
}

.rail__head {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:var(--s-3);
    padding:var(--s-5) var(--s-5) var(--s-4);
    border-bottom:var(--rule);
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--text-meta);
}

.rail__list {
    display:flex;
    flex-direction:column;
    margin:0;
    padding:var(--s-3) 0;
    list-style:none;
}

.rail__item {
    min-width:0;
}

.rail__link {
    position:relative;
    display:grid;
    grid-template-columns:2.4rem minmax(0, 1fr);
    align-items:baseline;
    gap:0.25rem;
    min-height:var(--tap);
    padding:0.7rem var(--s-5) 0.7rem var(--s-5);
    color:var(--chalk-2);
    text-decoration:none;
    border-left:3px solid transparent;
    transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}

.rail__num {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
    transition:color var(--dur) var(--ease-out);
}

.rail__label {
    font-family:var(--tazu-183);
    font-weight:var(--fw-display);
    font-size:clamp(1.35rem, 1.2rem + 0.5vw, 1.65rem);
    line-height:1.05;
    text-transform:uppercase;
    letter-spacing:0.01em;
    overflow-wrap:break-word;
    min-width:0;
}

.rail__link:hover {
    background:var(--violet);
    color:var(--chalk);
    border-left-color:var(--violet-3);
}

.rail__link:hover .rail__num {
    color:var(--chalk);
}

.rail__link:active {
    background:var(--slab);
    border-left-color:var(--chalk);
}

.rail__link:focus-visible {
    outline:none;
    box-shadow:inset 0 0 0 2px var(--acid);
    color:var(--chalk);
}

.rail__link[aria-current="page"],
.rail__link.is-active {
    color:var(--chalk);
    border-left-color:var(--acid);
}

.rail__link[aria-current="page"] .rail__num,
.rail__link.is-active .rail__num {
    color:var(--acid);
}

.rail__link[aria-current="page"]::after,
.rail__link.is-active::after {
    content:"";
    position:absolute;
    right:var(--s-5);
    top:50%;
    width:0.9rem;
    height:2px;
    background:var(--acid);
}

.rail__foot {
    display:flex;
    flex-direction:column;
    gap:var(--s-3);
    margin-top:auto;
    padding:var(--s-5);
    border-top:var(--rule);
}

.rail__phone {

    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    min-height:var(--tap);
    padding:0.4rem 0.25rem;
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--1);
    letter-spacing:0.02em;
    color:var(--chalk);
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.rail__phone .icon {
    width:1.05rem;
    height:1.05rem;
    color:var(--concrete);
    transition:color var(--dur) var(--ease-out);
}

.rail__phone:hover {
    color:var(--acid);
}

.rail__phone:hover .icon {
    color:var(--acid);
}

.rail__phone:active {
    background:var(--slab);
}

.rail__phone:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.rail__meta {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
    line-height:1.5;
}

.rail__progress {
    position:absolute;
    left:-1px;
    top:0;
    width:2px;
    height:100%;
    background:var(--acid);
    transform-origin:top;
    transform:scaleY(var(--progress, 0));
    pointer-events:none;

}

.nav-scrim {
    position:fixed;
    inset:0;
    z-index:var(--z-scrim);
    background:rgba(13, 10, 17, 0.72);
    opacity:0;
    visibility:hidden;
    transition:opacity var(--dur-mid) var(--ease-out), visibility 0s linear var(--dur-mid);
}

@media (max-width: 1023.98px) {
    .js .rail {
        position:fixed;
        top:0;
        right:0;
        bottom:0;
        z-index:var(--z-rail);
        width:min(23rem, 88vw);
        height:100vh;
        height:100dvh;
        padding-top:calc(var(--header-h) + 0.5rem);
        overflow-y:auto;
        overscroll-behavior:contain;
        border-left:1px solid var(--violet);
        transform:translateX(100%);
        visibility:hidden;
        transition:transform var(--dur-mid) var(--ease-out), visibility 0s linear var(--dur-mid);
    }

    .js .nav-toggle[aria-expanded="true"] ~ .rail,
    .js .rail.is-open,
    .js .rail[data-open="true"],
    .nav-open .rail {
        transform:translateX(0);
        visibility:visible;
        transition:transform var(--dur-mid) var(--ease-out), visibility 0s linear 0s;
    }

    .nav-open .nav-scrim,
    .nav-scrim.is-visible {
        opacity:1;
        visibility:visible;
        transition:opacity var(--dur-mid) var(--ease-out), visibility 0s linear 0s;
    }

    html:not(.js) .site-header {
        position:relative;
        flex-wrap:wrap;
    }

    html:not(.js) .rail {
        flex-basis:100%;
        border-top:var(--rule);
    }

    .rail__progress {
        display:none;
    }
}

@media (min-width: 1024px) {
    .site-header {
        position:relative;
        min-height:6.5rem;
        padding:var(--s-5) var(--pad-x) var(--s-3);
        margin-right:var(--rail-w);
        background:transparent;
    }

    .site-header.is-condensed,
    .site-header[data-condensed="true"] {
        min-height:6.5rem;
        padding:var(--s-5) var(--pad-x) var(--s-3);
        background:transparent;
        border-bottom-color:transparent;
    }

    .site-header.is-condensed .brand img,
    .site-header[data-condensed="true"] .brand img {
        height:3.2rem;
    }

    .nav-toggle {
        display:none;
    }

    .rail {
        position:fixed;
        top:0;
        right:0;
        bottom:0;
        z-index:var(--z-rail);
        width:var(--rail-w);
        border-left:1px solid var(--slab);
        overflow-y:auto;
    }

    .site-header.is-condensed .rail,
    .site-header[data-condensed="true"] .rail {
        background:var(--ink-2);
    }

    .site-main,
    .site-footer {
        margin-right:var(--rail-w);
    }

    .nav-scrim {
        display:none;
    }
}

.btn {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
    gap:0.75rem;
    min-height:3.25rem;
    max-width:100%;
    padding:0.85rem 1.35rem;
    border:1px solid var(--violet-3);
    background:transparent;
    color:var(--chalk);
    font-family:var(--tazu-7f5);
    font-weight:var(--fw-body-strong);
    font-size:var(--tazu-c7f);
    line-height:1.2;
    letter-spacing:0.01em;
    text-align:left;
    text-decoration:none;
    overflow-wrap:break-word;
    cursor:pointer;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.btn .icon {
    width:1.15rem;
    height:1.15rem;
    transition:transform var(--dur) var(--ease-out);
}

.btn:hover {
    background:var(--violet);
    border-color:var(--chalk-2);
    transform:translateY(-2px);
    box-shadow:0 6px 0 -2px var(--slab);
}

.btn:hover .icon {
    transform:translateX(3px);
}

.btn:active {
    transform:translateY(0);
    box-shadow:none;
    background:var(--slab);
}

.btn:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.btn--primary {
    background:var(--acid);
    border-color:var(--acid);
    color:var(--acid-ink);
}

.btn--primary:hover {
    background:var(--chalk);
    border-color:var(--chalk);
    color:var(--acid-ink);
    box-shadow:4px 4px 0 0 var(--acid);
}

.btn--primary:active {
    background:var(--acid-press);
    border-color:var(--acid-press);
    box-shadow:none;
}

.btn--primary:focus-visible {
    box-shadow:0 0 0 2px var(--ink), 0 0 0 4px var(--chalk);
}

.btn--ghost {
    border-color:transparent;
    padding-inline:0.5rem;
}

.btn--ghost:hover {
    background:var(--plum);
    border-color:var(--violet);
}

.btn--block {
    width:100%;
    justify-content:space-between;
}

.btn--sm {
    min-height:var(--tap);
    padding:0.55rem 1rem;
    font-size:var(--step--1);
}

.btn[disabled],
.btn[aria-disabled="true"] {
    opacity:0.5;
    cursor:not-allowed;
    transform:none;
    box-shadow:none;
}

.text-link {
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    min-height:var(--tap);
    padding:0.3rem 0;
    color:var(--chalk);
    font-weight:var(--fw-body-mid);
    text-decoration:underline;
    text-decoration-color:var(--violet-3);
    text-decoration-thickness:1px;
    text-underline-offset:0.3em;
    transition:color var(--dur) var(--ease-out), text-decoration-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.text-link .icon {
    width:1rem;
    height:1rem;
    transition:transform var(--dur) var(--ease-out);
}

.text-link:hover {
    color:var(--acid);
    text-decoration-color:var(--acid);
}

.text-link:hover .icon {
    transform:translateX(3px);
}

.text-link:active {
    color:var(--chalk-2);
    background:var(--plum);
}

.text-link:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.tag {
    display:inline-flex;
    align-items:center;
    gap:0.4rem;
    min-height:1.9rem;
    max-width:100%;
    padding:0.25rem 0.65rem;
    border:1px solid var(--violet);
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    color:var(--chalk-2);
    line-height:1.3;
    overflow-wrap:anywhere;
}

.tag--acid {
    border-color:var(--acid);
    color:var(--acid);
}

.tag--solid {
    background:var(--slab);
    border-color:var(--slab);
}

.tape {
    display:block;
    height:var(--tape-h);
    background:var(--tape);
}

.tape-band {
    position:relative;
    display:flex;
    flex-direction:column;
    background:var(--ink);
    border-block:var(--rule);
}

.tape-band__line {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.5rem 1.5rem;
    padding:1.1rem var(--pad-x);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--1);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    color:var(--chalk);
}

.tape-band__line > * {
    min-width:0;
}

.tape-band__sep {
    color:var(--acid);
}

.frame {
    position:relative;
    background:var(--plum);
    padding:clamp(8px, 1vw, 14px);
}

.frame::before,
.frame::after {
    content:"";
    position:absolute;
    width:var(--tick);
    height:var(--tick);
    border:0 solid var(--acid);
    pointer-events:none;
    z-index:2;
}

.frame::before {
    top:-1px;
    left:-1px;
    border-top-width:2px;
    border-left-width:2px;
}

.frame::after {
    right:-1px;
    bottom:-1px;
    border-right-width:2px;
    border-bottom-width:2px;
}

.frame img {
    width:100%;
    height:auto;
}

.caption-plate {
    display:inline-flex;
    flex-wrap:wrap;
    gap:0.25rem 0.9rem;
    max-width:100%;
    padding:0.5rem 0.75rem;
    background:var(--ink);
    border:var(--rule);
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    color:var(--concrete-2);
    line-height:1.4;
}

.caption-plate strong {
    font-weight:var(--fw-mono-strong);
    color:var(--chalk);
}

.section-head {
    display:flex;
    flex-direction:column;
    gap:var(--s-4);
    max-width:40rem;
    margin-bottom:var(--s-7);
}

.section-head > * {
    min-width:0;
}

.section-head p {
    color:var(--text-soft);
    max-width:48ch;
}

.ruled-list {
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid var(--violet);
}

.ruled-list > li {
    min-width:0;
    border-bottom:1px solid var(--violet);
}

.item-row {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--s-3) var(--gutter);
    padding:var(--s-5) 0;
    color:inherit;
    text-decoration:none;
}

.item-row > * {
    min-width:0;
}

.item-row__num {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
}

.item-row__title {
    font-family:var(--tazu-183);
    font-weight:var(--fw-display);
    font-size:var(--tazu-65c);
    line-height:0.95;
    text-transform:uppercase;
}

.item-row__body {
    color:var(--text-soft);
    max-width:54ch;
}

.item-row__spec,
.item-row__price {
    font-family:var(--tazu-04b);
    font-size:var(--step--1);
    letter-spacing:0.02em;
    color:var(--concrete-2);
    line-height:1.5;
}

.item-row__price strong {
    color:var(--chalk);
    font-weight:var(--fw-mono-strong);
}

.item-row__go {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:var(--tap);
    height:var(--tap);
    border:1px solid var(--violet);
    color:var(--chalk);
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

@media (min-width: 768px) {
    .item-row {
        grid-template-columns:3rem minmax(0, 1.2fr) minmax(0, 1fr) auto;
        align-items:start;
        padding:var(--s-6) 0;
    }
    .item-row__body {
        grid-column:2;
    }
    .item-row__aside {
        grid-column:3;
        grid-row:1 / span 2;
    }
    .item-row__go {
        grid-column:4;
        grid-row:1;
    }
}

a.item-row {
    transition:background-color var(--dur) var(--ease-out), padding var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

a.item-row:hover {
    background:var(--plum);
    box-shadow:inset 3px 0 0 var(--violet-3);
}

a.item-row:hover .item-row__go {
    background:var(--acid);
    border-color:var(--acid);
    color:var(--acid-ink);
    transform:translateX(2px);
}

a.item-row:active {
    background:var(--slab);
}

a.item-row:focus-visible {
    outline:none;
    box-shadow:inset 0 0 0 2px var(--acid);
}

.fact-list {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    margin:0;
    border-top:var(--rule);
}

.fact-list > div {
    display:grid;
    grid-template-columns:minmax(0, 10rem) minmax(0, 1fr);
    gap:var(--s-4);
    padding:0.85rem 0;
    border-bottom:var(--rule);
}

.fact-list dt {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--text-meta);
    padding-top:0.2em;
}

.fact-list dd {
    margin:0;
    min-width:0;
    overflow-wrap:anywhere;
}

@media (max-width: 479.98px) {
    .fact-list > div {
        grid-template-columns:minmax(0, 1fr);
        gap:0.2rem;
    }
}

.table-wrap {
    position:relative;
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--violet);
    background:var(--plum);
}

.table-wrap:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.table-wrap__note {
    margin-top:var(--s-3);
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
}

.spec-table {
    width:100%;
    min-width:36rem;
    font-size:var(--step--1);
    font-variant-numeric:tabular-nums;
}

.spec-table caption {
    padding:var(--s-4) var(--s-4) var(--s-3);
    text-align:left;
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--text-meta);
    caption-side:top;
}

.spec-table th,
.spec-table td {
    padding:0.85rem var(--s-4);
    text-align:left;
    vertical-align:top;
    border-bottom:1px solid var(--slab);
}

.spec-table thead th {
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--chalk);
    background:var(--ink);
    border-bottom:1px solid var(--violet);
    white-space:nowrap;
}

.spec-table tbody th {
    font-family:var(--tazu-7f5);
    font-weight:var(--fw-body-strong);
    color:var(--chalk);
}

.spec-table td {
    font-family:var(--tazu-04b);
    color:var(--chalk-2);
}

.spec-table tbody tr:nth-child(even) {
    background:rgba(59, 47, 77, 0.28);
}

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

.spec-table tbody tr:hover {
    background:var(--violet);
}

.spec-table tbody tr:last-child th,
.spec-table tbody tr:last-child td {
    border-bottom:0;
}

.spec-table .is-key {
    color:var(--acid);
}

.form {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--s-5) var(--gutter);
    min-width:0;
}

@media (min-width: 640px) {
    .form {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
    .form .field--full,
    .form .check,
    .form .form__foot,
    .form .form__status,
    .form .form__note {
        grid-column:1 / -1;
    }
}

.field {
    display:flex;
    flex-direction:column;
    gap:0.45rem;
    min-width:0;
}

.field__label {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:0.25rem 0.6rem;
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--chalk);
}

.field__opt {
    font-weight:var(--fw-mono);
    color:var(--text-meta);
    letter-spacing:var(--track-mono);
    text-transform:none;
}

.field__hint {
    font-size:var(--step--1);
    color:var(--text-meta);
}

.field__input {
    width:100%;
    min-height:3.25rem;
    padding:0.8rem 0.95rem;
    background:var(--slab);
    border:1px solid var(--slab);
    border-bottom:2px solid var(--violet-3);
    border-radius:0;
    color:var(--chalk);
    font-family:var(--tazu-7f5);
    font-size:max(1rem, var(--tazu-c7f));
    line-height:1.4;
    appearance:none;
    -webkit-appearance:none;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.field__input::placeholder {
    color:#7A7484;
}

textarea.field__input {
    min-height:9rem;
    resize:vertical;
}

select.field__input {
    padding-right:2.75rem;
    background-image:linear-gradient(45deg, transparent 50%, var(--chalk-2) 50%), linear-gradient(135deg, var(--chalk-2) 50%, transparent 50%);
    background-position:calc(100% - 1.25rem) 50%, calc(100% - 0.9rem) 50%;
    background-size:0.35rem 0.35rem, 0.35rem 0.35rem;
    background-repeat:no-repeat;
}

select.field__input option {
    background:var(--plum);
    color:var(--chalk);
}

.field__input:hover {
    background-color:#322B3D;
    border-bottom-color:var(--chalk-2);
}

.field__input:focus,
.field__input:focus-visible {
    outline:none;
    background-color:var(--plum-2);
    border-color:var(--violet-3);
    border-bottom-color:var(--acid);
    box-shadow:0 0 0 1px var(--acid);
}

.field__input:active {
    background-color:var(--plum-2);
}

.field__error {
    display:none;
    align-items:flex-start;
    gap:0.4rem;
    font-size:var(--step--1);
    color:var(--signal);
    line-height:1.4;
}

.field.is-invalid .field__error,
.field--error .field__error,
.field__error:not(:empty) {
    display:flex;
}

.field.is-invalid .field__input,
.field--error .field__input,
.field__input[aria-invalid="true"] {
    border-color:var(--signal);
    border-bottom-color:var(--signal);
    background-color:var(--signal-ground);
}

.check {
    display:grid;
    grid-template-columns:1.5rem minmax(0, 1fr);
    gap:0.85rem;
    align-items:start;
    min-height:var(--tap);
    padding:0.6rem 0;
    font-size:var(--step--1);
    color:var(--text-soft);
    line-height:1.5;
    cursor:pointer;
}

.check input {
    appearance:none;
    -webkit-appearance:none;
    width:1.5rem;
    height:1.5rem;
    margin:0;
    border:1px solid var(--violet-3);
    background:var(--slab);
    display:grid;
    place-content:center;
    cursor:pointer;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.check input::before {
    content:"";
    width:0.75rem;
    height:0.4rem;
    border-left:2px solid var(--acid-ink);
    border-bottom:2px solid var(--acid-ink);
    transform:rotate(-45deg) translate(1px, -1px) scale(0);
    transition:transform var(--dur-fast) var(--ease-snap);
}

.check input:checked {
    background:var(--acid);
    border-color:var(--acid);
}

.check input:checked::before {
    transform:rotate(-45deg) translate(1px, -1px) scale(1);
}

.check:hover input {
    border-color:var(--chalk);
    background-color:#322B3D;
}

.check:hover input:checked {
    background:var(--acid);
}

.check input:active {
    box-shadow:inset 0 0 0 3px var(--violet);
}

.check input:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.check a {
    color:var(--chalk);
    text-decoration-color:var(--violet-3);
}

.check a:hover {
    text-decoration-color:var(--acid);
}

.check.is-invalid input,
.check input[aria-invalid="true"] {
    border-color:var(--signal);
}

.check .field__error {
    grid-column:2;
}

.hp {
    position:absolute !important;
    left:-10000px !important;
    top:auto !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

.form__foot {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:var(--s-4) var(--s-5);
}

.form__note {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
    max-width:52ch;
}

.form__status {
    display:none;
    padding:var(--s-4) var(--s-5);
    border-left:3px solid var(--violet-3);
    background:var(--plum);
    color:var(--chalk);
}

.form__status:not(:empty),
.form__status.is-visible {
    display:block;
}

.form__status.is-success,
.form__status[data-state="success"] {
    border-left-color:var(--acid);
}

.form__status.is-error,
.form__status[data-state="error"] {
    border-left-color:var(--signal);
    background:var(--signal-ground);
}

.form.is-sending .btn--primary {
    opacity:0.7;
    cursor:progress;
}

.site-footer {
    position:relative;
    background:var(--ink-2);
    border-top:1px solid var(--violet);
    padding:var(--section-y-half) var(--pad-x) calc(var(--s-6) + 5rem);
}

.footer__grid {
    display:grid;
    grid-template-columns:minmax(0, 1fr);
    gap:var(--s-7) var(--gutter);
    max-width:var(--shell-max);
}

.footer__grid > * {
    min-width:0;
}

@media (min-width: 768px) {
    .footer__grid {
        grid-template-columns:minmax(0, 5fr) minmax(0, 4fr) minmax(0, 3fr);
    }
}

.footer__brand img {
    height:4rem;
    width:auto;
    background:none;
}

.footer__line {
    margin-top:var(--s-5);
    font-family:var(--tazu-183);
    font-weight:var(--fw-display);
    font-size:var(--tazu-65c);
    line-height:0.95;
    text-transform:uppercase;
    max-width:14ch;
    color:var(--chalk);
}

.footer__line em {
    font-style:normal;
    color:var(--concrete);
}

.footer__title {
    margin-bottom:var(--s-3);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--2);
    letter-spacing:var(--track-meta);
    text-transform:uppercase;
    color:var(--text-meta);
}

.footer__address {
    font-style:normal;
    color:var(--chalk-2);
    line-height:1.6;
    overflow-wrap:anywhere;
}

.footer__list {
    margin:0;
    padding:0;
    list-style:none;
}

.footer__link {
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    min-height:var(--tap);
    padding:0.25rem 0;
    color:var(--chalk);
    text-decoration:none;
    overflow-wrap:anywhere;
    transition:color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.footer__link .icon {
    width:1rem;
    height:1rem;
    color:var(--concrete);
    transition:color var(--dur) var(--ease-out);
}

.footer__link:hover {
    color:var(--acid);
    box-shadow:inset 0 -1px 0 var(--acid);
}

.footer__link:hover .icon {
    color:var(--acid);
}

.footer__link:active {
    color:var(--chalk-2);
    background:var(--plum);
}

.footer__link:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.footer__mono {
    font-family:var(--tazu-04b);
    font-size:var(--step--1);
    letter-spacing:0.02em;
}

.footer__legal {
    display:flex;
    flex-direction:column;
    gap:var(--s-4);
    margin-top:var(--s-8);
    padding-top:var(--s-5);
    border-top:var(--rule);
    max-width:var(--shell-max);
}

.footer__legal-list {
    display:flex;
    flex-wrap:wrap;
    gap:0 var(--s-5);
    margin:0;
    padding:0;
    list-style:none;
}

.footer__legal-list > li {
    min-width:0;
}

.footer__legal-link {
    display:inline-flex;
    align-items:center;
    min-height:var(--tap);
    padding:0.25rem 0;
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    color:var(--concrete-2);
    text-decoration:none;
    background:none;
    border:0;
    cursor:pointer;
    transition:color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.footer__legal-link:hover {
    color:var(--chalk);
    box-shadow:inset 0 -1px 0 var(--chalk);
}

.footer__legal-link:active {
    color:var(--acid);
    background:var(--plum);
}

.footer__legal-link:focus-visible {
    outline:none;
    box-shadow:var(--ring);
    color:var(--chalk);
}

.footer__copy {
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
}

@media (min-width: 1024px) {
    .site-footer {
        padding-bottom:var(--s-7);
    }
    .footer__legal {
        flex-direction:row;
        flex-wrap:wrap;
        justify-content:space-between;
        align-items:center;
        padding-right:5.5rem;
    }
}

.consent {
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:var(--z-consent);
    background:var(--plum);
    border-top:2px solid var(--acid);
    box-shadow:0 -20px 40px -20px rgba(0, 0, 0, 0.8);
    max-height:20vh;
    max-height:20dvh;
    overflow-y:auto;
}

.consent__inner {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0.5rem var(--s-5);
    padding:0.6rem var(--pad-x);
}

.consent__text {
    flex:1 1 22rem;
    min-width:0;
    font-size:var(--step--1);
    line-height:1.45;
    color:var(--chalk-2);
}

.consent__text a {
    color:var(--chalk);
    text-decoration-color:var(--acid);
    transition:color var(--dur) var(--ease-out);
}

.consent__text a:hover {
    color:var(--acid);
}

.consent__text a:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.consent__actions {
    display:flex;
    flex-wrap:nowrap;
    gap:0.5rem;
    flex:0 1 auto;
    min-width:0;
}

.consent__btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:var(--tap);
    padding:0.5rem 1.1rem;
    border:1px solid var(--violet-3);
    background:transparent;
    color:var(--chalk);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--1);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    cursor:pointer;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.consent__btn:hover {
    background:var(--violet);
    border-color:var(--chalk-2);
    transform:translateY(-1px);
}

.consent__btn:active {
    transform:translateY(0);
    background:var(--slab);
}

.consent__btn:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.consent__btn--accept {
    background:var(--acid);
    border-color:var(--acid);
    color:var(--acid-ink);
}

.consent__btn--accept:hover {
    background:var(--chalk);
    border-color:var(--chalk);
    color:var(--acid-ink);
}

.consent__btn--accept:active {
    background:var(--acid-press);
}

@media (max-width: 479.98px) {
    .consent__actions {
        flex:1 1 100%;
    }
    .consent__btn {
        flex:1 1 0;
        padding-inline:0.6rem;
    }
}

@media (min-width: 1024px) {
    .consent {
        right:var(--rail-w);
    }
}

.chat-launcher {
    position:fixed;
    right:1rem;
    bottom:calc(1rem + env(safe-area-inset-bottom, 0px));
    z-index:var(--z-chat);
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    min-height:3.25rem;
    min-width:3.25rem;
    padding:0.7rem 1rem;
    background:var(--chalk);
    color:var(--ink);
    border:1px solid var(--chalk);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--1);
    letter-spacing:var(--track-mono);
    text-transform:uppercase;
    box-shadow:4px 4px 0 0 var(--violet);
    cursor:pointer;
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out), opacity var(--dur-mid) var(--ease-out), bottom var(--dur-mid) var(--ease-out);
}

.chat-launcher .icon {
    width:1.3rem;
    height:1.3rem;
}

button.chat-launcher:hover {
    background:var(--acid);
    border-color:var(--acid);
    box-shadow:6px 6px 0 0 var(--violet-3);
    transform:translate(-2px, -2px);
}

button.chat-launcher:active {
    transform:translate(2px, 2px);
    box-shadow:0 0 0 0 var(--violet);
    background:var(--acid-press);
}

.chat-launcher:focus-visible {
    outline:none;
    box-shadow:0 0 0 2px var(--ink), 0 0 0 4px var(--acid);
}

.chat-launcher[aria-expanded="true"] {
    background:var(--violet);
    border-color:var(--violet-3);
    color:var(--chalk);
}

.chat-launcher__badge {
    position:absolute;
    top:-0.55rem;
    right:-0.55rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:1.4rem;
    min-height:1.4rem;
    padding:0 0.3rem;
    background:var(--acid);
    color:var(--acid-ink);
    border:2px solid var(--ink);
    font-family:var(--tazu-04b);
    font-size:0.7rem;
    font-weight:var(--fw-mono-strong);
    line-height:1;
}

.chat-launcher__badge:empty {
    display:none;
}

@media (max-width: 479.98px) {
    .chat-launcher__label {
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        clip-path:inset(50%);
        white-space:nowrap;
    }
}

body:has([data-e7b11c]:not([hidden])) .chat-launcher,
.consent-open .chat-launcher {
    opacity:0;
    visibility:hidden;
    pointer-events:none;
}

@media (min-width: 1024px) {
    .chat-launcher {
        right:calc(var(--rail-w) + 1.25rem);
        bottom:1.25rem;
    }
}

.chat-panel {
    position:fixed;
    right:0;
    bottom:0;
    left:0;
    z-index:var(--z-chat);
    display:flex;
    flex-direction:column;
    height:min(36rem, 88vh);
    height:min(36rem, 88dvh);
    background:var(--plum);
    border-top:2px solid var(--acid);
    box-shadow:var(--shadow-deep);
    color:var(--chalk);
}

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

@media (min-width: 560px) {
    .chat-panel {
        left:auto;
        right:1rem;
        bottom:5.25rem;
        width:24rem;
        border:1px solid var(--violet);
        border-top:2px solid var(--acid);
    }
}

@media (min-width: 1024px) {
    .chat-panel {
        right:calc(var(--rail-w) + 1.25rem);
        bottom:5.5rem;
    }
}

.chat-panel__head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--s-3);
    padding:0.75rem 0.75rem 0.75rem var(--s-5);
    border-bottom:var(--rule);
}

.chat-panel__title {
    font-family:var(--tazu-183);
    font-weight:var(--fw-display);
    font-size:var(--tazu-6d9);
    line-height:1;
    text-transform:uppercase;
    min-width:0;
}

.chat-panel__sub {
    display:block;
    margin-top:0.3rem;
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono);
    font-size:var(--step--2);
    letter-spacing:var(--track-mono);
    text-transform:none;
    color:var(--text-meta);
}

.chat-panel__close {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:none;
    width:var(--tap);
    height:var(--tap);
    border:1px solid var(--violet);
    color:var(--chalk);
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.chat-panel__close:hover {
    background:var(--violet);
    border-color:var(--chalk-2);
}

.chat-panel__close:active {
    transform:scale(0.94);
    background:var(--slab);
}

.chat-panel__close:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.chat-panel__log {
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior:contain;
    display:flex;
    flex-direction:column;
    gap:0.6rem;
    padding:var(--s-5);
    background:var(--ink);
}

.chat-msg {
    max-width:85%;
    padding:0.6rem 0.85rem;
    font-size:var(--step--1);
    line-height:1.45;
    overflow-wrap:anywhere;
    border:1px solid var(--slab);
}

.chat-msg--them,
.chat-msg--operator,
.chat-msg--system {
    align-self:flex-start;
    background:var(--plum);
    color:var(--chalk);
    border-left:2px solid var(--violet-3);
}

.chat-msg--me,
.chat-msg--visitor {
    align-self:flex-end;
    background:var(--violet);
    border-color:var(--violet);
    color:var(--chalk);
}

.chat-msg--pending {
    opacity:0.6;
}

.chat-msg--failed {
    border-color:var(--signal);
    background:var(--signal-ground);
}

.chat-msg__meta {
    display:block;
    margin-top:0.3rem;
    font-family:var(--tazu-04b);
    font-size:0.68rem;
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
}

.chat-msg__retry {
    display:inline-flex;
    align-items:center;
    min-height:2rem;
    margin-top:0.35rem;
    padding:0.2rem 0.6rem;
    border:1px solid var(--signal);
    color:var(--signal);
    font-family:var(--tazu-04b);
    font-size:var(--step--2);
    text-transform:uppercase;
    transition:background-color var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}

.chat-msg__retry:hover {
    background:var(--signal);
    color:var(--ink);
}

.chat-msg__retry:active {
    background:#E5705C;
}

.chat-msg__retry:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.chat-panel__intro {
    display:flex;
    flex-direction:column;
    gap:var(--s-3);
    padding:var(--s-4) var(--s-5);
    border-top:var(--rule);
    overflow-y:auto;
}

.chat-panel__intro .field__input {
    min-height:var(--tap);
    padding:0.55rem 0.75rem;
}

.chat-panel__intro .check {
    padding:0.2rem 0;
    font-size:var(--step--2);
}

.chat-panel__form {
    display:flex;
    align-items:flex-end;
    gap:0.5rem;
    padding:0.75rem;
    border-top:var(--rule);
    background:var(--plum);
}

.chat-panel__input {
    flex:1 1 auto;
    min-width:0;
    min-height:var(--tap);
    max-height:8rem;
    padding:0.65rem 0.75rem;
    background:var(--slab);
    border:1px solid var(--slab);
    border-bottom:2px solid var(--violet-3);
    color:var(--chalk);
    font-size:1rem;
    resize:none;
    transition:border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.chat-panel__input:hover {
    background:#322B3D;
}

.chat-panel__input:focus,
.chat-panel__input:focus-visible {
    outline:none;
    border-bottom-color:var(--acid);
    box-shadow:0 0 0 1px var(--acid);
}

.chat-panel__send {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.4rem;
    flex:none;
    min-width:var(--tap);
    min-height:var(--tap);
    padding:0.5rem 0.85rem;
    background:var(--acid);
    color:var(--acid-ink);
    border:1px solid var(--acid);
    font-family:var(--tazu-04b);
    font-weight:var(--fw-mono-strong);
    font-size:var(--step--2);
    text-transform:uppercase;
    letter-spacing:var(--track-mono);
    transition:background-color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

.chat-panel__send:hover {
    background:var(--chalk);
    border-color:var(--chalk);
}

.chat-panel__send:active {
    transform:translateY(1px);
    background:var(--acid-press);
}

.chat-panel__send:focus-visible {
    outline:none;
    box-shadow:var(--ring);
}

.chat-panel__send[disabled] {
    opacity:0.5;
    cursor:not-allowed;
}

.chat-panel__note {
    padding:0 0.75rem 0.6rem;
    background:var(--plum);
    font-family:var(--tazu-04b);
    font-size:0.68rem;
    letter-spacing:var(--track-mono);
    color:var(--text-meta);
}

.chat-panel__error {
    padding:0.5rem var(--s-5);
    background:var(--signal-ground);
    color:var(--signal);
    font-size:var(--step--1);
}

.chat-panel__error:empty {
    display:none;
}
