

html, body { max-width: 100%; overflow-x: clip; }


/* Media and embeds never exceed their container. */
img, svg, video, canvas, iframe, embed, object, figure, picture { max-width:100%; }
img, video, canvas { height: auto; }
pre, code, kbd, samp { overflow-x: auto; max-width: 100%; }


picture { display: block; height: 100%; }


h1, h2, h3, h4, h5, h6,
[class*="lockup"], [class*='display'], [class*="headline"], [class*='title'],
[class*='hero'] h1, [class*='hero'] h2 {
   overflow-wrap:break-word;
   word-break:normal;
   hyphens:manual;
}
[class*="lockup"], [class*="lockup"] > * { white-space: normal !important; }


h1, h2, h3 { text-wrap: balance; }
td, th, time, output, data,
[class*="price"], [class*='cost'], [class*="rate"], [class*='amount'],
[class*='figure'], [class*="stat"], [class*='number'], [class*="count"] { font-variant-numeric:lining-nums tabular-nums; }


p, li, dd, dt, blockquote, figcaption, address, a, span, td, th,
div, strong, b, em, i, small, label, output, time, cite, abbr, code, summary,
h1, h2, h3, h4, h5, h6 { overflow-wrap:break-word; }


/* Grid and flex children may shrink below their content so a single wide
   child cannot force the whole track past the viewport. */
[class*='grid'] > *, [class*='row'] > *, [class*="flex"] > *,
[class*="cols"] > *, [class*="columns"] > * { min-width: 0; }


:not(img):not(picture):not(svg):not(video):not(canvas):only-child { grid-column:1 / -1; }


@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration:.28s; }
@media (prefers-reduced-motion: reduce) {
   ::view-transition-group(*),
   ::view-transition-old(*),
   ::view-transition-new(*) { animation: none !important; }
}


.logid66 {
   overflow-x:auto;
   -webkit-overflow-scrolling:touch;
   container-type:inline-size;
}
.logid66 > table { width: 100%; }
@media (max-width: 48rem) {
   .logid66 > table { font-size: .94em; }
}
.logid66 > table,
.logid66 > table > thead, .logid66 > table > tbody,
.logid66 > table > tfoot, .logid66 > table tr,
.logid66 > table th, .logid66 > table td { display: revert; }
.logid66 > table th, .logid66 > table td {
   inline-size:auto;
   min-inline-size:0;
}



@media (max-width: 30rem) {
   :root {
      --doci-9f6:clamp(2.2rem, 9vw, 3rem);
      --doci-5dc:clamp(2rem, 8vw, 2.7rem);
      --doci-e15:clamp(1.8rem, 7vw, 2.4rem);
      --doci-a85:clamp(1.55rem, 6vw, 2.05rem);
      --doci-d17:clamp(1.35rem, 5vw, 1.8rem);
   }
}
@media (min-width: 30.01rem) and (max-width: 48rem) {
   :root {
      --doci-9f6:clamp(2.8rem, 8vw, 4.6rem);
      --doci-5dc:clamp(2.5rem, 7vw, 4rem);
      --doci-e15:clamp(2.2rem, 6vw, 3.4rem);
   }
}


@media (pointer: coarse) {
   a.btn, button, [role="button"], .btn,
   input[type='submit'], input[type="button"] { min-height: 44px; }
}


a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible,
[tabindex]:focus-visible, [role="button"]:focus-visible {
   outline:2px solid var(--focus-ring, currentColor);
   outline-offset:3px;
}


html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type='color']),
textarea, button, [type='submit'], [type="button"] {
   -webkit-appearance:none;
   appearance:none;
}


@media (pointer: coarse) and (max-width: 767px) {
   input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type='color']),
   select, textarea { font-size: max(16px, 1em) !important; }
}


