/* Winked, Qingdao Yuzhengda. Base layout (compiled once from the AppDeploy-era src/styles.css, Tailwind preflight included) followed by the multi-route additions. */
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

.visible {
  visibility: visible;
}

.table {
  display: table;
}

.rounded {
  border-radius: 0.25rem;
}

:root{
  --ink:#070709;
  --paper:#f3f2ef;
  --violet:#6d35ff;
  --lime:#c9ff38;
  --silver:#c8c7cd;
  --gutter:clamp(22px,4.2vw,74px);
  --radius:28px
}

*{
  box-sizing:border-box
}

html{
  scroll-behavior:smooth
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden
}

a{
  color:inherit;
  text-decoration:none
}

button{
  font:inherit
}

img{
  display:block;
  max-width:100%
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  height:88px;
  padding:0 var(--gutter);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  background:rgba(7,7,9,.94);
  color:white;
  border-bottom:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(14px)
}

.brand img{
  width:118px;
  filter:brightness(0) invert(1)
}

.desktop-nav{
  display:flex;
  gap:34px;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.14em
}

.desktop-nav a{
  position:relative
}

.desktop-nav a:after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-10px;
  height:2px;
  background:var(--lime);
  transition:right .3s
}

.desktop-nav a:hover:after{
  right:0
}

.header-contact{
  justify-self:end;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.13em
}

.header-contact span{
  color:var(--lime);
  margin-left:10px
}

.menu-toggle,.mobile-menu{
  display:none
}

.hero{
  position:relative;
  min-height:calc(100vh - 88px);
  padding:54px var(--gutter) 34px;
  background:var(--ink);
  color:white;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  grid-template-rows:auto 1fr auto
}

.eyebrow{
  grid-column:1/-1;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:#aaa
}

.hero-copy{
  align-self:center;
  position:relative;
  z-index:2
}

.index{
  font:12px ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--lime);
  letter-spacing:.18em
}

.hero h1{
  font-size:clamp(62px,8.8vw,150px);
  line-height:.78;
  letter-spacing:-.075em;
  margin:24px 0 38px;
  font-weight:500
}

.hero h1 em,.contact h2 em{
  color:var(--violet);
  font-family:Georgia,serif;
  font-weight:400
}

.lede{
  max-width:530px;
  color:#bbb;
  line-height:1.6;
  font-size:clamp(16px,1.4vw,21px)
}

.profile-stage{
  position:relative;
  align-self:center;
  z-index:1
}

.profile-stage svg{
  width:100%;
  overflow:visible
}

.lash{
  fill:none;
  stroke:white;
  stroke-width:2.2;
  stroke-linecap:round;
  filter:drop-shadow(0 0 4px rgba(201,255,56,.18));
  stroke-dasharray:700;
  stroke-dashoffset:700;
  animation:draw 1.8s cubic-bezier(.65,0,.35,1) forwards
}

.base{
  stroke:var(--lime);
  stroke-width:4
}

.l1{
  animation-delay:.12s
}

.l2{
  animation-delay:.2s
}

.l3{
  animation-delay:.28s
}

.l4{
  animation-delay:.36s
}

.l5{
  animation-delay:.44s
}

.l6{
  animation-delay:.52s
}

.l7{
  animation-delay:.6s
}

@keyframes draw{
  to{
    stroke-dashoffset:0
  }
}

.measure{
  position:absolute;
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#aaa
}

.m1{
  left:15%;
  bottom:6%
}

.m2{
  right:15%;
  top:5%
}

.m3{
  right:0;
  bottom:16%;
  color:var(--lime)
}

.orbit{
  position:absolute;
  border:1px solid rgba(109,53,255,.3);
  border-radius:50%;
  pointer-events:none
}

.orbit-one{
  width:55vw;
  height:55vw;
  right:-18vw;
  top:-15vw
}

.orbit-two{
  width:30vw;
  height:30vw;
  right:-4vw;
  top:0
}

.hero-foot{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:12px;
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:#888
}

.pulse{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--lime);
  animation:pulse 1.4s infinite
}

@keyframes pulse{
  50%{
    box-shadow:0 0 0 8px rgba(201,255,56,0)
  }
}

.section{
  padding:clamp(90px,10vw,170px) var(--gutter)
}

.section-heading p,.collection-intro>p:first-child,.factory-copy>p:first-child{
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#6c6b73
}

