:root{
  --bg:#000000;
  --ink:#ECE7DC;
  --ink-dim:rgba(236,231,220,.62);
  --ink-faint:rgba(236,231,220,.38);
  --ink-ghost:rgba(236,231,220,.16);
  --hairline:rgba(236,231,220,.14);
  --hairline-strong:rgba(236,231,220,.28);
  --gold:#E0AE5B;
  --gold-soft:#ECC684;   /* hover gold */
  --serif:'Cormorant Garamond', 'Times New Roman', Times, serif;
  --mono:'IBM Plex Mono', ui-monospace, Menlo, monospace;
  --maxw:1320px;
  --pad-x:48px;
  --ticker-h:41px;   /* reserved up front so content doesn't jump when the ticker mounts */
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none !important}
/* keyboard-only focus ring; :where() keeps specificity 0 so any per-widget :focus-visible rule still wins */
:where(a, button, input, textarea, select, summary, [tabindex], [role="button"], [role="tab"], [role="menuitem"], [role="slider"], [contenteditable]):focus-visible{
  outline:2px solid var(--gold); outline-offset:2px;
}
:focus:not(:focus-visible){ outline:none; }
html{scrollbar-gutter:stable}
/* show the text caret only in editable fields, not on clicks over plain text */
html{caret-color:transparent}
input,textarea,[contenteditable]{caret-color:auto}
html,body{background:var(--bg);color:var(--ink);font-family:var(--serif);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}
body{overflow-x:hidden;line-height:1.4}
a{color:inherit;text-decoration:none}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x);position:relative;z-index:2}

nav.top{
  position:fixed;top:0;left:0;right:0;z-index:50;
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  background:linear-gradient(to bottom, rgba(0,0,0,.7), rgba(0,0,0,.25));
  border-bottom:1px solid var(--hairline);
}
nav.top .row{
  max-width:var(--maxw);margin:0 auto;padding:18px var(--pad-x);
  display:flex;align-items:center;justify-content:space-between;gap:32px;
}
.brand{
  font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:.22em;
  text-transform:uppercase;display:inline-flex;align-items:center;gap:12px;
  margin-left:5px;
}
.brand-mark{display:inline-block;width:22px;height:22px;flex-shrink:0}
.brand-mark svg{width:100%;height:100%;display:block}
.nav-links{display:flex;gap:32px;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}
.nav-links a{position:relative;padding:6px 0;transition:color .25s}
.nav-links a:hover{color:var(--ink)}
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink)
}
.nav-gallery{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);position:relative;padding:6px 0;margin-left:auto;
  display:inline-flex;align-items:center;white-space:nowrap;
}
.nav-gallery .letters{display:inline-flex}
.nav-gallery .letters span{display:inline-block;white-space:pre}
.nav-gallery::after{
  content:"";position:absolute;left:0;bottom:0;height:1.5px;width:100%;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft));
  transform:scaleX(0);transform-origin:left center;
}
@media (prefers-reduced-motion:no-preference){
  .nav-gallery:not(.active) .letters span{
    animation:galleryWave 9s ease-in-out infinite;
    animation-delay:calc(var(--i) * .085s);
  }
  .nav-gallery:not(.active)::after{animation:galleryDraw 9s ease-in-out infinite}
}
@keyframes galleryWave{0%,100%{color:var(--ink)}3%{color:var(--gold)}11%{color:var(--ink)}}
@keyframes galleryDraw{
  0%{transform:scaleX(0);transform-origin:left center}
  10%{transform:scaleX(1);transform-origin:left center}
  26%{transform:scaleX(1);transform-origin:right center}
  36%,100%{transform:scaleX(0);transform-origin:right center}
}
.nav-gallery:not(.active):hover .letters span{animation:none;color:var(--gold-soft)}
.nav-gallery:not(.active):hover::after{
  animation:none;transform:scaleX(1);transform-origin:left center;transition:transform .4s ease;
}
.nav-gallery.active .letters span{animation:none;color:var(--ink)}
.nav-gallery.active::after{
  animation:none;transform:scaleX(1);transform-origin:left center;background:var(--gold);
}
.nav-search{
  position:relative;display:flex;align-items:center;
  flex:0 0 140px;min-width:0;
}
.nav-search input{
  width:100%;
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);background:transparent;
  border:1px solid var(--hairline);
  padding:9px 30px 9px 12px;
  outline:none;font-variant-numeric:tabular-nums;
  transform:translateY(-2px); /* nudge up to align with the menu's text items */
  transition:border-color .25s ease,background .25s ease;
}
.nav-search input::placeholder{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.16em}
.nav-search input:hover{border-color:var(--hairline-strong);background:rgba(236,231,220,.025)}
.nav-search input:focus{border-color:var(--ink-dim);background:rgba(236,231,220,.025)}
.nav-search input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.nav-search .go{
  position:absolute;right:0;top:0;bottom:0;width:30px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;cursor:pointer;color:var(--ink-faint);
  transition:color .25s ease;
}
.nav-search .go:hover{color:var(--ink)}
.nav-search .go svg{width:14px;height:14px;display:block}

