
html { scrollbar-gutter: stable; }

.v-casting .hero__sub { text-wrap: pretty; }


.tbd { padding: 0 4px; background: #fff3c4; color: #5a4a00; font-size: .9em; border-radius: 2px; }

.cast-more { margin-top: 28px; }
.cast-more__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 26px; border: 1px solid var(--ink); background: none; color: var(--ink); font: inherit; font-size: 14px; letter-spacing: .12em; cursor: pointer; list-style: none; transition: background .2s, color .2s; }
.cast-more__btn::-webkit-details-marker { display: none; }
.cast-more__btn:hover { background: var(--ink); color: var(--bg); }
.cast-more__btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
button.cast-more__btn { margin-top: 28px; }
.cast-more__body { max-width: 640px; margin-top: 16px; font-size: 14px; color: #c9c6c0; }
.cast-more__body dl { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px 12px; margin: 0; }
.cast-more__body dt { font-weight: 600; color: var(--ink); }
.cast-more__body dd { margin: 0; overflow-wrap: anywhere; }

.cast-pop dd { overflow-wrap: anywhere; }
.cast-pop--wide { width: min(880px, calc(100vw - 24px)); }
.cast-pop .cast-pop__lead { margin: 0 0 12px; }
.cast-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.cast-thumb { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: #e6e2db; }
.cast-thumb img { transition: transform .35s ease, opacity .2s; }
.cast-thumb:hover img { transform: scale(1.04); opacity: .92; }
.cast-thumb:focus-visible { outline: 2px solid #111; outline-offset: 2px; }

.cast-viewer { inset: 0; width: auto; height: auto; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #080808; color: var(--ink); overflow: hidden; }
.cast-viewer::backdrop { background: #080808; }
.cast-viewer__stage { position: absolute; inset: 56px 72px; display: flex; align-items: center; justify-content: center; touch-action: pan-y pinch-zoom; }
.cast-viewer__stage img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.cast-viewer__count { position: absolute; top: 16px; left: 20px; margin: 0; font-size: 13px; letter-spacing: .12em; color: #c9c6c0; }
.cast-viewer__x { position: absolute; top: 4px; right: 8px; min-width: 48px; min-height: 48px; border: 0; background: none; color: var(--ink); font-size: 32px; line-height: 1; cursor: pointer; }
.cast-viewer__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 72px; border: 0; background: rgb(255 255 255 / .06); color: var(--ink); font-size: 40px; line-height: 1; cursor: pointer; transition: background .2s; }
.cast-viewer__nav:hover { background: rgb(255 255 255 / .14); }
.cast-viewer__nav--prev { left: 10px; }
.cast-viewer__nav--next { right: 10px; }
.cast-viewer button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

.hero__image, .about__images, .cast-thumb, .cast-viewer__stage, .v-casting img { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.v-casting, .v-casting dialog { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.v-casting :is(input, textarea, [contenteditable]:not([contenteditable="false"])),
.v-casting .cast-src[data-copy-open] { -webkit-touch-callout: default; -webkit-user-select: text; user-select: text; }

.cast-profile { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: var(--gutter); align-items: center; }
.cast-profile .about__images { grid-template-columns: 1fr; }
.cast-profile .lead { margin-bottom: 0; }
.cast-profile__mark { font-weight: 400; letter-spacing: normal; margin-bottom: 14px; }
.v-casting .wordmark.cast-profile__mark { text-shadow: none; }
.v-casting .cast-profile__mark .wordmark__ko { color: var(--muted); }

.cast-apply .lead { margin-bottom: 28px; }
.cast-apply__line { display: block; }
.cast-box { max-width: 640px; padding: 24px 28px 28px; border: 1px solid var(--line); background: var(--bg-2); color: var(--ink); font-size: 15px; line-height: 1.6; }
.cast-box__t { margin: 0 0 12px; font-size: 17px; font-weight: 600; color: var(--ink); }
.cast-box__t:focus { outline: none; }
.cast-box button:focus-visible, .cast-box a:focus-visible, .cast-template:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

.cast-privacy { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 8px 12px; margin: 0; font-size: 14px; }
.cast-privacy dt { font-weight: 600; color: var(--ink); }
.cast-privacy dd { margin: 0; color: #c9c6c0; overflow-wrap: anywhere; }
.cast-note { margin: 12px 0 0; font-size: 13px; color: #a8a49e; }

.cast-agree { width: 100%; min-height: 48px; margin-top: 20px; border: 0; background: var(--ink); color: #111; font: inherit; font-size: 16px; cursor: pointer; }
summary.cast-agree { display: flex; align-items: center; justify-content: center; list-style: none; }
summary.cast-agree::-webkit-details-marker { display: none; }
.cast-box .cast-more { margin-top: 0; }

.cast-steps { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.cast-pop .cast-steps { margin: 0; padding: 0; border: 0; font-size: 15px; line-height: 1.6; }
.cast-pop .cast-agreed { margin: 0 0 16px; background: #efece6; color: #111; font-size: 14px; }
.cast-pop .cast-hint { margin: 8px 0 0; }
.cast-pop .cast-copy-hint { margin: 0 0 14px; color: #5c5853; font-size: 13px; }
.cast-pop .cast-step__t { margin: 0; color: #111; font-size: 15px; }
.cast-pop .cast-src { border-color: #d9d4cc; background: #fff; color: #111; }
.cast-pop .cast-copy { border-color: #111; color: #111; }
.cast-pop .cast-hint, .cast-pop .cast-usage { color: #5c5853; }
.cast-pop .cast-copied { margin: 6px 0 0; color: #2f2d2a; }
.cast-pop .cast-usage a { color: #111; }
.cast-pop button:focus-visible, .cast-pop a:focus-visible, .cast-pop .cast-template:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.cast-agreed { margin: 0 0 16px; padding: 10px 12px; background: #222; font-size: 14px; color: var(--ink); }
.cast-step { margin: 0; padding-left: 22px; }
.cast-step > li { margin: 0 0 16px; }
.cast-step__t { margin: 0; font-weight: 600; }
.cast-step__row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 6px; }
.cast-src { flex: 1 1 200px; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); background: var(--bg); font-family: inherit; font-size: 14px; color: var(--ink); overflow-wrap: anywhere; }
.cast-copy { flex: 0 0 auto; min-width: 104px; min-height: 44px; border: 1px solid var(--ink); background: none; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }
.cast-template { display: block; margin: 8px 0 0; white-space: pre-wrap; line-height: 1.7; }
.cast-hint { margin: 8px 0 0; font-size: 13px; color: #a8a49e; }
.cast-copied { margin: 6px 0 0; font-size: 13px; color: #c9c6c0; overflow-wrap: anywhere; }
.cast-copied:empty { display: none; }

.cast-photo { max-width: 640px; box-sizing: border-box; margin: 0 0 20px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid #9e2a1f; background: var(--bg-2); color: #c9c6c0; }
.cast-photo b { display: block; color: #e8857a; font-size: 15px; }
.cast-photo p { margin: 4px 0 0; font-size: 14px; color: #c9c6c0; }

.cast-closed--hero { display: inline-block; margin: 0; padding: 12px 20px; border: 1px solid var(--line); color: var(--ink); font-size: 14px; letter-spacing: .08em; }
.cast-closed--box { max-width: 640px; box-sizing: border-box; padding: 20px 24px; border: 1px solid var(--line); background: var(--bg-2); color: #c9c6c0; font-size: 15px; line-height: 1.6; }
.cast-closed--box b { display: block; color: var(--ink); font-size: 17px; font-weight: 600; }
.cast-closed--box p { margin: 6px 0 0; }

.cast-usage { margin: 12px 0 0; font-size: 13px; color: #a8a49e; }
.cast-usage a { color: var(--ink); text-underline-offset: 3px; white-space: nowrap; }
.cast-more__body .cast-usage { padding-left: 22px; }

#cast-steps .legal__body { padding: 14px 20px 20px; }
.cast-pop .cast-steps { font-size: 14px; line-height: 1.55; }
.cast-pop .cast-agreed { margin-bottom: 14px; padding: 8px 10px; font-size: 13px; }
.cast-pop .cast-step { padding-left: 18px; }
.cast-pop .cast-step > li { margin-bottom: 12px; }
.cast-pop .cast-step__t { font-size: 14px; }
.cast-pop .cast-step__row { gap: 6px; margin-top: 5px; }
.cast-pop .cast-src { flex-basis: 150px; padding: 7px 10px; font-size: 13px; }
.cast-pop .cast-copy { min-width: 84px; min-height: 38px; font-size: 13px; }
.cast-pop .cast-template { line-height: 1.6; }
.cast-pop .cast-hint, .cast-pop .cast-copied, .cast-pop .cast-usage { font-size: 12.5px; }
.cast-pop .cast-hint { margin-top: 6px; }

:root { --mark-frame: 1.5px; --mark-frame-color: #fff; }
.wordmark { --mark-box: 34px; }
.wordmark__mark, .footer__mark, .v-casting .legal__bar h2::before, .v-casting .legal__bar h2::after { --mark-size: calc(var(--mark-box) * var(--mark-fit, 1)); }
.wordmark__mark, .footer__mark { border-radius: calc(var(--mark-size) * .21); box-shadow: 0 0 0 var(--mark-frame) var(--mark-frame-color); }
.wordmark__mark { flex: none; align-self: center; width: var(--mark-size); height: var(--mark-size); margin-left: var(--mark-frame); margin-right: calc(var(--mark-frame) - 2px); }
.v-casting .header .wordmark { flex-wrap: nowrap; align-items: center; }
.v-casting .header .wordmark__text { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: inherit; }
@media (min-width: 521px) {
  .v-casting .header .wordmark { --mark-box: 56px; }
  .v-casting .header .wordmark__mark {
    margin-block: .3px -4.3px;
  }
  .v-casting .header .wordmark__mark path { stroke-width: .985; }
}
.footer__mark {
  --mark-box: 26px;
  --mark-frame-color: currentColor;
  display: inline-block; width: var(--mark-size); height: var(--mark-size);
  vertical-align: middle;
  margin: calc((20px - var(--mark-size)) / 2) calc(var(--mark-frame) + 5px) calc((20px - var(--mark-size)) / 2) var(--mark-frame);
}
.footer--cast { align-items: flex-end; }
.footer--cast .footer__brand { line-height: 20px; }
.footer--cast .footer__biz { margin-top: 10px !important; line-height: 20px; }
.footer--cast .footer__biz span { display: inline; }
.footer--cast .footer__biz .footer__line { display: block; }
.footer--cast .footer__item { white-space: nowrap; }
.footer--cast .footer__legal { gap: 0 20px; }
.footer--cast .footer__legal a { padding: 0; line-height: 20px; white-space: nowrap; }
.footer--cast .footer__legal a[aria-current="page"] { color: var(--ink); text-decoration: none; }
@media (max-width: 600px) {
  .footer--cast { flex-direction: column; align-items: flex-start; gap: 18px; }
  .footer--cast .footer__biz .footer__sep { display: none; }
  .footer--cast .footer__biz .footer__item { display: block; }
  .footer--cast .footer__legal { flex-direction: column; }
  .footer--cast .footer__legal a { align-self: flex-start; line-height: 28px; }
}
.v-casting .legal__bar { z-index: 1; }
.v-casting .legal__bar h2 { --mark-box: 28px; position: relative; display: flex; align-items: center; gap: 10px; }
.v-casting .legal__bar h2::before {
  content: ''; flex: none; width: var(--mark-size); height: var(--mark-size);
  margin: -4px calc(var(--mark-frame) - 4px) -4px var(--mark-frame);
  background-color: currentColor;
  -webkit-mask: var(--gn-mark, linear-gradient(transparent, transparent)) center / contain no-repeat;
  mask: var(--gn-mark, linear-gradient(transparent, transparent)) center / contain no-repeat;
}
.v-casting .legal__bar h2::after {
  content: ''; position: absolute; left: var(--mark-frame); top: 50%; transform: translateY(-50%);
  width: var(--mark-size); height: var(--mark-size);
  --mark-frame-color: currentColor;
  border-radius: calc(var(--mark-size) * .21); box-shadow: 0 0 0 var(--mark-frame) var(--mark-frame-color);
  pointer-events: none;
}
@media (max-width: 520px) {
  .wordmark { --mark-box: 28px; }
}
@media (max-width: 380px) {
  .header .wordmark { --mark-box: 24px; column-gap: 8px; }
}

@media (max-width: 900px) {
  .cast-profile { grid-template-columns: 1fr; }
  .cast-profile .about__images { max-width: 360px; }
  .v-casting .hero__text { align-self: end; padding-top: 0; }
  .v-casting .hero__image::after {
    background:
      linear-gradient(to bottom, rgb(0 0 0 / .6) 0%, rgb(0 0 0 / 0) 28%),
      linear-gradient(to top, rgb(0 0 0 / .92) 0%, rgb(0 0 0 / .65) 35%, rgb(0 0 0 / 0) 70%);
  }
  .v-casting .hero__follow, .v-casting .wordmark { text-shadow: 0 1px 8px rgb(0 0 0 / .6); }
  .v-casting .eyebrow, .v-casting .wordmark__ko { color: #c9c6c0; }
}
@media (max-width: 600px) {
  .cast-gallery { gap: 4px; }
  .cast-viewer__stage { inset: 52px 0 84px; }
  .cast-viewer__nav { top: auto; bottom: 12px; transform: none; width: 56px; height: 56px; font-size: 34px; }
  .cast-viewer__nav--prev { left: 16px; }
  .cast-viewer__nav--next { right: 16px; }
  .cast-more__body dl { grid-template-columns: 1fr; gap: 2px; }
  .cast-box { padding: 18px 16px 20px; margin: 0 calc(var(--gutter) * -1 + 8px); }
  .cast-closed--box { margin: 0 calc(var(--gutter) * -1 + 8px); padding: 18px 16px; }
  .cast-photo { margin: 0 calc(var(--gutter) * -1 + 8px) 20px; }
  .cast-privacy { grid-template-columns: 1fr; gap: 2px; }
  .cast-privacy dd { margin-bottom: 8px; }
}
