
@font-face {
  font-family:Instrument;
  src:url("/media/InstrumentSerif-Regular.ttf")}
@font-face {
  font-family:Instrument;
  src:url("/media/InstrumentSerif-Italic.ttf");
  font-style:italic}
@font-face {
  font-family:Kalam;
  src:url("/media/Kalam-Bold.ttf");
  font-weight:bold}

:root {
  --paper:#faf7ef;
  --ink:#292922;
  --muted:#605e53;
  --line:#d5d0c1;
  --red:#893e35;
  --serif:Instrument,Georgia,serif;
  color:var(--ink);
  background:var(--paper);
  font:16px/1.5 system-ui,sans-serif}

* {
  box-sizing:border-box}
body {
  margin:0}
header,main,footer {
  width:min(1216px,92vw);
  margin:auto}
header,footer,.row,.nav,.actions,.bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px}
header {
  min-height:80px;
  border-bottom:1px solid var(--line)}
a {
  color:inherit}
.brand {
  font:32px/1 var(--serif);
  text-decoration:none;
  white-space:nowrap}
.brand i,i {
  color:var(--red)}
button,.btn,summary {
  cursor:pointer}
button,a,input,textarea {
  touch-action:manipulation}
button,.btn {
  font:inherit;
  border:0;
  color:inherit;
  background:none}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid var(--red);
  outline-offset:3px}
.nav a {
  font-size:14px;
  padding:12px 4px}
.btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  background:var(--red);
  color:#fff9ed;
  border-radius:4px;
  padding:13px 21px;
  font-weight:600;
  text-decoration:none}
.btn:hover {
  background:#70332c}
.text,.nav a {
  color:var(--ink);
  text-underline-offset:4px}
.text {
  padding:8px 0;
  text-decoration:underline}
.hero {
  display:grid;
  grid-template-columns:1fr 1.65fr;
  align-items:center;
  gap:clamp(22px,4vw,66px);
  padding:52px 0 46px}
h1,h2,h3,p,figure {
  margin:0}
h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400}
h1 {
  font-size:clamp(48px,5vw,77px);
  line-height:1.03;
  letter-spacing:-.03em;
  text-wrap:balance}
h2 {
  font-size:clamp(32px,3.3vw,48px);
  line-height:1.12}
h3 {
  font-size:25px}
.hero p {
  color:var(--muted);
  margin:20px 0 24px;
  max-width:36ch}
.cinema video,.result video {
  width:100%;
  display:block;
  aspect-ratio:16/9;
  background:#2d2924;
  object-fit:contain}
.cap,small,.muted {
  font-size:14px;
  color:var(--muted)}
.cap {
  margin-top:8px}
.cap i {
  font:italic 20px var(--serif)}
.studio {
  border-top:1px solid var(--line);
  padding:32px 0 48px;
  scroll-margin-top:12px}
.workspace {
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:clamp(24px,6vw,88px);
  margin-top:25px}
.rolelist {
  display:flex;
  gap:12px;
  margin:12px 0 24px}
.role {
  cursor:pointer;
  flex:1;
  display:flex;
  align-items:center;
  gap:11px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fffdf6;
  position:relative}
.role img {
  width:52px;
  height:60px;
  object-fit:cover;
  border-radius:2px}
.role input {
  width:1px;
  height:1px;
  opacity:0;
  position:absolute}
.role:focus-within {
  outline:2px solid var(--red)}
.role strong,.role small {
  display:block}
.role strong {
  font-size:14px}
.role small {
  font-size:12px}
.field {
  margin:9px 0 0;
  display:flex;
  align-items:center;
  gap:8px}
.field label {
  font:italic 22px var(--serif);
  color:var(--red);
  width:20px}
.field input {
  min-width:0;
  flex:1;
  font:inherit;
  background:#fffdf8;
  border:1px solid var(--line);
  border-radius:3px;
  padding:10px}