@container (max-width: 26rem) {
   .logid66.cubo20b.nozi781 > table,
   .logid66.cubo20b.nozi781 > table > tbody,
   .logid66.cubo20b.nozi781 > table > tbody > tr,
   .logid66.cubo20b.nozi781 > table > tbody > tr > td,
   .logid66.cubo20b.nozi781 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.nozi781 > table > thead { display: none; }
   .logid66.cubo20b.nozi781 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.nozi781 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.nozi781 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.nozi781 > table > tbody > tr > td:empty { display: none; }
}

@container (max-width: 35rem) {
   .logid66.cubo20b.sasu124 > table,
   .logid66.cubo20b.sasu124 > table > tbody,
   .logid66.cubo20b.sasu124 > table > tbody > tr,
   .logid66.cubo20b.sasu124 > table > tbody > tr > td,
   .logid66.cubo20b.sasu124 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.sasu124 > table > thead { display: none; }
   .logid66.cubo20b.sasu124 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.sasu124 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.sasu124 > table > tbody > tr > td[data-label]::before {

      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.sasu124 > table > tbody > tr > td:empty { display: none; }
}
@container (max-width: 44rem) {
   .logid66.cubo20b.zahe8d1 > table,
   .logid66.cubo20b.zahe8d1 > table > tbody,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.zahe8d1 > table > thead { display: none; }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td:empty { display: none; }
}
@container (max-width: 52rem) {
   .logid66.cubo20b.sebu9f3 > table,
   .logid66.cubo20b.sebu9f3 > table > tbody,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.sebu9f3 > table > thead { display: none; }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td:empty { display: none; }
}
@container (max-width: 61rem) {
   .logid66.cubo20b.tcols-7 > table,
   .logid66.cubo20b.tcols-7 > table > tbody,
   .logid66.cubo20b.tcols-7 > table > tbody > tr,
   .logid66.cubo20b.tcols-7 > table > tbody > tr > td,
   .logid66.cubo20b.tcols-7 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.tcols-7 > table > thead { display: none; }
   .logid66.cubo20b.tcols-7 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.tcols-7 > table > tbody > tr > td {
      padding-block:.4rem;

      padding-inline:.7rem;
   }
   .logid66.cubo20b.tcols-7 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.tcols-7 > table > tbody > tr > td:empty { display: none; }
}



/* Consent — a corner card on a desk, a short bar on a phone, and late. */
@keyframes consent-arrive { from { opacity: 0; } }
.cookie-bar {
   max-height:30vh;
   overflow:auto;
   box-sizing:border-box;
   top:auto;
   bottom:0;
}
html body .cookie-bar.cookie-bar { animation:consent-arrive .6s ease-out 1.8s backwards !important; }
@media (min-width: 48rem) {
   html body .cookie-bar.cookie-bar {
      position:fixed !important;
      top:auto !important;
      bottom:var(--consent-bottom, 1.25rem) !important;
      left:var(--consent-left, 1.25rem) !important;
      right:auto !important;
      width:min(380px, calc(100vw - 2.5rem)) !important;
      max-width:380px !important;
      max-height:min(60vh, 30rem) !important;
      margin:0 !important;
      padding:1.1rem 1.25rem !important;
      flex-direction:column !important;
      align-items:stretch !important;
      justify-content:flex-start !important;
      gap:.8rem !important;
   }
   .cookie-bar > :where(div, form, section, nav):not([hidden]) {
      display:flex !important;
      flex-direction:column !important;
      align-items:stretch !important;
      justify-content:flex-start !important;
      gap:.8rem !important;
   }
   .cookie-bar > :not([hidden]),
   .cookie-bar > :where(div, form, section, nav):not([hidden]) > :not([hidden]) {
      flex:0 0 auto !important;
      min-width:0;
      width:auto !important;
      max-width:none !important;
      margin:0 !important;
   }
   .cookie-bar :where(div, p, nav, form, section) { flex-wrap:wrap; }
}
@media (prefers-reduced-motion: reduce) {
   html body .cookie-bar.cookie-bar { animation-duration: .01s !important; }
}


/* out of room at 320px, fitted at 390px */
@media (max-width: 389px) { div.gift-set-card-head { flex-wrap: wrap !important; } }
/* out of room at 768px, fitted at 1024px */
@media (max-width: 1023px) { li.footer-contact-item { flex-wrap: wrap !important; } }


/* MEASURED: words found printed outside their own card */
/* printed 58px outside its card */
div.tech-meta-bar span { overflow-wrap: anywhere !important; }
li.footer-contact-item a { overflow-wrap: anywhere !important; }


/* MEASURED: tables whose cells came out too narrow to read */
/* 5 columns measured unreadable in a 705px box, where the threshold was 44rem */
@container (max-width: 705px) {
   .logid66.cubo20b.zahe8d1 > table,
   .logid66.cubo20b.zahe8d1 > table > tbody,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td,
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.zahe8d1 > table > thead { display: none; }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.zahe8d1 > table > tbody > tr > td:empty { display: none; }
}
/* 6 columns measured unreadable in a 862px box, where the threshold was 52rem */
@container (max-width: 862px) {
   .logid66.cubo20b.sebu9f3 > table,
   .logid66.cubo20b.sebu9f3 > table > tbody,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td,
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > th {
      display:block;
      inline-size:auto;
      min-inline-size:0 !important;
   }
   .logid66.cubo20b.sebu9f3 > table > thead { display: none; }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr {
      margin-block-end:.75rem;
      padding:.2rem .25rem;
      border:1px solid;
      border-color:color-mix(in srgb, currentColor 20%, transparent);
      border-radius:.5rem;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td {
      padding-block:.4rem;
      padding-inline:.7rem;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td[data-label]::before {
      content:attr(data-label);
      display:block;
      font-size:.82em;
      font-weight:600;
      letter-spacing:.02em;
      opacity:.68;
   }
   .logid66.cubo20b.sebu9f3 > table > tbody > tr > td:empty { display: none; }
}


/* MEASURED: table columns starved by a neighbour full of prose */
/* column 1 measured at the width of its longest word, holding up to 36 characters */
table.ledger-table tr > :nth-child(1) { min-width: 28ch !important; }
/* column 2 measured at the width of its longest word, holding up to 30 characters */
table.ledger-table tr > :nth-child(2) { min-width: 28ch !important; }
/* column 3 measured at the width of its longest word, holding up to 33 characters */
table.ledger-table tr > :nth-child(3) { min-width: 28ch !important; }
/* column 4 measured at the width of its longest word, holding up to 29 characters */
table.ledger-table tr > :nth-child(4) { min-width: 28ch !important; }
/* column 5 measured at the width of its longest word, holding up to 20 characters */
table.ledger-table tr > :nth-child(5) { min-width: 20ch !important; }
/* column 6 measured at the width of its longest word, holding up to 17 characters */
table.ledger-table tr > :nth-child(6) { min-width: 17ch !important; }


/* MEASURED: controls that stood on, or against, other words */
@media (max-width: 767px) { body.consent-banner-open button.chat-launcher { bottom: 138px !important; } }
@media (max-width: 1023px) { body.consent-banner-open div.cookie-bar { --consent-bottom: 72px !important; } }
@media (max-width: 1023px) { body.consent-banner-open div.cookie-bar { bottom: 72px !important; } }


/* MEASURED: display sizes that hold the longest word on one line */
/* h1.hero-headline broke "Handcrafted" at 320px; 31.5px holds it */
@media (max-width: 389px) { h1.hero-headline { font-size: clamp(31.5px, 9.84vw, 37px) !important; } }
/* h2.job-heading broke "Crystallisation" at 320px; 23.2px holds it */
@media (max-width: 389px) { h2.job-heading { font-size: clamp(23.2px, 7.25vw, 24px) !important; } }