.wallet-btn{
  font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  background:transparent;color:var(--ink);
  border:1px solid var(--hairline-strong);
  height:37px;padding:0 20px;border-radius:1px;cursor:pointer; /* fixed height so states don't jump */
  transition:border-color .3s ease, background .3s ease, color .3s ease;
  min-width:220px;text-align:center; /* matches .wallet-menu so the dropdown lines up */
  font-variant-numeric:tabular-nums;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;
  transform:translateY(-2px); /* nudge up to align with the menu's text items */
}
.wallet-btn:hover{border-color:var(--ink);background:rgba(236,231,220,.04)}
.wallet-btn.connected{color:var(--ink-dim);font-variant-numeric:tabular-nums}
.wallet-btn .dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:#7CFFB2;margin-right:8px;vertical-align:middle;
  box-shadow:0 0 8px #7CFFB2;
}
.wallet-btn .chev{
  display:inline-block;margin-left:10px;font-size:14px;line-height:1;color:var(--ink-dim);
  transition:transform .25s ease, color .25s ease;
}
.wallet-btn.connected:hover .chev{color:var(--ink)}

.wallet-wrap{position:relative}
.wallet-wrap.open .wallet-btn .chev{transform:rotate(180deg);color:var(--ink-dim)}
.wallet-menu{
  position:absolute;top:calc(100% + 8px);right:0;
  min-width:220px;
  background:rgba(10,10,10,.96);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border:1px solid var(--hairline-strong);
  padding:6px 0;
  opacity:0;pointer-events:none;transform:translateY(-4px);
  transition:opacity .2s ease, transform .2s ease;
  z-index:60;
}
.wallet-wrap.open .wallet-menu{opacity:1;pointer-events:auto;transform:translateY(0)}
.wallet-menu .item{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 18px;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ink-dim);
  cursor:pointer;background:transparent;border:0;width:100%;
  text-align:left;
  transition:color .2s ease, background .2s ease;
}
.wallet-menu .item:hover{color:var(--ink);background:rgba(236,231,220,.04)}
.wallet-menu .item .arr{font-size:10px;color:var(--ink-faint)}
.wallet-menu .item:hover .arr{color:var(--ink)}
.wallet-menu .sep{height:1px;background:var(--hairline);margin:4px 0}
.wallet-menu .header{
  padding:14px 18px 12px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.28em;
  text-transform:uppercase;color:var(--ink-faint);
  display:flex;flex-direction:column;gap:6px;
}
.wallet-menu .header .addr{
  font-size:12px;color:var(--ink);letter-spacing:.06em;
  font-variant-numeric:tabular-nums;text-transform:none;
}