.remove,.arrow {
  width:42px;
  min-height:42px;
  font-size:20px}
.remove:hover,.arrow:hover {
  background:#eee8da}
.side {
  background:#eee8db;
  padding:clamp(18px,2.6vw,35px);
  align-self:start;
  border-radius:3px}
.side h3 {
  margin-bottom:14px}
.paper {
  display:grid;
  place-items:center;
  aspect-ratio:2.2/1;
  padding:12px 20px;
  background:#fffdf4;
  border:1px solid #ddd6c7;
  box-shadow:1px 4px 8px #46392314;
  font:700 clamp(18px,2.7vw,37px)/1.16 Kalam,cursive;
  text-align:center;
  overflow-wrap:anywhere;
  white-space:pre-wrap}
.side .bar {
  margin:6px 0 15px}
.side .btn {
  width:100%}
.help {
  color:var(--red);
  min-height:22px;
  font-size:14px}
.view {
  max-width:760px;
  margin:48px auto 80px}
.view h1 {
  font-size:clamp(40px,5vw,64px);
  margin:18px 0}
.view p {
  margin:10px 0 20px}
.details {
  margin:22px 0}
.details div,.item {
  border-bottom:1px solid var(--line);
  padding:12px 0;
  display:flex;
  justify-content:space-between;
  gap:12px}
.details dt {
  color:var(--muted)}
.details dd {
  margin:0;
  font-weight:600}
.reviewCast img {
  width:42px;
  height:48px;
  object-fit:cover;
  margin-right:5px}
.actions {
  justify-content:flex-start;
  flex-wrap:wrap}
footer {
  border-top:1px solid var(--line);
  padding:18px 0 30px;
  color:var(--muted);
  font-size:13px}
[hidden] {
  display:none!important}
button:disabled {
  opacity:.46;
  cursor:default}
::selection {
  background:#ebcfbe;
  color:var(--ink)}

@media(max-width:740px) {
  header {
  min-height:64px}
.brand {
  font-size:27px}
.hero {
  grid-template-columns:1fr;
  gap:22px;
  padding:28px 0}
.hero h1 {
  max-width:13ch}
.hero p {
  max-width:42ch;
  margin:12px 0 16px}
.workspace {
  grid-template-columns:1fr;
  gap:20px}
.rolelist {
  gap:7px}
.role {
  gap:7px;
  padding:7px}
.role img {
  width:41px;
  height:51px}
.nav {
  gap:5px}
.side {
  max-width:100%}
.paper {
  font-size:28px}
.cap {
  gap:6px}
.view {
  margin:30px 0 60px}
.studio {
  padding-top:24px}
.role strong {
  font-size:13px}
.details div {
  align-items:baseline}
footer {
  align-items:flex-start}
footer span:last-child {
  text-align:right}
}


.saved-row {display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.saved-row img {width:54px;height:62px;object-fit:cover;border-radius:4px}
.saved-row div {flex:1;min-width:0;overflow-wrap:anywhere}
.saved-row a {display:inline-flex;align-items:center;min-height:44px}
#preview {display:block;width:100%;aspect-ratio:16/9;background:#272420;border-radius:4px}
#frames {margin:22px 0 12px}
#playboard {min-width:145px}
#reviewPhotos {display:flex;gap:18px;flex-wrap:wrap}
#reviewPhotos figure {display:flex;align-items:center;gap:8px}
#reviewPhotos img {height:56px;width:46px;object-fit:cover;border-radius:4px}
#reviewPhotos figcaption {font-size:14px}
.view #caption {font-size:14px;margin:4px 0 0;color:var(--muted)}
.status {color:var(--muted);font-size:14px;margin-top:10px}
#lines li {overflow-wrap:anywhere}
@media(max-width:430px){.saved-row{flex-wrap:wrap}.rolelist .role{min-width:0}.nav a{min-height:44px}.side .paper{min-height:130px}}
