:root{
  --ink:#0d0d20;
  --ink-soft:#12112b;
  --paper:#f3eaf2;
  --coral:#ff7b8f;
  --lav:#a994ff;
  --lime:#d0f000;
  --grey:#252829;
  --line:rgba(243,234,242,.22);
  --ease:cubic-bezier(.16,1,.3,1)
  }*{
  box-sizing:border-box
  }[hidden]{
  display:none!important
  }html,body{
  margin:0;
  min-height:100%;
  background:var(--ink);
  color:var(--paper);
  font-family:'DM Sans','Noto Sans SC',sans-serif
  }body{
  overflow:hidden
  }button,input,select,textarea{
  font:inherit
  }button{
  cursor:pointer
  }button:focus-visible,a:focus-visible,input:focus,select:focus,textarea:focus{
  outline:2px solid var(--lime);
  outline-offset:3px
  }.site-backdrop,.site-shade{
  position:fixed;
  inset:0;
  pointer-events:none
  }.site-backdrop{
  z-index:0;
  overflow:hidden;
  background:var(--ink)
  }.site-backdrop img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(1.05);
  transition:opacity 1.2s var(--ease),transform 12s linear;
  filter:saturate(.85) contrast(.95)
}
.site-backdrop img.is-portrait{object-position:center 18%}