.burger-wrap{display:none}     /* drawer anchors to nav.top (positioned ancestor), so it opens from the left content edge */
.nav-burger{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;padding:0;
  background:transparent;border:1px solid var(--hairline);border-radius:2px;
  color:var(--ink-dim);cursor:pointer;transform:translateY(-2px); /* line up with the other nav controls */
  transition:color .25s ease, border-color .25s ease;
  -webkit-tap-highlight-color:transparent;
}
.nav-burger:hover{color:var(--gold-soft);border-color:var(--hairline-strong)}
.nav-burger[aria-expanded="true"]{color:var(--gold)}
/* two stacked SVGs crossfade + counter-rotate between the menu and close icons */
.nav-burger .morph{position:relative;display:inline-flex;width:20px;height:20px}
.nav-burger .morph svg{
  position:absolute;inset:0;width:100%;height:100%;display:block;transform-origin:center;
  transition:opacity .32s ease, transform .46s cubic-bezier(.65,0,.35,1);
}
.nav-burger .ic-menu{opacity:1;transform:none}
.nav-burger .ic-close{opacity:0;transform:rotate(-90deg) scale(.6)}
.nav-burger[aria-expanded="true"] .ic-menu{opacity:0;transform:rotate(90deg) scale(.6)}
.nav-burger[aria-expanded="true"] .ic-close{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .nav-burger .morph svg{transition:opacity .12s linear}
  .nav-burger .ic-menu,
  .nav-burger[aria-expanded="true"] .ic-menu,
  .nav-burger .ic-close,
  .nav-burger[aria-expanded="true"] .ic-close{transform:none}
}
.nav-drawer{
  position:absolute;top:100%;left:var(--pad-x);
  min-width:210px;
  background:rgba(10,10,10,.96);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border:1px solid var(--hairline-strong);
  padding:6px 0;
  display:flex;flex-direction:column;
  opacity:0;pointer-events:none;transform:translateY(-4px);
  transition:opacity .2s ease, transform .2s ease;
  z-index:60;
}
.burger-wrap.open .nav-drawer{opacity:1;pointer-events:auto;transform:translateY(0)}
.nav-drawer a{
  padding:13px 20px;
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-dim);transition:color .2s ease, background .2s ease;
}
.nav-drawer a:hover{color:var(--ink);background:rgba(236,231,220,.04)}
.nav-drawer a.active{color:var(--ink);background:rgba(236,231,220,.05);box-shadow:inset 2px 0 0 var(--ink)}   /* mobile analog of the desktop active underline */
.drawer-gallery{display:none}     /* shown only ≤640px, where GALLERY leaves the row */
.drawer-sep{height:1px;background:var(--hairline);margin:4px 0}
.drawer-search{position:relative;display:flex;align-items:center;padding:10px 16px 6px}
.drawer-search input{
  width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);background:transparent;border:1px solid var(--hairline);
  padding:9px 30px 9px 12px;outline:none;font-variant-numeric:tabular-nums;
}
.drawer-search input::placeholder{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.16em}
.drawer-search input:focus{border-color:var(--ink-dim)}
.drawer-search .go{position:absolute;right:16px;top:10px;bottom:6px;width:30px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;cursor:pointer;color:var(--ink-faint);transition:color .2s ease}
.drawer-search .go:hover{color:var(--ink)}
.drawer-search .go svg{width:14px;height:14px;display:block}

.page{padding:calc(160px + var(--ticker-h,0px)) 0 80px;min-height:100vh;display:flex;flex-direction:column}
.page-eyebrow{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--ink-faint);
  display:flex;align-items:center;gap:14px;margin-bottom:32px;
}
.page-eyebrow .num{color:var(--ink-dim)}
.page-eyebrow .line{flex:1;height:1px;background:var(--hairline)}
.page-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(56px,8vw,128px);line-height:.96;letter-spacing:-.02em;
  margin-bottom:32px;
}
.page-title em{font-style:italic;color:var(--ink-dim);font-weight:300}
.page-lede{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(20px,2vw,26px);color:var(--ink-dim);
  max-width:50ch;margin-bottom:64px;
}
.page-placeholder{
  flex:1;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--hairline);
  margin-top:48px;padding:96px 32px;min-height:340px;
  background:
    repeating-linear-gradient(135deg,
      transparent 0 22px,
      rgba(236,231,220,.025) 22px 23px);
  text-align:center;
}
.page-placeholder .inner{display:flex;flex-direction:column;gap:14px;align-items:center}
.page-placeholder .lbl{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--ink-faint);
}
.page-placeholder .msg{
  font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:22px;color:var(--ink-dim);max-width:36ch;line-height:1.4;
}

