/* Colors from tin/Models/TinTheme.swift (the current app theme).
   Type: OpenRunde for UI; Super Vanilla only for the tin wordmark.
   Every decorative color comes from the app's existing artwork. */
@font-face {
  font-family:"Open Runde";
  src:url("fonts/OpenRunde-Regular.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Open Runde";
  src:url("fonts/OpenRunde-Medium.woff") format("woff");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Open Runde";
  src:url("fonts/OpenRunde-Semibold.woff") format("woff");
  font-weight:600;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Open Runde";
  src:url("fonts/OpenRunde-Bold.woff") format("woff");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:"Super Vanilla";
  src:url("fonts/SuperVanilla.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

:root {
  color-scheme:dark;
  --bg:rgb(1.6% 1.6% 2%);
  --surface:rgb(9% 9% 9%);
  --surface-muted:rgb(15% 15% 15%);
  --ink:#fff;
  --ink-2:rgb(62% 62% 62%);
  --hairline:rgb(255 255 255 / .12);
  --font:"Open Runde",ui-rounded,system-ui,sans-serif;
  --page:1080px;
  --gutter:28px;
  --r-card:22px;
  --r-sheet:30px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:40px;
  -webkit-text-size-adjust:100%;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:400 16px/1.65 var(--font);
  -webkit-font-smoothing:antialiased;
}

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

a {
  color:inherit;
  text-underline-offset:4px;
}

button {
  font:inherit;
}

button,a,summary {
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:6px;
}

.wrap {
  max-width:var(--page);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  text-wrap:balance;
}

h1,h2 {
  font-weight:600;
  letter-spacing:-.05em;
}

h2 {
  font-size:clamp(36px,4.6vw,52px);
  line-height:1.12;
}

h3 {
  font-size:19px;
  line-height:1.3;
  letter-spacing:-.025em;
}

.sr-only,.skip-link:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}

.skip-link:focus {
  position:absolute;
  z-index:10;
  top:10px;
  left:10px;
  background:var(--ink);
  color:var(--bg);
  padding:12px 20px;
  border-radius:999px;
}

.bar {
  min-height:104px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.brand {
  display:inline-flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
}

.brand img {
  width:36px;
  height:36px;
  border-radius:10px;
}

.wordmark {
  font-family:"Super Vanilla",var(--font);
  font-size:39px;
  line-height:1;
  font-weight:400;
  letter-spacing:-.03em;
}

/* The name is one lockup: "tin" in Super Vanilla, "widget" in the UI face. */
.wordmark-tail {
  font-family:var(--font);
  font-size:.46em;
  font-weight:600;
  letter-spacing:-.01em;
  opacity:.72;
  margin-left:.06em;
}

.bar nav {
  display:flex;
  gap:32px;
  font-size:14px;
  color:var(--ink-2);
}

.bar nav a {
  text-decoration:none;
  padding-block:12px;
}

.bar nav a:hover,.footer-links a:hover {
  color:var(--ink);
}

.pill {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:48px;
  padding:12px 23px;
  border-radius:999px;
  background:var(--surface-muted);
  font-weight:600;
  font-size:14px;
  text-decoration:none;
  transition:background .2s,transform .2s;
}

.pill:hover {
  background:rgb(255 255 255 / .22);
  transform:translateY(-2px);
}

.pill--solid {
  background:var(--ink);
  color:#000;
  min-height:52px;
  padding-inline:26px;
}

.pill--solid:hover {
  background:rgb(255 255 255 / .9);
}

.pill span {
  font-size:19px;
  line-height:1;
}

.nav-cta {
  font-size:12px;
  min-height:38px;
  padding:8px 18px;
  gap:15px;
}

.hero {
  text-align:center;
  padding-top:40px;
}

.eyebrow {
  color:var(--ink-2);
  font-size:10px;
  letter-spacing:.17em;
  font-weight:600;
  line-height:1.7;
}

.hero h1 {
  font-size:clamp(58px,6.6vw,80px);
  line-height:1.04;
  margin:20px auto 21px;
  font-weight:700;
  letter-spacing:-.055em;
}

.lede {
  color:var(--ink-2);
  font-size:18px;
  line-height:1.65;
}

.hero-actions {
  margin-top:29px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
}

.availability {
  font-size:13px;
  color:var(--ink-2);
}

.note {
  font-size:11px;
  color:var(--ink-2);
  margin-top:16px;
}

.showcase {
  padding-top:36px;
  max-width:1180px;
}

.tin-gallery {
  display:grid;
  grid-template-columns:1fr 1.3fr 1fr;
  gap:28px;
  align-items:center;
  padding:26px 10px 0;
}

.tin-card {
  min-width:0;
  text-align:center;
}

.tin-card--left {
  transform:rotate(-9deg) translateY(27px);
}

.tin-card--right {
  transform:rotate(9deg) translateY(27px);
}

.artboard {
  aspect-ratio:1;
  position:relative;
  border-radius:var(--r-sheet);
  background-position:center;
  background-size:cover;
  box-shadow:0 20px 50px rgb(0 0 0 / .5);
  isolation:isolate;
}

.artboard--denim {
  background-image:url("img/cloth-denim.png");
}

.artboard--pink {
  background-image:url("img/cloth-pink.jpg");
}

.artboard--blue {
  background-image:url("img/cloth-blue.png");
}

.tin-art {
  position:absolute;
  width:79%;
  aspect-ratio:467/454;
  left:10.5%;
  top:11.5%;
  filter:drop-shadow(0 10px 10px rgb(0 0 0 / .4));
}

.metal {
  width:100%;
  height:auto;
}

.sticker {
  position:absolute;
  width:31%;
  height:auto;
  filter:drop-shadow(0 3px 3px rgb(0 0 0 / .25));
}

.sticker-1 {
  left:11%;
  top:12%;
  transform:rotate(-12deg);
}

.sticker-2 {
  left:35%;
  top:16%;
  transform:rotate(8deg);
}

.sticker-3 {
  left:59%;
  top:11%;
  transform:rotate(12deg);
}

.sticker-4 {
  left:22%;
  top:56%;
  transform:rotate(-9deg);
}

.sticker-5 {
  left:48%;
  top:59%;
  transform:rotate(10deg);
}

.tin-card figcaption {
  margin-top:19px;
  color:var(--ink-2);
  font-size:11px;
  letter-spacing:.015em;
}

.backdrop-picker {
  display:flex;
  gap:17px;
  align-items:center;
  justify-content:center;
  margin-top:57px;
  color:var(--ink-2);
  font-size:11px;
}

.swatches {
  display:flex;
  gap:5px;
}

.swatch {
  width:40px;
  height:40px;
  padding:0;
  background:none;
  border:0;
  border-radius:50%;
  position:relative;
  cursor:pointer;
}

.swatch:before {
  content:"";
  position:absolute;
  inset:6px;
  background-position:center;
  background-size:cover;
  border-radius:50%;
  border:1px solid var(--hairline);
}

.swatch--pink:before {
  background-image:url("img/cloth-pink.jpg");
}

.swatch--blue:before {
  background-image:url("img/cloth-blue.png");
}

.swatch--denim:before {
  background-image:url("img/cloth-denim.png");
}

.swatch[aria-pressed="true"]:after {
  content:"";
  position:absolute;
  inset:1px;
  border:1px solid var(--ink);
  border-radius:50%;
}

.intro {
  padding-top:140px;
  text-align:center;
}

.intro h2 {
  margin-top:18px;
}

.section-lede {
  font-size:16px;
  line-height:1.7;
  color:var(--ink-2);
  margin-top:21px;
}

.feature-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-top:49px;
  text-align:left;
}

.feature-card {
  border-radius:var(--r-card);
  background:var(--surface);
  overflow:hidden;
}

.card-copy {
  padding:12px 32px 33px;
}

.card-copy p {
  margin-top:12px;
  color:var(--ink-2);
  font-size:14px;
  line-height:1.7;
  max-width:40ch;
}

.sticker-scatter {
  height:258px;
  position:relative;
  max-width:390px;
  margin:auto;
}

.sticker-scatter img {
  position:absolute;
  object-fit:contain;
  filter:drop-shadow(0 8px 7px rgb(0 0 0 / .28));
  width:83px;
  height:83px;
}

.sticker-scatter img:nth-child(1) {
  left:14%;
  top:35px;
  transform:rotate(-16deg);
}

.sticker-scatter img:nth-child(2) {
  left:44%;
  top:26px;
  transform:rotate(10deg);
}

.sticker-scatter img:nth-child(3) {
  left:71%;
  top:58px;
  transform:rotate(18deg);
}

.sticker-scatter img:nth-child(4) {
  left:12%;
  top:142px;
  transform:rotate(-11deg);
}

.sticker-scatter img:nth-child(5) {
  left:39%;
  top:139px;
  transform:rotate(12deg);
}

.sticker-scatter img:nth-child(6) {
  left:67%;
  top:154px;
  transform:rotate(-12deg);
}

.fabric-stack {
  height:258px;
  position:relative;
  max-width:390px;
  margin:auto;
}

.fabric-stack div {
  position:absolute;
  left:50%;
  top:46px;
  width:142px;
  height:169px;
  border-radius:16px;
  background-size:cover;
  background-position:center;
  box-shadow:0 8px 24px rgb(0 0 0 / .3);
}

.fabric-stack div:nth-child(1) {
  background-image:url("img/cloth-denim.png");
  transform:translateX(-105%) rotate(-19deg);
}

.fabric-stack div:nth-child(2) {
  background-image:url("img/cloth-blue.png");
  transform:translateX(5%) rotate(18deg);
}

.fabric-stack div:nth-child(3) {
  background-image:url("img/cloth-pink.jpg");
  transform:translateX(-50%) rotate(-3deg);
}

.small-features {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:42px;
  text-align:left;
  margin-top:55px;
}

.small-features img {
  margin-bottom:23px;
  opacity:.9;
  filter:invert(1);
}

.small-features h3 {
  font-size:17px;
}

.small-features p {
  font-size:13px;
  color:var(--ink-2);
  margin-top:12px;
  line-height:1.75;
}

.widget-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:center;
  padding-top:150px;
}

.widget-visual {
  position:relative;
  border-radius:var(--r-sheet);
  overflow:hidden;
  aspect-ratio:1.08;
  background:var(--surface);
}

.widget-visual img {
  position:absolute;
  width:100%;
  max-width:none;
  height:auto;
  top:-38.5%;
}

.widget-copy h2 {
  margin-top:20px;
}

.widget-copy .section-lede {
  max-width:34ch;
}

.steps {
  list-style:none;
  padding:0;
  margin:29px 0 0;
  display:grid;
  gap:22px;
}

.steps li {
  display:flex;
  gap:17px;
  align-items:flex-start;
}

.steps li>span {
  border:1px solid var(--hairline);
  border-radius:50%;
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  flex:none;
  font-size:11px;
  color:var(--ink-2);
}

.steps h3 {
  font-size:14px;
  line-height:1.5;
}

.steps p {
  font-size:12px;
  color:var(--ink-2);
  margin-top:3px;
  max-width:35ch;
}

.faq {
  padding-top:150px;
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:50px;
}

.faq h2 {
  margin-top:18px;
}

.faq-list {
  border-top:1px solid var(--hairline);
}

details {
  border-bottom:1px solid var(--hairline);
}

summary {
  padding:24px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  cursor:pointer;
  font-size:14px;
  font-weight:500;
  list-style:none;
}

summary::-webkit-details-marker {
  display:none;
}

summary span {
  font-size:20px;
  color:var(--ink-2);
  font-weight:400;
  transition:transform .2s;
}

details[open] summary span {
  transform:rotate(45deg);
}

details p {
  color:var(--ink-2);
  font-size:13px;
  line-height:1.8;
  margin:0 26px 24px 0;
}

.closing {
  padding-top:145px;
  padding-bottom:100px;
  text-align:center;
}

.closing-icon {
  border-radius:22px;
  margin:0 auto 28px;
  width:80px;
  height:80px;
}

.closing h2 {
  font-size:clamp(36px,4.5vw,50px);
}

.closing>p:not(.note) {
  color:var(--ink-2);
  margin-top:20px;
  font-size:15px;
}

.coming-badge {
  display:inline-flex;
  background:var(--surface-muted);
  border:1px solid var(--hairline);
  border-radius:999px;
  padding:14px 25px;
  margin-top:29px;
  font-size:14px;
  font-weight:600;
}

.support {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding-top:32px;
  padding-bottom:32px;
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}

.support h2 {
  font-size:20px;
  letter-spacing:-.03em;
}

.support p {
  color:var(--ink-2);
  font-size:12px;
  margin-top:8px;
}

footer {
  padding-top:40px;
  padding-bottom:28px;
  color:var(--ink-2);
  font-size:12px;
}

.footer-row {
  display:flex;
  align-items:center;
  gap:24px;
}

.footer-row .brand {
  color:var(--ink);
}

.footer-row .wordmark {
  font-size:32px;
}

.footer-links {
  display:flex;
  gap:26px;
  margin-left:auto;
  flex-wrap:wrap;
}

.footer-links a {
  text-decoration:none;
}

.copyright {
  font-size:10px;
  margin-top:25px;
  color:var(--ink-2);
}

/* Shared privacy and not-found pages. */
.wrap>header {
  padding-block:26px;
}

.prose {
  max-width:720px;
  margin:auto;
  padding-block:55px;
}

.prose h1 {
  font-size:44px;
  line-height:1.15;
  margin-bottom:12px;
}

.prose h2 {
  font-size:24px;
  margin:52px 0 6px;
  letter-spacing:-.025em;
  padding-top:22px;
  border-top:1px solid var(--hairline);
}

/* A question inside a section. Tight to its own answer, loose from the one above,
   so the page reads as pairs rather than an even wall of text. */
.prose h3 {
  font-size:16.5px;
  color:var(--ink);
  letter-spacing:-.01em;
  margin:30px 0 7px;
}

.prose p,.prose li {
  font-size:15.5px;
  line-height:1.62;
  color:var(--ink-2);
  margin-bottom:15px;
  max-width:62ch;
}

/* The opening paragraph carries the page, so it is a size up from the body. */
.prose > p:first-of-type {
  font-size:17px;
  color:var(--ink);
  margin-bottom:26px;
}

.prose a {
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  text-decoration-color:var(--hairline-strong,rgba(255,255,255,.35));
}

.prose a:hover {
  text-decoration-color:currentColor;
}

.prose h2 + p,.prose h3 + p {
  margin-top:0;
}

.prose strong {
  color:var(--ink);
  font-weight:500;
}

.prose .updated {
  font-size:12.5px;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ink-2);
  margin-bottom:34px;
}