.site-backdrop img.is-current{
  opacity:.55;
  transform:scale(1.12)
}.site-shade{
  z-index:1;
  background:radial-gradient(ellipse at center,rgba(13,13,32,.3) 0%,rgba(13,13,32,.48) 55%,rgba(13,13,32,.68) 100%),linear-gradient(180deg,rgba(13,13,32,.22) 0%,rgba(13,13,32,.42) 100%);
  }.site-shell{
  position:relative;
  z-index:2
  }.welcome-screen{
  position:fixed;
  inset:0;
  z-index:50;
  display:grid;
  place-items:center;
  padding:6vw;
  background:rgba(13,13,32,.58);
  transition:opacity .7s var(--ease),visibility .7s
  }.welcome-screen.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none
  }.welcome-content{
  width:min(980px,100%);
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:8vw;
  align-items:center
  }.welcome-kicker{
  font-size:12px;
  letter-spacing:.15em;
  color:var(--coral);
  margin:0 0 2rem
  }.welcome-content h1{
  margin:0;
  color:var(--lime);
  font-size:clamp(5.6rem,11vw,10.8rem);
  line-height:.78;
  letter-spacing:-.09em;
  font-weight:400;
  animation:welcomeRise .9s var(--ease) backwards
}
.welcome-kicker{
  animation:welcomeRise .9s var(--ease) .15s backwards
}
.welcome-copy{
  animation:welcomeRise .9s var(--ease) .3s backwards
}
@keyframes welcomeRise{
  from{
    opacity:0;
    transform:translateY(28px)
  }
  to{
    opacity:1;
    transform:none
  }
}.welcome-content h1 em{
  font-style:normal
  }.welcome-copy{
  max-width:430px;
  color:#d8dbd8;
  font-size:14.5px;
  line-height:1.95
  }.welcome-note{
  color:#a8acaa
  }.lime-link{
  border:0;
  background:none;
  color:var(--lime);
  padding:0;
  font-size:14.5px;
  font-weight:700;
  border-bottom:1px solid var(--lime);
  padding-bottom:6px
  }.lime-link span{
  font-size:20px;
  margin-left:10px
  }.site-shell{
  min-height:100svh;
  opacity:0;
  transition:opacity .7s var(--ease);
  pointer-events:none
  }.site-shell.is-ready{
  opacity:1;
  pointer-events:auto
  }.site-header{
  position:fixed;
  z-index:20;
  top:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  padding:18px 4.4vw;
  background:rgba(13,13,32,.62);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(243,234,242,.08)
  }.brand{
  background:none;
  border:0;
  color:var(--paper);
  font-size:14.5px;
  letter-spacing:.1em;
  font-weight:700;
  white-space:nowrap
  }.brand span{
  color:var(--coral)
  }.site-nav{
  display:flex;
  gap:26px
  }.site-nav button{
  background:none;
  border:0;
  color:var(--paper);
  font-size:14.5px;
  opacity:.78;
  transition:opacity .2s ease,color .2s ease
  }.site-nav button:hover,.site-nav button.is-active{
  opacity:1;
  color:var(--lime)
  }.header-index{
  font-size:11px;
  color:var(--lav);
  letter-spacing:.1em
  }.menu-toggle{
  display:none;
  background:none;
  border:0;
  color:var(--paper);
  font-size:12px
  }.panel-stage{
  height:100svh;
  padding:78px 4.4vw 2.5rem
  }.content-panel{
  height:calc(100svh - 112px);
  max-width:1340px;
  margin:0 auto;
  animation:panelIn .55s var(--ease);
  overflow:auto;
  scrollbar-width:none
}
.content-panel > *{
  animation:contentFadeIn .8s var(--ease) backwards
}
.content-panel > *:nth-child(1){
  animation-delay:.05s
}
.content-panel > *:nth-child(2){
  animation-delay:.18s
}
.content-panel > *:nth-child(3){
  animation-delay:.32s
}
@keyframes contentFadeIn{
  from{
    opacity:0;
    transform:translateY(10px)
  }
  to{
    opacity:1;
    transform:none
  }
}.content-panel::-webkit-scrollbar{
  display:none
  }@keyframes panelIn{
  from{
    opacity:0;
    transform:translateY(12px)
    }to{
    opacity:1;
    transform:none
  }
}.panel-home{
display:grid;
grid-template-columns:minmax(260px,.68fr) minmax(0,1.55fr);
align-items:center;
gap:clamp(2rem,4vw,5rem);
max-width:1600px
}.panel-intro{
max-width:520px
}.eyebrow{
margin:0 0 1rem;
color:var(--coral);
font-size:12px;
letter-spacing:.1em;
text-transform:uppercase
}.panel-intro h2{
font-size:clamp(3.9rem,7.6vw,7.6rem);
line-height:.97;
letter-spacing:-.08em;
font-weight:500;
margin:0 0 1.7rem
}.panel-intro h2 em{
font-style:normal;
color:var(--lav)
}.panel-intro>p:last-child{
max-width:30rem;
color:#c9c0da;
font-size:15px;
line-height:1.9
}.visual-card{
  height:min(82vh,820px);
  min-height:480px;
position:relative;
overflow:hidden;
  background:transparent;
  border-radius:6px;
  box-shadow:0 28px 80px -24px rgba(0,0,0,.72);
  transform:translateY(-1.5vh)
}
.visual-card img{
width:100%;
height:100%;
display:block;
  object-fit:cover;
  object-position:center 18%;
  background:transparent;
transition:transform 1s var(--ease)
}.visual-card:hover img{
transform:scale(1.025)
}.visual-card span{
position:absolute;
bottom:14px;
left:14px;
color:var(--paper);
background:rgba(13,13,32,.76);
padding:4px 7px;
font-size:10px;
letter-spacing:.1em
}.panel-side-title{
display:flex;
flex-direction:column;
justify-content:center;
max-width:230px
}.panel-side-title>span{
color:var(--coral);
font-size:12px;
letter-spacing:.1em
}.panel-side-title h2{
color:var(--lime);
font-size:clamp(3.5rem,7vw,7rem);
font-weight:400;
line-height:.82;
letter-spacing:-.1em;
margin:1.5rem 0
}.panel-side-title p{
color:#c9c0da;
font-size:14.5px;
line-height:1.8
}.content-panel:not(.panel-home):not(.about-panel):not(.commission-panel){
display:grid;
  grid-template-columns:minmax(150px,180px) minmax(0,1fr);
align-items:center;
  gap:clamp(1.25rem,2.2vw,2.75rem);
min-height:calc(100svh - 80px)
}.single-carousel{
display:grid;
  grid-template-columns:minmax(0,1fr) clamp(150px,12vw,190px);
grid-template-rows:minmax(0,1fr) auto;
  gap:18px clamp(18px,2vw,32px);
align-items:stretch;
align-content:start;
  width:100%;
margin:0 auto;
  height:min(83vh,800px);
  transform:translateY(-1.5vh);
overflow:hidden
}  .carousel-stage{
  position:relative;
   width:100%;
  margin:auto;
  outline:none;
   padding:0 clamp(28px,3vw,54px);
  grid-column:1;
  grid-row:1;
  align-self:stretch;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  min-height:0;
  min-width:0;
  max-height:100%;
  height:min(76vh,730px);
  min-height:480px
}.carousel-side{
display:none !important
}.carousel-stack{
position:relative;
min-height:0;
height:100%;
max-height:100%;
max-width:100%;
display:flex;
align-items:flex-start;
justify-content:center;
perspective:1600px;
grid-column:1;
grid-row:1;
width:100%;
overflow:hidden
}.carousel-image{
background:#1a1830;
overflow:hidden;
border-radius:4px;
box-shadow:0 10px 28px -12px rgba(0,0,0,.5);
transition:transform .8s cubic-bezier(.4,0,.2,1),opacity .65s var(--ease),filter .65s var(--ease)
}
.carousel-image img{
display:block;
object-fit:contain;
background:transparent
}
img.carousel-current-image{
  display:block;
  max-width:none;
  max-height:none;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center top;
  cursor:zoom-in
}
.carousel-image{
  background:transparent;
  overflow:visible;
  border-radius:6px;
  box-shadow:0 10px 28px -12px rgba(0,0,0,.5);
  transition:transform .8s cubic-bezier(.4,0,.2,1),opacity .65s var(--ease),filter .65s var(--ease)
}
.carousel-main-card{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  background:transparent;
  border-radius:6px;
  box-shadow:none;
  cursor:zoom-in;
  transform-origin:center center;
  overflow:hidden
}
img.carousel-current-image{
  display:block;
  max-width:none;
  max-height:none;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center top;
  cursor:zoom-in;
  flex-shrink:1
}.carousel-side{
position:absolute;
z-index:1;
width:min(440px,46%);
opacity:.28;
filter:saturate(.45) brightness(.5)
}.carousel-prev-card{
transform:translateX(-78%) scale(.78)
}.carousel-next-card{
transform:translateX(78%) scale(.78)
}.carousel-main-card.is-leaving-prev,.carousel-main-card.is-leaving-next{
animation:pageFadeOut .35s var(--ease) forwards
}.carousel-main-card.is-entering-prev,.carousel-main-card.is-entering-next{
animation:pageFadeIn .45s var(--ease) forwards
}.carousel-side.is-entering{
animation:sideFadeIn .4s var(--ease) .05s both
}.carousel-current-image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center top;
  cursor:zoom-in;
  animation:carouselImageIn .45s var(--ease)
}@keyframes pageFadeOut{
from{
  opacity:1
  }to{
  opacity:0
}
}@keyframes pageFadeIn{
from{
  opacity:0
  }to{
  opacity:1
}
}@keyframes sideFadeIn{
from{
  opacity:0
  }to{
  opacity:.28
}
}@keyframes carouselImageIn{
from{
  opacity:.4
  }to{
  opacity:1
}
}.carousel-arrow{
display:inline-flex;
align-items:center;
justify-content:center;
width:36px;
height:36px;
border:0;
background:transparent;
color:var(--paper);
padding:0;
transition:color .25s var(--ease);
position:relative;
z-index:5
}
.carousel-arrow svg{
  display:block;
  width:20px;
  height:20px;
  stroke:currentColor;
  stroke-width:1.25;
  fill:none;
  transition:transform .25s var(--ease)
}
.carousel-arrow:hover{
  color:var(--lime);
  background:rgba(13,13,32,.78);
  border-color:var(--lime)
}
.carousel-prev:hover svg{
  transform:translateX(-2px)
}
.carousel-next:hover svg{
  transform:translateX(2px)
  }.carousel-prev,.carousel-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  background:rgba(13,13,32,.5);
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--paper);
  transition:all .25s var(--ease);
  z-index:6;
  backdrop-filter:blur(6px)
  }.carousel-prev{
  left:24px
  }.carousel-next{
  right:24px
  }.carousel-arrow:hover{
  color:var(--lime)
  }.carousel-caption{
  display:flex;
  justify-content:space-between;
  align-items:start;
  border-top:1px solid var(--line);
  margin-top:1rem;
  padding-top:.85rem
  }.carousel-caption strong{
  display:block;
  font-size:20px
  }.carousel-meta{
  display:block;
  color:#a8acaa;
  font-size:12px;
  margin-top:4px
  }.carousel-counter{
  color:var(--lav);
  font-size:12px
  }.carousel-overlay-info{
  position:absolute;
  bottom:24px;
  left:24px;
  z-index:4;
  color:var(--paper);
  pointer-events:none
  }.carousel-overlay-info strong{
  display:block;
  font-size:20px;
  font-weight:600;
  letter-spacing:.02em;
  text-shadow:0 2px 12px rgba(0,0,0,.6)
  }.carousel-overlay-info .carousel-meta{
  display:block;
  color:rgba(243,234,242,.75);
  font-size:11px;
  margin-top:4px;
  letter-spacing:.08em;
  text-transform:uppercase
  }.carousel-bottom{
  display:contents
  }
  .carousel-controls{
  grid-column:1;
  grid-row:2
  }.carousel-thumbs{
  display:flex;
  flex-direction:column;
  gap:10px;
  grid-column:2;
  grid-row:1 / span 2;
  align-self:stretch;
  justify-content:flex-start;
  margin-left:auto;
  width:100%;
  max-width:190px;
  max-height:100%;
  overflow-y:auto;
  overflow-x:hidden;
  padding:26px 6px;
  scroll-behavior:smooth;
  overscroll-behavior:contain;
  scroll-snap-type:y proximity;
  scrollbar-width:thin;
  scrollbar-color:rgba(208,240,0,.35) transparent;
  mask-image:linear-gradient(to bottom,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 28px,#000 calc(100% - 28px),transparent 100%)
  }.carousel-thumbs{
    scrollbar-width:none
  }.carousel-thumbs::-webkit-scrollbar{
    width:0;
    height:0
  }.carousel-thumb{
  position:relative;
  width:100%;
  aspect-ratio:3/2;
  border:0;
  padding:0;
  background:rgba(0,0,0,.4);
  cursor:pointer;
  overflow:hidden;
  border-radius:4px;
  opacity:.55;
  flex-shrink:0;
  scroll-snap-align:start;
  transition:opacity .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)
}.carousel-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:rgba(0,0,0,.25);
  border-radius:3px;
  transition:transform .4s var(--ease)
  }.carousel-thumb:hover{
  opacity:.8
  }.carousel-thumb:hover img{
  transform:scale(1.03)
  }.carousel-thumb.is-active{
  opacity:1;
  transform:translateY(0) scale(1);
  z-index:5;
  box-shadow:0 0 0 2px var(--lime),0 18px 48px -12px rgba(208,240,0,.35)
  }.carousel-thumb.is-active::after{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:3px;
  height:28px;
  background:var(--lime);
  border-radius:0 2px 2px 0;
  box-shadow:0 0 12px rgba(208,240,0,.6)
  }.carousel-counter{
  display:none
  }.carousel-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:1.4rem;
  min-height:48px;
  position:relative;
  z-index:5
}.carousel-controls .carousel-prev,
.carousel-controls .carousel-next{
  position:relative;
  top:auto;
  left:auto;
  right:auto;
  transform:none;
  flex:0 0 48px
}.carousel-dots{
  display:inline-flex;
  gap:8px;
  align-items:center
  }.carousel-dots button{
  width:28px;
  height:1.5px;
  border:0;
  background:#555967;
  padding:0;
  transition:background .25s var(--ease),width .25s var(--ease)
  }.carousel-dots button.is-active{
  background:var(--lime);
  width:36px
  }.about-panel{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  align-items:center;
  gap:8vw;
  background:rgba(246,212,228,.93);
  color:var(--ink);
  padding:4vw 7vw
  }.about-stamp{
  font-size:clamp(4rem,10vw,10rem);
  line-height:.8;
  letter-spacing:-.1em;
  font-weight:700;
  color:rgba(18,17,43,.12);
  transform:rotate(-8deg)
  }.about-stamp span{
  font-size:.33em;
  letter-spacing:.08em
  }.about-copy{
  max-width:650px
  }.about-copy h2{
  font-size:clamp(2.8rem,5vw,5rem);
  line-height:1.05;
  letter-spacing:-.07em;
  margin:0 0 2rem;
  font-weight:500
  }.about-copy>p:not(.eyebrow){
  font-size:20px;
  line-height:1.9;
  color:#43384b
  }.commission-panel{
  background:rgba(37,40,41,.95);
  padding:1.8rem 3.5vw 1.3rem
  }.commission-topbar,.site-footer{
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#e7e9e7;
  font-size:11px;
  letter-spacing:.08em
  }.commission-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:32px;
  border-bottom:1px solid var(--line);
  padding:2.5rem 0 1.8rem
  }.commission-heading h2{
  margin:0;
  color:var(--lime);
  font-size:clamp(3.4rem,7vw,7rem);
  line-height:.84;
  letter-spacing:-.09em;
  font-weight:500
  }.commission-heading p{
  margin:.8rem 0 0;
  color:#d8dbd8;
  font-size:14.5px
  }.commission-rules{
  font-size:12px!important;
  line-height:1.8;
  color:#c2c6c3!important
  }.commission-layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:4vw;
  padding:1.7rem 0
  }.availability-panel{
  background:#17191a;
  padding:1.2rem 1.1rem;
  min-height:370px
  }.panel-label{
  font-size:12px;
  color:#e7e9e7;
  margin:0 0 1rem
  }.availability-panel strong{
  color:var(--lime);
  font-size:20px
  }.status{
  font-size:12px;
  color:#d8dbd8;
  margin:1.1rem 0
  }.status i{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--lime);
  margin-right:6px
  }.panel-note{
  color:#a8acaa;
  font-size:11px;
  line-height:1.7
  }.mini-calendar{
  background:#232728;
  padding:.8rem;
  margin-top:1.5rem;
  color:#a8acaa
  }.calendar-title{
  font-size:11px;
  color:#d8dbd8;
  margin-bottom:.6rem
  }.calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:7px 2px;
  text-align:center;
  font-size:9px
  }.calendar-grid span:nth-child(-n+7){
  color:#d8dbd8
  }.commission-form{
  padding:0 .3rem
  }.commission-form h3{
  font-size:20px;
  margin:0 0 1rem;
  color:#e7e9e7
  }.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.75rem 1rem
  }.form-grid label{
  display:grid;
  gap:.35rem;
  color:#d8dbd8;
  font-size:11px
  }.form-grid .full-field{
  grid-column:1/-1
  }input,select,textarea{
  width:100%;
  border:1px solid #a8acaa;
  background:#343839;
  color:#f3eaf2;
  padding:.58rem .7rem;
  border-radius:2px;
  outline:none
  }textarea{
  resize:vertical
  }.upload-row{
  display:flex;
  align-items:center;
  gap:12px;
  margin:.9rem 0;
  color:#c2c6c3;
  font-size:11px
  }.upload-row input{
  display:none
  }.upload-button{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--lime);
  color:var(--grey);
  padding:.65rem .9rem;
  border-radius:2px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap
  }.submit-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:0;
  background:var(--lime);
  color:var(--grey);
  padding:.72rem 1.1rem;
  font-weight:700
  }.form-message{
  min-height:1.2em;
  color:var(--lime);
  font-size:11px
  }.form-message.is-error{
  color:#ff7a85
  }.site-footer{
  border-top:1px solid var(--line);
  padding-top:.9rem;
  margin-top:.3rem;
  color:#a8acaa
  }.site-footer span:first-child,.site-footer a{
  color:var(--coral);
  text-decoration:none
  }@media(max-width:900px){
  body{
    overflow:hidden
    }.site-header{
    padding:15px 5vw
    }.header-index{
    display:none
    }.menu-toggle{
    display:block
    }.site-nav{
    position:absolute;
    top:53px;
    right:5vw;
    display:none;
    flex-direction:column;
    gap:12px;
    padding:1rem;
    background:rgba(13,13,32,.97);
    border:1px solid var(--line);
    min-width:150px
    }.site-nav.is-open{
    display:flex
    }.panel-stage{
    padding:72px 5vw 1.5rem
    }.content-panel{
    height:calc(100svh - 88px)
    }.panel-home{
    display:grid;
    grid-template-columns:1fr;
    gap:1.6rem;
    align-content:center
    }.panel-intro{
    order:1
    }.visual-card{
    order:2;
    height:48svh;
    min-height:290px
    }.panel-home:after{
    display:none
    }.content-panel:not(.panel-home):not(.about-panel):not(.commission-panel){
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:1.5rem;
    overflow-y:auto
    }.panel-side-title{
    max-width:none
    }.panel-side-title h2{
    font-size:clamp(3rem,12vw,5rem);
    margin:.7rem 0
    }.single-carousel{
    width:100%;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    height:auto !important
    }.carousel-image{
    aspect-ratio:3/4
    }.carousel-prev,.carousel-next{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    background:rgba(13,13,32,.5);
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--paper);
    transition:all .25s var(--ease);
    z-index:6;
    backdrop-filter:blur(6px)
    }.carousel-prev{
    left:24px
    }.carousel-next{
    right:24px
    }.about-panel{
    display:block;
    padding:8vw 7vw
    }.about-stamp{
    font-size:20vw;
    margin-bottom:5rem
    }.commission-panel{
    overflow:auto
    }.commission-layout{
    grid-template-columns:1fr;
    gap:1.5rem
    }.availability-panel{
    min-height:0
    }.commission-heading{
    display:block
    }.commission-rules{
    margin-top:1.2rem
    }.welcome-content{
    grid-template-columns:1fr;
    gap:2rem
    }.welcome-content h1{
    font-size:clamp(4rem,17vw,7rem)
  }
}@media(max-width:560px){
.welcome-content{
  gap:1.5rem
  }.welcome-copy{
  font-size:12px
  }.site-nav{
  right:5vw
  }.panel-intro h2{
  font-size:clamp(3rem,15vw,5rem)
  }.visual-card{
  height:43svh
  }.carousel-stack{
  height:clamp(280px,46vh,460px)
  }.carousel-main-card{
  min-height:240px
  }.carousel-thumb{
  flex:0 0 72px !important;
  width:72px !important;
  aspect-ratio:3/4 !important
  }.carousel-prev-card{
  transform:translateX(-78%) scale(.68)
  }.carousel-next-card{
  transform:translateX(78%) scale(.68)
  }.carousel-image{
  aspect-ratio:3/4
  }.carousel-side{
  aspect-ratio:4/3
  }.carousel-caption strong{
  font-size:16px
  }.form-grid{
  grid-template-columns:1fr
  }.form-grid .full-field{
  grid-column:auto
  }.upload-row{
  align-items:flex-start;
  flex-direction:column
  }.commission-heading h2{
  font-size:17vw
  }.commission-topbar span:last-child{
  display:none
  }.commission-panel{
  padding-left:5vw;
  padding-right:5vw
  }.site-footer{
  flex-direction:column;
  gap:7px
}
}@media(prefers-reduced-motion:reduce){
*,*:before,*:after{
  animation-duration:.01ms!important;
  transition-duration:.01ms!important
}
}
@media (max-width:900px){
  .carousel-stage{
    grid-template-columns:1fr !important;
    gap:0 !important;
    padding:0 16px !important;
    max-height:46vh !important;
    min-height:0 !important
    }.carousel-main-card{
    width:100% !important;
    height:100% !important
    }.carousel-side{
    display:none !important
    }.carousel-controls{
    grid-row:auto !important
    }.carousel-thumbs{
    display:flex !important;
    flex-direction:row !important;
    width:auto !important;
    height:auto !important;
    grid-column:1 !important;
    grid-row:auto !important;
    flex:0 0 auto;
    overflow-x:auto;
    padding-top:1rem;
    justify-content:center;
    gap:10px;
    margin-left:0 !important
    }.carousel-thumb{
    position:relative !important;
    flex:0 0 88px !important;
    width:88px !important;
    left:auto !important;
    top:auto !important;
    transform:none !important
    }.carousel-thumb.is-active::after{
    display:none
    }.carousel-thumb.is-active{
    box-shadow:0 -2px 0 var(--lime)
  }
}.lightbox{
position:fixed;
inset:0;
z-index:100;
background:rgba(8,8,18,.94);
display:none;
flex-direction:column;
padding:88px 5vw 120px;
backdrop-filter:blur(10px)
}
.lightbox.is-open{
display:flex;
animation:lbIn .3s var(--ease)
}
.lightbox-stage{
flex:1;
min-height:0;
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
cursor:grab;
touch-action:none;
position:relative
}
.lightbox-stage.is-zoomed{
cursor:grab
}
.lightbox-stage.is-dragging{
cursor:grabbing
}
.lightbox-image{
max-width:100%;
max-height:100%;
object-fit:contain;
box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
animation:lbImgIn .35s var(--ease);
transform-origin:center center;
transition:opacity .25s var(--ease);
user-select:none;
-webkit-user-drag:none;
will-change:transform
}
.lightbox-image.is-loading{
opacity:0
}
.lightbox-close{
position:absolute;
top:24px;
right:24px;
width:44px;
height:44px;
background:rgba(255,255,255,.08);
border:1px solid rgba(255,255,255,.2);
border-radius:50%;
color:#fff;
display:grid;
place-items:center;
cursor:pointer;
transition:all .25s var(--ease);
z-index:5
}
.lightbox-close:hover{
background:rgba(255,255,255,.18);
border-color:var(--lime);
color:var(--lime)
}
.lightbox-nav{
position:absolute;
top:50%;
transform:translateY(-50%);
width:52px;
height:52px;
background:rgba(255,255,255,.06);
border:1px solid rgba(255,255,255,.15);
border-radius:50%;
color:#fff;
display:grid;
place-items:center;
cursor:pointer;
transition:all .25s var(--ease);
z-index:5
}
.lightbox-nav:hover{
background:rgba(255,255,255,.18);
border-color:var(--lime);
color:var(--lime)
}
.lightbox-prev{
left:5vw
}
.lightbox-next{
right:5vw
}
.lightbox-toolbar{
position:absolute;
top:24px;
left:24px;
display:flex;
align-items:center;
gap:6px;
padding:6px 8px;
background:rgba(255,255,255,.06);
border:1px solid rgba(255,255,255,.12);
border-radius:40px;
backdrop-filter:blur(8px);
z-index:5
}
.lightbox-tool{
display:inline-flex;
align-items:center;
justify-content:center;
min-width:36px;
height:36px;
padding:0 10px;
background:transparent;
border:0;
color:#fff;
border-radius:18px;
cursor:pointer;
text-decoration:none;
font-size:12px;
letter-spacing:.06em;
transition:background .2s var(--ease),color .2s var(--ease)
}
.lightbox-tool:hover{
background:rgba(255,255,255,.16);
color:var(--lime)
}
.lightbox-zoom{
min-width:54px;
text-align:center;
font-variant-numeric:tabular-nums;
font-size:12px;
letter-spacing:.04em;
color:rgba(255,255,255,.78);
cursor:pointer;
user-select:none
}
.lightbox-meta{
position:absolute;
bottom:32px;
left:50%;
transform:translateX(-50%);
text-align:center;
color:#fff;
max-width:min(90vw,640px)
}
.lightbox-meta strong{
font-size:18px;
font-weight:500;
letter-spacing:.04em;
display:block;
margin-bottom:4px
}
.lightbox-meta .lightbox-meta-text{
font-size:12px;
color:rgba(255,255,255,.6);
letter-spacing:.12em;
text-transform:uppercase;
display:block;
margin-bottom:6px
}
.lightbox-meta .lightbox-hint{
display:block;
margin-top:6px;
font-size:11px;
letter-spacing:.08em;
color:rgba(255,255,255,.45);
text-transform:none
}
@keyframes lbIn{
from{
  opacity:0
  }to{
  opacity:1
}
}@keyframes lbImgIn{
from{
  opacity:0;
  transform:scale(.96)
  }to{
  opacity:1;
  transform:scale(1)
}
}.main-image{
cursor:zoom-in
}.main-image.is-lightbox-open{
cursor:zoom-out
}