footer{
  border-top:1px solid var(--hairline);
  padding:48px 0;margin-top:auto;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-faint);
}
footer .row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
footer .row .contract{color:var(--ink-dim);font-variant-numeric:tabular-nums}
footer .ftr-social{display:inline-flex;align-items:center;gap:18px}
footer .ftr-social a{display:inline-flex;width:36px;height:36px;color:var(--ink-dim);transition:color .2s ease}
footer .ftr-social a:hover{color:var(--ink)}
footer .ftr-terms{color:var(--ink-dim);text-decoration:none;transition:color .2s ease}
footer .ftr-terms:hover{color:var(--ink)}
footer .ftr-social a::before{content:'';display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
footer .ftr-social a.x::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.66l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.66l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E")}
footer .ftr-social a.os::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0ZM5.92 12.4l.052-.082 3.123-4.884a.106.106 0 0 1 .185.014c.521 1.169.973 2.624.76 3.528-.089.372-.335.876-.613 1.341a2.49 2.49 0 0 1-.117.196.106.106 0 0 1-.089.046H6.013a.106.106 0 0 1-.093-.159zm13.914 1.68a.108.108 0 0 1-.062.098c-.207.088-.918.415-1.214.827-.749 1.044-1.32 2.391-2.604 2.391H9.967a3.95 3.95 0 0 1-3.95-3.949v-.114c0-.063.05-.114.114-.114h3.6c.073 0 .127.067.12.139-.026.24.018.487.131.71.218.448.683.732 1.183.732h1.781v-1.39h-1.76a.108.108 0 0 1-.088-.171c.018-.029.043-.06.069-.097.187-.266.453-.679.72-1.149.18-.318.359-.659.503-1.005.026-.063.05-.13.075-.193.04-.114.082-.221.114-.328.03-.108.056-.221.082-.328.075-.323.107-.665.107-1.02 0-.139-.007-.284-.019-.423-.006-.152-.025-.304-.044-.456a6.392 6.392 0 0 0-.064-.408 8.135 8.135 0 0 0-.114-.512l-.017-.069c-.03-.114-.056-.221-.089-.334a14.665 14.665 0 0 0-.354-1.062 6.402 6.402 0 0 0-.153-.388c-.075-.184-.15-.35-.219-.5a4.794 4.794 0 0 0-.1-.215 3.847 3.847 0 0 0-.093-.193c-.026-.05-.05-.1-.07-.145a16.94 16.94 0 0 0-.187-.345c-.025-.05.02-.108.075-.094l1.366.37h.01l.18.05.198.057.073.02v-.803c0-.388.31-.703.696-.703.193 0 .368.08.49.209.123.13.202.304.202.494v1.19l.146.04c.011.005.024.01.033.018.038.026.092.068.16.117.057.045.117.106.19.172.142.112.308.255.494.421.05.044.095.087.142.13.245.23.522.497.785.795.073.08.14.16.214.247.067.087.146.18.208.267.086.111.176.229.257.351.037.057.08.117.116.173.105.155.192.314.276.473.038.073.073.155.105.229.092.192.166.387.214.583.011.039.024.081.03.119v.012c.013.073.018.151.013.23z'/%3E%3C/svg%3E")}

@media (max-width: 1100px){
  :root{--pad-x:32px}
  .nav-links{display:none}
  .burger-wrap{display:flex}     /* the page links move into the burger drawer */
  nav.top .row{gap:18px}
  .nav-search{flex-basis:130px}
}
@media (max-width: 640px){
  :root{--pad-x:20px}
  .nav-search{display:none}      /* row search hidden; reachable inside the burger drawer */
  .nav-gallery{display:none}     /* GALLERY moves into the burger drawer on phones */
  .drawer-gallery{display:block}
  .burger-wrap{margin-right:auto} /* keep the burger next to the brand (gallery's margin-left:auto is gone here) */
  nav.top .row{gap:12px}
  .wallet-btn{min-width:auto;padding:0 14px;letter-spacing:.12em} /* stop the wallet button clipping on phones */
  footer .row{flex-direction:column;align-items:flex-start}
}

.wallet-badge{
  position:absolute;top:-7px;right:-7px;
  min-width:19px;height:19px;padding:0 5px;
  border-radius:10px;
  background:#D8412A;color:#FFF;
  font-family:var(--mono);font-size:10px;font-weight:500;line-height:1;
  letter-spacing:0;
  display:none;align-items:center;justify-content:center;
  box-shadow:0 0 0 2px #000, 0 0 10px rgba(216,65,42,.45);
  font-variant-numeric:tabular-nums;
  z-index:3;pointer-events:none;
}
body.has-pending .wallet-badge{display:inline-flex}

.wallet-menu .item.pending{display:none;color:#E0AE5B}
body.has-pending .wallet-menu .item.pending{display:flex}
.wallet-menu .item.pending .lhs{display:inline-flex;align-items:center;gap:11px;text-transform:none;letter-spacing:.04em}
.wallet-menu .item.pending .arr{color:#E0AE5B;transition:transform .2s ease}
.wallet-menu .item.pending:hover{background:rgba(224,174,91,.09);color:#ECC684}
.wallet-menu .item.pending:hover .arr{color:#ECC684;transform:translateX(2px)}
.wallet-menu .item.pending .pdot{
  width:6px;height:6px;border-radius:50%;background:#E0AE5B;flex-shrink:0;
  box-shadow:0 0 7px rgba(224,174,91,.6);
  animation:pendpulse 1.9s ease-in-out infinite;
}
.wallet-menu .sep.pending-sep{display:none}
body.has-pending .wallet-menu .sep.pending-sep{display:block}
@keyframes pendpulse{0%,100%{opacity:.42;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}