.prose ul li {
  margin-bottom:9px;
}

.prose ul {
  padding-left:21px;
}

.table-wrap {
  overflow-x:auto;
  margin-block:20px;
}

table {
  border-collapse:collapse;
  width:100%;
  min-width:520px;
  font-size:13px;
}

th,td {
  padding:14px 12px;
  text-align:left;
  border-bottom:1px solid var(--hairline);
  vertical-align:top;
}

th {
  background:var(--surface);
}

td {
  color:var(--ink-2);
}

/* The one thing a reader came for: how to reach a person, or what the page boils
   down to. Lifted out of the text so it survives skimming. */
.contact-card {
  background:var(--surface);
  border:1px solid var(--hairline);
  border-radius:16px;
  padding:20px 22px;
  margin-block:26px 40px;
}

.contact-card__label {
  font-size:11.5px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-2);
  margin-bottom:6px;
}

.contact-card__value {
  font-size:19px;
  color:var(--ink);
  margin-bottom:10px;
}

.contact-card__value a {
  color:var(--ink);
  text-decoration:none;
}

.contact-card__value a:hover {
  text-decoration:underline;
  text-underline-offset:3px;
}

.contact-card__note {
  font-size:14px;
  margin-bottom:0;
}

.prose .contact-card p {
  max-width:58ch;
}

