:root {
  --lab-blue:#256BFF;
  --lab-ink:#08090A;
  --lab-muted:#69717E;
  --lab-line:#E4E8EF;
  --lab-surface:#F5F6F8;
}

header { border-bottom:1px solid rgba(228,232,239,.68); }

.lab-hero {
  min-height:620px;
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);
  gap:72px;
  align-items:center;
  padding:92px 0 84px;
}

.lab-kicker {
  margin:0 0 24px;
  color:var(--lab-blue);
  font-size:13px;
  font-weight:820;
  letter-spacing:.18em;
}

.lab-hero h1 {
  max-width:820px;
  font-size:clamp(48px,5.6vw,78px);
  line-height:1.08;
  font-weight:690;
  letter-spacing:-.065em;
}

.lab-lead {
  max-width:690px;
  margin:32px 0 0;
  color:var(--lab-muted);
  font-size:20px;
  line-height:1.75;
}

.lab-principles { display:flex; flex-wrap:wrap; gap:9px; margin-top:34px; }
.lab-principles span {
  padding:9px 13px;
  border:1px solid var(--lab-line);
  border-radius:999px;
  color:#4E5663;
  background:#fff;
  font-size:12px;
  font-weight:720;
  letter-spacing:.04em;
}

.lab-mark {
  position:relative;
  aspect-ratio:1;
  min-height:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid var(--lab-line);
  border-radius:30px;
  background:#F5F6F8;
}

.lab-mark::before,.lab-mark::after {
  display:none;
}
.lab-eyewear-logo {
  position:relative;
  z-index:2;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.lab-mark-label {
  position:absolute;
  z-index:3;
  right:24px;
  bottom:22px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(8px);
  color:#515966;
  font-size:11px;
  font-weight:760;
  letter-spacing:.12em;
}

.notes-section {
  padding:86px 0 110px;
  border-top:1px solid var(--lab-line);
  background:var(--lab-surface);
}
.notes-head {
  display:flex;
  justify-content:space-between;
  gap:36px;
  align-items:end;
  margin-bottom:34px;
}
.notes-title-wrap p { margin:0 0 12px; color:var(--lab-blue); font-size:12px; font-weight:820; letter-spacing:.17em; }
.notes-title-wrap h2 { margin:0; font-size:clamp(34px,4vw,52px); line-height:1.12; font-weight:690; letter-spacing:-.055em; }
.notes-desc { max-width:520px; margin:0; color:var(--lab-muted); font-size:16px; line-height:1.7; }

.lab-filters {
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:0 0 24px;
  scrollbar-width:none;
}
.lab-filters::-webkit-scrollbar { display:none; }
.lab-filter {
  flex:0 0 auto;
  border:1px solid #DDE2EA;
  border-radius:999px;
  padding:10px 15px;
  background:#fff;
  color:#5C6471;
  font-size:13px;
  font-weight:720;
  cursor:pointer;
}
.lab-filter.is-active { border-color:#111; background:#111; color:#fff; }

.notes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.note-card {
  min-width:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  border:1px solid #E0E4EA;
  border-radius:24px;
  background:#fff;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
a.note-card:hover {
  transform:translateY(-4px);
  border-color:#CDD4DF;
  box-shadow:0 20px 44px rgba(21,28,40,.08);
}
.note-visual {
  position:relative;
  aspect-ratio:4/3;
  display:flex;
  align-items:flex-end;
  padding:24px;
  overflow:hidden;
  background:#F0F2F5;
  border-bottom:1px solid #E7EAF0;
}
.note-visual::after {
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-34px;
  top:-34px;
  border:1px solid rgba(29,37,49,.11);
  border-radius:50%;
}
.note-number { position:relative; z-index:2; color:#111; font-size:74px; line-height:.84; font-weight:300; letter-spacing:-.08em; }
.note-symbol {
  position:absolute;
  z-index:2;
  right:24px;
  bottom:24px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--lab-blue);
  color:#fff;
  font-size:18px;
}
.note-card:nth-child(2) .note-visual { background:#EBF1FF; }
.note-card:nth-child(3) .note-visual { background:#F5F0EA; }
.note-card:nth-child(4) .note-visual { background:#EEF4F1; }
.note-card:nth-child(5) .note-visual { background:#F4EFF7; }
.note-card:nth-child(6) .note-visual { background:#F2F2ED; }
.note-body { flex:1; display:flex; flex-direction:column; padding:23px 24px 25px; }
.note-meta { display:flex; justify-content:space-between; gap:12px; color:#808794; font-size:11px; font-weight:710; letter-spacing:.04em; }
.note-body h3 { margin:16px 0 11px; font-size:21px; line-height:1.35; font-weight:720; letter-spacing:-.045em; }
.note-body p { margin:0; color:var(--lab-muted); font-size:13.5px; line-height:1.72; }
.note-state { display:inline-block; margin-top:auto; padding-top:22px; color:var(--lab-blue); font-size:12px; font-weight:790; }
.note-state-muted { color:#9299A5; }

.lab-notice {
  display:grid;
  grid-template-columns:1fr auto;
  gap:30px;
  align-items:center;
  margin-top:48px;
  padding:30px 32px;
  border:1px solid #DBE1EA;
  border-radius:22px;
  background:#fff;
}
.lab-notice strong { display:block; margin-bottom:8px; font-size:17px; }
.lab-notice p { margin:0; color:var(--lab-muted); font-size:14px; line-height:1.65; }
.lab-notice span { color:#8A919D; font-size:12px; font-weight:720; white-space:nowrap; }

@media (max-width:1100px) {
  .lab-hero { grid-template-columns:1fr .72fr; gap:44px; }
  .notes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:900px) {
  .lab-hero { grid-template-columns:1fr; padding:70px 0; }
  .lab-mark { width:min(100%,520px); }
  .notes-head { display:block; }
  .notes-desc { margin-top:18px; }
}

@media (max-width:640px) {
  .lab-hero { min-height:0; padding:58px 0 64px; gap:38px; }
  .lab-hero h1 { font-size:43px; }
  .lab-lead { margin-top:24px; font-size:17px; }
  .lab-mark { border-radius:24px; }
  .notes-section { padding:64px 0 76px; }
  .notes-grid { grid-template-columns:1fr; gap:16px; }
  .note-body h3 { font-size:21px; }
  .lab-notice { grid-template-columns:1fr; padding:24px; }
}

.launch-status {
  display:inline-flex;
  align-items:center;
  margin:18px 0 0;
  padding:8px 14px;
  border:1px solid #DCE4F0;
  border-radius:999px;
  background:#F7F9FC;
  color:#596273;
  font-size:14px;
  font-weight:750;
  letter-spacing:-.02em;
}