.section-heading h2,.collection-intro h2,.factory-copy h2{
  font-size:clamp(43px,6vw,96px);
  line-height:.92;
  letter-spacing:-.06em;
  margin:28px 0 70px;
  font-weight:500
}

.lab-grid{
  display:grid;
  grid-template-columns:.7fr 1.3fr .8fr;
  border-top:1px solid #1d1d20;
  border-bottom:1px solid #1d1d20
}

.lab-controls{
  display:flex;
  flex-direction:column;
  border-right:1px solid #1d1d20
}

.profile-btn{
  padding:26px 22px;
  border:0;
  border-bottom:1px solid #cac9ce;
  background:transparent;
  display:grid;
  grid-template-columns:40px 1fr auto;
  text-align:left;
  align-items:center;
  cursor:pointer;
  transition:background .25s,color .25s
}

.profile-btn:last-child{
  border-bottom:0
}

.profile-btn b{
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace
}

.profile-btn span{
  font-size:18px
}

.profile-btn i{
  font-style:normal;
  opacity:0;
  transform:translateX(-8px);
  transition:.25s
}

.profile-btn:hover,.profile-btn.active{
  background:var(--violet);
  color:white
}

.profile-btn.active i,.profile-btn:hover i{
  opacity:1;
  transform:none
}

.lab-visual{
  position:relative;
  min-height:560px;
  background:#dedde2;
  overflow:hidden
}

.lab-visual img{
  width:100%;
  height:100%;
  -o-object-fit:cover;
     object-fit:cover;
  transition:opacity .25s,transform .5s
}

.lab-visual:hover img{
  transform:scale(1.025)
}

.scan-line{
  position:absolute;
  left:0;
  right:0;
  height:1px;
  background:var(--lime);
  box-shadow:0 0 14px var(--lime);
  animation:scan 4s linear infinite
}

@keyframes scan{
  0%{
    top:0;
    opacity:0
  }

  8%{
    opacity:1
  }

  92%{
    opacity:1
  }

  100%{
    top:100%;
    opacity:0
  }
}

.image-code{
  position:absolute;
  left:18px;
  bottom:18px;
  background:var(--ink);
  color:white;
  padding:9px 12px;
  font:9px ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.14em
}

.lab-note{
  padding:30px;
  align-self:end
}

.micro{
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.17em;
  color:#74727b
}

.lab-note h3{
  font-size:34px;
  line-height:1;
  margin:20px 0
}

.lab-note>p:not(.micro){
  color:#64636a;
  line-height:1.55
}

.lab-note a{
  display:inline-block;
  margin-top:30px;
  padding-bottom:8px;
  border-bottom:1px solid;
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.13em
}

.collections{
  background:#e5e4e8
}

.collection-intro{
  display:grid;
  grid-template-columns:.45fr 1.15fr .4fr;
  align-items:end
}

.collection-intro>p:first-child{
  align-self:start
}

.collection-intro h2{
  margin:0
}

.collection-intro>p:last-child{
  color:#67666d;
  line-height:1.55
}

.cards{
  margin-top:80px;
  display:grid;
  grid-template-columns:1.25fr .75fr .75fr;
  gap:18px
}

.product-card{
  background:var(--paper);
  transition:transform .35s
}

.product-card:hover{
  transform:translateY(-8px)
}

.card-media{
  height:390px;
  position:relative;
  overflow:hidden;
  background:#fff
}

.card-tall .card-media{
  height:520px
}

.card-media img{
  width:100%;
  height:100%;
  -o-object-fit:cover;
     object-fit:cover;
  transition:transform .6s
}

.product-card:hover img{
  transform:scale(1.04)
}

.card-media span{
  position:absolute;
  top:16px;
  left:16px;
  background:var(--violet);
  color:white;
  padding:9px 12px;
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.14em
}

.card-copy{
  padding:24px
}

.card-copy small{
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  color:#777
}

.card-copy h3{
  font-size:28px;
  margin:18px 0 8px
}

.card-copy p{
  color:#74727b;
  line-height:1.45
}

.private-label{
  background:var(--ink);
  color:white
}