/* A line still waiting on a real value. Obvious on screen so it cannot ship unnoticed,
   and trivially greppable: search the site for [[ before deploying. */
.legal-todo {
  border-left:2px solid #d9a441;
  padding-left:12px;
}

.cta {
  margin-top:24px;
}

@media(min-width:1500px) {
  .hero {
    padding-top:98px;
  }
  .showcase {
    padding-top:74px;
  }
}

@media(max-width:800px) {
  :root {
    --gutter:24px;
  }
  .bar nav {
    gap:20px;
  }
  .hero {
    padding-top:55px;
  }
  .tin-gallery {
    gap:18px;
    padding-inline:0;
  }
  .artboard {
    border-radius:22px;
  }
  .showcase {
    padding-top:44px;
  }
  .intro {
    padding-top:110px;
  }
  .small-features {
    gap:24px;
  }
  .card-copy {
    padding:12px 24px 28px;
  }
  .widget-section {
    gap:36px;
    padding-top:110px;
  }
  .faq {
    gap:30px;
    padding-top:110px;
    grid-template-columns:1fr 1.4fr;
  }
  .faq h2 {
    font-size:35px;
  }
  .eyebrow {
    font-size:9px;
  }
  .sticker-scatter img {
    width:70px;
    height:70px;
  }
  .sticker-scatter img:nth-child(3) {
    left:69%;
  }
  .fabric-stack div {
    width:115px;
    height:156px;
  }
  .footer-row {
    gap:16px;
  }
  .footer-links {
    gap:18px;
  }
}