.character-stage{
display:grid;
grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);
gap:48px;
align-items:start;
padding:8px 0 0
}
.character-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(160px,1fr));
gap:18px;
max-height:68vh;
overflow-y:auto;
padding:6px 8px 6px 0;
scrollbar-width:thin;
scrollbar-color:rgba(243,234,242,.25) transparent
}
.character-grid::-webkit-scrollbar{
width:6px
}
.character-grid::-webkit-scrollbar-thumb{
background:rgba(243,234,242,.25);
border-radius:3px
}
.character-card{
display:flex;
flex-direction:column;
gap:8px;
padding:8px;
background:rgba(243,234,242,.04);
border:1px solid rgba(243,234,242,.1);
border-radius:6px;
text-align:left;
cursor:pointer;
transition:transform .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease)
}
.character-card:hover{
transform:translateY(-3px);
border-color:var(--lime);
background:rgba(208,240,0,.06)
}
.character-card.is-active{
border-color:var(--lime);
background:rgba(208,240,0,.1);
box-shadow:0 0 0 1px var(--lime)
}
.character-thumb{
display:block;
aspect-ratio:3/4;
overflow:hidden;
background:#1a1830;
border-radius:4px
}
.character-thumb img{
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform .6s var(--ease)
}
.character-card:hover .character-thumb img{
transform:scale(1.06)
}
.character-meta{
display:flex;
flex-direction:column;
gap:2px;
padding:2px 4px 4px
}
.character-name{
font-size:14.5px;
color:var(--paper);
letter-spacing:.04em
}
.character-role{
font-size:11.5px;
color:var(--coral);
letter-spacing:.08em;
text-transform:uppercase
}
.character-year{
font-size:10.5px;
color:var(--lav);
letter-spacing:.1em
}
.character-detail{
position:sticky;
top:80px;
padding:24px;
background:rgba(243,234,242,.04);
border:1px solid rgba(243,234,242,.1);
border-radius:6px;
min-height:380px
}
.character-detail-empty{
margin:0;
color:rgba(243,234,242,.5);
font-size:13px;
letter-spacing:.05em
}
.character-detail .character-detail-image{
display:block;
width:100%;
max-height:52vh;
object-fit:contain;
background:#1a1830;
border-radius:4px;
margin-bottom:18px;
box-shadow:0 12px 32px -16px rgba(0,0,0,.6)
}
.character-detail .character-detail-title{
margin:0 0 4px;
color:var(--lime);
font-size:24px;
letter-spacing:-.02em;
font-weight:500
}
.character-detail .character-detail-tag{
display:block;
color:var(--coral);
font-size:11px;
letter-spacing:.1em;
text-transform:uppercase;
margin-bottom:12px
}
.character-detail .character-detail-desc{
margin:0 0 18px;
color:#c9c0da;
font-size:13.5px;
line-height:1.7
}
.character-detail .character-detail-actions{
display:flex;
gap:10px;
flex-wrap:wrap
}
.character-detail .character-detail-actions a{
display:inline-flex;
align-items:center;
gap:6px;
padding:8px 14px;
border:1px solid var(--lime);
color:var(--lime);
text-decoration:none;
font-size:12px;
letter-spacing:.06em;
text-transform:uppercase;
border-radius:2px;
transition:background .2s var(--ease),color .2s var(--ease)
}
.character-detail .character-detail-actions a:hover{
background:var(--lime);
color:var(--ink)
}
@media (max-width:900px){
.character-stage{
grid-template-columns:1fr
}
.character-detail{
position:static;
min-height:0
}
.character-detail .character-detail-image{
max-height:40vh
}
}
