:root {
  --red: #bd0000;
  --red-bright: #ef1c16;
  --paper: #f4f2ed;
  --paper-2: #e7e4dd;
  --ink: #101010;
  --graphite: #353535;
  --chrome: rgba(239, 239, 239, .82);
  --glass-border: rgba(255, 255, 255, .58);
  --ui: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
  --display: "Arial Narrow", "HelveticaNeue-CondensedBlack", "Helvetica Neue", sans-serif;
  --ease: cubic-bezier(.2, .75, .18, 1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background: var(--red); }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100dvh;
  overflow: hidden;
  color: var(--ink);
  background: var(--red);
  font-family: var(--ui);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
img { display: block; max-width: 100%; }
button:focus-visible, a:focus-visible, input:focus-visible {
  outline: 3px solid #1769ff;
  outline-offset: 3px;
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link {
  position: fixed;
  z-index: 9999;
  left: 16px;
  top: 12px;
  padding: 10px 14px;
  color: #fff;
  background: var(--ink);
  transform: translateY(-160%);
  transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); }

/* 404 */
.error-page {
  position: fixed;
  z-index: 5000;
  inset: 0;
  display: none;
  place-items: center;
  overflow: hidden;
  background: var(--paper);
}
body[data-route="404"] .error-page { display: grid; }
body[data-route="404"] .boot,
body[data-route="404"] .desktop { display: none !important; }
.error-lockup {
  position: relative;
  z-index: 3;
  width: min(900px, calc(100vw - 40px));
  text-align: center;
}
.error-code {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 2vw, 24px);
  font-family: var(--display);
  font-size: clamp(132px, 29vw, 430px);
  font-weight: 900;
  letter-spacing: -.1em;
  line-height: .7;
  color: var(--red);
}
.error-code img { width: .72em; height: .72em; object-fit: contain; }
.error-lockup p { margin: 44px 0 5px; font-weight: 800; font-size: clamp(17px, 2vw, 28px); }
.error-lockup small { display: block; margin-bottom: 24px; font-size: 12px; letter-spacing: .08em; }
.error-multiples { position: absolute; inset: 0; pointer-events: none; }
.error-clone {
  position: absolute;
  width: clamp(36px, 8vw, 124px);
  filter: drop-shadow(5px 5px 0 rgba(16, 16, 16, .12));
  animation: clone-in .42s var(--ease) both;
}
@keyframes clone-in { from { opacity: 0; transform: scale(3) rotate(var(--r)); } to { opacity: .96; transform: scale(1) rotate(var(--r)); } }