@media(max-width:600px) {
  :root {
    --gutter:22px;
  }
  .bar {
    min-height:86px;
    gap:12px;
  }
  .bar nav {
    margin-left:auto;
    gap:18px;
    font-size:12px;
  }
  .bar nav a:first-child {
    display:none;
  }
  .nav-cta {
    display:none;
  }
  .brand img {
    width:30px;
    height:30px;
    border-radius:8px;
  }
  .wordmark {
    font-size:35px;
  }
  .hero {
    padding-top:42px;
  }
  .hero h1 {
    font-size:clamp(48px,15.4vw,60px);
    margin:21px auto;
  }
  .lede {
    font-size:15px;
  }
  .hero-actions {
    flex-direction:column;
    gap:15px;
    margin-top:25px;
  }
  .hero .note {
    font-size:10px;
    margin-top:10px;
  }
  .showcase {
    padding-top:38px;
    overflow:hidden;
    padding-bottom:6px;
  }
  .tin-gallery {
    width:174%;
    margin-left:-37%;
    gap:18px;
    padding-top:15px;
    grid-template-columns:1fr 1.55fr 1fr;
  }
  .tin-card--left {
    transform:rotate(-12deg) translateY(13px);
  }
  .tin-card--right {
    transform:rotate(12deg) translateY(13px);
  }
  .tin-card figcaption {
    font-size:9px;
    margin-top:15px;
  }
  .tin-card--left figcaption,.tin-card--right figcaption {
    visibility:hidden;
  }
  .backdrop-picker {
    margin-top:32px;
    font-size:10px;
  }
  .intro {
    padding-top:85px;
  }
  .intro h2 {
    margin-top:16px;
  }
  .section-lede {
    font-size:14px;
    margin-top:18px;
  }
  .feature-grid {
    grid-template-columns:1fr;
    gap:16px;
    margin-top:33px;
  }
  .sticker-scatter,.fabric-stack {
    width:100%;
    height:250px;
  }
  .sticker-scatter img {
    width:82px;
    height:82px;
  }
  .fabric-stack div {
    width:137px;
    height:164px;
  }
  .card-copy {
    padding:12px 28px 30px;
  }
  .card-copy p {
    font-size:13px;
  }
  .small-features {
    grid-template-columns:1fr;
    gap:30px;
    margin-top:40px;
  }
  .small-features article {
    padding-left:49px;
    position:relative;
  }
  .small-features img {
    position:absolute;
    left:0;
    top:2px;
  }
  .small-features p {
    margin-top:9px;
    max-width:43ch;
  }
  .widget-section {
    grid-template-columns:1fr;
    gap:35px;
    padding-top:85px;
  }
  .widget-visual {
    max-width:410px;
    width:100%;
    margin:auto;
    order:2;
  }
  .widget-copy h2 {
    font-size:42px;
  }
  .widget-copy .section-lede {
    max-width:38ch;
  }
  .steps {
    gap:20px;
    margin-top:25px;
  }
  .steps p {
    max-width:none;
  }
  .faq {
    grid-template-columns:1fr;
    gap:28px;
    padding-top:85px;
  }
  .faq h2 {
    font-size:38px;
  }
  summary {
    font-size:13px;
    padding-block:22px;
  }
  .closing {
    padding-top:85px;
    padding-bottom:65px;
  }
  .closing h2 {
    font-size:38px;
  }
  .closing-icon {
    width:68px;
    height:68px;
    border-radius:19px;
  }
  .support {
    align-items:flex-start;
    flex-direction:column;
    gap:19px;
  }
  .support h2 {
    font-size:20px;
  }
  .support .pill {
    min-height:44px;
    font-size:12px;
  }
  .footer-row {
    flex-wrap:wrap;
    gap:16px;
  }
  .footer-row p {
    font-size:11px;
  }
  .footer-links {
    width:100%;
    margin:3px 0 0;
    gap:24px;
  }
  .prose {
    padding-top:35px;
  }
  .prose h1 {
    font-size:36px;
  }
  .prose h2 {
    font-size:22px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
  }
}

