.payment-actions, .downloads {
  display: grid;
  gap: 12px;
  margin: 24px 0;
}
.payment-actions .primary {
  justify-content: center;
}
.downloads:empty, .payment-actions:empty {
  display: none;
}
:root {
  --paper:#f7f5ef;
  --ink:#26332f;
  --muted:#72766d;
  --line:#dedfd4;
  --accent:#c65d3a;
  --green:#344b40;
  --wash:#eeeee5;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--paper);
}
* {
  box-sizing:border-box;
}
[hidden] {
  display:none!important;
}
body {
  margin:0;
}
button,input {
  font:inherit;
}
button,a,input {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button:disabled {
  cursor:default;
}
button:focus-visible,a:focus-visible,input:focus-visible {
  outline:3px solid #c65d3a;
  outline-offset:4px;
}
a {
  color:inherit;
  text-decoration:none;
}
.topbar {
  height:97px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  gap:24px;
  padding:0 5.3vw;
}
.wordmark {
  font:44px Georgia,serif;
  letter-spacing:-3px;
}
.wordmark span {
  color:var(--accent);
  font-size:13px;
  padding-left:4px;
  vertical-align:baseline;
}
.environment {
  font-size:10px;
  letter-spacing:1.6px;
  border:1px solid #bfc7b6;
  border-radius:3px;
  padding:7px 10px;
  color:#617057;
}
.text-button {
  border:0;
  background:none;
  padding:12px 0;
  font-size:12px;
  color:var(--ink);
}
#logout {
  margin-left:auto;
}
main {
  max-width:1440px;
  margin:auto;
  padding:0 5.3vw;
}
h1,h2 {
  font-family:Georgia,serif;
  font-weight:400;
}
h1 {
  font-size:64px;
  line-height:1.08;
  letter-spacing:-2.5px;
  margin:20px 0;
}
h2 {
  font-size:32px;
  letter-spacing:-1px;
  margin:14px 0;
}
h3 {
  font-weight:500;
}
.eyebrow {
  font-size:10px;
  font-weight:600;
  letter-spacing:2px;
  line-height:1.7;
}
.muted,.intro {
  color:var(--muted);
  font-size:14px;
  line-height:1.7;
}
.intro {
  font-size:16px;
}
.login-layout {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:10%;
  padding:65px 0 75px;
  align-items:center;
}
.welcome h1 {
  font-size:86px;
  margin:15px 0 24px;
}
.login-card {
  max-width:440px;
  background:#fffdf8;
  border:1px solid var(--line);
  padding:40px 38px;
  box-shadow:0 18px 50px #343c2910;
}
.login-card>p:not(.eyebrow) {
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
.small-mark {
  font:38px Georgia,serif;
  color:var(--accent);
}
label {
  font-size:12px;
  display:block;
  margin:25px 0 10px;
}
input {
  width:100%;
  border:1px solid #c9cdbf;
  background:var(--paper);
  padding:15px;
  color:var(--ink);
  border-radius:0;
}
.primary,.secondary {
  padding:17px 20px;
  width:100%;
  border:1px solid var(--green);
  background:var(--green);
  color:#fff;
  font-size:13px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  transition:background .15s;
}
.primary:hover {
  background:#203e2f;
}
.primary:disabled {
  opacity:.45;
}
.primary span {
  font-size:19px;
}
.secondary {
  background:transparent;
  color:var(--ink);
  justify-content:center;
  width:auto;
}
.secondary:hover {
  background:var(--wash);
}
.fineprint {
  font-size:11px!important;
  color:var(--muted);
  line-height:1.7;
  margin:20px 0 0;
}
.error {
  font-size:13px;
  color:#a24329;
  line-height:1.4;
  min-height:8px;
}
.login-art {
  height:190px;
  position:relative;
  overflow:hidden;
  background:#b0b7a0;
  margin-top:32px;
  max-width:435px;
}
.arch {
  position:absolute;
  top:25px;
  left:50px;
  width:110px;
  height:200px;
  border-radius:65px 65px 0 0;
  background:#dfcaa5;
}
.sun {
  position:absolute;
  width:60px;
  height:60px;
  border-radius:50%;
  background:#e8ba88;
  right:75px;
  top:23px;
}
.hill {
  position:absolute;
  width:400px;
  height:240px;
  border-radius:50%;
  background:#6b8170;
  top:110px;
  left:100px;
  transform:rotate(-20deg);
}
.hill.two {
  background:#395348;
  left:-120px;
  top:140px;
}
.login-art>span {
  position:absolute;
  bottom:14px;
  right:17px;
  color:#fff;
  font-size:8px;
  letter-spacing:2px;
}
.collection-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:49px 0 42px;
}
.collection-header h1 {
  font-size:49px;
  margin:14px 0 14px;
}
.collection-header .muted {
  margin:0;
}
.collection-stamp {
  text-align:center;
  font-size:8px;
  line-height:1.5;
  letter-spacing:1.7px;
  transform:rotate(10deg);
  margin:0 18px 0 30px;
  color:#728168;
}
.collection-stamp b {
  display:block;
  font-size:49px;
  line-height:1.2;
  font-weight:400;
}
.gallery-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:48px;
  align-items:start;
}
.gallery-toolbar {
  border-top:1px solid var(--line);
  padding:18px 0 23px;
  display:flex;
  justify-content:space-between;
  font-size:12px;
  gap:15px;
}
.gallery-toolbar b {
  font-size:9px;
  background:#e8e8de;
  margin-left:9px;
  padding:5px 7px;
  border-radius:10px;
  font-weight:400;
}
#selection-label {
  font-size:11px;
  color:var(--muted);
}
.image-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:25px 20px;
}
.image-card {
  border:0;
  background:transparent;
  text-align:left;
  padding:0;
  color:var(--ink);
}
.image-frame {
  position:relative;
  overflow:hidden;
  background:#d8d6c8;
}
.image-frame img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  object-fit:cover;
  transition:transform .25s;
}
.image-card:hover img {
  transform:scale(1.025);
}
.image-check {
  position:absolute;
  right:12px;
  top:12px;
  border:1px solid #ffffffc4;
  background:#ffffff35;
  width:24px;
  height:24px;
  border-radius:50%;
  font-size:12px;
  color:transparent;
  display:grid;
  place-items:center;
}
.image-card[aria-pressed=true] .image-check {
  background:var(--green);
  color:white;
  border-color:white;
}
.image-card[aria-pressed=true] .image-frame {
  outline:3px solid var(--green);
  outline-offset:3px;
}
.image-caption {
  display:flex;
  justify-content:space-between;
  gap:5px;
  font-size:11px;
  margin:13px 0 2px;
}
.image-caption span:last-child {
  font-size:9px;
  color:#969b8f;
}
.gallery-note {
  font-size:10px;
  color:#8b9085;
  padding:22px 0 35px;
}
.basket {
  position:sticky;
  top:25px;
  border:1px solid #d6d9cc;
  background:#efefe6;
  padding:28px 24px;
}
.basket h2 {
  font-size:29px;
}
.basket .eyebrow {
  font-size:8px;
  letter-spacing:1.5px;
}
.basket>.muted {
  font-size:12px;
  margin-bottom:25px;
}
.products {
  display:grid;
  gap:8px;
}
.product {
  border:1px solid #d4d8ca;
  background:transparent;
  padding:13px 11px;
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:center;
  color:var(--ink);
  text-align:left;
}
.product span {
  font-size:11px;
  line-height:1.5;
}
.product strong {
  font-size:12px;
  white-space:nowrap;
  font-weight:500;
}
.product[aria-pressed=true] {
  border-color:var(--green);
  background:#fafbf4;
  box-shadow:inset 3px 0 var(--green);
}
.basket-selection {
  border-top:1px solid #d5d8cb;
  padding-top:22px;
  margin-top:25px;
  display:grid;
  gap:8px;
  font-size:12px;
}
.basket-selection small {
  font-size:10px;
  color:var(--muted);
}
.total {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:28px 0 12px;
  font-size:13px;
}
.total strong {
  font:29px Georgia,serif;
}
.basket-hint {
  font-size:11px;
  color:var(--muted);
  min-height:30px;
  line-height:1.5;
}
.basket .primary {
  font-size:12px;
  padding:14px 16px;
}
.basket .fineprint {
  font-size:10px!important;
}
.order-view {
  max-width:650px;
  margin:65px auto 100px;
}
.order-detail {
  background:var(--wash);
  border:1px solid var(--line);
  padding:30px;
  margin:30px 0;
}
.order-total {
  font:38px Georgia,serif;
  display:block;
  margin:20px 0;
}
.status-label {
  font-size:10px;
  color:#4f6b52;
  border:1px solid #adbda5;
  padding:6px 9px;
  display:inline-block;
}
.order-view>.secondary {
  margin-top:30px;
}
footer {
  border-top:1px solid var(--line);
  padding:25px 5.3vw;
  display:flex;
  gap:35px;
  align-items:center;
  color:var(--muted);
  font-size:10px;
}
footer .wordmark {
  font-size:31px;
  color:var(--ink);
}
footer .wordmark span {
  font-size:8px;
}
footer>span:last-child {
  margin-left:auto;
}
.global-error {
  font-size:13px;
  color:#a24329;
  line-height:1.6;
}
.global-error:not(:empty) {
  padding:20px;
  background:#f3e6da;
}
.loading {
  margin:100px 0;
  text-align:center;
  font-size:14px;
  color:var(--muted);
}
dialog {
  border:1px solid var(--line);
  padding:35px 40px;
  max-width:480px;
  width:calc(100% - 32px);
  background:var(--paper);
  color:var(--ink);
}
dialog::backdrop {
  background:#17251ca3;
  backdrop-filter:blur(3px);
}
dialog form {
  text-align:right;
}
dialog .eyebrow {
  font-size:9px;
}
dialog h2 {
  font-size:36px;
}
dialog p {
  line-height:1.7;
  font-size:13px;
}
dialog .primary {
  margin-top:20px;
}
@media(min-width:1500px) {
  .gallery-layout {
    grid-template-columns:minmax(0,1fr) 325px;
    gap:60px;
  }
}
@media(max-width:1000px) {
  .gallery-layout {
    gap:25px;
    grid-template-columns:minmax(0,1fr) 270px;
  }
  .image-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .collection-header h1 {
    font-size:42px;
  }
  .login-layout {
    gap:6%;
  }
  .welcome h1 {
    font-size:74px;
  }
  .login-card {
    padding:30px;
  }
}
@media(max-width:700px) {
  .topbar {
    height:78px;
    padding:0 6vw;
    gap:18px;
  }
  .wordmark {
    font-size:37px;
  }
  .environment {
    font-size:8px;
    letter-spacing:1px;
  }
  main {
    padding:0 6vw;
  }
  .login-layout {
    grid-template-columns:1fr;
    padding:35px 0 45px;
    gap:30px;
  }
  .welcome h1 {
    font-size:60px;
  }
  .welcome .intro {
    font-size:14px;
  }
  .welcome .eyebrow {
    font-size:8px;
  }
  .login-art {
    display:none;
  }
  .login-card {
    max-width:none;
    padding:25px;
  }
  .login-card h2 {
    font-size:30px;
  }
  .small-mark {
    display:none;
  }
  .gallery-layout {
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .gallery-layout>div,.basket {
    width:100%;
  }
  .basket {
    position:static;
    margin-bottom:35px;
    padding:25px;
  }
  .collection-header {
    padding:30px 0;
  }
  .collection-header h1 {
    font-size:38px;
    max-width:280px;
  }
  .collection-header .eyebrow {
    font-size:8px;
  }
  .collection-stamp {
    display:none;
  }
  .collection-header .muted {
    font-size:12px;
  }
  .image-grid {
    gap:24px 16px;
  }
  .gallery-toolbar {
    font-size:11px;
  }
  #selection-label {
    font-size:9px;
  }
  .gallery-note {
    padding-bottom:8px;
  }
  .order-view {
    margin:40px 0 70px;
  }
  .order-view h1 {
    font-size:46px;
  }
  .order-detail {
    padding:25px;
  }
  .secondary {
    font-size:12px;
    line-height:1.5;
  }
  footer {
    gap:20px;
    padding:20px 6vw;
  }
  footer>span:nth-child(2) {
    display:none;
  }
  dialog {
    padding:25px;
  }
  .image-frame img {
    aspect-ratio:3/4;
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}