.label-panel{
  border:1px solid #444;
  border-radius:var(--radius);
  overflow:hidden;
  background:linear-gradient(145deg,#15151a,#0b0b0d);
  position:relative
}

.label-panel:after{
  content:"";
  position:absolute;
  width:500px;
  height:500px;
  border:1px solid var(--violet);
  border-radius:50%;
  right:-180px;
  top:-240px;
  box-shadow:0 0 80px rgba(109,53,255,.2)
}

.label-top{
  display:flex;
  justify-content:space-between;
  padding:22px 28px;
  border-bottom:1px solid #444;
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.18em;
  color:#aaa
}

.label-main{
  padding:70px 28px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:60px;
  align-items:end
}

.label-main h2{
  font-size:clamp(50px,7vw,105px);
  line-height:.88;
  letter-spacing:-.065em;
  margin:0;
  font-weight:500
}

.label-main p{
  color:#aaa;
  line-height:1.6;
  max-width:500px
}

.label-panel ol{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid #444
}

.label-panel li{
  padding:24px 28px;
  border-right:1px solid #444;
  display:flex;
  flex-direction:column;
  gap:42px
}

.label-panel li:last-child{
  border:0
}

.label-panel b{
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  color:var(--lime)
}

.label-panel li span{
  font-size:17px
}

.factory{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:10vw;
  align-items:end
}

.factory-copy h2{
  margin-bottom:35px
}

.factory-copy>p:last-child{
  max-width:690px;
  color:#65646a;
  line-height:1.65
}

.factory-data{
  border-top:1px solid
}

.factory-data div{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:24px 0;
  border-bottom:1px solid #ccc
}

.factory-data span{
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#75747a
}

.factory-data strong{
  font-size:14px;
  text-align:right
}

.contact{
  min-height:80vh;
  padding:120px var(--gutter) 40px;
  background:var(--violet);
  color:white;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center
}

.contact>p{
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.17em
}

.contact h2{
  font-size:clamp(64px,10vw,155px);
  line-height:.8;
  letter-spacing:-.075em;
  margin:35px 0 70px;
  font-weight:500;
  position:relative;
  z-index:1
}

.contact h2 em{
  color:var(--lime)
}

.contact-email{
  font-size:clamp(18px,2.4vw,34px);
  border-bottom:1px solid rgba(255,255,255,.6);
  padding-bottom:18px;
  display:flex;
  justify-content:space-between;
  position:relative;
  z-index:1
}

.contact-email span{
  color:var(--lime)
}

.contact-foot{
  display:flex;
  justify-content:space-between;
  margin-top:auto;
  padding-top:90px;
  font:10px ui-monospace,SFMono-Regular,Menlo,monospace;
  text-transform:uppercase;
  letter-spacing:.12em
}

.contact-orbit{
  position:absolute;
  width:55vw;
  height:55vw;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  right:-10vw;
  top:-15vw
}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .7s ease,transform .7s ease
}

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

@media(max-width:900px){
  .site-header{
    height:74px;
    grid-template-columns:1fr auto
  }

  .brand img{
    width:100px
  }

  .desktop-nav,.header-contact{
    display:none
  }

  .menu-toggle{
    display:block;
    width:42px;
    height:42px;
    background:transparent;
    border:1px solid #444;
    color:white;
    position:relative
  }

  .menu-toggle i{
    position:absolute;
    left:11px;
    right:11px;
    height:1px;
    background:white;
    transition:.3s
  }

  .menu-toggle i:first-child{
    top:16px
  }

  .menu-toggle i:last-child{
    top:24px
  }

  .menu-toggle.open i:first-child{
    transform:translateY(4px) rotate(45deg)
  }

  .menu-toggle.open i:last-child{
    transform:translateY(-4px) rotate(-45deg)
  }

  .mobile-menu{
    display:flex;
    position:absolute;
    left:0;
    right:0;
    top:74px;
    background:var(--ink);
    padding:26px var(--gutter);
    flex-direction:column;
    gap:22px;
    transform:translateY(-120%);
    opacity:0;
    pointer-events:none;
    transition:.35s;
    z-index:-1
  }

  .mobile-menu.open{
    transform:none;
    opacity:1;
    pointer-events:auto
  }

  .mobile-menu a{
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:13px
  }

  .hero{
    min-height:auto;
    padding-top:42px;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto
  }

  .hero-copy{
    padding:70px 0 25px
  }

  .hero h1{
    font-size:clamp(58px,17vw,100px)
  }

  .profile-stage{
    width:92%;
    margin:-20px auto 10px
  }

  .hero-foot{
    margin-top:30px
  }

  .section{
    padding-top:85px;
    padding-bottom:85px
  }

  .section-heading h2{
    margin-bottom:48px
  }

  .lab-grid{
    grid-template-columns:1fr
  }

  .lab-controls{
    border-right:0;
    border-bottom:1px solid
  }

  .lab-visual{
    min-height:390px
  }

  .lab-note{
    padding:32px 0 5px
  }

  .collection-intro{
    grid-template-columns:1fr
  }

  .collection-intro h2{
    margin:25px 0
  }

  .cards{
    grid-template-columns:1fr;
    margin-top:50px
  }

  .card-media,.card-tall .card-media{
    height:390px
  }

  .label-main{
    grid-template-columns:1fr;
    padding:50px 22px
  }

  .label-panel ol{
    grid-template-columns:1fr 1fr
  }

  .label-panel li:nth-child(2){
    border-right:0
  }

  .label-panel li{
    border-bottom:1px solid #444
  }

  .label-panel li:nth-child(3),.label-panel li:nth-child(4){
    border-bottom:0
  }

  .factory{
    grid-template-columns:1fr;
    gap:55px
  }

  .contact{
    min-height:72vh;
    padding-top:85px
  }

  .contact-email{
    font-size:16px;
    word-break:break-all
  }

  .contact-foot{
    flex-direction:column;
    gap:16px
  }
}