.system-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 22px;
  border: 0;
  border-radius: 4px;
  text-decoration: none;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .05em;
  cursor: pointer;
}
.system-button--black { color: #fff; background: var(--ink); }

/* Boot */
.boot {
  position: fixed;
  z-index: 4000;
  inset: 0;
  overflow: hidden;
  color: var(--red);
  background: var(--paper);
}
.boot.is-complete { display: none; }
.boot__wash {
  position: absolute;
  z-index: 0;
  left: 50%;
  top: 50%;
  width: 42vmax;
  height: 42vmax;
  border-radius: 50%;
  background: var(--red);
  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
}
.boot__button {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
}
.boot__logo {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 49%;
  width: min(69vw, 82vh, 960px);
  height: min(69vw, 82vh, 960px);
  object-fit: contain;
  transform: translate(-50%, -50%);
  transition: transform .25s var(--ease), filter .25s ease;
}
.boot__button:hover .boot__logo { transform: translate(-50%, -50%) scale(1.025) rotate(-1deg); filter: saturate(1.08); }
.boot__stamp {
  position: absolute;
  z-index: 2;
  font-family: var(--display);
  font-size: clamp(23px, 4.2vw, 72px);
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: .8;
  white-space: nowrap;
  pointer-events: none;
}
.boot__stamp--one { left: -1vw; top: 4vh; transform: rotate(-4deg); }
.boot__stamp--two { right: -2vw; top: 11vh; transform: rotate(6deg); }
.boot__stamp--three { left: -2vw; bottom: 10vh; transform: rotate(5deg); }
.boot__stamp--four { right: 1vw; bottom: 3vh; transform: rotate(-5deg); }
.boot__click {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-3deg);
  padding: .13em .22em .18em;
  color: var(--paper);
  background: var(--red);
  border: 3px solid var(--paper);
  box-shadow: 0 0 0 4px var(--red);
  font-family: var(--display);
  font-size: clamp(23px, 4vw, 67px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;
  white-space: nowrap;
}
.boot__description {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: 22px;
  transform: translateX(-50%);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  white-space: nowrap;
}
.boot__files {
  position: absolute;
  z-index: 3;
  left: 22px;
  bottom: 22px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .1em;
}

/* Desktop shell */
.desktop {
  position: fixed;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  background: var(--red);
}
.desktop.is-visible { opacity: 1; visibility: visible; }
.menu-bar {
  position: fixed;
  z-index: 1000;
  inset: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 28px;
  padding: 0 12px 0 8px;
  border-bottom: 1px solid rgba(255,255,255,.45);
  background: rgba(245, 241, 235, .83);
  box-shadow: 0 1px 8px rgba(0,0,0,.12);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  backdrop-filter: blur(24px) saturate(1.4);
  font-size: 12px;
  user-select: none;
}
.menu-bar__left, .menu-bar__right { display: flex; align-items: center; gap: 16px; }
.menu-bar button { padding: 0; border: 0; background: transparent; font-size: inherit; cursor: pointer; }
.menu-apple { position: relative; width: 17px; color: transparent !important; }
.menu-apple::before {
  content: "";
  position: absolute;
  left: 1px;
  top: -7px;
  width: 14px;
  height: 14px;
  background: var(--ink);
  border-radius: 47% 47% 53% 53% / 55% 55% 45% 45%;
}
.menu-apple::after { content: ""; position: absolute; left: 10px; top: -10px; width: 5px; height: 5px; border-radius: 6px 0; background: var(--ink); transform: rotate(-25deg); }
.desktop-ticker {
  position: fixed;
  z-index: 5;
  top: 28px;
  left: 0;
  width: 100%;
  display: flex;
  overflow: hidden;
  height: 26px;
  color: var(--red);
  background: var(--paper);
  border-bottom: 1px solid var(--ink);
  font-size: 11px;
  font-weight: 900;
  line-height: 26px;
  letter-spacing: .07em;
  white-space: nowrap;
}
.desktop-ticker span { min-width: max-content; animation: ticker 19s linear infinite; }
@keyframes ticker { to { transform: translateX(-100%); } }
.desktop-stage { position: absolute; inset: 54px 0 0; overflow: hidden; }
.stage-copy { position: absolute; z-index: 1; color: rgba(255,255,255,.96); pointer-events: none; }
.stage-copy span { display: block; margin-bottom: 8px; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.stage-copy strong { font-family: var(--display); font-size: clamp(70px, 10vw, 168px); font-weight: 900; line-height: .72; letter-spacing: -.075em; }
.stage-copy--left { left: 2vw; top: 24%; }
.stage-copy--right { right: 2vw; top: 17%; text-align: right; }
.stage-copy--right strong { color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.72); }

.model-card {
  position: absolute;
  z-index: 4;
  left: 50%;
  top: calc(50% - 1px);
  width: clamp(278px, min(30vw, 45vh), 424px);
  height: calc(100% - 76px);
  max-height: 758px;
  min-height: 500px;
  display: grid;
  grid-template-rows: 28px minmax(0, 1fr) 42px;
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--ink);
  box-shadow: 16px 18px 0 rgba(16,16,16,.86);
  transform: translate(-50%, -50%) rotate(-.35deg);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.model-card.is-drop-target { border: 3px solid #fff; box-shadow: 0 0 0 7px var(--ink), 20px 23px 0 rgba(16,16,16,.8); }
.model-card__chrome, .model-card__status { display: flex; align-items: center; justify-content: space-between; padding: 0 9px; font-family: var(--ui); font-size: 9px; font-weight: 700; letter-spacing: .08em; }
.model-card__chrome { border-bottom: 1px solid var(--ink); background: #d8d5cf; }
.model-card__image-wrap { position: relative; min-height: 0; overflow: hidden; background: #eee9e2; }
.model-card__image-wrap > img { width: 100%; height: 100%; object-fit: cover; object-position: center center; user-select: none; transition: opacity .22s ease, transform .45s var(--ease); }
.model-card:hover .model-card__image-wrap > img { transform: scale(1.012); }
.model-card__flash { position: absolute; inset: 0; background: #fff; opacity: 0; pointer-events: none; }
.drop-callout {
  position: absolute;
  left: 50%;
  top: 50%;
  padding: 10px 14px;
  color: var(--paper);
  background: var(--red);
  border: 2px solid var(--paper);
  box-shadow: 5px 5px 0 var(--ink);
  transform: translate(-50%, -50%) rotate(-4deg) scale(.7);
  opacity: 0;
  font-family: var(--display);
  font-size: 20px;
  font-weight: 900;
  white-space: nowrap;
  transition: opacity .15s ease, transform .2s var(--ease);
}
.is-drop-target .drop-callout { opacity: 1; transform: translate(-50%, -50%) rotate(-4deg) scale(1); }
.model-card__status { border-top: 1px solid var(--ink); }
.model-card__status strong { font-size: 12px; }
.model-card__status button { padding: 4px 6px; border: 1px solid var(--ink); background: transparent; font-size: 9px; font-weight: 800; cursor: pointer; }
.desktop-hint {
  position: fixed;
  z-index: 6;
  left: 50%;
  bottom: 94px;
  margin: 0;
  padding: 6px 9px;
  color: var(--paper);
  background: var(--ink);
  transform: translateX(-50%) rotate(-1deg);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  white-space: nowrap;
}

.product-files { position: absolute; inset: 0; z-index: 8; pointer-events: none; }
.product-file {
  --tilt: -4deg;
  position: absolute;
  width: clamp(124px, 13.5vw, 206px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: grab;
  pointer-events: auto;
  touch-action: none;
  user-select: none;
  transform: rotate(var(--tilt));
  filter: drop-shadow(8px 10px 0 rgba(16,16,16,.38));
}
.product-file:active { cursor: grabbing; }
.product-file.is-dragging { z-index: 60; filter: drop-shadow(14px 19px 0 rgba(16,16,16,.5)); }
.product-file--north-west { left: 8vw; top: 7vh; --tilt: -6deg; }
.product-file--north-east { right: 9vw; top: 9vh; --tilt: 5deg; }
.product-file--south-west { left: 13vw; bottom: 9vh; --tilt: 4deg; }
.product-file--south-east { right: 13vw; bottom: 8vh; --tilt: -4deg; }
.product-file__visual {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1;
  background: rgba(244,242,237,.94);
  border: 1px solid var(--ink);
  transition: transform .18s var(--ease), background .18s ease;
}
.product-file:hover .product-file__visual { background: #fff; transform: translateY(-5px) rotate(1deg); }
.product-file__visual img { width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.product-file__badge { position: absolute; z-index: 2; left: -1px; top: -1px; padding: 4px 6px; color: #fff; background: var(--ink); font-size: 8px; font-weight: 800; letter-spacing: .06em; }
.product-file__label { display: flex; justify-content: space-between; align-items: center; margin-top: 5px; padding: 5px 7px; color: var(--ink); background: var(--paper); border: 1px solid var(--ink); font-size: 9px; }
.product-file__label b { letter-spacing: .08em; }
.product-file__label em { font-style: normal; }
.product-file.is-active .product-file__label { color: #fff; background: var(--ink); }
.desktop.has-window .stage-copy { opacity: .13; }
.desktop.has-window .product-file { opacity: .24; filter: grayscale(.4) drop-shadow(4px 5px 0 rgba(16,16,16,.2)); }
.desktop.has-window .stage-copy,
.desktop.has-window .product-file { transition: opacity .22s ease, filter .22s ease; }

/* Dock */
.dock-shell { position: fixed; z-index: 1100; left: 50%; bottom: max(9px, env(safe-area-inset-bottom)); transform: translateX(-50%); }
.dock {
  display: flex;
  align-items: flex-end;
  height: 75px;
  padding: 8px 10px 7px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 20px;
  background: rgba(232,229,224,.58);
  box-shadow: 0 16px 45px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.7);
  -webkit-backdrop-filter: blur(24px) saturate(1.45);
  backdrop-filter: blur(24px) saturate(1.45);
}
.dock-item { position: relative; display: grid; place-items: center; width: 58px; height: 58px; padding: 0; border: 0; background: transparent; cursor: pointer; transform-origin: 50% 100%; }
.dock-item > img, .bag-icon { width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 4px 4px rgba(0,0,0,.2)); pointer-events: none; }
.dock-item > i { position: absolute; left: 50%; bottom: -5px; width: 4px; height: 4px; border-radius: 50%; background: var(--ink); transform: translateX(-50%); opacity: 0; }
.dock-item.is-running > i { opacity: 1; }
.dock-separator { width: 1px; height: 48px; margin: 0 8px 2px; background: rgba(16,16,16,.23); }
.dock-tooltip { position: absolute; left: 50%; bottom: calc(100% + 12px); padding: 6px 9px; border: 1px solid rgba(255,255,255,.8); border-radius: 7px; background: rgba(238,238,238,.86); box-shadow: 0 4px 14px rgba(0,0,0,.16); transform: translateX(-50%) translateY(5px); opacity: 0; pointer-events: none; white-space: nowrap; font-size: 11px; -webkit-backdrop-filter: blur(15px); backdrop-filter: blur(15px); transition: .12s ease; }
.dock-item:hover .dock-tooltip, .dock-item:focus-visible .dock-tooltip { opacity: 1; transform: translateX(-50%) translateY(0); }
.bag-icon { display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: var(--paper); border: 1px solid rgba(255,255,255,.75); }
.bag-icon img { width: 79%; height: 79%; object-fit: contain; }
.dock-badge { position: absolute; z-index: 2; right: -2px; top: -3px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; color: #fff; background: #e32218; border: 2px solid #fff; border-radius: 12px; font-size: 10px; }
.dock-badge[hidden] { display: none; }

/* Window system */
.window-layer { position: fixed; z-index: 200; inset: 28px 0 0; pointer-events: none; }
.os-window {
  position: fixed;
  z-index: 210;
  left: 50%;
  top: 50%;
  display: none;
  grid-template-rows: 38px minmax(0, 1fr);
  width: min(1060px, calc(100vw - 80px));
  height: min(720px, calc(100dvh - 108px));
  overflow: hidden;
  border: 1px solid rgba(16,16,16,.45);
  border-radius: 12px;
  background: var(--paper);
  box-shadow: 0 30px 80px rgba(0,0,0,.38), 0 4px 16px rgba(0,0,0,.24);
  transform: translate(-50%, -50%) scale(.94);
  opacity: 0;
  pointer-events: none;
}
.os-window.is-open { display: grid; opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.os-window:focus { outline: none; }
.os-window.is-maximized { inset: 34px 8px 90px !important; width: auto !important; height: auto !important; transform: none !important; }
.os-window--product { width: min(980px, calc(100vw - 100px)); height: min(680px, calc(100dvh - 170px)); }
.os-window--shop { height: min(720px, calc(100dvh - 170px)); }
.os-window--bag { width: min(900px, calc(100vw - 100px)); }
.os-window--notes { width: min(820px, calc(100vw - 110px)); height: min(610px, calc(100dvh - 130px)); }
.os-window--music { width: min(960px, calc(100vw - 90px)); }
.window-bar {
  position: relative;
  display: grid;
  grid-template-columns: 120px 1fr 120px;
  align-items: center;
  height: 38px;
  padding: 0 12px;
  color: var(--ink);
  background: rgba(215,213,210,.91);
  border-bottom: 1px solid rgba(16,16,16,.22);
  font-size: 11px;
  user-select: none;
  -webkit-backdrop-filter: blur(25px) saturate(1.2);
  backdrop-filter: blur(25px) saturate(1.2);
}
.window-bar[data-drag-handle] { cursor: grab; }
.window-bar[data-drag-handle]:active { cursor: grabbing; }
.window-bar > strong { overflow: hidden; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.window-bar > span, .window-bag-link { justify-self: end; }
.window-bar--dark { color: #eaeaea; background: #282828; border-color: #000; }
.window-bar--light { background: rgba(241,240,237,.88); }
.traffic-lights { display: flex; align-items: center; gap: 8px; }
.traffic { width: 12px; height: 12px; padding: 0; border: 1px solid rgba(0,0,0,.18); border-radius: 50%; cursor: pointer; }
.traffic--close { background: #ff5f57; }
.traffic--minimize { background: #febc2e; }
.traffic--zoom { background: #28c840; }
.window-content { min-height: 0; overflow: auto; }
.window-bag-link { padding: 4px 8px; border: 1px solid rgba(16,16,16,.35); border-radius: 5px; background: rgba(255,255,255,.45); font-size: 9px; font-weight: 800; cursor: pointer; }

/* Finder */
.finder-layout { display: grid; grid-template-columns: 190px minmax(0,1fr); background: #f5f4f1; }
.finder-sidebar, .photos-sidebar, .music-sidebar { padding: 18px 10px; background: rgba(222,222,220,.78); border-right: 1px solid rgba(0,0,0,.16); }
.finder-sidebar > span { display: block; margin: 14px 9px 5px; color: #777; font-size: 9px; font-weight: 700; }
.finder-sidebar button, .photos-sidebar button, .music-sidebar button { display: flex; align-items: center; gap: 7px; width: 100%; padding: 6px 9px; border: 0; border-radius: 5px; background: transparent; text-align: left; font-size: 11px; cursor: pointer; }
.finder-sidebar button.is-selected, .photos-sidebar button.is-selected, .music-sidebar button.is-selected { background: rgba(136,136,136,.25); }
.tag-dot { width: 8px; height: 8px; border-radius: 50%; background: #444; }
.tag-dot--red { background: var(--red); }
.finder-main { display: grid; grid-template-rows: 38px minmax(0,1fr) 24px; min-width: 0; }
.finder-toolbar { display: flex; align-items: center; gap: 5px; padding: 0 10px; border-bottom: 1px solid #d2d2d2; }
.finder-toolbar button { width: 25px; height: 24px; padding: 0; border: 1px solid #ccc; border-radius: 5px; background: #f8f8f8; cursor: pointer; }
.finder-toolbar span { margin-left: auto; font-size: 9px; }
.finder-files { display: grid; grid-template-columns: repeat(4, minmax(100px, 1fr)); align-content: start; gap: 24px 15px; padding: 24px; overflow: auto; }
.finder-file { min-width: 0; padding: 0; border: 0; background: transparent; cursor: pointer; font-size: 10px; text-align: center; }
.finder-file__thumb { display: block; width: 100%; aspect-ratio: 1; overflow: hidden; background: #ece9e3; border: 1px solid #d2cec8; }
.finder-file__thumb img { width: 100%; height: 100%; object-fit: contain; transition: transform .2s var(--ease); }
.finder-file:hover .finder-file__thumb img { transform: scale(1.05); }
.finder-file > span:last-child { display: block; overflow: hidden; margin-top: 5px; text-overflow: ellipsis; white-space: nowrap; }
.finder-file__document { display: grid !important; place-items: center; width: 70%; margin: 0 auto; aspect-ratio: .78; color: #fff; background: #eee; border: 1px solid #ccc; border-radius: 3px; background: linear-gradient(135deg, #fff 80%, #cacaca 81%); font-size: 18px; font-weight: 900; }
.finder-file__document::before { content: ""; grid-area: 1/1; width: 70%; height: 27%; background: #7aa6e8; }
.finder-file__document--audio::before { background: #d13cba; }
.finder-file__document { color: var(--ink); }
.finder-footer { display: flex; align-items: center; justify-content: space-between; padding: 0 10px; border-top: 1px solid #d5d5d5; color: #777; font-size: 9px; }

/* Photos */
.photos-layout { display: grid; grid-template-columns: 155px minmax(0,1fr); background: #f9f9f8; }
.photos-sidebar { padding-top: 25px; }
.photos-sidebar b { display: block; margin: 10px 9px 4px; font-size: 10px; }
.photo-grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 80px; gap: 5px; padding: 7px; overflow: auto; }
.photo-tile { position: relative; min-height: 0; overflow: hidden; padding: 0; border: 0; background: #ddd; cursor: zoom-in; }
.photo-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s var(--ease), filter .2s ease; }
.photo-tile:hover img { transform: scale(1.035); filter: contrast(1.04); }
.photo-tile span { position: absolute; left: 7px; right: 7px; bottom: 7px; padding: 5px 6px; color: #fff; background: rgba(16,16,16,.72); font-size: 8px; font-weight: 800; text-align: left; opacity: 0; transform: translateY(5px); transition: .15s ease; }
.photo-tile:hover span, .photo-tile:focus-visible span { opacity: 1; transform: none; }
.photo-tile--1 { grid-column: span 7; grid-row: span 4; }
.photo-tile--2 { grid-column: span 5; grid-row: span 5; }
.photo-tile--3 { grid-column: span 4; grid-row: span 4; }
.photo-tile--4 { grid-column: span 8; grid-row: span 5; }
.photo-tile--5 { grid-column: span 5; grid-row: span 4; }
.photo-tile--6 { grid-column: span 7; grid-row: span 4; }
.photo-lightbox { width: min(90vw, 980px); max-height: 90dvh; padding: 0; border: 1px solid #fff; border-radius: 10px; background: #111; box-shadow: 0 40px 100px rgba(0,0,0,.55); }
.photo-lightbox::backdrop { background: rgba(0,0,0,.8); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.photo-lightbox > button { position: absolute; z-index: 2; right: 8px; top: 7px; width: 34px; height: 34px; border: 0; border-radius: 50%; color: #fff; background: rgba(0,0,0,.7); font-size: 25px; cursor: pointer; }
.photo-lightbox figure { display: grid; grid-template-rows: minmax(0,1fr) auto; max-height: 88dvh; margin: 0; }
.photo-lightbox img { width: 100%; max-height: 82dvh; object-fit: contain; }
.photo-lightbox figcaption { padding: 10px 14px; color: #fff; font-size: 11px; font-weight: 700; }

/* Campaign editor */
.cut-layout { display: grid; grid-template-columns: 185px minmax(0,1fr) 150px; grid-template-rows: minmax(0,1fr) 145px; color: #ddd; background: #171717; }
.cut-browser { padding: 12px 9px; border-right: 1px solid #050505; background: #242424; font-size: 9px; }
.cut-browser > strong, .cut-browser > span { display: block; margin-bottom: 7px; }
.cut-browser > span { color: #8f8f8f; }
.cut-clips { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.cut-clips button { aspect-ratio: 1.2; overflow: hidden; padding: 0; border: 1px solid #444; background: #000; cursor: pointer; }
.cut-clips img { width: 100%; height: 100%; object-fit: cover; }
.cut-canvas { display: grid; grid-template-rows: minmax(0,1fr) 40px; min-width: 0; padding: 14px 24px 0; background: #101010; }
.cut-preview { position: relative; min-height: 0; overflow: hidden; background: #000; }
.cut-preview img { width: 100%; height: 100%; object-fit: contain; }
.cut-preview strong { position: absolute; left: 20px; bottom: 24px; max-width: 70%; padding: 5px 7px; color: #fff; background: var(--red); font-family: var(--display); font-size: clamp(15px, 2vw, 28px); letter-spacing: -.02em; }
.cut-preview > span { position: absolute; right: 8px; top: 8px; padding: 3px 5px; color: #ccc; background: rgba(0,0,0,.7); font: 9px monospace; }
.cut-controls { display: flex; align-items: center; justify-content: center; gap: 23px; }
.cut-controls button { border: 0; color: #eee; background: transparent; cursor: pointer; }
.cut-play { width: 30px; height: 30px; border-radius: 50% !important; color: #111 !important; background: #eee !important; }
.cut-inspector { padding: 12px; border-left: 1px solid #050505; background: #222; font-size: 9px; }
.cut-inspector dl { display: grid; grid-template-columns: auto 1fr; gap: 10px 8px; margin-top: 18px; }
.cut-inspector dt { color: #888; }
.cut-inspector dd { margin: 0; text-align: right; }
.cut-timeline { position: relative; grid-column: 1/-1; padding: 24px 10px 10px 196px; border-top: 1px solid #050505; background: #202020; overflow: hidden; }
.cut-timeline > div { display: flex; height: 92px; overflow: hidden; border: 2px solid #4d90e8; border-radius: 3px; }
.cut-timeline img { flex: 1; min-width: 0; object-fit: cover; }
.cut-playhead { position: absolute; z-index: 2; left: 196px; top: 13px; width: 2px; height: 120px; background: #ff3131; }
.cut-playhead::before { content: ""; position: absolute; left: -4px; top: 0; border: 5px solid transparent; border-top-color: #ff3131; }

/* Music */
.music-layout { display: grid; grid-template-columns: 174px minmax(0,1fr); background: #f6f6f5; }
.music-sidebar { padding: 22px 12px; background: #e9e7e3; }
.music-sidebar > b { display: block; margin: 0 8px 19px; font-size: 16px; }
.music-sidebar small { display: block; margin: 28px 9px; color: #888; font-size: 8px; }
.music-main { min-width: 0; padding: 25px 28px 40px; overflow: auto; }
.music-hero { display: grid; grid-template-columns: minmax(180px, 275px) minmax(0,1fr); align-items: end; gap: 26px; padding-bottom: 22px; border-bottom: 1px solid #ccc; }
.music-hero > img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--red); box-shadow: 0 12px 28px rgba(0,0,0,.24); }
.music-hero span { color: var(--red); font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.music-hero h2 { margin: 5px 0 8px; font-family: var(--display); font-size: clamp(48px, 7vw, 96px); line-height: .74; letter-spacing: -.07em; }
.music-hero p { margin: 0 0 20px; font-size: 12px; }
.music-play { padding: 9px 12px; border: 0; border-radius: 5px; color: #fff; background: var(--red); font-size: 10px; font-weight: 800; cursor: pointer; }
.music-now { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 13px 0; font-size: 9px; }
.music-now > span { color: #888; font-weight: 700; }
.music-bars { display: flex; align-items: end; gap: 2px; height: 15px; }
.music-bars b { display: block; width: 3px; height: 4px; background: var(--red); }
.music-bars.is-playing b { animation: bars .65s ease-in-out infinite alternate; }
.music-bars.is-playing b:nth-child(2) { animation-delay: -.2s; }.music-bars.is-playing b:nth-child(3) { animation-delay: -.4s; }.music-bars.is-playing b:nth-child(4) { animation-delay: -.1s; }
@keyframes bars { to { height: 15px; } }
.track-list { border-top: 1px solid #ccc; }
.track-row { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px; width: 100%; padding: 8px 6px; border: 0; border-bottom: 1px solid #ddd; background: transparent; text-align: left; cursor: pointer; }
.track-row:hover, .track-row.is-current { color: var(--red); background: #eceae5; }
.track-row__number { color: #888; font-size: 9px; }
.track-row b, .track-row small { display: block; }
.track-row b { font-size: 11px; }.track-row small { color: #888; font-size: 9px; }.track-row time { font-size: 9px; }

/* Notes */
.notes-layout { display: grid; grid-template-columns: 230px minmax(0,1fr); background: #fff; }
.notes-sidebar { padding: 7px; overflow: auto; background: #f2f0e9; border-right: 1px solid #d5d1c5; }
.notes-sidebar button { position: relative; width: 100%; padding: 12px 9px; border: 0; border-bottom: 1px solid #d8d4cb; background: transparent; text-align: left; cursor: pointer; }
.notes-sidebar button.is-selected { border-radius: 7px; background: #ffd965; }
.notes-sidebar b, .notes-sidebar span { display: block; padding-right: 40px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notes-sidebar b { font-size: 11px; }.notes-sidebar span { margin-top: 3px; font-size: 9px; }.notes-sidebar small { position: absolute; right: 8px; top: 12px; font-size: 8px; }
.note-paper { padding: clamp(28px, 5vw, 70px); overflow: auto; }
.note-paper > time { display: block; color: #999; font-size: 10px; text-align: center; }
.note-paper h2 { margin: 24px 0 20px; font-family: var(--display); font-size: clamp(48px, 8vw, 100px); line-height: .78; letter-spacing: -.06em; }
.note-paper p { max-width: 650px; font-size: 16px; line-height: 1.48; }
.note-highlight { padding: 9px 12px; background: #fff0a8; }
.text-link { padding: 8px 0; border: 0; border-bottom: 2px solid; background: transparent; font-size: 11px; font-weight: 900; cursor: pointer; }

/* Shop and product */
.shop-layout { background: var(--paper); }
.shop-intro { position: relative; min-height: 200px; padding: 22px 32px; color: #fff; background: var(--red); overflow: hidden; }
.shop-intro::after { content: "UFA"; position: absolute; right: -2vw; bottom: -5vw; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.45); font-family: var(--display); font-size: 28vw; font-weight: 900; line-height: .7; letter-spacing: -.1em; }
.shop-intro span { font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.shop-intro h2 { position: relative; z-index: 1; margin: 14px 0 0; font-family: var(--display); font-size: clamp(62px, 7vw, 96px); line-height: .73; letter-spacing: -.07em; }
.shop-intro p { position: absolute; z-index: 1; right: 35px; top: 35px; margin: 0; font-size: 10px; font-weight: 800; line-height: 1.5; text-align: right; }
.shop-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; background: var(--ink); border-top: 1px solid var(--ink); }
.shop-card { min-width: 0; background: var(--paper); }
.shop-card__image { position: relative; display: block; width: 100%; aspect-ratio: 1.12; overflow: hidden; padding: 0; border: 0; background: #edeae4; cursor: pointer; }
.shop-card__image img { width: 100%; height: 100%; object-fit: contain; transition: transform .38s var(--ease); }
.shop-card__image:hover img { transform: scale(1.045) rotate(-1deg); }
.shop-card__index { position: absolute; z-index: 2; left: 10px; top: 10px; padding: 4px 6px; color: #fff; background: var(--ink); font-size: 8px; font-weight: 800; }
.shop-card__open { position: absolute; z-index: 2; right: 10px; bottom: 10px; display: inline-flex; align-items: center; min-height: 44px; padding: 0 11px; color: #fff; background: var(--red); font-size: 10px; font-weight: 900; transform: translateY(7px); opacity: 0; transition: .18s ease; }
.shop-card__image:hover .shop-card__open, .shop-card__image:focus-visible .shop-card__open { opacity: 1; transform: none; }
.shop-card__meta { display: flex; justify-content: space-between; min-height: 68px; padding: 12px; border-top: 1px solid var(--ink); }
.shop-card__meta p { margin: 0 0 4px; font-size: 8px; font-weight: 900; letter-spacing: .08em; }
.shop-card__meta h3 { margin: 0; font-family: var(--display); font-size: 21px; line-height: .9; text-transform: uppercase; }
.shop-card__meta strong { font-size: 12px; }

.product-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(310px, .88fr); background: var(--paper); }
.product-gallery { display: grid; grid-template-rows: minmax(0,1fr) 44px; min-height: 0; border-right: 1px solid var(--ink); }
.product-gallery__main { position: relative; min-height: 0; overflow: hidden; background: #e9e6df; }
.product-gallery__main > span { position: absolute; z-index: 2; left: 10px; top: 10px; padding: 5px 7px; color: #fff; background: var(--ink); font-size: 9px; font-weight: 900; }
.product-gallery__main img { width: 100%; height: 100%; object-fit: contain; }
.wear-button { border: 0; border-top: 1px solid var(--ink); color: #fff; background: var(--red); font-size: 10px; font-weight: 900; cursor: pointer; }
.product-info { padding: clamp(24px, 3vw, 38px); overflow: auto; }
.product-info > span { font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.product-info h2 { margin: 19px 0 13px; font-family: var(--display); font-size: clamp(48px, 6vw, 83px); line-height: .75; letter-spacing: -.065em; }
.product-info > strong { display: block; margin-bottom: 18px; font-size: 17px; }
.product-info > p { font-size: 13px; line-height: 1.45; }
.product-info dl { display: grid; grid-template-columns: 78px 1fr; gap: 7px; margin: 23px 0; padding: 12px 0; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; font-size: 9px; }
.product-info dt { color: #777; }.product-info dd { margin: 0; }
.size-fieldset { margin: 0; padding: 0; border: 0; }
.size-fieldset legend { margin-bottom: 7px; font-size: 9px; font-weight: 900; }
.size-fieldset div { display: grid; grid-template-columns: repeat(4, 1fr); }
.size-fieldset button { height: 38px; border: 1px solid var(--ink); border-right: 0; background: transparent; cursor: pointer; }
.size-fieldset button:last-child { border-right: 1px solid var(--ink); }
.size-fieldset button:hover, .size-fieldset button.is-selected { color: #fff; background: var(--ink); }
.size-error { min-height: 16px; margin: 5px 0 !important; color: var(--red); font-size: 9px !important; font-weight: 900; }
.add-button { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 48px; padding: 0 15px; border: 0; color: #fff; background: var(--red); font-size: 10px; font-weight: 900; cursor: pointer; }
.add-button:hover { background: var(--ink); }
.product-info > small { display: block; margin-top: 8px; color: #777; font-size: 8px; }

/* Bag / checkout */
.bag-layout { position: relative; background: var(--paper); }
.cart-view, .checkout-view, .order-success { min-height: 100%; }
.bag-heading { display: grid; grid-template-columns: 1fr auto; padding: 28px 35px 20px; border-bottom: 1px solid var(--ink); }
.bag-heading span { grid-column: 1/-1; font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.bag-heading h2 { margin: 13px 0 0; font-family: var(--display); font-size: clamp(60px, 10vw, 110px); line-height: .7; letter-spacing: -.07em; }
.bag-heading button { align-self: end; margin-bottom: 2px; padding: 6px 0; border: 0; border-bottom: 1px solid; background: transparent; font-size: 9px; cursor: pointer; }
.cart-items { min-height: 180px; }
.cart-empty { display: grid; place-items: center; min-height: 250px; padding: 40px; text-align: center; }
.cart-empty h3 { margin: 0; font-family: var(--display); font-size: clamp(42px, 8vw, 82px); line-height: .78; letter-spacing: -.06em; }
.cart-empty p { font-size: 10px; }.cart-empty button { margin-top: 10px; }
.cart-line { display: grid; grid-template-columns: 118px minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 13px 35px; border-bottom: 1px solid var(--ink); }
.cart-line img { width: 118px; aspect-ratio: 1; object-fit: contain; background: #e8e5df; }
.cart-line h3 { margin: 5px 0; font-family: var(--display); font-size: 27px; text-transform: uppercase; }
.cart-line p, .cart-line small { margin: 0; font-size: 9px; }
.cart-line__actions { display: flex; gap: 7px; margin-top: 12px; }
.cart-line__actions button { min-width: 27px; height: 25px; padding: 0 6px; border: 1px solid #aaa; background: transparent; font-size: 9px; cursor: pointer; }
.cart-line__price { text-align: right; }.cart-line__price strong { display: block; font-size: 13px; }.cart-line__price button { margin-top: 14px; padding: 3px 0; border: 0; border-bottom: 1px solid; background: transparent; font-size: 8px; cursor: pointer; }
.bag-summary { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 18px; padding: 25px 35px 36px; }
.bag-summary > span { font-size: 8px; font-weight: 900; }.bag-summary > div { text-align: right; }.bag-summary small { display: block; font-size: 8px; }.bag-summary strong { font-family: var(--display); font-size: 40px; }
.checkout-button { grid-column: 1/-1; display: flex; align-items: center; justify-content: center; width: 100%; min-height: 49px; border: 0; color: #fff; background: var(--red); font-size: 10px; font-weight: 900; cursor: pointer; }
.checkout-button:hover { background: var(--ink); }
.checkout-view, .order-success { display: none; }
.bag-layout.is-checkout .cart-view { display: none; }.bag-layout.is-checkout .checkout-view { display: grid; grid-template-columns: minmax(230px,.72fr) minmax(300px,1.28fr); gap: 34px; padding: 35px; }
.checkout-back { position: absolute; left: 14px; top: 13px; border: 0; background: transparent; font-size: 9px; font-weight: 900; cursor: pointer; }
.checkout-heading { padding-top: 28px; }.checkout-heading span { font-size: 8px; font-weight: 900; letter-spacing: .1em; }.checkout-heading h2 { margin: 20px 0; font-family: var(--display); font-size: clamp(64px, 8vw, 102px); line-height: .72; letter-spacing: -.07em; }.checkout-heading p { padding: 7px 9px; color: #fff; background: var(--red); font-size: 9px; font-weight: 900; transform: rotate(-2deg); }
#checkoutForm { padding-top: 24px; }
#checkoutForm label { display: block; margin-bottom: 12px; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
#checkoutForm input { width: 100%; height: 39px; margin-top: 5px; padding: 0 10px; border: 1px solid #aaa; border-radius: 0; background: #fff; font-size: 12px; }
#checkoutForm input:focus { border-color: var(--ink); outline: 2px solid var(--ink); outline-offset: -2px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fake-card input { color: #777; background: #dedbd4 !important; }
.checkout-error { min-height: 16px; margin: 0 0 4px; color: var(--red); font-size: 9px; font-weight: 900; }
#checkoutForm > small { display: block; margin-top: 7px; color: #777; font-size: 7px; text-align: center; }
.bag-layout.is-success .cart-view, .bag-layout.is-success .checkout-view { display: none; }.bag-layout.is-success .order-success { display: grid; place-items: center; align-content: center; padding: 30px; text-align: center; }
.order-success img { width: 190px; }.order-success > span { margin-top: -15px; font-size: 9px; font-weight: 900; }.order-success h2 { margin: 18px 0; font-family: var(--display); font-size: clamp(70px, 12vw, 140px); line-height: .72; letter-spacing: -.07em; }.order-success p { max-width: 440px; font-size: 11px; line-height: 1.5; }.order-success button { margin-top: 15px; }

/* Toasts */
.toast-stack { position: fixed; z-index: 6000; right: 18px; top: 45px; display: grid; gap: 8px; width: min(300px, calc(100vw - 36px)); pointer-events: none; }
.toast { padding: 12px 14px; color: #fff; background: rgba(16,16,16,.92); border: 1px solid rgba(255,255,255,.28); box-shadow: 6px 7px 0 rgba(16,16,16,.25); font-size: 10px; font-weight: 800; letter-spacing: .03em; animation: toast-in .22s var(--ease) both; }
.toast--red { background: var(--red); }
@keyframes toast-in { from { opacity: 0; transform: translateX(18px); } }

@media (max-width: 960px) {
  .stage-copy { display: none; }
  .model-card { width: min(42vw, 390px); }
  .product-file--north-west { left: 3vw; }.product-file--north-east { right: 3vw; }.product-file--south-west { left: 6vw; }.product-file--south-east { right: 6vw; }
  .finder-files { grid-template-columns: repeat(3, minmax(90px, 1fr)); }
  .cut-layout { grid-template-columns: 150px minmax(0,1fr); }.cut-inspector { display: none; }.cut-timeline { padding-left: 160px; }.cut-playhead { left: 160px; }
  .shop-intro p { display: none; }
  .shop-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 700px) {
  body { overflow: hidden; }
  .boot__logo { width: min(94vw, 76vh); height: min(94vw, 76vh); }
  .boot__stamp { font-size: clamp(22px, 8vw, 46px); }
  .boot__stamp--one { top: 6vh; }.boot__stamp--two { top: 18vh; }.boot__stamp--three { bottom: 19vh; }.boot__stamp--four { bottom: 7vh; }
  .boot__description { bottom: calc(18px + env(safe-area-inset-bottom)); width: 100%; text-align: center; font-size: 8px; }
  .boot__files { left: 50%; bottom: calc(46px + env(safe-area-inset-bottom)); width: 100%; transform: translateX(-50%); text-align: center; font-size: 8px; }
  .menu-bar { height: 30px; padding: 0 9px; }.menu-bar__left { gap: 9px; }.menu-bar__left button:not(.menu-apple), .menu-bar__left span, .menu-bar__right span, .menu-bar__right button { display: none; }
  .desktop-ticker { top: 30px; height: 23px; line-height: 23px; }
  .desktop-stage { inset-top: 53px; }
  .model-card { top: 40%; width: min(74vw, 340px); height: calc(100% - 258px); min-height: 410px; max-height: 555px; box-shadow: 9px 10px 0 rgba(16,16,16,.86); }
  .desktop-hint { display: none; }
  .product-files { position: fixed; z-index: 20; left: 0; right: 0; bottom: 78px; top: auto; display: flex; gap: 8px; width: 100%; padding: 4px 12px 8px; overflow-x: auto; pointer-events: auto; scroll-snap-type: x mandatory; }
  .product-file { position: relative; inset: auto !important; flex: 0 0 105px; width: 105px; filter: drop-shadow(4px 5px 0 rgba(16,16,16,.3)); transform: none; scroll-snap-align: center; }
  .product-file__visual { aspect-ratio: 1; }.product-file__label { font-size: 8px; }
  .dock-shell { bottom: max(6px, env(safe-area-inset-bottom)); width: calc(100vw - 12px); }
  .dock { justify-content: space-around; width: 100%; height: 66px; padding: 7px 5px 6px; border-radius: 18px; }
  .dock-item { width: 46px; height: 50px; }.dock-item > img, .bag-icon { width: 45px; height: 45px; }.dock-separator { height: 39px; margin: 0 3px; }
  .dock-tooltip { display: none; }
  .window-layer { z-index: 1050; inset: 30px 0 73px; }
  .os-window, .os-window--product, .os-window--bag, .os-window--notes, .os-window--music {
    position: absolute;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    max-height: none;
    border: 0;
    border-radius: 0;
    transform: translateY(10px) scale(.99);
  }
  .os-window { grid-template-rows: 44px minmax(0, 1fr); }
  .os-window.is-open { transform: none; }
  .window-bar { grid-template-columns: 74px 1fr 74px; height: 44px; padding: 0 8px; }.window-bar > span { font-size: 8px; }
  .traffic-lights { gap: 0; }
  .traffic { position: relative; width: 44px; height: 44px; border: 0; background: transparent !important; }
  .traffic::after { content: ""; position: absolute; left: 0; top: 50%; width: 13px; height: 13px; border: 1px solid rgba(0,0,0,.18); border-radius: 50%; transform: translateY(-50%); }
  .traffic--close::after { background: #ff5f57; }.traffic--minimize::after { background: #febc2e; }.traffic--zoom::after { background: #28c840; }
  .traffic--minimize, .traffic--zoom { display: none; }
  .window-bag-link { min-height: 34px; }
  .finder-layout { grid-template-columns: 1fr; }.finder-sidebar, .photos-sidebar, .music-sidebar { display: none; }.finder-files { grid-template-columns: repeat(3, 1fr); gap: 20px 10px; padding: 18px 12px; }
  .photos-layout { grid-template-columns: 1fr; }.photo-grid { grid-auto-rows: 62px; }.photo-tile span { opacity: 1; transform: none; }
  .cut-layout { grid-template-columns: 1fr; grid-template-rows: minmax(0,1fr) 122px; }.cut-browser, .cut-inspector { display: none; }.cut-canvas { padding: 10px 10px 0; }.cut-timeline { padding: 19px 5px 7px; }.cut-playhead { left: 5px; top: 9px; height: 105px; }
  .music-layout { grid-template-columns: 1fr; }.music-main { padding: 16px 15px 35px; }.music-hero { grid-template-columns: 38vw 1fr; gap: 14px; align-items: center; }.music-hero h2 { font-size: clamp(35px, 11vw, 62px); }.music-hero p { display: none; }.music-play { font-size: 8px; }
  .notes-layout { grid-template-columns: 1fr; }.notes-sidebar { display: none; }.note-paper { padding: 28px 22px 50px; }
  .shop-layout { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  .shop-intro { min-height: 205px; padding: 24px 18px; }.shop-intro::after { display: none; }.shop-intro h2 { font-size: clamp(56px, 19vw, 92px); }.shop-grid { grid-template-columns: 1fr; }.shop-card__image { aspect-ratio: 1.2; }.shop-card__open { opacity: 1; transform: none; }
  .product-layout { grid-template-columns: 1fr; grid-template-rows: 48% 52%; }.product-gallery { grid-template-rows: minmax(0,1fr) 38px; border-right: 0; border-bottom: 1px solid var(--ink); }.product-info { padding: 19px 18px 35px; }.product-info h2 { margin: 9px 0; font-size: 49px; }.product-info dl { margin: 13px 0; }.product-info > p { margin: 7px 0; }.add-button { min-height: 45px; }
  .bag-heading { padding: 19px 18px 14px; }.bag-heading h2 { font-size: 60px; }.cart-line { grid-template-columns: 76px minmax(0,1fr); gap: 11px; padding: 10px 18px; }.cart-line img { width: 76px; }.cart-line__price { grid-column: 2; display: flex; justify-content: space-between; text-align: left; }.cart-line__price button { margin-top: 0; }.bag-summary { padding: 18px 18px 30px; }
  .bag-layout.is-checkout .checkout-view { display: block; padding: 32px 18px 45px; overflow: auto; }.checkout-heading { padding-top: 5px; }.checkout-heading h2 { font-size: 64px; }.checkout-heading p { display: inline-block; }.field-row { grid-template-columns: 1fr; gap: 0; }
  #checkoutForm input { height: 46px; font-size: 16px; }
  .order-success img { width: 150px; }.order-success h2 { font-size: 72px; }
  .toast-stack { top: 39px; right: 8px; width: calc(100vw - 16px); }
}

@media (max-width: 380px) {
  .dock-item { width: 40px; }.dock-item > img, .bag-icon { width: 39px; height: 39px; }.dock-separator { margin: 0 1px; }
  .model-card { width: 78vw; }
  .product-files { padding-inline: 7px; }
  .product-file { flex-basis: 98px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .desktop-ticker span { animation: none; }
}