@media(max-width:520px){
  .section-heading h2,.collection-intro h2,.factory-copy h2{
    font-size:43px
  }

  .profile-btn{
    padding:21px 14px
  }

  .profile-btn span{
    font-size:15px
  }

  .lab-visual{
    min-height:320px
  }

  .cards{
    gap:12px
  }

  .card-media,.card-tall .card-media{
    height:330px
  }

  .label-main h2{
    font-size:49px
  }

  .label-panel ol{
    grid-template-columns:1fr
  }

  .label-panel li{
    border-right:0!important;
    border-bottom:1px solid #444!important;
    gap:18px
  }

  .label-panel li:last-child{
    border-bottom:0!important
  }

  .factory-data div{
    flex-direction:column
  }

  .factory-data strong{
    text-align:left
  }

  .contact h2{
    font-size:58px
  }

  .contact-foot{
    font-size:9px
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }

  .lash,.pulse,.scan-line{
    animation:none;
    stroke-dashoffset:0
  }

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

  .product-card,.card-media img,.lab-visual img{
    transition:none
  }
}

/* ===== pages.css: routes, catalog, wall, knowledge, contact, footer ===== */
/* Winked multi-route additions and corrections. Loaded after styles.css. */
:root{--gutter:clamp(20px,4vw,72px);--head:76px;--line:#1d1d20;--muted:#5d5c64}
.skip{position:absolute;left:-999px;top:0;background:var(--lime);color:var(--ink);padding:10px 14px;z-index:100}.skip:focus{left:12px;top:12px}
/* header: fixed to top, 76px, six nav items */
.site-header{height:var(--head);grid-template-columns:auto 1fr auto;gap:28px}
.brand img{width:auto;height:34px;filter:brightness(0) invert(1)}
.desktop-nav{justify-self:center;gap:clamp(14px,2vw,30px);font-size:12px;letter-spacing:.1em;white-space:nowrap}
.desktop-nav a{padding:6px 0}.desktop-nav a.active:after{right:0}
.header-contact{white-space:nowrap}
.menu-toggle:focus-visible,.desktop-nav a:focus-visible,.header-contact:focus-visible,a.btn-lime:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.mobile-menu a.active{color:var(--lime)}
/* hero with photograph */
.hero{min-height:auto;padding:clamp(48px,6vw,90px) var(--gutter) 34px;grid-template-columns:1.05fr .95fr;column-gap:clamp(24px,4vw,64px)}
.hero h1{font-size:clamp(56px,7.6vw,132px)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.btn-lime{display:inline-block;background:var(--lime);color:var(--ink);padding:15px 22px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;border:1px solid var(--lime);transition:background .25s,color .25s}
.btn-lime:hover{background:#dfff7a}
.btn-ghost{display:inline-block;color:#fff;padding:15px 22px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;border:1px solid rgba(255,255,255,.4)}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime)}
.hero-media{position:relative;align-self:center;z-index:1}
.hero-media .shot{margin:0;border:1px solid rgba(255,255,255,.14)}
.hero-curves{position:absolute;left:4%;right:4%;bottom:6%;width:92%;height:auto;overflow:visible;pointer-events:none}
.hero-media .measure{color:#ddd}
.hero-media .m1{left:6%;bottom:8%}.hero-media .m2{right:6%;top:6%}.hero-media .m3{right:6%;bottom:8%;left:auto}
/* generic frames, aspect ratio from the image itself so crop = 0 */
.shot{position:relative;margin:0;overflow:hidden;background:#e9e8ec;aspect-ratio:var(--w,4)/var(--h,3)}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot.contain img{object-fit:contain;background:#fff}
.shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:10px 12px;background:rgba(7,7,9,.72);color:#fff;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.shot.banner{aspect-ratio:var(--w,12)/var(--h,5)}
.micro,.section-heading p,.collection-intro>p:first-child,.factory-copy>p:first-child,.card-copy small,.lab-note>p:not(.micro){color:#55545c}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-top:clamp(48px,5vw,80px);padding-bottom:clamp(48px,5vw,80px);border-bottom:1px solid #d9d8dd}
.stat strong{display:block;font-size:clamp(40px,4.6vw,72px);line-height:1;letter-spacing:-.05em;color:var(--violet)}
.stat span{display:block;margin-top:10px;color:var(--muted);line-height:1.45;font-size:14px}
/* page head */
.page-head{background:var(--ink);color:#fff;padding:clamp(48px,6vw,96px) var(--gutter);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,64px);align-items:center}
.page-head h1{font-size:clamp(46px,6.4vw,110px);line-height:.9;letter-spacing:-.06em;margin:20px 0 26px;font-weight:500}
.page-head .lede{max-width:560px}
.page-head-media .shot{border:1px solid rgba(255,255,255,.14)}
/* families */
.families{background:#e5e4e8}
.family-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.family{background:var(--paper);display:flex;flex-direction:column;transition:transform .35s}
.family:hover{transform:translateY(-6px)}
.family>div{padding:22px 22px 26px}
.family small{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--violet)}
.family h3{font-size:24px;margin:12px 0 8px;line-height:1.1}
.family p{color:var(--muted);line-height:1.45;margin:0}
/* record */
.record{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center}
.record h2{font-size:clamp(38px,4.6vw,72px);line-height:.95;letter-spacing:-.05em;margin:22px 0 24px;font-weight:500}
.record p:not(.micro){color:#4a4950;line-height:1.65;max-width:600px}
.text-link{display:inline-block;margin-top:22px;padding-bottom:8px;border-bottom:1px solid;font:11px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.13em}
/* teaser */
.teaser{background:#e5e4e8}
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.teaser-card{background:var(--paper);padding:0 0 22px;display:flex;flex-direction:column}
.teaser-card .shot{aspect-ratio:1/1}
.teaser-card h3{font-size:22px;margin:18px 22px 8px}
.teaser-card p{color:var(--muted);line-height:1.45;margin:0 22px}
/* contact band */
.contact-band{min-height:auto;padding:clamp(80px,9vw,140px) var(--gutter) clamp(60px,7vw,100px);background:var(--violet);color:#fff;position:relative;overflow:hidden}
.contact-band>p{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.17em}
.contact-band h2{font-size:clamp(54px,9vw,140px);line-height:.85;letter-spacing:-.07em;margin:30px 0 50px;font-weight:500;position:relative;z-index:1}
.contact-band h2 em{color:var(--lime);font-family:Georgia,serif;font-weight:400}
.contact-actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap;position:relative;z-index:1}
.contact-actions .contact-email{font-size:clamp(16px,2vw,26px);border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:10px;display:inline-flex;gap:14px}
.contact-actions .contact-email span{color:var(--lime)}
/* catalog sections */
.catalog.alt,.wall-section.alt,.faq.alt,.context.alt{background:#e5e4e8}
.cat-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,3vw,48px);align-items:end;margin-bottom:38px}
.cat-head .micro{grid-column:1/-1}
.cat-head h2{font-size:clamp(34px,4.4vw,68px);line-height:.95;letter-spacing:-.05em;margin:0;font-weight:500}
.cat-head p:not(.micro){color:#4a4950;line-height:1.6;margin:0}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cat-grid .shot{aspect-ratio:1/1}
.cat-grid .shot.wide{grid-column:span 3;aspect-ratio:var(--w)/var(--h)}
.cat-grid .shot.tall,.graphics .shot{aspect-ratio:var(--w)/var(--h)}
.cat-grid.graphics{grid-template-columns:repeat(4,1fr);align-items:start}
.style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.style-grid .shot{aspect-ratio:1/1;background:#fff}
.spec{display:grid;grid-template-columns:repeat(3,1fr);gap:0 28px;margin:34px 0 0;border-top:1px solid var(--line)}
.spec>div{padding:16px 0;border-bottom:1px solid #cfced4}
.spec dt{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.spec dd{margin:8px 0 0;font-size:15px;line-height:1.45}
.wide-banner{margin-top:18px}
/* listed */
.listed-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.listed-grid li{border:1px solid #cfced4;padding:20px;display:flex;flex-direction:column;gap:8px}
.listed-grid b{font-size:18px;font-weight:500}.listed-grid span{color:var(--muted);font-size:13px}
/* profile lab image sizing */
.lab-visual{min-height:0;aspect-ratio:1/1}
.lab-visual img{transition:opacity .25s}
/* about */
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,80px);align-items:start}
.about-copy h2{font-size:clamp(34px,4.2vw,64px);line-height:.98;letter-spacing:-.05em;margin:20px 0 24px;font-weight:500}
.about-copy p:not(.micro){color:#4a4950;line-height:1.65;max-width:640px}
.about-data{border-top:1px solid}
.about-data div{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid #ccc}
.about-data span{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);flex:0 0 120px}
.about-data strong{font-size:14px;text-align:right;font-weight:500}
.wall{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wall .shot{aspect-ratio:4/3}.wall .span2{grid-column:span 2;aspect-ratio:var(--w)/var(--h)}
.wall.four{grid-template-columns:repeat(4,1fr)}.wall.four .shot{aspect-ratio:3/4}
.wall.three .shot{aspect-ratio:1/1}
.wall .span3{grid-column:span 3;aspect-ratio:var(--w)/var(--h)}
.wall-lede{max-width:720px;color:#4a4950;line-height:1.6;margin:-30px 0 34px}
.cert-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cert{background:#fff;padding:20px;border:1px solid #d9d8dd}
.cert .shot{aspect-ratio:var(--w)/var(--h);background:#fff}
.cert h3{font-size:22px;margin:18px 0 8px}.cert p{color:var(--muted);line-height:1.5;margin:0}
.context-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,80px);align-items:center}
.context-grid h2{font-size:clamp(32px,4vw,58px);line-height:1;letter-spacing:-.05em;margin:18px 0 20px;font-weight:500}
.context-grid p:not(.micro){color:#4a4950;line-height:1.65}
/* knowledge */
.articles{display:grid;gap:clamp(40px,5vw,72px)}
.article{display:grid;grid-template-columns:.42fr .58fr;gap:clamp(22px,4vw,56px);align-items:start;padding-top:clamp(28px,4vw,48px);border-top:1px solid var(--line)}
.article:first-child{border-top:0;padding-top:0}
.article-media .shot{aspect-ratio:var(--w)/var(--h)}
.article-copy h2{font-size:clamp(30px,3.6vw,52px);line-height:1;letter-spacing:-.045em;margin:14px 0 18px;font-weight:500}
.article-copy p:not(.micro){color:#4a4950;line-height:1.65;max-width:640px}
.article-copy .shot{max-width:520px;margin-top:22px;aspect-ratio:var(--w)/var(--h)}
.faq-list{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.faq-list>div{padding:22px 0;border-bottom:1px solid #cfced4}
.faq-list dt{font-size:20px;font-weight:500;margin-bottom:8px}.faq-list dd{margin:0;color:#4a4950;line-height:1.55}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
.detail{padding:18px 0;border-bottom:1px solid #cfced4;display:flex;flex-direction:column;gap:6px}
.detail span{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.detail a{font-size:clamp(18px,1.8vw,26px);border-bottom:1px solid var(--violet);align-self:flex-start;color:var(--ink)}
.detail a:hover{color:var(--violet)}
.detail strong{font-weight:500;font-size:16px;line-height:1.45}
.brief h2{font-size:clamp(32px,4vw,58px);line-height:1;letter-spacing:-.05em;margin:16px 0 22px;font-weight:500}
.brief-list{padding-left:20px;margin:0 0 28px;display:grid;gap:12px;color:#4a4950;line-height:1.5}
.brief-list b{color:var(--ink);font-weight:500;margin-right:6px}
.contact-photo{padding-top:0}
/* footer */
.site-footer{background:var(--ink);color:#bbb;padding:clamp(48px,5vw,72px) var(--gutter) 28px}
.foot-grid{display:grid;grid-template-columns:1.2fr .8fr .9fr;gap:40px;padding-bottom:36px;border-bottom:1px solid #2a2a2e}
.foot-brand .micro{color:var(--lime)}.foot-brand p:not(.micro){line-height:1.6;max-width:420px;margin:12px 0 0}
.foot-nav{display:flex;flex-direction:column;gap:10px;font-size:12px;text-transform:uppercase;letter-spacing:.14em}
.foot-nav a:hover,.foot-contact a:hover{color:var(--lime)}
.foot-contact{display:flex;flex-direction:column;gap:10px;font-size:14px}
.foot-base{display:flex;justify-content:space-between;gap:20px;padding-top:22px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:uppercase;letter-spacing:.12em;color:#888}
/* hover contrast on filled controls */
.profile-btn:hover b,.profile-btn.active b,.profile-btn:hover span,.profile-btn.active span{color:#fff}
@media (hover:none){.profile-btn:hover:not(.active){background:transparent;color:inherit}.profile-btn:hover:not(.active) b,.profile-btn:hover:not(.active) span{color:inherit}}
/* responsive */
@media (max-width:1150px){
  .site-header{grid-template-columns:auto 1fr auto;height:66px}
  .desktop-nav,.header-contact{display:none}
  .menu-toggle{display:block;justify-self:end;width:42px;height:42px;background:transparent;border:1px solid #444;color:#fff;position:relative}
  .menu-toggle i{position:absolute;left:11px;right:11px;height:1px;background:#fff;transition:.3s}
  .menu-toggle i:first-child{top:16px}.menu-toggle i:last-child{top:24px}
  .menu-toggle.open i:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle.open i:last-child{transform:translateY(-4px) rotate(-45deg)}
  .mobile-menu{display:flex;position:absolute;left:0;right:0;top:66px;background:var(--ink);padding:22px var(--gutter);flex-direction:column;gap:18px;transform:translateY(-120%);opacity:0;pointer-events:none;transition:.3s;z-index:-1;border-bottom:1px solid rgba(255,255,255,.16)}
  .mobile-menu.open{transform:none;opacity:1;pointer-events:auto}
  .mobile-menu a{text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:#fff}
  .stats{grid-template-columns:repeat(2,1fr)}
  .family-grid,.teaser-grid,.cat-grid,.listed-grid{grid-template-columns:repeat(2,1fr)}
  .cat-grid .shot.wide{grid-column:span 2}
  .style-grid{grid-template-columns:repeat(3,1fr)}
  .cat-grid.graphics{grid-template-columns:repeat(2,1fr)}
  .spec{grid-template-columns:repeat(2,1fr)}
  .wall.four{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .brand img{height:28px}
  .hero{grid-template-columns:1fr;padding-top:36px}
  .hero-copy{padding:20px 0 24px}
  .hero h1{font-size:clamp(52px,15vw,96px)}
  .hero-media{width:100%;margin:0 0 10px}
  .page-head,.record,.about-grid,.context-grid,.article,.contact-grid,.cert-grid,.faq-list{grid-template-columns:1fr}
  .cat-head{grid-template-columns:1fr;margin-bottom:26px}
  .wall,.wall.three{grid-template-columns:1fr 1fr}
  .wall .span2,.wall .span3{grid-column:span 2}
  .foot-grid{grid-template-columns:1fr;gap:26px}
  .foot-base{flex-direction:column}
  .about-data span{flex-basis:100px}
  .page-head h1{font-size:clamp(40px,11vw,72px)}
}
@media (max-width:560px){
  .stats,.family-grid,.teaser-grid,.cat-grid,.listed-grid,.spec,.cat-grid.graphics,.wall.four{grid-template-columns:1fr}
  .cat-grid .shot.wide{grid-column:auto}
  .style-grid{grid-template-columns:repeat(2,1fr)}
  .wall,.wall.three{grid-template-columns:1fr}
  .wall .span2,.wall .span3{grid-column:auto}
  .about-data div{flex-direction:column;gap:6px}
  .about-data strong{text-align:left}
  .contact-actions .contact-email{font-size:15px;word-break:break-all}
  .hero-actions a{width:100%;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .family,.btn-lime,.teaser-card{transition:none}
}
